Udostępnij za pośrednictwem


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 wykrywania 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 dla interfejsu API REST detect będzie wyglądać następująco:

https://westus.api.cognitive.microsoft.com/face/v1.0/detect?detectionModel={detectionModel}&recognitionModel={recognitionModel}&returnFaceId={returnFaceId}&returnFaceAttributes={returnFaceAttributes}&returnFaceLandmarks={returnFaceLandmarks}&returnRecognitionModel={returnRecognitionModel}&faceIdTimeToLive={faceIdTimeToLive}

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://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
var response = await faceClient.DetectAsync(new Uri(imageUrl), FaceDetectionModel.Detection03, FaceRecognitionModel.Recognition04, returnFaceId: true, returnFaceLandmarks: true, returnRecognitionModel: true);
var faces = response.Value;

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ębnić dane twarzy z obrazu i skojarzyć je z obiektem Osoba (na przykład za pomocą wywołania interfejsu API dodawania twarzy osoby osoby), a wiele obiektów osoby może być przechowywanych razem w grupie PersonGroup. Następnie można porównać nową twarz z grupą PersonGroup (z wywołaniem Grupy identyfikowania od osób ) i można zidentyfikować zgodną osobę w tej grupie.

Grupa PersonGroup powinna mieć jeden unikatowy model rozpoznawania dla wszystkich osób. Można to określić przy użyciu parametru recognitionModel podczas tworzenia grupy (Utwórz grupę osób lub Utwórz grupę dużych osób). 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 interfejsu API pobierz grupę osób z parametrem returnRecognitionModel ustawionym na wartość true.

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

// Create an empty PersonGroup with "recognition_04" model
string personGroupId = "mypersongroupid";
using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["name"] = "My Person Group Name", ["recognitionModel"] = "recognition_04" }))))
{
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    await httpClient.PutAsync($"{ENDPOINT}/face/v1.0/persongroups/{personGroupId}", content);
}

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 wykrywania). 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 identyfikowania z grupy osób. Wystarczy określić 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. Możesz przypisać wersję recognitionModel modelu za pomocą polecenia podczas tworzenia listy twarzy za pomocą interfejsu API tworzenia listy twarzy lub tworzenia dużej listy twarzy. 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 pobierania listy twarzy z parametrem returnRecognitionModel ustawionym na wartość true.

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

using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["name"] = "My face collection", ["recognitionModel"] = "recognition_04" }))))
{
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    await httpClient.PutAsync($"{ENDPOINT}/face/v1.0/facelists/{faceListId}", content);
}

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 (Wykryj) przy użyciu modelu recognition_04 . Podobnie jak w poprzedniej sekcji, model musi być spójny.

Nie ma żadnych zmian w interfejsie API Znajdź podobne ; określasz tylko wersję modelu w wykrywaniu.

Weryfikowanie twarzy przy użyciu określonego modelu

Interfejs API Verify Face To Face 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. Trenowanie grupy PersonGroupprzy użyciu interfejsu API trenowania grupy osób.
  4. Przetestuj przy użyciu funkcji Identyfikowanie z grupy osób we wszystkich czterech grupach 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.