Proyek PyTorch Lightning untuk mengklasifikasikan 15 jenis serangga peternakan menggunakan MobileNetV3. Proyek ini bertujuan untuk membantu dalam mengidentifikasi serangga yang berpotensi berbahaya di lingkungan pertanian, memungkinkan pengguna untuk mengambil tindakan yang tepat guna melindungi peternakan mereka.
- Gambaran Umum
- Dataset
- Arsitektur Model
- Perbaikan yang Dilakukan
- Persyaratan
- Instalasi
- Penggunaan
- Hasil
- Visualisasi
- Kontribusi
- Lisensi
- Ucapan Terima Kasih
Klasifikasi Serangga Peternakan menggunakan dataset gambar yang dikurasi, menampilkan 15 jenis serangga yang umum ditemukan di lingkungan pertanian. Dengan memanfaatkan model MobileNetV3 yang telah dilatih sebelumnya dan melakukan fine-tuning pada dataset ini, proyek ini menyediakan metode yang efisien dan akurat untuk identifikasi serangga.
Dataset terdiri dari gambar berkualitas tinggi yang mewakili berbagai serangga, menyoroti fitur, warna, dan pola mereka yang unik. Setiap kelas serangga memiliki beberapa gambar untuk memastikan model belajar fitur yang robust.
- Jumlah Kelas: 15
- Resolusi Gambar: 224x224 piksel
- Pembagian Data:
- Data Latih: 80%
- Data Validasi: 10%
- Data Uji: 10%
- Model Dasar: MobileNetV3 Large (pra-latih pada ImageNet)
- Modifikasi:
- Mengganti lapisan classifier terakhir untuk menghasilkan 15 kelas.
- Menambahkan teknik augmentasi dan normalisasi data.
- Menerapkan penjadwalan learning rate dan early stopping.
Perbaikan berikut diterapkan untuk meningkatkan performa model dan kualitas output:
-
Normalisasi Data: Menerapkan normalisasi mean dan standar deviasi berdasarkan statistik ImageNet agar sesuai dengan ekspektasi model yang telah dilatih sebelumnya.
-
Strategi Augmentasi: Memisahkan transformasi untuk dataset latih dan validasi/pengujian agar augmentasi hanya diterapkan selama pelatihan.
-
Penyesuaian Pembagian Data: Meningkatkan ukuran data validasi menjadi 10% untuk evaluasi model yang lebih baik.
-
Metode Akurasi: Mengintegrasikan perhitungan akurasi selama fase pelatihan, validasi, dan pengujian.
-
Scheduler Learning Rate: Menerapkan scheduler
ReduceLROnPlateau
untuk menyesuaikan learning rate secara dinamis. -
Optimasi Perangkat: Memastikan penggunaan GPU secara otomatis jika tersedia.
-
Peningkatan Visualisasi: Memperbaiki fungsi untuk menampilkan gambar dengan benar setelah invers normalisasi.
-
Tuning Hyperparameter: Mengoptimalkan learning rate dan weight decay untuk konvergensi yang lebih baik.
- Python 3.7 atau lebih tinggi
- PyTorch
- PyTorch Lightning
- torchvision
- wandb (Weights & Biases)
- matplotlib
- numpy
- scikit-learn
-
Kloning Repository
git clone https://github.com/username/klasifikasi-serangga-peternakan.git cd klasifikasi-serangga-peternakan
-
Buat Lingkungan Virtual
python -m venv venv source venv/bin/activate # Pada Windows gunakan `venv\Scripts\activate`
-
Instal Dependensi
pip install -r requirements.txt
-
Konfigurasi Weights & Biases
Daftar untuk akun Weights & Biases dan login:
wandb login
Setelah melatih model dengan konfigurasi yang ditingkatkan, diperoleh hasil sebagai berikut: