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.0.0 release candidate
Checkout out v2.0.0-rc2 for the most recent pre-release tag.
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
mosaic_library-2.0.0rc2.tar.gz
(43.3 kB
view details)
Built Distribution
File details
Details for the file mosaic_library-2.0.0rc2.tar.gz
.
File metadata
- Download URL: mosaic_library-2.0.0rc2.tar.gz
- Upload date:
- Size: 43.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | de5e835a7bcddc9cc1cc22b8ebec0f6a67c45ced6fdf6bd04980e8bc9940468c |
|
MD5 | dd247ad7bd22b695fad69573da8be020 |
|
BLAKE2b-256 | d68126a39bf61f83dff1060780ca72b2a177ce411df55751df4a6217ecaa5e1b |
File details
Details for the file mosaic_library-2.0.0rc2-py3-none-any.whl
.
File metadata
- Download URL: mosaic_library-2.0.0rc2-py3-none-any.whl
- Upload date:
- Size: 48.6 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 | f41c36187168327d3818dd0fe40e54a43a7be4f175b60d1152b9f25a6475e241 |
|
MD5 | c82ec5f9a05c2798243ec93d69ea6c4a |
|
BLAKE2b-256 | 6b14cedaee012261fe82173eba59d01b33097b3bae6c5abf02a08742c56d9295 |