## Fish Detection YOLO Pipeline We plan to train our own YOLO model specifically for fish detection. The workflow and TODOs are: 1. **Labeling** - Use `labelme` to annotate selected fish images. - Convert annotations to YOLO format (e.g., using `labelme2yolo` or a custom script). 2. **Training & Testing Scripts** - Implement `train_yolo.py` that: - Loads the annotated dataset via a configurable dataloader. - Supports dataset splits (train/val/test) and typical YOLO hyperparameters. - Saves checkpoints and training logs. - Implement `test_yolo.py` that: - Loads trained checkpoints. - Runs inference/evaluation on validation or test sets. - Outputs metrics (precision/recall/mAP) and visualizes detections. 3. **Data Loaders** - Provide reusable dataloaders that: - Handle YOLO-format labels and image augmentations. - Support batching, shuffling, and CPU/GPU prefetching. - Can be shared between training and testing scripts. > TODO Summary > - [ ] Annotate images with `labelme`. > - [ ] Create `train_yolo.py` with dataloaders + training logic. > - [ ] Create `test_yolo.py` with dataloaders + evaluation/visualization.