Určení modelu detekce obličeje
Tato příručka ukazuje, jak zadat model rozpoznávání tváře pro službu Azure Face Service.
Služba Face používá modely strojového učení k provádění operací s lidskými tvářemi na obrázcích. Přesnost našich modelů dál vylepšujeme na základě zpětné vazby od zákazníků a pokroků ve výzkumu a tato vylepšení poskytujeme jako aktualizace modelů. Vývojáři mají možnost určit, kterou verzi modelu rozpoznávání tváře by chtěli použít. Mohou zvolit model, který nejlépe vyhovuje jejich případu použití.
V tomto tématu se dozvíte, jak určit model rozpoznávání tváře v určitých operacích s tváří. Služba Rozpoznávání tváře používá rozpoznávání tváře vždy, 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 k části Vyhodnocení různých modelů a vyhodnoťte nový model a porovnejte výsledky s použitím aktuální datové sady.
Požadavky
Měli byste být obeznámeni s konceptem detekce obličeje pomocí AI. Pokud ne, projděte si koncepčního průvodce detekcí tváří nebo průvodce postupy:
Rozpoznávání tváří pomocí zadaného modelu
Detekce obličeje vyhledá umístění ohraničující rámeček 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í.
Když použijete rozhraní API [Face - Detect,] můžete verzi modelu přiřadit pomocí detectionModel parametru . Dostupné hodnoty jsou:
detection_01detection_02detection_03
Adresa URL požadavku pro [face - detect REST API] bude vypadat takhle:
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 hodnotu přiřadit detectionModel předáním příslušného řetězce. Pokud ho necháte nepřiřazený, 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(imageUrl, false, 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 o tvářích z obrázku a přidružit je k objektu Person prostřednictvím rozhraní API PersonGroup Person – Add Face. V tomto volání rozhraní API můžete určit model detekce stejným způsobem jako v části Rozpoznávání tváře [– Rozpoznat.]
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á k této osobě tvář 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 při rozpoznávání nových tváří nemusíte používat stejný model detekce, abyste ho mohli porovnat s objektem Person (například v rozhraní API [Face - Identify).]
Přidání tváře do seznamu facelist se zadaným modelem
Model detekce můžete zadat také při přidává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ří ovládací prvek FaceList s názvem My face collection a přidá do něj tvář s detection_03 modelem. Pokud nezadáte parametr detectionModel, rozhraní API použije výchozí model detection_01 .
Poznámka
Stejný model detekce nemusíte používat pro všechny tváře v objektu FaceList a stejný model detekce nemusíte používat při rozpoznávání nových tváří, abyste je mohli porovnat s objektem FaceList.
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.
| detection_01 | detection_02 | detection_03 |
|---|---|---|
| Výchozí volba pro všechny operace detekce tváří. | Vydáno v květnu 2019 a volitelně ve všech operacích detekce tváří. | Vydaná v únoru 2021 a volitelně ve všech operacích detekce tváří. |
| Není optimalizované pro malé tváře, boční zobrazení nebo rozmazané tváře. | Vyšší přesnost malých ploch, bočního zobrazení a rozmazaných tváří | Vyšší přesnost, včetně menších tváří (64 × 64 pixelů) a otočení orientace tváře. |
| Vrátí hlavní atributy tváře (pozice hlavy, věk, emoce atd.), pokud jsou zadány v volání detect. | Nevrací atributy tváře. | 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. | Nevrací orientační body tváře. | 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 face - detect na různých obrázcích, zejména na obrázcích mnoha tváří nebo tváří, které jsou obtížně vidět, a to pomocí každého detekčního modelu. Věnujte pozornost počtu tváří, které každý model vrací.
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. Dále postupujte podle rychlého startu a řiďte se detekcí a analýzou tváří.