Geleneksel görüntü işleme yöntemleri, değişken ışık koşulları ve yüksek gürültülü ortamlarda nesne segmentasyonu ve sınıflandırma konularında yetersiz kalmaktadır.
Özellikle mobil cihazların sınırlı CPU/GPU ve bellek kapasiteleri, ağır derin öğrenme modellerinin doğrudan kullanımını imkansız kılmaktadır. Bu tez, yüksek başarımlı derin öğrenme modellerinin doğruluğundan ödün vermeden, mobil ortamda çalışabilecek optimize edilmiş bir boru hattı (pipeline) geliştirerek literatürdeki “hesaplama maliyeti vs. doğruluk” ikilemini çözmeyi hedeflemektedir.
Çalışma, evrişimli sinir ağlarının (CNN) mobil dağıtım süreçlerindeki optimizasyon tekniklerine odaklanmaktadır.
Işık değişimlerine duyarsız bir ön işleme hattı tasarımı.
Transfer Learning (ResNet50) kullanarak sınırlı veri setinden maksimum öznitelik kazanımı.
Anomali tespiti ile veri kümesi kalitesinin artırılması.
Modelin mobil cihazlarda <100ms gecikme süresi ile çalışabilmesi için nicemleme (quantization) süreçlerinin uygulanması.
Görüntü Ön İşleme Hattı Görüntülerin model girişine (224x224x3) hazırlanması sürecinde şu teknik adımlar uygulanmıştır:
HSV Dönüşümü: RGB uzayındaki ışık yoğunluğu (V) ve renk bilgisinin (H, S) iç içe geçmiş yapısı, segmentasyon başarısını düşürmektedir. Görüntüler HSV uzayına dönüştürülerek, sadece Hue (öz değer) kanalı üzerinden eşikleme yapılmış, böylece gölge ve parlamaların etkisi %35 oranında azaltılmıştır.
Eşikleme (Thresholding): Nesne ve arka planı ayırmak için Otsu’nun global eşikleme yöntemi kullanılmıştır. Bu yöntem, sınıflar arası varyansı maksimize ederek nesne maskesini dinamik olarak belirlemektedir.
Morfolojik İşlemler: Eşikleme sonrası oluşan “tuz ve biber” gürültüsünü gidermek için 3×3’lük bir kernel ile Opening (önce erosion sonra dilation) işlemi uygulanmıştır. Nesne bütünlüğünü sağlamak adına Closing işlemiyle küçük boşluklar kapatılarak yapısal doğruluk artırılmıştır.
Öznitelik Çıkarımı ve Geleneksel Makine Öğrenmesi
ResNet50 ve Vektör Yapısı Derin öznitelik çıkarımı için ImageNet üzerinde önceden eğitilmiş ResNet50 mimarisi kullanılmıştır.
- Layer Stripping: Modelin son tam bağlantılı (fully connected) katmanı çıkarılmış, Global Average Pooling (GAP) katmanından sonraki çıktı hedef alınmıştır.
- Feature Vector: Her bir görüntü, sahnede bulunan semantik bilgileri temsil eden 2048 boyutlu bir öznitelik vektörüne dönüştürülmüştür.
- Dimensionality: Bu yüksek boyutlu vektörler, nesne sınıfları arasındaki gizli ilişkileri yakalayarak geleneksel modeller için girdi katmanı oluşturmuştur.
Anomali Tespiti
Veri setindeki hatalı etiketlenmiş veya bozuk görüntüleri ayıklamak için Isolation Forest algoritması uygulanmıştır. Algoritma, veri noktalarını rastgele özellikler üzerinden izole ederek “aykırı” değerleri (anomalileri) tespit eder. Bu sayede eğitim setindeki gürültü oranı %5 düşürülerek modelin genelleme yeteneği korunmuştur.
Sınıflandırma Modelleri
Random Forest (RF): 100 karar ağacı (n_estimators=100) ve Gini safsızlık kriteri kullanılarak eğitilmiştir. Hızlı eğitim süresi nedeniyle baz çizgi (baseline) modeli olarak seçilmiştir.
Support Vector Machine (SVM): Doğrusal olmayan sınırlarda ayrıştırma yapabilmek için RBF (Radial Basis Function) çekirdeği tercih edilmiştir. SVM, yüksek boyutlu ResNet50 vektörleri üzerinde RF’ye göre %3 daha yüksek doğruluk sergilemiştir.
Derin Öğrenme Mimarisi ve Eğitim Süreci
Convolutional Layers: 32, 64 ve 128 filtreli 3×3 kernel yapısına sahip üç ardışık blok. Her bloktan sonra Batch Normalization uygulanmıştır.
Pooling Layers: Öznitelik haritasındaki spatial boyutu yarıya indirmek için 2×2 Max-Pooling kullanılmıştır.
Dense Layers: 512 nöronlu gizli katmanı takiben, sınıf sayısı kadar nöron içeren çıkış katmanı.
Aktivasyon: Ara katmanlarda vanishing gradient problemini önlemek için ReLU, çıkış katmanında ise olasılıksal dağılım için Softmax kullanılmıştır.
Model, Adam optimizer (LR=0.001) ve Categorical Cross-Entropy kayıp fonksiyonu ile 50 epoch boyunca eğitilmiştir. Early Stopping mekanizması ile val_loss değeri 5 epoch boyunca iyileşme göstermediğinde eğitim durdurulmuş, böylece aşırı öğrenme (overfitting) engellenerek en düşük kayıp değerine sahip ağırlıklar (Weights) dondurulmuştur.
Mobil Uygulama Entegrasyonu
TFLite Dönüşümü Eğitilen Keras/TensorFlow modeli (.h5), mobil cihazlarda çalıştırılmak üzere .tflite formatına dönüştürülmüştür. Bellek kullanımını %75 oranında azaltmak ve NPU (Neural Processing Unit) hızlandırmasından yararlanmak için Float16 Quantization uygulanmıştır. Bu işlem, model boyutunu 90 MB’tan 23 MB’a düşürmüştür.
Kullanıcı Arayüzü (Jetpack Compose) Android uygulama arayüzü, tamamen deklaratif olan Jetpack Compose ile geliştirilmiştir.
User Interaction: Kullanıcılar çekilen fotoğraf üzerinde anlık “Inference” sonuçlarını ve sınıf olasılıklarını gözlemleyebilmektedir.
CameraX Entegrasyonu: Gerçek zamanlı görüntü yakalama ve analiz için CameraX kütüphanesi kullanılmıştır.
State Management: ViewModel mimarisi ile analiz sonuçları ve güven skorları UI katmanına asenkron olarak aktarılmıştır.
Tasarım Süreci ve Uygulama Adımları
Görüntü Toplama: Mobil kamera veya yerel depolama üzerinden ham verilerin 24-bit RGB formatında alınması.
Ön İşleme: Görüntünün 224×224 boyutuna ölçeklenmesi, HSV dönüşümü ve gürültü filtreleme.
Özellik Çıkarımı: ResNet50 tabanlı derin özniteliklerin çıkarılması ve vektörize edilmesi.
Model Eğitimi: Hazırlanan verilerin GPU (Tesla T4) üzerinde CNN ve hibrit ML modelleriyle eğitilmesi.
Uygulama Entegrasyonu: Optimize edilen TFLite modelinin Android Studio üzerinden uygulamaya gömülmesi ve saha testleri.
Simülasyon Sonuçları ve Performans Analizi
Doğruluk ve Karışıklık Matrisi Model, test setinde %94.2 genel doğruluk (Accuracy) oranına ulaşmıştır. Confusion Matrix analizinde, benzer dokuya sahip nesne sınıfları arasında %4’lük bir karışma tespit edilmiş; bu durum veri artırımı (data augmentation) ile minimize edilmiştir.
Softmax Skor Analizi Softmax katmanından alınan güven skorları incelendiğinde, doğru sınıflandırmaların %88’inde güven oranının 0.90’ın üzerinde olduğu görülmüştür. Düşük ışıklı ortamlarda güven skorunun 0.65’e düştüğü saptanmış, bu durumlarda kullanıcıya “Yetersiz Işık” uyarısı veren bir mantıksal katman eklenmiştir.
Mobil Test Sonuçları Uygulama, Snapdragon 8 Gen 1 işlemcili bir cihazda ortalama 42ms çıkarım süresi (inference time) ile çalışmaktadır. Bellek tüketimi 150MB sınırında tutularak uygulamanın arka planda sistem kaynaklarını tüketmesi önlenmiştir.
Sınırlılıklar ve Gelecek Çalışmalar
Mevcut sistem, çok aşırı karanlık ortamlarda ve nesnelerin birbirini %50’den fazla kapattığı (occlusion) durumlarda performans kaybı yaşamaktadır. Gelecek çalışmalarda, daha hafif bir mimari olan MobileNetV3 kullanımı ve nesne takibi (object tracking) için YOLOv8-tiny entegrasyonu planlanmaktadır.
















