AI-mallit ja alustat

DeepFace edistyneelle kasvojentunnistamiselle

mm
Lisää Unite.AI suosikkilähteisiisi Google-palvelussa

Kasvojentunnistus on ollut trendikäs aihe tekoälyssä ja koneoppimisessa useita vuosia, ja sen laajat kulttuuriset ja sosiaaliset vaikutukset ovat kauaskantoisia. On kuitenkin olemassa suorituskykyero ihmisen visuaalijärjestelmien ja koneiden välillä, joka rajoittaa kasvojentunnistuksen sovelluksia.

Ylittääkseen suorituskykyeron ja saavuttaakseen ihmisen tason tarkkuuden, Meta esitteli DeepFace-kasvojentunnistuskehyksen. DeepFace-malli on koulutettu suurella kasvokuvadataliberialla, joka poikkeaa merkittävästi arviointibenchmarkkeja käyttävistä datalibreista, ja sillä on potentiaali ylittää olemassa olevat kehykset vähäisillä sopeutuksilla. Lisäksi DeepFace-kehyksen tuottamat tiiviit kasvojen edustukset ovat verrattavissa muihin järjestelmiin, jotka tuottavat tuhansia kasvojen ulkonäön piirteitä.

Ehdotettu DeepFace-kehyksen käyttää syvää oppimista kouluttaakseen suurella datalibrealla, joka sisältää erilaisia tietomuotoja, kuten kuvia, videoita ja grafiikkaa. DeepFace-verkkomalli olettaa, että kun suunnittelu on valmis, jokaisen kasvojen alueen sijainti on kiinnitetty pikselitasolla. Tämän vuoksi on mahdollista käyttää raakapikselien RGB-arvoja ilman useiden konvoluutiokerrosten käyttämistä kuten muissa kehyksissä.

Perinteinen modernien kasvojentunnistuskehysten putki koostuu neljästä vaiheesta: havainnosta, suunnittelusta, edustuksesta ja luokittelusta. DeepFace-kehyksen käyttää eksplisiittistä 3D-kasvojen mallinnusta soveltamaan paloittaisen muodonmuutoksen ja käyttää yhdeksänkerroksista syvää neuroverkkoa johdattaakseen kasvojen edustuksen. DeepFace-kehyksen pyrkii tekemään seuraavat panokset

  1. Kehittää tehokas DNN eli syvä neuroverkkoarkkitehtuuri, joka voi hyödyntää suurta dataliberaalia luodakseen kasvojen edustuksen, joka voidaan yleistää muihin datalibrealeihin.
  2. Käyttää eksplisiittistä 3D-mallinnusta kehittääkseen tehokkaan kasvojen suunnittelu järjestelmän.

DeepFace-mallin toiminnan ymmärtäminen

Kasvojen suunnittelu

Kasvojen suunnittelu on tekniikka, joka kiertää henkilön kuvaa silmien kulman mukaan. Kasvojen suunnittelu on suosittu käytäntö, jota käytetään esikäsittelyyn kasvojentunnistukselle, ja kasvojen suunnitellut dataliberale auttavat parantamaan tunnistusalgoritmien tarkkuutta antamalla normalisoidun syötteen. Kuitenkin kasvojen suunnittelu epärajoitettuun tapaan voi olla haasteellinen tehtävä useiden tekijöiden vuoksi, kuten joustavien ilmeiden, kehon asentojen ja muun. Useat kehittyneet suunnittelu menetelmät, kuten analyyttinen 3D-malli kasvoista tai fidusiaalipisteiden etsintä ulkoisesta dataliberialista, voivat mahdollistaa kehittäjien voittaa haasteet.

Vaikka suunnittelu on suosituin menetelmä epärajoitetun kasvojen vahvistamiseen ja tunnistamiseen, ei ole täydellistä ratkaisua tällä hetkellä. 3D-malleja käytetään myös, mutta niiden suosio on laskenut merkittävästi viimeisten vuosien aikana, erityisesti epärajoitetussa ympäristössä. Kuitenkin, koska ihmisen kasvot ovat 3D-olioita, se voi olla oikea lähestymistapa, jos sitä käytetään oikein. DeepFace-malli käyttää järjestelmää, joka käyttää fidusiaalipisteitä luodakseen analyyttisen 3D-mallin kasvoista. Tämä 3D-malli sitten käytetään kasvojen rypistämiseen 3D-etumaiseen muotoon.

Lisäksi, kuten useimmat suunnittelu käytännöt, DeepFace-suunnittelu käyttää myös fidusiaalipisteen etsintälaitteita suunnitteluprosessin ohjaamiseen. Vaikka DeepFace-malli käyttää yksinkertaista pisteen etsintää, se soveltaa sitä useissa iteraatioissa tuloksen hienontamiseksi. Tukeutumissuoritin tai SVR, joka on koulutettu ennustamaan pistekohtaisia konfiguraatioita, etsii fidusiaalipisteitä kuvauksesta kussakin iteraatiossa. DeepFace-kuvaukseen perustuu LBP-histogrammeja, vaikka se ottaa huomioon myös muita ominaisuuksia.

2D-suunnittelu

DeepFace-malli aloittaa suunnitteluprosessin havainnoimalla kuusi fidusiaalipistettä havaintoalueella, joka on keskittynyt silmien keskivertoon, suun sijaintiin ja nenän kärkeen. Ne käytetään kiertämään, skaalaamaan ja kääntämään kuvaa kuuteen ankkuripaikkaan, ja iteroida warpattua kuvaa, kunnes siinä ei ole näkyvää muutosta. Yhdistetty muodonmuutos sitten luo 2D-suunnitellun rypisteen. Suunnittelumenetelmä on hyvin samankaltainen kuin LFW-a:ssa käytetty menetelmä, ja sitä on käytetty useiden vuosien ajan mallin tarkkuuden parantamiseen.

3D-suunnittelu

Kasvojen suunnitteluun, joilla on tasolla olevia rotaatioita, DeepFace-kehyksen käyttää yleistä 3D-muotoa, ja rekisteröi 3D-kameran, jota voidaan käyttää 2D-suunnitellun rypisteen kääntämiseen 3D-muotoon sen kuvapinnassa. Tuloksena malli luo 3D-suunnitellun version rypisteen, ja se saavutetaan lokalisoimalla 67 fidusiaalipistettä 2D-suunnitellussa rypisteessä toisen SVR:n avulla.

Malli sitten asettaa 67 ankkuripistettä 3D-muotoon manuaalisesti ja pystyy saavuttamaan täydellisen vastaavuuden 3D-viittauksien ja niiden vastaavien fidusiaalipisteiden välillä. Seuraavassa vaiheessa 3D-2D-affiini kamera lisätään yleistettyyn lineaariseen järjestelmään, jolla on tunnettu kovarianssimatriisi, joka minimoi tiettyjä häviä.

Etumaisen suunnittelu

Koska joustavat muodonmuutokset ja täydelliset perspektiiviprojektioita eivät ole mallinnettu, sovitettu 3D-2D-kamera palvelee vain approksimaationa. Pyrkimyksenään vähentää tärkeiden identiteetin mukana olevien tekijöiden korruptiota lopulliseen warpattuun, DeepFace-malli lisää vastaavat jäännökset kunkin viittaavan fidusiaalipisteen x-y-komponentteihin. Tällainen rentoutus warpattua kuvaa vähemmän vääristyneellä identiteetillä on perusteltava, ja ilman sitä kasvot olisivat vääristyneet saman muodon 3D:ssa, menettäen tärkeitä diskriminointitekijöitä prosessissa.

Lopulta malli saavuttaa etumaisen suunnittelun käyttämällä paloittaisen affiinimuodonmuutosta, jota ohjataan Delaunay-triangulaatiosta, joka on johdettu 67 fidusiaalipisteestä.

  1. Havaittu kasvo kuudella fidusiaalipisteellä.
  2. Indusoitu 2D-suunniteltu rypiste.
  3. 67 fidusiaalipistettä 2D-suunnitellussa rypisteessä.
  4. Viittaava 3D-muoto, joka on muunnettu 2D-suunnitellun rypisteen kuvamuotoon.
  5. Kolmioiden näkyvyys suhteessa 3D-2D-kameraan.
  6. 67 fidusiaalipistettä, jotka on indusoitu 3D-mallista.
  7. 3D-suunniteltu versio lopullisesta rypisteestä.
  8. Uusi näkymä, joka on generoitu 3D-mallista.

Edustus

Kun koulutusdatan määrä kasvaa, oppimismenetelmät ovat osoittautuneet tehokkaammiksi ja tarkemmiksi verrattuna konfiguroituihin ominaisuuksiin, koska oppimismenetelmät voivat löytää ja optimoida ominaisuuksia tiettyyn tehtävään.

DNN-arkkitehtuuri ja koulutus

DeepFace-DNN on koulutettu moniluokkaisella kasvojentunnistustehtävällä, joka luokittelee kasvojen identiteetin.

Yllä oleva kuva edustaa DeepFace-mallin yleistä arkkitehtuuria. Malli sisältää konvoluutio kerroksen (C1) 32 suodattimella, joiden koko on 11x11x3, jota syötetään 3D-suunniteltuun 3-kanavainen RGB-kuva, jossa on 152×152 pikseliä, ja se johtaa 32 ominaisuuskarttaan. Nämä ominaisuuskartat syötetään sitten M2-maksimipoolauskerrokseen, joka ottaa maksimin 3×3 spatiaalisten naapureiden yli, ja jolla on askel 2, erikseen kullekin kanavalle. Seuraavaksi on toinen konvoluutio kerros (C3), joka koostuu 16 suodattimista, joista jokainen on 9x9x16. Näiden kerrosten pääasiallinen tarkoitus on löytää matalatason ominaisuudet, kuten tekstuurit ja yksinkertaiset reunat. Maksimipoolauskerrosten etu on, että se tekee konvoluutio kerrosten tuottamasta tuloksesta robustimmaksi paikallisten käännösten suhteen, ja kun sitä sovelletaan suunniteltuihin kasvojen kuvauksiin, se tekee verkon paljon robustimmaksi rekisteröintivirheille pienessä mittakaavassa.

Useiden poolauskerrosten käyttäminen tekee verkon robustimmaksi tietyissä tilanteissa, mutta se myös aiheuttaa verkon menettämisen tarkkaa tietoa mikrotekstuurien ja yksityiskohtaisten kasvojen rakenteiden sijainnista. Välttääkseen verkon menettämisen tietoa, DeepFace-malli käyttää maksimipoolauskerrosta vain ensimmäisellä konvoluutio kerroksella. Nämä kerrokset tulkitaan mallissa eturintamana sopeutuvana esikäsittelyvaiheena. Vaikka ne tekevät suurimman osan laskelmista, niillä on rajoitettu määrä parametreja itsessään, ja ne laajentavat vain syötteen joukkoon paikallisia ominaisuuksia.

Seuraavat kerrokset L4, L5 ja L6 ovat paikallisesti yhdistettyjä, ja niiden toimintaperiaate on samanlainen kuin konvoluutio kerroksella, jossa jokainen ominaisuuskartan sijainti oppii yksilöllisen suodattimien joukon. Koska eri alueet suunnitellussa kuvassa ovat erilaisia paikallisia tilastojen suhteen, se ei voi pitää paikallista stationaarisuuden oletusta. Esimerkiksi alue välien välillä ja silmien välillä on suurempi diskriminoivuuskyky verrattuna alueeseen suun ja nenän välillä. Paikallisesti yhdistettyjen kerrosten käyttäminen vaikuttaa parametreja, jotka ovat alttiina koulutukselle, mutta se ei vaikuta laskelmien rasitteeseen ominaisuuksien hakemisen aikana.

DeepFace-malli käyttää kolmea kerrosta aluksi vain, koska sillä on suuri määrä hyvin merkittyjä koulutusdataa. Paikallisesti yhdistettyjen kerrosten käyttäminen voidaan perustella myös sillä, että kunkin paikallisesti yhdistetyn kerroksen tulostusyksikkö voidaan vaikuttaa suurella osalla syötedataa.

Lopulta ylin kerros on täysin yhdistetty, ja jokainen tulostusyksikkö on yhdistetty kaikkiin syöteyksiköihin. Kaksi kerrosta voi siepata korrelaatiot ominaisuuksien välillä, jotka on havaittu eri osissa kasvojen kuvia, kuten suun ja silmien sijainti ja muoto. Ensimmäisen täysin yhdistetyn kerroksen (F7) tulostusta käytetään verkon raakana kasvojen edustusominaisuusvektorina. Malli syöttää sitten viimeisen täysin yhdistetyn kerroksen (F8) tulostuksen K-tie-softmaxiin, joka tuottaa jakautumisen luokka-etuliitteiden yli.

Dataliberaalit

DeepFace-malli käyttää yhdistelmää datalibrealeja, joista Social Face Classification eli SFC-dataliberaali on ensisijainen. Lisäksi DeepFace-malli käyttää myös LFW-dataliberaalia ja YTF-dataliberaalia.

SFC-dataliberaali

SFC-dataliberaali on opittu Facebookin kuva kokoelmasta, ja se koostuu 4,4 miljoonasta merkitystä kuvasta 4030 henkilöltä, joista jokaisella on 800-1200 kasvoa. Viimeiset 5% SFC-dataliberaalin kasvojen kuvista kullekin identiteetille on jätetty testaamista varten.

LFW-dataliberaali

LFW-dataliberaali koostuu 13 323 valokuvasta yli 5000 julkkiksesta, jotka on jaettu 6000 kasvojen pariin 10 jakoon.

YTF-dataliberaali

YTF-dataliberaali koostuu 3425 videosta 1595 aiheesta, ja se on osa LFW-dataliberaalissa olevista julkkiksista.

Tulokset

Ilman etumaisen suunnittelua ja käyttäen vain 2D-suunnittelua malli saavuttaa tarkkuusarvon vain noin 94,3%. Kun malli käyttää kasvojen keskiosaa, se ei käytä suunnittelua, ja tässä tapauksessa malli palauttaa tarkkuusarvon 87,9%, koska osa kasvojen alueesta saattaa olla keskiosan ulkopuolella. Arvioidakseen kasvojen edustuksen diskriminointikykyä erillään, malli seuraa epäsupervoidun oppimisen asetelmaa vertaamaan normalisoiden ominaisuuksien sisäistä tuotetta. Se lisää mallin keskimääräisen tarkkuuden 95,92%:iin. (META )

Yllä oleva malli vertaa DeepFace-mallin suorituskykyä muihin valtavirtaisten kasvojentunnistusmallien kanssa.

Yllä oleva kuva esittää ROC-käyrät dataliberaalissa.

Johtopäätös

Ihanteellisesti, kasvojentunnistin pystyisi tunnistamaan kasvot ihmisen tarkkuudella ja palauttamaan korkean tarkkuuden riippumatta kuvan laadusta, asennosta, ilmeestä tai valaistuksesta. Lisäksi ihanteellinen kasvojentunnistuskehyksen voisi soveltaa moniin sovelluksiin vähäisillä muutoksilla. Vaikka DeepFace on yksi edistyneimmistä ja tehokkaimmista kasvojentunnistuskehyksistä tällä hetkellä, se ei ole täydellinen, ja se ei välttämättä pysty toimittamaan tarkkoja tuloksia tietyissä tilanteissa. Kuitenkin DeepFace-kehyksen on merkittävä välietappi kasvojentunnistusalan kehityksessä, ja se sulkee suorituskykyeron käyttämällä voimakasta mittausoppimismenetelmää, ja se tulee parantamaan tehokkuuttaan ajan myötä.

Kunal Kejriwal on backend‑insinööri, joka on erikoistunut Pythoniin, PostgreSQL:ään, Redis:iin ja pilvi‑infrastruktuuriin GCP:ssä ja AWS:ssä. Kolmen vuoden kokemuksella tuotantojärjestelmien rakentamisesta ja skaalaamisesta hän kirjoittaa AI‑infrastruktuurista, hajautetuista järjestelmistä ja koneoppimistyönkuormien käyttöönoton arkkitehtuurista.