π¦ Bird Species Classification with CNN & Transfer Learning (EfficientNetB0) π Deskripsi Proyek
Proyek ini merupakan implementasi Convolutional Neural Network (CNN) dengan pendekatan transfer learning menggunakan arsitektur EfficientNetB0 untuk mengklasifikasikan spesies burung hama pemakan biji-bijian pada lahan padi. Model dirancang untuk membedakan empat spesies utama (Lonchura leucogastroides, Lonchura maja, Lonchura punctulata, Passer montanus) serta satu kelas tambahan Unknown (burung non-pemakan biji).
Penelitian ini bertujuan mendukung sistem pertanian cerdas (smart farming) dalam mendeteksi spesies burung hama secara otomatis sehingga petani dapat mengambil tindakan pengendalian yang lebih efektif.
βοΈ Teknologi & Tools
Bahasa: Python 3.10+
Framework: TensorFlow / Keras
Notebook: Google Colaboratory (GPU runtime)
IDE tambahan: Visual Studio Code
Pustaka pendukung:
numpy, pandas, matplotlib, opencv-python
scikit-learn (untuk evaluasi & Stratified K-Fold CV)
tqdm (progress bar)
π Struktur Dataset
Dataset diperoleh dari eBird.org dan melalui proses cleaning, downsampling, dan labeling.
dataset/ β βββ train/ # Data latih (70%) β βββ Lonchura_leucogastroides/ β βββ Lonchura_maja/ β βββ Lonchura_punctulata/ β βββ Passer_montanus/ β βββ Unknown/ β βββ test/ # Data uji (30%) βββ Lonchura_leucogastroides/ βββ Lonchura_maja/ βββ Lonchura_punctulata/ βββ Passer_montanus/ βββ Unknown/
Ukuran citra diseragamkan ke 224Γ224 piksel RGB sesuai standar EfficientNet-B0.
π Langkah Eksekusi
Clone repositori & masuk ke direktori proyek
git clone cd bird-cnn-classification
Install dependencies
pip install -r requirements.txt
Jalankan notebook Buka bird_classification_cnn_transfer_learning.ipynb di Google Colab atau Jupyter Notebook, lalu jalankan sel satu per satu.
Pelatihan model
Backbone: EfficientNetB0 (pre-trained on ImageNet)
Head klasifikasi: GlobalAveragePooling β Dropout β Dense(256, relu) β Dropout β Dense(5, softmax)
Optimizer: Adam (lr=1e-4)
Loss: Categorical Crossentropy + Label Smoothing (0.05)
Epochs: 30 (early stopping di epoch ke-24)
Evaluasi
Confusion Matrix & Classification Report
Stratified K-Fold Cross Validation (k=5)
Metrik utama: Accuracy, Precision, Recall, F1-score
π Hasil Utama
Akurasi Training: 93.45% (epoch ke-14)
Akurasi Validasi: 81.51%
Akurasi Uji (Hold-out): Β±82%
Precision & Recall terbaik: Lonchura maja (0.90 / 0.90)
Kelas paling sulit: Lonchura punctulata (F1 = 0.80)
Cross Validation (5-Fold Stratified)
Total data validasi: 1.510 citra
Konsistensi performa across folds dengan standar deviasi rendah
Confusion Matrix agregat menunjukkan kesalahan dominan antarspesies Lonchura
π Catatan & Keterbatasan
Kesalahan klasifikasi dominan antarspesies bondol (Lonchura) akibat kemiripan morfologi.
Faktor teknis: banyak citra diambil dari jarak jauh dengan ukuran burung kecil, serta adanya noise (vegetasi/benda sekitar).
Perlu dataset lapangan tambahan dengan variasi kondisi pencahayaan & sudut pandang agar model lebih robust.