|
--- |
|
language: |
|
- en |
|
base_model: |
|
- Ultralytics/YOLO11 |
|
tags: |
|
- yolo |
|
- yolo11 |
|
- yolo11n |
|
- yolo11n-seg |
|
- fish |
|
- Segmentation |
|
datasets: |
|
- akridge/MOUSS_fish_segment_dataset_grayscale |
|
pipeline_tag: image-segmentation |
|
--- |
|
|
|
# Yolo11n-seg Fish Segmentation |
|
|
|
## Model Overview |
|
This model was trained to detect and segment fish in underwater **Grayscale Imagery** using the YOLO11n-seg architecture, leveraging automatic training with the **Segment Anything Model (SAM)** for generating segmentation masks. The combination of detection and SAM-powered segmentation enhances the model's ability to outline fish boundaries. |
|
|
|
- **Model Architecture**: YOLO11n-seg |
|
- **Task**: Fish Segmentation |
|
- **Footage Type**: Grayscale Underwater Footage |
|
- **Classes**: 1 (Fish) |
|
|
|
## Demo Space: |
|
- https://huggingface.co/spaces/noaa-pifsc-ai/YOLO11_Fish-or-No-Fish-Detector-Demo_grayscale |
|
|
|
## Test Results |
|
![GIF description](./yolo11n-seg.gif) |
|
|
|
## Model Weights |
|
Download the model weights [here](./yolo11n-seg-fish-trained.pt) |
|
|
|
## Auto-Training Process |
|
The segmentation dataset was generated using an automated pipeline: |
|
- **Detection Model**: A pre-trained YOLO model (https://huggingface.co/akridge/yolo11-fish-detector-grayscale/) was used to detect fish. |
|
- **Segmentation**: The SAM model (`sam_b.pt`) was applied to generate precise segmentation masks around detected fish. |
|
- **Output**: The dataset was saved at `/content/sam_dataset/`. |
|
|
|
This automated process allowed for efficient mask generation without manual annotation, facilitating faster dataset creation. |
|
## Intended Use |
|
- Real-time fish detection and segmentation on grayscale underwater imagery. |
|
- Post-processing of video or images for research purposes in marine biology and ecosystem monitoring. |
|
|
|
## Training Configuration |
|
- **Dataset**: SAM asisted segmentation dataset. |
|
- **Training/Validation Split**: 80% training, 20% validation. |
|
- **Number of Epochs**: 50 |
|
- **Learning Rate**: 0.001 |
|
- **Batch Size**: 16 |
|
- **Image Size**: 640x640 |
|
|
|
## Results and Metrics |
|
The model was trained and evaluated on the generated segmentation dataset with the following results: |
|
|
|
### Confusion Matrix |
|
![Confusion Matrix](./train/results.png) |
|
|
|
## How to Use the Model |
|
To use the trained YOLO11n-seg model for fish segmentation: |
|
|
|
1. **Load the Model**: |
|
```python |
|
from ultralytics import YOLO |
|
|
|
# Load YOLO11n-seg model |
|
model = YOLO("yolo11n_fish_seg_trained.pt") |
|
|
|
# Perform inference on an image |
|
results = model("/content/test_image.jpg") |
|
results.show() |
|
``` |