Görüntü tanıma uygulamalarında kullanılan klasik yöntemlerden temel bilesen analizi (PCA) yöntemini temel alan yöntemlerde yüksek dereceden özniteliklerle ilgilenilmez. PCA, veriyi düşük bir boyuta, verideki değişmeyi koruyacak şekilde eşleyen dikgen bir doğrusal dönüşümdür. İlk temel bilesen verideki en büyük değişme yönündedir ve ikinci bilesen bir sonraki en buyuk değişme yönündedir. PCA ile boyut indirme işleminde, ilk bir kaç temel bilesen kullanılarak verinin değişmesini en çok etkiyen özellikler alınır. Böylelikle daha az miktarda veri kullanılarak, taşınan bilginin büyük kısmı korunur.--
- Kodlar üzerinde bunu adım adım anlatacak olursak;---
Kovaryans matrisinin oluşturulması
Kod:
m = mean(X,2);
% Ortalama yüz görüntüsü bulunuyor. m = (1/P)*sum(Xj's) (j = 1 : P)
imgcount = size(X,2);
%Sütun sayısından veritabanındaki resim sayısı saydırılıyor.
%%%%%%%% Ortalama Görüntü vektörü tüm görüntü vektörlerinden oluşturulduktan sonra %%%%%%
A = [];
for i=1 : imgcount
temp = double(X(:,i)) - m;
A = [A temp];
end
L= A' * A;
%L burada fi anlamına geliyor.
-[font=medium-content-serif-font, Georgia, Cambria,]2. ϕ nin (λi, ųi) i=1,2, …,n çifti bulunur. Burada λi i. özdeğer ųi ise λi ye karşılık gelen özvektördür.----
[font=medium-content-serif-font, Georgia, Cambria,]det(λI-ϕ)=0--
[font=medium-content-serif-font, Georgia, Cambria,]denklemi kullanılarak λ lar bulunur.--
[font=Menlo, Monaco,][V,D]=eig(L); % V : Özvektör matrisi D : Özdeğerlerin matrisi--
[font=medium-content-serif-font, Georgia, Cambria,]3. En büyük r tane özdeğere karşılık gelen özvektörler bulunur.--
-[font=medium-content-serif-font, Georgia, Cambria,]4. En büyük özdeğere karşılık gelen özvektörler kullanılarak w izdüşüm matrisi bulunur.----
Kod:
L_eig_vec = []; %w izdüşüm matrisi bulunması
for i = 1 : size(V,2)
if( D(i,i) > 1 )
L_eig_vec = [L_eig_vec V(:,i)];
end
end
-[font=medium-content-serif-font, Georgia, Cambria,]-[font=medium-content-serif-font, Georgia, Cambria,]5. w matrisi kullanılarak eğitim kümesindeki öznitelik vektörleri daha düşük boyutlu bir alt uzaya indirgenir.------
Kod:
eigenfaces = A * L_eig_vec;
projectimg = [ ];
for i = 1 : size(eigenfaces,2)
temp = eigenfaces' * A(:,i);
projectimg = [projectimg temp];
end
-[font=medium-content-serif-font, Georgia, Cambria,]-[font=medium-content-serif-font, Georgia, Cambria,]kaynak aldığım emek verip her detayını yazan İbrahim Erdeme Teşekkürler ------
-[font=medium-content-serif-font, Georgia, Cambria,]-[font=medium-content-serif-font, Georgia, Cambria,]Devamı için Tıkla------


