PCA Algoritması ve Özyüzler Metodu
PCA algoritması ve Özyüzler metodunun kısaca bir tarihçesine bakalım;
Öz yüzler yaklaşımı ilk olarak Sirovich ve Kirby (Eigenfaces, Principal Component Analysis, PCA, 1987) tarafından kullanılarak yüzü etkin bir şekilde göstermek için uygulanmıştır. Temel bileşen analizi olarak da bilinen Karhunen-Louve genişlemesine dayanmaktadır. Bu, bilgi teorisinde veriyi kodlama ve kodunu çözmede iyi bilinen bir tekniktir. Bu kişiler yüz resimleri gruplarından başlayarak bu resimlerin temel bileşenlerini hesaplamışlardır. Daha sonra da öz vektörün sadece küçük parçalarının ağırlıklı birleşimini kullanılarak yüz resmini yeniden oluşturmuşlardır. (Kirby ve Sirovich, 1990) bu metotlarını 115 yüz resmi veri tabanında test ettiler ve yaklaşık olarak %3 yanılma (hata) payıyla bir yüzü yeniden oluşturmak için sadece 40 öz vektörün yeterli olduğunu göstermişlerdir. Bundan kısa bir süre sonra yüzün simetrisini dikkate alarak (örneğin bütün yüzlerde gözler, burun v.s. aynı bölgede) orijinal metotlarını geliştirdiler. Algoritmayı 87 kişilik bir veritabanında test etmişlerdir.
(Turk ve Pentland, 1991) bu fikri daha da geliştirdi ve ilk tam otomatik sistemlerden birini üretmişlerdir. Kendi sistemlerini 16 kişinin 2500 resmi bulunan bir veri tabanında denemişlerdir. Resimler farklı bas uyumlarını, boyutları, ışıklandırma koşullarından seçilmiştir. Sistemleri, farklı ışıklandırmaya sahip resimler üzerinde %96, farklı bas uyumlarının da %85, farklı görüntü ölçeklerinde %64 doğru sınıflandırma sonuçları elde edilmiştir.
Geçmişte yapılan çalışmalar böyle.Şimdi bu metodu biraz açıklamaya çalışayım.
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. Sağladığı avantajlar, hızlı ve hesaplama acısından kolay olması. Fakat sınıf bilgisini kullanmadığını göz önüne alırsak, en fazla değişmenin olduğu bileşenlerin sınıflandırma problemi için doğru öznitelikleri içerdiğini garanti edemeyiz.
PCA algoritmasının 3 temel amacı vardır;
- Verilerin boyutunu azaltmak
- Tahminlerde bulunmak
- Veri setini, bazı analizlerde görüntülemek
Özyüz elde ederken ise , öncelikle veritabanı içerisindeki n x m
boyutundaki yüz resimleri tek boyutlu bir satır vektörüne çevrilir. n xm= N
olduğunu düşünürsek, elimizde m tane n boyutlu yüz vektörü olur.Özyüzler elde etmenin matematiği ve pca algoritmasının matematiği hakkında elimde türkçeye çevirdiğim kaynak bulumaktadır. İsteyen olursa maille yollayabilirim.
İşin algoritması ise şöyle ;
Yüz tanımada özyüz yönteminin kullanım algoritması Şekil-1’de gösterilmiştir. İlk olarak orijinal resim eğitilecek resimler arasına eklenir ve bu E dizisi içinde tanımlanır. Daha sonra eğitim setindeki her resim için ağırlık hesabı yapılır ve W dizisine eklenir. X bilinmeyen resmi gözlemlenir, belirlenen görüntü için ağırlık hesabı yapılır ve Wx vektörü bulunur. Daha sonra Wx vektörü ağırlıkları bilinen diğer görüntülerle karşılaştırılır. Son olarak da doğru yüz görüntüsü olup olmadığının cevabının verilmesiyle algoritma sonlanır.
Şekil 1. PCA ve Özyüzler Yönteminin Algoritması
Daha önce de söylediğim gibi PCA ve özyüzler metodunun matematiği ile ilgili elimde daha geniş türkçe kaynak bulunmaktadır. Formülleri yazmak biraz işkenceli olduğu için buraya yazamadım fakat isteyen olursa yollayabilirim...