Skip to content

rahmathanifpurnama/Model_Transfer_Learning_EfficientNetB0

Repository files navigation

🐦 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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors