s604-wykrywanie twar..
Transkrypt
s604-wykrywanie twar..
rozpoznawanie twarzy, przetwarzanie obrazów cyfrowych, wyszukiwanie obrazów Tomasz CHWISZCZUK Janusz SOBECKI* WSZUKIWANIE I IDENTYFIKOWANIE OSÓB NA PODSTAWIE OBRAZÓW CYFROWYCH ZAMIESZCZONYCH W SIECI INTERNET Rozpoznawanie twarzy na obrazach cyfrowych od pewnego czasu dojrzało do wielu zastosowań praktycznych. Nie znaczy to oczywiście, że badania prowadzone w tej dziedzinie przestały być prowadzone. Nad identyfikacją osób na podstawie ich obrazów cyfrowych pracuje wiele zespołów badawczych na całym świecie, dotyczą one nie tylko wzrostu efektywności rozpoznawania obrazów twarzy wykonanych w warunkach kontrolowanych ale coraz częściej na dowolnych, również grupowych zdjęciach. W referacie zaprezentowano metodę lokalizacji, wyodrębniania oraz rozpoznawania twarzy na podstawie informacji o wartościach kolorów punktów na zdjęciach w postaci cyfrowej obrazie pobranym z kamery. Przedstawiono również koncepcję wykorzystania tej metody w Internetowej wyszukiwarce obrazów wybranych osób. 1. WPROWADZENIE W ostatnich latach automatyczne rozpoznawanie osób na podstawie obrazów cyfrowych ich twarzy cieszy się sporym zainteresowaniem badaczy związanych z różnymi dziedzinami informatycznymi m.in. grafiką komputerową i sztuczną inteligencją. Zagadnienie to znajduje szerokie zastosowanie w wielu dziedzinach życia takich jak: kryminalistyka, medycyna, monitorowanie pomieszczeń, autoryzacja dostępu czy też, co jest przedmiotem tej pracy, wyszukiwanie osób na zdjęciach. Rozpoznawanie osób na podstawie obrazów cyfrowych ich twarzy składa się generalnie z dwóch etapów: lokalizacji ludzkiej twarzy na zdjęciu oraz jej późniejszej identyfikacji. Istnieje obecnie wiele metod służących do wyodrębniania twarzy ze zdjęcia, często bazują one jednak na określonych założeniach, są zatem skuteczne tylko w pewnych okolicznościach (zdjęcia typu portretowego, jednolite tło itp). W referacie zostaną zaprezentowane zarówno metody służące do wyodrębniania obrazu twarzy ze zdjęć w postaci cyfrowej jak i metody służące do identyfikacji konkretnych osób na podstawie zapamiętanych wzorców. W referacie zostanie przedstawiona również implementacja wybranych metod wykorzystana w aplikacji służącej do wyszukiwania w sieci Internet zdjęć zawierających konkretne osoby, opierając się na * Wydziałowy Zakład Systemów Informacyjnych, Politechnika Wrocławska ul. Wyb. Wyspiańskiego 27, 50-370 Wrocław,(e-mail: [email protected].) zdolności rozpoznawania ich twarzy. Przedstawione zostaną również metody zdolne odnaleźć szukaną osobę na dowolnym zdjęciu, na którym jest ona widoczna. Lokalizowanie twarzy odbywa się poprzez wyodrębnienie z obrazu obszarów odpowiadających barwie ludzkiej skóry, a następnie odrzuceniu takich obszarów, w których nie udało się odnaleźć linii oczu i ust. Do identyfikacji tak wyodrębnionych ze zdjęcia twarzy zostaną wykorzystane sieci neuronowe, uczone rozpoznawać konkretne osoby na podstawie charakterystycznych cech twarzy oraz odpowiednio dobranym ciągom uczącym w postaci przykładowych obrazów ich twarzy w różnych ujęciach. 1.1. STOSOWANE METODOLOGIE W ROZPOZNAWANIU TWARZY Do rozpoznawania twarzy na obrazach cyfrowych stosuje się wiele różnorodnych metod, ich przegląd można znaleźć w pracy [1]. Wykorzystują one wiele technik znanych także z innych zastosowań takich jak: sieci neuronowe, uczenie maszynowe, dopasowywanie szablonów (ang. template matching), transformata Hough’a czy wreszcie analiza kolorów. Jednak praktycznie najważniejsze znaczenie mają metody wykorzystujące sieci neuronowe oraz analizę kolorów bazujące na informacji o wartościach kolorów punktów na obrazie i barwie ludzkiej skóry w komputerowym modelu barw oraz sieciach neuronowych [1]. Pierwszą metodę zastosował w swojej pracy Rein-Lien Hsu [2] uzyskując na zbiorze 382 zdjęć rodzinnych (1.72 twarzy na obrazek) skuteczność detekcji 80.35% oraz 10.41% błędnych detekcji. Algorytm składa się z kilku etapów, m.in. kompensacji światła na obrazie wejściowym w celu uniezależnienia wpływu oświetlenia na kolor ludzkiej skóry, detekcję obszarów skóry przy użyciu modelu barw YCbCr oraz ich weryfikację m.in. poprzez lokalizację linii oczu oraz ust (bazując na fakcie, że barwę pikseli w okolicach oczu cechują wysokie wartości składowej Cb oraz niskie składowej Cr, wysokie wartości Cr w okolicach ust oraz, że okolice oczu zawierają piksele zarówno o niskiej jak i wysokiej jasności – składowa Y). Następnie generowana jest elipsa zawierająca obszar twarzy, posiadająca orientację wyznaczaną przez wektor, którego końcem są usta a początkiem środek odcinka łączącego oczy. Rowley, Baluja i Kanade [3] prezentują algorytm bazujący na użyciu sieci neuronowych, którego skuteczność w zależności od stosowanej architektury (kilkanaście wariantów) wahała się od 86% do 97% poprawnych detekcji. Algorytm składa się z dwóch głównych etapów – najpierw obraz wejściowy poddawany jest działaniu filtrów bazujących na sieciach neuronowych, które badają każdą część obrazu wejściowego w kilku różnych skalach, szukając lokacji mogących zawierać twarz. Następnie uruchamiany jest mechanizm łączący uzyskane z indywidualnych filtrów wyniki i eliminujący błędne lub nadmiarowe obszary. W celu zmniejszenia błędu fałszywych identyfikacji, zastosowanych zostało kilka niezależnie uczonych sieci, a część wspólną ich odpowiedzi traktowano jako odpowiedź systemu. Wśród algorytmów służących do identyfikacji twarzy często wykorzystywaną techniką jest technika dopasowywania grafu (ang. graph matching), w której obiekty przedstawia się w postaci grafów z wierzchołkami odpowiadającymi elementom twarzy oraz krawędziom obrazującym odległości między nimi, a proces identyfikacji polega na znalezieniu grafu najbardziej pasującego do zadanego. Stosując tą metodologię Martin Lades [4], przeprowadzając testy na 87 zdjęciach z dopuszczalnym odchyleniem twarzy 15 stopni od pozycji frontalnej, uzyskał bardzo wysoką skuteczność, niestety kosztem wydajności (czas porównania jednego zdjęcia z zawartością bazy danych wynosił ok. 25 s). Ulepszoną wersję techniki dopasowywania grafu (ang. morphological elastic graph matching) prezentuje w swojej pracy C. Kotropoulos [5], proponując jako alternatywę do używanego w podstawowej metodzie wyznaczania wektora cech na bazie filtrów Gabora, zastosowanie wieloskalowych morfologicznych filtrów rozszerzających/erodujących (ang. multiscale morphological dilation-erosion), co pozwoliło na zwiększenie skuteczności bazowej metody (spadek błędu EER z 5.4% do 3.7%). Innym rozwiązaniem może być bezpośrednie porównanie, polegające na obliczeniu różnicy wartości pikseli pomiędzy obrazem badanym a wzorcem (bądź kilkoma wzorcami) zawartymi w bazie danych. Wadą tej metody są dość restrykcyjne warunki jakie muszą być spełnione, aby dopasowanie przebiegło pomyślnie (ten sam rozmiar obrazów, zbliżone naświetlenie, orientacja twarzy). 2. ZASTOSOWANA METODA ROZPOZNAWANIA TWARZY Rozpoznawanie osób na podstawie obrazów cyfrowych obejmuje dwa główne etapy: lokalizację oraz identyfikację twarzy. Większość obecnych metod lokalizacji twarzy ogranicza się tylko do pewnego rodzaju zdjęć (np. portretowych), aby ominąć trudności związane z takimi czynnikami jak niejednolite tło czy oświetlenie, różne kąty nachylenia twarzy czy obecność wielu ludzkich twarzy na obrazie. Planowane wykorzystanie metody rozpoznawania twarzy na obrazach cyfrowych zamieszczonych w sieci Internet wymaga zastosowania algorytmów zdolnych do lokalizowania ludzkich twarze na dowolnych rodzajach fotografii. Identyfikacja tak znalezionych obszarów twarzy odbywać się będzie przy pomocy sieci neuronowych uczonych rozpoznawać twarze konkretnych osób. 2.1. ALGORYTM LOKALIZACJI TWARZY NA OBRAZIE Algorytm lokalizacji twarzy na obrazie bazuje na odnalezieniu na obrazie odpowiednio dużych skupisk pikseli, których barwa odpowiada kolorowi ludzkiej skóry, a następnie ujęciu ich w prostokątne ramki i przeskalowaniu do ustalonych rozmiarów w celu poddania dalszej analizie. DANE szerokość oraz wysokość obrazu wejściowego (OX oraz OY) szerokość oraz wysokość obrazu wyjściowego (VX oraz VY) bazowa wartość barwy piksela odpowiadająca kolorowi ludzkiej skóry (H) zakres tolerancji barwy pikseli odpowiadających kolorowi ludzkiej skóry w stosunku do bazowej wartości Hue (HR) wielkość okna filtra usuwającego szumy (F) tolerancja filtra usuwającego szumy - procent białych pikseli wewnątrz badanego wycinka obrazu wymaganych do „wygaszenia” badanego piksela (T) zakres wartości luminacji pikseli odrzucanych jako zbyt ciemne bądź zbyt jasne (B) zakres wartości nasycenia pikseli odrzucanych jako zbyt szare (S) wartość barwy danego piksela obrazu wejściowego (P) KROK1 /*wyznaczanie obszarów ludzkiej skóry*/ Dla każdego piksela obrazu wejściowego (P) sprawdź czy należy on do obszaru odpowiadającego kolorowi ludzkiej skóry, zgodnie z zasadą: (H-HR < P < H+HR) and (B < P < 100-B) and (S < P) Piksele spełniające powyższe warunki oznacz jako czarne (uwaga: na poniższych zdjęciach dla zachowania czytelności zachowano różne skale szarości), a nie spełniające jako białe. Rys. 1 Wyznaczanie obszarów występowania ludzkiej skóry KROK2 /*filtrowanie zakłóceń*/ Tak otrzymany binarny obraz przefiltruj pod kątem usunięcia zakłóceń (pojedynczych czarnych pikseli bądź ich małych skupisk), stosując filtr o wielkości okna F oraz tolerancji T, zgodnie z następującą metodyką: Dla każdego piksela obrazu* wytnij z obrazu wejściowego okno o wymiarach FxF, tak aby badany piksel był jego centralnym punktem†. Niech: N– ilość czarnych pikseli w badanym wycinku obrazu Wtedy: Jeśli N*100/F*F < T to badany piksel oznacz jako biały – wygaszenie KROK3 /*segmentacja obszarów*/ Wyznacz ilość potencjalnych obszarów twarzy oraz znajdź współrzędne okien w których się zawierają, według zasady: Dla każdego piksela obrazu sprawdź czy jest on czarny. Jeśli tak, wypełnij obszar do którego należy kolejnym kolorem (różnym od czarnego i białego) i zwiększ ilość obszarów o 1. Następnie dla każdego z użytych wcześniej kolorów wypełniania, znajdź minimalną oraz maksymalną wartość X i Y jego występowania w obrazie wejściowym. Tak znalezione współrzędne zapamiętaj jako lewy górny oraz prawy dolny róg okna wyznaczającego potencjalny obszar twarzy. * oprócz pewnej warstwy pikseli brzegowych, których nie da rady umieścić w oknie filtra, gdyż wychodzi ono wtedy poza ramy obrazu wyjściowego. Oczywiście im większe okno filtra, tym „grubsza” warstwa pomijanych pikseli † dlatego też F musi być liczbą nieparzystą Rys.2. Filtrowanie zakłóceń Rys.3. Segmentacja obszarów KROK4 /*wstępna weryfikacja*/ Z tak wyznaczonych potencjalnych obszarów twarzy odrzuć te o zbyt małych rozmiarach, według zasady: Niech: (x1,y1,x2,y2) – współrzędne okna Wtedy: Jeśli (x2-x1 < VX) and (y2-y1 < VY) to odrzuć obszar Rys.4. Wstępna weryfikacja KROK5 /* interpolacja*/ Wyznaczone wcześniej potencjalne obszary twarzy przeskaluj do jednakowych rozmiarów (VXxVY) stosując algorytm interpolacji dwuliniowej, pozwalającej uniknąć efektu pojawiających się pikseli na obrazie. Rys.5. Interpolacja KROK6 /*wektory cech*/ Z przeskalowanych wcześniej obszarów twarzy wygeneruj wektory cech (ciąg liczb długości VX*VY będący odpowiednikiem poziomów szarości każdego z pikseli obszaru) , które podane zostaną na wejście sieci neuronowej w celu ustalenia czy są one twarzą poszukiwanej osoby. Kroki algorytmu od 1 do 6 powtarzane są kilkakrotnie dla każdego obrazu z różnymi zestawami parametrów H, HR, F, T, B oraz S, jako że nie da się znaleźć uniwersalnego dla wszystkich zdjęć zestawu parametrów. Prowadzi to oczywiście do częstej redundancji wyników oraz znalezienia większej ilości obszarów nie będących twarzami, pozwala jednak na wydobycie z obrazu wszelkich obszarów, które potencjalnie zawierają obrazy twarzy. Natomiast błędne zidentyfikowane obszary zostają i tak w dalszym procesie odrzucone przez sieć neuronową. 2.2. IDENTYFIKACJA TWARZY Do identyfikacji wyodrębnionych w poprzednim etapie twarzy posłużyła sieć neuronowa, a konkretnie program Student Version Basis of AI Backprop autorstwa Donalda R. Tveter’a w wersji z listopada 1998r. Sieć neuronowa zbudowana jest z kolejnych warstw neuronów, połączonych każdy z każdym. Wszystkie połączenia posiadają swoje wagi, których poprawne wyznaczenie jest celem uczenia sieci neuronowej. Odbywa się to poprzez podawanie na wejście sieci ciągów uczących, tzn. zbiorów danych dla których znamy rozwiązanie. Sieć generuje odpowiedź i sprawdza ją z rzeczywistym wynikiem, jeśli błąd sieci jest zbyt duży, następuje odpowiednia modyfikacja wag (wg zadanego algorytmu). Zastosowana aplikacja działa w oparciu o algorytm wstecznej propagacji błędów (ang. backpropagation). Polega on na wyznaczaniu wektora gradientu powierzchni błędu, tzn. kierunku w którym wzrost funkcji błędu jest najszybszy. Tak więc modyfikacja wag odbywa się dokładnie w przeciwnym kierunku w celu zmniejszenia funkcji błędu. Wagi ustalane są na nowo i powtórnie analizowane są wszystkie ciągi uczące, aż do momentu uzyskania odpowiednio małego błędu. 3. WYNIKI EKSPERYMENTÓW 3.1. LOKALIZACJA TWARZY NA OBRAZIE Wstępne eksperymenty przeprowadzone na zbiorze około 100 różnorodnych zdjęć, pokazały, że najbardziej optymalny zestaw parametrów algorytmu lokalizacji twarzy na obrazie to: H=25, HR=15, F=9, T=80, S=10 (przy zakresie S 0-100), B=50 (przy zakresie B 0-255). Mimo dość dużej skuteczności lokalizacji twarzy przy takich właśnie parametrach udawało się znaleźć ok. 75-80% obrazów twarzy, czyli wciąż około 25% twarzy było pomijanych. Stąd koncepcja zastosowania do każdego z badanych zdjęć kilku zestawów parametrów i zsumowania wyników ich detekcji o czym mowa w powyższym algorytmie. Po przeprowadzeniu eksperymentów na 32 zestawach parametrów, wytypowanych zostało kolejnych 4, których zastosowanie pozwoliło na zwiększenie skuteczności detekcji do ok. 85-90%. 3.2. IDENTYFIKACJA TWARZY Do nauki sieci neuronowej wykorzystanych zostało: 110 obrazów twarzy osoby X, które zostały wykonane w różnych warunkach oświetleniowych, na dowolnym tle, z twarzą ustawioną pod różnymi kątami, nie większymi jednak niż 30 stopni od pozycji frontalnej oraz 110 dowolnych obrazów nie zawierających żadnych twarzy jak i zawierające twarze innych osób. Obrazy zostały podzielone na trzy ciągi: uczący, walidacyjny* oraz testowy† w następujący sposób: po 50 zdjęć pozytywnych oraz negatywnych jako ciąg uczący oraz odpowiednio po 30 zdjęć na ciągi walidacyjny oraz testowy. Struktura sieci neuronowej, za pomocą której udało się uzyskać najlepsze wyniki składała się jedynie z 2 warstw neuronów: wejściowej (400 neuronów – VX=20 na VY=20, reprezentującej poziomy szarości pikseli obszaru wejściowego) oraz wyjściowej (2 neurony reprezentujące dwie klasy identyfikacji). Wprowadzanie warstw ukrytych‡ o dowolnej wielkości zwiększało jedynie błąd sieci oraz wydłużało znacznie czas treningu. Mogło to wynikać z faktu, iż zastosowanie zbyt skomplikowanej w stosunku do problemu sieci, czyli sieci o zbyt dużej liczbie warstw i zbyt dużej liczbie neuronów w warstwach ukrytych, prowadzi często do uczenia się „na pamięć” całego zbioru uczącego, co w efekcie daje bardzo dobre wyniki na zbiorze treningowym, a słabe na testowym. Z drugiej strony trzeba jednak pamiętać, że sieci nie posiadające warstw ukrytych są w stanie jedynie modelować proste zależności liniowe [6]. Wyniki działania sieci neuronowych użytych do identyfikacji różnych par typów obrazów przedstawiono w tabeli 1. Lp. 1. 2. 3. 4. Porównanie§ TX z T TX z T i NT TX z NT T z NT Pozytywna identyfikacja 71,67 73,33 91,67 70,00 Współczynnik błędu 0,31225 0,26788 0,09054 0,28832 Tab.1. Eksperymentalne wyniki działania sieci neuronowych * Ciąg walidacyjny służy do niezależnej kontroli procesu uczenia, pozwala uniknąć efektu przeuczenia sieci, czyli nadmiernego dopasowania do ciągu uczącego. Jeśli błąd dla ciągu uczącego spada, natomiast dla ciągu walidacyjnego zaczyna w pewnym momencie rosnąć lub długo się nie zmienia, oznacza to, że sieć zbytnio dopasowała się do ciągu uczącego i traci zdolność do generalizacji wyników uczenia. † Służy do testowania sieci, w celu upewnienia się, że rezultaty otrzymane w procesie uczenia są zgodne z rzeczywistością. ‡ Warstwa neuronów znajdująca się pomiędzy warstwą wejściową a wyjściową. § TX – twarze osoby X, T – dowolne twarze, NT – obrazy nie zawierające twarze ale wyodrębnione przez algorytm 4. INTERNETOWA WYSZUKIWARKA VIP-FINDER Zadaniem wyszukiwarki jest z jednej strony wyszukiwanie pojawiających się w sieci Internet zdjęć zawierających potencjalnie zdjęcia wybranych osób. Z drugiej natomiast, prezentowanie zdjęć zawierających wybrane osoby. Na potrzeby działania tego systemu wybrano w tym celu kilku najbardziej znanych polityków z Polski i ze świata. Serwisami na, których można znaleźć takie zdjęcia są oczywiście serwery takich tytułów prasowych jak Rzeczpospolita, Gazeta, Neesweek, Times itp. Następnie należy dla każdej z wybranych osób zgromadzić odpowiednio liczną próbkę zdjęć wykonanych z różnych ujęć. Następnie wyodrębnić z tych zdjęć same obrazy ich twarzy z wykorzystaniem przedstawionej metody wyodrębniania, następnie należy obrazy te zakwalifikować do odpowiedniej klasy ujęcia (z przodu, lewy profil, prawy profil, lewy-półprofil, prawy-półprofil), uwzględniając ewentualnie również widok z dołu i góry. Na podstawie serii takich zdjęć należy przygotować sieci neuronowe, które odróżniają dane ujęcie od innych obrazów typu T i NT, dla każdego ujęcia i dla każdej z wybranych osób. W ten sposób wyszukiwarka dysponuje mechanizmem, który pozwala przypisać określoną wagę reprezentującą stopień podobieństwa każdego wyodrębnionego do określonego ujęcia zadanej osoby. Każde wyszukane zdjęcie zawierające przynajmniej jedną z wybranych twarzy zostaje umieszczone w bazie wraz z informacją o stopniu podobieństwa do określonego ujęcia oraz lokalizacji danego fragmentu na obrazie. Lokalizowanie i indeksowanie obrazów odbywa się w czasie gdy system i sieć jest najmniej obciążona. Wyszukiwanie przy pomocy VIP-FINDER polega na połączeniu się ze stroną wyszukiwarki, wybraniu określonej osoby i/lub jej wybranego ujęcia z listy tekstowej lub zestawu zaprezentowanych zdjęć. Wyniki wyszukiwania pobierane są z przygotowanej uprzednio bazy i prezentowane użytkownikowi postaci listy pomniejszonych obrazów uszeregowanych wg malejących wag podobieństwa. Na życzenie użytkownik może otrzymać powiększone zdjęcie wraz z zaznaczonym zidentyfikowanym obszarem oraz oryginalnym URL-em tego obrazu. 5 PODSUMOWANIE Przedstawioną metodę wyszukiwania można zastosować również do innych celów, np. wspomagania znajdowania poszukiwanych przez policję osób na podstawie obrazów cyfrowych wykonywanych przez kamery cyfrowe umieszczane obecnie w wielu miejscach publicznych takich jak sklepy, dworce, lotniska itp. Efektywność zaprezentowanej metody nie jest zbyt wysoka, jednak w porównaniu z innymi metodami wykorzystującymi np. NMSE [6] niezbyt czasochłonna, gdyż należałoby przeprowadzić porównania z . Jeżeli zależałoby nam na zwiększeniu precyzji wyszukiwania dla wstępnie wyselekcjonowanych obrazów oraz określonych rodzajów ujęć konkretnej osoby można przeprowadzić dodatkową weryfikację przy użyciu tej metody, której błąd wynosi jedynie 5% a skuteczność 91% [6]. Przy wykorzystaniu NMSE spore znaczenie ma również jasność obrazu więc należałoby również uwzględnić konieczność przeprowadzenia wyrównania histogramem. LITERATURA [1] D. Maio and D. Maltoni, "Real-time face location on gray-scale static images,'' Pattern Recognition, vol.33, no. 9, pp. 1525-1539, Sept. 2000. [2] R.-L. Hsu, M. Abdel-Mottaleb, and A. K. Jain, “Face detection in color images”, Proc. International Conference on Image Processing (ICIP) , Greece, October 7-10, 2001. [3] H. A. Rowley, S. Baluja, and T. Kanade, "Neural Network-Based Face Detection," IEEE Trans. PAMI, vol. 20, pp. 23-38, Jan. 1998. [4] Martin Lades, Jan.C Vorbrüggen, Joachim Budmann, Jörg Lange, Christoph von der Malsburg, Rolf P.Würtz, Wolfgang Konen, "Distortion invariant object recognition in the dynamic link architecture”, IEEE Transactions on Computers, 42(3), pp.300-311, 1993 [5] C. Kotropoulos, A. Tefas, and I. Pitas, "Frontal face authentication using morphological elastic graph matching,'' IEEE Trans. Image Processing, vol. 9, pp. 555-560, April 2000. [6] Pieczyńska-Kuchtiak A., Sobecki J. Rozpoznawanie osób na podstawie obrazów cyfrowych zawierających ich twarze. W: Multimedialne i sieciowe systemy informacyjne. Materiały konferencyjne pod red. Czesława Daniłowicza. [Wrocław, 18-19 września 2000]. Wrocław: Oficyna Wydaw. PWroc. 2000 s. 207-216. ABSTRACT Computer face recognition matured recently to many practical applications. This does not end research in the field. In the paper the method for face location and isolation from photos taken in the controlled conditions as well as uncontrolled conditions is presented. The method considers colors of pixels. The face identification is made using the neuron nets. These methods are applied to the web-based face retrieval of selected persons.