Create README.md
Browse files
README.md
ADDED
@@ -0,0 +1,107 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
language:
|
3 |
+
- en
|
4 |
+
base_model:
|
5 |
+
- Ultralytics/YOLO11
|
6 |
+
tags:
|
7 |
+
- yolo
|
8 |
+
- yolo11
|
9 |
+
- yolo11n
|
10 |
+
- urchin
|
11 |
+
- sea
|
12 |
+
- marine-detection
|
13 |
+
pipeline_tag: object-detection
|
14 |
+
---
|
15 |
+
# Yolo11n Sea Urchin Detector
|
16 |
+
|
17 |
+
## Model Details / Overview
|
18 |
+
This model was trained to detect sea urchins using the YOLO11 architecture. It leverages data from multiple open datasets to identify and locate urchins in various underwater images.
|
19 |
+
|
20 |
+
- **Model Architecture**: YOLO11n
|
21 |
+
- **Task**: Object Detection (Urchin Detection)
|
22 |
+
- **Footage Type**: Underwater Footage (Color and Grayscale)
|
23 |
+
- **Classes**: 1 (urchin)
|
24 |
+
|
25 |
+
## Test Results
|
26 |
+
![results](./results.jpg)
|
27 |
+
|
28 |
+
## Model Weights
|
29 |
+
The model's weights can be found [here](./yolo11n_urchin_trained.pt)
|
30 |
+
|
31 |
+
# Intended Use
|
32 |
+
- Real-time detections on underwater footage
|
33 |
+
- Post-processed video/imagery for detecting sea urchins in underwater environments
|
34 |
+
|
35 |
+
# Factors
|
36 |
+
### Model Performance
|
37 |
+
- Multi-source Dataset: Trained on datasets that include color and urchin images from various angles, enabling the model to perform effectively across different visual inputs.
|
38 |
+
- Model Architecture (YOLO11n): Lightweight and optimized for real-time urchin detection in underwater footage.
|
39 |
+
- Training Data: The dataset includes a mix of color and grayscale images, split into 70% training, 20% validation, and 10% test data.
|
40 |
+
- Training Parameters: Configured with 50 epochs, a 0.001 learning rate, and 640x640 image size for optimal model convergence.
|
41 |
+
|
42 |
+
## Datasets
|
43 |
+
The training data was collected, parsed and organized from open sources:
|
44 |
+
1. **[Orange-OpenSource Marine-Detect](https://github.com/Orange-OpenSource/marine-detect)**
|
45 |
+
2. **[Roboflow - Sakana Urchins CJLib](https://universe.roboflow.com/sakana/urchins-cjlib)**
|
46 |
+
|
47 |
+
- **Roboflow Details**:
|
48 |
+
- **Workspace**: sakana
|
49 |
+
- **Project**: urchins-cjlib
|
50 |
+
- **Version**: 1
|
51 |
+
- **License**: CC BY 4.0
|
52 |
+
- **URL**: [https://universe.roboflow.com/sakana/urchins-cjlib/dataset/1](https://universe.roboflow.com/sakana/urchins-cjlib/dataset/1)
|
53 |
+
|
54 |
+
### Dataset Composition:
|
55 |
+
- **Training Images**: 1169
|
56 |
+
- **Validation Images**: 334
|
57 |
+
- **Test Images**: 168
|
58 |
+
- **Train/Val/Test Split Ratio**: 7:2:1
|
59 |
+
|
60 |
+
## Metrics
|
61 |
+
Below are the key metrics from the model evaluation on the validation set:
|
62 |
+
|
63 |
+
- **Precision**: 0.885
|
64 |
+
- **Recall**: 0.861
|
65 |
+
- **mAP50**: 0.937
|
66 |
+
- **mAP50-95**: 0.852
|
67 |
+
|
68 |
+
## Training Validation Results
|
69 |
+
### Training and Validation Losses
|
70 |
+
![Training and Validation Losses](./train/results.png)
|
71 |
+
|
72 |
+
### Confusion Matrix
|
73 |
+
![Confusion Matrix](./train/confusion_matrix.png)
|
74 |
+
|
75 |
+
### Precision-Recall Curve
|
76 |
+
![Precision-Recall Curve](./train/PR_curve.png)
|
77 |
+
|
78 |
+
### F1 Score Curve
|
79 |
+
![F1 Score Curve](./train/F1_curve.png)
|
80 |
+
|
81 |
+
## Training Configuration
|
82 |
+
- **Model Weights File**: `yolo11n_urchin_trained.pt`
|
83 |
+
- **Number of Epochs**: 50
|
84 |
+
- **Learning Rate**: 0.001
|
85 |
+
- **Batch Size**: 32
|
86 |
+
- **Image Size**: 640x640
|
87 |
+
|
88 |
+
## Deployment
|
89 |
+
### How to Use the Model
|
90 |
+
|
91 |
+
To use the trained model, follow these steps:
|
92 |
+
|
93 |
+
1. **Load the Model**:
|
94 |
+
```python
|
95 |
+
from ultralytics import YOLO
|
96 |
+
|
97 |
+
# Load the model
|
98 |
+
model = YOLO("yolo11n_urchin_trained.pt")
|
99 |
+
|
100 |
+
## Limitations
|
101 |
+
The model was trained on a mix of open source images. It may not generalize well to other environments or non-marine scenarios. Additionally, environmental variations, occlusions, or poor lighting may affect performance.
|
102 |
+
|
103 |
+
## Additional Notes:
|
104 |
+
Dataset Sources:
|
105 |
+
- Two datasets were combined to improve model robustness, allowing the model to adapt to varying lighting and coloration conditions.
|
106 |
+
Ethical Considerations:
|
107 |
+
- The detection results should be validated before using them for critical applications. The model’s performance in new environments might vary, and it may have biases if certain types of sea urchins were underrepresented in the training datasets.
|