Sistem Klasifikasi Sampah Cerdas Berbasis Deep Learning dengan Integrasi Mekanisme Atensi

Sistem Klasifikasi Sampah Cerdas Berbasis Deep Learning dengan Integrasi Mekanisme Atensi

pythonpytouchstreamlite

About this Project

Proyek ini mengimplementasikan solusi Deep Learning mutakhir untuk klasifikasi sampah otomatis, membedakan antara sampah Organik dan Daur Ulang. Inti dari solusi ini adalah arsitektur ResNet-34 yang dimodifikasi dengan Convolutional Block Attention Module (CBAM). Integrasi CBAM memungkinkan model untuk memfokuskan "perhatian" pada fitur visual yang relevan (seperti bentuk dan tekstur objek) sambil menekan noise dari latar belakang yang kompleks. Hasilnya adalah model yang lebih akurat dan robust dibandingkan arsitektur CNN standar.

Details

Proyek ini mengimplementasikan solusi Deep Learning mutakhir untuk klasifikasi sampah otomatis, membedakan antara sampah Organik dan Daur Ulang. Inti dari solusi ini adalah arsitektur ResNet-34 yang dimodifikasi dengan Convolutional Block Attention Module (CBAM).

Integrasi CBAM memungkinkan model untuk memfokuskan "perhatian" pada fitur visual yang relevan (seperti bentuk dan tekstur objek) sambil menekan noise dari latar belakang yang kompleks. Hasilnya adalah model yang lebih akurat dan robust dibandingkan arsitektur CNN standar.

✨ Fitur Utama

Arsitektur Hybrid: ResNet-34 backbone dengan modul atensi CBAM pada setiap blok residual.

Akurasi Tinggi: Mencapai akurasi validasi ~92% dan F1-Score 0.92.

Aplikasi Interaktif: Antarmuka pengguna berbasis web yang intuitif menggunakan Streamlit.

Reproducibility: Pipeline pelatihan lengkap dengan logging, checkpointing, dan konfigurasi benih acak.

🏗️ Struktur Proyek

resenet-cbam/

├── config/ # File konfigurasi

├── data/ # Direktori dataset (Train/Val/Test)

├── docs/ # Dokumentasi teknis & draft paper

│ ├── architecture_details.md

│ └── paper_draft.md

├── models/ # Definisi model & bobot tersimpan

│ ├── cbam_resnet.py # Implementasi PyTorch CBAM-ResNet

│ └── resnet_cbam.pth # Bobot model terlatih (Best Model)

├── notebooks/ # Jupyter Notebooks untuk riset & eksperimen

│ └── cbam_resnet_research.ipynb

├── src/ # Source code pelatihan & utilitas

│ ├── train.py # Skrip pelatihan utama

│ └── prepare_data.py # Skrip persiapan data

├── streamlit_app.py # Aplikasi Web Streamlit (Inference Demo)

├── requirements.txt # Dependensi Python

└── README.md # Dokumentasi Proyek

🚀 Memulai (Getting Started)

Prasyarat

Python 3.10 atau lebih baru

CUDA (Opsional, disarankan untuk pelatihan)

Instalasi

Proyek ini menggunakan uv untuk manajemen paket yang cepat, namun juga mendukung pip standar.

Opsi 1: Menggunakan uv (Disarankan)

# Instal uv jika belum ada

curl -LsSf https://astral.sh/uv/install.sh | sh

# Sinkronisasi dependensi

uv sync

Opsi 2: Menggunakan pip

pip install -r requirements.txt

💻 Penggunaan

1. Persiapan Data

Pastikan dataset Anda terstruktur dalam format ImageFolder standar:

data/

train/

organic/

recyclable/

val/

organic/

recyclable/

2. Pelatihan Model

Jalankan skrip pelatihan untuk memulai proses training dari awal:

uv run python src/train.py

# atau

python src/train.py

Log pelatihan akan disimpan di training.log dan model terbaik akan disimpan di models/resnet_cbam.pth.

3. Menjalankan Aplikasi Demo

Gunakan Streamlit untuk mencoba model secara interaktif melalui browser:

uv run streamlit run streamlit_app.py

# atau

streamlit run streamlit_app.py

Akses aplikasi di http://localhost:8501.

🧠 Arsitektur Model

Model ini menggunakan pendekatan Residual Attention Network:

Backbone: ResNet-34 (34 Layer Convolutional).

Attention: Modul CBAM disisipkan di dalam setiap BasicBlock pada jalur residual.

Mekanisme:

Channel Attention: Menilai "apa" yang penting (fitur konten).

Spatial Attention: Menilai "di mana" fitur penting berada (lokalisasi).

Detail lengkap arsitektur dapat dilihat di Dokumentasi Arsitektur.

📊 Hasil & Performa

Berdasarkan eksperimen pada dataset uji:

Metrik Nilai

Akurasi Validasi 94.5%

Precision (Avg) 92%

Recall (Avg) 92%

F1-Score 0.92

Technologies Used

p
python
p
pytouch
s
streamlite

Interested in working together?

Let's discuss your next project and bring your ideas to life.

© 2026 Eggi Satria. All rights reserved.