Computer vision utilities for maritime SAR purposes.
Project description
Nauscopia
» Documentation | Changelog | PyPI | Issues | Source code | License
About
A little research project for exploring object detection and tracking in maritime environments using computer vision.
Idea
The software builds upon and remixes a wide array of outstanding work by the CV, ML, and SAR communities, intending to support those in bundling and shipping working code to PyPI and conda-forge, and into OCI images, who are not used to it.
The idea is to improve usability for automation procedures in both ad hoc and server operations. By enabling users to just play around with the technologies and ingredients easily, and in different environments, it intends to improve general adoption, in the spirit of FOSS, RORO, KISS, and DWIM.
Documentation
Please visit the Nauscopia handbook to learn about installation and usage details.
Synopsis
Install system-wide.
pipx install nauscopia
nauscopia detect --input="/path/to/sarcam_2024-03-02_12-35-50.mp4"
Alternatively, use the OCI image to run the program in a container, for example using Docker, Podman, or Kubernetes.
docker run --rm -it codeberg.org/sarcam/nauscopia:latest nauscopia --version
What's Inside
Hardware- and ROS-framework independent code fragments of the SARCAM detector subsystem, wrapped using a bit of adapter interfaces and glue code.
Features
-
Tasks: To process video streams of maritime sceneries in real time, applying tasks like image stabilization, horizon detection, succeeded by region-of-interest detection and tracking.
-
CLI: A DWIM-like CLI interface wrapping around the Python routines, to support daily data wrangling exercises, both ad hoc and for automation purposes.
-
OCI: The project provides OCI images per Codeberg Container Registry, both for releases and PR builds.
-
QA: End-to-end software test cases on real and synthesized data, including a CI/CD configuration.
-
Tools: Modern project management and packaging, already advertising to use
uvandruffacross the board. -
Usability: Python API and CLI interfaces to all relevant subsystems, in order to encourage ad hoc use and exploration, because it is just one
pip install ...away. No strict requirements on ROS or Gtk.
Technologies
-
NumPy is the fundamental package for scientific computing with Python. (2015)
-
Stone Soup is a software framework for the development and testing of tracking and state estimation algorithms. (2017)
-
OpenCV (Open Source Computer Vision Library) is a library of programming functions mainly for real-time computer vision. (2000)
-
Pyramid Scene Parsing Network (PSPNet), ranked 1st place in ImageNet Scene Parsing Challenge 2016, is about semantic segmentation / scene parsing. It has been used for horizon detection in maritime images (2018), oceanic eddy detection (2021), and for underwater fish classification (2023).
-
The OpenMMLab framework provides open-source computer vision algorithms based on deep learning. (2018)
-
YOLO seems to be all over the place, and Ultralytics provides an excellent Python API. (2024)
Status
This is a pre-alpha software package, mostly remixing code from workbenches of others.
In order to make existing and proven code more accessible to the community, the project aims to wrap it into an easily consumable integrated package which includes interface code to use it both as a program, server, and library, within ROS environments, but also beyond.
Contributions are very much welcome. This is just a playground anyway, so please don't be shy to join us, we appreciate all kinds of support.
Prior Art
Standing on the shoulders of NumPy, OpenCV, Stone Soup, Deep Learning, all the math behind, and @flova and @julled, who pulled it all together.
- Object Tracking @ SARCAM
- Image Stabilizer @ SARCAM (OpenCV, NumPy)
- Horizon Detector @ SARCAM (OpenCV, NumPy)
- ROI Boat Detector @ SARCAM (OpenCV, NumPy)
- ROI Boat Detector @ SARCAM (OpenCV, YOLO)
- ROI Boat Tracker @ SARCAM (Stone Soup, NumPy)
- Frame Extractor @ SARCAM
Project Information
Acknowledgements
Kudos to the authors of all the many software components this library is inheriting from and building upon.
Contributing
The nauscopia package is an open source project, and is
managed on Codeberg. We appreciate contributions of any kind.
License
The project uses the AGPL license, like other projects where it is building upon and deriving from.
Etymology
nauscopy: The ability to sight land or ships at a distance. (1, 2, 3, 4).
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 nauscopia-0.0.0.tar.gz.
File metadata
- Download URL: nauscopia-0.0.0.tar.gz
- Upload date:
- Size: 63.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
781fd75578426091cf8ae2faafc66ab7b7219d89c3d0a64c026e9a09ca37e773
|
|
| MD5 |
615719d1b6893d5c416bd83551a97d5a
|
|
| BLAKE2b-256 |
f401fb3d71c36f852d3ea9c84f9153b4456d510d895ea148268af2ecef03971a
|
File details
Details for the file nauscopia-0.0.0-py3-none-any.whl.
File metadata
- Download URL: nauscopia-0.0.0-py3-none-any.whl
- Upload date:
- Size: 53.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6132251e76cea4d129ec8a6845ad694b79dcab249a8cebe5ec2f404154f765ad
|
|
| MD5 |
9b18805ac62d9336d6bae096ab1c5c14
|
|
| BLAKE2b-256 |
045a760ff9036920d247b453087de27c56b8639c1f755d405767c3a7963367ca
|