This repository accompanies the paper
"YOLO-AquaLite: A Lightweight Fish Detection Model for Real-Time Underwater Applications"
This project is built on top of the Ultralytics YOLO framework, specifically YOLOv11.
For environment setup, dataset preparation, and general usage instructions, please refer to the official Ultralytics YOLO Documentation.
Prerequisite: Python must already be installed on your system.
Follow these steps to install YOLO-AquaLite in a clean virtual environment:
# 1. Create a virtual environment
python3 -m venv venv_aqualite
# 2. Activate the environment
source venv_aqualite/bin/activate
# 3. Change directory to the virtual environment:
cd venv_aqualite/
# 4. Install Ultralytics (tested with version 8.3.72)
python3 -m pip install ultralytics==8.3.72
# 5. Clone the YOLO-AquaLite repository
git clone https://github.com/MuhabHariri/YOLO_AquaLite.git
# 6. Change directory into the project folder
cd YOLO_AquaLite/
# 7. Install YOLO-AquaLite in editable mode
pip install -e .
YOLO_AquaLite is an object detection model based on the YOLOv11 architecture, designed with a focus on computational efficiency and lightweight deployment. It introduces several architectural enhancements to optimize performance:
🔄 Replaces the initial backbone layers with a pre-trained encoder
🧱 Utilizes Dilated DeepResNet Blocks instead of traditional C3k2 blocks
🧭 Incorporates a Spatial-to-Channel Projection block into the pipeline
These improvements make YOLO_AquaLite significantly lighter than the original YOLOv11, with lower model size, reduced computational cost, and improved latency, while maintaining competitive detection accuracy.
-
Weights files (trained on COCO dataset):
The folderWeights files (trained on COCO dataset)
includes YOLO_AquaLite model variants (nano, small, medium, large, and xlarge) trained on the COCO dataset. -
Weights files (Fine-tuned on Fish dataset):
The folderWeights files (Fine_tuned on Fish dataset)
contains YOLO_AquaLite model variants (nano, small, medium, large, and xlarge) that have been fine-tuned on the fish dataset described in our paper.
To train a YOLO_AquaLite model variant, use the following command:
yolo detect train data=Dataset.yaml model=ultralytics/cfg/models/11/YOLO_AquaLite_Variant.yaml epochs=500 batch=32 imgsz=640
Replace Variant
with the desired model size: n
(nano), s
(small), m
(medium), l
(large), or xl
(xlarge).