This repository contains several tools and utilities to assist in training salmon counting automation tools as well as to deploy to edge devices for edge-based processing of videos. Two major categories include video-based enumeration and sonar-based enumeration.
The code is currently under the MIT License but could be subject to change in the future.
The data and annotation are under Creative Commons BY-NC-SA 4.0 (Official license). No commercial usage and any adaptations must be published with the same license.
Any Salmon Vision models published here is under the ResearchRAIL license for research purposes only.
The current enumeration strategy is using two computer vision models: multi-object tracking (MOT) and object detection. We use ByteTrack for MOT and YOLOv6, respectively.
It includes individual frame images and labels in the required format for ByteTrack and YOLOv6. They could be easily converted to other similar formats either manually or with Datumaro. The pre-trained models are also there with a preliminary YOLOv8 model.
These annotations are in "CVAT for Video 1.1" format and include tags that
specify male/female, injuries, etc. It includes the Kitwanga River and Bear
Creek River bounding box annotations with no images. The conversion script is
in the utils
folder (utils/datum_create_dataset.py
), requiring
Datumaro to run. Refer to the
this documentation for more details.
Trained on a Ubuntu 20.04 Lambda Scalar system with 4 A5000 GPUs.
The current strategy is to use YOLOv8's suite of tools to perform both object detection of salmon species and multi-object tracking of salmon throughout multiple frames.
Look into the training
folder
for more info about training the model.
To deploy our automated salmon counting system on the edge near rivers for near real-time processing, we use two main types of microprocessors: Raspberry Pis and Jetson Nanos.
The Raspberry Pi setup instructions are here.
Jetsons Nano setup instructions are here.
The utils
folder has various helpful scripts such as quick deployment.
Please check the utils
README for more info on some important scripts.
Convert ARIS sonar files to videos with pyARIS
using the Python 3 script
./extract_aris/aris_to_video.py
.