A python library for manipulating images for underwater mosaicking applications.
Project description
mosaic-library
This is a python library for manipulating images for underwater mosaicking applications. Currently, this libary is capable of:
- Reading input videos.
- Basic pre-processing of images, including undistorting, crop & scaling, color, contrast, and lighting balancing as well as detail enhancement.
- Image registration, such as feature detection and description, matching, and transformation estimation in similarity, affine, and perspective cases.
- Infinite and finite homography transformations on imagery given extrinsic rotations and translations between the camera and a new "virtual" camera.
- Camera rotation compensation from orientation data (e.g. IMU).
- Sequential mosaicking map generation, with minimal memory management support (database + tiling).
The mosaic-library covers these two use-cases:
- Basic implementation (you need an opencv-contrib backend):
pip install mosaic-library[opencv] - Custom implementation (you have your own opencv-contrib build):
pip install mosaic-library
See the examples folder for demonstrations of the mosaic module.
Version 2.X release
Version 2 is now released. Checkout the tags for the stable releases (or main branch for latest).
Release Notes
- Classes for the mosaicking.mosaic module. Now you can implement your own classes for mosaicking operations. See mosaicking.mosaic.Mosaic and mosaicking.mosaic.SequentialMosaic for templates.
- Classes for feature extraction: Use the mosaicking.registration.FeatureDetector class for implementing your own feature detectors.
- Classes for preprocessing operations: Use the mosaicking.preprocessing.Preprocessor class for implementing your own preprocessing methods.
- Classes for data reading operations: Use the mosaicking.utils.DataReader class to implement your own data schema.
- Support for NVIDIA CUDA and Video Codec SDK. mosaic-library now takes advantage of OpenCV builds with CUDA and NVCUVID flags.
- See the docker build file and compose files for building a working dev container with cuda or cudacodec support on your system (linux only).
- Implementation of SQLlite: large video files cause memory issues for mosaicking v1. We now cache the feature extraction and matching components to a database file to decrease RAM consumption, allow multiple video sources to be used in the same mosaic, allow incremental updates.
- Use of networkx: mosaics can be represented as transformational relationships between images, we use networkx to represent those relationships through node (local and global image features) and edge attributes (matches and homography transformations).
- Use of scikit-learn: extraction of global image features through Visual Bag of Words is supported through sklearn's k-means clustering.
- Better handling of poor feature matching / homography estimation (see mosaicking.mosaic.SequentialMosaic).
- Basic sphinx documentation hosted on github pages.
Roadmap
- Implementation of homography graph optimization strategies (loop closure + GTSAM / g2o)
- Composite data sources: merge multiple image data sources into one mosaic.
- Integration of additional navigation data sources (USBL, DVL).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mosaic_library-2.0.1.tar.gz.
File metadata
- Download URL: mosaic_library-2.0.1.tar.gz
- Upload date:
- Size: 43.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c24edd90bb58f6b306803743deb05940cc4156678776405f9668ac08f2875683
|
|
| MD5 |
69566f0638a4065e1d11558f9d8950f7
|
|
| BLAKE2b-256 |
6c23d4d8907098679dda9a113dd45f71c2f8880541eeddf30d9a8b3502a4780d
|
File details
Details for the file mosaic_library-2.0.1-py3-none-any.whl.
File metadata
- Download URL: mosaic_library-2.0.1-py3-none-any.whl
- Upload date:
- Size: 48.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a89e47e8918101fac4b384531e2cbd5abacafde3ae25d2fe96f50c243e6c850
|
|
| MD5 |
8a5c3444e3a78781b0b4f057e8888550
|
|
| BLAKE2b-256 |
4ed604550ef74a04078d001d9a0b6fe3aa6285729d570e538da270711da853d0
|