Na twarzy jest napisane: jak działa komputerowe rozpoznawanie twarzy

Algorytmy (technologie)

Zidentyfikowanie osoby na zdjęciu z punktu widzenia komputera oznacza dwa bardzo różne zadania: po pierwsze, znalezienie osoby na zdjęciu (jeśli istnieje), a po drugie, wyizolowanie z obrazu tych cech, które odróżniają tę osobę od innych osób z bazy danych.

1. Znajdź

Próby nauczenia komputera, jak znaleźć twarz na zdjęciach, były podejmowane od wczesnych lat siedemdziesiątych. Wypróbowano wiele podejść, ale najważniejszy przełom nastąpił znacznie później - wraz z stworzeniem w 2001 r. Przez Paula Violi i Michaela Jonesa metody kaskadowego wzmacniania, czyli łańcucha słabych klasyfikatorów. Chociaż istnieją teraz trudniejsze algorytmy, można argumentować, że stara dobra Viola - Jones - działa zarówno w telefonie komórkowym, jak i aparacie. Chodzi o niezwykłą szybkość i niezawodność: nawet w odległym 2001 roku przeciętny komputer korzystający z tej metody może przetwarzać 15 zdjęć na sekundę. Dzisiaj wydajność algorytmu spełnia wszystkie uzasadnione wymagania. Najważniejsze, co musisz wiedzieć o tej metodzie jest to, że jest ona zaskakująco prosta. Nawet nie uwierzysz, ile.

  1. Krok 1. Usuwamy kolor i przekształcamy obraz w matrycę jasności.
  2. Krok 2. Umieść na nim jedną z kwadratowych masek - są one nazywane znakami Haara. Chodzimy z nią przez cały obraz, zmieniając pozycję i rozmiar.
  3. Krok 3. Dodaj wartości jasności cyfrowej z tych komórek macierzy, które spadły pod białą część maski, i odejmij od nich te wartości, które spadły pod czarną częścią. Jeśli przynajmniej w jednym z przypadków różnica między białymi i czarnymi obszarami okazała się powyżej pewnego progu, bierzemy ten obszar obrazu do dalszej pracy. Jeśli nie, zapomnij o tym, nie ma tu twarzy.
  4. Krok 4. Powtórz od kroku 2 już z nową maską - ale tylko w obszarze obrazu, który przeszedł pierwszy test.

Dlaczego to działa? Spójrz na znak [1]. Na prawie wszystkich zdjęciach obszar oczu jest zawsze nieco ciemniejszy niż obszar bezpośrednio poniżej. Spójrz na znak [2]: jasny obszar pośrodku odpowiada grzbietowi nosa znajdującemu się między ciemnymi oczami. Na pierwszy rzut oka czarno-białe maski wcale nie są jak twarze, ale mimo swojej prymitywności mają wysoką moc generalizującą.

Dlaczego tak szybko W opisanym algorytmie nie zauważono jednego ważnego punktu. Aby odjąć jasność jednej części obrazu od drugiej, konieczne byłoby dodanie jasności każdego piksela, a może być ich wiele. Dlatego w rzeczywistości przed nałożeniem maski matryca jest tłumaczona na reprezentację całkowitą: wartości w macierzy jasności są dodawane wcześniej, dzięki czemu całkowitą jasność prostokąta można uzyskać, dodając tylko cztery liczby.

Jak złożyć kaskadę? Chociaż na każdym etapie maskowania występuje bardzo duży błąd (rzeczywista dokładność to niewiele więcej niż 50%), siła algorytmu polega na kaskadowej organizacji procesu. Pozwala to szybko wyrzucić analizę obszaru, w którym osoby zdecydowanie nie ma, i poświęcić wysiłek tylko na te obszary, które mogą dać wynik. Ta zasada łączenia słabych klasyfikatorów w sekwencji nazywa się wzmocnieniem (więcej na ten temat można znaleźć w październikowym wydaniu „PM” lub tutaj). Ogólna zasada jest taka: nawet duże błędy, pomnożone przez siebie, staną się małe.

2. Uprość

Znalezienie cech osoby, które umożliwiłyby identyfikację jej właściciela, oznacza sprowadzenie rzeczywistości do formuły. Mówimy o uproszczeniu i bardzo radykalnym. Na przykład może istnieć ogromna liczba różnych kombinacji pikseli nawet na miniaturowym zdjęciu 64 x 64 pikseli - (28) 64 x 64 = 232768 sztuk. Jednocześnie, aby policzyć 7, 6 miliarda ludzi na Ziemi, wystarczyłyby tylko 33 bity. Przechodząc z jednej cyfry na drugą, musisz wyrzucić wszystkie zewnętrzne dźwięki, ale zachowaj najważniejsze indywidualne cechy. Statystycy znający te zadania opracowali wiele narzędzi upraszczających dane. Na przykład metoda głównych składników, która położyła podwaliny pod identyfikację osób. Jednak ostatnio splotowe sieci neuronowe pozostawiły stare metody daleko w tyle. Ich struktura jest dość osobliwa, ale w rzeczywistości jest to również metoda uproszczenia: jej zadaniem jest zredukowanie określonego obrazu do zestawu funkcji.

Krok 1 Stosujemy maskę o stałym rozmiarze do obrazu (nazywa się to poprawnie jądrem splotu), mnożymy jasność każdego piksela na obrazie przez wartości jasności w masce. Znajdujemy średnią wartość dla wszystkich pikseli w „oknie” i zapisujemy ją w jednej komórce następnego poziomu.

Krok 2. Przesuwamy maskę do stałego kroku, mnożymy raz za razem zapisujemy średnią na mapie obiektów.

Krok 3. Przechodząc przez cały obraz z jedną maską, powtórz z inną - otrzymujemy nową mapę znaków.

Krok 4. Zmniejsz rozmiar naszych kart: weź kilka sąsiednich pikseli (na przykład kwadrat 2x2 lub 3x3) i przenieś tylko jedną maksymalną wartość na następny poziom. To samo robimy w przypadku kart otrzymanych ze wszystkimi innymi maskami.

Krok 5, 6. Dla celów higieny matematycznej zastąp wszystkie wartości ujemne zerami. Powtórz od kroku 2 tyle razy, ile chcemy, aby uzyskać warstwy w sieci neuronowej.

Krok 7, 8. Z ostatniej karty znaków zbieramy nie splotową, lecz w pełni połączoną sieć neuronową: zamieniamy wszystkie komórki ostatniego poziomu w neurony, które z pewną wagą wpływają na neurony następnej warstwy. Ostatni krok W sieciach przeszkolonych do klasyfikowania obiektów (do odróżniania kotów od psów na zdjęciu itp.) Znajduje się warstwa wyjściowa, czyli lista prawdopodobieństw wykrycia określonej reakcji. W przypadku twarzy zamiast konkretnej odpowiedzi otrzymujemy krótki zestaw najważniejszych cech twarzy. Na przykład w Google FaceNet jest to 128 abstrakcyjnych parametrów numerycznych.

3. Zidentyfikuj

Ostatni etap, sama identyfikacja, jest najprostszym, a nawet trywialnym krokiem. Sprowadza się do oceny podobieństwa wynikowej listy znaków do tych, które są już w bazie danych. W żargonie matematycznym oznacza to znalezienie odległości od danego wektora do najbliższego regionu znanych osób w przestrzeni znaków. W ten sam sposób można rozwiązać inny problem - znaleźć osoby podobne do siebie.

Dlaczego to działa? Splotowa sieć neuronowa jest „wyostrzona”, aby wydobyć z obrazu najbardziej charakterystyczne cechy i zrobić to automatycznie i na różnych poziomach abstrakcji. Jeśli pierwsze poziomy zwykle odpowiadają prostym wzorom, takim jak kreskowanie, gradient, wyraźne obramowania itp., To z każdym nowym poziomem wzrasta złożoność znaków. Maski, które sieć neuronowa próbuje na wysokich poziomach, często często przypominają ludzkie twarze lub ich fragmenty. Ponadto, w przeciwieństwie do metody głównego elementu, sieci neuronowe łączą cechy w sposób nieliniowy (i nieoczekiwany).

Skąd pochodzą maski? W przeciwieństwie do masek używanych w algorytmie Viola-Jonesa, sieci neuronowe działają bez pomocy człowieka i znajdują maski w procesie uczenia się. Aby to zrobić, musisz mieć dużą próbkę treningową, na której byłyby zdjęcia różnych twarzy na bardzo innym tle. Jeśli chodzi o wynikowy zestaw cech, które daje sieć neuronowa, jest ona tworzona metodą potrójną. Trójki to zestawy obrazów, w których pierwsze dwa są fotografiami tej samej osoby, a trzeci to zdjęcie drugiej osoby. Sieć neuronowa uczy się znajdować takie znaki, które zbliżają pierwsze obrazy tak blisko siebie, jak to możliwe, a jednocześnie wykluczają trzeci.

Czyja sieć neuronowa jest lepsza? Identyfikacja osób dawno już opuściła akademię w wielkim biznesie. I tutaj, jak w każdej firmie, producenci starają się udowodnić, że to ich algorytmy są lepsze, chociaż nie zawsze dostarczają dane z otwartych testów. Na przykład, zgodnie z konkursem MegaFace, algorytm deepVo V3 rosyjskiej firmy Vokord wykazuje obecnie najlepszą dokładność z wynikiem 92%. Google FaceNet v8 w tym samym konkursie pokazuje tylko 70%, a DeepFace z Facebooka z podaną dokładnością 97% w ogóle nie uczestniczył w konkursie. Konieczne jest ostrożne interpretowanie takich liczb, ale teraz jest jasne, że najlepsze algorytmy prawie osiągnęły dokładność rozpoznawania twarzy.

Żywy makijaż (sztuka)

Zimą 2016 r. Podczas 58. dorocznej nagrody Grammy Lady Gaga oddała hołd Davidowi Bowie, który zmarł krótko przedtem. Podczas występu lawa na żywo rozprzestrzeniała się na jej twarzy, pozostawiając znak rozpoznawany przez wszystkich fanów Bowie na czole i policzku - pomarańczową błyskawicę. Projekcja wideo stworzyła efekt ruchomego makijażu: komputer śledził ruchy piosenkarza w czasie rzeczywistym i wyświetlał go na twarzy obrazu, biorąc pod uwagę jego kształt i położenie. W Internecie łatwo jest znaleźć wideo, na którym widać, że projekcja jest nadal niedoskonała i nieco opóźniona nagłymi ruchami.

Asmai Nobumichi Asai rozwija technologię mapowania wideo twarzy Omote od 2014 roku, a od 2015 roku aktywnie demonstruje na całym świecie, zbierając przyzwoitą listę nagród. Założył firmę WOW Inc. został partnerem Intela i otrzymał dobrą zachętę do rozwoju, a współpraca z Ishikawą Watanabe z Uniwersytetu Tokijskiego umożliwiła przyspieszenie projekcji. Jednak najważniejsze dzieje się na komputerze, a wielu programistów stosuje podobne rozwiązania do nakładania masek na twarz, czy to hełm żołnierza Empire, czy makijaż „pod Davidem Bowie”.


Alexander Khanin, założyciel i dyrektor generalny VisionLabs

„Taki system nie potrzebuje potężnego komputera, maski można nakładać nawet na urządzenia mobilne. System może pracować bezpośrednio na smartfonie, bez wysyłania danych do chmury lub na serwer. ”

„To zadanie nazywa się śledzeniem punktów na twarzy. Istnieje wiele podobnych rozwiązań w domenie publicznej, ale profesjonalne projekty są szybkie i fotorealistyczne - powiedział Alexander Khanin, szef VisionLabs. „Najtrudniejszą rzeczą jest określenie położenia punktów z uwzględnieniem wyrazu twarzy i indywidualnego kształtu twarzy lub w ekstremalnych warunkach: przy silnych obrotach głowy, niedostatecznym oświetleniu i wysokiej ekspozycji”. Aby nauczyć system znajdowania punktów, sieć neuronowa jest trenowana - najpierw ręcznie, drobiazgowo zaznaczając zdjęcie po zdjęciu. „Przy wejściu jest to zdjęcie, a na wyjściu zaznaczony zestaw punktów”, wyjaśnia Alexander. - Następnie rozpoczyna się detektor, określana jest twarz, budowany jest jej trójwymiarowy model, na który nakłada się maska. Markery są stosowane do każdej ramki strumienia w czasie rzeczywistym. ”

Tak działa wynalazek Nobumichi Asai. Wcześniej japoński inżynier skanował głowy swoich modeli, otrzymując dokładne trójwymiarowe prototypy i przygotowując sekwencję wideo z uwzględnieniem kształtu twarzy. Zadanie ułatwia również małe odblaskowe markery, które są przyklejone do artysty przed wejściem na scenę. Pięć kamer na podczerwień monitoruje ich ruchy, przesyłając dane śledzenia do komputera. Potem wszystko dzieje się tak, jak powiedziano w VisionLabs: wykrywana jest twarz, budowany jest model trójwymiarowy i zaczyna działać projektor Ishikawa Watanabe.

Wprowadził urządzenie DynaFlash w 2015 roku: jest to szybki projektor, który może śledzić i kompensować ruch samolotu, na którym wyświetlany jest obraz. Ekran można przechylać, ale obraz nie będzie zniekształcony i będzie nadawany z częstotliwością do tysiąca 8-bitowych klatek na sekundę: opóźnienie nie przekracza trzech milisekund niezauważalnych dla oka. Dla Asai taki projektor był darem niebios; makijaż na żywo naprawdę zaczął działać w czasie rzeczywistym. Na filmie nagranym w 2017 roku dla popularnego duetu Inori w Japonii opóźnienie nie jest całkowicie widoczne. Twarze tancerzy zmieniają się w żywe czaszki, a następnie w płaczące maski. Wygląda świeżo i przyciąga uwagę - ale technologia szybko staje się modna. Wkrótce motyl, siedzący na policzku wiodącej prognozy pogody, lub wykonawcy, za każdym razem zmieniający swój wygląd na scenie, z pewnością staną się najczęstszą rzeczą.

Hakowanie twarzy (aktywizm)

Mechanika uczy, że każde działanie wywołuje reakcję, a szybki rozwój systemów obserwacji i identyfikacji osoby nie jest wyjątkiem. Obecnie sieci neuronowe pozwalają porównać losowe rozmyte zdjęcie z ulicy ze zdjęciami przesłanymi na konta w sieciach społecznościowych i w kilka sekund poznać tożsamość przechodnia. Jednocześnie artyści, działacze i specjaliści od widzenia maszynowego tworzą narzędzia, które mogą przywrócić ludziom prywatność, przestrzeń osobistą, która kurczy się w tak zawrotnym tempie.

Identyfikacji można zapobiec na różnych etapach działania algorytmów. Z reguły pierwsze kroki procesu rozpoznawania są narażone na ataki - wykrycie postaci i twarzy na obrazie. Gdy wojskowy kamuflaż oszukuje nasz wzrok, ukrywając obiekt, naruszając jego geometryczne proporcje i sylwetkę, ludzie próbują pomylić widzenie maszynowe z kolorowymi kontrastowymi plamami, które zniekształcają ważne parametry: kontur twarzy, oczu, ust itp. Na szczęście komputer Wizja nie jest jeszcze tak doskonała jak nasza, co pozostawia dużą swobodę w doborze kolorów i kształtów takiego „kamuflażu”.

Różowe i fioletowe, żółte i niebieskie odcienie dominują w linii odzieży HyperFace, której pierwsze próbki projektant Adam Harvey i startup Hyphen Labs zaprezentowali w styczniu 2017 r. Wzory pikseli zapewniają obraz maszynowy z idealnym - z jego punktu widzenia - obrazem ludzkiej twarzy, którą komputer chwyta tak, jakby był fałszywym celem. Kilka miesięcy później moskiewski programista Grigorij Bakunow i jego koledzy opracowali nawet specjalną aplikację, która generuje opcje makijażu, które zakłócają działanie systemów identyfikacji. I chociaż autorzy, myśląc, postanowili nie umieszczać programu w domenie publicznej, ten sam Adam Harvey oferuje kilka gotowych opcji.

Osoba w masce lub z dziwnym makijażem na twarzy może nie być widoczna dla systemów komputerowych, ale inne osoby na pewno zwrócą na niego uwagę. Istnieją jednak sposoby, aby to zrobić i odwrotnie. Rzeczywiście, z punktu widzenia sieci neuronowej obraz nie zawiera obrazów w zwykłym dla nas znaczeniu; dla niej obraz jest zbiorem liczb i współczynników. Dlatego zupełnie inne obiekty mogą szukać jej czegoś zupełnie podobnego. Znając te niuanse AI, możesz przeprowadzić bardziej subtelny atak i tylko nieznacznie poprawić obraz - dzięki czemu zmiany będą prawie niewidoczne dla osoby, ale wizja maszynowa zostanie całkowicie oszukana. W listopadzie 2017 r. Naukowcy wykazali, jak niewielkie zmiany w kolorze żółwia lub baseballu sprawiają, że Google InceptionV3 z pewnością widzi zamiast tego pistolet lub filiżankę espresso. Mahmoud Sharif i jego koledzy z Carnegie Mellon University zaprojektowali plamisty wzór oprawek okularów: prawie nie ma to wpływu na postrzeganie twarzy innych, ale identyfikacja komputerowa za pomocą Face ++ pewnie myli go z twarzą osoby, „pod którą” zaprojektowano wzór w kształcie ramki.

Artykuł „Jest napisany na twarzy” został opublikowany w czasopiśmie Popular Mechanics (nr 12, grudzień 2017 r.).

Zalecane

Najszybszy samochód elektryczny na świecie: 1,5 sekundy do 100 km / h!
2019
Serpent Gorynych and urka: Roll the field. Pole minowe
2019
Jak zbudowana jest największa wywrotka
2019