Określanie modelu rozpoznawania twarzy

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 do wprowadzania rozpoznawania twarzy, aby ubiegać się o dostęp. Aby uzyskać więcej informacji, zobacz stronę Dostęp ograniczony do twarzy.

W tym przewodniku przedstawiono sposób określania modelu rozpoznawania twarzy na potrzeby wykrywania, identyfikacji i wyszukiwania podobieństwa twarzy przy użyciu usługi rozpoznawania twarzy platformy Azure.

Usługa rozpoznawania twarzy używa modeli uczenia maszynowego do wykonywania operacji na widocznych ludzkich twarzach na obrazach. Nadal zwiększamy dokładność naszych modeli na podstawie opinii klientów i postępów w badaniach, a my dostarczamy te ulepszenia jako aktualizacje modelu. Deweloperzy mogą określić, która wersja modelu rozpoznawania twarzy ma być używana, wybierając model, który najlepiej pasuje do ich przypadku użycia.

Zgodność modelu

Usługa rozpoznawania twarzy azure AI ma cztery dostępne modele rozpoznawania. Modele recognition_01 (opublikowane w 2017 r.), recognition_02 (opublikowane w 2019 r.) i recognition_03 (opublikowane w 2020 r.), są stale obsługiwane w celu zapewnienia zgodności z poprzednimi wersjami dla klientów korzystających z bibliotek FaceLists lub PersonGrouputworzonych przy użyciu tych modeli. Funkcja FaceList lub PersonGroup zawsze używa utworzonego przez nią modelu rozpoznawania, a nowe twarze stają się skojarzone z tym modelem po dodaniu. Nie można tego zmienić po utworzeniu, a klienci muszą używać odpowiedniego modelu rozpoznawania z odpowiednimi aplikacjami FaceList lub PersonGroup.

Możesz przejść do późniejszych modeli rozpoznawania we własnej wygody; należy jednak utworzyć nowe grupy FaceLists i PersonGroups z wybranym modelem rozpoznawania.

Model recognition_04 (opublikowany w 2021 r.) jest obecnie najbardziej dokładnym modelem. Jeśli jesteś nowym klientem, zalecamy użycie tego modelu. Recognition_04 zapewnia lepszą dokładność zarówno dla porównań podobieństw, jak i porównań do osób. Recognition_04 poprawia rozpoznawanie zarejestrowanych użytkowników ubranych w osłony twarzy (maski chirurgiczne, maski N95, maski tkaniny). Teraz możesz tworzyć bezpieczne i bezproblemowe środowiska użytkownika korzystające z najnowszego modelu detection_03 w celu wykrycia, czy zarejestrowany użytkownik ma na sobie osłonę twarzy. Następnie możesz użyć najnowszego modelu recognition_04 do rozpoznawania ich tożsamości. Każdy model działa niezależnie od innych, a próg ufności ustawiony dla jednego modelu nie ma być porównywany w innych modelach rozpoznawania.

Przeczytaj, aby dowiedzieć się, jak określić wybrany model w różnych operacjach rozpoznawania twarzy, unikając konfliktów modelu. Jeśli jesteś użytkownikiem zaawansowanym i chcesz określić, czy chcesz przełączyć się na najnowszy model, przejdź do sekcji Ocena różnych modeli . Możesz ocenić nowy model i porównać wyniki przy użyciu bieżącego zestawu danych.

Wymagania wstępne

Należy zapoznać się z pojęciami dotyczącymi wykrywania i identyfikacji twarzy sztucznej inteligencji. Jeśli nie jesteś, najpierw zapoznaj się z następującymi przewodnikami:

Wykrywanie twarzy przy użyciu określonego modelu

Wykrywanie twarzy identyfikuje wizualne punkty orientacyjne ludzkich twarzy i znajduje ich lokalizacje pola ograniczenia. Wyodrębnia również funkcje twarzy i przechowuje je tymczasowo przez maksymalnie 24 godziny do użycia w identyfikacji. Wszystkie te informacje zawierają reprezentację jednej twarzy.

Model rozpoznawania jest używany podczas wyodrębniania funkcji twarzy, dzięki czemu można określić wersję modelu podczas wykonywania operacji Wykrywania.

W przypadku korzystania z interfejsu API rozpoznawania twarzy — wykrywanie przypisz wersję modelu za pomocą parametru recognitionModel . Dostępne wartości to:

  • recognition_01
  • recognition_02
  • recognition_03
  • recognition_04

Opcjonalnie można określić parametr returnRecognitionModel (wartość domyślna false), aby wskazać, czy model rozpoznawania powinien zostać zwrócony w odpowiedzi. Dlatego adres URL żądania interfejsu API REST rozpoznawania twarzy — wykrywanie będzie wyglądać następująco:

https://westus.api.cognitive.microsoft.com/face/v1.0/detect[?returnFaceId][&returnFaceLandmarks][&returnFaceAttributes][&recognitionModel][&returnRecognitionModel]&subscription-key=<Subscription key>

Jeśli używasz biblioteki klienta, możesz przypisać jej wartość recognitionModel , przekazując ciąg reprezentujący wersję. Jeśli pozostawisz nieprzypisane, zostanie użyta domyślna wersja recognition_01 modelu. Zapoznaj się z poniższym przykładem kodu dla biblioteki klienta platformy .NET.

string imageUrl = "https://news.microsoft.com/ceo/assets/photos/06_web.jpg";
var faces = await faceClient.Face.DetectWithUrlAsync(url: imageUrl, returnFaceId: true, returnFaceLandmarks: true, recognitionModel: "recognition_01", returnRecognitionModel: true);

Uwaga

Parametr returnFaceId należy ustawić na true , aby umożliwić obsługę scenariuszy rozpoznawania twarzy w kolejnych krokach.

Identyfikowanie twarzy przy użyciu określonego modelu

Usługa rozpoznawania twarzy może wyodrębniać dane twarzy z obrazu i kojarzyć je z obiektem Person (na przykład za pomocą wywołania Interfejsu API dodawania twarzy ), a wiele obiektów PersonGroup może być przechowywanych razem w grupie PersonGroup. Następnie można porównać nową twarz z grupą PersonGroup (z wywołaniem Face - Identify ), a pasującą osobę w tej grupie można zidentyfikować.

Grupa PersonGroup powinna mieć jeden unikatowy model rozpoznawania dla wszystkich osóbi można to określić przy użyciu parametru recognitionModel podczas tworzenia grupy (PersonGroup — Tworzenie lub LargePersonGroup — Tworzenie). Jeśli nie określisz tego parametru, zostanie użyty oryginalny recognition_01 model. Grupa będzie zawsze używać utworzonego przez nią modelu rozpoznawania, a nowe twarze zostaną skojarzone z tym modelem po dodaniu do niego. Nie można tego zmienić po utworzeniu grupy. Aby zobaczyć, z jakim modelem skonfigurowano grupę PersonGroup, użyj parametru PersonGroup — Pobierz interfejs API z parametrem returnRecognitionModel ustawionym na wartość true.

Zapoznaj się z poniższym przykładem kodu dla biblioteki klienta platformy .NET.

// Create an empty PersonGroup with "recognition_04" model
string personGroupId = "mypersongroupid";
await faceClient.PersonGroup.CreateAsync(personGroupId, "My Person Group Name", recognitionModel: "recognition_04");

W tym kodzie zostanie utworzona grupa PersonGroup z identyfikatorem mypersongroupid i skonfigurowana do wyodrębniania funkcji twarzy przy użyciu modelu recognition_04 .

W związku z tym należy określić, który model ma być używany podczas wykrywania twarzy do porównania z tą grupą PersonGroup (za pośrednictwem interfejsu API rozpoznawania twarzy — wykrywanie ). Używany model powinien być zawsze zgodny z konfiguracją obiektu PersonGroup. W przeciwnym razie operacja zakończy się niepowodzeniem z powodu niezgodnych modeli.

Nie ma żadnych zmian w interfejsie API rozpoznawania twarzy — należy określić tylko wersję modelu w wykrywaniu.

Znajdowanie podobnych twarzy przy użyciu określonego modelu

Można również określić model rozpoznawania dla wyszukiwania podobieństwa. Wersję recognitionModel modelu można przypisać za pomocą polecenia podczas tworzenia listy FaceList za pomocą funkcji FaceList — tworzenie interfejsu API lub largeFaceList — tworzenie. Jeśli nie określisz tego parametru recognition_01 , model jest używany domyślnie. Aplikacja FaceList zawsze będzie używać utworzonego przez nią modelu rozpoznawania, a nowe twarze staną się skojarzone z tym modelem po dodaniu ich do listy. Nie można zmienić tego po utworzeniu. Aby zobaczyć, z jakim modelem skonfigurowano aplikację FaceList , użyj interfejsu API FaceList — Pobierz interfejs API z parametrem returnRecognitionModel ustawionym na wartość true.

Zapoznaj się z poniższym przykładem kodu dla biblioteki klienta platformy .NET.

await faceClient.FaceList.CreateAsync(faceListId, "My face collection", recognitionModel: "recognition_04");

Ten kod tworzy bibliotekę FaceList o nazwie My face collection, używając modelu recognition_04 na potrzeby wyodrębniania funkcji. Podczas wyszukiwania tej listy FaceList pod kątem podobnych twarzy do nowej wykrytej twarzy ta twarz musi zostać wykryta (Face - Detect) przy użyciu modelu recognition_04 . Podobnie jak w poprzedniej sekcji, model musi być spójny.

Nie ma żadnych zmian w interfejsie API Rozpoznawanie twarzy — znajdowanie podobnych interfejsów API; określasz tylko wersję modelu w wykrywaniu.

Weryfikowanie twarzy przy użyciu określonego modelu

Interfejs API rozpoznawania twarzy — weryfikowanie sprawdza, czy dwie twarze należą do tej samej osoby. Nie ma żadnych zmian w interfejsie API weryfikacji w odniesieniu do modeli rozpoznawania, ale można porównać tylko twarze, które zostały wykryte z tym samym modelem.

Ocena różnych modeli

Jeśli chcesz porównać wydajność różnych modeli rozpoznawania na własnych danych, musisz:

  1. Utwórz cztery grupy PersonGroupprzy użyciu odpowiednio recognition_01, recognition_02, recognition_03 i recognition_04 .
  2. Użyj danych obrazu, aby wykryć twarze i zarejestrować je w grupie Persons w tych czterech grupach PersonGroup.
  3. Przeszkolij grupę PersonGroupprzy użyciu interfejsu API PersonGroup — Trenowanie.
  4. Testowanie za pomocą funkcji Rozpoznawanie twarzy — zidentyfikuj wszystkie cztery grupy PersonGroupi porównaj wyniki.

Jeśli zwykle określasz próg ufności (wartość z zakresu od zera do jednej, która określa, jak pewna pewność, że model musi identyfikować twarz), może być konieczne użycie różnych progów dla różnych modeli. Próg dla jednego modelu nie jest przeznaczony do udostępniania innym i niekoniecznie daje te same wyniki.

Następne kroki

W tym artykule przedstawiono sposób określania modelu rozpoznawania do użycia z różnymi interfejsami API usługi rozpoznawania twarzy. Następnie postępuj zgodnie z przewodnikiem Szybki start, aby rozpocząć wykrywanie twarzy.