Udostępnij przez


Wykrywanie twarzy, atrybuty i dane wejściowe

Uwaga

Dostęp do usługi rozpoznawania twarzy jest ograniczony na podstawie kryteriów kwalifikowalności i użycia w celu obsługi naszych zasad odpowiedzialnej sztucznej inteligencji. Usługa rozpoznawania twarzy jest dostępna tylko dla klientów i partnerów zarządzanych przez firmę Microsoft. Użyj formularza rejestracyjnego rozpoznawania twarzy, aby ubiegać się o dostęp. Aby uzyskać więcej informacji, zobacz stronę Ograniczony dostęp do twarzy.

Ważne

Atrybuty twarzy są przewidywane przez algorytmy statystyczne. Nie zawsze mogą być dokładne. Zachowaj ostrożność podczas podejmowania decyzji na podstawie danych atrybutów. Powstrzymaj się od używania tych atrybutów do ochrony przed fałszowaniem. Zamiast tego zalecamy użycie technologii rozpoznawania żywej twarzy. Aby uzyskać więcej informacji, zobacz Samouczek: wykrywanie żywotności twarzy.

W tym artykule wyjaśniono pojęcia dotyczące wykrywania twarzy i danych atrybutów twarzy. Wykrywanie twarzy to proces lokalizowania ludzkich twarzy na obrazie i opcjonalnie zwracania różnych rodzajów danych związanych z twarzą.

Używasz interfejsu API Detect do wykrywania twarzy na obrazie. Aby rozpocząć korzystanie z interfejsu API REST lub zestawu SDK klienta, postępuj zgodnie z przewodnikiem szybkiego startu usługi Face. Aby uzyskać bardziej szczegółowy przewodnik, zobacz Wywołaj interfejs API wykrywania.

Prostokąt twarzy

Każda wykryta twarz odpowiada polu faceRectangle w odpowiedzi. Jest to zestaw współrzędnych pikseli dla lewej, górnej, szerokości i wysokości wykrytej twarzy. Korzystając z tych współrzędnych, możesz uzyskać lokalizację i rozmiar twarzy. W odpowiedzi interfejsu API twarze są wyświetlane w kolejności od największej do najmniejszej.

Wypróbuj możliwości wykrywania twarzy szybko i łatwo, korzystając z usługi Azure Vision Studio.

Identyfikator twarzy

Identyfikator twarzy to unikatowy ciąg identyfikatora dla każdej wykrytej twarzy na obrazie. Funkcja Face ID wymaga zatwierdzenia ograniczonego dostępu, które można uzyskać, wypełniając formularz zgłoszeniowy. Aby uzyskać więcej informacji, zobacz stronę Ograniczony Dostęp interfejsu API rozpoznawania twarzy. Możesz zażądać rozpoznania twarzy w wywołaniu API Detect.

Cechy charakterystyczne twarzy

Punkty orientacyjne twarzy to zestaw łatwych do znalezienia punktów na twarzy, takich jak źrenice lub wierzchołek nosa. Domyślnie istnieje 27 wstępnie zdefiniowanych punktów charakterystycznych. Na poniższej ilustracji przedstawiono wszystkie 27 punktów:

Diagram twarzy z zaznaczonymi wszystkimi 27 punktami orientacyjnymi.

Współrzędne punktów są zwracane w jednostkach pikseli.

Model Detection_03 ma obecnie najdokładniejsze wykrywanie punktów orientacyjnych. Punkty orientacyjne oczu i źrenicy, które zwraca, są na tyle dokładne, by umożliwić śledzenie kierunku spojrzenia twarzy.

Atrybuty

Uwaga

Firma Microsoft ma wycofane lub ograniczone możliwości rozpoznawania twarzy, które mogą służyć do wnioskowania stanów emocjonalnych i atrybutów tożsamości, które, w przypadku nieprawidłowego użycia, mogą podlegać stereotypom, dyskryminacji lub niesprawiedliwej odmowy usług. Wycofane możliwości to emocje i płeć. Ograniczone możliwości to wiek, uśmiech, zarost, włosy i makijaż. Wyślij wiadomość e-mail do zespołu ds. rozpoznawania twarzy platformy Azure, jeśli masz odpowiedzialny przypadek użycia, który będzie korzystać z dowolnej z ograniczonych możliwości. Przeczytaj więcej na temat tej decyzji tutaj.

Atrybuty to zestaw cech, które można opcjonalnie wykryć za pomocą Detect API. Można wykryć następujące atrybuty:

  • Akcesoria: wskazuje, czy dana twarz ma akcesoria. Ten atrybut zwraca możliwe akcesoria, w tym czapki, okulary i maskę, z współczynnikiem ufności między zerem a jedynką dla każdego akcesorium.

  • Rozmycie: wskazuje rozmycie twarzy na obrazie. Ten atrybut zwraca wartość z zakresu od zera do jeden oraz nieformalną ocenę: niską, średnią lub wysoką.

  • Ekspozycja: wskazuje ekspozycję twarzy na obrazie. Ten atrybut zwraca wartość z zakresu od zera do jednej oraz nieformalną ocenę underExposure, goodExposure lub overExposure.

  • Okulary: wskazuje, czy dana twarz ma okulary. Możliwe wartości to NoGlasses, ReadingGlasses, Okulary przeciwsłoneczne i Gogle pływające.

  • Położenie głowy: wskazuje orientację twarzy w przestrzeni 3D. Ten atrybut jest opisany przez kąty obrotu, przechylenia i pochylenia w stopniach, które są zdefiniowane zgodnie z regułą prawej ręki. Kolejność trzech kątów to przechył-yaw-pochylenie, a wartości każdego kąta wahają się w zakresie od -180 stopni do +180 stopni. Orientacja 3D twarzy jest szacowana przez kąty roll, yaw i pitch w podanej kolejności. Zobacz następujący diagram mapowania kątów:

    Diagram głowy z osiami pochylenia, przechyłu i odchylenia oznaczonymi.

    Aby uzyskać więcej informacji na temat używania tych wartości, zobacz Use the HeadPose attribute (Używanie atrybutu HeadPose).

  • Maska: wskazuje, czy twarz nosi maskę. Ten atrybut zwraca możliwy typ maski i wartość logiczną wskazującą, czy nos i usta są pokryte.

  • Szum: wskazuje szum wizualny wykryty na obrazie twarzy. Ten atrybut zwraca wartość z zakresu od zera do jednego oraz nieformalną ocenę niskiej, średniej lub wysokiej.

  • Zasłonięcie: Wskazuje, czy istnieją obiekty zasłaniające części twarzy. Ten atrybut zwraca wartość logiczną dla eyeOccluded, foreheadOccluded i mouthOccluded.

  • QualityForRecognition: wskazuje ogólną jakość obrazu, aby określić, czy obraz używany w wykrywaniu jest wystarczającą jakością, aby podjąć próbę rozpoznawania twarzy. Wartość jest nieformalną oceną niskiej, średniej lub wysokiej. Zalecane jest używanie tylko obrazów o wysokiej jakości do rejestracji osób, a dla scenariuszy identyfikacyjnych jakość powinna być na poziomie średnim lub wyższym.

    Uwaga

    Dostępność każdego atrybutu zależy od określonego modelu wykrywania. Atrybut QualityForRecognition zależy również od modelu rozpoznawania, ponieważ jest on obecnie dostępny tylko w przypadku używania kombinacji modelu wykrywania detection_01 lub detection_03 oraz modelu rozpoznawania recognition_03 lub recognition_04.

Wymagania dotyczące danych wejściowych

Skorzystaj z poniższych wskazówek, aby upewnić się, że obrazy wejściowe dają najdokładniejsze wyniki wykrywania:

  • Obsługiwane formaty obrazów wejściowych to JPEG, PNG, GIF (pierwsza ramka), BMP.
  • Rozmiar pliku obrazu nie powinien być większy niż 6 MB.
  • Minimalny wykrywalny rozmiar twarzy to 36 x 36 pikseli na obrazie, który nie jest większy niż 1920 x 1080 pikseli. Obrazy o rozmiarze większym niż 1920 x 1080 pikseli mają proporcjonalnie większy minimalny rozmiar twarzy. Zmniejszenie rozmiaru twarzy może spowodować, że niektóre twarze nie zostaną wykryte, nawet jeśli są one większe niż minimalny rozmiar twarzy wykrywalny.
  • Maksymalny wykrywalny rozmiar twarzy to 4096 x 4096 pikseli.
  • Twarze poza zakresem rozmiaru od 36 x 36 do 4096 x 4096 pikseli nie zostaną wykryte.

Dane wejściowe z informacjami o orientacji

Niektóre obrazy wejściowe w formacie JPEG mogą zawierać informacje o orientacji w metadanych wymiennego formatu plików graficznych (EXIF). Jeśli orientacja EXIF jest dostępna, obrazy są automatycznie obracane do prawidłowej orientacji przed wysłaniem do wykrywania twarzy. Prostokąt twarzy, punkty orientacyjne i pozy głowy dla każdej wykrytej twarzy są szacowane na podstawie obróconego obrazu.

Aby prawidłowo wyświetlić prostokąt twarzy i punkty orientacyjne, należy upewnić się, że obraz został poprawnie obrócony. Większość narzędzi do wizualizacji obrazów automatycznie obraca obraz zgodnie z orientacją EXIF domyślnie. W przypadku innych narzędzi może być konieczne zastosowanie rotacji przy użyciu własnego kodu. W poniższych przykładach pokazano prostokąt twarzy na obróconym obrazie (po lewej) i nieobróconym obrazie (po prawej).

Zrzut ekranu przedstawiający dwa obrazy twarzy z rotacją i bez jej obrotu.

Dane wejściowe wideo

Jeśli wykrywasz twarze ze strumienia wideo, możesz poprawić wydajność, dostosowując niektóre ustawienia w kamerze wideo:

  • Smoothing: Wiele kamer wideo stosuje efekt wygładzenia. Należy wyłączyć tę opcję, jeśli to możliwe, ponieważ tworzy rozmycie między ramkami i zmniejsza przejrzystość.

  • Szybkość migawki: szybsza szybkość migawki zmniejsza ilość ruchu między ramkami i sprawia, że każda ramka jest jaśniejsza. Zalecamy szybkość migawki 1/60 sekundy lub szybciej.

  • Kąt migawki: Niektóre kamery określają kąt migawki zamiast czasu otwarcia migawki. Należy użyć dolnego kąta migawki, jeśli to możliwe, co powoduje jaśniejsze klatki wideo.

    Uwaga

    Matryca aparatu z mniejszym kątem migawki otrzymuje mniej światła w każdej klatce, więc obraz jest ciemniejszy. Musisz określić odpowiedni poziom do użycia.

Następny krok

Teraz, gdy znasz już pojęcia dotyczące wykrywania twarzy, dowiedz się, jak napisać skrypt, który wykrywa twarze na danym obrazie.