Bu proje, kapalı ve siyah hazneli bir geri dönüşüm kutusunda atıkları otomatik sınıflandıran bir derin öğrenme modeli geliştirmek için hazırlanmıştır. Hedef sınıflar: plastik, cam, kağıt, metal, karton ve çöp.
- Siyah hazne şartını sağlamak için arka plan temizleme (rembg) ve siyah zemin simülasyonu
- Sınıf başına maksimum 1500 görsel ile dengeli master_dataset
- Veri artırma (rotation/shift/zoom) ve fill_mode='constant' ile siyah zemin korunumu
- MobileNetV2 tabanlı transfer öğrenme + fine-tuning
- Eğitim sonunda ~%93 doğruluk bandı
Ekip arkadaşlarımla hazırladığım proje ve model tanıtım videosu: https://youtu.be/TyzawMWt5Sc?si=ukQ2pQva0srhl850
Streamlit Community Cloud üzerinde canlı çalışan uygulama: https://final-project-recycle-classification-p7qvxat9uoyxzkzjazn5ib.streamlit.app/
Veriler üç kaynaktan toplanmıştır:
- Google Drive üzerinden sınıfın derlediği yerel veri seti
- Kaggle üzerindeki birden fazla çöp sınıflandırma veri seti
- Ek Kaggle veri seti desteği (Mehmet Yıldız)
dataset/ klasörü aşağıdaki sınıf yapısını örnekler:
dataset/
cardboard/
glass/
metal/
paper/
plastic/
trash/
- Girdi boyutu: 224x224x3
- Omurga: MobileNetV2 (ImageNet ağırlıkları)
- Başlık: GlobalAveragePooling2D + Dropout(0.5) + Dense(6, softmax)
- İki aşamalı eğitim:
- Dondurulmuş omurga ile ilk eğitim
- Son ~55 katmanın açılmasıyla fine-tuning (öğrenme hızı 1e-5)
Eğitim sonrası model: akilli_kutu_model.keras
Notebook çıktılarında doğruluk bandı %93+ seviyesine ulaşmaktadır. Karmaşıklık matrisi ve sınıflandırma raporu aynı notebook içinde üretilmiştir.
Notebook, Google Colab üzerinde çalışacak şekilde tasarlanmıştır.
pip install -q "numpy<2" "scipy<1.13" rembg kagglehub onnxruntimefinal_project_recyle.ipynbdosyasını Colab’da açın.- Drive veri seti yolu (
drive_dataset_path) ve Kaggle indirme adımlarını çalıştırın. - Hücreleri sırayla çalıştırarak master dataset oluşturun, eğitimi başlatın ve modeli dışa aktarın.
Bu proje Streamlit Community Cloud üzerinde doğrudan çalıştırılabilir. GitHub Pages statik olduğu için Streamlit uygulamasını barındıramaz.
akilli_kutu_model.kerasdosyasınımodel/klasörüne (veya repo köküne) koyun.- Streamlit Cloud’da yeni uygulama oluşturup ana dosya olarak
app.pyseçin. requirements.txtveruntime.txtdosyaları üzerinden bağımlılıklar ve Python sürümü otomatik kurulacaktır (TensorFlow 2.16.x ve Python 3.11 kullanılmaktadır).
.
├─ app.py
├─ classifier.py
├─ dataset/
├─ model/
│ └─ akilli_kutu_model.keras
├─ final_project_recyle.ipynb
├─ requirements.txt
├─ runtime.txt
├─ README.md
├─ LICENSE
└─ CONTRIBUTING.md
- Veri seti derleme: Sınıf Katkısı (Google Drive)
- Ek Kaggle veri seti desteği: Mehmet Yıldız
- Model geliştirme ve eğitim: Efe Can Kara
- Streamlit arayüzü ve deployment: Yiğit Altundağ
MIT lisansı altında yayımlanmıştır. Ayrıntılar için LICENSE dosyasına bakın.