Uydu Görüntüsü Sınıflandırması: K-Means ve ISODATA ile Arazi Örtüsü Analizi
Uydu görüntülerini bitki örtüsü, su kütlesi, kentsel alan ve çıplak toprağa ayırmak — yani arazi örtüsü haritası üretmek — uzaktan algılamanın temel görevidir. Bu rehberde denetimsiz sınıflandırmanın iki en yaygın algoritmasını, K-Means ve ISODATA'yı hem teori hem uygulama boyutlarıyla ele alıyoruz. Python kodu ve QGIS SCP eklentisi ile gerçek bir iş akışını adım adım gösteriyoruz.
1. Arazi Örtüsü Sınıflandırması Nedir?
Arazi örtüsü (land cover), yeryüzünün fiziksel durumunu tanımlar: ormanlık, tarım alanı, yerleşim, su, çıplak toprak gibi kategoriler. Arazi kullanımı (land use) ise insan faaliyetini anlatır ve arazi örtüsünden farklıdır — aynı tarım alanı seralık, meyvelik veya tahıl tarlası olabilir.
Uydu görüntüsü sınıflandırması, her pikseli belirli bir arazi örtüsü kategorisine atar. Binlerce piksellik görüntülerde bunu elle yapmak imkansızdır — makine öğrenmesi algoritmaları devreye girer.
Uygulama Alanları
- Orman izleme: Ormansızlaşma ve yeniden ormanlaşma tespiti (REDD+ projeleri)
- Tarım: Ekim alanı tespiti, mahsul takibi, sulanmış alan belirleme
- Kentsel yayılım: Yapılaşma artışı ve yeşil alan kaybı analizi
- Su kaynakları: Göl ve rezervuar alanı değişimi, sulak alan haritalama
- Afet: Yangın, sel ve deprem sonrası hasar tespiti
- İklim değişikliği: Kar örtüsü ve buzul değişimi izleme
2. Denetimli ve Denetimsiz Sınıflandırma
Uydu görüntüsü sınıflandırmasında iki temel yaklaşım vardır:
| Denetimli (Supervised) | Denetimsiz (Unsupervised) | |
|---|---|---|
| Nasıl çalışır? | Araştırmacı eğitim alanları (training samples) seçer, algoritma bu örneklerden öğrenir | Algoritma pikselleri kendi başına gruplar; araştırmacı sonradan etiketler |
| Avantaj | Sınıflar önceden biliniyor; doğruluk genellikle daha yüksek | Saha bilgisi gerekmez; hızlı ön analiz için ideal |
| Dezavantaj | Eğitim verisi toplamak zahmetli ve özneldir | Kümeler sınıflarla bire-bir örtüşmeyebilir; etiketleme gerekir |
| Algoritmalar | Random Forest, SVM, Maximum Likelihood | K-Means, ISODATA, Gaussian Mixture |
| Ne zaman? | Saha veriniz varsa veya yüksek doğruluk şartsa | Hızlı keşif, büyük alan, saha verisi yoksa |
Hibrit yaklaşım: Pratikte denetimsiz sınıflandırma ile başlayıp kümeleri keşfedebilir, sonra denetimli sınıflandırma için eğitim alanlarını bu kümelerden seçebilirsiniz. Bu iki yaklaşımı birleştirmenin en verimli yoludur.
3. Spektral Uzay: Pikseller Nasıl Gruplandırılır?
Çok bantlı bir uydu görüntüsünde her piksel birden fazla değere sahiptir: kırmızı banttan bir değer, yeşil banttan bir değer, yakın kızılötesi (NIR) banttan bir değer... Bu değerler, pikseli çok boyutlu bir spektral uzayda bir noktaya yerleştirir.
Benzer yüzey özelliklerine sahip pikseller (örneğin hepsi çimen olan pikseller) bu spektral uzayda birbirine yakın kümelenir. Denetimsiz sınıflandırma algoritmaları bu doğal kümeleri tespit eder.
Örnek: Sentinel-2'nin 4 bandı (B2-Mavi, B3-Yeşil, B4-Kırmızı, B8-NIR) kullanıldığında her piksel 4 boyutlu bir uzayda bir nokta haline gelir. Su pikselleri NIR'da çok düşük, mavi-yeşilde orta değerler alırken; sağlıklı bitki örtüsü NIR'da çok yüksek, kırmızıda çok düşük değerler alır. Bu ayrım kümelemeyi mümkün kılar.
Önemli Spektral İndeksler
Bantları doğrudan kullanmak yerine, indeksler hesaplayarak kümeleme kalitesini artırabilirsiniz:
- NDVI (Normalized Difference Vegetation Index) = (NIR − Kırmızı) / (NIR + Kırmızı) → bitki yoğunluğu
- NDWI (Normalized Difference Water Index) = (Yeşil − NIR) / (Yeşil + NIR) → su kütleleri
- NDBI (Normalized Difference Built-up Index) = (SWIR − NIR) / (SWIR + NIR) → yapılı çevre
- BSI (Bare Soil Index) = [(SWIR + Kırmızı) − (NIR + Mavi)] / [(SWIR + Kırmızı) + (NIR + Mavi)] → çıplak toprak
4. K-Means Algoritması: Adım Adım
K-Means, uzaktan algılamada en yaygın kullanılan denetimsiz sınıflandırma algoritmasıdır. Temel mantığı çok basittir: pikselleri K adet kümeye atayın, öyle ki her piksel en yakın küme merkezine ait olsun.
K-Means'in Parametreleri
- K (küme sayısı): En kritik parametre. Sezgisel kural: hedef sınıf sayısının 2–3 katı. 5 sınıf hedefliyorsanız K = 10–15 ile başlayın.
- Başlangıç yöntemi:
randomveyak-means++. K-Means++ yerel minimuma takılma riskini azaltır. - Maksimum iterasyon: 300 genellikle yeterlidir.
- n_init: Farklı başlangıç noktalarından kaç kez çalıştırılsın? 10+ önerilir (en iyi sonucu seçer).
K-Means'in Sınırlılıkları
- K önceden belirtilmek zorundadır.
- Küre şeklinde olmayan kümeleri iyi yakalayamaz.
- Aykırı değerlere (bulutlu pikseller!) duyarlıdır.
- Yerel minimuma takılabilir —
n_initarttırarak azaltılır. - Küme sayısı iterasyonlar sırasında değişmez.
5. ISODATA Algoritması: K-Means'ın Akıllı Versiyonu
ISODATA (Iterative Self-Organizing Data Analysis Technique), K-Means'i iki kritik özellikle genişletir: kümeleri bölebilir ve birleştirebilir. Bu, küme sayısının iterasyonlar sırasında değişmesini sağlar.
ISODATA'nın Ek Kuralları
| Kural | Koşul | İşlem |
|---|---|---|
| Silme | Bir kümedeki piksel sayısı minimum eşiğin (θ_N) altına düşerse | Küme silinir, pikseller en yakın kümeye aktarılır |
| Birleştirme | İki küme merkezi birbirine yeterince yakınsa (eşik: θ_C) | İki küme tek kümede birleştirilir |
| Bölme | Bir kümenin standart sapması θ_S'yi aşıyorsa ve küme yeterince büyükse | Küme iki alt kümeye bölünür |
ISODATA'nın Parametreleri
- K₀: Başlangıç küme sayısı (K-Means'teki K gibi ama sabit değil)
- K_min / K_max: İzin verilen minimum ve maksimum küme sayısı
- θ_N: Minimum piksel sayısı eşiği (küme silme için)
- θ_C: Birleştirme mesafesi eşiği
- θ_S: Bölme standart sapma eşiği
- Maksimum iterasyon sayısı
ISODATA ne zaman gerçekten fark yaratır? Çalışma alanınızda bazı sınıflar çok heterojen (örneğin orman hem ibreli hem yapraklı hem seyrek) ve bazıları çok küçük (dar bir nehir) ise ISODATA büyük kümeleri bölerek, küçük anlamsız kümeleri birleştirerek daha anlamlı sonuçlar verir. Homojen tarım arazilerinde ise K-Means ile fark az olur.
6. K-Means vs ISODATA: Hangisi, Ne Zaman?
| Kriter | K-Means | ISODATA |
|---|---|---|
| Küme sayısı | Sabit (K) | Dinamik (K_min – K_max arası) |
| Hız | Daha hızlı | Daha yavaş (ek kurallar nedeniyle) |
| Parametre sayısı | Az (K, n_init) | Çok (θ_N, θ_C, θ_S, K_min, K_max) |
| Heterojen görüntüler | Zayıf | Güçlü |
| Homojen görüntüler | Yeterli | Aşırı parametre |
| QGIS SCP desteği | Evet | Evet |
| Python (scikit-learn) | Evet (sklearn.cluster.KMeans) | Hayır (özel implementasyon gerekir) |
| Tercih edildiği alan | Homojen tarım, hızlı ön analiz | Orman, kentsel, karmaşık peyzaj |
7. Uydu Verisi Hazırlama: Landsat ve Sentinel-2
Veri Kaynakları (Ücretsiz)
- Sentinel-2 (ESA): 10 m çözünürlük, 13 bant, 5 günde bir tekrar, Copernicus Open Access Hub veya Google Earth Engine üzerinden ücretsiz
- Landsat 8/9 (USGS): 30 m çözünürlük, 11 bant, 16 günde bir tekrar, Earth Explorer üzerinden ücretsiz
- MODIS (NASA): 250 m–1 km, günlük tekrar, büyük ölçekli analizler için
Ön İşleme Adımları
- Atmosferik düzeltme: Ham DN değerleri → Yansıma (reflectance). Sentinel-2 L2A ürünü zaten düzeltilmiş gelir. Landsat için QGIS SCP'nin DOS1 veya FLAASH modülü kullanılabilir.
- Bulut maskesi: Bulutlu ve gölgeli pikseller çıkarılmalıdır. Sentinel-2'de SCL (Scene Classification Layer) bandı kullanılır.
- Kırpma (clip): Çalışma alanınızla görüntüyü kırpın — gereksiz pikseller hesaplama süresini uzatır.
- Bant yığma (stack): Tek bantlı dosyaları çok bantlı bir görüntüde birleştirin.
- Normalizasyon: Kümeleme öncesi bantları 0–1 aralığına normalize etmek, farklı ölçeklerin kümelemeyi olumsuz etkilemesini önler.
Dikkat: Bulutlu pikseller sınıflandırmayı ciddi biçimde bozar. Mümkünse bulutsuz (%10'dan az bulut örtüsü) görüntüler seçin. Yoksa bulut maskesi kesinlikle uygulanmalıdır.
8. Python ile Denetimsiz Sınıflandırma
Gerekli kütüphaneler: rasterio (görüntü okuma/yazma), numpy, scikit-learn (K-Means), matplotlib (görselleştirme).
Büyük görüntüler için ipucu: Milyonlarca piksel içeren görüntülerde sklearn.cluster.MiniBatchKMeans kullanın — tam K-Means'e benzer sonuçlar verir ama bellek ve zaman açısından çok daha verimlidir.
9. QGIS SCP ile Denetimsiz Sınıflandırma
Semi-Automatic Classification Plugin (SCP), QGIS için geliştirilmiş güçlü ve ücretsiz bir uzaktan algılama eklentisidir. K-Means ve ISODATA algoritmalarını GUI üzerinden çalıştırmanızı sağlar.
SCP Kurulumu
Arama: "Semi-Automatic Classification Plugin"
Yükle → Kapat
Menü çubuğunda SCP ikonu görünecektir.
Bant Yığma (Band Set)
Tek bantlı görüntüleri listeye ekle → Bant sırasını kontrol et
Uydu türünü seç (Sentinel-2 veya Landsat 8)
Run → Çok bantlı sanal yığın oluşturulur
Denetimsiz Sınıflandırma: K-Means
Algorithm: K-Means
Number of classes (K): 10 (başlangıç için)
Maximum iterations: 100
Distance threshold: 0.0001
Minimum class size: 10 piksel
Çıktı dosya yolunu belirle → RUN
Denetimsiz Sınıflandırma: ISODATA
Algorithm: ISODATA
Initial clusters (K₀): 10
Min clusters (K_min): 5
Max clusters (K_max): 20
Max iterations: 50
Min class size (θ_N): 10
Split threshold (θ_S): 0.3
Merge threshold (θ_C): 0.5
→ RUN
Kümeleri Arazi Örtüsü Sınıflarına Dönüştürme
Sınıflandırma rasterini yükle → Piksel sayısı ve yüzde çıktısını incele
Kümeleri yorumlamak için:
QGIS Layer Panel → Sınıflandırma rasterine sağ tık → Properties
Symbology → Paletted/Unique Values → Her kümeye renk ve isim ata
(örn. Küme 3 → Orman, Küme 7 → Su ...)
SCP'de Reclassify: Kümeleri yorumladıktan sonra birleştirmek için Postprocessing → Reclassification kullanın. Örneğin Küme 2, 5, 8 → 1 (Orman) olarak yeniden sınıflandırabilirsiniz.
10. Sınıflandırma Doğruluğu Nasıl Değerlendirilir?
Denetimsiz sınıflandırmada doğrulama zorunludur — algoritmanın ürettiği kümeler her zaman anlamlı arazi örtüsü sınıflarına karşılık gelmeyebilir.
Referans Veri Toplama
- GPS ile saha çalışması: Çalışma alanında farklı arazi örtüsü kategorilerini temsil eden noktalar toplayın ve koordinatlarını kaydedin. Altın standarttır.
- Yüksek çözünürlüklü görüntü: Google Earth veya Bing uydu fotoğraflarından manuel yorum yapın.
- Var olan haritalar: Orman envanteri, imar planı, CORINE gibi mevcut arazi örtüsü verilerini referans olarak kullanın.
Confusion Matrix (Hata Matrisi)
Her sınıf için gerçek değer ile tahmin edilen değerin çapraz tablosudur. Üç temel ölçüt türetilir:
| Ölçüt | Formül | İdeal Değer |
|---|---|---|
| Overall Accuracy | Doğru sınıflandırılan toplam / Toplam referans nokta | > %85 |
| Producer's Accuracy | Her sınıf için doğru tespit / O sınıfın gerçek sayısı | > %80 |
| User's Accuracy | Her sınıf için doğru tespit / Tahmin edilen toplam | > %80 |
| Kappa Katsayısı (κ) | Şansa göre düzeltilmiş uyum ölçüsü | > 0.80 = çok iyi |
Kappa yorumlama rehberi:
κ < 0.20 → Kötü | 0.20–0.40 → Makul | 0.40–0.60 → Orta | 0.60–0.80 → İyi | > 0.80 → Çok iyi
Python ile Confusion Matrix
QGIS SCP ile Doğruluk Değerlendirmesi
Classification raster: sınıflandırma çıktısı
Reference shapefile: referans noktaları (alan sınıfı sütunuyla)
→ RUN
Çıktı: Confusion matrix tablosu + Overall Accuracy + Kappa değeri
11. Pratik Tavsiyeler ve Yaygın Hatalar
Bant Seçimi
- NIR bandı arazi örtüsü ayrımında en belirleyici banttır — her zaman dahil edin.
- SWIR (Short-Wave Infrared) yapılı çevre ve çıplak toprağı orman/bitki örtüsünden ayırmada çok etkilidir.
- Sadece RGB ile sınıflandırma yapmaktan kaçının — spektral bilgi çok zayıf kalır.
- NDVI, NDWI gibi indeksler bantlarla birlikte kullanıldığında sınıflandırma doğruluğunu artırır.
Küme Sayısı Stratejisi
- Çok az küme (K = 3–4): Farklı arazi örtüleri tek kümede birleşir, aşırı genelleştirme.
- Çok fazla küme (K = 30+): Aynı arazi örtüsü onlarca kümeye bölünür, etiketleme zorlaşır.
- Altın kural: Hedef sınıf sayısının 2–3 katı K ile başla, spektral profillere bakarak birleştir.
Yaygın Hatalar
- Atmosferik düzeltme yapmamak: Ham DN değerleriyle kümeleme, mevsimsel veya bölgeler arası karşılaştırmaları geçersiz kılar.
- Bulutu maskelememek: Bulutlar yüksek yansımalı piksel olarak "kar" veya "kentsel" kümesine girer, tüm sınıflandırmayı kirletir.
- Tek iterasyonla karar vermek: n_init = 1 ile K-Means yerel minimuma takılabilir. n_init ≥ 10 kullanın.
- Farklı mevsim görüntülerini karıştırmak: Tarım alanları yaz-kış çok farklı görünür; tutarlı bir tarih aralığı seçin.
- Doğrulama yapmadan sonuç yayımlamak: Görsel olarak güzel görünen bir sınıflandırma %60 doğrulukta olabilir.
Sonuçları İyileştirme Yöntemleri
- Majority filter (çoğunluk filtresi): Tek piksellik gürültü kümeciklerini temizler — tüm sınıflandırmaların sonunda uygulanmalıdır.
- Çok zamanlı analiz: Aynı alan için farklı mevsimlerdeki görüntüleri birlikte kullanmak (örn. yaz + kış Sentinel-2) tarım ve orman ayrımını büyük ölçüde iyileştirir.
- Texture özellikleri: Doku (entropy, contrast) bantlara eklenirse kentsel ile ormanlık alanlar daha iyi ayrışır.
Projeniz İçin Uydu Görüntüsü Analizi Yaptırmak İster misiniz?
Arazi örtüsü haritalaması, değişim analizi, NDVI izleme ve uzaktan algılama projelerinde profesyonel destek.
Ücretsiz Danışmanlık AlınKaynaklar
- Congalton, R. G., & Green, K. (2019). Assessing the Accuracy of Remotely Sensed Data: Principles and Practices (3. Baskı). CRC Press.
- Jensen, J. R. (2015). Introductory Digital Image Processing: A Remote Sensing Perspective (4. Baskı). Pearson.
- Lillesand, T., Kiefer, R. W., & Chipman, J. (2015). Remote Sensing and Image Interpretation (7. Baskı). Wiley.
- Sentinel-2 veri erişimi: Copernicus Open Access Hub — scihub.copernicus.eu
- Landsat veri erişimi: USGS Earth Explorer — earthexplorer.usgs.gov
- Semi-Automatic Classification Plugin belgeleri — fromgistors.blogspot.com/p/semi-automatic-classification-plugin.html