Určení modelu detekce obličeje

V této příručce se dozvíte, jak zadat model detekce tváří pro službu Azure AI Face.

Služba Rozpoznávání tváře používá modely strojového učení k provádění operací s lidskými tvářemi na obrázcích. Stále vylepšujeme přesnost našich modelů na základě zpětné vazby zákazníků a pokroků ve výzkumu a tato vylepšení přinášíme jako aktualizace modelu. Vývojáři mají možnost určit, jakou verzi modelu rozpoznávání tváře chtějí použít; můžou zvolit model, který nejlépe vyhovuje případu použití.

Přečtěte si, jak určit model rozpoznávání tváře v určitých operacích tváří. Služba Rozpoznávání tváře používá rozpoznávání tváře pokaždé, když převede obrázek tváře na nějakou jinou formu dat.

Pokud si nejste jistí, jestli byste měli použít nejnovější model, přeskočte do části Vyhodnocení různých modelů a vyhodnoťte nový model a porovnejte výsledky pomocí aktuální datové sady.

Požadavky

Měli byste být obeznámeni s konceptem detekce tváří umělé inteligence. Pokud nejste, přečtěte si koncepční průvodce rozpoznáváním tváře nebo návody:

Vyhodnocení různých modelů

Různé modely detekce tváří jsou optimalizované pro různé úlohy. Přehled rozdílů najdete v následující tabulce.

Model Popis Poznámky k výkonu Atributy Značky
detection_01 Výchozí volba pro všechny operace detekce tváří. Není optimalizované pro malé, boční zobrazení nebo rozmazané tváře. Vrátí atributy hlavní tváře (pozice hlavy, věk, emoce atd.), pokud jsou zadané ve volání detekce. Vrátí orientační body tváře, pokud jsou zadané ve volání detect.
detection_02 Vydáno v květnu 2019 a volitelně dostupné ve všech operacích detekce tváří. Vylepšili jsme přesnost malých, bočních a rozmazaných tváří. Nevrací atributy tváře. Nevrací orientační body tváře.
detection_03 Vydáno v únoru 2021 a volitelně dostupné ve všech operacích detekce tváří. Dále se zlepšila přesnost, včetně menších tváří (64 × 64 pixelů) a otočených orientací obličeje. Vrátí atributy masky a pozice hlavy, pokud jsou zadány ve volání detect. Vrátí orientační body tváře, pokud jsou zadané ve volání detect.

Nejlepší způsob, jak porovnat výkon modelů detekce, je použít je u ukázkové datové sady. Doporučujeme volat rozhraní API pro rozpoznávání tváře na různých obrázcích, zejména na obrázcích mnoha tváří nebo tváří, které jsou obtížně vidět, pomocí jednotlivých modelů detekce. Věnujte pozornost počtu tváří, které každý model vrací.

Rozpoznávání tváří pomocí zadaného modelu

Detekce tváře najde ohraničující umístění lidských tváří a identifikuje jejich vizuální orientační body. Extrahuje funkce tváře a uloží je pro pozdější použití v operacích rozpoznávání .

Při použití rozhraní API pro rozpoznávání tváře můžete přiřadit verzi modelu pomocí parametru detectionModel . Dostupné hodnoty jsou:

  • detection_01
  • detection_02
  • detection_03

Adresa URL požadavku pro rozpoznávání tváře – Detekce rozhraní REST API bude vypadat takto:

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

Pokud používáte klientskou knihovnu, můžete ji detectionModel přiřadit předáním příslušného řetězce. Pokud ji necháte nepřiřazenou, rozhraní API použije výchozí verzi modelu (detection_01). Podívejte se na následující příklad kódu pro klientskou knihovnu .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");

Přidání tváře k osobě se zadaným modelem

Služba Rozpoznávání tváře může extrahovat data tváře z obrázku a přidružit je k objektu Person prostřednictvím rozhraní PersonGroup Person – Add Face API. V tomto volání rozhraní API můžete model detekce zadat stejným způsobem jako rozpoznávání tváře – Zjistit.

Podívejte se na následující příklad kódu pro klientskou knihovnu .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");

Tento kód vytvoří Skupinu PersonGroup s ID mypersongroupid a přidá do ní osobu . Pak přidá tvář této osobě pomocí detection_03 modelu. Pokud nezadáte parametr detectionModel , rozhraní API použije výchozí model detection_01.

Poznámka:

Nemusíte používat stejný model detekce pro všechny tváře v objektu Person a nemusíte používat stejný model detekce při zjišťování nových tváří k porovnání s objektem Person (například v rozhraní API pro identifikaci).

Přidání tváře do facelistu se zadaným modelem

Model detekce můžete zadat také při přidání tváře do existujícího objektu FaceList . Podívejte se na následující příklad kódu pro klientskou knihovnu .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");

Tento kód vytvoří volaný My face collection FaceList a přidá do něj tvář s modelemdetection_03. Pokud nezadáte parametr detectionModel , rozhraní API použije výchozí model detection_01.

Poznámka:

Pro všechny tváře v objektu FaceList nemusíte používat stejný model detekce a při zjišťování nových tváří k porovnání s objektem FaceList nemusíte používat stejný model detekce.

Další kroky

V tomto článku jste zjistili, jak určit model detekce, který se má použít s různými rozhraními API pro rozpoznávání tváře. Pak postupujte podle rychlého startu a začněte s detekcí a analýzou tváří.