Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.


12.05.2022

Odszyfrowanie historii

Z inicjatywy prezesa IPN, dr. Karola Nawrockiego, powstało Biuro Nowych Technologii. Jego...
01.04.2022

Program partnerski

NGAGEFirma NFON, ogólnoeuropejski dostawca komunikacji głosowej w chmurze, ogłosił...
01.04.2022

SI w TFI PZU

Na platformie do inwestowania inPZU działa już nowa metoda identyfikacji tożsamości...
01.04.2022

Kooperacja w chmurze

To oparta na stworzonej przez NetApp technologii ONTAP i w pełni zarządzana przez...
01.04.2022

Nowe laptopy od Dynabook

Dynabook wprowadza do swojej oferty dwa laptopy z procesorami Intel Core 12. generacji,...
01.04.2022

Ryzen do stacji roboczych

AMD przedstawił nową gamę procesorów Ryzen Threadripper PRO 5000 serii WX.
31.03.2022

Serwery dla MŚP

Firma Lenovo wprowadziła nowe rozwiązania w zakresie infrastruktury IT Future Ready,...
31.03.2022

Innowacyjny kontroler SSD

Microchip zaprezentował nowe kontrolery SSD, które umożliwią obsługę napędów o pojemności...
31.03.2022

Wydajny jak Brother

Brother dodał do swojej oferty trzy nowe, atramentowe urządzenia wielofunkcyjne, które...

Rozpoznawanie twarzy z Azure Cognitive Services

Data publikacji: 03-03-2022 Autor: Marcin Szeliga

W poprzednim artykule poznaliśmy zasadę działania używanych do analizy obrazów konwolucyjnych sieci neuronowych. Nauczyliśmy się też analizować obrazy przy użyciu usługi Cognitive Services. Celem tego artykułu jest przedstawienie dodatkowych funkcjonalności usługi analizy obrazów w zakresie rozpoznawania twarzy i identyfikowania osób.

 

Rozpoznanie twarzy polega na zidentyfikowaniu widocznych na zdjęciu osób oraz ich cech charakterystycznych takich jak wiek, płeć, emocje i pozy. Modele rozpoznawania twarzy są stosowane w wielu dziedzinach, na przykład w medycynie do wspierania diagnostyki; na lotniskach do monitorowania pasażerów czy w ochronie do automatycznego identyfikowania pracowników. Wchodząca w skład usług poznawczych (ang. Cognitive Services) usługa rozpoznawania twarzy (Face) pozwala m.in. rozpoznawać twarze widocznych na zdjęciach osób.


> Usługa wykrywania i rozpoznawania twarzy


Wykrycie i porównywanie twarzy jest wyjątkowo trudnym zadaniem. Już samo zlokalizowanie widocznych na różnych tłach twarzy może być problematyczne tym bardziej, że zdjęcia mogą być robione z różnych ujęć, ukazując inną część twarzy. Ponadto jej fragmenty mogą być zasłonięte różnymi przedmiotami, takimi jak okulary czy maseczka (trzecia i czwarta wersja modelu używanego przez tę usługę modelu identyfikowania twarzy potrafią analizować częściowo zasłonięte twarze). Musimy też uwzględnić fakt, że nasz wygląd zmienia się, kiedy się, uśmiechamy, mrużymy oczy, otwieramy usta czy przechylamy głowę. Dlatego usługa rozpoznawania obrazów identyfikuje 27 charakterystycznych cech, takich jak nos, wargi, uszy, oczy, i na ich podstawie wykrywa i rozpoznaje twarze. Do skorzystania z omawianej usługi potrzebować będziemy subskrypcji Azure. Aby utworzyć usługę Computer Vision, należy:

 

  • zalogować się do portalu Azure (portal.azure.com) na konto Microsoftu, do którego podpięta jest subskrypcja Azure;
  • kliknąć przycisk Create a resource;•w polu wyszukiwania wpisać „face” i klinąć Create;
  • odpowiadając na pytania kreatora:

 –utworzyć grupę zasobów, do której trafi tworzona usługa,
 – wybrać region, w którym zostanie ona utworzona (np. West Europe),
– podać nazwę usługi (ta nazwa stanie się częścią adresu usługi, więc musi być unikatowa – można użyć w niej swoich inicjałów i bieżącej daty),
– wybrać darmowy plan F0 (usługi poznawcze dostępne są jako zbiorcza usługa Cognitive Services lub konkretne usługi, takie jak Computer Vision.  Pierwsza wersja umożliwia korzystanie z różnych usług poznawczych, w tym usługi Computer Vision, ale nie zawiera darmowego planu);

  • wybrać Utwórz usługę Face.


Po chwili zostanie utworzony zasób, do którego należy przejść. W sekcji Over­view znajdziemy linki do dokumentacji i przykładów, ale może nadal brakować w niej linku do konsoli WWW pozwalającej poznać i przetestować interfejs REST API usługi. W czasie powstawania artykułu konsola ta była dostępna pod adresem: bit.ly/3uKVGdV – wyświetl ją w osobnej zakładce przeglądarki.


Usługa Face pozwala wykrywać i rozpoznawać twarze. Do wykrywania twarzy służy metoda Detect. Za identyfikację odpowiadają metody Identity, FindSimiliar, Verify i Group. Przyjrzyjmy się metodzie Detect. Żeby ją przetestować, należy:

 

 

  • wybrać region, w którym utworzyliśmy zasób Face;
  • jako nazwę zasobu możemy wybrać nazwę regionu;
  • za pomocą pokazanych na rys. 1 parametrów możemy m.in. wybrać użyty do wykrycia twarzy model i określić zwracane przez ten model informacje;
  • klucz należy skopiować z zakładki Keys and Endpoints usługi Face. Możemy użyć dowolnego z dwóch widocznych na tej zakładce kluczy;
  • usługa Face pozwala przekazać analizowane zdjęcie w postaci binarnej lub jako link do publicznie dostępnego w internecie zdjęcia.


Po kliknięciu przycisku Send przygotowane w ten sposób żądanie POST zostanie wysłane. W odpowiedzi powinniśmy dostać komunikat http 200 zawierający dokument JSON z informacjami o wykrytych na zdjęciu twarzach. Zwrócone przez model wykrywania twarzy dane mogą być następnie użyte do ich rozpoznawania. W tym miejscu warto podkreślić, że Microsoft w żadnym wypadku nie przechowuje wykrytych twarzy, a jedynie ich cechy charakterystyczne. Należy również dodać, że firma Microsoft przywiązuje dużą wagę do etycznego stosowania sztucznej inteligencji i przetwarzania poufnych danych, w tym danych biometrycznych. Zapoznać się z dokumentami opisującymi zasady przetwarzania danych biometrycznych przez firmę Microsoft można pod tym adresem: bit.ly/3gLJwcI, a z wytycznymi dotyczącymi odpowiedzialnego używania usługi przetwarzania obrazów tutaj: bit.ly/3uM3Hzt.


> Rozpoznawanie twarzy


Usługi poznawcze, w tym usługa wykrywania i rozpoznawania twarzy, dostępne są za pośrednictwem interfejsu REST API. Jest on bardzo uniwersalny, ale wymaga samodzielnego konstruowania odpowiednich pakietów protokołu HTTP i przetwarzania zwracanych przez usługę dokumentów JSON. Znacznie łatwiej jest używać tych usług, korzystając z bibliotek SDK wybranego języka programowania, takiego jak JavaScript, C# lub Python. Pozwalają one tworzyć klientów wybranej usługi i korzystać z ich metod do wysyłania usłudze automatycznie przygotowywanych żądań. Przetwarzanie otrzymanych wyników również jest łatwiejsze, bo trafiają one do nas w postaci kolekcji obiektów. Jest to szczególnie ważne w wypadku rozpoznawania twarzy, bo funkcjonalność ta wymaga zarządzania dużą liczbą różnych obiektów. W dalszej części artykułu będziemy się posługiwać SDK usługi Face dla języka Python. Poniższy fragment kodu importuje potrzebne nam biblioteki i tworzy klienta usługi Face:


import os
from azure.cognitiveservices.vision.face import FaceClient
from azure.cognitiveservices.vision.face.models import TrainingStatusType
from msrest.authentication import CognitiveServicesCredentials
subscription_key = <Klucz usługi>
endpoint = "https://<nazwa usługi>.cognitiveservices.azure.com/"
large_person_group_id = "business"
face_client = FaceClient(endpoint, CognitiveServicesCredentials(subscription_key))


Zdjęcia twarzy


Wykryte na zdjęciach twarze zapisywane są na listach typu FaceList lub LargeFaceList. Pozwala to m.in. na rozpoznawanie podobnych twarzy. Procedura ich rozpoznawania przebiega następująco. W pierwszej kolejności należy wykryć twarz osoby, którą chcemy znaleźć na innych zdjęciach. Użyte do tego celu zdjęcie powinno zawierać twarz jednej osoby. Zdjęcie to możemy przekazać w postaci binarnej lub poprzez odczytany adres zdjęcia. W poniższym przykładzie adres ten odczytany został z pliku tekstowego, a do wykrycia i rozpoznania twarzy użyte zostały najnowsze wersje modeli predykcyjnych.


face_to_find_similars_url = open('faces/person1.txt').readlines()[0]
person1_face_id = face_client.face.detect_with_url(url=face_to_find_similars_url,`
detection_model='detection_03', recognition_model='recognition_04', `
return_face_id=True)[0].face_id

 

[...]

 

Pracownik naukowy Wyższej Szkoły Bankowej w Poznaniu Wydział Zamiejscowy w Chorzowie, jest autorem książek poświęconych analizie danych i posiada tytuł Microsoft Most Valuable Professional.

Artykuł pochodzi z miesięcznika: IT Professional

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"