Dr. Mehmet Solak Siirt Üniversitesi · Ziraat Fakültesi · Biyosistem Mühendisliği · Tarım ve Tarımsal Eğitim İçin Makine Öğrenmesi İçeriği

Ders 11: Görüntü Bölütleme -- U-Net

derssegmentasyonu-netdeeplabfcnpiksel-sınıflandırmayabancı-ottarım

11.1 Giriş: Piksel Düzeyinde Sınıflandırma

Nesne tespiti (Ders 10) bir dikdörtgen kutu ile nesnenin yaklaşık konumunu belirler. Ancak tarımda birçok uygulama piksel düzeyinde hassasiyet gerektirir:

  • Hastalık şiddeti ölçümü: Yaprağın yüzde kaçı hasta? Dikdörtgen kutu bunu cevaplayamaz; hasta piksellerin oranını hesaplamanız gerekir.
  • Yabancı ot haritalama: Tarladaki hangi pikseller buğday, hangileri yabancı ot, hangileri toprak? Hassas ilaç uygulaması için piksel düzeyinde harita gereklidir.
  • Alan hesaplama: Drone görüntülerinden tarladaki ekin kapladığı alanı m2 cinsinden hesaplama.
  • Toprak/bitki oranı: Fidanların büyüme takibi için yeşil piksel oranı.

Görüntü bölütleme (segmentation), görüntüdeki her piksele bir sınıf etiketi atayarak bu soruları cevaplar.

11.2 Semantik Segmentasyon Türleri

11.2.1 Semantik Segmentasyon (Semantic Segmentation)

Her piksel bir sınıfa atanır, ancak aynı sınıftaki farklı nesneler ayırt edilmez. Örneğin: Tüm domates meyveleri tek bir "domates" sınıfına atanır; 3 farklı domates birbirinden ayrılmaz.

Tarımsal Kullanım: Tarla haritası oluşturma -- her piksel "ürün", "yabancı ot" veya "toprak" olarak etiketlenir.

11.2.2 Örnek Segmentasyonu (Instance Segmentation)

Semantik segmentasyona ek olarak, aynı sınıftaki her nesne ayrı ayrı tanımlanır. Örneğin: Domates-1, Domates-2, Domates-3 olarak ayrı nesneler.

Tarımsal Kullanım: Meyve sayımı -- ağaçtaki her elma ayrı tanımlanır ve sayılır.

11.2.3 Panoptik Segmentasyon

Semantik ve örnek segmentasyonunu birleştirir. "Thing" (sayılabilir: meyve, böcek) ve "stuff" (sayılmaz: toprak, gökyüzü) sınıflarını birlikte işler.

11.2.4 Karşılaştırma Tablosu

Tür Piksel Sınıfı Nesne Ayrımı Tarımsal Örnek
Semantik Her piksel sınıflanır Aynı sınıf ayrılmaz Tarla: ürün/ot/toprak haritası
Örnek Her piksel sınıflanır Her nesne ayrı Her meyve ayrı sayılır
Panoptik Her piksel sınıflanır Thing+stuff ayrımıyla Tam tarla anlayışı

11.3 FCN: Tam Evrişimli Ağ

11.3.1 FCN'den U-Net'e Geçiş

Fully Convolutional Network (FCN), Long ve arkadaşları tarafından 2015'te önerilmiştir. Sınıflandırma ağlarındaki (VGG, AlexNet) son tam bağlı katmanları 1x1 evrişim katmanlarıyla değiştirerek, herhangi bir boyuttaki görüntüden piksel bazlı tahmin yapmayı mümkün kılmıştır.

FCN'in Temel Fikri: 1. Encoder (kodlayıcı): Görüntüyü küçülterek yüksek seviyeli özellikler çıkarır (ne olduğunu anla). 2. Decoder (kod çözücü): Özellik haritasını tekrar orijinal boyuta büyüterek piksel bazlı tahmin yapar (nerede olduğunu belirle).

FCN'in Kısıtlılığı: Decoder, sadece basit üst örnekleme (bilinear upsampling) kullanır. Bu nedenle ince detaylar (yaprak kenarları, küçük lezyon sınırları) kaybolur.

11.4 U-Net: Encoder-Decoder + Skip Connection

11.4.1 U-Net Mimarisi

U-Net, Ronneberger ve arkadaşları tarafından 2015'te özellikle biyomedikal görüntü segmentasyonu için geliştirilmiştir. Adı, mimarisinin "U" harfine benzeyen yapısından gelir. Tarımda en çok kullanılan segmentasyon modellerinden biridir.

U-Net'in Yapısı:

Giriş Görüntüsü (256x256x3)
    |
[Encoder - Daralan Yol]
    |-- Conv 3x3 + ReLU (x2) --> 256x256x64
    |-- Max Pool 2x2         --> 128x128x64
    |-- Conv 3x3 + ReLU (x2) --> 128x128x128
    |-- Max Pool 2x2         --> 64x64x128
    |-- Conv 3x3 + ReLU (x2) --> 64x64x256
    |-- Max Pool 2x2         --> 32x32x256
    |-- Conv 3x3 + ReLU (x2) --> 32x32x512
    |-- Max Pool 2x2         --> 16x16x512
    |
[Bottleneck]
    |-- Conv 3x3 + ReLU (x2) --> 16x16x1024
    |
[Decoder - Genişleyen Yol]
    |-- Up-Conv 2x2           --> 32x32x512
    |-- SKIP CONNECTION: Encoder'dan 32x32x512 + Decoder 32x32x512 = 32x32x1024
    |-- Conv 3x3 + ReLU (x2) --> 32x32x512
    |-- Up-Conv 2x2           --> 64x64x256
    |-- SKIP CONNECTION: Encoder'dan 64x64x256 + Decoder 64x64x256 = 64x64x512
    |-- Conv 3x3 + ReLU (x2) --> 64x64x256
    |-- ...
    |
[Çıkış]
    |-- Conv 1x1              --> 256x256x N_sınıf

11.4.2 Skip Connection'ın Önemi

U-Net'in en kritik yeniliği skip connection (atlama bağlantısı) mekanizmasıdır. Encoder'daki her seviyenin özellik haritası, decoder'daki karşılık gelen seviyeye doğrudan aktarılır.

Neden Gerekli?

Encoder görüntüyü küçültürken konum bilgisi kaybolur (ne var öğrenilir, nerede var kaybolur). Decoder büyütürken konum bilgisi gereklidir. Skip connection, encoder'daki hassas konum bilgisini decoder'a taşır.

Tarımsal Örnek: - Encoder: "Bu görüntüde yabancı ot var" (semantik bilgi) - Skip Connection: "Yabancı otun kenarları bu piksellerde" (spatial bilgi) - Decoder + Skip: "Bu pikseller yabancı ot, şu pikseller ürün" (hassas segmentasyon)

Skip connection olmadan, segmentasyon sınırları puslu ve belirsiz olur. Yaprak kenarları, lezyon sınırları ve ürün-toprak geçişleri yeterince keskin tanımlanamaz.

11.4.3 Kayıp Fonksiyonu: Cross-Entropy ve Dice Loss

Piksel Bazlı Cross-Entropy:

$$L_{CE} = -\frac{1}{N} \sum_{i=1}^{N} \sum_{c=1}^{C} y_{ic} \cdot log(\hat{y}_{ic})$$

Her piksel için ayrı ayrı cross-entropy hesaplanır ve ortalaması alınır.

Dice Loss:

$$L_{Dice} = 1 - \frac{2 |A \cap B|}{|A| + |B|}$$

Dice loss, tahmin edilen ve gerçek maskelerin örtüşme oranını ölçer. Tarımda sınıf dengesizliği (toprak pikselleri >> hastalık pikselleri) olduğunda Dice Loss daha etkilidir.

Karşılaştırma:

Kayıp Avantaj Dezavantaj Tarımsal Tercih
Cross-Entropy Kararlı eğitim Dengesiz sınıflarda zayıf Dengeli veri setleri
Dice Loss Dengesizliğe dayanıklı Gradyan kararsızlığı Küçük lezyon tespiti
CE + Dice Her ikisinin avantajı Hiperparametre ayarı gerekli Genel tercih

11.5 Alternatif Segmentasyon Mimarileri

11.5.1 DeepLab Ailesi

Google tarafından geliştirilen DeepLab, Atrous (Dilated) Convolution kullanır. Normal evrişimde filtre elemanları yan yanadır; atrous evrişimde aralarında boşluk vardır. Bu sayede çözünürlük kaybı olmadan daha geniş bir algı alanı elde edilir.

Atrous Spatial Pyramid Pooling (ASPP): Farklı genişleme oranlarındaki atrous evrişimlerini paralel uygulayarak çok ölçekli bilgi çıkarır.

Tarımsal Avantaj: Farklı boyutlardaki nesneleri (büyük tarla parçaları + küçük yabancı ot kümecikleri) aynı anda yakalayabilir.

11.5.2 SegNet

SegNet, encoder-decoder yapısında pooling indekslerini decoder'a aktarır. Böylece hangi pikselin max pooling sırasında seçildiğini decoder bilir ve daha hassas üst örnekleme yapar.

11.5.3 Karşılaştırma Tablosu

Mimari Yıl Temel Yenilik Parametre Tarımsal Avantaj
FCN 2015 İlk piksel sınıflandırma Az Basit, hızlı
U-Net 2015 Skip connection Orta Küçük veri setleri, hassas sınırlar
SegNet 2017 Pooling indeks transferi Az Bellek verimli
DeepLab v3+ 2018 ASPP + encoder-decoder Fazla Çok ölçekli nesneler
HRNet 2019 Yüksek çözünürlük koruma Orta İnce detay koruma

11.6 Tarımsal Segmentasyon Uygulamaları

11.6.1 Uygulama 1: Tarla Haritası Oluşturma

Senaryo: Drone ile çekilmiş tarla görüntüsünde her pikseli sınıflandırma: - Sınıf 0 (Toprak): Kahverengi/gri pikseller -- ekilmemiş veya boş alanlar - Sınıf 1 (Ürün): Yeşil pikseller -- buğday, mısır, çeltik vb. - Sınıf 2 (Yabancı Ot): Koyu yeşil/farklı doku -- ilaçlama gerektiren bölgeler - Sınıf 3 (Su): Mavi/koyu -- sulama kanalları, birikintiler

Bu harita, hassas tarım (precision agriculture) uygulamalarında değişken oranlı (variable rate) ilaç ve gübre uygulaması için kullanılır. Sadece yabancı ot bulunan bölgelere herbisit uygulanır; bu sayede %30-60 oranında ilaç tasarrufu sağlanabilir.

11.6.2 Uygulama 2: Hastalık Şiddeti Ölçümü

Li ve arkadaşları (2021), derin öğrenme tabanlı bitki hastalığı tespiti incelemesinde, hastalık şiddeti değerlendirmesinin önemini vurgulamıştır. Segmentasyon ile yaprak üzerindeki hasta alan oranı hesaplanabilir:

Hasta Alan Oranı = Hasta Piksel Sayısı / Toplam Yaprak Piksel Sayısı x 100

Bu oran, hastalık şiddeti skalalarına karşılık gelir: | Oran | Şiddet | Müdahale | |------|--------|--------| | %0 | Sağlıklı | Müdahale yok | | %1-10 | Hafif | İzleme | | %10-25 | Orta | Lokal tedavi | | %25-50 | Ağır | Yaygın tedavi | | %50+ | Çok ağır | Bitkiyi çıkarma |

11.6.3 Uygulama 3: Meyve Segmentasyonu ve Sayımı

Rajasree ve Latha (2023), YOLO V5 ile domates yaprak hastalığı tespiti çalışmasında Li ve arkadaşlarının (2021 - referans 8) elma yeşil segmentasyonu için ensemble U-Net kullandığını aktarmıştır. Meyve segmentasyonu, ağaç üzerindeki her meyvenin piksel hassasiyetinde tanımlanmasını sağlar:

  1. Segmentasyon: Her meyvenin maskesi çıkarılır.
  2. Alan hesaplama: Piksel sayısından tahmini çap/ağırlık.
  3. Olgunluk analizi: Renk bazlı olgunluk değerlendirmesi.
  4. Hasar tespiti: Meyvede çizik, çürük, böcek hasarı pikselleri.

11.7 U-Net Eğitimi: Pratik Hususlar

11.7.1 Veri Hazırlama

Segmentasyon modellerinin eğitimi için etiketli maske (ground truth mask) gereklidir. Her görüntünün karşısında, aynı boyutta, her pikselin sınıf numarasını içeren bir maske bulunur.

Etiketleme Araçları: - LabelMe, CVAT, Roboflow: Poligon bazlı etiketleme - Etiketleme süreci zaman alıcıdır: Bir yaprak görüntüsü için 5-15 dakika

Tarımda Etiketleme Zorlukları: - Uzman bilgisi gerektirir (bitki patologu) - Mevsimsel kısıtlar (hastalık sadece belirli dönemlerde görülür) - Yaprak üst üste binmeleri, gölgelerin etkisi

11.7.2 Veri Arttırma Stratejileri

Segmentasyon için veri arttırma yaparken, görüntü ve maske aynı dönüşüme tabi tutulmalıdır:

Dönüşüm Görüntü Maske
90 derece döndürme Döndür Aynı şekilde döndür
Yatay aynalama Aynala Aynı şekilde aynala
Parlaklık değişimi Uygula Değiştirme (maske geometrik değil)
Elastic deformasyon Deforme et Aynı şekilde deforme et

11.7.3 Değerlendirme Metrikleri

Metrik Formül Anlam
Piksel Doğruluğu Doğru piksel / Toplam piksel Genel başarı (dengesizliğe hassas)
Mean IoU (mIoU) Sınıfların IoU ortalaması En yaygın segmentasyon metriği
Dice Coefficient 2*Kesişim / (A+B) Tıbbi/tarımsal segmentasyonda popüler
F1-Score 2PR / (P+R) Precision-recall dengesi

mIoU Hesaplama Örneği:

Sınıf IoU
Toprak 0.92
Ürün 0.85
Yabancı Ot 0.68
Su 0.95

mIoU = (0.92 + 0.85 + 0.68 + 0.95) / 4 = 0.85

Yabancı ot sınıfının düşük IoU'su, küçük ve dağınık yapısı nedeniyle beklenen bir sonuçtur.

11.8 İleri Konular

11.8.1 Hafif Segmentasyon Modelleri

Tarımda drone ve mobil cihazlarda çalıştırılacak modeller için hafif mimariler gereklidir: - MobileNet + U-Net: Encoder olarak MobileNet kullanarak parametre sayısını azaltır - ESPNet: Çok küçük model boyutu ile gerçek zamanlı segmentasyon - BiSeNet: İki dallık yapı -- hız ve doğruluk dengesi

11.8.2 Attention Mekanizmaları

Attention gate'ler, U-Net'in skip connection'larına eklenerek irrelevant özelliklerin filtrelenmesini sağlar. Örneğin arka plan toprak pikselleri yerine yaprak hastalığı bölgesine odaklanma.

11.8.3 3D ve Temporal Segmentasyon

Zaman serisindeki drone görüntüleriyle "bu tarla bölgesindeki ekin nasıl büyüdü" sorusuna piksel bazında cevap. Bitki fenolojisi izleme ve erken hastalık uyarısı için kullanılır.

11.9 Özet

  1. Görüntü segmentasyonu, her piksele sınıf atayarak nesne tespitinden daha hassas bilgi sağlar.
  2. U-Net, encoder-decoder yapısı ve skip connection ile az veriyle bile etkili segmentasyon yapar.
  3. Skip connection, encoder'daki konum bilgisini decoder'a aktararak sınır hassasiyetini arttırır.
  4. DeepLab ve FCN, U-Net'e alternatif mimariler sunar; her birinin farklı avantajları vardır.
  5. Tarımda segmentasyon; hastalık şiddeti ölçümü, yabancı ot haritalama ve meyve sayımı için kritiktir.
  6. Dice Loss, tarımda sınıf dengesizliği sorununu azaltmada etkili bir kayıp fonksiyonudur.

Sonraki Ders: 12-veri-artırma-ve-gan -- Tarımda veri kıtlığı sorunu ve üretici modeller ile nasıl aşılır?