Własne twarze

Eigenfaces ( zwane także Engl. Eigenfaces ) są wynikiem metody automatycznego rozpoznawania twarzy . Jako metoda widzenia maszynowego , twarze własne umożliwiają rozpoznawanie w czasie rzeczywistym wcześniej wytrenowanego zestawu ludzkich tożsamości - wymagają jednak bardzo wysokiego stopnia jednorodności pod względem warunków oświetlenia, wielkości obrazów, rotacji i skalowania twarzy. Ze względu na dużą wrażliwość na zmienność między zbiorem danych treningowych a twarzą, która ma zostać sklasyfikowana, twarze siebie są w praktyce coraz rzadziej wykorzystywane do rozpoznawania twarzy. Procedura, opracowana w 1991 r., Jest uważana za pierwszą w pełni zautomatyzowaną technologię rozpoznawania twarzy i stanowi podstawę wielu dalszych opracowań, zastosowań przemysłowych i inspiracji dla alternatywnych podejść. Metoda opiera się na analizie głównych składowych iw przeciwieństwie do bardziej nowoczesnych metod wykorzystujących konwolucyjne sieci neuronowe , należy kategoria uczenia się bez nadzoru .

Historia procesu

Rozwój podstawowy

Podstawowym problemem widzenia maszynowego jest to, że obraz z wymiarami może być postrzegany jako wektor w wielowymiarowej przestrzeni z wymiarami, a ta ogromna liczba stopni swobody (istnieją już 8-bitowe obrazy w skali szarości o wielkości pikseli), czysto statystycznie , bardzo utrudnia rozpoznawanie obiektów Problem. Analiza głównych składowych (PCA) jest najmniejszą możliwą do znalezienia podprzestrzenią wektorową metody, która reprezentuje największą ilość wariancji w danych i eliminuje zbędne korelacje. Poszukując bardziej zwartej reprezentacji obrazów twarzy, Sirovich i Kirby po raz pierwszy zastosowali analizę składowych głównych w 1987 r., Aby użyć najważniejszych składowych głównych jako wektorów bazowych do wygenerowania mniej wymiarowej reprezentacji, której liniowa kombinacja mogłaby skutecznie zrekonstruować oryginalne obrazy. Kierunki największej wariancji są uzyskiwane przy użyciu PCA przez obliczenia te wektory własne i wartości własne tej macierzy kowariancji z rozkładu prawdopodobieństwa na wysokim-wymiarowej przestrzeni możliwych obrazów twarzy (mówiąc po prostu, najbardziej charakterystyczne cechy poszczególnych twarzy). Cztery lata później Turk i Pentland udoskonalili ten proces, tak aby twarze mogły być klasyfikowane i kategoryzowane w czasie zbliżonym do rzeczywistego, co było przełomem w technologii rozpoznawania twarzy. Ogólnie rzecz biorąc, obliczenie wektorów własnych macierzy korelacji jest bardzo czasochłonne, ponieważ rozmiar tej kwadratowej macierzy zależy od jakości obrazu. Kluczowe dla obliczeń w czasie rzeczywistym było to, że Turk i Pentland znaleźli sposób na obliczenie wektorów własnych tej wielowymiarowej macierzy korelacji poprzez obliczenie wektorów własnych powiązanej macierzy, której rozmiar skaluje się tylko z ilością obrazów w zbiorze danych (szczegóły w części Opis procedury ).

Dalszy rozwój

Oryginalna metoda ma wiele oczywistych słabości ( szczegóły poniżej ), które starano się skompensować poprzez ulepszenia. Jako przykłady podano:

  • Pentland i in. zaprezentował w 1994 r. za pomocą View-Based Eigenfaces podejście, które tworzy oddzielne przestrzenie własne dla różnych wyrazów twarzy, tak aby rozpoznawanie twarzy nie było ograniczone do neutralnych wyrazów twarzy.
  • W tej samej pracy opisano modułową strukturę cech własnych , która oblicza różne przestrzenie własne dla pewnych elementów twarzy i wykorzystuje powstałe w ten sposób własne nosy , własne oczy i inne cechy, aby udoskonalić „zgrubną” reprezentację własnej twarzy .
  • Do klasyfikacji twarzy w celu optymalizacji (zamiast maksymalnych kompaktowych reprezentacji do produkcji) może Fisher (Engl twarze. Fisherfaces ) zamiast być wykorzystywane przez własne twarze - na podstawie liniowej analizy dyskryminacyjnej .
  • Histogramy lokalnych wzorców binarnych (LBPH). Twarze własne i łowiska są w dużym stopniu zależne od warunków oświetlenia. Tę wadę można pokonać za pomocą rozpoznawania twarzy LBPH.

oprogramowanie

W darmowym oprogramowaniu - biblioteka do przetwarzania obrazów OpenCV zaimplementowano własne Faces, Faces i Fisher LBPH.

Opis zabiegu

Ściany własne są generowane przy użyciu analizy głównych składowych (PCA).

Instrukcje dotyczące praktycznej realizacji

Załóżmy, że masz zestaw obrazów twarzy, tak aby każdy obraz miał wymiary (na przykład każdy obraz składa się z pikseli). Aby metoda zadziałała, zdjęcia muszą być wykonane w podobnych warunkach oświetleniowych i te same elementy (oczy, nos, usta itp.) Muszą znajdować się w tych samych pozycjach. Następnie procedura wygląda następująco:

1. Poszczególne obrazy są przekształcane z macierzy do wektora o wymiarach 90 000, tak więc .

2. Średnia twarz jest obliczana z całego zestawu danych treningowych:

.

3. Ta średnia twarz jest odejmowana od każdego obrazu ze zbioru danych treningowych:

.

4. Ściany różnic są teraz łączone w celu utworzenia macierzy .

5. Macierz kowariancji jest obliczana:

Teraz oszczędza wariancji poszczególnych pikseli w całym zbiorze danych na głównej przekątnej i po kowariancji z piksela z piksela w całym zbiorze danych przy głównej alei Diagonal w pozycji .

6. Następnie obliczamy wektory własne i wartości własne macierzy kowariancji . Wektory własne macierzy kowariancji mają taką samą wymiarowość jak oryginalne obrazy. Turk i Pentland nazwali ich twarzami siebie ze względu na ich wygląd .

7. Wektory własne są sortowane w porządku malejącym zgodnie z bezwzględną wielkością wartości własnych, tak aby pierwsze wektory własne pokrywały największą wariancję. Zbiór uwzględnionych twarzy własnych jest teraz tworzony dość arbitralnie na podstawie wartości progowej dla skumulowanej wyjaśnionej wariancji.

8. Własne twarze można teraz wykorzystać do zwięzłego przedstawienia znanych lub nowych twarzy i późniejszego ich rekonstrukcji lub określenia tożsamości osoby.

Problem z prędkością

Obliczenie wektorów własnych z zwykle nie jest łatwe z dwóch powodów. Po pierwsze: ponieważ nawet w przypadku obrazów o rozmiarze pikseli generowana jest macierz kowariancji o rozmiarze , której wektorów własnych nie można obliczyć w zadowalającym czasie. Po drugie, ogólna zasada jest taka . Ponieważ w szczególnym przypadku obliczania twarzy własnych zbiór uczący zawiera mniej obrazów niż każdy piksel obrazu, nie ma pełnej rangi, a zatem niektóre wartości własne są równe zeru. Z reguły istnieją dokładnie rzeczywiste wektory własne. Zamiast obliczać je z ogromnym wysiłkiem obliczeniowym na podstawie metody , Turk i Pentland zastosowali sztuczkę, która umożliwia lokalizację i rozpoznawanie twarzy w czasie rzeczywistym : obliczają wektory własne nowej macierzy, która jest zdefiniowana w następujący sposób:

Wektory własne liczby można obliczyć w ułamku czasu, ponieważ mają one znacznie mniejszy wymiar niż . W zestawie szkoleniowym obrazów rozmiar jest tylko rozmiarem , a nie oryginalnym rozmiarem . Obliczenie wektorów własnych przy przesunięciu ma zastosowanie z następujących powodów:

Niech będzie rozkładem wartości własnej danego przez

szukał. Ponieważ macierz jest zbyt duża, rozważymy zamiast tego rozkład wartości własnej :

Jeśli równanie zostanie pomnożone przez po lewej stronie, otrzymamy wynik

Niech teraz rozkład wartości własnej jest wyraźnie uzyskany z rozkładu wartości własnej . Otrzymane w ten sposób wektory są wektorami własnymi , przy czym interesują nas tylko s o najwyższych wartościach własnych . W „s musi być ortonormalną tj H. nadal wymagają normalizacji.

Interpretacja własnych twarzy

Przykłady twarzy własnych wygenerowane z dużej bazy danych

W eigenfaces są uzyskane wektory własne w macierzy korelacji . Twarze własne są twarzami ogólnymi w tym sensie, że rzeczywiste twarze można zrekonstruować za pomocą liniowych kombinacji ich własnych twarzy. Biorąc pod uwagę wystarczająco duży zestaw danych, każda twarz ludzka mogłaby być zatem reprezentowana przez kombinację tych znormalizowanych twarzy. W oparciu o prawą rękę pokazano twarze własne, które różne twarze własne kodują różne właściwości (stają się wyraźnymi cechami ) obrazów uczących. Podczas gdy górne twarze odbijają części fryzury, twarz u dołu po lewej przedstawia oświetlenie tła, a twarz u dołu po prawej przedstawia kierunek padania światła.

Aby zwizualizować twarze własne, należy je najpierw przekonwertować z zapisu wektorowego na macierzowy. Jest zwyczajowo porządkować płaszczyzny własne według bezwzględnej ilości skojarzonych z nimi wartości własnych , tak że pierwsze twarze własne reprezentują pozycje o największej wariancji, a trafność kolejnych twarzy własnych stopniowo maleje. Z matematycznego punktu widzenia PCA obraca układ współrzędnych w taki sposób, że osie nowego układu współrzędnych (ściany własne) leżą w kierunku największej wariancji rozmaitości określonej przez dane uczące .

Kompresja i rekonstrukcja twarzy

Twarze własne umożliwiają zapisywanie obrazów w bardzo zwartej formie, ponieważ każdy obraz uczący jest rzutowany na przestrzeń własną obejmującą twarze własne. Można to osiągnąć poprzez zwykłe pomnożenie wektora obrazu przez macierz płaszczyzny własnej i otrzymanie wektora długości zamiast oryginalnej macierzy rozmiaru . Ponieważ z reguły wyświetlane są tylko najważniejsze twarze, rzeczywista reprezentacja obrazu jest jeszcze bardziej zwarta. Rzeczywiste obrazy treningowe można teraz zrekonstruować poprzez liniową kombinację najważniejszych indywidualnych twarzy. Błąd rekonstrukcji zmniejsza się, im więcej twarzy jest używanych do rekonstrukcji. Na przykład, do pierwszego obrazu treningowego można zastosować, co następuje : (tj. 15% pierwszej twarzy plus 42% drugiej i tak dalej).

Graficzne przeciwieństwo (wkrótce pojawi się) ilustruje wpływ rosnącej liczby powiązanych twarzy na rekonstrukcję. Podjęto próbę rekonstrukcji tego samego obrazu w każdej kolumnie. W pierwszej linii użyto do tego tylko pierwszej twarzy własnej, w drugiej linii pierwszych 5 twarzy własnych, w trzeciej linii pierwszych 10 twarzy własnych, aw ostatniej linii wszystkich. Chociaż twarze są łatwiejsze do zobaczenia poniżej, nawet w tym przykładzie można zauważyć, że błąd rekonstrukcji szybko osiąga punkt nasycenia.

Własne twarze do rozpoznawania tożsamości

Twarze własne mogą być używane w bardzo elegancki sposób do rozpoznawania uprzednio wytrenowanych tożsamości. Odbywa się to poprzez rzutowanie nagrania znanej osoby, nieznanej algorytmowi, do przestrzeni własnej generowanej przez powierzchnię własną . Powstały wektor można teraz porównać ze wszystkimi obrazami z bazy danych szkoleniowych przy użyciu klasycznych, wektorowych pomiarów odległości (np. Norma euklidesowa ). Tożsamość nieznanego nagrania można następnie określić za pomocą K najbliższych sąsiadów lub podobnych metod klasyfikacji .

Uogólnienie twarzy na własny obraz

Pojęcie twarzy siebie można łatwo uogólnić na wszystkie inne typy obrazów (obrazy własne ). Zakres pojęcia samo- twarze zyskał tylko ze względu na fakt, że pierwsza aplikacja badane przy użyciu self-images było rozpoznawanie twarzy. Na przykład obrazy własne można wyodrębnić z zestawu obrazów, które pokazują ten sam obiekt z różnych kątów, odległości i warunków oświetlenia w celu wygenerowania reprezentacji obiektu, która jest możliwie najbardziej niezmienna w transformacji, która może być następnie wykorzystana w algorytmach rozpoznawania obiektów z góry, takich jak dopasowywanie szablonów lub modele szkieletowe . Innym przykładem może być sekwencja obrazów, która pokazuje, jak obserwowana, statyczna scena porusza się tam iz powrotem na siatkówce z powodu mikrosakad . Również tutaj obrazy własne pokazują szczególnie niezmienne składniki sceny. Inne zastosowania obrazów własnych to czytanie z ruchu warg , uwierzytelnianie mówcy , procesy obrazowania lub rozpoznawanie pisma ręcznego .

Podsumowanie

Za

  • Proces szkolenia jest w pełni automatyczny, nienadzorowany i łatwy do wdrożenia.
  • Po zakończeniu procesu szkolenia rozpoznawanie twarzy można przeprowadzić w czasie rzeczywistym.
  • Własne twarze radzą sobie z dużymi bazami danych obrazów treningowych (skalowalność).
  • Twarze własne są optymalnie (pod względem wariancji) skompresowanymi reprezentacjami wielowymiarowych obrazów twarzy.

Cons

  • Wysoka wrażliwość na zmienność warunków oświetlenia, rotację i skalowanie twarzy, wyraz twarzy, zaciemnienie i wielkość obrazu. W związku z tym warunki wykonywania zdjęć muszą być bardzo precyzyjnie kontrolowane.
  • W praktycznych zastosowaniach pierwsze twarze przedstawiają zwykle zmienność warunków oświetlenia, a nie zmianę samych twarzy. Aby poprawić precyzję algorytmu, pierwsze 3 twarze są często ignorowane.

Indywidualne dowody

  1. ^ Shang Zeng i Matthew Turk: Eigenfaces. Artykuł Scholarpedia, 2008, dostęp 1 stycznia 2018 .
  2. Lawrence Sirovich, Michael Kirby: Niskowymiarowa procedura charakteryzacji ludzkich twarzy. (PDF) Journal of the Optical Society of America, 1987, s. 509-524 , dostęp 1 stycznia 2018 .
  3. Matthew Turk, Alex Petland: Self Faces for Recognition. (PDF) Journal of Cognitive Neuroscience, 1991, s. 71–86 , dostęp 1 stycznia 2018 r. (Angielski).
  4. ^ A. Pentland i in.: Oparte na widoku i modularne przestrzenie własne do rozpoznawania twarzy. Proceedings of CVPR, 1994, obejrzano 1 stycznia 2018 .
  5. PB Belhumeur et al.: Eigenfaces vs. Fisherfaces: Recognition using Class Specific Linear Projection. (PDF) IEEE Transactions on Pattern Analysis and Machine Intelligence, lipiec 1997, dostęp 1 stycznia 2018 .
  6. Ramiz Raja: Wykrywanie twarzy przy użyciu OpenCV i Python. Super Data Science, 3 sierpnia 2017, dostęp 24 stycznia 2019 .
  7. Dokumentacja OpenCV: Rozpoznawanie twarzy za pomocą OpenCV. Źródło 24 stycznia 2019 r .
  8. ^ Born, J. et al.: Hebbian Learning of Hand-Centered Represenations w Hierarchical Neural Network Model of the Primate Visual System. PLOS ONE, maj 2017, dostęp 1 stycznia 2018 .