Skip to main content

mosaic-library

This is a python library for manipulating images for underwater mosaicking applications. Currently, this libary is capable of:

  1. Reading input videos.
  2. Basic pre-processing of images, including undistorting, crop & scaling, color, contrast, and lighting balancing as well as detail enhancement.
  3. Image registration, such as feature detection and description, matching, and transformation estimation in similarity, affine, and perspective cases.
  4. Infinite and finite homography transformations on imagery given extrinsic rotations and translations between the camera and a new "virtual" camera.
  5. Camera rotation compensation from orientation data (e.g. IMU).
  6. Sequential mosaicking map generation, with minimal memory management support (database + tiling).

The mosaic-library covers these two use-cases:

  1. Basic implementation (you need an opencv-contrib backend): pip install mosaic-library[opencv]
  2. 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

  1. 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.
  2. Classes for feature extraction: Use the mosaicking.registration.FeatureDetector class for implementing your own feature detectors.
  3. Classes for preprocessing operations: Use the mosaicking.preprocessing.Preprocessor class for implementing your own preprocessing methods.
  4. Classes for data reading operations: Use the mosaicking.utils.DataReader class to implement your own data schema.
  5. Support for NVIDIA CUDA and Video Codec SDK. mosaic-library now takes advantage of OpenCV builds with CUDA and NVCUVID flags.
  6. See the docker build file and compose files for building a working dev container with cuda or cudacodec support on your system (linux only).
  7. 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.
  8. 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).
  9. Use of scikit-learn: extraction of global image features through Visual Bag of Words is supported through sklearn's k-means clustering.
  10. Better handling of poor feature matching / homography estimation (see mosaicking.mosaic.SequentialMosaic).
  11. Basic sphinx documentation hosted on github pages.

Roadmap

  1. Implementation of homography graph optimization strategies (loop closure + GTSAM / g2o)
  2. Composite data sources: merge multiple image data sources into one mosaic.
  3. Integration of additional navigation data sources (USBL, DVL).

Metadata

Release files for mosaic-library 2.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mosaic-library 2.0.1
File Size Uploaded Provenance
mosaic_library-2.0.1.tar.gz 43.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mosaic-library 2.0.1
File Interpreter ABI Platform
mosaic_library-2.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 92.5 kB

Release files / mosaic_library-2.0.1.tar.gz

Download URL mosaic_library-2.0.1.tar.gz
Size 43.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c24edd90bb58f6b306803743deb05940cc4156678776405f9668ac08f2875683
BLAKE2b-256 checksum
How to use checksums
6c23d4d8907098679dda9a113dd45f71c2f8880541eeddf30d9a8b3502a4780d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.3

Release files / mosaic_library-2.0.1-py3-none-any.whl

Download URL mosaic_library-2.0.1-py3-none-any.whl
Size 48.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6a89e47e8918101fac4b384531e2cbd5abacafde3ae25d2fe96f50c243e6c850
BLAKE2b-256 checksum
How to use checksums
4ed604550ef74a04078d001d9a0b6fe3aa6285729d570e538da270711da853d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.3

Security for mosaic-library 2.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.0.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page