Hiperspektral Görüntülerde Öznitelik Çıkarımı

Transkript

Hiperspektral Görüntülerde Öznitelik Çıkarımı
Uzaktan Algılama Teknolojileri
Ders 10 – Hiperspektral Görüntülerde
Öznitelik Çıkarımı ve Boyut Azaltımı
Alp Ertürk
[email protected]
Öznitelik Çıkarımı
• Veriden ayırt edici yapıda nitelikler çıkarma işlemidir
• Bu nitelikler, takip eden öğrenme ve sınıflandırma gibi
işlevlerde hız ve başarım kazancı sağlar
• Öznitelik çıkarımı ile büyük boyuttaki veri daha az sayıdaki veya
daha düşük boyuttaki öznitelikler ile ifade edilebilir
• Bu yüzden öznitelik çıkarımı boyut azaltımı ile yakın ilişkilidir
• Büyük boyutlu ve fazla bilgi içeren hiperspektral verilerde
öznitelik çıkarımı ve boyut azaltımı yüksek önem taşımaktadır
Öznitelik Çıkarımı
• Başarılı bir öznitelik çıkarımı aşağıdaki özellikleri sağlamalıdır:
• Tekrarlanabilirlik: Geometrik ve fotometrik dönüşümlere
rağmen aynı özniteliğin tespit edilebilmesi
• Ayırt Edicilik (İng: Saliency): Her özniteliğin birbirinden ayırt
edilebilir bir tanımlaması olması
• Verimlilik: Öznitelik sayısının piksel sayısından çok daha az
olması
• Yerellik: Bir özniteliğin görüntünün göreceli olarak küçük bir
alanını kaplaması ve oklüzyon vb. etkilere karşı gürbüz olması
Öznitelik Çıkarımı
• Uygulamaya göre yüksek başarım sağlayacak özniteliğin yapısı
değişecektir
• Örneğin renk bilgisi avantajlı da yanıltıcı da olabilir
• Bu nedenle, ya direkt uygulamaya yönelik öznitelikler çıkarılır
veya daha genel olarak anlamlı olabilecek çok sayıda öznitelik
çıkarılarak bir arada kullanılır
Bant Seçimi / Bant Çıkarımı
• Bant seçimi (band selection) ve bant çıkarımı (band extraction)
yaklaşımları birbirinin yerine kullanılabilen ancak aynı işlevi
yerine getirmeyen yaklaşımlardır
• Bant seçimi yaklaşımlarında, hiperspektral verinin bazı spektral
bantları seçilerek alınır, diğer spektral bantlar ise atılır veya
ihmal edilir.
• Seçilen bantlar ne kadar çok bilgi verici veya istenen sonraki
işlem için ne kadar önemli / anlamlıysa, o kadar başarılı bant
seçimi gerçekleştirilmiş olur.
• Aynı şekilde atılan / ihmal edilen bantların da önemsiz /
anlamsız veya yüksek gürültülü olması amaçlanır.
Bant Seçimi / Bant Çıkarımı
• Bant çıkarımında ise hiperspektral veriden yeni spektral
“bant”lar elde edilir
• Bu bantlar orijinal bantlardan farklıdır ve daha az sayıda
olmaları ve daha çok veya anlamlı bilgi içermeleri amaçlanır
• İki yaklaşım grubu için de çok sayıda yöntem bulunmaktadır.
PCA
• Temel bileşenler analizi (Principal Component Analysis - PCA)
• PCA, N spektral bantta yer alan bilgiyi N’den az sayıda banda
“sıkıştırır”
• Bu “sıkıştırma”, kovaryans (ortak-ilinti) en fazla ve artıklık /
fazlalık en az olacak şekilde gerçekleştirilir
• PCA, bir öznitelik / bant çıkarma yaklaşımıdır ve boyut azaltımı
sağlar
PCA
• PCA şu dört aşamadan oluşur
• Orijinal veri uzayında ortalama vektörü bulunur
• Orijinal veri uzayında kovaryans matrisi hesaplanır
• Özdeğerler ve özvektörler elde edilir
• Özvektörler kullanılarak yeni uzaya geçilir
PCA
• Gözlem vektörleri (piksel vektörleri):
• Ortalama vektörü:
• Kovaryans matrisi:
• Özdeğer ayrıştırması:
• Temel bileşen dönüşümü:
PCA
• Dönüşüm sonunda yeni spektral bantlardan ilk belirli bir
tanesini alınarak diğer bantlar ihmal edilir.
• Bu sayede bant çıkarımı ve boyut azaltımı gerçekleştirilmiş olur
• Bu sayı kullanıcı tarafından belirlenebileceği gibi, daha gürbüz
bir yaklaşım özdeğerlerin kümülatif toplamının varyansı ile
bağıntılıdır.
PCA
%% Read the Indian Pine hyperspectral data
load('C:\Users\Alp\Downloads\Indian_pines_corrected.mat'); % Read the
Indian Pine data
hyper_data = indian_pines_corrected;
hyper_data = (hyper_datamin(min(min(hyper_data))))/(max(max(max(hyper_data)))min(min(min(hyper_data))));
[spat1,spat2,spec] = size(hyper_data);
hyper_vector = zeros(spec,spat1*spat2);
for b = 1:1:spec
hyper_vector(b,:) = reshape(hyper_data(:,:,b),1,spat1*spat2);
end
PCA
%% PCA
temp = hyper_vector;
[M,N] = size(temp);
temp = temp - repmat(mean(temp,2),1,N);
covariance = (1/(N-1))*(temp*temp');
[cov_eigvec, cov_eigval] = eig(covariance);
cov_eigval = diag(cov_eigval);
[junk, rindices] = sort(-1*cov_eigval);
cov_eigval = cov_eigval(rindices);
cov_eigvec = cov_eigvec(:,rindices);
final = cov_eigvec' * temp;
disp('PCA completed');
PCA
for b = 1:1:spec
pca_data(:,:,b) = reshape(final(b,:),spat1,spat2);
end
%% Original bands and PCA
figure;
for i = 1:1:spec
hold on; imshow(hyper_data(:,:,i),[]);
title(['Original band, number ' num2str(i)]);
pause(0.5);
end
PCA
figure; subplot(1,3,1); imshow(hyper_data(:,:,[1 2 3]));
subplot(1,3,2); imshow(hyper_data(:,:,[30 20 12]));
subplot(1,3,3); imshow(pca_data(:,:,[1 2 3]));
%% Plot the proportion of variance:
figure;
axis([0 200 0 1]);
for l=1:1:length(cov_eigval)
Proportion_of_variance=sum(cov_eigval(1:l))/sum(cov_eigval);
hold on; plot(l,Proportion_of_variance,'*-');
end
PCA Example: Indian Pines
• Some original bands: (#10 , #30, #50)
• First three spectral bands: (#1 , #2, #3)
PCA Example: Indian Pines
• First three spectral bands after PCA:
PCA Example: Indian Pines
• RGB of original spectral bands #30, #20, #12
• RGB of PCA bands #1, #2, #3
PCA
• Pavia University verisi için kodun ilk kısmı şu şekilde
değiştirilmeli:
load('C:\Users\Alp\Downloads\PaviaU.mat')
hyper_data = paviaU;
hyper_data = (hyper_datamin(min(min(hyper_data))))/(max(max(max(hyper_data)))min(min(min(hyper_data))));
[spat1,spat2,spec] = size(hyper_data);
hyper_vector = zeros(spec,spat1*spat2);
for b = 1:1:spec
hyper_vector(b,:) = reshape(hyper_data(:,:,b),1,spat1*spat2);
end
PCA Example: Pavia University
• Some original bands: (#10 , #30, #50)
PCA Example: Indian Pines
• First three spectral bands after PCA:
PCA Example: Pavia University
• RGB of original spectral bands #45, #30, #10
PCA Example: Pavia University
• RGB of PCA bands #1, #2, #3
PCA
• Not: Indian Pines ve Pavia University hiperspektral verileri şu
adresten indirilebilir:
http://www.ehu.es/ccwintco/index.php?title=Hyperspectral_Remote_Sensing
_Scenes&redirect=no
Sorular
?
?
?
?
?

Benzer belgeler

BİLGİSAYARA GİRİŞ (MEH109)

BİLGİSAYARA GİRİŞ (MEH109) BİLGİSAYARLA GÖRÜYE GİRİŞ Dersi Final Sınavı

Detaylı