Detekcja twarzy w obrazach cyfrowych
description
Transcript of Detekcja twarzy w obrazach cyfrowych
Detekcja twarzy w obrazach cyfrowychz wykorzystaniem algorytmów heurystycznych
Piotr [email protected]
PLAN
• Detekcja twarzy i problemy pokrewne• Wyzwania• Heurystyka, kategorie heurystyk• Wybrane podejście• Filtry• Łączenie wyników
DETEKCJA TWARZYI PROBLEMY POKREWNE
• Detekcja twarzy:„ Na postawie zdjęcia ustalić czy znajdują się na
nim twarze, a jeśli tak to w którym miejscu i jaki jest ich rozmiar”
• Lokalizacja twarzy• Rozpoznawanie twarzy
WYZWANIA I PROBLEMY
• Poza twarzy• Przysłanianie
• Mina
• Obecność lub brak elementów strukturalnych
• Kąt
• Warunki środowiskowe
HEURYSTYKA
„Heurystyka - w informatyce metoda znajdowania rozwiązań, dla której nie ma gwarancji znalezienia rozwiązania optymalnego, a często nawet prawidłowego.”
„Rozwiązań tych używa się np. wtedy, gdy pełny algorytm jest z przyczyn technicznych zbyt kosztowny, lub gdy jest nieznany.”
www.wikipedia.pl
KATEGORIE HEURYSTYK
• Metody oparte na ogólnej wiedzy• Metody zakładające niezmienność cech
• Metody dopasowujące do wzorców• Metody dopasowujące do modelu
Do 2002 roku powstało ponad 150różnych metod detekcji twarzy.
M. H. Yang, D. J. Kriegman, N. Ahuja, „Detecting Faces in Images”.
WYBRANE PODEJŚCIE
H. A. Rowley, S. Baluja, T. Kanade, „Neural Network-Based Face Detection”.
WYBRANE PODEJŚCIE
H. A. Rowley, S. Baluja, T. Kanade, „Neural Network-Based Face Detection”.
• Skalowanie• Maska 20 x 20 pikseli• Przetwarzanie wstępne: - eliminacja wariancji oświetlenia, - wyrównywanie histogramu• Właściwy filtr• Łączenie wyników
WYBRANE PODEJŚCIE
• Skalowanie gwarantuje wykrycie twarzy niezależnie od jej wielkości - co z rotacją?
• Przetwarzanie wstępne ujednolica obraz na wejściu filtrów – m.in. niweluje wpływ różnic w oświetleniu
• Możliwość jednoczesnego zastosowania wielu filtrów
WYBRANE PODEJŚCIE
Dla obrazu o rozmiarach
3072 x 2304 (ok. 7 Mpix)
właściwy filtr musi być zastosowany do
19 140 875 ramek 20 x 20 pix.
FILTRY
• Sieci neuronowe
• Najbliższy sąsiad - Linear discriminant analysis, Fisherfaces - Samoorganizujące się mapy Kohonena (SOM)
FILTRY - SIECI NEURONOWE
• Perceptron - kilka zm. wejściowych i jedna zm. wyjściowa - jak dobrać wagi W? - jak dobrać funkcję f?
• Organizacja perceptronów w sieć - ile warstw?
FILTRY - SIECI NEURONOWE
• Sieć neuronowa jest modelem
• Parametrami modelu są wagi perceptronów
• Dopasowujemy obraz wejściowy do modelu
FILTRY - NAJBLIŻSZY SĄSIAD
• Baza wzorców zawierająca obrazy twarzy i innych obiektów nie będących twarzami
• Dopasowujemy obraz wejściowy do wzorców
(tzn. znajdujemy w bazie obraz najbardziej podobny do wejściowego i sprawdzamyczy jest oznaczony jako twarz czy nie-twarz)
FILTRY - NAJBLIŻSZY SĄSIAD
• Jak mierzyć podobieństwo? Najprościej: suma kwadratów różnic między pikselami
mało skuteczne
• Standardowo obraz 20 x 20 jest reprezentowany jako punkt w przestrzeni 400 wymiarowej
• Ten sposób reprezentacji powoduje niską skuteczność
FILTRY - NAJBLIŻSZY SĄSIAD
Jak zwiększyć skuteczność?
• znaleźć lepszą reprezentację obrazu
np. redukcja wymiarów przy użyciuAnalizy Liniowych Wyróżników(Linear Discriminant Analysis)
FILTRY - NAJBLIŻSZY SĄSIAD
• Nowe wymiary są liniową kombinacją starych
• Analiza Liniowych Wyróżników automatycznie dobiera wymiary, które pozwalają najłatwiej rozróżnić twarz od nie-twarzy
• Zbędne informacje są usuwane
• Przykład twarzy zrzutowanej na nowe wymiary, a następnie z powrotem do pierwotnej postaci:
• Twarze w nowej reprezentacji nazywają się Fisherfaces
FILTRY - NAJBLIŻSZY SĄSIAD
• Aby ograniczyć ilość twarzy w bazie można zastosować Samoorganizujące się mapy Kohonena (SOM)
• SOM znajduje reprezentantów grup spośród wielu obrazów
Reprezentacyjne obrazyznalezione przy użyciu SOM:
ŁĄCZENIE WYNIKÓW
• W wyniku dotychczasowych działań otrzymujemy wiele potencjalnych miejsc zawierających twarz
• Czas odsiać błędne wyniki i scalić pozostałe
ŁĄCZENIE WYNIKÓW• Progowanie – usuwanie pojedynczych wystąpień
• Łączenie sąsiadujących wystąpień w jedno - uśrednianie lokalizacji i skali
• Eliminacja nakładających się wystąpień - decyduje ilość
ŁĄCZENIE WYNIKÓW• Scaliliśmy wyniki pojedynczego filtra, pozostało scalenie wyników wszystkich filtrów
• Możemy mieć kilka różnych sieci neuronowych i kilka innych filtrów co pozwala zredukować liczbę błędnych wskazań
• Najprostsze scalanie w tym wypadku to AND lub OR
• Można też użyć sieci neuronowej
ŁĄCZENIE WYNIKÓW
DZIĘKUJĘ ZA UWAGĘ.
Pytania?