Bilgisayarla Görüye Giriş Ders 10 Nesne / Yüz Tespiti ve Tanıma Alp Ertürk alp.erturk@kocaeli.edu.tr
Nesne Tespiti Belirli bir nesnenin sahne içindeki konumunun tespitidir Tespit edilecek nesne önceden bilinmelidir En temel yaklaşım nesnenin bir taslağının alınması ve taslak eşleme yapılmasıdır Taslak eşleme için çok çeşitli metrikler bulunmaktadır: çapraz korelasyon, normalize çapraz korelasyon, faz korelasyonu, fourier-mellin dönüşümü,...
Nesne Tespiti: Taslak Eşleme Hedef Görüntü Normalize çapraz korelasyon sonucu Nesne
Nesne Tespiti: Taslak Eşleme Zor / karmaşık sahnelerde taslak eşleme yaklaşımının başarımı ciddi şekilde düşmektedir.
Nesne Tespiti Zorlukları: Görüş Açısı Farkı
Nesne Tespiti Zorlukları: Aydınlatma Farkı
Nesne Tespiti Zorlukları: Oklüzyon
Nesne Tespiti Zorlukları: Ölçek Farkı
Nesne Tespiti Zorlukları: Deformasyon
Nesne Tespiti Zorlukları: Sınıf İçi Farklılıklar
Nesne Tespiti Temsil Bir nesne kategorisinin nasıl temsil edileceği Öğrenme Eğitim verisine göre tespit yönteminin nasıl oluşturulacağı Tespit / Tanıma Yeni verilerde tespit yönteminin çalışması
Nesne Temsili Üretken / ayrımcı / hibrit
Nesne Temsili Üretken / ayrımcı / hibrit Sadece görünüm / konum ve görünüm
Nesne Temsili Üretken / ayrımcı / hibrit Sadece görünüm / konum ve görünüm Değişmezlikler: Bakış açısı, aydınlatma, oklüzyon, ölçek,... Parça tabanlı / global Öznitelik tabanlı / tüm pikselleri kullanan
Nesne Öğrenme Nesne kategorilerinin nasıl modelleneceği belirgin olmadığından dolayı, Nesnelerin farklarını manuel olarak belirtmek yerine, birbirinden ayıran yanlarını öğrenmek Eğitim üretici veya ayrıştırıcı olabilir
İstatistiksel Nesne Tespiti p( zebra image) vs. p( no zebra imag e) Bayes kuralı: p( zebra image) p( no zebra image) p( image zebra) p( image no zebra) p( zebra) p( no zebra) Sonsal oran Olabilirlik oranı Önsel oran
İstatistiksel Nesne Tespiti Bayes kuralı: p( zebra image) p( no zebra image) p( image zebra) p( image no zebra) p( zebra) p( no zebra) Sonsal oran Olabilirlik oranı Önsel oran Ayrıştırıcı yöntemler sonsal oranı, üretici yöntemler olabilirlik oranını ve önsel oranı modeller
İstatistiksel Nesne Tespiti: Ayrıştırıcı p( zebra image) p( no zebra image) modellenir Karar sınırı Zebra Zebra değil
İstatistiksel Nesne Tespiti: Üretici p( image zebra) ve p( image no zebra) modellenir p( image zebra) Düşük Yüksek p( image no zebra) Orta Orta Düşük
Nesne Tanıma
Nesne Tanıma Nesnenin sadece konumunun tespiti ile ilgilenmemektedir Nesnenin diğer (benzer) nesneler de ayrılması gerekmektedir Araba tespiti yerine belirli bir araba modelinin / markasının tespiti, Yüz tespiti yerine belirli bir kişinin yüzünün tespiti,...
Slide: S. Savarese
Nesne Temsili İlgi noktaları / bölgeleri (öznitelikler) Tespit DoG Harris Laplacian... Adaptasyon Dönme, ölçekleme Afin Tanımlama SIFT Renk histogramları
Nesne Temsili
Model Öğrenme 3B model oluştur: Nesnenin N farklı görüş açısından N görüntüsü Ard arda gelen görüntülerden anahtar nokta eşleştirme Hareket kaynaklı afin yapıyı kullanarak 3B konum ve kamera yönelim ve konumları tespiti Bağlantılı bileşenlerin bulunması Demet ayarlaması ile model iyileştirmesi Sıfır eğiklik ve kare piksel varsayımları altında modelin Öklid yapıya geliştirilmesi
Model Öğrenme
Model Öğrenme
Tanıma Model ile test edilen görüntü (öznitelikleri) arasındaki eşleşmelere bakılır
Tanıma Model ile test edilen görüntü (öznitelikleri) arasındaki eşleşmelere bakılır Hipotez: N eşleşmeden dönüşüm hipotezi oluşturulur (Afin kamera için N = 2)
Tanıma Model ile test edilen görüntü (öznitelikleri) arasındaki eşleşmelere bakılır Hipotez: N eşleşmeden dönüşüm hipotezi (M) oluşturulur (Afin kamera için N = 2) Doğrulama: Diğer eşleşen 3B noktalar M dönüşümü ile test imgesine yansıtılır, oluşan hataya bakılır Amaç, en iyi uyum gösteren modeli bulmaktır.
Tanıma
Tanıma Yüksek eşleşme hatası
Tanıma Düşük eşleşme hatası
Nesne Tanıma
Nesne Tanıma
Nesne Tanıma
Yüz Tespiti ve Tanıma
Yüz Tespiti ve Tanıma
Yüz Tespiti ve Tanıma Tespit Tanıma Sally
Yüz Tespiti ve Tanıma
Eigenface ile Yüz Tanıma Yüzleri ifade etmek için daha düşük boyutlu bir uzay tespit edilebileceği varsayımından yola çıkar Uzayı belirlerken en yüksek değişintiye (ing: variance) sahip k (k<d) yönü bulmak için temel bileşenler analizi (ing: principal component analysis PCA) kullanılır Her yüz, elde edilen öznitelik uzayındaki ( yüz uzayı ) koordinatları ile ifade edilir Yüz uzayı nda en yakın komşuluk (ing: nearest neighbor) ile tanıma yapılır
Eigenface ile Yüz Tespiti: PCA PCA: N veri noktası (xi) ni daha küçük boyutta ifade etmek / öznitelikler çıkarmak içindir İlintili olan noktaları ilintisiz eksenler ile ifade etmeye dayanır Elde edilen özniteliklerin (u) verideki en fazla değişintiyi (variance) barındırması istenir
Eigenface ile Yüz Tespiti: PCA Geometrik olarak düşünürsek: p boyutlu veri noktaları içeren uzayı, yeni eksenlere döndürür Eksenler, ilki en yüksek değişintiye sahip olacak, ikinci ondan sonraki en yüksek değişintiye sahip olacak,..., eksen p ise en düşük değişintiye sahip olacak şekilde sıralanmış olmalıdır Eksen çiftleri arası kovaryans sıfır olmalıdır Değişinti gittikçe azaldığı için tüm eksenler yerine sadece belirli sayıda kullanılarak boyut azaltımı sağlanır
Eigenface ile Yüz Tanıma Yüzleri ifade etmek için daha düşük boyutlu bir uzay tespit edilebileceği varsayımından yola çıkar Uzayı belirlerken en yüksek değişintiye (ing: variance) sahip k (k<d) yönü bulmak için temel bileşenler analizi (ing: principal component analysis PCA) kullanılır Her yüz, elde edilen öznitelik uzayındaki ( yüz uzayı ) koordinatları ile ifade edilir Yüz uzayı nda en yakın komşuluk (ing: nearest neighbor) ile tanıma yapılır
Eigenface ile Yüz Tanıma Eğitim kümesi:
Eigenface ile Yüz Tanıma Ortalama yüz ve yüksek değişintiye sahip özvektörler:
Eigenface ile Yüz Tanıma Bir yüzün yüz uzayında ifadesi: x = µ + w 1 u 1 + w 2 u 2 + w 3 u 3 + w 4 u 4 +
Eigenface ile Yüz Tanıma Etiketli eğitim görüntüleri için, Ortalama µ ve kovaryans matrisi Σ hesapla k temel bileşen tespit et (Σ nın özvektörleri) Her eğitim görüntüsü x i yi temel bileşenlerin taradığı alt-uzaya izdüşür Yeni (test) görüntüsü için, Eğitim görüntüleri üzerinden tespit edilen alt-uzaya izdüşür Opsiyonel: İzdüşüm sonrası geri oluşturma hatasına bakarak görüntünün gerçekten yüz olup olmadığını tespit et k boyutlu alt-uzayda en yakın eğitim görüntüsünün etiketini yeni görüntüye ata
Viola-Jones ve Adaboost ile Yüz Tanıma Gerçek zamanlı nesne tespiti amacıyla geliştirilmiştir Eğitim aşaması yavaş, tespit aşaması hızlıdır Öznitelikleri hızlı değerlendirmek için integral görüntüleri kullanılır Öznitelik seçimi için Boosting Yüz olmayan pencerelerin hızlı reddi için Attentional cascade
Viola-Jones ve Adaboost ile Yüz Tanıma Öznitelik tespiti için dikdörtgenel doğrusal süzgeçler kullanılır Çıktı değeri beyaz alanda kalan piksellerin değerlerinin toplamından siyah alanda kalan piksellerin değerlerinin toplamının farkıdır
Viola-Jones ve Adaboost ile Yüz Tanıma Öznitelik tespiti için dikdörtgenel doğrusal süzgeçler kullanılır Çıktı değeri beyaz alanda kalan piksellerin değerlerinin toplamından siyah alanda kalan piksellerin değerlerinin toplamının farkıdır
Viola-Jones ve Adaboost ile Yüz Tanıma
Viola-Jones ve Adaboost ile Yüz Tanıma
İntegral görüntüler İntegral görüntü ile her (x,y) pikseli için, (x,y) nin solunda ve üstünde kalan tüm piksel değerlerinin toplamı hesaplanır (x,y) Görüntü üzerinden tek geçişte hesaplanması mümkündür
İntegral görüntüler Kümülatif satır toplamı: s(x,y) = s(x-1,y) + i(x,y) İntegral görüntü: ii(x,y) = ii(x,y-1) + s(x,y) ii(x, y-1) s(x-1, y) i(x, y)
İntegral görüntüler üzerinden işlem A, B, C, D integral görüntünün bir dikdörtgen kenarlarındaki değerleri ise D B Dikdörtgenin içinde kalan orijinal görüntü piksel değerlerinin toplamı A-B-C+D C A şeklinde hesaplanır.
Öznitelik seçimi 24 24 boyutunda tespit bölgesi için olası dikdörtgen özniteliklerin sayısı ~ 160,000!
Öznitelik seçimi 24 24 boyutunda tespit bölgesi için olası dikdörtgen özniteliklerin sayısı ~ 160,000! Her özniteliği kullanarak sonuç çıkartmak pratik değil! Tüm olası öznitelikler arasından küçük bir alt-küme kullanılarak iyi bir sınıflandırıcı oluşturmak için: Boosting
Boosting Boosting, zayıf öğrenicileri daha başarılı bir sınıflandırıcı oluşturmak amacıyla birleştirme tabanlı bir yaklaşımdır Eğitim aşaması birden çok boosting yinelemesi içerir Her yinelemede, önceki zayıf öğreniciler için zorlayıcı olan örneklere odaklanan zayıf bir öğrenici seçilir Zorlayıcılık, eğitim örneklerine verilen ağırlıklar ile hesaplanır
Boosting Boosting eğitim aşaması: Öncelikli olarak her eğitim örneğine eşit ağırlık atanır Her yinelemede, En düşük ağırlıklandırılmış eğitici hatasını veren zayıf öğrenici bulunur Mevcut zayıf öğrenici ile yanlış sınıflandırılan eğitim örneklerinin ağırlıkları artırılır Öncelikli olarak her eğitim örneğine eşit ağırlık atanır Tüm zayıf öğrenicilerin doğrusal bileşimi ile nihai sınıflandırıcı oluşturulur. Öğrenicilerin ağırlıkları başarımları ile doğru orantılıdır
Boosting Zayıf Sınıflandırıcı 1
Boosting Ağırlıklar artırıldı
Boosting Zayıf Sınıflandırıcı 2
Boosting Ağırlıklar artırıldı
Boosting Zayıf Sınıflandırıcı 3
Boosting Nihai sınıflandırıcı, zayıf sınıflandırıcıların doğrusal bileşimidir
Viola-Jones için Boosting Dikdörtgen özniteliklere bağlı zayıf sınıflandırıcılar oluşturulur h ( x) t 1 0 if p t f ( x) otherwise t p t t Boosting in her dönüşünde, Her örnek için dikdörtgen süzgeç değerlendirilir Ağırlıklandırılmış eğitim hatasına bağlı olarak en iyi süzgeç / eşik kombinasyonu seçilir Örnekler tekrar ağırlandırılır
Attentional Cascade Negatif alt-pencerelerin çoğunu reddedip neredeyse tüm pozitif alt-pencereleri tespit eden basit sınıflandırıcılarla başlama mantığına dayanmaktadır İlk sınıflandırıcının pozitif cevabı ikinci ve daha kompleks bir sınıflandırıcının kullanılmasını tetikler, ve bu şekilde devam eder Cascade yapı boyunca herhang bir noktadaki negatif sonuç altpencerenin reddedilmesini sağlar Görüntü Alt Penceresi Sınıflandırıcı 1 T T Sınıflandırıcı 2 Sınıflandırıcı 3 T YÜZ F Yüz Değil F Yüz Değil F Yüz Değil
Attentional Cascade Yapının tespit oranı ve hatalı pozitif oranı, aşamalara ait oranların çarpılması sonucu elde edilir 0.9 tespit oranı ve 10-6 hatalı pozitif oranı, 10 aşamalı cascade bir yapı ile, eğer her aşamanın 0.99 tespit oranı ve 0.3 civarı hatalı pozitif oranı varsa elde edilebilir (0.99 10 0.9, 0.3 10 6 10-6 ) Görüntü Alt Penceresi Sınıflandırıcı 1 T T Sınıflandırıcı 2 Sınıflandırıcı 3 T YÜZ F Yüz Değil F Yüz Değil F Yüz Değil
Yüz Tespit / Tanıma Sonuçları
"The Nikon S60 detects up to 12 faces."
Yüz Profil Tespiti
Yüz Profil Tespiti