Ders 11: Görüntü Bölütleme -- U-Net
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:
- Segmentasyon: Her meyvenin maskesi çıkarılır.
- Alan hesaplama: Piksel sayısından tahmini çap/ağırlık.
- Olgunluk analizi: Renk bazlı olgunluk değerlendirmesi.
- 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
- Görüntü segmentasyonu, her piksele sınıf atayarak nesne tespitinden daha hassas bilgi sağlar.
- U-Net, encoder-decoder yapısı ve skip connection ile az veriyle bile etkili segmentasyon yapar.
- Skip connection, encoder'daki konum bilgisini decoder'a aktararak sınır hassasiyetini arttırır.
- DeepLab ve FCN, U-Net'e alternatif mimariler sunar; her birinin farklı avantajları vardır.
- Tarımda segmentasyon; hastalık şiddeti ölçümü, yabancı ot haritalama ve meyve sayımı için kritiktir.
- 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?