Postęp techniczny jest nieuniknioną i naturalną częścią człowieczeństwa. Jako ludzie z branży, w pełni akceptujemy taki stan rzeczy i z ekscytacją implementujemy nowe technologie. Jedną z nich staje się system wykrywania twarzy.

Nie jest to żadna nowość, ponieważ chyba wszyscy, którzy przynajmniej odrobinę śledzą wydarzenia ze świata już o nim słyszeli. Mimo tego, niektórych z Was zaskoczyć może jak bardzo w ciągu ostatnich kilku lat udało się rozwinąć tę technologię.

Rozpoznawanie twarzy (facial recognition) to kategoria oprogramowania biometrycznego, która matematycznie odwzorowuje cechy twarzy danej osoby i zapisuje informacje jako obraz. Oprogramowanie wykorzystuje algorytmy tzw. “głębokiego uczenia” w celu przechwytywania i porównywania obrazu przesyłanego “na żywo”, lub już zapisanego. Taki system stanowi realną opcję uwierzytelniania i identyfikacji poprzez kamery przemysłowe, czy nawet bliskie nam obiektywy smartfonów i tabletów. Przykładem jest iPhone X, zawierający tę technologię. Umożliwia użytkownikom odblokowywanie telefonu za pomocą analizy ich twarzy. Oprogramowanie porównuje ponad 30 tyś. zmiennych z użyciem modelowania 3D oraz jest zabezpieczone przed fałszowaniem, czyli np. używaniem masek lub zdjęć prawowitych właścicieli.

Staje się to już codziennością, a mimo tego w dalszym ciągu może brzmieć jak sci-fi. Z tego powodu ważne jest przynajmniej podstawowe zrozumienie jak to działa. System rozpoznawania wykorzystuje algorytmy komputerowe do wybierania konkretnych, charakterystycznych szczegółów dotyczących twarzy danej osoby. Należą do nich np. odległość między oczami lub kształt podbródka. Po wykryciu są następnie przekształcane w matematyczną reprezentację i porównywane z danymi innych twarzy zebranych w bazie. Dane na temat konkretnej twarzy są często nazywane “szablonami twarzy” i różnią się od fotografii, ponieważ są zaprojektowane tak, aby zawierały tylko niektóre szczegóły, które można wykorzystać do odróżnienia jednej osoby od drugiej. Niektóre systemy rozpoznawania twarzy, zamiast po prostu identyfikować osobę, są zaprojektowane do obliczania wyniku dopasowania prawdopodobieństwa między nieznaną osobą, a określonymi szablonami twarzy zapisanymi w bazie danych. Systemy te oferują kilka potencjalnych dopasowań, uszeregowanych według prawdopodobieństwa poprawnej identyfikacji i nie powinny dawać tylko jednego wyniku.

Systemy rozpoznawania twarzy, w zależności od panujących warunków, różnią się zdolnościami identyfikacji osób. Nie każdy z nich poradzi sobie w warunkach słabego oświetlenia, słabej jakości obrazu, czy nieoptymalnego kątu widzenia. Jak zatem system radzi sobie, jeżeli istnieje tak wiele czynników, które utrudniają mu działanie? Należy zrozumieć dwa podstawowe pojęcia, czyli “fałszywie negatywny” (false negative) oraz “fałszywie pozytywny” (false positive). Negatywny to sytuacja, w której system nie może dopasować wykrytej twarzy do żadnej znajdującej się w bazie. System po prostu zwróci zero wyników. Pozytywny natomiast przypasuje zidentyfikowaną osobę do najbardziej podobnej, którą może znaleźć w swojej bazie. Podczas tworzenia i użytkowania systemu rozpoznawania twarzy ważne jest, aby analizować stosunek "fałszywie pozytywnych" i "fałszywie negatywnych". Dla przykładu, podczas korzystania z funkcji odblokowania telefonu rozpoznaniem twarzy, powinno nam zależeć, aby system nie zawsze mógł nas zidentyfikować (fałszywie negatywny wynik). W przeciwnym wypadku, zbyt “łagodne podejście” spowoduje, że obce osoby będą rozpoznawane jako podobne i uzyskają dostęp do chronionych danych (fałszywie pozytywny wynik).

Które elementy ludzkiej twarzy są brane pod uwagę przez system? Oprogramowanie identyfikuje 80 “punktów węzłowych” tworząc z nich tzw. “faceprint”. W tym kontekście są to punkty końcowe używane do mierzenia zmiennych twarzy, takich jak długość podbródka, długość lub szerokość nosa, odległość między oczami i głębokość oczodołów, czy kształt kości policzkowych. Mimo, że system rozpoznawania twarzy wykorzystuje tylko 80 punktów, może, w sprzyjających warunkach, szybko i dokładnie zidentyfikować docelowe osoby. Według National Institute of Standards and Technology częstość występowania fałszywych trafień w systemach rozpoznawania twarzy zmniejszała się o połowę co dwa lata od 1993 roku.

W przeszłości oprogramowanie do rozpoznawania twarzy opierało się na obrazach 2D. Jak można się domyślić, aby system mógł działać skutecznie, twarz, a w zasadzie obraz, musiały idealnie pasować do kryteriów, czyli mieć właściwą perspektywę, pełne oświetlenie. Dodatkowo, twarz z grymasem lub okazująca emocje mogła nie zostać rozpoznana, ze względu na zbyt duże rozbieżności w porównaniu z oryginałem w bazie. Nowe trendy w oprogramowaniu do rozpoznawania twarzy wykorzystują już modele 3D, które zapewniają o wiele większą dokładność. Przechwytując trójwymiarowy obraz osoby w czasie rzeczywistym, system dokonuje identyfikacji na podstawie jej fizycznych cech. Co ciekawe jednak, funkcja rozpoznawania twarzy 3D może być używana nawet w ciemności i ma zdolność rozpoznawania obiektu pod różnymi kątami widzenia, w tym nawet do 90 stopni, czyli z profilu. System przechodzi szereg kroków, aby zweryfikować tożsamość danej osoby. Co oczywiste, najpierw wykrywa obraz, a następnie określa pozycję głowy, jej rozmiar oraz pozę. Mierzy przy tym krzywe powierzchni w skali submilimetrowej (lub mikrofalowej) i tworzy szablon. Ten tłumaczony jest na unikalny kod, który nadaje każdemu szablonowi zestaw liczb reprezentujących cechy ludzkiej twarzy.

Można zapytać, co w takim razie z wszystkimi bazami danych, które do tej pory zawierały tylko obrazy 2D? W tym kierunku rozwijane są nowe rozwiązania. Po zeskanowaniu twarzy w 3D, rozpoznaniu jej punktów itd., algorytmy są już w stanie przekonwertować obraz na 2D i dokonać identyfikacji. Technologia rozpoznawania twarzy nie jest skoncentrowana i tworzy się ją w niemal całym rozwiniętym świecie. Rok 2016 dał początek “Face API” stworzonemu przez Microsoft Cognitive Services. To zbiór usług w chmurze, które przy wykorzystaniu sztucznej inteligencji, dają nam dostęp do jednych z najbardziej rozwiniętych algorytmów identyfikacji twarzy aktualnie dostępnych na rynku. Główne funkcje interfejsu Face API koncentrują się na wykrywaniu twarzy na podstawie ich atrybutów i, co więcej, na rozpoznawaniu emocji. Technologia ta umożliwia identyfikację cech takich jak wiek, płeć, pozy, makijaż, okulary, czy owłosienie i jego kolor. Oryginalnie funkcja wykrywania emocji, nie była częścią Face API i stanowiła odrębny interfejs. Teraz jednak możemy z niej korzystać w ramach zintegrowanego oprogramowania, co znacznie ułatwia pracę. Po przekazaniu obrazu do bazy danych, system zidentyfikuje wszelkie twarze, które zna, biorąc też pod uwagę emocje. Następnie zwróci odpowiedź JSON z towarzyszącym jej zestawem wyników zaufania - 0 czyli niskim oraz 1 jako wysokim.

Podobnie jak w przypadku wszystkich interfejsów API w ekosystemie usług kognitywnych, można korzystać z punktów końcowych interfejsu Face API w wybranym przez siebie języku programowania. Dzięki temu mamy możliwość dostosowania systemu do naszych potrzeb. Interfejs udostępnia funkcje umożliwiające efektywne tworzenie magazynu danych istniejących twarzy i sprawdzanie, czy nowe twarze należą do już istniejącej bazy.

W przeszłości głównymi użytkownikami oprogramowania do rozpoznawania twarzy były organy ścigania i prewencji, które wykorzystywały tego typu systemy do rejestrowania twarzy w tłumie. Agencje rządowe niektórych krajów stosują również algorytmy bezpieczeństwa eliminujące np. oszustwa wyborcze. Nie tak dawno temu, rząd USA uruchomił program o nazwie US-VISIT (United States Visitor and Immigrant Status Indicator Technology), którego celem są ludzie uzyskujący wstęp na terytorium Stanów. Od otrzymujących wizy pobierane są odciski palców oraz robione są im zdjęcia. Trafiają one do bazy i są weryfikowane z osobami, które zjawią się na granicy USA. Systemy te stają się coraz mniej kosztowne, więc ich wykorzystanie rośnie. Stosują je banki, czy lotniska w przypadku których tworzone są określone linie poruszania się podróżnych, tzw. “Registered Traveller”. Dzięki weryfikacji twarzy poruszają się one szybciej od tradycyjnych kontroli paszportowych. Inne potencjalne zastosowania obejmują zabezpieczenia bankomatowe. Oprogramowanie jest w stanie szybko zweryfikować twarz klienta. Może też już nie być konieczne posiadanie identyfikatora ze zdjęciem, karty bankowej lub PINu do sprawdzenia tożsamości klienta w banku. Face API zawiera wiele komponentów przez co możliwości jego zastosowania jest wiele. Innym przykładem jest Uber, który był w stanie zmniejszyć ryzyko oszustw oraz zapewnić pasażerom jak i kierowcom większy spokój i bezpieczeństwo przejazdów. System weryfikuje, czy osoba zarejestrowana w aplikacji jest tą właściwą, która przyjmuje zlecenia w samochodzie. Ten problem został rozwiązany w ciągu mniej niż jednego miesiąca przy użyciu interfejsu Face API, dzięki czemu zaoszczędzono miesiące programistycznej pracy. Kolejnym dosyć dobrze znanym wynalazkiem w tej dziedzinie jest Kinect, który wykorzystuje twarze graczy do ich rozróżniania podczas zabawy. Jeszcze inne zastosowanie tyczy się marketingu w postaci inteligentnych reklam w miejscach publicznych, które są obecnie w stanie rozpoznać płeć, pochodzenie etniczne oraz przybliżony wiek przechodniów i dzięki temu skierować do nich odpowiednią reklamę.

Analiza danych użytkownika jest jednymi z najważniejszych czynników związanych tworzeniem spersonalizowanych reklam. Teraz dodać do tego należy fakt, że aplikacje mogą monitorować emocje potencjalnych klientów - sprawdzać ich wyraz twarzy i wykryć w jakim są nastroju, lub jakie wrażenie wywiera na nich widziana treść. Reklamodawcy mogą wykorzystywać te dane - zarówno krótkoterminowe, jak i długoterminowe - w celu wyświetlania lepszych, bardziej spersonalizowanych reklam dla wszystkich. Poznanie upodobań i potrzeb staje się zatem prostsze i umożliwia lepsze dostosowanie produktu, aby spełniał oczekiwania konsumenta. To nie wszystko. Obecnie większość reklamodawców płaci stałą opłatę za każde wyświetlenie swojej reklamy przez użytkowników Internetu. System ten jednak nie mierzy, kto tak naprawdę daną reklamę zobaczył. Technologia rozpoznawania twarzy zmienia wszystko. Na podstawie reakcji użytkownika, można bowiem lepiej ocenić skuteczność danej kampanii.

Dane zgromadzone w ten sposób nie muszą być używane tylko w indywidualnych przypadkach. Można je zagregować i wykorzystać do analizy szerokich trendów rynkowych. Rozpoznawanie twarzy może być świetnym sposobem na obliczenie i kreślenie tzw. map miejsc szczególnego zainteresowania. Sklepy mogą używać różnych algorytmów identyfikacji twarzy, aby śledzić to, co klienci oglądają w ich sklepie i tym samym lepiej dobierać produkty ich ustawienie itd. Nic nie stoi na przeszkodzie, aby połączyć tę technologię z chatbotami w celu zaoferowania jak najbardziej wydajnej i spersonalizowanej obsługi klienta.

Można by jeszcze długo wymieniać, bo na tym wcale nie koniec. Biorąc pod uwagę relatywnie niskie koszty implementacji, rosnącą powszechność oraz niebywały potencjał i idące za nim możliwości wzrostu, rozsądne jest wzięcie tego tematu pod uwagę oraz dobranie profesjonalnej obsługi deweloperskiej. Zapraszamy do kontaktu i niezobowiązującej rozmowy o tym, jak coś co kiedyś uważano za sci-fi, teraz przerodzi się w realne zyski dla Twojej firmy.