Modele i platformy AI
DeepFace dla zaawansowanego rozpoznawania twarzy

Rozpoznawanie twarzy jest od kilku lat modnym polem w dziedzinie sztucznej inteligencji i maszynowego uczenia, a jego wpływ na kulturę i społeczeństwo jest bardzo szeroki. Istnieje jednak luka w wydajności pomiędzy ludzkim systemem wzrokowym a maszynami, co ogranicza zastosowanie rozpoznawania twarzy.
Aby pokonać tę lukę i osiągnąć dokładność na poziomie ludzkim, Meta wprowadziła DeepFace, ramę rozpoznawania twarzy. Model DeepFace jest szkolony na duzym zbiorze danych twarzy, który znacznie różni się od zbiorów danych używanych do konstruowania benchmarków oceny, i ma potencjał przewyższyć istniejące ramy z minimalnymi adaptacjami. Ponadto, ramę DeepFace wytwarza kompaktowe reprezentacje twarzy w porównaniu z innymi systemami, które wytwarzają tysiące cech wyglądu twarzy.
Proponowana ramę DeepFace wykorzystuje głębokie uczenie do szkolenia na duzym zbiorze danych składających się z różnych form danych, w tym obrazów, filmów i grafik. Architektura sieci DeepFace zakłada, że po zakończeniu wyalignowania, położenie każdego regionu twarzy jest ustalone na poziomie pikseli. Dlatego też można użyć surowych wartości pikseli RGB bez używania wielu warstw konwolucyjnych, jak to ma miejsce w innych ramach.
Konwencjonalny potok nowoczesnych ram rozpoznawania twarzy składa się z czterech etapów: Wykrywania, Wyalignowania, Reprezentacji i Klasyfikacji. Ramę DeepFace wykorzystuje jawne modelowanie 3D twarzy do zastosowania przekształcenia piecewise, i używa dziewięciowarstwowej głębokiej sieci neuronowej do wyznaczenia reprezentacji twarzy. Ramę DeepFace próbuje wprowadzić następujące wkład:
- Rozwinięcie skutecznej architektury DNN lub głębokiej sieci neuronowej, która może wykorzystać duży zbiór danych do stworzenia reprezentacji twarzy, która może być uogólniona do innych zbiorów danych.
- Użycie jawnych modeli 3D do rozwoju skutecznego systemu wyalignowania twarzy.
Zrozumienie działania modelu DeepFace
Wyalignowanie twarzy
Wyalignowanie twarzy jest technika, która obraca obraz twarzy zgodnie z kątem oczu. Wyalignowanie twarzy jest popularną praktyką, która jest używana do przetwarzania danych dla rozpoznawania twarzy, a zbiory danych twarzy wyalignowanych pomagają w poprawie dokładności algorytmów rozpoznawania przez dostarczanie znormalizowanego wejścia. Jednak wyalignowanie twarzy w sposób nieograniczony może być trudnym zadaniem ze względu na wiele czynników, takich jak nie sztywne wyrażenia, pozy i więcej. Kilka zaawansowanych technik wyalignowania, takich jak użycie analitycznego modelu 3D twarzy lub wyszukiwanie punktów odniesienia z zewnętrznego zbioru danych, może pozwolić deweloperom pokonać te wyzwania.
Chociaż wyalignowanie jest najpopularniejszą metodą radzenia sobie z nieograniczoną weryfikacją i rozpoznawaniem twarzy, nie ma idealnego rozwiązania w tej chwili. Modele 3D są również używane, ale ich popularność znacznie spadła w ciągu ostatnich kilku lat, zwłaszcza podczas pracy w środowisku nieograniczonym. Jednak ponieważ ludzkie twarze są obiektami 3D, może to być właściwe podejście, jeśli zostanie użyte poprawnie. Model DeepFace używa systemu, który wykorzystuje punkty odniesienia do stworzenia analitycznego modelu 3D twarzy. Ten model 3D jest następnie używany do zniekształcenia twarzy w tryb frontalny.
Ponadto, podobnie jak większość praktyk wyalignowania, wyalignowanie DeepFace również wykorzystuje detektory punktów odniesienia do kierowania procesem wyalignowania. Chociaż model DeepFace używa prostego detektora punktów, stosuje go w kilku iteracjach, aby udoskonalić wynik. Regresor wektorowy wspomagany przez punkty odniesienia, wyuczony do uprzedzeń konfiguracji punktów, wyodrębnia punkty odniesienia z opisu obrazu w każdej iteracji. Opis obrazu modelu DeepFace oparty jest na histogramach LBP, chociaż uwzględnia również inne cechy.
2D Wyalignowanie
Model DeepFace rozpoczyna proces wyalignowania przez wykrycie sześciu punktów odniesienia w obszarze wykrywania, położonego w środku oczu, ust i nosa. Są one używane do obrotu, skalowania i translacji obrazu w sześć punktów kotwiczących, i iteruje na zniekształconym obrazie, aż do momentu, gdy nie ma już widocznych zmian. Zgromadzona transformacja generuje 2D wyalignowany korpus. Metoda wyalignowania jest dość podobna do tej użytej w LFW-a, i była używana przez lata w celu poprawy dokładności modelu.
3D Wyalignowanie
Aby wyalignować twarze z obrotami poza płaszczyzną, ramę DeepFace wykorzystuje ogólny model kształtu 3D, i rejestruje kamerę 3D, która może być użyta do zniekształcenia 2D wyalignowanego korpusu do kształtu 3D w płaszczyźnie obrazu. W wyniku model generuje 3D-wyalignowaną wersję korpusu, i jest to osiągane przez zlokalizowanie dodatkowych 67 punktów odniesienia w 2D-wyalignowanym korpusie przy użyciu drugiego regresora wektorowego.
Następnie model ręcznie umieszcza 67 punktów kotwiczących na kształcie 3D i jest w stanie osiągnąć pełną korespondencję między odniesieniami 3D a odpowiadającymi im punktami odniesienia. W następnym kroku dodaje się kamerę 3D-2D affine przy użyciu rozwiązania układu liniowego z znaną macierzą kowariancji, które minimalizuje pewne straty.
Frontalizacja
Ponieważ nie sztywne deformacje i pełne projekcje perspektywiczne nie są modelowane, dopasowany model 3D-2D służy tylko jako przybliżenie. W celu zmniejszenia korupcji ważnych czynników tożsamości do ostatecznego zniekształcenia, model DeepFace dodaje odpowiadające im reszty do składowych x-y każdego punktu odniesienia. Taka relaksacja w celu zniekształcenia obrazu 2D z mniejszymi zniekształceniami tożsamości jest uzasadniona, i bez niej twarze zostałyby zniekształcone w tę samą postać w 3D, tracąc ważne czynniki dyskryminacyjne w procesie.
W końcu model osiąga frontilizację przy użyciu przekształcenia piecewise kierowanego przez triangulację Delaunaya pochodzącą z 67 punktów odniesienia.

- Wykryta twarz z 6 punktami odniesienia.
- Wyrożniony korpus 2D-wyalignowany.
- 67 punktów odniesienia na korpusie 2D-wyalignowanym.
- Odwołanie kształtu 3D przekształcone w obraz korpusu 2D-wyalignowanego.
- Widoczność trójkąta w odniesieniu do kamery 3D-2D.
- 67 punktów odniesienia wywołanych przez model 3D.
- 3D-wyalignowana wersja ostatecznego korpusu.
- Nowy widok wygenerowany przez model 3D.
Reprezentacja
Wraz ze wzrostem ilości danych szkoleniowych, metody oparte na uczeniu okazały się bardziej efektywne i dokładne w porównaniu z cechami inżynierskimi, głównie dlatego, że metody oparte na uczeniu mogą odkryć i zoptymalizować cechy dla określonego zadania.
Architektura DNN i szkolenie
Sieć DNN DeepFace jest szkolona na wieloklasowym zadaniu rozpoznawania twarzy, które klasyfikuje tożsamość obrazu twarzy.
Powyższy rysunek przedstawia ogólną architekturę modelu DeepFace. Model ma warstwę konwolucyjną (C1) z 32 filtrami o rozmiarze 11x11x3, które są podawane do 3D-wyalignowanego 3-kanałowego obrazu RGB o rozmiarze 152×152 pikseli, i wynikiem są 32 mapy cech. Te mapy cech są następnie podawane do warstwy pulowania maksymalnego (M2), która pobiera maksymalną wartość z 3×3 sąsiedztw przestrzennych, i ma skok o 2, oddzielnie dla każdego kanału. Następnie jest kolejna warstwa konwolucyjna (C3), która składa się z 16 filtrów o rozmiarze 9x9x16. Głównym celem tych warstw jest wyodrębnienie niskopoziomowych cech, takich jak tekstura i proste krawędzie. Zaletą użycia warstw pulowania maksymalnego jest to, że czyni wynik generowany przez warstwy konwolucyjne bardziej odpornym na lokalne translacje, i gdy jest stosowany do wyalignowanych obrazów twarzy, czyni sieć bardziej odporną na błędy rejestracji na małą skalę.
Wiele poziomów pulowania sprawia, że sieć jest bardziej odporna na pewne sytuacje, ale także powoduje, że sieć traci informacje dotyczące dokładnego położenia mikro-tekstur i szczegółowych struktur twarzy. Aby uniknąć utraty informacji przez sieć, model DeepFace używa warstwy pulowania maksymalnego tylko z pierwszą warstwą konwolucyjną. Te warstwy są następnie interpretowane przez model jako front-endowy, adaptacyjny krok przetwarzania. Chociaż wykonują większość obliczeń, mają ograniczoną liczbę parametrów, i po prostu rozciągają wejście w zestaw cech lokalnych.
Następne warstwy L4, L5 i L6 są połączone lokalnie, i podobnie jak warstwa konwolucyjna, stosują bank filtrów, gdzie każde położenie na mapie cech uczy się unikalnego zestawu filtrów. Ponieważ różne regiony w obrazie wyalignowanym mają różne statystyki lokalne, nie może utrzymać założenia stacjonarności przestrzennej. Na przykład, obszar między brwiami i oczami ma wyższą zdolność dyskryminacyjną w porównaniu z obszarem między ustami i nosem. Użycie warstw lokalnych wpływa na liczbę parametrów poddanych szkoleniu, ale nie wpływa na obciążenie obliczeniowe podczas ekstrakcji cech.
Model DeepFace używa trzech warstw w pierwszej kolejności tylko dlatego, że ma duży, dobrze oznaczony zbiór danych szkoleniowych. Użycie warstw lokalnych może być dalej uzasadnione, ponieważ każda jednostka wyjściowa warstwy lokalnej może być wpływana przez duży fragment danych wejściowych.
W końcu, warstwy górne są połączone w pełni, z każdą jednostką wyjściową połączoną z wszystkimi wejściami. Dwie warstwy mogą przechwytywać korelacje między cechami przechwyconymi w różnych częściach obrazów twarzy, takich jak położenie i kształt ust, i położenie i kształt oczu. Wynik pierwszej w pełni połączonej warstwy (F7) będzie użyty przez sieć jako surowa reprezentacja cech twarzy. Model następnie poda wynik ostatniej w pełni połączonej warstwy (F8) do K-drogowego softmax, który wytwarza rozkład nad etykietami klas.
Zbiory danych
Model DeepFace wykorzystuje kombinację zbiorów danych, z zbiorem Social Face Classification (SFC) jako podstawowym. Ponadto, model DeepFace wykorzystuje również zbiór LFW i zbiór YTF.
Zbiór SFC
Zbiór SFC jest uczony z kolekcji zdjęć z Facebooka, i składa się z 4,4 miliona oznaczonych obrazów 4030 osób, z których każda ma 800-1200 twarzy. Najnowsze 5% obrazów twarzy z każdej tożsamości w zbiorze SFC jest wyłączone do celów testowych.
Zbiór LFW
Zbiór LFW składa się z 13 323 zdjęć ponad 5 tysięcy celebrytów, które są następnie podzielone na 6 tysięcy par twarzy w 10 podziałach.
Zbiór YTF
Zbiór YTF składa się z 3 425 filmów 1595 osób, i jest podzbiorem celebrytów w zbiorze LFW.
Wyniki
Bez frontilizacji i przy użyciu tylko 2D-wyalignowania model osiąga wynik dokładności około 94,3%. Gdy model używa korpusu środkowego wykrywania twarzy, nie używa żadnego wyalignowania, i w tym przypadku model zwraca wynik dokładności 87,9%, ponieważ niektóre części regionu twarzy mogą spaść poza korpus środkowy. Aby ocenić zdolność dyskryminacyjną reprezentacji twarzy w izolacji, model stosuje ustawienie uczenia nie nadzorowanego, aby porównać iloczyn skalarny znormalizowanych cech. To zwiększa średnią dokładność modelu do 95,92%. (META )

Powyższy model porównuje wyniki modelu DeepFace z innymi modelami rozpoznawania twarzy.

Powyższy obraz przedstawia krzywe ROC na zbiorze danych.
Podsumowanie
Idealnie, klasyfikator twarzy powinien być w stanie rozpoznać twarze z dokładnością na poziomie ludzkim, i powinien być w stanie zwrócić wysoką dokładność niezależnie od jakości obrazu, pozy, wyrażenia lub oświetlenia. Ponadto, idealna ramę rozpoznawania twarzy powinna być w stanie zastosować do różnych aplikacji z minimalnymi modyfikacjami. Chociaż DeepFace jest jedną z najbardziej zaawansowanych i efektywnych ram rozpoznawania twarzy, nie jest idealna, i może nie być w stanie dostarczyć dokładnych wyników w pewnych sytuacjach. Ale ramę DeepFace jest znaczącym kamieniem milowym w branży rozpoznawania twarzy, i zamyka lukę w wydajności poprzez użycie potężnej techniki uczenia metrycznego, i będzie nadal stawać się bardziej efektywna w czasie.












