π Life Under Water β Marine Trash Detection
Fine-tuned YOLOv8m-seg for underwater debris detection and instance segmentation, specifically designed for ROV (Remotely Operated Vehicle) camera footage β seabed and underwater surface debris, not floating surface trash.
Project: Life Under Water Author: Krishna Jaiswal Live Demo: Hugging Face Spaces
Results
| Metric | Score |
|---|---|
| mAP50 β detection | 65.6% |
| mAP50 β segmentation | 65.0% |
| Precision | 79% |
| Classes | 16 |
| Training images | 6,008 |
| Validation images | 1,204 |
| Epochs | 75 |
Sample Predictions
Training Curves
Dataset
TrashCan 1.0 β Instance segmentation dataset of underwater trash captured by JAMSTEC deep-sea ROV cameras. Source: University of Minnesota Data Repository
16 Classes
| Category | Classes |
|---|---|
| Trash | trash_plastic, trash_metal, trash_fabric, trash_fishing_gear, trash_rubber, trash_wood, trash_paper, trash_etc |
| Marine life | animal_fish, animal_starfish, animal_shells, animal_crab, animal_eel, animal_etc, plant |
| Equipment | rov |
Class Distribution (training set)
| Class | Instances | % |
|---|---|---|
| rov | 2,653 | 44.2% |
| trash_etc | 1,629 | 27.1% |
| trash_plastic | 1,490 | 24.8% |
| trash_metal | 901 | 15.0% |
| animal_fish | 611 | 10.2% |
| plant | 405 | 6.7% |
| animal_starfish | 274 | 4.6% |
| trash_wood | 271 | 4.5% |
| animal_eel | 267 | 4.4% |
| animal_crab | 247 | 4.1% |
| trash_fabric | 247 | 4.1% |
| animal_etc | 180 | 3.0% |
| animal_shells | 171 | 2.8% |
| trash_paper | 154 | 2.6% |
| trash_fishing_gear | 127 | 2.1% |
| trash_rubber | 113 | 1.9% |
Note: Severe class imbalance (ROV 44%, trash_rubber 2%) β use conf=0.15 for better detection of rare trash classes.
Usage
from ultralytics import YOLO
from huggingface_hub import hf_hub_download
# Download model
model_path = hf_hub_download(
repo_id="Krishna-Jaiswal/yolov8m-marine-trash",
filename="yolov8m_marine_best.pt"
)
# Run inference
model = YOLO(model_path)
results = model.predict("underwater_image.jpg", task="segment", conf=0.15)
results[0].show()
Training Configuration
| Parameter | Value |
|---|---|
| Model | YOLOv8m-seg (pretrained COCO) |
| Optimizer | SGD |
| Learning rate | 0.01 β 0.001 (cosine decay) |
| Epochs | 75 (early stopping patience=20) |
| Batch size | 16 |
| Image size | 640Γ640 |
| Augmentation | Mosaic, Mixup=0.1, Copy-paste=0.1, HSV jitter, Flip |
| Platform | Kaggle T4 GPU |
Limitations
- Trained specifically on JAMSTEC ROV deep-sea footage β performance may vary on footage from different cameras or water conditions
- Class imbalance: ROV (44%) dominates vs trash_rubber (2%) β model biased toward ROV
- mAP (65.6%): Realistic for challenging underwater domain (low-light, murky conditions, occlusions)
- Best performance on seabed debris, not floating surface trash
- Per-class mAP varies: ROV ~90% vs rare trash classes ~20-40%
Real-world Applications
- Underwater ROV-based ocean cleanup systems
- Marine pollution monitoring and research
- Automated seabed debris surveys
- Aligned with UN SDG 14 β Life Below Water
- Same problem domain as EU SeaClear 2.0 (β¬9M Horizon Europe project)
Citation
@dataset{trashcan2020,
title = {TrashCan 1.0: An Instance-segmentation Labeled Dataset of Trash Observations},
author = {Hong, Jungseok and Fulton, Michael and Sattar, Junaed},
year = {2020},
url = {https://conservancy.umn.edu/handle/11299/214865}
}

