Określanie modelu wykrywania twarzy

W tym przewodniku przedstawiono sposób określania modelu wykrywania twarzy dla usługi rozpoznawania twarzy platformy Azure.

Usługa rozpoznawania twarzy używa modeli uczenia maszynowego do wykonywania operacji na 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 mają możliwość określenia, której wersji modelu wykrywania twarzy chcą użyć; mogą wybrać model, który najlepiej pasuje do ich przypadku użycia.

Przeczytaj, aby dowiedzieć się, jak określić model wykrywania twarzy w niektórych operacjach rozpoznawania twarzy. Usługa rozpoznawania twarzy używa wykrywania twarzy za każdym razem, gdy konwertuje obraz twarzy na inną formę danych.

Jeśli nie masz pewności, czy używasz najnowszego modelu, przejdź do sekcji Ocena różnych modeli , aby ocenić nowy model i porównać wyniki przy użyciu bieżącego zestawu danych.

Wymagania wstępne

Należy zapoznać się z koncepcją wykrywania twarzy sztucznej inteligencji. Jeśli nie jesteś, zapoznaj się z przewodnikiem koncepcyjnym dotyczącym wykrywania twarzy lub przewodnikiem z instrukcjami:

Ocena różnych modeli

Różne modele wykrywania twarzy są zoptymalizowane pod kątem różnych zadań. Zapoznaj się z poniższą tabelą, aby zapoznać się z omówieniem różnic.

Model opis Uwagi dotyczące wydajności Atrybuty Punkty orientacyjne
detection_01 Domyślny wybór dla wszystkich operacji wykrywania twarzy. Nie jest zoptymalizowany pod kątem małych, bocznych lub rozmytych twarzy. Zwraca główne atrybuty twarzy (pozy głowy, wiek, emocje itd.), jeśli są określone w wywołaniu wykrywania. Zwraca punkty orientacyjne twarzy, jeśli zostały określone w wywołaniu wykrywania.
detection_02 Wydana w maju 2019 r. i dostępna opcjonalnie we wszystkich operacjach wykrywania twarzy. Zwiększona dokładność na małych, bocznych i rozmytych twarzach. Nie zwraca atrybutów twarzy. Nie zwraca punktów orientacyjnych twarzy.
detection_03 Wydana w lutym 2021 r. i dostępna opcjonalnie we wszystkich operacjach wykrywania twarzy. Dodatkowo zwiększona dokładność, w tym na mniejszych twarzach (64x64 pikseli) i obróconych orientacji twarzy. Zwraca atrybuty maski i pozy głowy, jeśli są określone w wywołaniu wykrywania. Zwraca punkty orientacyjne twarzy, jeśli zostały określone w wywołaniu wykrywania.

Najlepszym sposobem porównania wydajności modeli wykrywania jest użycie ich w przykładowym zestawie danych. Zalecamy wywoływanie interfejsu API rozpoznawania twarzy — wykrywanie na różnych obrazach, zwłaszcza obrazów wielu twarzy lub twarzy, które są trudne do zobaczenia, przy użyciu każdego modelu wykrywania. Zwróć uwagę na liczbę twarzy zwracanych przez każdy model.

Wykrywanie twarzy przy użyciu określonego modelu

Wykrywanie twarzy znajduje lokalizacje pola ograniczenia ludzkich twarzy i identyfikuje ich wizualne elementy krajobrazu. Wyodrębnia ona funkcje twarzy i przechowuje je do późniejszego użycia w operacjach rozpoznawania .

W przypadku korzystania z interfejsu API rozpoznawania twarzy — wykrywanie można przypisać wersję modelu za pomocą parametru detectionModel . Dostępne wartości to:

  • detection_01
  • detection_02
  • detection_03

Adres URL żądania interfejsu API REST wykrywania twarzy będzie wyglądać następująco:

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

Jeśli używasz biblioteki klienta, możesz przypisać jej wartość detectionModel , przekazując odpowiedni ciąg. Jeśli pozostawisz go bez przypisania, interfejs API będzie używać domyślnej wersji modelu (detection_01). 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: false, returnFaceLandmarks: false, recognitionModel: "recognition_04", detectionModel: "detection_03");

Dodawanie twarzy do osoby z określonym modelem

Usługa rozpoznawania twarzy może wyodrębnić dane twarzy z obrazu i skojarzyć je z obiektem PersonGroup Za pomocą interfejsu API PersonGroup Person — Dodawanie twarzy. W tym wywołaniu interfejsu API można określić model wykrywania w taki sam sposób jak w funkcji Face - Detect.

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

// Create a PersonGroup and add a person with face detected by "detection_03" model
string personGroupId = "mypersongroupid";
await faceClient.PersonGroup.CreateAsync(personGroupId, "My Person Group Name", recognitionModel: "recognition_04");

string personId = (await faceClient.PersonGroupPerson.CreateAsync(personGroupId, "My Person Name")).PersonId;

string imageUrl = "https://news.microsoft.com/ceo/assets/photos/06_web.jpg";
await client.PersonGroupPerson.AddFaceFromUrlAsync(personGroupId, personId, imageUrl, detectionModel: "detection_03");

Ten kod tworzy grupę PersonGroup o identyfikatorze mypersongroupid i dodaje do niego osobę. Następnie dodaje do tej osoby twarz przy użyciu detection_03 modelu. Jeśli nie określisz parametru detectionModel, interfejs API użyje modelu domyślnego . detection_01

Uwaga

Nie musisz używać tego samego modelu wykrywania dla wszystkich twarzy w obiekcie Person i nie musisz używać tego samego modelu wykrywania podczas wykrywania nowych twarzy do porównania z obiektem Osoba (na przykład interfejs API rozpoznawania twarzy — identyfikowanie ).

Dodawanie twarzy do listy FaceList z określonym modelem

Można również określić model wykrywania podczas dodawania twarzy do istniejącego obiektu FaceList . Zapoznaj się z poniższym przykładem kodu dla biblioteki klienta platformy .NET.

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

string imageUrl = "https://news.microsoft.com/ceo/assets/photos/06_web.jpg";
await client.FaceList.AddFaceFromUrlAsync(faceListId, imageUrl, detectionModel: "detection_03");

Ten kod tworzy wywołaną aplikację FaceList i dodaje do niej twarz z modelemdetection_03.My face collection Jeśli nie określisz parametru detectionModel, interfejs API użyje modelu domyślnego . detection_01

Uwaga

Nie musisz używać tego samego modelu wykrywania dla wszystkich twarzy w obiekcie FaceList i nie musisz używać tego samego modelu wykrywania podczas wykrywania nowych twarzy w celu porównania z obiektem FaceList .

Następne kroki

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