Problem
Uydu görüntüsüne bir sınıf etiketi atamak, modelin hangi görüntü bölgelerine dayanarak karar verdiğini göstermiyor. Bu projede üç CNN modelini aynı veri kümesinde karşılaştırdık. Eğitilen modelleri FastAPI üzerinden sunup React arayüzünde harita, tahmin ve Grad-CAM görselleştirmesini bir araya getirdim.
Model karşılaştırması
EuroSAT’ın RGB veri kümesinde 10 arazi sınıfına ait 27.000 etiketli Sentinel-2 görüntüsüyle üç PyTorch modeli eğittik. ResNet-50 ve GoogLeNet için ImageNet ağırlıklarıyla transfer learning uygulandı. Karşılaştırma için küçük bir CNN modeli sıfırdan eğitildi. Tüm deneylerde aynı train/test ayrımı ve sabit random seed kullanıldı.

ResNet-50 ve GoogLeNet test doğruluğunda %98’i geçti. GoogLeNet, 6–7 milyon parametreyle yaklaşık 25 milyon parametreli ResNet-50’ye yakın sonuç verdi.
Modelden uygulamaya
Model inference işlemlerini FastAPI servisine bağladım; EuroSAT.AI arayüzünü React ve Leaflet ile geliştirdim. Kullanıcı model seçip görüntü veya koordinat girerek sınıf tahminini ve confidence skorunu görebiliyor. Grad-CAM görünümü, modelin tahmin sırasında ağırlık verdiği bölgeleri ısı haritasıyla gösteriyor.

X-ray görünümü, modelin aktivasyon haritasını sınıf ve güven skoruyla birlikte sunuyor.
Model sınırlamaları
Sıfırdan eğitilen CNN yaklaşık %85–88 doğrulukta kaldı. Özellikle Highway ve River sınıflarında PermanentCrop ile karışmalar görüldü. Bu model, önceden eğitilmiş ağların yakaladığı mekânsal ve dokusal özellikleri aynı başarıyla öğrenemedi. Test sonuçlarında GoogLeNet, ResNet-50’ye yakın doğruluğu daha az parametreyle sağladı.
Sonuç
ResNet-50 ve GoogLeNet %98’in üzerinde test doğruluğuna ulaştı. Full-stack uygulamada model seçimi, haritadan girdi, inference API’si ve Grad-CAM çıktıları birlikte çalışıyor.
Sistem 64×64 RGB görüntüler üzerinde çalışıyor; Sentinel-2’nin NIR ve SWIR bantları kullanılmıyor. Model görüntünün tamamını sınıflandırdığı için küçük nesnelerin konumunu belirlemiyor. Sonraki adımlar multispektral veriyle eğitim ve semantic segmentation.
