# Backlog ## Iteration +1 - Ship version 0.0.0: PyPI and OCI ## Iteration +2 - Operate on folders including multiple files - IO: Read and write ROS Bags files for compatibility with SARCAM environment - https://wiki.ros.org/Bags - https://pypi.org/project/rosbag-tools/ - https://pypi.org/project/rosbags/ - https://pypi.org/project/rosbags-image/ - https://pypi.org/project/rosbags-dataframe/ - https://gitlab.com/ternaris/marv-robotics/-/blob/master/code/marv-robotics/marv_robotics/bag.py - IO: RTSP/File in, HLS out. For easy dissemination and archival without too much overhead on implementing infrastructure and frontend. - Error handling: If processing fails, e.g. because of bad input file, the program currently does not exit with a corresponding exit code. - Docker: Suppress: - `[ONNXRuntimeError] : 1 : FAIL : Failed to load library libonnxruntime_providers_tensorrt.so with error: libcudnn.so.8: cannot open shared object file: No such file or directory` - `[ONNXRuntimeError] : 1 : FAIL : Failed to load library libonnxruntime_providers_cuda.so with error: libcublasLt.so.11: cannot open shared object file: No such file or directory` - https://docs.gitlab.com/ee/ci/testing/unit_test_reports.html - https://medium.com/@yian806884/comprehensive-guide-to-gitlab-ci-cd-081305b06a9a - CI: Stable release builds when tagging - CI: Nightly builds per schedule - CI: Use `CI_COMMIT_TAG`: https://github.com/woodpecker-ci/woodpecker/pull/2934 - CI: More Codeberg / Woodpecker CI - https://woodpecker-ci.org/plugins/Docker%20Tags - https://github.com/woodpecker-ci/woodpecker/discussions/4246 - https://woodpecker-ci.org/plugins/Codecov - https://woodpecker-ci.org/plugins/Twine ## Iteration +3 - IO: Make output codec configurable. Currently `DIVX`. - Core: Adjust default value for `--fps=5.0` back to `14.6` or `20`? - Util: Generic media converter (image sequence vs. video) - Unlock OpenCV-based ROI detector again? - Feature: Web frontend based on HLS player - Feature: Audit log / Report output - Feature: Save frames of interest https://stackoverflow.com/questions/30136257/how-to-get-image-from-video-using-opencv-python - CI: Upload code coverage data to Codecov.io - CI: Dependabot - https://dependabot-gitlab.gitlab.io/dependabot/ - https://dependabot-gitlab.gitlab.io/dependabot/guide/standalone-mode.html - https://gitlab.com/dependabot-gitlab/dependabot-standalone ## Iteration +4 - Event telemetry: MQTT and NMEA - Notifications - Docs: Philosophy: Bazaar, DWIM, KISS, RORO - Docs: Add info about ffmpeg and GStreamer - Docs: - Provides end-to-end integration test cases together with canonical `datasets` repository - Taking the role as a package maintainer - Docs: https://sarcam.flova.de/ - Docs: https://events.ccc.de/congress/2024/hub/de/assembly/sarcam/ - Are there other models than `yolov10m.onnx`? ## Done - Review `ARG002 Unused method argument:` mask markers - Small-scale in-a-box image processing pipeline: Yes, make it work. - Read directory of images and/or single image - Add software tests - Caching for datasets to avoid redundant downloading - Test more IO variants of processing (video vs. bitmap sequence) - Record frame number and possibly other information within `DetectionEvent` - Rename from `nauscopy` to `nauscopie` - Last minute fixes and improvements - Rename from `nauscopie` to `nauscopia` - Documentation @ RTD: https://nauscopia.readthedocs.io/ - README: Badges - Migrate to Codeberg / Woodpecker CI - https://woodpecker-ci.org/plugins/Git%20Clone - https://woodpecker-ci.org/plugins/Docker%20Buildx