Eigenface - Eigenface

Niektóre twarze własne z AT&T Laboratories Cambridge

Eigenface ( / ɡ ə n ˌ F s / ) to nazwa nadana zestawu wektorów własnych używane w Computer Vision problemu ludzkiej rozpoznawania twarzy . Podejście do rozpoznawania twarzy własnych zostało opracowane przez Sirovicha i Kirby'ego (1987) i wykorzystane przez Matthew Turka i Alexa Pentlanda w klasyfikacji twarzy. Wektory własne są wyprowadzone z macierzy kowariancji z rozkładu prawdopodobieństwa, na wysokociśnieniowej wymiarowej przestrzeni wektorowej obrazów twarzy. Same twarze własne tworzą podstawowy zbiór wszystkich obrazów używanych do konstruowania macierzy kowariancji. Powoduje to redukcję wymiarów, umożliwiając mniejszemu zestawowi obrazów podstawowych reprezentowanie oryginalnych obrazów szkoleniowych. Klasyfikację można osiągnąć, porównując sposób reprezentacji twarzy w zestawie podstawowym.

Historia

Podejście do twarzy własnej rozpoczęło się od poszukiwania niskowymiarowej reprezentacji obrazów twarzy. Sirovich i Kirby (1987) wykazali, że analiza składowych głównych może zostać wykorzystana na zbiorze obrazów twarzy w celu utworzenia zestawu podstawowych cech. Te obrazy podstawowe, znane jako obrazy własne, można łączyć liniowo, aby zrekonstruować obrazy w oryginalnym zestawie uczącym. Jeśli zbiór uczący składa się z M obrazów, analiza składowych głównych mogłaby stanowić podstawowy zbiór N obrazów, gdzie N <M . Błąd rekonstrukcji jest redukowany poprzez zwiększenie liczby zdjęć własnych; Jednakże ilość konieczna jest zawsze mniejsza niż wybrana M . Na przykład, jeśli chcesz wygenerować kilka N twarzy własnych dla zestawu uczącego obrazów twarzy M , możesz powiedzieć, że każdy obraz twarzy może składać się z „proporcji” wszystkich „cech” K lub twarzy własnych: Obraz twarzy 1 = (23% E 1 ) + (2% E 2 ) + (51% E 3 ) + ... + (1% E n ).

W 1991 roku M. Turk i A. Pentland rozszerzyli te wyniki i przedstawili metodę rozpoznawania twarzy własnej. Oprócz projektowania systemu do automatycznego rozpoznawania twarzy z wykorzystaniem eigenfaces pokazali sposób obliczania wektorów własnych : a kowariancji macierzy tak, że komputery czasie może wykonywać Eigen-rozkładu na dużej liczbie obrazów twarzy. Obrazy twarzy zwykle zajmują wielowymiarową przestrzeń, a konwencjonalna analiza głównych składowych była niemożliwa do wykonania na takich zestawach danych. Artykuł Turk i Pentland zademonstrował sposoby wyodrębniania wektorów własnych na podstawie macierzy o rozmiarze odpowiadającym liczbie obrazów, a nie liczbie pikseli.

Po ustaleniu metoda twarzy własnej została rozszerzona o metody przetwarzania wstępnego w celu poprawy dokładności. Zastosowano również wiele różnorodnych podejść do zbudowania zestawów twarzy własnych dla różnych podmiotów i różnych cech, takich jak oczy.

Pokolenie

Zestaw eigenfaces może być generowany przez wykonanie matematycznego procesu zwanego głównym składnikiem analizy (PCA) na duży zestaw obrazów przedstawiających różne twarze ludzkie. Nieformalnie, twarze własne można uznać za zestaw „ustandaryzowanych składników twarzy”, pochodzących z analizy statystycznej wielu zdjęć twarzy. Każda twarz ludzka może być traktowana jako połączenie tych standardowych twarzy. Na przykład, twarz może składać się ze średniej twarzy plus 10% z twarzy własnej 1, 55% z twarzy własnej 2, a nawet −3% z twarzy własnej 3. Co ciekawe, nie potrzeba wielu twarzy własnych połączonych razem, aby osiągnąć dobre przybliżenie większość twarzy. Ponadto, ponieważ twarz osoby nie jest rejestrowana na zdjęciu cyfrowym , ale jako lista wartości (jedna wartość dla każdej twarzy własnej w używanej bazie danych), twarz każdej osoby zajmuje znacznie mniej miejsca.

Utworzone płaszczyzny własne pojawią się jako jasne i ciemne obszary ułożone według określonego wzoru. Ten wzorzec jest sposobem wyodrębniania różnych cech twarzy, które mają być ocenione i ocenione. Pojawi się wzór do oceny symetrii , niezależnie od tego, czy istnieje jakikolwiek styl zarostu, gdzie jest linia włosów, czy ocena wielkości nosa lub ust. Inne twarze własne mają wzory, które są mniej łatwe do zidentyfikowania, a obraz twarzy własnej może wyglądać bardzo mało jak twarz.

Technika wykorzystywana do tworzenia twarzy własnych i wykorzystywania ich do rozpoznawania jest również wykorzystywana poza rozpoznawaniem twarzy: rozpoznawanie pisma ręcznego , czytanie ust , rozpoznawanie głosu , interpretacja języka migowego / gestów dłoni oraz analiza obrazowania medycznego . Dlatego niektórzy nie używają terminu powierzchnia własna, ale wolą używać terminu „obraz własny”.

Praktyczna realizacja

Aby utworzyć zestaw twarzy własnych, należy:

  1. Przygotuj zestaw treningowy zdjęć twarzy. Zdjęcia składające się na zestaw treningowy powinny być wykonane w tych samych warunkach oświetleniowych i muszą być znormalizowane, aby oczy i usta były wyrównane na wszystkich zdjęciach. Muszą również zostać ponownie próbkowane do wspólnej rozdzielczości pikseli ( r × c ). Każdy obraz jest traktowany jako jeden wektor, po prostu poprzez konkatenację rzędów pikseli w oryginalnym obrazie, w wyniku czego powstaje pojedyncza kolumna z elementami r × c . W przypadku tej implementacji zakłada się, że wszystkie obrazy zbioru uczącego są przechowywane w jednej macierzy T , gdzie każda kolumna macierzy jest obrazem.
  2. Odejmij średnią . Średnia obrazu ma być obliczona, a następnie odejmowano od każdego obrazu oryginalnego w T .
  3. Obliczenia wartości własne i wartości własnych tej macierzy kowariancji S . Każdy wektor własny ma taką samą wymiarowość (liczbę komponentów) jak oryginalne obrazy, a zatem sam może być postrzegany jako obraz. Wektory własne tej macierzy kowariancji są zatem nazywane twarzami własnymi. Są to kierunki, w których obrazy różnią się od obrazu średniego. Zwykle będzie to kosztowny obliczeniowo krok (jeśli w ogóle to możliwe), ale praktyczne zastosowanie twarzy własnych wynika z możliwości wydajnego obliczenia wektorów własnych S , bez obliczania S bezpośrednio, jak szczegółowo opisano poniżej.
  4. Wybierz główne składniki. Posortuj wartości własne w porządku malejącym i odpowiednio ułóż wektory własne. Liczba głównych składowych k jest określana arbitralnie przez ustalenie progu ε dla całkowitej wariancji. Całkowita wariancja , n = liczba składników.
  5. k to najmniejsza liczba, która spełnia

Te twarze własne mogą być teraz używane do reprezentowania zarówno istniejących, jak i nowych twarzy: możemy rzutować nowy (odjęty od średniej) obraz na twarze własne i tym samym rejestrować, jak ta nowa twarz różni się od średniej. Wartości własne powiązane z każdą twarzą własną reprezentują, jak bardzo obrazy w zestawie uczącym różnią się od średniego obrazu w tym kierunku. Informacje są tracone przez rzutowanie obrazu na podzbiór wektorów własnych, ale straty są minimalizowane przez utrzymywanie tych twarzy własnych o największych wartościach własnych. Na przykład praca z obrazem 100 × 100 da 10000 wektorów własnych. W praktycznych zastosowaniach większość twarzy można zazwyczaj zidentyfikować za pomocą rzutowania na od 100 do 150 twarzy własnych, dzięki czemu można odrzucić większość z 10000 wektorów własnych.

Przykładowy kod Matlaba

Oto przykład obliczania twarzy własnych za pomocą rozszerzonej bazy danych Yale Face B.Aby uniknąć wąskiego gardła obliczeniowego i pamięci masowej, obrazy twarzy są próbkowane w dół o współczynnik 4 × 4 = 16.

clear all;
close all;
load yalefaces
[h, w, n] = size(yalefaces);
d = h * w;
% vectorize images
x = reshape(yalefaces, [d n]);
x = double(x);
% subtract mean
mean_matrix = mean(x, 2);
x = bsxfun(@minus, x, mean_matrix);
% calculate covariance
s = cov(x');
% obtain eigenvalue & eigenvector
[V, D] = eig(s);
eigval = diag(D);
% sort eigenvalues in descending order
eigval = eigval(end: - 1:1);
V = fliplr(V);
% show mean and 1st through 15th principal eigenvectors
figure, subplot(4, 4, 1)
imagesc(reshape(mean_matrix, [h, w]))
colormap gray
for i = 1:15
    subplot(4, 4, i + 1)
    imagesc(reshape(V(:, i), h, w))
end

Zauważ, że chociaż macierz kowariancji S generuje wiele twarzy własnych, tylko ułamek z nich jest potrzebny do reprezentowania większości ścian. Na przykład, aby przedstawić 95% całkowitej zmienności wszystkich obrazów twarzy, potrzebne są tylko pierwsze 43 twarze własne. Aby obliczyć ten wynik, zaimplementuj następujący kod:

% evaluate the number of principal components needed to represent 95% Total variance.
eigsum = sum(eigval);
csum = 0;
for i = 1:d
    csum = csum + eigval(i);
    tv = csum / eigsum;
    if tv > 0.95
        k95 = i;
        break
    end;
end;

Obliczanie wektorów własnych

Wykonywanie PCA bezpośrednio na macierzy kowariancji obrazów jest często niewykonalne obliczeniowo. Jeśli używane są małe obrazy, powiedzmy 100 × 100 pikseli, każdy obraz jest punktem w przestrzeni 10 000 wymiarowej, a macierz kowariancji S to macierz 10 000 × 10 000 = 10 8 elementów. Jednak ranga macierzy kowariancji jest ograniczona liczbą przykładów uczących: jeśli istnieje N przykładów uczących, będzie co najwyżej N  - 1 wektorów własnych z niezerowymi wartościami własnymi. Jeśli liczba przykładów uczących jest mniejsza niż wymiarowość obrazów, główne składniki można obliczyć łatwiej w następujący sposób.

Niech T będzie macierzą wstępnie przetworzonych przykładów szkoleniowych, w których każda kolumna zawiera jeden obraz po odjęciu średniej. Macierz kowariancji można następnie obliczyć jako S = TT T, a rozkład wektora własnego S jest dana wzorem

Jednak TT T jest dużą macierzą, a zamiast tego weźmiemy rozkład wartości własnej

następnie zauważamy, że mnożąc wstępnie obie strony równania przez T , otrzymujemy

To znaczy, że jeżeli U i jest wektor własny T T T , wtedy v I  =  Tu i jest wektor własny S . Jeśli mamy zestaw uczący 300 obrazów o wymiarach 100 × 100 pikseli, macierz T T T jest matrycą 300 × 300, która jest znacznie łatwiejsza w zarządzaniu niż macierz kowariancji 10000 × 10000. Zauważ jednak, że wynikowe wektory v i nie są znormalizowane; jeśli wymagana jest normalizacja, należy ją zastosować jako dodatkowy krok.

Połączenie z SVD

Niech X oznacza macierz danych z kolumną jako wektorem obrazu z odjętą średnią. Następnie,

Niech rozkład wartości osobliwych (SVD) X będzie:

Wówczas rozkład wartości własnej dla jest następujący:

, gdzie Λ = diag (wartości własne )

W ten sposób możemy łatwo zauważyć, że:

Eigenfaces = the first ( ) kolumny skojarzone z niezerowymi wartościami osobliwymi.
I-ta wartość własna i-tej wartości osobliwej

Używając SVD na macierzy danych X , nie jest konieczne obliczanie rzeczywistej macierzy kowariancji, aby uzyskać krzywe własne.

Użyj w rozpoznawaniu twarzy

Rozpoznawanie twarzy było motywacją do tworzenia twarzy własnych. W tym zastosowaniu płaszczyzny własne mają przewagę nad innymi dostępnymi technikami, takimi jak szybkość i wydajność systemu. Ponieważ powierzchnia własna jest przede wszystkim metodą redukcji wymiarów, system może reprezentować wiele podmiotów ze stosunkowo niewielkim zestawem danych. Jako system rozpoznawania twarzy jest również dość niezmienny dla dużych redukcji rozmiarów obrazu; jednak zaczyna zawodzić znacznie, gdy różnica między widzianym obrazem a obrazem sondy jest duża.

Aby rozpoznać twarze, obrazy z galerii - te widziane przez system - są zapisywane jako zbiory wag opisujących wkład każdej twarzy własnej w ten obraz. Kiedy nowa twarz jest prezentowana w systemie do klasyfikacji, jej własne wagi są znajdowane poprzez rzutowanie obrazu na zbiór własnych twarzy. Zapewnia to zestaw wag opisujących czoło sondy. Te wagi są następnie klasyfikowane ze wszystkimi wagami w zestawie galerii, aby znaleźć najbliższe dopasowanie. Metoda najbliższego sąsiada jest prostym podejściem do znalezienia odległości euklidesowej między dwoma wektorami, gdzie minimum można sklasyfikować jako najbliższy obiekt ( Turk i Pentland 1991 , s. 590)

Intuicyjnie, proces rozpoznawania za pomocą metody twarzy własnych polega na rzutowaniu obrazów zapytań na przestrzeń twarzy rozciągniętą przez obliczone twarze własne i znalezienie najlepszego dopasowania do klasy twarzy w tej przestrzeni twarzy.

Pseudo kod
  • Mając wejściowy wektor obrazu , średni wektor obrazu z bazy danych , oblicz wagę k-tej twarzy własnej jako:
    Następnie utwórz wektor wagi
  • Porównaj W z wektorami wagi obrazów w bazie danych. Znajdź odległość euklidesową.
  • Jeśli to m-ty wpis w bazie danych jest kandydatem do uznania.
  • Jeśli , to U może być nieznaną twarzą i może zostać dodane do bazy danych.
  • Jeśli nie jest to zdjęcie twarzy.

Wagi każdego obrazu w galerii przekazują tylko informacje opisujące ten obraz, a nie ten temat. Obraz jednego obiektu przy oświetleniu przednim może mieć bardzo różną wagę niż zdjęcia tego samego obiektu przy silnym oświetleniu z lewej strony. Ogranicza to zastosowanie takiego systemu. Eksperymenty w oryginalnym artykule Eigenface dały następujące wyniki: średnio 96% ze zmiennością światła, 85% ze zmiennością orientacji i 64% ze zmiennością wielkości. ( Turk & Pentland 1991 , s. 590)

Do metody powierzchni własnej, takich jak cechy własne, wprowadzono różne rozszerzenia . Ta metoda łączy metryki twarzy (pomiar odległości między rysami twarzy) z reprezentacją twarzy własnej. Inną metodą podobną do techniki twarzy własnej jest „ łowienie ryb ”, która wykorzystuje liniową analizę dyskryminacyjną . Ta metoda rozpoznawania twarzy jest mniej wrażliwa na zmiany oświetlenia i pozy twarzy niż używanie własnych twarzy. Fisherface wykorzystuje dane oznaczone etykietami, aby zachować więcej informacji specyficznych dla klasy na etapie redukcji wymiarów.

Kolejną alternatywą dla twarzy własnych i rybackich jest aktywny model wyglądu . To podejście wykorzystuje aktywny model kształtu do opisania konturu twarzy. Zbierając wiele konturów twarzy, można wykorzystać analizę głównych komponentów do stworzenia podstawowego zestawu modeli, które obejmują różnorodność różnych twarzy.

Wiele nowoczesnych podejść nadal wykorzystuje analizę głównych składowych jako sposób na redukcję wymiarów lub tworzenie obrazów bazowych dla różnych trybów zmienności.

Przejrzeć

Eigenface zapewnia łatwy i tani sposób na rozpoznanie twarzy, ponieważ:

  • Jego proces szkolenia jest całkowicie automatyczny i łatwy do zakodowania.
  • Eigenface odpowiednio zmniejsza złożoność statystyczną w reprezentacji obrazu twarzy.
  • Po obliczeniu twarzy własnych bazy danych rozpoznawanie twarzy może odbywać się w czasie rzeczywistym.
  • Eigenface może obsługiwać duże bazy danych.

Jednak wady metody twarzy własnej są również oczywiste:

  • Jest bardzo wrażliwy na oświetlenie, skalę i translację oraz wymaga wysoce kontrolowanego środowiska.
  • Eigenface ma trudności z wychwyceniem zmian ekspresji.
  • Najbardziej znaczące twarze własne dotyczą głównie kodowania oświetlenia i nie dostarczają użytecznych informacji dotyczących rzeczywistej twarzy.

Aby poradzić sobie z rozproszeniem oświetlenia w praktyce, metoda powierzchni własnych zwykle odrzuca pierwsze trzy twarze własne ze zbioru danych. Ponieważ oświetlenie jest zwykle przyczyną największych zmian w obrazach twarzy, pierwsze trzy twarze własne będą głównie przechwytywać informacje o trójwymiarowych zmianach oświetlenia, które mają niewielki wpływ na rozpoznawanie twarzy. Odrzucając te trzy twarze własne, nastąpi znaczny wzrost dokładności rozpoznawania twarzy, ale inne metody, takie jak łowienie ryb i przestrzeń liniowa, nadal mają przewagę.

Zobacz też

Uwagi

Bibliografia

Linki zewnętrzne