Modely a platformy AI

DeepFace pro pokročilé rozpoznávání obličeje

mm
Přidejte Unite.AI mezi své preferované zdroje na Google

Rozpoznávání obličeje je trendem v oblasti umělé inteligence a strojového učení již několik let, a jeho široké kulturní a sociální dopady jsou značné. Existuje však propast mezi lidským vizuálním systémem a stroji, která目前 omezuje aplikace rozpoznávání obličeje.

Aby se překonala bariéra vytvořená touto propastí a dosáhlo se lidské úrovně přesnosti, Meta introduced DeepFace, rámec pro rozpoznávání obličeje. Model DeepFace je trénován na velké datové sadě obličeje, která se výrazně liší od datových sad použitých pro konstrukci evaluačních benchmarků, a má potenciál překonat existující rámce s minimálními adaptacemi. Kromě toho rámec DeepFace produkuje kompaktní reprezentace obličeje ve srovnání s jinými systémy, které produkují tisíce rysů obličeje.

Navrhovaný rámec DeepFace používá hluboké učení pro trénink na velké datové sadě, která zahrnuje různé formy dat, včetně obrázků, videí a grafiky. Architektura sítě DeepFace předpokládá, že jednou, když je dokončena zarovnání, je umístění každé oblasti obličeje pevně stanovené na úrovni pixelů. Proto je možné použít surová pixelová hodnoty RGB bez použití více konvolučních vrstev, jako je tomu u ostatních rámců.

Konvenční pipeline moderních rámců pro rozpoznávání obličeje se skládá ze čtyř fází: detekce, zarovnání, reprezentace a klasifikace. Rámec DeepFace používá explicitní 3D modelování obličeje pro aplikaci piecewise transformace a používá devítivrstvý hluboký neuronový síť pro odvození reprezentace obličeje. Rámec DeepFace se snaží učinit následující příspěvky

  1. Vyvinout efektivní architekturu DNN nebo hluboké neuronové sítě, která může využít velkou datovou sadu pro vytvoření reprezentace obličeje, která může být generalizována na jiné datové sady.
  2. Použít explicitní 3D modelování pro vývoj efektivní soustavy zarovnání obličeje.

Pochopení fungování modelu DeepFace

Zarovnání obličeje

Zarovnání obličeje je technika, která rotuje obraz osoby podle úhlu očí. Zarovnání obličeje je oblíbenou praxí, která se používá pro předzpracování dat pro rozpoznávání obličeje, a datová sada zarovnaných obličeje pomáhá zlepšit přesnost algoritmů rozpoznávání tím, že poskytuje normalizovaný vstup. Nicméně, zarovnání obličeje v neomezeném způsobem může být náročným úkolem kvůli mnoha faktorům, jako jsou nepružné výrazy, polohy těla a další. Několik sofistikovaných technik zarovnání, jako je použití analytického 3D modelu obličeje nebo hledání fiduciálních bodů z externí datové sady, může umožnit vývojářům překonat tyto výzvy.

Ačkoli zarovnání je nejoblíbenější metodou pro řešení neomezeného ověření a rozpoznávání obličeje, neexistuje dosud dokonalé řešení. 3D modely jsou také používány, ale jejich popularita výrazně poklesla v posledních letech, zejména při práci v neomezeném prostředí. Nicméně, protože lidská obličeje jsou 3D objekty, může být tato metoda správná, pokud je použita správně. Model DeepFace používá systém, který používá fiduciální body pro vytvoření analytického 3D modelu obličeje. Tento 3D model je pak použit pro deformaci obličeje do 3D frontálního režimu.

Kromě toho, stejně jako většina technik zarovnání, zarovnání DeepFace také používá fiduciální body pro řízení procesu zarovnání. Ačkoli model DeepFace používá jednoduchý bodový detektor, aplikuje ho v několika iteracích pro jemnění výstupu. Regresor s podporou vektorů nebo SVR, který je trénován pro předpojování konfigurací bodů, extrahuje fiduciální body z obrazového deskriptoru v každé iteraci. Deskriptor obrazu DeepFace je založen na histogramu LBP, ale také zvažuje další rysy.

2D Zarovnání

Model DeepFace zahajuje proces zarovnání detekcí šesti fiduciálních bodů v detekční oblasti, uprostřed očí, úst a nosu. Tyto body se používají pro rotaci, měřítko a překlad obrazu do šesti kotvičních míst a iterují na deformovaném obraze, dokud není viditelná žádná změna. Agregovaná transformace pak generuje 2D zarovnanou oblast. Metoda zarovnání je khá podobná té, která se používá v LFW-a, a byla použita v průběhu let v pokusu o zvýšení přesnosti modelu.

3D Zarovnání

Pro zarovnání obličeje s rotacemi mimo rovinu používá rámec DeepFace generický 3D tvarový model a registruje 3D kameru, která může být použita pro deformaci 2D zarovnané oblasti do 3D tvaru v jeho obrazové rovině. V důsledku toho model generuje 3D zarovnanou verzi oblasti a je dosaženo lokalizací dalších 67 fiduciálních bodů v 2D zarovnané oblasti pomocí druhého SVR nebo Regresoru s podporou vektorů.

Model pak ručně umístí 67 kotvičních bodů na 3D tvar a je tak schopen dosáhnout plné korespondence mezi 3D referencemi a jejich odpovídajícími fiduciálními body. V dalším kroku je přidána 3D-2D afinní kamera pomocí obecného řešení lineárních systémů s známou kovarianční maticí, která minimalizuje určité ztráty.

Frontalizace

Pоскольку nepružné deformace a plné perspektivní projekce nejsou modelovány, slouží aproximovaná 3D-2D kamera pouze jako aproximace. V pokusu o snížení korupce důležitých identifikačních faktorů do konečné deformace přidává model DeepFace odpovídající reziduální složky do x-y složek každého referenčního fiduciálního bodu. Taková relaxace pro účel deformace 2D obrazu s menšími deformacemi identifikačních faktorů je přijatelná, a bez ní by obličeje byly deformovány do stejného tvaru v 3D, a ztratily by důležité diskriminační faktory v procesu.

Nakonec model dosahuje frontalizace pomocí piecewise afinní transformace směrované Delaunayovou triangulací odvozenou z 67 fiduciálních bodů.

  1. Detekované obličeje s 6 fiduciálními body.
  2. Indukovaná 2D zarovnaná oblast.
  3. 67 fiduciálních bodů na 2D zarovnané oblasti.
  4. Referenční 3D tvar transformovaný do 2D zarovnané oblasti obrazu.
  5. Triangle viditelnost s ohledem na 3D-2D kameru.
  6. 67 fiduciálních bodů indukovaných 3D modelem.
  7. 3D zarovnaná verze konečné oblasti.
  8. Nový pohled generovaný 3D modelem.

Reprezentace

S rostoucím množstvím trénovacích dat se naučené metody ukázaly jako účinnější a přesnější ve srovnání s inženýrskými rysy, především protože naučené metody mohou objevit a optimalizovat rysy pro konkrétní úkoly.

Architektura DNN a trénink

DNN DeepFace je trénován na multi-kategorickém úkolu rozpoznávání obličeje, který klasifikuje identitu obrazu obličeje.

Výše uvedená figura reprezentuje celkovou architekturu modelu DeepFace. Model má konvoluční vrstvu (C1) se 32 filtry velikosti 11x11x3, která je krmena 3D zarovnaným 3-kanálovým RGB obrazem velikosti 152×152 pixelů, a výsledkem jsou 32 feature mapy. Tyto feature mapy jsou pak krmeny do Max Pooling vrstvy nebo M2, která bere maximum přes 3×3 prostorová sousedství, a má stride 2, samostatně pro každý kanál. Následuje další konvoluční vrstva (C3), která se skládá z 16 filtrů velikosti 9x9x16. Hlavním účelem těchto vrstev je extrahovat nízkoúrovňové rysy, jako je textura a jednoduché hrany. Výhodou použití Max Pooling vrstev je, že činí výstup generovaný konvolučními vrstvami více robustním vůči lokálním translacím, a když je aplikován na zarovnané obličeje, činí síť mnohem více robustní vůči registraci chybám na malé škále.

Mnoho úrovní pooling skutečně činí síť více robustní vůči určitým situacím, ale také způsobuje, že síť ztrácí informace o přesné poloze mikro-textur a detailních struktur obličeje. Aby se tomu zabránilo, model DeepFace používá Max Pooling vrstvu pouze s první konvoluční vrstvou. Tyto vrstvy jsou pak interpretovány modelem jako front-end adaptivní předzpracování. Ačkoli provedou většinu výpočtu, mají omezené parametry samy o sobě, a pouze rozšiřují vstup do sady lokálních rysů.

Následující vrstvy L4, L5 a L6 jsou lokálně propojené, a stejně jako konvoluční vrstva, aplikují banku filtrů, kde každé místo ve feature mapě učí jedinečnou sadu filtrů. Jako různé oblasti v zarovnaném obraze mají různé lokální statistiky, nelze zachovat prostorovou stacionaritu. Například oblast mezi obočím a očima má vyšší diskriminační schopnost ve srovnání s oblastí mezi ústy a nosem. Použití loajálních vrstev ovlivňuje počet parametrů, které jsou podrobeny tréninku, ale neovlivňuje výpočetní zátěž během extrakce rysů.

Model DeepFace používá tři vrstvy na začátku pouze proto, že má velké množství dobře označených trénovacích dat. Použití lokálně propojených vrstev lze dále odůvodnit tím, že každý výstupní jednotka lokálně propojené vrstvy může být ovlivněna velkou částí vstupních dat.

Nakonec jsou horní vrstvy plně propojené, s každou výstupní jednotkou propojenou se všemi vstupy. Tyto dvě vrstvy mohou zachytit korelace mezi rysy zachycenými v různých částech obrazů obličeje, jako je poloha a tvar úst a poloha a tvar očí. Výstup první plně propojené vrstvy (F7) bude použit sítí jako surová reprezentace obličeje. Model pak krmit výstup poslední plně propojené vrstvy (F8) do K-way softmax, který produkuje distribuci přes třídy označení.

Datové sady

Model DeepFace používá kombinaci datových sad, s datovou sadou Social Face Classification nebo SFC jako primární. Kromě toho model DeepFace také používá datovou sadu LFW a datovou sadu YTF.

Datová sada SFC

Datová sada SFC je naučená z kolekce obrázků z Facebooku, a skládá se z 4,4 milionu označených obrazů 4 030 lidí, s každým z nich majícím 800 až 1200 obličeje. Poslední 5% datových sad SFC obrazů obličeje každé identity je ponecháno pro testovací účely.

Datová sada LFW

Datová sada LFW se skládá z 13 323 fotografií více než pěti tisíc celebrit, které jsou pak rozděleny do 6 000 párů obličeje napříč 10 rozdělenými částmi.

Datová sada YTF

Datová sada YTF se skládá z 3 425 videí 1 595 subjektů, a je podmnožinou celebrit v datové sadě LFW.

Výsledky

Bez frontalizace a při použití pouze 2D zarovnání model dosahuje přesnostní skóre pouze asi 94,3%. Když model používá středovou oblast detekce obličeje, nezobrazuje žádné zarovnání, a v tomto případě model vrací přesnostní skóre 87,9%, protože některé části obličeje mohou vypadnout z středové oblasti. Aby se vyhodnotila diskriminační schopnost reprezentace obličeje izolovaně, model sleduje nesupervizované učení pro srovnání vnitřního produktu normalizovaných rysů. To zvyšuje průměrnou přesnost modelu na 95,92% (META )

Výše uvedený model srovnává výkon modelu DeepFace ve srovnání s jinými státními modely rozpoznávání obličeje.

Výše uvedený obrázek znázorňuje ROC křivky na datové sadě.

Závěr

Ideálně by klasifikátor obličeje měl být schopen rozpoznat obličeje s přesností lidského oka, a měl by být schopen vrátit vysokou přesnost bez ohledu na kvalitu obrazu, pose, výraz nebo osvětlení. Kromě toho by ideální rámec rozpoznávání obličeje měl být schopen být aplikován na širokou škálu aplikací s minimálními nebo žádnými modifikacemi. Ačkoli DeepFace je jedním z nej pokročilejších a nejefektivnějších rámců rozpoznávání obličeje, není dokonalý, a nemusí být schopen dodat přesné výsledky ve všech situacích. Nicméně, rámec DeepFace je významným milníkem v oblasti rozpoznávání obličeje, a uzavírá propast výkonu pomocí silné metriky učení, a bude pokračovat v zlepšování se časem.

Kunal Kejriwal je backendový inženýr specializující se na Python, PostgreSQL, Redis a cloudovou infrastrukturu na GCP a AWS. Má tři roky zkušeností s vývojem a škálováním produkčních systémů a píše o AI infrastruktuře, distribuovaných systémech a architektuře nasazování pracovních zátěží strojového učení.