Ostatnia aktualizacja lipiec 5, 2019
rozpoznawanie twarzy to problem identyfikacji i weryfikacji osób na zdjęciu po ich twarzy.
jest to zadanie trywialnie wykonywane przez ludzi, nawet przy zmiennym świetle i gdy twarze są zmieniane przez wiek lub zasłaniane akcesoriami i zarostem na twarzy. Niemniej jednak, to pozostaje trudnym problemem widzenia komputerowego przez dziesięciolecia, aż do niedawna.
metody głębokiego uczenia są w stanie wykorzystać bardzo duże zbiory danych twarzy i uczyć się bogatych i zwartych reprezentacji twarzy, dzięki czemu nowoczesne modele mogą najpierw wykonywać, a później przewyższać możliwości rozpoznawania twarzy ludzi.
w tym poście odkryjesz problem rozpoznawania twarzy i jak metody głębokiego uczenia mogą osiągnąć nadludzką wydajność.
Po przeczytaniu tego posta dowiesz się:
- rozpoznawanie twarzy to szeroki problem identyfikacji lub weryfikacji osób na zdjęciach i filmach.
- rozpoznawanie twarzy to proces składający się z wykrywania, wyrównywania, wyodrębniania cech i zadania rozpoznawania
- modele głębokiego uczenia najpierw zbliżyły się, a następnie przekroczyły wydajność człowieka w zadaniach rozpoznawania twarzy.
Rozpocznij swój projekt z moją nową książką Deep Learning for Computer Vision, zawierającą samouczki krok po kroku i pliki kodu źródłowego Pythona dla wszystkich przykładów.
zaczynajmy.
delikatne Wprowadzenie do głębokiego uczenia do rozpoznawania twarzy
Zdjęcie Susanne Nilsson, niektóre prawa zastrzeżone.
- przegląd
- twarze na zdjęciach
- chcesz uzyskać wyniki głębokiego uczenia Do widzenia komputerowego?
- proces automatycznego rozpoznawania twarzy
- zadanie wykrywania twarzy
- zadania rozpoznawania twarzy
- głębokie uczenie dla rozpoznawania twarzy
- Czytaj dalej
- Książki
- Face Recognition Papers
- Deep Learning Face Recognition Papers
- Artykuły
- podsumowanie
- opracuj modele głębokiego uczenia dla wizji już dziś!
- opracowanie własnych modeli wizji w ciągu kilku minut
- wreszcie wprowadź głębokie uczenie do swoich projektów wizji
przegląd
Ten poradnik jest podzielony na pięć części; są to:
- twarze na zdjęciach
- proces automatycznego rozpoznawania twarzy
- zadanie wykrywania twarzy
- zadania rozpoznawania twarzy
- głębokie uczenie do rozpoznawania twarzy
twarze na zdjęciach
często istnieje potrzeba automatycznego rozpoznawania osób na zdjęciu.
istnieje wiele powodów, dla których możemy chcieć automatycznie rozpoznać osobę na zdjęciu.
na przykład:
- możemy chcieć ograniczyć dostęp do zasobu do jednej osoby, zwanej face authentication.
- możemy chcieć potwierdzić, że dana osoba pasuje do jej identyfikatora, zwanego weryfikacją twarzy.
- możemy chcieć przypisać nazwę twarzy, zwaną identyfikacją twarzy.
Ogólnie rzecz biorąc, mówimy o tym jako o problemie automatycznego „rozpoznawania twarzy” i może dotyczyć zarówno nieruchomych zdjęć, jak i twarzy w strumieniach wideo.
ludzie mogą bardzo łatwo wykonać to zadanie.
możemy znaleźć twarze na obrazku i skomentować, kim są ludzie, jeśli są znani. Możemy to zrobić bardzo dobrze, na przykład, gdy ludzie się zestarzeją, noszą okulary przeciwsłoneczne, mają różne włosy, patrzą w różnych kierunkach i tak dalej. Możemy to zrobić tak dobrze, że znajdziemy twarze tam, gdzie ich nie ma, na przykład w chmurach.
niemniej jednak, pozostaje to trudnym problemem do wykonania automatycznie z oprogramowaniem, nawet po 60 lub więcej latach badań. Do niedawna.
na przykład rozpoznawanie obrazów twarzy uzyskanych w środowisku zewnętrznym ze zmianami oświetlenia i / lub pozy pozostaje w dużej mierze nierozwiązanym problemem. Innymi słowy, obecne systemy są nadal dalekie od możliwości systemu ludzkiej percepcji.
– Rozpoznawanie twarzy: Przegląd literatury, 2003.
chcesz uzyskać wyniki głębokiego uczenia Do widzenia komputerowego?
weź mój darmowy 7-dniowy crash course e-mail teraz (z przykładowym kodem).
Kliknij, aby się zapisać, a także otrzymać darmową wersję ebooka kursu w formacie PDF.
Pobierz darmowy Mini-kurs
proces automatycznego rozpoznawania twarzy
rozpoznawanie twarzy to problem polegający na identyfikacji lub weryfikacji twarzy na zdjęciu.
ogólne stwierdzenie problemu maszynowego rozpoznawania twarzy można sformułować w następujący sposób: biorąc pod uwagę nieruchome lub wideo obrazy sceny, zidentyfikować lub zweryfikować jedną lub więcej osób w scenie za pomocą przechowywanej bazy twarzy
— Face Recognition: A Literature Survey, 2003.
rozpoznawanie twarzy jest często opisywane jako proces, który najpierw obejmuje cztery kroki; są to: Wykrywanie twarzy, wyrównanie twarzy, ekstrakcja funkcji i wreszcie rozpoznawanie twarzy.
- Wykrywanie twarzy. Znajdź jedną lub więcej twarzy na obrazie i zaznacz obwiednią.
- wyrównanie twarzy. Znormalizuj twarz, aby była zgodna z bazą danych, taką jak geometria i fotometria.
- wyodrębnianie funkcji. Wyodrębnij z twarzy cechy, które mogą być wykorzystane do zadania rozpoznawania.
- Rozpoznawanie twarzy. Wykonaj dopasowanie twarzy do jednej lub więcej znanych twarzy w przygotowanej bazie danych.
dany system może mieć osobny moduł lub program dla każdego kroku, co tradycyjnie miało miejsce, lub może łączyć niektóre lub wszystkie kroki w jeden proces.
pomocny przegląd tego procesu znajduje się w książce „Handbook of Face Recognition”, zamieszczonej poniżej:
przegląd kroków w procesie rozpoznawania twarzy. Zaczerpnięte z „Handbook of Face Recognition”, 2011.
zadanie wykrywania twarzy
wykrywanie twarzy to nietrywialny pierwszy krok w rozpoznawaniu twarzy.
jest to problem rozpoznawania obiektów, który wymaga identyfikacji zarówno lokalizacji każdej twarzy na zdjęciu (np. położenie), jak i lokalizacji zasięgu twarzy (np. z obwiednią). Samo rozpoznawanie obiektów jest trudnym problemem, chociaż w tym przypadku jest to podobne, ponieważ istnieje tylko jeden rodzaj obiektu, np. twarze, które mają być zlokalizowane, chociaż twarze mogą się bardzo różnić.
twarz ludzka jest obiektem dynamicznym i charakteryzuje się wysokim stopniem zmienności wyglądu, co sprawia, że wykrywanie twarzy jest trudnym problemem w widzeniu komputerowym.
— Wykrywanie twarzy: badanie, 2001.
Ponadto, ponieważ jest to pierwszy krok w szerszym systemie rozpoznawania twarzy, Wykrywanie twarzy musi być solidne. Na przykład twarzy nie można rozpoznać, jeśli nie można jej najpierw wykryć. Oznacza to, że twarze muszą być wykrywane z różnymi orientacjami, kątami, poziomami światła, fryzurami, czapkami, okularami, zarostem na twarzy, makijażem, wiekiem i tak dalej.
jako wizualny procesor front-end, system detekcji twarzy powinien być również w stanie wykonać zadanie niezależnie od oświetlenia, orientacji i odległości kamery
— Face Detection: A Survey, 2001.
artykuł z 2001 roku zatytułowany „Face Detection: A Survey” zawiera taksonomię metod wykrywania twarzy, które można ogólnie podzielić na dwie główne grupy:
- oparte na funkcjach.
- oparte na obrazie.
funkcja wykrywania twarzy wykorzystuje ręcznie wykonane filtry, które wyszukują i lokalizują twarze na zdjęciach w oparciu o głęboką wiedzę na temat tej dziedziny. Mogą one być bardzo szybkie i bardzo skuteczne, gdy filtry pasują, chociaż mogą zawieść dramatycznie, gdy nie, np. czyniąc je nieco kruchymi.
… korzystaj z wiedzy o twarzy i postępuj zgodnie z klasyczną metodologią wykrywania, w której cechy niskiego poziomu są uzyskiwane przed analizą opartą na wiedzy. Widoczne właściwości twarzy, takie jak kolor skóry i geometria twarzy, są wykorzystywane na różnych poziomach systemu.
— Wykrywanie twarzy: badanie, 2001.
alternatywnie, oparte na obrazie wykrywanie twarzy jest holistyczne i uczy się, jak automatycznie zlokalizować i wyodrębnić twarze z całego obrazu. Sieci neuronowe pasują do tej klasy metod.
… wykrywanie twarzy jako ogólny problem rozpoznawania. Reprezentacje twarzy oparte na obrazach, na przykład w tablicach intensywności 2D, są bezpośrednio klasyfikowane do grupy twarzy przy użyciu algorytmów szkoleniowych bez wyprowadzania i analizy cech. te stosunkowo nowe techniki włączają wiedzę na temat twarzy pośrednio do systemu poprzez mapowanie i programy szkoleniowe.
— Wykrywanie twarzy: badanie, 2001.
być może Dominująca metoda wykrywania twarzy stosowana przez wiele lat (i była stosowana w wielu kamerach) została opisana w artykule z 2004 roku zatytułowanym „solidne wykrywanie obiektów w czasie rzeczywistym”, zwanym kaskadą detektora lub po prostu „kaskadą.”
ich detektor, zwany kaskadą detektora, składa się z sekwencji prostych do złożonych klasyfikatorów twarzy i przyciąga szerokie wysiłki badawcze. Ponadto kaskada detektora została wdrożona w wielu produktach komercyjnych, takich jak smartfony i aparaty cyfrowe. Podczas gdy detektory kaskadowe mogą dokładnie znaleźć widoczne wyprostowane twarze, często nie wykrywają twarzy pod różnymi kątami, np. widoku z boku lub częściowo zatkanych twarzy.
— Multi-view face Detection Using Deep Convolutional Neural Networks, 2015.
aby uzyskać tutorial na temat głębokiego uczenia do wykrywania twarzy zobacz:
- Jak wykonać Wykrywanie twarzy za pomocą głębokiego uczenia w Keras
zadania rozpoznawania twarzy
zadanie rozpoznawania twarzy jest szerokie i może być dostosowane do specyficznych potrzeb problemu przewidywania.
na przykład w pracy z 1995 roku zatytułowanej „Human and machine recognition of faces: a survey” autorzy opisują trzy zadania rozpoznawania twarzy:
- dopasowanie twarzy: Znajdź najlepsze dopasowanie do danej twarzy.
- podobieństwo twarzy: Znajdź twarze najbardziej podobne do danej twarzy.
- transformacja twarzy: generowanie nowych twarzy, które są podobne do danej twarzy.
podsumowują te trzy oddzielne zadania w następujący sposób:
dopasowanie wymaga, aby kandydat pasujący obraz twarzy był w pewnym zestawie obrazów twarzy wybranych przez system. Wykrywanie podobieństwa wymaga oprócz dopasowania obrazów twarzy, które są podobne do przywołanej twarzy, wymaga to, aby miara podobieństwa używana przez system rozpoznawania ściśle odpowiadała miarom podobieństwa stosowanym przez ludzi Aplikacje transformacyjne wymagały, aby nowe obrazy tworzone przez system były podobne do ludzkich wspomnień twarzy.
— human and machine recognition of faces: a survey, 1995.
książka z 2011 roku o rozpoznawaniu twarzy zatytułowana „Handbook of Face Recognition” opisuje dwa główne tryby rozpoznawania twarzy, jak:
- weryfikacja twarzy. Jedno-do-jednego odwzorowania danej twarzy na tle znanej tożsamości (np. czy to ta osoba?).
- Identyfikacja twarzy. Mapowanie jednego do wielu dla danej twarzy z bazą danych znanych twarzy (np. kim jest ta osoba?).
oczekuje się, że system rozpoznawania twarzy automatycznie zidentyfikuje twarze obecne na zdjęciach i filmach. Może działać w jednym lub obu trybach: (1) weryfikacja twarzy (lub uwierzytelnianie) oraz (2) Identyfikacja twarzy (lub rozpoznawanie).
— strona 1, Podręcznik rozpoznawania twarzy. 2011.
problem rozpoznawania twarzy możemy opisać jako nadzorowane zadanie modelowania predykcyjnego przeszkolone na próbkach z wejściami i wyjściami.
we wszystkich zadaniach wejście jest zdjęciem, które zawiera co najmniej jedną twarz, najprawdopodobniej wykrytą twarz, która również mogła zostać wyrównana.
wyjście różni się w zależności od rodzaju przewidywania wymaganego dla zadania; na przykład:
- może to być etykieta klasy binarnej lub Prawdopodobieństwo klasy binarnej w przypadku zadania weryfikacji twarzy.
- może to być kategoryczna Etykieta klasy lub zestaw prawdopodobieństw dla zadania identyfikacji twarzy.
- może to być metryka podobieństwa w przypadku zadania typu podobieństwa.
głębokie uczenie dla rozpoznawania twarzy
rozpoznawanie twarzy pozostaje aktywnym obszarem badań w zakresie widzenia komputerowego.
być może jedna z bardziej znanych i przyjętych metod „uczenia maszynowego „rozpoznawania twarzy została opisana w artykule z 1991 roku zatytułowanym” Rozpoznawanie Twarzy Za pomocą Eigenfaces.”Ich metoda, zwana po prostu „Eigenfaces”, była kamieniem milowym, ponieważ osiągnęła imponujące wyniki i zademonstrowała możliwości prostych holistycznych podejść.
obrazy twarzy są wyświetlane na przestrzeni funkcji („przestrzeń twarzy”), która najlepiej koduje zmienność wśród znanych obrazów twarzy. Przestrzeń twarzy jest zdefiniowana przez „eigenfaces”, które są wektorami własnymi zestawu twarzy; niekoniecznie odpowiadają one izolowanym cechom, takim jak oczy, uszy i nosy
— face Recognition Using Eigenfaces, 1991.
artykuł 2018 zatytułowany „Deep Face Recognition: A Survey” stanowi pomocne podsumowanie badań nad stanem rozpoznawania twarzy w ciągu ostatnich prawie 30 lat, podkreślając szeroki trend od holistycznych metod uczenia się (takich jak Eigenfaces), do lokalnego ręcznego wykrywania funkcji, do płytkich metod uczenia się, aż do metod głębokiego uczenia, które są obecnie najnowocześniejsze.
holistyczne podejście zdominowało społeczność rozpoznawania twarzy w latach 90. Na początku 2000 roku popularne stały się ręcznie tworzone lokalne deskryptory, a pod koniec 2000 roku wprowadzono lokalne podejście do uczenia cech. wydajność stale wzrasta z około 60% do ponad 90%, podczas gdy głębokie uczenie zwiększa wydajność do 99,80% w ciągu zaledwie trzech lat.
— Głębokie Rozpoznawanie twarzy: badanie, 2018.
biorąc pod uwagę przełom AlexNet w 2012 roku dla prostszego problemu klasyfikacji obrazów, w 2014 i 2015 roku nastąpił napływ badań i publikacji na temat metod głębokiego uczenia do rozpoznawania twarzy. Możliwości szybko osiągnęły wydajność zbliżoną do poziomu człowieka, a następnie przekroczyły wydajność na poziomie człowieka w standardowym zestawie danych do rozpoznawania twarzy w ciągu trzech lat, co jest zdumiewającym tempem poprawy biorąc pod uwagę wcześniejsze dziesięciolecia wysiłków.
istnieją być może cztery przełomowe systemy głębokiego uczenia do rozpoznawania twarzy, które napędzały te innowacje; są to: DeepFace, Seria Systemów DeepID, VGGFace i FaceNet. Pomówmy krótko o każdym z nich.
DeepFace to system oparty na głębokich konwolucyjnych sieciach neuronowych opisany przez Yaniva Taigmana i wsp. z Facebook AI Research i Tel Aviv. Zostało to opisane w artykule z 2014 roku zatytułowanym ” DeepFace: Closing the Gap to Human-Level Performance in Face Verification.”Był to prawdopodobnie pierwszy duży krok naprzód z wykorzystaniem głębokiego uczenia do rozpoznawania twarzy, osiągając wydajność zbliżoną do poziomu ludzkiego na standardowym zestawie danych porównawczych.
nasza metoda osiąga dokładność 97,35% na oznakowanych powierzchniach w zbiorze danych Wild (LFW), zmniejszając błąd obecnego stanu techniki o ponad 27%, zbliżając się do wydajności na poziomie człowieka.
— DeepFace: Closing the Gap to Human-Level Performance in Face Verification, 2014.
DeepID lub „Deep hidden IDentity features” to seria systemów (np. DeepID, DeepID2 itp.), po raz pierwszy opisany przez Yi Sun, et al. w swojej pracy z 2014 roku zatytułowanej ” Deep Learning Face Representation from Predicting 10,000 Classes.”Ich system został po raz pierwszy opisany podobnie jak DeepFace, chociaż został rozszerzony w kolejnych publikacjach, aby wspierać zarówno zadania identyfikacji, jak i weryfikacji poprzez szkolenie poprzez kontrastową utratę.
kluczowym wyzwaniem w rozpoznawaniu twarzy jest opracowanie skutecznych reprezentacji cech w celu zmniejszenia różnic wewnątrzosobowych przy jednoczesnym powiększeniu różnic międzyosobowych. Zadanie identyfikacji twarzy zwiększa różnice międzyosobowe, rysując cechy DeepID2 wyodrębnione z różnych tożsamości, podczas gdy zadanie weryfikacji twarzy zmniejsza różnice wewnątrzosobowe, łącząc cechy DeepID2 wyodrębnione z tej samej tożsamości, które są niezbędne do rozpoznawania twarzy.
— Deep Learning Face Representation by Joint Identification-Verification, 2014.
systemy DeepID były jednymi z pierwszych modeli uczenia głębokiego, które osiągnęły lepsze niż ludzkie wyniki w zadaniu, np. DeepID2 osiągnął 99,15% w zestawie danych oznaczonych Faces in the Wild (LFW), co stanowi lepszą niż ludzka wydajność 97,53%. Kolejne systemy, takie jak FaceNet i VGGFace poprawiły te wyniki.
FaceNet został opisany przez Floriana Schroffa i wsp. w Google w swoim artykule z 2015 roku zatytułowanym ” FaceNet: Ujednolicone osadzanie do rozpoznawania twarzy i klastrowania.”Ich system osiągnął wtedy najnowocześniejsze wyniki i przedstawił innowację o nazwie „triplet loss”, która pozwoliła na efektywne kodowanie obrazów jako wektorów cech, które umożliwiły szybkie obliczanie podobieństwa i dopasowanie za pomocą obliczeń odległości.
FaceNet, który bezpośrednio uczy się mapowania z obrazów twarzy do zwartej przestrzeni euklidesowej, gdzie odległości bezpośrednio odpowiadają miarze podobieństwa twarzy. Nasza metoda wykorzystuje głęboką sieć konwolucyjną przeszkoloną w celu bezpośredniej optymalizacji samego osadzania, a nie pośrednią warstwę wąskiego gardła, jak w poprzednich podejściach głębokiego uczenia. Aby trenować, używamy trojaczków z grubsza dopasowanych / niepasujących łat twarzy wygenerowanych przy użyciu nowatorskiej metody wydobywania tripletów online
— FaceNet: a Unified Embedding for Face Recognition and Clustering, 2015.
Po tutorial o Facenecie zobacz:
- Jak opracować system rozpoznawania twarzy za pomocą FaceNet w Keras
VGGFace (z braku lepszej nazwy) został opracowany przez Omkar Parkhi, et al. z Visual Geometry Group (VGG) w Oksfordzie i został opisany w artykule z 2015 roku zatytułowanym ” Deep Face Recognition.”Oprócz lepiej dostrojonego modelu, ich praca koncentrowała się na tym, jak zebrać bardzo duży zestaw danych treningowych i wykorzystać go do szkolenia bardzo głębokiego modelu CNN do rozpoznawania twarzy, który pozwolił im osiągnąć najnowocześniejsze wyniki w standardowych zestawach danych.
… pokazujemy, jak bardzo duży zbiór danych (2,6 mln obrazów, ponad 2,6 tys.osób) może być zmontowany przez połączenie automatyzacji i człowieka w pętli
— Deep Face Recognition, 2015.
aby uzyskać tutorial na temat VGGFace, zobacz:
- Jak wykonać Rozpoznawanie Twarzy Za pomocą VGGFace2 w Keras
chociaż mogą to być kluczowe wczesne kamienie milowe w dziedzinie głębokiego uczenia w zakresie widzenia komputerowego, postęp nadal trwa, z wieloma innowacjami skoncentrowanymi na funkcjach utraty, aby skutecznie trenować modele.
aby uzyskać doskonałe aktualne podsumowanie, zobacz artykuł 2018 „Deep Face Recognition: A Survey.”
Czytaj dalej
Ta sekcja zawiera więcej zasobów na ten temat, jeśli chcesz zagłębić się w ten temat.
Książki
- Podręcznik rozpoznawania twarzy, Wydanie drugie, 2011.
Face Recognition Papers
- Face Recognition: A Literature Survey, 2003.
- Face Detection: A Survey, 2001.
- Human and machine recognition of faces: a survey, 1995.
- solidne wykrywanie obiektów w czasie rzeczywistym, 2004.
- face Recognition Using Eigenfaces, 1991.
Deep Learning Face Recognition Papers
- Deep Face Recognition: ankieta, 2018.
- Deep face recognition, 2015.
- FaceNet: a Unified Embedding for Face Recognition and Clustering, 2015.
- DeepFace: Closing the Gap to Human-Level Performance in Face Verification, 2014.
- Deep Learning Face Representation by Joint Identification-Verification, 2014.
- Deep Learning Face Representation from 10,000 Classes, 2014.
- Multi-view face Detection Using Deep Convolutional Neural Networks, 2015.
- From Facial Parts Responses to Face Detection: a Deep Learning Approach, 2015.
- przekroczenie wydajności weryfikacji twarzy na poziomie człowieka na LFW z GaussianFace, 2014.
Artykuły
- system rozpoznawania twarzy, Wikipedia.
- rozpoznawanie twarzy, Wikipedia.
- wykrywanie twarzy, Wikipedia.
- oznaczone twarze w dzikim zbiorze danych
podsumowanie
w tym poście odkryłeś problem rozpoznawania twarzy i tego, jak metody głębokiego uczenia mogą osiągnąć nadludzką wydajność.
w szczególności nauczyłeś się:
- rozpoznawanie twarzy to szeroki problem identyfikacji lub weryfikacji osób na zdjęciach i filmach.
- rozpoznawanie twarzy to proces składający się z wykrywania, wyrównywania, wyodrębniania cech i zadania rozpoznawania
- modele głębokiego uczenia najpierw zbliżyły się, a następnie przekroczyły wydajność człowieka w zadaniach rozpoznawania twarzy.
masz pytania?
Zadawaj pytania w komentarzach poniżej, a ja postaram się odpowiedzieć.
opracuj modele głębokiego uczenia dla wizji już dziś!
opracowanie własnych modeli wizji w ciągu kilku minut
…dzięki kilku liniom kodu Pythona
Odkryj, jak w moim nowym ebooku:
Deep Learning for Computer Vision
zapewnia samouczki do samodzielnej nauki na takie tematy jak:
klasyfikacja, wykrywanie obiektów (yolo i rcnn), rozpoznawanie twarzy (vggface i facenet), przygotowanie danych i wiele innych…
wreszcie wprowadź głębokie uczenie do swoich projektów wizji
Pomiń naukowców. Tylko Wyniki.
Zobacz co jest w środku