Určení modelu rozpoznávání obličeje

Tato příručka vám ukáže, jak zadat model rozpoznávání tváře pro vyhledávání rozpoznávání tváře, identifikace a podobnosti pomocí služby Azure Face.

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í.

Služba Azure Face service má k dispozici čtyři modely rozpoznávání. Modely recognition_01 (publikované v roce 2017), recognition_02 (publikováno 2019) a recognition_03 (publikováno v roce 2020) se průběžně podporují, aby zákazníci, kteří používají faceLists nebo skupiny PersonGroup vytvořené s těmito modely, zajistili zpětnou kompatibilitu. FaceList nebo Persongroup vždy používají model rozpoznávání, se který byl vytvořen, a nové tváře se k tomuto modelu při přidání přidávají. Po vytvoření už to není možné změnit a zákazníci budou muset použít odpovídající model rozpoznávání s odpovídajícím facelistem nebo skupinou PersonGroup.

Později můžete přejít na modely rozpoznávání, které vám pohotou. Budete ale muset vytvořit nové skupiny FaceLists a PersonGroups s modelem rozpoznávání podle vašeho výběru.

Model recognition_04 (publikovaný v roce 2021) je aktuálně nejpřesnější model. Pokud jste nový zákazník, doporučujeme použít tento model. Recognition_04 bude poskytovat vyšší přesnost jak pro porovnání podobnosti, tak pro porovnání osob. Recognition_04 zlepšuje rozpoznávání pro zaregistrované uživatele s maskou tváří (masky na zakrytí obličeje, masky N95, masky na obličej). Teď můžete vytvořit bezpečná a bezproblémová uživatelská prostředí, která pomocí nejnovějšího modelu detection_03 detekují, jestli má zaregistrované uživatele masku tváře, a pak rozpoznat, kdo je s nejnovějším recognition_04 modelem. Všimněte si, že každý model funguje nezávisle na ostatních a prahová hodnota spolehlivosti nastavená pro jeden model se nemá porovnávat napříč ostatními modely rozpoznávání.

V tomto tématu se dozvíte, jak určit vybraný model v různých operacích s tváří a současně se vyhnout konfliktům modelu. Pokud jste pokročilý uživatel a chcete zjistit, jestli byste měli přepnout na 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 koncepty detekce a identifikace obličeje pomocí AI. Pokud ne, podívejte se nejprve na tyto příručky:

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

Detekce obličeje identifikuje vizuální orientační body lidských tváří a vyhledá jejich umístění ohraničující rámeček. Extrahuje také vlastnosti tváře a uloží je pro použití při identifikaci. Všechny tyto informace tvoří reprezentaci jedné tváře.

Model rozpoznávání se používá při extrahování prvků tváře, takže při provádění operace Zjistit můžete zadat verzi modelu.

Při použití rozhraní API Face - Detect přiřaďte verzi modelu pomocí recognitionModel parametru . Dostupné hodnoty jsou:

  • recognition_01
  • recognition_02
  • recognition_03
  • recognition_04

Volitelně můžete zadat parametr returnRecognitionModel (výchozí hodnota false), který určuje, jestli se má v odpovědi vrátit recognitionModel. 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]&subscription-key=<Subscription key>

Pokud používáte klientskou knihovnu, můžete hodnotu přiřadit předáním řetězce recognitionModel představujícího verzi. Pokud ho necháte nepřiřazený, použije se výchozí recognition_01 verze modelu . 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, true, true, recognitionModel: "recognition_01", returnRecognitionModel: true);

Identifikace tváří 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 (například prostřednictvím volání rozhraní API pro přidání tváře) a několik objektů Person Je možné uložit společně do skupiny PersonGroup. Pak je možné porovnat novou tvář proti skupině PersonGroup (pomocí volání [Face - Identify)] a identifikovat odpovídající osobu v této skupině.

Skupina PersonGroup by měla mít jeden jedinečný model rozpoznávání pro všechny osoby a můžete ji zadat pomocí parametru při vytváření skupiny recognitionModel ([PersonGroup - Create] nebo [LargePersonGroup - Create]). Pokud tento parametr nezadáte, použije recognition_01 se původní model. Skupina bude vždy používat model rozpoznávání, se který vytvořila, a nové tváře se k tomuto modelu při jejich přidání přičtou. Toto nastavení nelze po vytvoření skupiny změnit. Pokud chcete zobrazit, s jakým modelem je skupina PersonGroup nakonfigurovaná, použijte rozhraní API PersonGroup – Get s parametrem returnRecognitionModel nastaveným na hodnotu true.

Podívejte se na následující příklad kódu pro klientskou knihovnu .NET.

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

V tomto kódu se vytvoří skupina PersonGroup s ID a nastaví se tak, aby pomocí modelu recognition_04 mypersongroupid extrahovat funkce tváře.

Odpovídajícím způsobem musíte určit, který model se má použít při rozpoznávání tváří k porovnání s touto skupinou PersonGroup (prostřednictvím rozhraní API [Face - Detect).] Model, který použijete, by měl být vždy konzistentní s konfigurací skupiny PersonGroup. Jinak operace selže kvůli nekompatibilním modelům.

Rozhraní API Rozpoznávání tváře – [Identifikace se nemění.] Při detekci je potřeba zadat pouze verzi modelu.

Vyhledání podobných tváří se zadaným modelem

Můžete také zadat model rozpoznávání pro vyhledávání podobnosti. Verzi modelu můžete přiřadit pomocí při recognitionModel vytváření seznamu facelist pomocí rozhraní [API FaceList – Create] nebo LargeFaceList – Create. Pokud tento parametr nezadáte, recognition_01 použije se model ve výchozím nastavení. FaceList vždy použije model rozpoznávání, se který byl vytvořen, a nové tváře se k tomuto modelu při přidání do seznamu přičtou. Po vytvoření už to nebude možné změnit. Pokud chcete zobrazit, s jakým modelem je facelist nakonfigurovaný, použijte rozhraní API [FaceList – Get] s parametrem returnRecognitionModel nastaveným na hodnotu true.

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");

Tento kód vytvoří facelist s názvem My face collection pomocí recognition_04 pro extrakci funkcí. Když v tomto seznamu FaceList vyhledáte podobné tváře jako u nově detekované tváře, musí být tato tvář detekována (Face - Detect) pomocí recognition_04 modelu. Stejně jako v předchozí části musí být model konzistentní.

Rozhraní API Face [– Find Similar] se nemění. zadáte pouze verzi modelu při detekci.

Ověření tváří se zadaným modelem

Rozhraní [API Face - Verify] kontroluje, jestli dvě tváře patří stejné osobě. Rozhraní API pro ověřování se nemění s ohledem na modely rozpoznávání, ale můžete porovnat pouze detekované tváře se stejným modelem.

Vyhodnocení různých modelů

Pokud chcete porovnat výkon různých modelů rozpoznávání na vlastních datech, budete muset:

  1. Vytvořte čtyři skupiny PersonGroup pomocí recognition_01, recognition_02, recognition_03 a recognition_04.
  2. Pomocí dat obrázku můžete detekovat tváře a zaregistrovat je do osob v těchto čtyřech skupinách PersonGroup.
  3. Trénování skupin PersonGroup pomocí rozhraní API PersonGroup – Train
  4. Test s Face – Identifikujte všechny čtyři skupiny PersonGroup a porovnejte výsledky.

Pokud za normálních okolností zadáte prahovou hodnotu spolehlivosti (hodnotu mezi nulou a hodnotou, která určuje, s jakou jistotou musí model identifikovat tvář), možná budete muset pro různé modely použít různé prahové hodnoty. Prahová hodnota pro jeden model se nemá sdílet s jiným modelem a nemusí mít nutně stejné výsledky.

Další kroky

V tomto článku jste zjistili, jak určit model rozpoznávání, který se má použít s různými rozhraními API služby Rozpoznávání tváře. Dále postupujte podle rychlého startu a řiďte se detekcí tváří.