Skip to content

Overview

AquaMind pipeline, stages 1 to 9, one line eachNine stages stacked top to bottom, each linking to its full page, colour-coded by topic: data pipeline, tracker and identity, behaviour classifiers, deployment. One dashed feedback loop runs from model-assisted annotation back to object detection.AquaMind pipeline — stage by stageiClick a stage to open its page.1 · Frame extractionExtracts 1 frame/sec from video, stores frame paths in MySQL.2 · AnnotationLabels boxes in Label Studio, stores them in MySQL.3 · Object detectionBuilds a versioned YOLO dataset (DVC), fine-tunes YOLOv8 (MLflow).4 · Custom trackerSORT-style tracker → per-fish tracks, ground-truthed against human review.5 · Improving the detectorThe tracker's failures, pre-labelled by the detector, retrain a better one.6 · Re-identificationAppearance embedding audits the tracker's identity decisions.7 · Chasing detectionKinematic features + LSTM flag chase events between fish.8 · Feeding-strike detectionCNN + LSTM on appearance — fails a stream test, a rigorous negative result.9 · Pipeline & deploymentOne trained classifier behind FastAPI, Dockerized, on a cloud host.Data pipelineTracker & identityBehaviour classifiersDeploymentfeedback loop
FigAll nine stages in build order, coloured by topic — click one to open its full page. The dashed loop is feedback, not part of the forward flow: the model-assisted annotation stage relabels the frames where the tracker exposed the detector's failures, and the retrained detector returns to object detection. See Detailed for the script-level architecture.

Stages by role

AquaMind pipeline overview, stages 1 to 9: a data pipeline (frame extraction, annotation, object detection), a custom tracker, a model-assisted annotation stage that relabels the tracker's failures and feeds a retrained detector back into object detection, then re-identification, two behaviour classifiers (chasing, feeding-strike), and deployment.
FigStages 1-9 grouped by role: data pipeline (green, top), tracker (blue), model-assisted annotation (green, right of the tracker), re-identification and two behaviour classifiers running off the same tracked data (bottom), and deployment (grey, upcoming). The dashed purple arrow is a feedback loop, not part of the main forward flow: the tracker's failures are relabelled, and the retrained detector returns to object detection.

Tools by layer

Layer Tools
Detection YOLOv8, fine-tuned on hand-labelled frames
Tracking a custom SORT-style tracker: constant-velocity motion model, OC-SORT direction consistency, merge-aware geometry, optional learned appearance embedding
Behaviour kinematic features and CNN + LSTM classifiers, per behaviour
Data MySQL for frames, annotations and tracks
ML operations MLflow for experiment tracking and a model registry, DVC for dataset versioning