1 Detekcja twarzy w obrazach cyfrowychz wykorzystaniem algorytmów heurystycznych Piotr Latusek
2 PLAN • Detekcja twarzy i problemy pokrewne • Wyzwania • Heurystyka, kategorie heurystyk • Wybrane podejście • Filtry • Łączenie wyników
3 DETEKCJA TWARZY I 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
4 WYZWANIA I PROBLEMY • Przysłanianie • Poza twarzy • Mina• Warunki środowiskowe • Obecność lub brak elementów strukturalnych • Kąt
5 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.”
6 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 150 różnych metod detekcji twarzy. M. H. Yang, D. J. Kriegman, N. Ahuja, „Detecting Faces in Images”.
7 WYBRANE PODEJŚCIE H. A. Rowley, S. Baluja, T. Kanade, „Neural Network-Based Face Detection”.
8 WYBRANE PODEJŚCIE • Skalowanie • Maska 20 x 20 pikseli • Przetwarzanie wstępne: - eliminacja wariancji oświetlenia, - wyrównywanie histogramu • Właściwy filtr • Łączenie wyników H. A. Rowley, S. Baluja, T. Kanade, „Neural Network-Based Face Detection”.
9 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
10 WYBRANE PODEJŚCIE Dla obrazu o rozmiarach 3072 x 2304 (ok. 7 Mpix) właściwy filtr musi być zastosowany do ramek 20 x 20 pix.
11 FILTRY • Sieci neuronowe • Najbliższy sąsiad - Linear discriminant analysis, Fisherfaces - Samoorganizujące się mapy Kohonena (SOM)
12 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?
13 FILTRY - SIECI NEURONOWE• Sieć neuronowa jest modelem • Parametrami modelu są wagi perceptronów • Dopasowujemy obraz wejściowy do modelu
14 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 sprawdzamy czy jest oznaczony jako twarz czy nie-twarz)
15 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ść
16 FILTRY - NAJBLIŻSZY SĄSIADJak zwiększyć skuteczność? • znaleźć lepszą reprezentację obrazu np. redukcja wymiarów przy użyciu Analizy Liniowych Wyróżników (Linear Discriminant Analysis)
17 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
18 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 obrazy znalezione przy użyciu SOM:
19 ŁĄCZENIE WYNIKÓW • W wyniku dotychczasowych działań otrzymujemy wiele potencjalnych miejsc zawierających twarz • Czas odsiać błędne wyniki i scalić pozostałe
20 ŁĄ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ść
21 ŁĄ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
22 ŁĄCZENIE WYNIKÓW
23 DZIĘKUJĘ ZA UWAGĘ. Pytania?