Kontakt z nami

Artificial Intelligence

DeepFace do zaawansowanego rozpoznawania twarzy

mm

Rozpoznawanie twarzy stanowi od kilku lat modną dziedzinę sztucznej inteligencji i uczenia maszynowego, a szerokie kulturowe i społeczne implikacje rozpoznawania twarzy są dalekosiężne. Istnieje jednak luka w wydajności między ludzkimi systemami wzrokowymi a maszynami, która obecnie ogranicza zastosowania rozpoznawania twarzy. 

Aby przezwyciężyć bufor utworzony przez lukę w wydajności i zapewnić dokładność na poziomie ludzkim, wprowadziła Meta Głębokie Twarze, system rozpoznawania twarzy. Model DeepFace jest szkolony na dużym zbiorze danych dotyczących twarzy, który znacznie różni się od zbiorów danych wykorzystywanych do konstruowania punktów odniesienia w ocenie, i ma potencjał, aby uzyskać lepsze wyniki niż istniejące struktury przy minimalnych dostosowaniach. Co więcej, platforma DeepFace tworzy zwarte reprezentacje twarzy w porównaniu z innymi systemami, które generują tysiące cech wyglądu twarzy. 

Proponowany framework DeepFace wykorzystuje głęboki Learning trenować na dużym zbiorze danych składającym się z różnych form danych, w tym obrazów, filmów i grafiki. Architektura sieci DeepFace zakłada, że ​​po zakończeniu dopasowywania położenie każdego obszaru twarzy jest ustalane na poziomie pikseli. Dlatego możliwe jest użycie surowych wartości RGB pikseli bez użycia wielu warstw splotowych, jak ma to miejsce w innych frameworkach. 

Konwencjonalny potok nowoczesnych struktur rozpoznawania twarzy składa się z czterech etapów: wykrywanie, dopasowanie, reprezentacja i klasyfikacja. Struktura DeepFace wykorzystuje jawne modelowanie twarzy 3D w celu zastosowania fragmentarycznej transformacji i wykorzystuje dziewięciowarstwową głęboką sieć neuronową w celu uzyskania reprezentacji twarzy. Struktura DeepFace próbuje wnieść następujący wkład

  1. Opracuj efektywną architekturę DNN lub głębokiej sieci neuronowej, która może wykorzystać duży zbiór danych do stworzenia reprezentacji twarzy, którą można uogólnić na inne zbiory danych. 
  2. Użyj wyraźnego modelowania 3D, aby opracować skuteczny system wyrównania twarzy. 

Zrozumienie działania modelu DeepFace

Wyrównanie twarzy

Face Alignment to technika polegająca na obracaniu obrazu osoby w zależności od kąta patrzenia. Wyrównywanie twarzy to popularna praktyka stosowana do wstępnego przetwarzania danych rozpoznawanie twarzyi zbiory danych wyrównane do twarzy pomagają poprawić dokładność algorytmów rozpoznawania, zapewniając znormalizowane dane wejściowe. Jednak wyrównywanie twarzy w nieograniczony sposób może być trudnym zadaniem ze względu na wiele czynników, takich jak niesztywny wyraz twarzy, pozy ciała i inne. Kilka wyrafinowanych technik dopasowywania, takich jak wykorzystanie analitycznego modelu twarzy 3D lub wyszukiwanie punktów odniesienia z zewnętrznego zbioru danych, może pozwolić programistom pokonać te wyzwania. 

Chociaż wyrównanie jest najpopularniejszą metodą radzenia sobie z nieograniczoną weryfikacją i rozpoznawaniem twarzy, w tej chwili nie ma idealnego rozwiązania. Stosowane są również modele 3D, ale ich popularność znacznie spadła w ciągu ostatnich kilku lat, zwłaszcza podczas pracy w nieograniczonym środowisku. Ponieważ jednak ludzkie twarze są obiektami 3D, może to być właściwe podejście, jeśli zostanie prawidłowo zastosowane. Model DeepFace wykorzystuje system wykorzystujący punkty odniesienia do tworzenia analitycznego modelowania 3D twarzy. Ten model 3D jest następnie używany do wypaczenia kadru twarzy do trybu czołowego 3D. 

Co więcej, podobnie jak większość praktyk wyrównywania, wyrównywanie DeepFace wykorzystuje również detektory punktów odniesienia do kierowania procesem wyrównywania. Chociaż model DeepFace wykorzystuje prosty detektor punktowy, stosuje go w kilku iteracjach w celu udoskonalenia wyników. Regresor wektora nośnego, czyli SVR, przeszkolony w zakresie zakłócania konfiguracji punktów, wyodrębnia punkty odniesienia z deskryptora obrazu w każdej iteracji. Deskryptor obrazu DeepFace opiera się na histogramach LBP, chociaż uwzględnia także inne funkcje. 

Wyrównanie 2D

Głębokie Twarze model inicjuje proces wyrównywania poprzez wykrycie sześciu punktów odniesienia w obrębie obszaru wykrywania, wyśrodkowanych na środku oczu, w okolicy ust i na czubku nosa. Służą do obracania, skalowania i przekładania obrazu na sześć lokalizacji zakotwiczenia oraz iteracji po zniekształconym obrazie, aż nie będzie widocznych zmian. Zagregowana transformacja generuje następnie korpus dopasowany do 2D. Metoda wyrównania jest dość podobna do tej stosowanej w LFW-a i była stosowana przez lata w celu zwiększenia dokładności modelu. 

Wyrównanie 3D

Aby wyrównać twarze z obrotami poza płaszczyzną, platforma DeepFace wykorzystuje ogólny model kształtu 3D i rejestruje kamerę 3D, której można użyć do zawinięcia dopasowanego korpusu 2D do kształtu 3D na płaszczyźnie obrazu. W rezultacie model generuje wersję korpusu wyrównaną do 3D, co osiąga się poprzez lokalizację dodatkowych 67 punktów odniesienia w korpusie wyrównanym do 2D przy użyciu drugiego SVR lub regresora wektora nośnego. 

Następnie model ręcznie umieszcza 67 punktów kontrolnych na kształcie 3D, dzięki czemu jest w stanie uzyskać pełną zgodność pomiędzy odniesieniami 3D i odpowiadającymi im punktami odniesienia. W następnym kroku do układów liniowych ze znaną macierzą kowariancji, która minimalizuje pewne straty, dodaje się kamerę afiniczną 3D do 2D, stosując uogólnione rozwiązanie najmniejszych kwadratów. 

Frontalizacja

Ponieważ nie modeluje się niesztywnych odkształceń i projekcji z pełnej perspektywy, dopasowana kamera 3D do 2D służy jedynie jako przybliżenie. Próbując zredukować zniekształcenie ważnych czynników noszących tożsamość w ostatecznym odkształceniu, model DeepFace dodaje odpowiednie reszty do składowych xy każdego punktu odniesienia. Takie rozluźnienie w celu wypaczenia obrazu 2D przy mniejszych zniekształceniach tożsamości jest prawdopodobne, a bez niego twarze zostałyby wypaczone do tego samego kształtu w 3D, tracąc przy tym ważne czynniki różnicujące. 

Wreszcie model osiąga frontalizację poprzez zastosowanie fragmentarycznej transformacji afinicznej kierowanej przez triangulację Delaunay'a wyprowadzoną z 67 punktów odniesienia. 

  1. Wykryta twarz z 6 punktami odniesienia. 
  2. Indukowany korpus dostosowany do 2D. 
  3. 67 punktów odniesienia na korpusie dostosowanym do 2D. 
  4. Referencyjny kształt 3D przekształcony w obraz korpusu dopasowany do 2D. 
  5. Widoczność trójkąta względem kamery 3D-2D. 
  6. 67 punktów odniesienia indukowanych przez model 3D. 
  7. Wersja ostatecznej wersji dostosowana do 3D. 
  8. Nowy widok wygenerowany przez model 3D. 

Reprezentacja

Wraz ze wzrostem ilości danych szkoleniowych metody oparte na uczeniu okazały się bardziej wydajne i dokładne w porównaniu z funkcjami inżynieryjnymi, przede wszystkim dlatego, że metody oparte na uczeniu mogą odkrywać i optymalizować funkcje pod kątem konkretnego zadania. 

Architektura i szkolenia DNN

DeepFace DNN jest przeszkolony w zakresie wieloklasowego zadania rozpoznawania twarzy, które klasyfikuje tożsamość obrazu twarzy. 

Powyższy rysunek przedstawia ogólną architekturę modelu DeepFace. Model ma warstwę splotową (C1) z 32 filtrami o rozmiarze 11x11x3, która jest zasilana wyrównanym 3D 3-kanałowym obrazem RGB o rozmiarze 152x152 pikseli, co daje w rezultacie 32 mapy obiektów. Te mapy obiektów są następnie podawane do warstwy Max Pooling lub M2, która przyjmuje maksimum w sąsiedztwie przestrzennym 3×3 i ma krok 2, oddzielnie dla każdego kanału. Po niej następuje kolejna warstwa splotowa (C3), która zawiera 16 filtrów każdy o wymiarach 9x9x16. Głównym celem tych warstw jest wyodrębnienie cech niskiego poziomu, takich jak tekstura i proste krawędzie. Zaletą stosowania warstw Max Pooling jest to, że dane wyjściowe generowane przez warstwy splotowe są bardziej odporne na lokalne translacje, a po zastosowaniu do wyrównanych obrazów twarzy sprawiają, że sieć jest znacznie odporniejsza na błędy rejestracji na małą skalę. 

Wiele poziomów łączenia sprawia, że ​​sieć jest bardziej odporna na pewne sytuacje, ale powoduje również, że sieć traci informacje dotyczące dokładnego położenia mikrotekstur i szczegółowych struktur twarzy. Aby uniknąć utraty informacji przez sieć, model DeepFace wykorzystuje maksymalną warstwę łączenia tylko z pierwszą warstwą splotową. Warstwy te są następnie interpretowane przez model jako etap wstępnego adaptacyjnego przetwarzania frontonu. Chociaż wykonują większość obliczeń, same mają ograniczone parametry i jedynie rozszerzają dane wejściowe do zestawu cech lokalnych. 

Kolejne warstwy L4, L5 i L6 są połączone lokalnie i podobnie jak warstwa splotowa stosują bank filtrów, w którym każda lokalizacja na mapie obiektów uczy się unikalnego zestawu filtrów. Ponieważ różne regiony na wyrównanym obrazie mają różne statystyki lokalne, nie można przyjąć założenia o stacjonarności przestrzennej. Na przykład obszar między brwiami a oczami ma większą zdolność rozróżniania w porównaniu z obszarem między ustami a nosem. Użycie lojalnych warstw wpływa na liczbę parametrów podlegających szkoleniu, ale nie wpływa na obciążenie obliczeniowe podczas ekstrakcji cech. 

Model DeepFace wykorzystuje trzy warstwy przede wszystkim dlatego, że posiada dużą ilość dobrze oznakowanych danych treningowych. Zastosowanie warstw połączonych lokalnie można dodatkowo uzasadnić, ponieważ na każdą jednostkę wyjściową warstwy połączonej lokalnie może wpływać duży fragment danych wejściowych. 

Wreszcie górne warstwy są w pełni połączone, a każda jednostka wyjściowa jest podłączona do wszystkich wejść. Obie warstwy mogą uchwycić korelacje między cechami uchwyconymi w różnych częściach obrazów twarzy, takimi jak położenie i kształt ust oraz położenie i kształt oczu. Dane wyjściowe pierwszej w pełni połączonej warstwy (F7) zostaną wykorzystane przez sieć jako wektor cech reprezentujący surową twarz. Model następnie przekaże dane wyjściowe ostatniej w pełni połączonej warstwy (F8) do softmaxu K-way, który generuje rozkład według etykiet klas. 

Zbiory danych

Model DeepFace wykorzystuje kombinację zbiorów danych, przy czym podstawowym zbiorem danych jest klasyfikacja twarzy społecznej lub SFC. Co więcej, model DeepFace wykorzystuje również zbiór danych LFW i zbiór danych YTF. 

Zbiór danych SFC

Zbiór danych SFC pochodzi ze zbioru zdjęć z Facebooka i składa się z 4.4 miliona oznaczonych etykietami zdjęć 4,030 osób, z których każde ma od 800 do 1200 twarzy. Do celów testowych pominięto najnowsze 5% obrazów twarzy każdej tożsamości ze zbioru danych SFC.

Zbiór danych LFW

Zbiór danych LFW składa się z 13,323 6,000 zdjęć ponad pięciu tysięcy gwiazd, które następnie podzielono na 10 par twarzy w XNUMX przedziałach. 

Zbiór danych YTF

Zbiór danych YTF składa się z 3,425 filmów przedstawiających 1,595 tematów i stanowi podzbiór celebrytów ze zbioru danych LFW. 

Efekt

Bez frontalizacji i przy użyciu wyłącznie wyrównania 2D model osiąga wynik dokładności jedynie około 94.3%. Gdy model wykorzystuje środkowy korpus wykrywania twarzy, nie stosuje żadnego wyrównania i w tym przypadku model zwraca wynik dokładności wynoszący 87.9%, ponieważ niektóre części obszaru twarzy mogą wypadać z centralnego korpusu. Oceniając zdolność dyskryminacyjną reprezentacji twarzy w izolacji, model stosuje ustawienia uczenia się bez nadzoru w celu porównania wewnętrznego iloczynu znormalizowanych cech. Zwiększa średnią dokładność modelu do 95.92% 

Powyższy model porównuje wydajność modelu DeepFace z innymi, najnowocześniejszymi modelami rozpoznawania twarzy. 

Powyższy rysunek przedstawia krzywe ROC w zbiorze danych. 

Podsumowanie

W idealnym przypadku klasyfikator twarzy będzie w stanie rozpoznawać twarze z dokładnością człowieka i zwracać wysoką dokładność niezależnie od jakości obrazu, pozy, wyrazu czy oświetlenia. Co więcej, idealne rozwiązanie do rozpoznawania twarzy będzie można zastosować w różnych zastosowaniach po niewielkich modyfikacjach lub bez nich. Chociaż DeepFace jest obecnie jedną z najbardziej zaawansowanych i wydajnych platform do rozpoznawania twarzy, nie jest doskonała i może nie być w stanie zapewnić dokładnych wyników w niektórych sytuacjach. Ale Głębokie Twarze Framework jest znaczącym kamieniem milowym w branży rozpoznawania twarzy i wypełnia lukę w wydajności, wykorzystując potężną technikę uczenia się metrycznego, a z biegiem czasu będzie coraz bardziej wydajny. 

„Inżynier z zawodu, pisarz z zamiłowania”. Kunal jest pisarzem technicznym, który głęboko kocha i rozumie sztuczną inteligencję i uczenie maszynowe, a którego celem jest upraszczanie złożonych koncepcji w tych dziedzinach poprzez swoją wciągającą i pouczającą dokumentację.