Langsung ke demo
Deep Learning Computer vision · CRISP-DM

Memilah sampah cukup dengan satu foto

Pemilahan sampah di Indonesia masih banyak dilakukan manual, lambat, dan sering salah, padahal daur ulang butuh sampah yang sudah terpilah. Model ini mengenali 6 jenis sampah dari foto dan berjalan langsung di browser Anda.

Akurasi di test set
89,2%
379 foto yang belum pernah dilihat model
Macro F1
0,868
target di atas 0,85 tercapai
Ukuran model
8,7 MB
MobileNetV2, format ONNX
Waktu inference
±10 ms
CPU laptop, per foto

Coba model

Memuat model...
Seret foto sampah ke sini atau pakai tombol di bawah. Foto diproses di perangkat Anda dan tidak diunggah ke mana pun.

Atau pilih contoh gambar

dari test set, 2 per kelas

Hasil prediksi, 3 kategori teratas, dan cara membuang sampahnya akan muncul di sini.

1. Business understanding

Masalah dan tujuan

Indonesia menghasilkan puluhan juta ton sampah setiap tahun, dan banyak yang berakhir di TPA dalam keadaan tercampur. Pemilahan masih bergantung pada tenaga manusia di rumah tangga, TPS, dan bank sampah: lambat, melelahkan, dan sering salah karena tidak semua orang tahu cara membedakan jenis material. Padahal industri daur ulang membutuhkan sampah yang sudah terpilah per jenis. Sampah yang tercampur nilainya turun dan sulit diolah.

Tujuan: membangun model yang mengklasifikasikan foto sampah ke 6 kategori (kardus, kaca, logam, kertas, plastik, residu) sebagai dasar sistem pemilahan otomatis atau aplikasi edukasi pemilahan sampah.

1

Seberapa akurat dengan data terbatas?

Hanya sekitar 2.500 foto untuk 6 kelas. Apakah cukup untuk model yang andal?

2

Seberapa besar untungnya transfer learning?

Dibandingkan CNN yang dilatih dari nol dengan data yang sama.

3

Kelas mana yang paling sering tertukar?

Dan kenapa model bingung di pasangan kelas tersebut.

4

Model mana yang cocok untuk aplikasi nyata?

Menimbang akurasi, ukuran file, dan kecepatan, karena model dijalankan di browser.

Kriteria sukses: macro F1 di test set di atas 0,85, tidak ada kelas dengan F1 di bawah 0,70, dan model di bawah 30 MB. Macro F1 dipakai (bukan hanya akurasi) karena datanya tidak seimbang: macro F1 menghitung setiap kelas sama penting, sehingga kelas kecil seperti residu tidak bisa diabaikan.

2 dan 3. Data understanding dan preparation

Dataset

Dataset TrashNet berisi foto satu objek sampah di atas latar polos, difoto dalam ruangan dengan resolusi seragam 512 x 384 piksel. Enam pasang file ternyata identik tetapi punya label berbeda (misalnya leher botol kaca yang juga ada di folder logam), sehingga dibuang sebelum data dibagi.

2.527
foto asli
2.521
setelah 6 duplikat dibuang
70/15/15
split train/val/test (stratified)
4,3 : 1
rasio kelas terbanyak vs tersedikit

Distribusi kelas

Kertas paling banyak (594), residu paling sedikit (137). Arahkan kursor untuk melihat pembagian per split.

Memuat chart...

Karena tidak seimbang, saat training kesalahan pada kelas kecil diberi bobot lebih besar (class weights). Residu mendapat bobot sekitar 3 kali rata-rata.

Contoh foto

Contoh kardus
Kardus
Contoh kaca
Kaca
Contoh logam
Logam
Contoh kertas
Kertas
Contoh plastik
Plastik
Contoh residu
Residu

Keterbatasan yang terlihat

  • Latar seragam dan pencahayaan studio. Tempat sampah sungguhan jauh lebih ramai dan kotor.
  • Satu objek per foto, bersih dan utuh.
  • Data kecil, terutama residu yang hanya 137 foto dengan isi sangat beragam.
  • Produk luar negeri. Kemasannya bisa berbeda dari sampah lokal Indonesia.
4. Modeling

Pendekatan: transfer learning

Melatih model dari nol butuh jutaan foto. Transfer learning memakai model yang sudah belajar "cara melihat" dari 1,2 juta foto ImageNet, lalu mengajarinya membedakan jenis sampah. Ibaratnya seperti koki berpengalaman yang tinggal mempelajari resep baru, bukan belajar memasak dari awal.

Bobot dari ImageNet Dibekukan (tidak dilatih) Dilatih dengan foto sampah

Tiga model yang dibandingkan

A. CNN dari nol

Baseline, 1,2 juta parameter

  • 4 blok konvolusi, semua bobot mulai dari acak
  • Menunjukkan batas kemampuan tanpa pengetahuan awal

B. MobileNetV2 terpilih

Pretrained, 2,2 juta parameter

  • Dirancang untuk HP dan perangkat ringan
  • Fine-tuning 5 blok terakhir

C. ResNet50

Pretrained, 23,5 juta parameter

  • Model besar sebagai pembanding "batas atas"
  • Fine-tuning blok terakhir (layer4)

Pengaturan yang sama untuk semua model: augmentasi (crop acak, flip, rotasi kecil, variasi cahaya), class weights, optimizer AdamW, learning rate yang otomatis diturunkan saat stagnan, early stopping, dan mixed precision di GPU RTX 4060.

5. Evaluation

Hasil

Semua angka di bawah berasal dari test set: 379 foto yang tidak dipakai sama sekali selama training maupun saat memilih model, sehingga menjadi perkiraan paling jujur untuk foto baru.

Perbandingan tiga model

Transfer learning (B dan C) unggul jauh dari CNN dari nol. MobileNetV2 hampir setara ResNet50 dengan ukuran 10 kali lebih kecil.

Memuat chart...
ModelAccuracyMacro F1ParameterUkuranGPU / fotoCPU / foto

Waktu inference diukur di laptop pengembangan (batch 1, float32) dan sedikit berubah setiap kali diukur.

Kurva training

Garis tebal: validation. Garis putus-putus: train. Pilih model yang ingin ditampilkan.

Loss (lebih rendah lebih baik)

Memuat chart...

Accuracy

Memuat chart...

CNN dari nol belajar lambat dan berhenti di akurasi validation sekitar 0,71 (underfitting). Model pretrained langsung melampaui 0,8 sejak tahap 1 dan naik lagi setelah fine-tuning. Setelah itu akurasi train terus naik mendekati 1 sementara validation tertahan, tanda overfitting ringan, dan early stopping memilih epoch terbaik sebelum itu terjadi.

Confusion matrix

MobileNetV2 di test set. Baris: label asli, kolom: prediksi.

Memuat chart...

Metrik per kelas

Batang: F1 per kelas. Titik: precision dan recall.

Memuat chart...

Kelas yang paling sering tertukar

Kardus dan kertas

6 kardus ditebak kertas, 3 kertas ditebak kardus. Kardus tipis dan kotak kemasan bercetak permukaannya mirip kertas tebal, sementara lapisan bergelombang khas kardus sering tidak terlihat dari sudut foto.

Plastik ke kaca

6 plastik ditebak kaca. Botol dan wadah plastik bening sama-sama transparan dan memantulkan cahaya seperti kaca, apalagi botol plastik berwarna hijau.

Residu ke mana-mana

Residu adalah kelas terlemah (F1 0,70). Isinya campuran bungkus beraluminium, sachet kertas, dan plastik, sehingga mirip kelas lain, dan datanya paling sedikit.

Grad-CAM: apa yang dilihat model?

Area merah paling memengaruhi keputusan model. Kolom kiri dan tengah: prediksi benar, kolom kanan: prediksi salah.

Heatmap Grad-CAM untuk 2 prediksi benar dan 1 prediksi salah dari setiap kelas
Klik gambar untuk ukuran penuh. Gulir di dalam kotak untuk melihat semua kelas.

Model melihat objek sampahnya, bukan background: leher botol, badan kaleng, lipatan bungkus. Secara kuantitatif, perhatian model di tepi gambar (area background) selalu di bawah rata-rata untuk semua kelas. Saat salah pun, model tetap melihat objek, hanya bagian yang dilihat menyesatkan, misalnya tulisan tercetak pada kardus yang mirip kertas.

Contoh salah prediksi

41 dari 379 foto test (10,8%) salah ditebak, diurutkan dari yang paling "yakin".

Grid foto test yang salah ditebak beserta label asli, prediksi, dan confidence
Klik gambar untuk ukuran penuh.
  1. Material transparan: plastik bening dan kaca saling tertukar.
  2. Kardus tipis vs kertas: kotak kemasan putih yang tidak memperlihatkan lapisan bergelombang.
  3. Permukaan mengilap: dasar botol gelap, bungkus foil, dan kaleng penyok bercetak warna-warni.
  4. Objek kecil atau terpotong: petunjuk bentuk hilang.
  5. Label yang diragukan: misalnya tutup toples logam yang dilabeli kaca.

Median confidence prediksi salah hanya 0,71, jauh di bawah prediksi benar (0,99). Karena itu demo di atas memberi peringatan saat model kurang yakin.

Uji ketahanan

Foto test diberi gangguan buatan untuk meniru kondisi nyata. Arahkan kursor untuk melihat berapa poin akurasinya turun.

Memuat chart...

Gelap: aman

Model pretrained hanya turun 1 sampai 2,5 poin, bahkan di kecerahan 35%. CNN dari nol runtuh sampai 51 poin karena bergantung pada warna dan kecerahan.

Blur: titik lemah

Blur berat menurunkan akurasi MobileNetV2 26,6 poin (ResNet50 12,1 poin). Tekstur seperti serat kardus dan kilap kaca hilang saat foto buram.

Rotasi: aman

Turun kurang dari 3,5 poin, karena sampah memang tidak punya orientasi tetap dan augmentasi sudah memasukkan rotasi.

6. Kesimpulan dan deployment

Kesimpulan

Model terpilih, MobileNetV2, di-export ke ONNX (8,7 MB) dan dijalankan dengan onnxruntime-web. Prediksinya di browser identik dengan PyTorch, karena preprocessing di halaman ini meniru preprocessing saat training secara persis.

1. Seberapa akurat dengan data terbatas?

Dengan sekitar 1.760 foto training, akurasi test 89,2% dan macro F1 0,868. Sekitar 9 dari 10 foto dikenali dengan benar, selama kondisi fotonya mirip dataset.

2. Seberapa besar untungnya transfer learning?

Sangat besar: macro F1 naik sekitar 20 poin (0,666 menjadi 0,868) dan jumlah kesalahan turun hampir 3 kali, dengan waktu training lebih singkat.

3. Kelas mana yang paling sering tertukar?

Kardus dengan kertas (permukaan mirip) dan plastik dengan kaca (sama-sama transparan). Residu paling lemah karena isinya campuran dan datanya sedikit.

4. Model mana yang cocok untuk aplikasi nyata?

MobileNetV2: performa setara ResNet50 (selisih macro F1 di bawah 0,01) dengan ukuran 10 kali lebih kecil dan inference di CPU beberapa kali lebih cepat.

Kriteria sukses

KriteriaTargetHasilStatus
Macro F1 di test set> 0,850,868Tercapai
F1 per kelas terendah≥ 0,700,700 (residu)Tercapai, tepat di batas
Ukuran model< 30 MB8,7 MBTercapai
Waktu inference< 1 detikbelasan msTercapai

Keterbatasan

  • Dataset kecil (2.521 foto), residu hanya 20 foto di test set sehingga angka per kelas punya ketidakpastian besar.
  • Foto studio dengan latar seragam. Akurasi di tempat sampah sungguhan kemungkinan lebih rendah.
  • Hanya satu objek per foto, belum bisa menangani tumpukan sampah campuran.
  • Belum diuji di foto nyata dari kondisi Indonesia, dan rentan terhadap foto buram.

Pengembangan selanjutnya

  • Data foto nyata IndonesiaDari TPS, bank sampah, dan rumah tangga, dengan latar ramai dan kondisi kotor.
  • Object detectionMisalnya YOLO, untuk mengenali banyak sampah sekaligus dalam satu foto.
  • Kelas baruSampah organik, B3 (baterai, lampu, obat), dan elektronik.
  • Augmentasi lebih kayaBlur, noise, dan penggantian latar supaya lebih tahan kondisi nyata.