Bu repoda, bitki hastalıklarını tespit etmek amacıyla geliştirilmiş mobil uygulamaya ait kod ve model bulunmaktadır. Uygulama, önceden eğitilmiş Inception-V3 modelini kullanarak bitkilerdeki hastalıkları sınıflandırmaktadır. Ayrıca, kamera ile çekilen görüntülerin arka planı remove.bg servisi kullanılarak temizlenmekte ve bu işlem, hastalık tespiti öncesinde gerçekleştirilmektedir.
Bitki hastalıklarının tespiti için, Mendeley Data sitesinde yer alan veri setini kullandık. Bu veri seti, sağlıklı ve hasta bitkilere ait etiketli görüntüler içermektedir. Eğitim, doğrulama ve test setlerine bölerek modeli eğittik ve değerlendirdik.
Model, görüntü sınıflandırma görevlerinde başarılı olan Inception-V3 mimarisi üzerine kurulmuştur. Transfer öğrenme yöntemini uyguladık ve modelimizi bitki hastalıklarını tespit edebilecek şekilde ince ayarladık.
- Hastalık Tespiti: Model, bitkinin bir görüntüsünden hastalık türünü tahmin eder.
- Arka Plan Temizleme: Daha iyi doğruluk için, kamera ile çekilen görüntüler
remove.bg
API'si ile işlenip arka plan temizlendikten sonra hastalık tespitine tabi tutulur. - Mobil Entegrasyon: Model, mobil uygulamaya entegre edilmiştir. Kullanıcılar, bitki görüntülerini kameradan çekebilir veya yükleyebilir ve anında hastalık tespit sonuçları alabilir.
Model mimarisi şu katmanlardan oluşmaktadır:
- Inception-V3 taban modeli (ImageNet üzerinde önceden eğitilmiş, son katmanları kaldırılmış).
- Global Ortalama Havuzlama Katmanı: Inception-V3 ağının çıkışındaki özelliklerin boyutunu azaltır.
- Tam Bağlantılı Katmanlar: 1024 nöronlu iki tam bağlantılı katman ve
ReLU
aktivasyon fonksiyonu. - Dropout Katmanları: Aşırı öğrenmeyi önlemek için her tam bağlantılı katmandan sonra eklenmiştir.
- Çıkış Katmanı: Hastalıkları çok sınıflı sınıflandırma amacıyla softmax aktivasyonlu bir katman.
Model, Mendeley'den indirilen veri seti ile aşağıdaki konfigürasyonda eğitildi:
- Optimizasyon: Adam
- Kayıp Fonksiyonu: Kategorik Çapraz Entropi
- Batch Boyutu: 12
- Epoch Sayısı: 20
- Callbacks:
- ModelCheckpoint: En iyi doğrulama doğruluğuna göre modeli kaydeder.
- EarlyStopping: 10 epoch boyunca doğrulama doğruluğunda iyileşme olmazsa eğitimi durdurur.
Model, test veri setinde yüksek doğruluk oranı elde etmiştir ve farklı bitki hastalıklarını tespit etmede oldukça başarılıdır.
-
Bu repoyu klonlayın:
git clone <repo-link> cd <repo-directory>
-
Gerekli Python paketlerini yükleyin:
pip install -r requirements.txt
-
Verileri Mendeley üzerinden indirip,
train
,test
veval
dizinlerine yerleştirin. -
Google Drive'ınızı Colab'e bağlayın (Colab kullanıyorsanız):
from google.colab import drive drive.mount('/content/drive')
-
Modeli eğitmek için aşağıdaki scripti çalıştırın:
python train.py
-
Eğitilen modeli mobil uygulamaya entegre edin.
- Görüntü yakalama veya yükleme: Kullanıcı, bir bitkinin fotoğrafını çekebilir veya mevcut bir görüntüyü yükleyebilir.
- Arka Plan Temizleme: Uygulama,
remove.bg
API'si kullanarak görüntüdeki arka planı temizler. - Hastalık Tespiti: Temizlenmiş görüntü, hastalık tespiti için Inception-V3 modeline gönderilir. Tahmin edilen hastalık sonucu ekranda gösterilir.
- Veri Seti: Bitki hastalıklarının sınıflandırılması için yüksek kaliteli veriler sağlayan Plant Village Dataset katkıcılarına teşekkür ederiz.
- remove.bg: Arka plan temizleme için remove.bg servisini kullandık.