Skip to main content

Computer vision utilities for maritime SAR purposes.

Project description

Nauscopia

Codeberg DOI

Release Notes CI Downloads per month

Package version License Status Supported Python versions

» 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 uv and ruff across 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.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nauscopia-0.0.0.tar.gz (63.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nauscopia-0.0.0-py3-none-any.whl (53.1 kB view details)

Uploaded Python 3

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

Hashes for nauscopia-0.0.0.tar.gz
Algorithm Hash digest
SHA256 781fd75578426091cf8ae2faafc66ab7b7219d89c3d0a64c026e9a09ca37e773
MD5 615719d1b6893d5c416bd83551a97d5a
BLAKE2b-256 f401fb3d71c36f852d3ea9c84f9153b4456d510d895ea148268af2ecef03971a

See more details on using hashes here.

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

Hashes for nauscopia-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6132251e76cea4d129ec8a6845ad694b79dcab249a8cebe5ec2f404154f765ad
MD5 9b18805ac62d9336d6bae096ab1c5c14
BLAKE2b-256 045a760ff9036920d247b453087de27c56b8639c1f755d405767c3a7963367ca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page