Technologia rozpoznawania twarzy wykracza daleko poza świat informatyki, znajdując solidne zastosowania w sektorze biznesowym.
Rozpoznawanie twarzy stało się jednym z najczęściej omawianych zagadnień ostatnich lat.
Jest to gałąź uczenia maszynowego, która umożliwia wykrywanie i identyfikację ludzkich twarzy. Do niedawna stanowiło to ogromne wyzwanie dla komputerów. Obecnie otwiera to przed firmami, rządami i osobami prywatnymi nowe, ekscytujące możliwości, ale też rodzi wyzwania.
Jeśli jesteś liderem w biznesie i zastanawiasz się, dlaczego temat ten jest tak popularny i czy ma praktyczne zastosowanie, to ten artykuł jest dla Ciebie. Prześledzimy historię rozpoznawania twarzy, jej rozwój, obecne zastosowania, kontrowersje, sposoby implementacji i wiele innych aspektów.
Po przeczytaniu tego artykułu zdobędziesz solidną wiedzę na temat technologii rozpoznawania twarzy i jej implikacji dla biznesu.
Zaczynajmy!
Ewolucja systemów rozpoznawania twarzy
Technologia ta, mimo szerokiego zainteresowania mediów, ma już swoją historię. Pierwszym istotnym algorytmem w dziedzinie wykrywania twarzy była Platforma wykrywania obiektów Viola-Jones, zaprezentowana w 2001 roku. Choć początkowo stanowiła uniwersalne narzędzie do identyfikacji obiektów na zdjęciach, szybko została zaadaptowana do wykrywania twarzy, przynosząc bardzo dobre rezultaty. Algorytm zyskał popularność dzięki swojej szybkości; proces uczenia był bardzo powolny, ale samo wykrywanie przebiegało niezwykle sprawnie.
Już w latach 2001-2004, standardowy komputer stacjonarny z tym algorytmem był w stanie przetworzyć klatkę o wymiarach 300×300 pikseli w czasie 0,07 sekundy (więcej informacji tutaj). Wskaźniki dokładności, choć nieporównywalne z ludzką zdolnością, były na imponującym poziomie 90%.
Jednakże, prawdziwy przełom nastąpił w latach 2010-2020, kiedy to konwolucyjne sieci neuronowe stały się wiodącą metodą wykrywania twarzy. Było to możliwe dzięki dostępności ogromnej mocy obliczeniowej i pojemności pamięci, oferowanej przez chmurę obliczeniową dostawców IaaS (Infrastructure as a Service). Po raz pierwszy w historii komputery zaczęły konsekwentnie przewyższać ludzi w rozpoznawaniu twarzy, szczególnie w przypadku dużej liczby nieznanych twarzy.
Źródło: medium.com
Jak działa system rozpoznawania twarzy?
Rozpoznawanie twarzy to złożony proces, składający się z kilku wyspecjalizowanych etapów.
Oto poszczególne fazy procesu:
Wykrywanie/śledzenie: Ta część wstępnego przetwarzania odpowiada za identyfikację i śledzenie twarzy na zdjęciu lub w materiale wideo. Po zakończeniu tego procesu mamy pewność, że w danych wejściowych znajduje się twarz i można ją poddać dalszej analizie. Śledzenie pozwala również monitorować poszczególne elementy, cechy lub mimikę twarzy, jeśli jest to wymagane.
Wyrównanie: Problem rozpoznawania twarzy komplikuje fakt, że twarze na zdjęciach czy filmach nie są idealnie ułożone. Osoba może być blisko lub daleko, widoczna zza przeszkody lub w profilu bocznym, co utrudnia wykrycie twarzy. W tym miejscu kluczowe jest wyrównanie twarzy, które określa linie i kontury twarzy na obrazie.
Źródło: csc.kth.se
Ekstrakcja cech: Jak sama nazwa wskazuje, w tej fazie (która jest już częścią rozpoznawania) wyodrębniane są charakterystyczne elementy twarzy, takie jak oczy, nos, podbródek, usta itp., w formie, którą algorytmy mogą wykorzystać w następnym kroku. Na tym etapie komputer gromadzi wystarczająco dużo danych, aby skutecznie rozróżnić twarze.
Dopasowanie/klasyfikacja cech: W tej fazie dane uzyskane z ekstrakcji cech są porównywane z daną bazą danych, aby ustalić tożsamość osoby. Ta faza nazywana jest również klasyfikacją, ponieważ algorytm może być użyty do kategoryzowania twarzy, a nie tylko do ich identyfikacji.
Po zakończeniu tego procesu wiemy, czy dana twarz znajduje się w bazie danych, z którą ją porównywano. Ostateczny wynik może również zawierać tagowanie, podobne do tego, które znamy z Facebooka.
Źródło: kierunekdatascience.com
Zagadnienia dotyczące wdrożenia: po stronie serwera i klienta
Rozpoznawanie twarzy może być realizowane zarówno po stronie serwera, jak i na urządzeniu, z którym użytkownik wchodzi w interakcję. Na przykład, gdy przesyłasz zdjęcie na Facebooka, algorytmy działają po stronie serwera, natomiast system identyfikacji, który używa Twojej twarzy do odblokowania urządzenia, musi działać po stronie klienta. Które rozwiązanie jest lepsze?
Prawda jest taka, że nie chodzi o to, które rozwiązanie jest lepsze. Zarówno wdrożenia po stronie serwera, jak i klienta mają swoje zalety, a firmy często stosują system hybrydowy. Zalecaną praktyką jest uczenie modeli po stronie serwera, gdzie dostęp do danych treningowych i zasobów obliczeniowych jest nieograniczony. Po wytrenowaniu modele można spakować i wdrożyć po stronie klienta, co przyspiesza działanie systemu i chroni prywatność użytkownika.
Przesyłanie wszystkich danych na serwer generuje opóźnienie, które w niektórych sytuacjach może być niepożądane lub nieakceptowalne. Z kolei trzymanie wszystkiego po stronie klienta może skutkować mniej zaawansowanymi modelami.
Jak dokładne jest rozpoznawanie twarzy?
Dokładność nie jest łatwa do zdefiniowania w przypadku rozpoznawania twarzy. Wynika to z faktu, że jest to problem niejednoznaczny z różnorodnymi danymi wejściowymi (słabe oświetlenie, częściowo zasłonięta twarz, jakość kamery itp.), a nawet z wprowadzającymi w błąd danymi. W efekcie sieci neuronowe odpowiedzialne za rozpoznawanie twarzy muszą być dostosowane do konkretnego problemu, co ogranicza ich zakres. Dlatego też, choć przemysłowy system rozpoznawania twarzy może osiągnąć 100% dokładność w pewnych warunkach, w innych przypadkach, np. przy próbie identyfikacji twarzy na zatłoczonym zdjęciu, jego skuteczność może spaść nawet do 20%.
W pewnym badaniu, jeden z algorytmów rozpoznawania twarzy osiągnął dokładność 98,52%, przewyższając ludzką dokładność wynoszącą 97,53% w tym samym teście. Według badań z zakresu kryminalistyki, połączenie ludzkiej intuicji i algorytmów przynosiło najlepsze rezultaty w niektórych przypadkach.
Podsumowując, w przypadku konkretnych i dobrze zdefiniowanych zastosowań, rozpoznawanie twarzy jest najlepszym narzędziem, jakim dysponujemy.
Gdzie stosuje się rozpoznawanie twarzy?
W krótkim czasie od opracowania opłacalnych algorytmów, rozpoznawanie twarzy znalazło szereg przydatnych i ciekawych zastosowań. Niektóre z nich są oczywiste, a inne są tak naturalnie wplecione w nasze codzienne życie, że prawie nie zwracamy na nie uwagi.
Facebook jest prawdopodobnie najbardziej powszechnym przykładem działania współczesnych systemów rozpoznawania twarzy. Gdy tylko prześlesz zdjęcie, portal potrafi wykryć na nim twarze. Kiedyś proszono Cię o tagowanie znajomych, teraz Facebook robi to sam.
Źródło: labnol.org
Nowa funkcja Facebooka to powiadomienia dla użytkowników, gdy ktoś prześle zdjęcie z ich twarzą, nawet jeśli nie zostali na nim oznaczeni.
Snapchat intensywnie wykorzystuje detekcję i rozpoznawanie twarzy w wielu swoich funkcjach, zwłaszcza w przypadku popularnych filtrów.
Źródło: gistreel.com
Aby filtry działały poprawnie, kontury i rysy twarzy fotografowanej osoby muszą być precyzyjnie wykrywane, w przeciwnym razie nakładki nie będą wyglądały realistycznie. Podobnie działa Face Swap, kolejna popularna funkcja Snapchata. Jeśli chcesz zgłębić technologię rozpoznawania twarzy Snapchata, sprawdź ten artykuł.
Uber od jakiegoś czasu zmaga się z obawami o prywatność i bezpieczeństwo, a nowym narzędziem w arsenale firmy jest rozpoznawanie twarzy. Firma wprowadziła funkcję weryfikacji tożsamości kierowców poprzez skanowanie ich twarzy. Na swoim blogu firma informuje, że po przetestowaniu kilku dostawców technologii, zdecydowała się na Microsoft Face API ze względu na jego wysoką jakość. Co istotne, ten system weryfikacji tożsamości działa nawet w słabym oświetleniu i rozpoznaje osoby w okularach.
Ponieważ rozpoznawanie twarzy okazuje się skuteczne w praktyce, można oczekiwać, że wkrótce zastąpi inne metody identyfikacji w szkołach, szpitalach, bibliotekach itp.
Zapobieganie przestępczości w handlu detalicznym to kolejne naturalne zastosowanie rozpoznawania twarzy. Szacuje się, że branża detaliczna traci rocznie 45 miliardów dolarów z powodu kradzieży sklepowych i innych przestępstw. Firmy takie jak FaceFirst pomagają sprzedawcom wykorzystywać rozpoznawanie twarzy do identyfikacji sprawców wcześniejszych przestępstw i ostrzegania personelu ochrony.
Policja również zaczyna wykorzystywać rozpoznawanie twarzy, podobnie jak inne instytucje. Na przykład, w Wielkiej Brytanii policja z Południowej Walii używa kamer zamontowanych na samochodach, aby skuteczniej monitorować tłumy ludzi.
Źródło: theconversation.com
Mimo że nowa władza policji wywołała gorące debaty o prywatności, policja jest zdania, że pomoże im to skuteczniej zwalczać przestępczość. Jak powiedział Richard Lewis, zastępca komendanta policji Południowej Walii, w wywiadzie dla Financial Times:
Jeśli zidentyfikujemy osobę, która popełniła przestępstwo, możemy po prostu powiedzieć: wiemy, że tu jesteś, proszę zachowywać się właściwie.
Ostatnio, niespodziewanym zastosowaniem w opiece zdrowotnej okazała się pomoc w diagnozowaniu rzadkiego zaburzenia genetycznego, zwanego zespołem DiGeorge’a.
Zespół DiGeorge’a dotyka około 1 na 6000 dzieci i powoduje deformacje różnych części ciała. W biedniejszych krajach problem diagnostyki jest szczególnie dotkliwy, ze względu na brak dostępu do drogich metod diagnostycznych. W związku z tym, rozpoznawanie twarzy, z zadziwiającą dokładnością 96,6%, daje nową nadzieję osobom z zespołem DiGeorge’a.
Branża lotnicza również coraz częściej wykorzystuje rozpoznawanie twarzy, które w przyszłości może zastąpić tradycyjne karty pokładowe. Obecnie istnieją pierwsze obiecujące wyniki w identyfikacji pasażerów podczas opuszczania kraju. Amerykańska Administracja Bezpieczeństwa Transportu (TSA) przedstawiła plan powszechnego wykorzystania biometrii opartej na rozpoznawaniu twarzy.
Kontrowersyjne zastosowania rozpoznawania twarzy
Technologia daje nam siłę, ale od nas zależy, jak z niej skorzystamy. Nic więc dziwnego, że tak potężna i rewolucyjna technologia jak rozpoznawanie twarzy jest wykorzystywana w sposób, który budzi obawy o podstawowe prawa człowieka i etykę.
Najbardziej widocznym przykładem kontrowersyjnego zastosowania rozpoznawania twarzy jest ogromny chiński system monitoringu, wykorzystujący około 200 milionów kamer do obserwacji 1,4 miliarda obywateli.
Źródło: sbs.com
System śledzi ludzi i ocenia ich zachowanie, stale aktualizując wskaźnik znany jako wynik obywatela. Choć posiadanie potężnego, kontrolowanego przez państwo systemu nadzoru (np. śledzenie dłużników) ma pewną wartość, większość postrzega to jako nadejście dystopijnej przyszłości, którą wyobrażał sobie George Orwell. To przyszłość, w której rządy mają nieograniczoną władzę nad jednostką, a prywatność nie istnieje.
Kolejny przykład budzącego wątpliwości zastosowania rozpoznawania twarzy również pochodzi z Chin. Tym razem system jest używany w szkołach, aby upewnić się, że uczniowie są „uważni” podczas lekcji. System zastępuje identyfikatory, karty biblioteczne czy systemy obecności, używając twarzy ucznia do identyfikacji.
Źródło: businessinsider.com
System monitoruje poziom koncentracji uczniów, korzystanie z telefonów komórkowych i alarmuje nauczyciela, gdy dany próg zostanie przekroczony.
Mimo że monitoring wideo oparty na rozpoznawaniu twarzy nie jest wyłączną domeną Chin – Stany Zjednoczone podejmują próby wykorzystania tej technologii do ograniczania przemocy w szkołach – Chiny wydają się iść w tym kierunku dalej niż jakikolwiek inny kraj.
Porównanie popularnych API do rozpoznawania twarzy
Jakie opcje masz, jeśli chcesz skorzystać z rozpoznawania twarzy? W tej części przyjrzymy się popularnym rozwiązaniom i porównamy ich funkcje.
Zanim zaczniemy, pamiętaj, że te interfejsy API szybko ewoluują. Dlatego nie podejmuj decyzji na podstawie pojedynczego wpisu na blogu, w którym podano, że dany interfejs API nie ma tej lub innej funkcji. Najpierw przeanalizuj swoje potrzeby biznesowe, dokładnie sprawdź oferowane funkcje i dopiero wtedy podejmij decyzję.
OpenCV
Badania nad sztuczną inteligencją to bezdenna studnia. Szkolenie i doskonalenie systemu rozpoznawania twarzy jest trudne i najlepiej zostawić to firmom z ogromnymi budżetami i zespołami badawczymi. Jeśli jednak Twoje potrzeby są proste i chcesz mieć pełną kontrolę – i oczywiście jesteś gotów zatrudnić niewielki zespół inżynierów – OpenCV może być dla Ciebie odpowiednie.
Jest to otwartoźródłowa biblioteka Computer Vision, która jest bardzo precyzyjna i dostępna dla wszystkich platform programistycznych. Tutaj znajdziesz przykład, jak uruchomić system wykrywania twarzy za pomocą Pythona i OpenCV w 25 liniach kodu!
Możesz napotkać wpisy na blogach, które mówią, że OpenCV nie obsługuje rozpoznawania twarzy. To nieprawda. Tutaj znajdziesz dowód. Podsumowując, OpenCV może być doskonałym wyborem, jeśli potrzeby firmy są proste i konkretne.
Amazon Rekognition
Rekognition to zaawansowana usługa jednego z największych dostawców chmury – AWS. Jest to w pełni zarządzana usługa AWS, więc jeśli już korzystasz z tej platformy, Rekognition jest prawdopodobnie najlepszym wyborem.
Rekognition oferuje między innymi:
- Analizę w czasie rzeczywistym (podczas przesyłania obrazu lub wideo do S3)
- Szczegółową analizę twarzy (płeć, kolor włosów, mimika, czy oczy są otwarte, itp.)
- Śledzenie (wychwytywanie ścieżek zidentyfikowanych obiektów na filmach)
- Wykrywanie scen i aktywności (wewnątrz/na zewnątrz, „gra w piłkę nożną” itp.)
- Moderowanie niebezpiecznych treści (np. nagości)
Największą zaletą Rekognition jest jednocześnie jego największą wadą – integracja z usługami spoza AWS jest trudna, a czasami wręcz niemożliwa.
Kairos
W przeciwieństwie do Rekognition, Kairos udostępnia sztuczną inteligencję za pośrednictwem interfejsu API, co pozwala zachować pełną kontrolę nad danymi i serwerami. Kairos promuje się jako usługa stawiająca na prywatność i jest bardzo krytyczny wobec Amazona i innych firm, które współpracują z rządem (co jest potwierdzone przez ACLU).
Kairos działa zarówno na zdjęciach, jak i filmach i ma wszystkie funkcje, których można oczekiwać od nowoczesnego API do rozpoznawania twarzy. Oferuje niektóre z niesamowitych funkcji dostępnych w Rekognition. Jeśli ich nie potrzebujesz i sam zarządzasz swoimi danymi, to po co zawracać sobie głowę innymi rozwiązaniami?!
Kairos oferuje również wdrożenie lokalne dla tych, którzy przywiązują dużą wagę do prywatności i nie chcą przesyłać danych przez sieć. Ceny są zależne od zastosowania i mogą być dość wysokie.
Google Cloud Vision
Google postanowiło rozróżnić swoje usługi rozpoznawania twarzy w przypadku zdjęć i filmów. Interfejs API dla zdjęć nazywa się Cloud Vision, natomiast usługa skupiona na wideo nosi nazwę Video Intelligence.
Usługa oparta na obrazach jest podobna do tego, co oferuje AWS, natomiast usługa wideo umożliwia katalogowanie i wyszukiwanie, co jest przydatne dla firm, które mają obszerne archiwa wideo. Mogą one chcieć analizować lub przeszukiwać te materiały.
Jednakże, Video Intelligence nie ma funkcji rozpoznawania twarzy w momencie pisania tego artykułu. Wydaje się, że te funkcje są dostępne tylko w Cloud Vision. Śledzenie obiektów i wykrywanie tekstu jest na etapie beta, co plasuje tę usługę za ofertą Amazona.
Azure Face API
Ponieważ Microsoft podchodzi do swoich rozwiązań chmurowych bardziej poważnie niż do tych stacjonarnych (wreszcie!), Azure Face API jest świetną propozycją. Oferuje wszystkie oczekiwane funkcje (wykrywanie, identyfikacja, grupowanie twarzy, wyszukiwanie podobnych twarzy, emocje, itp.) i dobrze sprawdza się także w przypadku filmów.
Nie jest to ściśle związane z rozpoznawaniem twarzy, ale warto wspomnieć, że Azure oferuje także usługę Custom Vision, która pozwala trenować modele na podstawie własnych danych wejściowych.
Podobnie jak w przypadku usług Google, dostępny jest „plac zabaw” na stronie głównej, gdzie można przetestować API!
Czy istnieją znaczące różnice między topowymi usługami do rozpoznawania twarzy? Nie do końca. W tej dziedzinie panuje duża konkurencja, a nowe funkcje pojawiają się bardzo często. Jeśli jesteś już przywiązany do określonego ekosystemu, korzystanie z jego usług rozpoznawania twarzy ma sens. W innym przypadku możesz wybrać innego dostawcę, jeśli Twoje potrzeby są specyficzne (kontrola własnych danych, potrzeba tylko zwykłego wykrywania itp.).
Systemy anty-rozpoznawania twarzy
Tak jak niektórzy naukowcy poświęcają swoje życie na doskonalenie technologii rozpoznawania twarzy, inni pracują nad technikami, które mają ją oszukać. Jednym z takich ciekawych rozwiązań są okulary kamuflażowe, które na pierwszy rzut oka wyglądają zwyczajnie, ale potrafią oszukać systemy rozpoznawania twarzy.
Źródło: digitaltrends.com
Warto zaznaczyć, że okulary te nie są jeszcze dostępne w sprzedaży, choć naukowcy twierdzą, że można je łatwo wydrukować w 3D.
Innym ciekawym projektem było uruchomienie na Kickstarterze okularów ekō. Choć produkt został ostatecznie anulowany, opierał się na bardzo prostej zasadzie: zwykłe okulary przeciwsłoneczne za 45 USD, które odbijały światło, powodując, że kamery i systemy monitoringu wideo wariowały.
Podobnie jak w dziedzinie cyberbezpieczeństwa, hakerzy i naukowcy rywalizują w wyścigu do perfekcji w dziedzinie rozpoznawania twarzy. Około roku 2014 popularność zyskał makijaż kamuflażowy, który zapewniał niewidzialność dla systemów rozpoznawania twarzy, ale nie jest to już opłacalne. Czy doczekamy się szyfrowania AES dla rozpoznawania twarzy? Czas pokaże!
Czy rozpoznawanie twarzy jest dla Ciebie?
Zastosowanie rozpoznawania twarzy może przynieść korzyści firmom, które działają w branżach związanych z kontaktem z ludźmi – a to oznacza, że praktycznie każdej firmie na świecie! Choć na obecne zastosowania rozpoznawania twarzy duży nacisk kładą rządy, duże korporacje i startupy technologiczne, nie ma powodu, dla którego Twoja firma nie mogłaby skorzystać z tej technologii.
Możliwości są niemal nieograniczone, jeśli tylko puścimy wodze fantazji: witanie i identyfikacja gości w hotelu, lokalizowanie znajomego w tłumie, wyszukiwanie osób o podobnych twarzach (może do celów castingowych), wykrywanie osobowości podczas rozmów kwalifikacyjnych (choć wyniki takich badań mogą być niejednoznaczne), personalizacja usług bankowych dla ważnych klientów. Sposobów na wykorzystanie rozpoznawania twarzy, w mniejszej i większej skali, jest mnóstwo i pomogą one Twojej firmie działać lepiej.
Podsumowanie
Wkrótce rozpoznawanie twarzy stanie się tak powszechne i oczywiste, że nawet tego nie zauważymy (tak jak nie zauważamy telefonów komórkowych?). Podstawowa technologia jest już prawie doskonała, ale w prawdziwym świecie chodzi nie tylko o samo wykrywanie twarzy, ale o to, co możemy z tą umiejętnością zrobić.
Brzmi interesująco i chcesz dowiedzieć się więcej? Sprawdź ten świetny kurs o Computer Vision.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.