|
|
--- |
|
|
license: mit |
|
|
language: |
|
|
- en |
|
|
- id |
|
|
metrics: |
|
|
- recall |
|
|
- precision |
|
|
- f1 |
|
|
base_model: |
|
|
- Ultralytics/YOLOv8 |
|
|
pipeline_tag: object-detection |
|
|
tags: |
|
|
- waste-classification |
|
|
- sustainability |
|
|
- yolov8 |
|
|
--- |
|
|
# ποΈ Real Time Waste Classification β YOLOv8 Large (High Resolution) |
|
|
|
|
|
A high-resolution real time waste-classification model built using **YOLOv8-Large**, fine-tuned to detect and categorize **12 types of waste** use camera. |
|
|
This model was developed as a Capstone Mini-Project for the **REA AI Engineering Bootcamp**. |
|
|
|
|
|
--- |
|
|
|
|
|
## π Overview |
|
|
|
|
|
This project provides a custom object-detection model designed to support: |
|
|
|
|
|
* β»οΈ **Automated waste-sorting systems** |
|
|
* π± **Recycling education applications** |
|
|
* π **Environmental monitoring tools** |
|
|
|
|
|
The model was trained on 1280Γ1280 high-resolution images to better capture fine-grained details common in trash and recyclables. |
|
|
|
|
|
--- |
|
|
|
|
|
## π§ Model Details |
|
|
|
|
|
| Property | Value | |
|
|
| --------------------- | ---------------------- | |
|
|
| **Architecture** | YOLOv8-Large (yolov8l) | |
|
|
| **Task** | Object (Real Time) Detection| |
|
|
| **Input Size** | 1280 Γ 1280 | |
|
|
| **Number of Classes** | 12 | |
|
|
| **Base Model** | `ultralytics/yolov8l` | |
|
|
| **License** | MIT | |
|
|
|
|
|
--- |
|
|
|
|
|
## π― Classes |
|
|
|
|
|
The model detects 12 waste categories, including: |
|
|
|
|
|
* Clothes |
|
|
* Brown-Glass |
|
|
* Shoes |
|
|
* Plastic |
|
|
* Biological |
|
|
* (and others) |
|
|
|
|
|
--- |
|
|
|
|
|
## π Evaluation Results |
|
|
|
|
|
The model was evaluated on **1,935 validation images**. |
|
|
|
|
|
### **Overall Performance** |
|
|
|
|
|
| Metric | Score | Description | |
|
|
| ---------- | --------- | ------------------------------------ | |
|
|
| **mAP@50** | **0.783** | Strong overall detection performance | |
|
|
|
|
|
--- |
|
|
|
|
|
### **Performance by Class** |
|
|
|
|
|
The model performs extremely well on rigid, well-shaped objects but struggles with amorphous organic materials. |
|
|
|
|
|
| Class | mAP@50 | Status | Insight | |
|
|
| --------------- | ------ | ------------------- | ------------------------------- | |
|
|
| **Clothes** | 0.987 | π Excellent | Consistent shape and texture | |
|
|
| **Brown-Glass** | 0.905 | β
Very Good | Strong geometric patterns | |
|
|
| **Shoes** | 0.847 | β
Good | High recall and precision | |
|
|
| **Plastic** | 0.706 | β οΈ Moderate | Transparency/deformation issues | |
|
|
| **Biological** | 0.580 | β Needs Improvement | Blends into background | |
|
|
|
|
|
--- |
|
|
|
|
|
## π Deep Dive: Key Insights |
|
|
|
|
|
### **1. Biological Waste Challenge** |
|
|
|
|
|
* **Recall:** 0.445 |
|
|
* **Missed detections:** 741 biological items labeled as background |
|
|
* **Cause:** Organic waste lacks distinct shape or edges, making it harder for YOLO to detect. |
|
|
|
|
|
### **2. False Positives** |
|
|
|
|
|
* **540 biological false positives** on plain backgrounds |
|
|
* Possibly caused by: |
|
|
|
|
|
* Noisy labels |
|
|
* Complex textures that resemble organic material |
|
|
|
|
|
### **3. Background Confusion** |
|
|
|
|
|
* Cardboard items have **159 false positives** due to color similarity with ground surfaces. |
|
|
|
|
|
--- |
|
|
|
|
|
## βοΈ Training Configuration |
|
|
|
|
|
| Setting | Value | |
|
|
| ----------------- | --------------------------------------------------- | |
|
|
| **Hardware** | NVIDIA A100-SXM4-40GB | |
|
|
| **Training Time** | 6.26 hours | |
|
|
| **Epochs** | 50 | |
|
|
| **Batch Size** | 8 | |
|
|
| **Optimizer** | AdamW (lr = 0.000625) | |
|
|
| **Image Size** | 1280 | |
|
|
| **Augmentations** | Standard YOLOv8 + Mosaic (disabled final 10 epochs) | |
|
|
|
|
|
--- |
|
|
|
|
|
## π» Usage |
|
|
|
|
|
Install Ultralytics: |
|
|
|
|
|
```bash |
|
|
pip install ultralytics |
|
|
``` |
|
|
|
|
|
Run inference: |
|
|
|
|
|
```python |
|
|
from ultralytics import YOLO |
|
|
|
|
|
# Load model |
|
|
model = YOLO("path/to/best.pt") |
|
|
|
|
|
# Run inference |
|
|
results = model("path/to/image.jpg") |
|
|
|
|
|
# Display results |
|
|
results[0].show() |
|
|
``` |
|
|
|
|
|
--- |
|
|
|
|
|
## π¨βπ» Author |
|
|
|
|
|
**Kendrick** |
|
|
Alumni β REA AI Engineering Bootcamp |
|
|
|
|
|
This README and model card were generated with training logs and evaluation outputs. |