Kasvojentunnistustekniikka on uusi aikakausi videoanalytiikassa, videovalvonnassa ja kulunvalvontajärjestelmissä. Kasvontunnistuksella varustetut wc:t Kiinassa vähentävät wc-paperin kulutusta. Alexander Khanin, VisionLabsin perustaja ja toimitusjohtaja

Ensimmäinen askel kuljettimellamme on kasvojentunnistus. On selvää, että sinun on eristettävä kaikki valokuvan kasvot ennen kuin yrität tunnistaa ne!

Jos olet käyttänyt valokuvausta viimeisten 10 vuoden aikana, olet todennäköisesti nähnyt, kuinka kasvojentunnistus toimii:

Kasvojentunnistus on hieno asia kameroissa. Jos kamera tunnistaa kasvot automaattisesti, voit olla varma, että kaikki kasvot ovat tarkennettuina ennen kuvan ottamista. Mutta käytämme tätä toiseen tarkoitukseen - etsimään kuvasta alueita, jotka on siirrettävä putkilinjamme seuraavaan vaiheeseen.

Kasvojentunnistuksesta tuli yleinen trendi 2000-luvun alussa, kun Paul Viola ja Michael Jones keksivät tavan havaita kasvot, joka oli riittävän nopea toimimaan halvoilla kameroilla. Nyt on kuitenkin olemassa paljon luotettavampia ratkaisuja. Aiomme käyttää vuonna 2005 löydettyä menetelmää - suuntagradienttien histogrammia (lyhyesti sanottuna, HOG).

Tunnistaaksemme kasvot kuvasta teemme kuvamme mustavalkoiseksi, koska... Väritietoja ei tarvita kasvojen tunnistukseen:

Tarkastelemme sitten jokaista yksittäistä pikseliä kuvassamme yksitellen. Kunkin yksittäisen pikselin kohdalla sen välitön ympäristö tulee ottaa huomioon:

Tavoitteenamme on korostaa, kuinka tumma nykyinen pikseli on verrattuna sen vieressä oleviin pikseleihin. Piirrä sitten nuoli, joka näyttää suunnan, johon kuva tummenee:


Kun tarkastellaan tätä yksittäistä pikseliä ja sen välittömiä naapureita, kuva tummenee ylöspäin oikealle.

Jos toistat tämän prosessin jokainen pikseli kuvassa, niin lopulta jokainen pikseli korvataan nuolella. Näitä nuolia kutsutaan kaltevuus, ja ne näyttävät virtauksen valosta pimeään koko kuvassa:

Tulos saattaa näyttää joltain satunnaiselta, mutta siinä on hyvinkin hyvä syy pikselien korvaamiseksi gradienteilla. Kun analysoimme pikseleitä suoraan, saman henkilön tummilla ja vaaleilla kuvilla on hyvin erilaiset pikselivoimakkuusarvot. Mutta jos ajatellaan vain suunta kirkkauden muutoksissa sekä tummilla että vaaleilla kuvilla on täsmälleen sama ulkonäkö. Tämä tekee ongelman ratkaisemisesta paljon helpompaa!

Mutta gradientin tallentaminen jokaiselle yksittäiselle pikselille antaa meille menetelmän, joka sisältää liian paljon yksityiskohtia. Emme lopulta näe metsää puista. Olisi parempi, jos voisimme yksinkertaisesti nähdä taustalla olevan valon/pimeyden virtauksen korkeammalla tasolla katsomalla perusrakenne kuvia.

Tätä varten jaamme kuvan pieniksi neliöiksi, joista kukin on 16x16 pikseliä. Laske jokaisessa ruudussa, kuinka monta gradienttinuolta näkyy kussakin pääsuunnassa (eli kuinka monta nuolta osoittaa ylöspäin, ylös-oikealle, oikealle jne.). Kyseinen neliö korvataan sitten kuvassa nuolella, jonka suunta on hallitseva kyseisessä neliössä.

Lopputuloksena on, että muutamme alkuperäisen kuvan hyvin yksinkertaiseksi esitykseksi, joka näyttää kasvojen perusrakenteen yksinkertaisessa muodossa:


Alkuperäinen kuva muunnetaan HOG-esitykseen, joka näyttää kuvan tärkeimmät ominaisuudet riippumatta sen kirkkaudesta.

Tunnistaaksemme kasvot tästä HOG-kuvasta, meidän tarvitsee vain löytää kuvasta se osa, joka muistuttaa eniten tunnettua HOG-rakennetta, joka on saatu koulutuksessa käytetystä kasvoryhmästä:

Tällä menetelmällä löydät helposti kasvot mistä tahansa kuvasta:

Jos haluat tehdä tämän vaiheen itse Pythonilla ja dlibillä, on olemassa ohjelma, joka näyttää kuinka luoda ja katsella HOG-esitysiä kuvista.

Vaihe 2: Kasvojen sijoittaminen ja näyttäminen

Joten olemme valinneet kuvassamme olevat kasvot. Mutta nyt on ongelma: samat kasvot eri suunnista katsottuna näyttävät täysin erilaisilta tietokoneessa:


Ihmiset voivat helposti nähdä, että molemmat kuvat ovat näyttelijä Will Ferrelliä, mutta tietokoneet kohtelevat niitä kahtena eri ihmisenä.

Tämän huomioimiseksi yritetään muuttaa jokainen kuva niin, että silmät ja huulet ovat aina samassa paikassa kuvassa. Kasvojen vertailu yksinkertaistuu huomattavasti seuraavissa vaiheissa.

Tätä varten käytämme algoritmia nimeltä "antropometristen pisteiden arviointi". On monia tapoja tehdä tämä, mutta aiomme käyttää Vahid Kazemin ja Josephine Sullivanin vuonna 2014 ehdottamaa lähestymistapaa.

Perusajatuksena on, että tunnistetaan 68 erityistä pistettä ( merkkejä) joka on läsnä kaikilla kasvoilla - leuan ulkoneva osa, kunkin silmän ulkoreuna, kunkin kulmakarvan sisäreuna jne. Sitten koneen oppimisalgoritmi konfiguroidaan etsimään näitä 68 tiettyä pistettä jokaiselta pinnalta:


Asetamme 68 antropometristä pistettä jokaiselle pinnalle

Alla on tulos 68 antropometrisen pisteen sijoittamisesta testikuvaamme:


PRO VINKKI NEWBY:lle: Tätä samaa menetelmää voidaan käyttää syöttämiseen oma versio Reaaliaikaiset 3D-kasvosuodattimet Snapchatissa!

Nyt kun tiedämme, missä silmät ja suu ovat, yksinkertaisesti pyöritämme, skaalaamme ja panoroimme kuvaa niin, että silmät ja suu ovat mahdollisimman keskitettyinä. Emme ota käyttöön epätavallisia 3D-muodonmuutoksia, koska ne voivat vääristää kuvaa. Teemme vain peruskuvamuunnoksia, kuten kiertoa ja skaalausta, jotka pitävät viivat yhdensuuntaisina (ns. affine-muunnoksia):

Nyt, riippumatta siitä, miten kasvoja käännetään, voimme keskittää silmät ja suun siten, että ne ovat suunnilleen samassa asennossa kuvassa. Tämä tekee seuraavan askeleemme tarkkuudesta paljon korkeamman.

Jos haluat kokeilla tätä vaihetta itse Pythonilla ja dlibillä, on olemassa ohjelma antropometristen pisteiden etsimiseen ja ohjelma kuvan muuntamiseen näiden pisteiden perusteella.

Vaihe 3: Kasvojen koodaus

Nyt tulemme ongelman ytimeen - itse kasvojentunnistukseen. Tästä se hauskuus alkaa!

Yksinkertaisin tapa kasvojentunnistukseen on verrata suoraan vaiheessa 2 havaittuja tuntemattomia kasvoja kaikkiin jo merkittyihin kasvoihin. Jos löydämme jo merkityt kasvot, jotka ovat hyvin samankaltaisia ​​kuin tuntemattomat, se tarkoittaa, että olemme tekemisissä saman henkilön kanssa. Näyttää erittäin hyvä idea, eikö olekin?

Itse asiassa tässä lähestymistavassa on valtava ongelma. Facebookin kaltainen sivusto, jolla on miljardeja käyttäjiä ja biljoonia valokuvia, ei voi selata kaikkia aiemmin merkittyjä kasvoja tarpeeksi vertaamalla niitä kuhunkin uuteen ladattuihin kuviin. Se veisi liikaa aikaa. Meidän on tunnistettava kasvot millisekunneissa, ei tunneissa.

Meidän on opittava erottamaan jokaisesta kasvoista joitain perusominaisuuksia. Voisimme sitten saada tällaiset ominaisuudet tuntemattomalta henkilöltä ja verrata niitä tunnettujen henkilöiden ominaisuuksiin. Voit esimerkiksi mitata jokaisen korvan, määrittää silmien välisen etäisyyden, nenän pituuden jne. Jos olet koskaan katsonut televisiosarjaa Las Vegasin rikoslaboratorion työntekijöiden työstä (CSI: Crime Scene Investigation), tiedät mistä puhumme:


Aivan kuin elokuvissa! Se näyttää niin totta!

Luotettavin tapa mitata kasvosi

Okei, mutta mitä ominaisuuksia on hankittava jokaiselta henkilöltä, jotta voidaan rakentaa tietokanta kuuluisista kasvoista? Korvien koot? Nenän pituus? Silmien väri? Onko muuta?

Osoittautuu, että meille ihmisille ilmeisiltä näyttävillä ominaisuuksilla (kuten silmien värillä) ei ole järkeä kuvan yksittäisiä pikseleitä analysoivalle tietokoneelle. Tutkijat havaitsivat, että sopivin lähestymistapa on antaa tietokoneen itse määrittää kerättävät ominaisuudet. Syväoppiminen voi tunnistaa kasvojen osat, jotka ovat tärkeitä kasvojentunnistuksen kannalta, paremmin kuin ihmiset.

Ratkaisu on harjoitella syvää konvoluutiota hermoverkko(Juuri näin teimme numerossa 3). Mutta sen sijaan, että koulutamme verkkoa tunnistamaan graafisia objekteja, kuten teimme viime kerralla, aiomme nyt kouluttaa sitä luomaan 128 ominaisuutta jokaiselle kasvoille.

Oppimisprosessi toimii, kun katsot kolmea kasvokuvaa samanaikaisesti:

1. Lataa harjoituskuva kuuluisan henkilön kasvoista

2. Lataa toinen saman henkilön kasvokuva

3. Lataa kuva jonkun muun kasvoista

Tämän jälkeen algoritmi ottaa huomioon ominaisuudet, joita se tuottaa kullekin määritetylle ominaisuudelle kolme kuvaa. Se säätää hermoverkkoa hieman siten, että sen kuville 1 ja 2 tuottamat ominaisuudet ovat hieman lähempänä toisiaan ja kuville 2 ja 3 tuottamat ominaisuudet ovat hieman kauempana toisistaan.

Yksi "strukturoitu" oppimisvaihe:

Kun tämä vaihe on toistettu miljoonia kertoja miljoonille tuhansien eri ihmisten kuville, hermoverkko pystyy luomaan luotettavasti 128 ominaisuutta jokaiselle henkilölle. Kymmenen eri kuvaa samasta henkilöstä antaa suunnilleen samat ominaisuudet.

Koneoppimisen asiantuntijat nimeävät nämä 128 jokaisen kasvon ominaisuutta joukko ominaisuuksia (ominaisuuksia). Ajatus monimutkaisen raakadatan, kuten kuvan, pelkistämisestä tietokoneella luotujen lukujen luetteloon on osoittautunut erittäin lupaavaksi harjoituskoneissa (erityisesti käännöksissä). Googlen tutkijat ehdottivat käyttämäämme kasvolähestymistapaa vuonna 2015, mutta samanlaisia ​​lähestymistapoja on monia.

Kasvokuvamme koodaus

Prosessi, jossa konvoluutiohermoverkko koulutetaan kasvojen ominaisuuksien tulosten tuottamiseksi, vaatii suuren määrän dataa ja suuri tuottavuus tietokone. Jopa kalliissa NVidia Telsa -näytönohjaimessa se vaaditaan noin 24 tuntia jatkuva koulutus hyvän tarkkuuden saavuttamiseksi.

Mutta jos verkosto on koulutettu, on mahdollista luoda ominaisuuksia kaikille kasvoille, jopa sellaisille, joita ei ole koskaan ennen nähty! Näin ollen tämä vaihe tarvitsee tehdä vain kerran. Onneksi OpenFacen hyvät ihmiset ovat jo tehneet tämän ja tarjonneet pääsyn useisiin koulutettuihin verkkoihin, joita voimme käyttää heti. Kiitos Brandon Amosille ja tiimille!

Tämän seurauksena meidän tarvitsee vain ajaa kasvokuvamme heidän valmiiksi koulutetun verkon kautta ja saada 128 ominaisuutta jokaiselle kasvoille. Alla on testikuvamme tiedot:

Mutta mitä tiettyjä kasvojen osia nämä 128-luvut kuvaavat? Osoittautuu, että meillä ei ole aavistustakaan tästä. Tällä ei kuitenkaan ole meille oikeastaan ​​merkitystä. Meidän pitäisi vain välittää siitä, että verkosto tuottaa suunnilleen samat luvut analysoidessaan kahta eri kuvaa samasta henkilöstä.

Jos haluat kokeilla tätä vaihetta itse, OpenFace tarjoaa Lua-skriptin, joka luo ominaisuusjoukot kaikille kansion kuville ja kirjoittaa ne csv-tiedostoon. Voit ajaa sen kuvan osoittamalla tavalla.

Vaihe 4. Etsi henkilön nimi kasvojen koodauksen jälkeen

Viimeinen vaihe on itse asiassa helpoin koko prosessissa. Meidän tarvitsee vain löytää kuuluisten kasvojen tietokannastamme henkilö, jolla on lähimpänä testikuvamme ominaisuuksia.

Tämä voidaan tehdä käyttämällä mitä tahansa perusalgoritmi koneoppimisluokitukset. Kaikki erikoistekniikat syvä oppiminen ei vaadita. Käytämme yksinkertaista lineaarista SVM-luokittajaa, mutta monia muita luokitusalgoritmeja voidaan käyttää.

Meidän tarvitsee vain kouluttaa luokittelija, joka voi ottaa uuden testikuvan ominaisuudet ja raportoida, mikä kuuluisa kasvot vastaa parhaiten. Tällaisen luokittelijan työ kestää millisekunteja. Luokittelijan työn tulos on henkilön nimi!

Kokeillaan järjestelmäämme. Ensin harjoittelin luokittelijaa käyttämällä noin 20 Will Ferrellin, Chad Smithin ja Jimmy Fallonin kuvan ominaisuusjoukkoja:


Voi näitä upeita kuvia opetukseen!

Sitten suoritin luokituksen Jimmy Fallonin kuuluisan Youtube-videon jokaisessa ruudussa Will Ferrell ja Chad Smith teeskentelevät olevansa toisiaan :

Se toimi! Ja katso, kuinka hienosti se toimi kasvoille niin monesta eri suunnasta - jopa profiilissa!

Koko prosessin suorittaminen itse

Katsotaanpa vaadittuja vaiheita:

1. Käsittele kuva käyttämällä HOG-algoritmia luodaksesi kuvasta yksinkertaistetun version. Etsi tästä yksinkertaistetusta kuvasta alue, joka muistuttaa eniten kasvojen luotua HOG-esitystä.

2. Määritä kasvojen sijainti määrittämällä niihin tärkeimmät antropometriset pisteet. Kun nämä antropometriset pisteet on sijoitettu, käytä niitä kuvan muuntamiseen keskittämään silmät ja suun.

3. Ohjaa keskitetty kasvokuva hermoverkon läpi, joka on koulutettu havaitsemaan kasvojen ominaisuudet. Tallenna saadut 128 ominaisuutta.

4. Kun olet käynyt läpi kaikki kasvot, joiden ominaisuudet on otettu aiemmin, määritä henkilö, jonka kasvojen ominaisuudet ovat lähimpänä saatuja. Se on tehty!

Nyt kun tiedät, miten se kaikki toimii, katso ohjeet alusta loppuun, kuinka koko kasvojentunnistusprosessi suoritetaan oma tietokone käyttämällä OpenFacea:

Ennen kuin aloitat

Varmista, että Python, OpenFace ja dlib on asennettu. Voit asentaa ne manuaalisesti tai käyttää valmiiksi määritettyä säilökuvaa, johon kaikki on jo asennettu:

Docker pull bamos/openface docker run -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash cd /root/openface

Provinkki aloittelijalle: Jos käytät Dockeria OSX:ssä, voit tehdä OSX/Users/-kansion näkyväksi säilökuvan sisällä alla olevan kuvan mukaisesti:

Docker run -v /Käyttäjät:/host/Käyttäjät -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash cd /root/openface

Voit sitten käyttää kaikkia OSX-tiedostojasi säilökuvan sisällä osoitteessa /host/Users/…

Ls /isäntä/Käyttäjät/

Vaihe 1

Luo openface-kansioon kansio nimeltä ./training-images/.

Mkdir koulutus-kuvat

Vaihe 2

Luo alikansio jokaiselle henkilölle, jonka haluat tunnistaa. Esimerkiksi:

Mkdir ./training-images/will-ferrell/ mkdir ./training-images/chad-smith/ mkdir ./training-images/jimmy-fallon/

Vaihe 3

Kopioi jokaisen henkilön kaikki kuvat asianmukaisiin alikansioihin. Varmista, että jokaisessa kuvassa on vain yksi kasvo. Kasvojen ympäriltä ei tarvitse leikata. OpenFace tekee tämän automaattisesti.

Vaihe 4

Suorita openface-skriptit openface-juurihakemistosta:

Sijainnin tunnistus ja kohdistus on suoritettava ensin:

./util/align-dlib.py ./training-images/ align outerEyesAndNose ./aligned-images/ --size 96

Tämä luo uuden alikansion./aligned-images/, jossa on rajattu ja tasattu versio jokaisesta testikuvastasi.

Luo sitten näkymiä tasatuista kuvista:

./batch-represent/main.lua -outDir ./generated-embeddings/ -data ./aligned-images/

Alikansio ./generated-embeddings/ sisältää csv-tiedoston, joka sisältää ominaisuusjoukot jokaiselle kuvalle.

Harjoittele kasvojentunnistusmalliasi:

./demos/classifier.py juna ./generated-embeddings/

Luodaan uusi tiedosto nimellä./generated-embeddings/classifier.pk . Tämä tiedosto sisältää SVM-mallin, jota käytetään uusien kasvojen tunnistamiseen.

Tästä lähtien sinulla on toimiva kasvojentunnistus!

Vaihe 5. Tunnista kasvot!

Ota uusi kuva tuntemattoman henkilön kanssa. Suorita se luokittelijan komentosarjan läpi, kuten seuraava:

./demos/classifier.py päättele ./generated-embeddings/classifier.pkl your_test_image.jpg

Sinun pitäisi saada tällainen varoitus:

=== /test-images/will-ferrel-1.jpg === Ennusta will-ferrel 0,73:n varmuudella.

Täällä voit halutessasi määrittää python-skriptin./demos/classifier.py.

Tärkeitä huomautuksia:

Jos tulokset eivät ole tyydyttäviä, yritä lisätä muutama kuva jokaiselle henkilölle vaiheessa 3 (erityisesti kuvat eri suunnista).

Tämä komentosarja antaa aina varoituksen, vaikka se ei tuntisi henkilöä. Varsinaisessa käytössä sinun tulee tarkistaa luottamustaso ja poistaa varoitukset, joilla on alhainen luottamusarvo, koska ne ovat todennäköisesti virheellisiä.

Lisää tunnisteita

Nykyään ei ehkä ole muuta tekniikkaa, jota ympäröi niin monia myyttejä, valheita ja epäpätevyyttä. Toimittajat, jotka puhuvat teknologiasta, valehtelevat, poliitikot, jotka puhuvat onnistuneesta toteutuksesta, valehtelevat, useimmat teknologian myyjät valehtelevat. Joka kuukausi näen seuraukset siitä, että ihmiset yrittävät ottaa käyttöön kasvojentunnistuksen järjestelmiin, jotka eivät kestä sitä.

Tämän artikkelin aihe on ollut kipeä jo pitkään, mutta olin silti liian laiska kirjoittamaan sitä. Paljon tekstiä, jonka olen jo toistanut kaksikymmentä kertaa eri ihmisille. Mutta kun luin toisen roskapussin, päätin silti, että oli aika. Annan linkin tähän artikkeliin.

Niin. Tässä artikkelissa aion vastata muutamaan yksinkertaiseen kysymykseen:

Mistä luulet algoritmien luojien saaneen nämä perusteet?

Pieni vihje. Ensimmäinen NTech-tuote, joka heillä on nyt, on Find Face, ihmisten haku VKontaktesta. Mielestäni selityksiä ei tarvita. Tietenkin VKontakte taistelee robotteja vastaan, jotka pumppaavat kaiken avoimet profiilit. Mutta sikäli kuin olen kuullut, ihmiset lataavat edelleen. Ja luokkatoverit. Ja Instagram.

Näyttää siltä, ​​​​että Facebookissa - siellä kaikki on monimutkaisempaa. Mutta olen melkein varma, että he myös keksivät jotain.
Joten kyllä, jos profiilisi on julkinen, voit olla ylpeä, sillä sitä käytettiin algoritmien kouluttamiseen;)

Ratkaisuista ja yrityksistä

Tästä on syytä olla ylpeä. Maailman viidestä johtavasta yrityksestä kaksi on nyt venäläisiä. Nämä ovat N-Tech ja VisionLabs. Puoli vuotta sitten johtajia olivat NTech ja Vocord, edellinen toimi paljon paremmin käännetyille kasvoille, jälkimmäinen frontaalisille.

Nyt jäljellä olevat johtajat ovat 1-2 kiinalaista yritystä ja 1 amerikkalainen, Vocord on menettänyt jotain luokituksessa.

Muita venäläisiä luokituksessa ovat itmo, 3divi ja intellivision. Synesis on valkovenäläinen yritys, vaikka osa siitä oli kerran Moskovassa noin 3 vuotta sitten, heillä oli blogi Habressa. Tiedän useista muistakin ratkaisuista, että ne kuuluvat ulkomaisille yrityksille, mutta kehitystoimistot ovat myös Venäjällä. Niitä on vielä muutama venäläiset yritykset jotka eivät ole kilpailussa, mutta joilla näyttää olevan hyviä ratkaisuja. Esimerkiksi vuosituhattavoitteet ovat. Ilmeisesti myös Odnoklassnikilla ja Vkontaktella on omat hyvät, mutta ne ovat sisäiseen käyttöön.

Lyhyesti sanottuna, kyllä, enimmäkseen meillä ja kiinalaisilla on samat ilmeet.

NTech esitteli ensimmäisenä maailmassa hyvät parametrit uusi taso. Jossain vuoden 2015 lopussa. VisionLabs on juuri saavuttanut NTechin. Vuonna 2015 he olivat markkinajohtajia. Mutta heidän päätöksensä oli viimeinen sukupolvi, ja he alkoivat yrittää päästä NTTechiin kiinni vasta vuoden 2016 lopussa.

Rehellisesti sanottuna en pidä kummastakaan näistä yrityksistä. Todella aggressiivista markkinointia. Olen nähnyt ihmisiä, joille myytiin selvästi sopimaton ratkaisu, joka ei ratkaissut heidän ongelmiaan.

Tältä puolelta pidin Vocordista paljon enemmän. Konsultoin kerran joitain tyyppejä, joille Vocord sanoi erittäin rehellisesti: "Projektisi ei toimi tällaisten kameroiden ja asennuspisteiden kanssa." NTech ja VisionLabs yrittivät onnellisina myydä. Mutta Vocord on kadonnut hiljattain.

Johtopäätökset

Lopuksi haluaisin sanoa seuraavaa. Kasvojentunnistus on erittäin hyvä ja tehokas työkalu. Sen avulla voit todella löytää rikollisia tänään. Mutta sen toteuttaminen vaatii kaikkien parametrien erittäin tarkan analyysin. OpenSource-ratkaisuja on tarjolla runsaasti. On olemassa sovelluksia (tunnistaminen väkijoukossa stadioneilla), joissa sinun tarvitsee vain asentaa VisionLabs|Ntech ja ylläpitää ylläpito-, analysointi- ja päätöksentekotiimiä. Ja OpenSource ei auta sinua tässä.

Nykyään et voi uskoa kaikkia satuja, että voit saada kiinni kaikki rikolliset tai tarkkailla kaikkia kaupungissa. Mutta on tärkeää muistaa, että tällaiset asiat voivat auttaa saamaan rikolliset kiinni. Esimerkiksi, jotta kaikki eivät pysähtyisi metrossa, vaan vain ne, joita järjestelmä pitää samanlaisina. Sijoita kamerat niin, että kasvot tunnistetaan paremmin, ja luo tähän sopiva infrastruktuuri. Vaikka esimerkiksi minä vastustan tätä. Koska virheen hinta, jos sinut tunnistetaan joksikin muuksi, voi olla liian korkea.

Lisää tunnisteita

Kadehdittavalla säännöllisyydellä Habrésta ilmestyy artikkeleita, joissa puhutaan erilaisista kasvojentunnistusmenetelmistä. Päätimme paitsi tukea tätä upeaa aihetta, myös julkaista sisäisen asiakirjamme, joka kattaa elleivät kaikki, mutta monet lähestymistavat kasvojen tunnistamiseen, niiden vahvuuksiin ja heikkouksiin. Sen on koonnut insinöörimme Andrey Gusak konenäköosaston nuorille työntekijöille niin sanotusti koulutustarkoituksiin. Tänään tarjoamme sitä kaikille halukkaille. Artikkelin lopussa on vaikuttava luettelo uteliaimmista lähteistä.

Joten aloitetaan.
Esitettyjen algoritmien laajasta valikoimasta huolimatta kasvojentunnistusprosessin yleinen rakenne voidaan tunnistaa:

Yleinen kasvokuvan käsittelyprosessi tunnistuksen aikana

Ensimmäisessä vaiheessa kasvot tunnistetaan ja lokalisoidaan kuvassa. Tunnistusvaiheessa kasvokuva kohdistetaan (geometrinen ja kirkkaus), piirteet lasketaan ja tunnistus suoritetaan suoraan - vertaamalla laskettuja piirteitä tietokantaan tallennettuihin standardeihin. Suurin ero kaikkien esitettyjen algoritmien välillä on ominaisuuksien laskeminen ja niiden joukkojen vertailu keskenään.

1. Menetelmä joustavaan vertailuun kaavioissa (Elastic graph matching).

Menetelmän ydin on kasvokuvia kuvaavien kaavioiden elastinen sovittaminen. Kasvot esitetään kaavioina, joissa on painotetut kärjet ja reunat. Tunnistusvaiheessa yksi kaavioista - referenssi - pysyy ennallaan, kun taas toinen muotoutuu, jotta se sopii parhaiten ensimmäiseen. Tällaisissa tunnistusjärjestelmissä graafit voivat olla joko suorakaiteen muotoinen hila tai rakenne, joka muodostuu kasvojen tunnusomaisista (antropometrisista) pisteistä.

A)

B)

Esimerkki kasvojentunnistuksen graafirakenteesta: a) säännöllinen hila b) kasvojen antropometrisiin pisteisiin perustuva graafi.

Kaavion huipuissa ominaisuuksien arvot lasketaan, useimmiten käyttämällä Gabor-suodattimien tai niiden järjestettävien joukkojen kompleksisia arvoja - Gabor-aallokkeita (Gabor-taulukot), jotka lasketaan jollakin paikallisella alueella. graafin huippupiste paikallisesti konvoloimalla pikselien kirkkausarvot Gabor-suodattimilla.


Sarja (pankki, jet) Gabor-suodattimia


Esimerkki kasvokuvan konvoluutiosta kahdella Gabor-suodattimella

Kuvaajan reunat painotetaan vierekkäisten kärkien välisillä etäisyyksillä. Kahden graafin välinen ero (etäisyys, erotteleva ominaisuus) lasketaan jollakin muodonmuutoskustannusfunktiolla, joka ottaa huomioon sekä pisteissä laskettujen piirrearvojen eron että graafin reunojen muodonmuutosasteen.
Kuvaajan muodonmuutos tapahtuu siirtämällä kutakin sen kärkeä tietyllä etäisyydellä tiettyihin suuntiin suhteessa sen alkuperäiseen sijaintiin ja valitsemalla sellainen asema, jossa ominaisuuksien arvojen (Gabor-suodatinvasteiden) välinen ero deformoituneen pisteen kärjessä graafi ja vertailugraafin vastaava kärkipiste on minimaalinen. Tämä toiminto suoritetaan yksitellen kaikille graafin pisteille, kunnes saavutetaan pienin kokonaisero deformoituneen ja referenssigraafin ominaisuuksien välillä. Muodonmuutosten kustannusfunktion arvo tässä muodonmuutoskäyrän kohdassa on syötepinnan kuvan ja vertailukäyrän välisen eron mitta. Tämä "relaksaatio"-muodonmuutosmenettely on suoritettava kaikille järjestelmän tietokantaan sisältyville vertailuhenkilöille. Järjestelmän tunnistuksen tulos on standardi, jonka muodonmuutoshintafunktion arvo on paras.


Esimerkki graafin muodonmuutoksesta säännöllisen hilan muodossa

Jotkut julkaisut osoittavat 95-97 %:n tunnistustehokkuuden jopa erilaisissa tunneilmaisuissa ja kasvojen kulman muutoksissa 15 asteeseen asti. Graafisten elastisten vertailujärjestelmien kehittäjät kuitenkin mainitsevat tämän lähestymistavan korkeita laskentakustannuksia. Esimerkiksi syötetyn kasvokuvan vertaaminen 87 vertailukuvaan kesti noin 25 sekuntia, kun sitä suoritettiin rinnakkaisessa tietokoneessa, jossa oli 23 muuntajaa (Huomautus: julkaisu päivätty 1993). Muut tätä aihetta käsittelevät julkaisut joko eivät mainitse aikaa tai sanovat sen olevan pitkä.

Vikoja: tunnistusmenettelyn suuri laskennallinen monimutkaisuus. Alhaista teknologiaa uusien standardien ulkoamisessa. Käyttöajan lineaarinen riippuvuus kasvotietokannan koosta.

2. Neuroverkot

Tällä hetkellä neuroverkkoja (NN) on noin tusinaa. Yksi yleisimmin käytetyistä vaihtoehdoista on monikerroksiselle perceptronille rakennettu verkko, jonka avulla voit luokitella tulokuvan/signaalin verkon alustavan konfiguraation/koulutuksen mukaan.
Neuroverkkoja koulutetaan harjoitusesimerkkien avulla. Harjoittelun ydin on interneuroniyhteyksien painojen säätäminen optimointiongelman ratkaisuprosessissa gradienttilaskeutumismenetelmällä. NN-koulutusprosessin aikana keskeiset ominaisuudet poimitaan automaattisesti, niiden tärkeys määritetään ja niiden välille rakennetaan suhteita. Oletetaan, että koulutettu NN kykenee soveltamaan koulutusprosessin aikana saatua kokemusta tuntemattomiin kuviin yleistyskykynsä ansiosta.
Parhaat tulokset kasvojentunnistuksen alalla (julkaisujen analyysitulosten mukaan) osoittivat Convolutional Neural Network tai konvoluutiohermoverkko (jäljempänä CNN), joka on looginen kehitys tällaisten hermoverkkoarkkitehtuurien ideoille. kognitronina ja neokognitronina. Menestys johtuu kyvystä ottaa huomioon kuvan kaksiulotteinen topologia, toisin kuin monikerroksinen perceptron.
CNN:iden erityispiirteitä ovat paikalliset reseptorikentät (tarjoavat neuronien paikallisen kaksiulotteisen liitettävyyden), jaetut painot (tarjoavat tiettyjen ominaisuuksien havaitsemisen missä tahansa kuvassa) ja hierarkkinen järjestys spatiaalisella näytteenotolla (spatiaalinen alinäytteenotto). Näiden innovaatioiden ansiosta CNN tarjoaa osittaisen vastustuskyvyn mittakaavamuutoksille, siirtymille, kierroksille, perspektiivin muutoksille ja muille vääristymille.


Kaaviokuvaurista

CNN:n testaus ORL-tietokannassa, joka sisälsi kuvia kasvoista, joissa oli pieniä muutoksia valaistuksessa, mittakaavassa, avaruudellisissa kierroksissa, asennossa ja erilaisissa tunteissa, osoitti 96 %:n tunnistustarkkuuden.
CNN sai kehitystyönsä DeepFacen kehittämisessä, jonka osti
Facebook tunnistaa sosiaalisen verkostonsa käyttäjien kasvot. Kaikki arkkitehtoniset ominaisuudet ovat suljettuina.


Kuinka DeepFace toimii

Neuroverkkojen haitat: uuden referenssihenkilön lisääminen tietokantaan vaatii verkoston täydellisen uudelleenkoulutuksen koko olemassa olevaan joukkoon (melko pitkä prosessi, otoskoosta riippuen 1 tunnista useisiin päiviin). Koulutukseen liittyvät matemaattiset ongelmat: paikalliseen optimiin pääseminen, optimaalisen optimointivaiheen valinta, uudelleenkoulutus jne. Verkkoarkkitehtuurin valintavaihe (neuronien määrä, kerrokset, yhteyksien luonne) on vaikea formalisoida. Yhteenvetona kaikesta yllä olevasta voimme päätellä, että hermoverkko on "musta laatikko", jonka tulokset ovat vaikeasti tulkittavia.

3. Piilotetut Markov-mallit (HMM, HMM)

Yksi niistä tilastolliset menetelmät Kasvojentunnistustyökalut ovat diskreettiaikaisia ​​piilotettuja Markov-malleja (HMM). HMM:t käyttävät signaalien tilastollisia ominaisuuksia ja ottavat suoraan huomioon niiden spatiaaliset ominaisuudet. Mallin elementit ovat: joukko piilotiloja, joukko havaittuja tiloja, siirtymätodennäköisyyksien matriisi, tilojen alkutodennäköisyys. Jokaisella on oma Markov-mallinsa. Kohdetta tunnistettaessa tarkistetaan tietylle objektikannalle generoidut Markov-mallit ja haetaan suurinta havaittua todennäköisyyttä, että tietyn kohteen havaintosarja on generoitu vastaavalla mallilla.
Tähän mennessä ei ole ollut mahdollista löytää esimerkkiä HMM:n kaupallisesta sovelluksesta kasvojentunnistukseen.

Vikoja:
- jokaisen tietokannan malliparametrit on valittava;
- HMM:llä ei ole erottelukykyä, eli oppimisalgoritmi vain maksimoi kunkin kuvan vasteen sen malliin, mutta ei minimoi vastetta muihin malleihin.

4. Pääkomponenttianalyysi (PCA)

Yksi tunnetuimmista ja kehittyneimmistä on Karhunen-Loev-muunnokseen perustuva pääkomponenttianalyysi (PCA).
Aluksi pääkomponenttimenetelmää alettiin käyttää tilastoissa ominaisuustilan pienentämiseksi ilman merkittävää tiedon menetystä. Kasvojentunnistuksen tehtävässä sitä käytetään pääasiassa esittämään kasvokuvaa pieniulotteisella vektorilla (pääkomponentit), jota sitten verrataan tietokantaan tallennettuihin referenssivektoreihin.
Pääkomponenttimenetelmän päätavoitteena on merkittävästi pienentää piirreavaruuden ulottuvuutta siten, että se kuvaa mahdollisimman hyvin "tyypillisiä" monille yksilöille kuuluvia kuvia. Tällä menetelmällä on mahdollista tunnistaa erilaisia ​​variaatioita kasvokuvien harjoitusjoukosta ja kuvata tätä vaihtelua useiden ortogonaalisten vektoreiden perusteella, joita kutsutaan ominaiskasvoiksi.

Kerran kasvokuvien harjoitusjoukossa saatua ominaisvektorijoukkoa käytetään koodaamaan kaikki muut kasvokuvat, jotka esitetään näiden ominaisvektoreiden painotetulla yhdistelmällä. Rajoitettua määrää ominaisvektoreita käyttämällä voidaan saada kompressoitu approksimaatio tulokasvokuvaan, joka voidaan sitten tallentaa tietokantaan kertoimien vektorina, joka toimii myös hakuavaimena kasvotietokannassa.

Pääkomponenttimenetelmän olemus on seuraava. Ensin koko kasvojen harjoitusjoukko muunnetaan yhdeksi yhteiseksi datamatriisiksi, jossa jokainen rivi edustaa yhtä esiintymää kasvokuvasta, joka on hajotettu riviksi. Kaikki harjoitussarjan kasvot on pienennettävä samankokoisiksi ja normalisoiduilla histogrammeilla.


Kasvojen harjoitusjoukon muunnokset yhdeksi yleismatriisiksi X

Sitten tiedot normalisoidaan ja rivit pienennetään 0 keskiarvoon ja 1 varianssiin, ja lasketaan kovarianssimatriisi. Tuloksena olevalle kovarianssimatriisille on ratkaistu ominaisarvojen ja vastaavien ominaisvektorien (ominaispintojen) määrittämisongelma. Seuraavaksi ominaisvektorit lajitellaan ominaisarvojen laskevaan järjestykseen ja vain ensimmäiset k vektoria jätetään säännön mukaan:




PCA-algoritmi


Esimerkki kymmenestä ensimmäisestä ominaisvektorista (ominaispinnasta), joka on saatu opetetusta kasvojoukosta

= 0.956*-1.842*+0.046

Esimerkki ihmisen kasvojen rakentamisesta (syntetisoinnista) ominaiskasvojen ja pääkomponenttien yhdistelmällä


Periaate valita kanta ensimmäisistä parhaista ominaisvektoreista


Esimerkki kasvojen kartoittamisesta kolmiulotteiseen metriseen avaruuteen, joka saadaan kolmesta ominaispinnasta ja lisätunnistuksesta

Pääkomponenttimenetelmä on osoittautunut hyvin käytännön sovelluksissa. Kuitenkin tapauksissa, joissa kasvokuva sisältää merkittäviä muutoksia valaistuksessa tai ilmeessä, menetelmän tehokkuus laskee merkittävästi. Asia on siinä, että PCA valitsee aliavaruuden, jonka tavoitteena on maksimoida syötetietojoukon approksimaatio eikä tehdä eroa kasvojen luokkien välillä.

Ratkaisua tähän ongelmaan ehdotettiin käyttämällä Fisherin lineaarista erottajaa (kirjallisuudessa löytyy nimi "Eigen-Fisher", "Fisherface", LDA). LDA valitsee lineaarisen aliavaruuden, joka maksimoi suhteen:

Jossa

Luokkien välinen hajontamatriisi ja

Luokan sisäinen dispersiomatriisi; m – tietokannan luokkien lukumäärä.

LDA etsii dataprojektiota, jossa luokat ovat maksimaalisesti lineaarisesti erotettavissa (katso alla oleva kuva). Vertailun vuoksi PCA etsii dataprojektiota, joka maksimoi leviämisen koko kasvotietokannassa (luokat huomioimatta). Kokeilutulosten mukaan kasvokuvien voimakkaan tankin ja pohjan varjostuksen olosuhteissa Fisherface osoitti 95 % tehokkuutta verrattuna 53 % Eigenfaceen.


Perimmäinen ero PCA- ja LDA-projektioiden muodostumisen välillä

Ero PCA:n ja LDA:n välillä

5. Aktiiviset ulkoasumallit (AAM) ja aktiiviset muotomallit (ASM) ()
Aktiiviset ulkoasumallit (AAM)
Aktiiviset mallit ulkonäkö(Active Appearance Models, AAM) ovat tilastollisia kuvamalleja, jotka voidaan säätää todelliseksi kuvaksi erilaisten muodonmuutosten avulla. Tim Coots ja Chris Taylor ehdottivat tämäntyyppistä mallia kaksiulotteisena versiona vuonna 1998. Aluksi aktiiviset mallit ulkonäköä käytettiin arvioimaan kasvokuvien parametreja.
Aktiivinen ulkoasumalli sisältää kahden tyyppisiä parametreja: muotoon liittyvät parametrit (muotoparametrit) ja parametrit, jotka liittyvät kuvan pikselien tai tekstuurin tilastolliseen malliin (ulkonäköparametrit). Ennen käyttöä malli on koulutettava esimerkittyjen kuvien sarjaan. Kuvamerkintä tehdään manuaalisesti. Jokaisella merkillä on oma numeronsa ja se määrittelee ominaisen pisteen, joka mallin on löydettävä mukautuessaan uuteen kuvaan.


Esimerkki kasvokuvan merkitsemisestä 68 pisteestä muodostaen AAM-muodon.

AAM-harjoitusprosessi alkaa normalisoimalla merkittyjen kuvien muotoja mittakaavan, kallistuksen ja siirtymän erojen kompensoimiseksi. Tätä tarkoitusta varten käytetään niin kutsuttua yleistettyä Procrustes-analyysiä.


Kasvojen muotopisteiden koordinaatit ennen ja jälkeen normalisoinnin

Koko normalisoitujen pisteiden joukosta pääkomponentit erotetaan sitten PCA-menetelmällä.


AAM-muotomalli koostuu kolmiomittaushilasta s0 ja lineaarinen yhdistelmä siirtymät si suhteessa s0:aan

Seuraavaksi muotopisteiden muodostamien kolmioiden sisällä olevista pikseleistä muodostetaan matriisi siten, että jokainen sen sarake sisältää vastaavan tekstuurin pikseliarvot. On syytä huomata, että harjoitteluun käytettävät tekstuurit voivat olla joko yksikanavaisia ​​(harmaasävy) tai monikanavaisia ​​(esim. RGB-väriavaruus tai muita). Monikanavaisten tekstuurien tapauksessa kullekin kanavalle muodostetaan erikseen pikselivektorit ja sitten ne ketjutetaan. Kun tekstuurimatriisin pääkomponentit on löydetty, AAM-mallia pidetään koulutetuksi.

AAM-ulkonäkömalli koostuu perusulkomuodosta A0, jonka määrittävät perushilan s0 sisällä olevat pikselit, ja lineaarisesta siirtymien Ai yhdistelmästä suhteessa A0

Esimerkki AAM-instanssista. Muotoparametrivektori
p=(p_1,p_2,〖…,p〗_m)^T=(-54,10,-9.1,…)^T käytetään syntetisoimaan muodon s malli ja parametrivektori λ=(λ_1,λ_2 ,〖…, λ〗_m)^T=(3559,351,-256,…)^T mallin ulkonäön syntetisoimiseksi. Lopullinen kasvomalli 〖M(W(x;p))〗^ saadaan kahden mallin - muodon ja ulkonäön - yhdistelmänä.

Mallin sovittaminen tiettyyn kasvokuvaan tapahtuu optimointiongelman ratkaisemisen yhteydessä, jonka ydin tiivistyy toiminnallisuuden minimoimiseen

Käyttämällä gradienttilaskumenetelmää. Tässä tapauksessa löydetyt malliparametrit heijastavat mallin sijaintia tietyssä kuvassa.




Esimerkki mallin sovittamisesta tiettyyn kuvaan gradienttilaskeutumismenettelyn 20 iteraatiossa.

AAM:n avulla voit mallintaa kuvia kohteista, jotka ovat alttiita sekä jäykille että ei-jäykille muodonmuutoksille. AAM koostuu joukosta parametreja, joista osa edustaa kasvojen muotoa, loput määrittelevät sen tekstuurin. Muodonmuutos ymmärretään yleensä geometriseksi muunnokseksi translaatio-, kierto- ja skaalausyhdistelmän muodossa. Ratkaistaessa kasvojen lokalisoinnin ongelmaa kuvassa, etsitään AAM:n parametreja (sijainti, muoto, tekstuuri), jotka edustavat lähimpänä havaittua syntetisoitua kuvaa. AAM:n läheisyysasteen mukaan sovitettuun kuvaan päätetään, onko kasvot vai ei.

Aktiiviset muotomallit (ASM)

ASM-menetelmän ydin on ottaa huomioon antropometristen pisteiden sijaintien väliset tilastolliset suhteet. Perustuu saatavilla olevaan otokseen kasvojen edestä otetuista kuvista. Kuvassa asiantuntija merkitsee antropometristen pisteiden sijainnin. Jokaisessa kuvassa pisteet on numeroitu samassa järjestyksessä.




Esimerkki kasvojen muodon esityksestä 68 pisteen avulla

Jotta kaikkien kuvien koordinaatit saataisiin yhteen järjestelmään, ns. yleistetty Procrustes-analyysi, jonka tuloksena kaikki pisteet tuodaan samaan mittakaavaan ja keskitetään. Seuraavaksi lasketaan koko kuvasarjan keskimääräinen muoto ja kovarianssimatriisi. Kovarianssimatriisin perusteella laskemme ominaisvektorit, jotka sitten lajitellaan niiden vastaavien ominaisarvojen mukaan laskevaan järjestykseen. ASM-malli määritellään matriisilla Φ ja keskimääräisellä muotovektorilla s ̅.
Sitten mikä tahansa muoto voidaan kuvata mallin ja parametrien avulla:

ASM-mallin lokalisointi uudelle kuvalle, joka ei sisälly koulutussarjaan, suoritetaan optimointiongelman ratkaisuprosessissa.


a) b) c) d)
Kuva prosessista, jolla ASM-malli lokalisoidaan tietylle kuvalle: a) aloitusasento b) 5 iteraation jälkeen c) 10 iteroinnin jälkeen d) malli konvergoi

AAM:n ja ASM:n päätavoite ei kuitenkaan ole kasvojentunnistus, vaan kasvojen ja antropometristen pisteiden tarkka paikantaminen kuvassa jatkokäsittelyä varten.

Lähes kaikissa algoritmeissa pakollinen luokittelua edeltävä vaihe on kohdistus, mikä tarkoittaa kasvokuvan kohdistamista etuasentoon suhteessa kameraan tai kasvojen joukon tuomista (esimerkiksi luokittelijan koulutuksen harjoitussarjassa) yksi koordinaattijärjestelmä. Tämän vaiheen toteuttamiseksi on tarpeen paikantaa antropometriset pisteet, jotka ovat ominaisia ​​kaikille kuvan kasvoille - useimmiten nämä ovat oppilaiden keskipisteitä tai silmäkulmia. Eri tutkijat tunnistavat eri ryhmiä tällaisista kohdista. Reaaliaikaisten järjestelmien laskentakustannusten vähentämiseksi kehittäjät jakavat enintään 10 tällaista pistettä.

AAM- ja ASM-mallit on suunniteltu tarkasti paikallistamaan nämä antropometriset pisteet kasvokuvassa.

6. Tärkeimmät kasvojentunnistusjärjestelmien kehittämiseen liittyvät ongelmat

Valon ongelma

Pään asennon ongelma (kasvot ovat loppujen lopuksi 3D-objekti).

Arvioidakseen ehdotettujen kasvojentunnistusalgoritmien tehokkuutta DARPA ja US Army Research Laboratory kehittivät FERET-ohjelman (kasvojentunnistustekniikka).

FERET-ohjelman laajamittaisiin testeihin osallistuivat algoritmit, jotka perustuvat joustavaan graafien vertailuun ja erilaisiin pääkomponenttimenetelmän (PCA) muunnelmiin. Kaikkien algoritmien tehokkuus oli suunnilleen sama. Tämän vuoksi on vaikeaa tai jopa mahdotonta tehdä selkeitä eroja niiden välillä (varsinkin jos testauspäivämäärät ovat yhdenmukaisia). Samana päivänä otettujen etukuvien hyväksyttävä tunnistustarkkuus on tyypillisesti 95 %. Eri laitteilla ja erilaisissa valaistusolosuhteissa otettujen kuvien tarkkuus laskee yleensä 80 prosenttiin. Vuoden välein otettujen kuvien tunnistustarkkuus oli noin 50 %. On syytä huomata, että jopa 50 prosenttia on enemmän kuin hyväksyttävä tarkkuus tällaisessa järjestelmässä.

FERET julkaisee vuosittain vertailevan testiraportin huippuluokan kasvojentunnistusjärjestelmistä, joissa käytetään yli miljoona kasvoa. Valitettavasti sisään uusimmat raportit Tunnistusjärjestelmien rakentamisen periaatteita ei julkisteta, vaan ainoastaan ​​kaupallisten järjestelmien toiminnan tulokset julkaistaan. Nykyään johtava järjestelmä on NEC:n kehittämä NeoFace-järjestelmä.

Lista viitteitä (Google ensimmäisessä linkissä)
1. Kuvapohjainen kasvojentunnistus – ongelmat ja menetelmät
2. Kasvojentunnistustutkimus.pdf
3. Kasvojentunnistus Kirjallisuustutkimus
4. Selvitys kasvojentunnistustekniikoista
5. Selvitys kasvojen havaitsemisesta, poistamisesta ja tunnistamisesta
6. Katsaus menetelmiin ihmisten tunnistamiseksi kasvokuvan perusteella
7. Menetelmät henkilön tunnistamiseksi kasvokuvasta
8. Vertaileva analyysi kasvojentunnistusalgoritmit
9. Kasvojentunnistustekniikat
10. Noin yksi lähestymistapa antropometristen pisteiden lokalisointiin.
11. Kasvojentunnistus ryhmäkuvissa segmentointialgoritmeilla
12. Raportti tutkimustyöstä Kasvojentunnistuksen 2. vaihe
13. Kasvojentunnistus elastisella nippukuvaajalla
14. Algoritmit henkilön tunnistamiseksi valokuvasta geometristen muunnosten perusteella. Väitöskirja.
15. Vääristymätön objektin tunnistus dynaamisen linkin arkkitehtuurissa
16. Kasvojen tunnistus käyttämällä aktiivisia muotomalleja, paikallisia laastaria ja tukivektorikoneita
17. Kasvojentunnistus aktiivisten ulkoasumallien avulla
18. Aktiiviset ulkoasumallit kasvojentunnistusta varten
19. Kasvojen kohdistus aktiivisella muotomallilla ja tukivektorikoneella
20. Aktiiviset muotomallit – niiden koulutus ja soveltaminen
21. Fisher Vector Faces in the Wild
22. Omat kasvot vs. Fisherfaces Recognition käyttäen luokkakohtaista lineaariprojektiota
23. Ominaiskasvot ja kalakasvot
24. Mittasuhteiden vähentäminen
25. ICCV 2011 -opetusohjelma osiin perustuvasta deformoituvasta rekisteröinnistä
26. Rajoitettu paikallinen malli kasvojen kohdistukselle, opetusohjelma
27. Kuka sinä olet – henkilökohtaisten luokittelujen oppiminen videosta
28. Ihmisen tunnistus kasvokuvasta hermoverkkomenetelmillä
29. Kasvojentunnistus Konvoluutiohermoverkon lähestymistapa
30. Kasvojentunnistus käyttämällä konvoluutiohermoverkkoa ja yksinkertaista logistista luokittelua
31. Kasvokuva-analyysi konvoluutiohermoverkkojen avulla
32. Markovin piiloprosesseihin perustuvat kasvojentunnistusmenetelmät. Tekijä-ferat
33. Piilotettujen Markov-mallien soveltaminen kasvojentunnistukseen
34. Kasvojentunnistus ja tunnistus piilotettujen Markovin mallien avulla
35. Kasvojentunnistus GNU Octave-MATLABilla
36. Kasvojentunnistus Pythonilla
37. Antropometrinen 3D-kasvojentunnistus
38. 3D-kasvojentunnistus
39. Kasvojentunnistus, joka perustuu 3D-muovattavan mallin sovittamiseen
40. Kasvojentunnistus
41. Vankka kasvojen tunnistus harvan esityksen kautta
42. FERET-arviointimenetelmä kasvojentunnistusalgoritmeille
43. Etsi kasvoja sähköisistä historiallisten valokuvien kokoelmista
44. Reaaliaikaiseen kasvojentunnistukseen tarkoitettujen laitteistonäköjärjestelmien suunnittelu, toteutus ja arviointi
45. Johdatus hyvään, pahaan ja rumiin kasvojen tunnistushaasteeseen
46. ​​Ihmiskasvojen tunnistamiseen digitaalisissa kuvissa tarkoitettujen menetelmien tutkimus ja kehittäminen. Diplomi
47. DeepFace sulkee eron ihmistason suorituskykyyn kasvojen vahvistamisessa
48. TV-videon hahmojen automaattisen nimeämisen poistaminen
49. Kohti käytännöllistä kasvojentunnistusjärjestelmää Vankka kohdistus ja valaistus harvalla esityksellä
50. Ihmiskasvojen tunnistusalgoritmit sovellettavien kuva-analyysin ja -käsittelyn ongelmien ratkaisemiseen
51. Kasvojen havaitseminen ja paikantaminen kuvassa
52. Muokattu Viola-Jones motode
53. Algoritmien kehittäminen ja analysointi koneoppimismenetelmiin perustuvien objektien havaitsemiseen ja luokitteluun
54. Yleiskatsaus kasvojentunnistuksen suureen haasteeseen
55. Kasvojentunnistustoimittajan testi (FRVT)
56. SURF-algoritmin käytön tehokkuudesta kasvojen tunnistamisessa

Lainan ottaminen, viisumin hakeminen tai yksinkertaisesti uusimman älypuhelimen mallin lanseeraus - kaikki tämä on nykyään mahdotonta ilman kasvojentunnistusalgoritmien osallistumista. He auttavat poliiseja tutkimuksissa, muusikoita lavalla, mutta pikkuhiljaa heistä tulee kaikkinäkevä silmä, joka seuraa kaikkia toimintaamme verkossa ja offline-tilassa.

Algoritmit (teknologiat)

Henkilön tunnistaminen valokuvasta tietokoneen näkökulmasta tarkoittaa kahta hyvin erilaista tehtävää: ensinnäkin löytää kuvasta kasvot (jos se on siellä) ja toiseksi eristää kuvasta ne piirteet, jotka erottavat tämän henkilön muista tietokannassa olevia ihmisiä.

1. Etsi

Yritykset opettaa tietokonetta löytämään kasvoja valokuvista on jatkunut 1970-luvun alusta lähtien. Monia lähestymistapoja kokeiltiin, mutta tärkein läpimurto tapahtui paljon myöhemmin – Paul Violan ja Michael Jonesin luoessa vuonna 2001 kaskaditehostusmenetelmä, eli heikkojen luokittelujen ketju. Vaikka nyt on olemassa kehittyneempiä algoritmeja, voit lyödä vetoa, että vanha kunnon Viola-Jones toimii sekä matkapuhelimessa että kamerassa. Kyse on hämmästyttävästä nopeudesta ja luotettavuudesta: jopa vuonna 2001 keskimääräinen tietokone pystyi käsittelemään 15 kuvaa sekunnissa tällä menetelmällä. Nykyään algoritmin tehokkuus täyttää kaikki kohtuulliset vaatimukset. Tärkein asia, joka sinun on tiedettävä tästä menetelmästä, on, että se on yllättävän yksinkertainen. Et uskokaan kuinka paljon.

  1. Vaihe 1. Poistamme värin ja muutamme kuvan kirkkausmatriisiksi.
  2. Vaihe 2. Aseta yksi neliömäisistä naamioista sen päälle - niitä kutsutaan Haar-ominaisuuksiksi. Käymme sen avulla läpi koko kuvan muuttamalla sijaintia ja kokoa.
  3. Vaihe 3. Laskemme yhteen digitaaliset kirkkausarvot matriisisoluista, jotka kuuluvat maskin valkoisen osan alle, ja vähennämme niistä arvot, jotka kuuluvat mustan osan alle. Jos ainakin yhdessä tapauksessa ero valkoisten ja mustien alueiden välillä on tietyn kynnyksen yläpuolella, otamme tämän kuvan alueen jatkotyöskentelyä varten. Jos ei, unohda hänet, täällä ei ole kasvoja.
  4. Vaihe 4. Toista vaiheesta 2 jo kanssa uusi maski- mutta vain kuvan alueella, joka läpäisi ensimmäisen testin.

Miksi tämä toimii? Katso merkkiä. Melkein kaikissa valokuvissa silmänympärys on aina hieman tummempi kuin välittömästi alla oleva alue. Katso kylttiä: keskellä oleva vaalea alue vastaa tummien silmien välissä sijaitsevaa nenäselkää. Ensi silmäyksellä mustavalkoiset naamarit eivät näytä ollenkaan kasvoilta, mutta kaikesta primitiivisyydestään huolimatta niillä on korkea yleistävä voima.

Miksi niin nopeasti? Yhtä tärkeää asiaa ei ole huomioitu kuvatussa algoritmissa. Jos haluat vähentää kuvan yhden osan kirkkauden toisesta, sinun on lisättävä kunkin pikselin kirkkaus, ja niitä voi olla useita. Siksi itse asiassa ennen maskin levittämistä matriisi muunnetaan integraaliesitykseen: kirkkausmatriisin arvot lisätään etukäteen siten, että suorakulmion kokonaiskirkkaus voidaan saada lisäämällä vain neljä numeroa.

Kuinka koota kaskadi? Vaikka jokainen maskauksen vaihe tuottaa erittäin suuren virheen (todellinen tarkkuus ei ole paljon yli 50 %), algoritmin vahvuus on prosessin kaskadiorganisaatiossa. Tämän avulla voit nopeasti sulkea pois analyysistä alueet, joilla ei ehdottomasti ole kasvoja, ja käyttää vaivaa vain niille alueille, jotka voivat tuottaa tuloksia. Tätä heikkojen luokittimien peräkkäin kokoamisen periaatetta kutsutaan boostingiksi (lisätietoja voi lukea PM or -lehden lokakuun numerosta). Yleinen periaate näin: jopa suuria virheitä, jotka kerrotaan keskenään, tulevat pieneksi.

2. Yksinkertaista

Sellaisten kasvojen piirteiden löytäminen, jotka mahdollistaisivat sen omistajan tunnistamisen, tarkoittaa todellisuuden vähentämistä kaavaksi. Puhumme yksinkertaistamisesta ja hyvin radikaalista. Esimerkiksi 64 x 64 pikselin pienoiskuvassa voi olla valtava määrä erilaisia ​​pikseliyhdistelmiä - (2 8) 64 x 64 = 2 32768 kappaletta. Lisäksi vain 33 bittiä riittäisi, jotta jokainen maapallon 7,6 miljardista ihmisestä laskettaisiin. Kun siirryt numerosta toiseen, sinun täytyy heittää pois kaikki ylimääräistä melua, mutta säilytä tärkein yksilölliset ominaisuudet. Tällaisia ​​ongelmia tuntevat tilastotieteilijät ovat kehittäneet monia tietojen yksinkertaistamistyökaluja. Esimerkiksi pääkomponenttimenetelmä, joka loi perustan kasvojen tunnistamiselle. Viime aikoina konvoluutiohermoverkot ovat kuitenkin jättäneet vanhat menetelmät kauas taakse. Niiden rakenne on melko erikoinen, mutta pohjimmiltaan tämä on myös yksinkertaistamismenetelmä: sen tehtävänä on pelkistää tietty kuva joukoksi ominaisuuksia.


Lisää kuvaan maski kiinteä koko(kutsutaan oikein konvoluutioytimeksi), kerromme kuvan jokaisen pikselin kirkkauden maskin kirkkausarvoilla. Löydämme kaikkien "ikkunan" pikselien keskiarvon ja kirjoitamme sen yhteen seuraavan tason soluun.


Siirrämme maskia kiinteällä askeleella, kerromme uudelleen ja kirjoitamme keskiarvon piirrekarttaan.


Käytyään läpi koko kuvan yhdellä maskilla, toistamme toisella - saamme uuden ominaisuuskartan.


Pienennämme karttojemme kokoa: otamme useita vierekkäisiä pikseleitä (esimerkiksi 2x2 tai 3x3 neliön) ja siirrämme ne seuraavalle tasolle vain yksi maksimiarvo. Teemme samoin kaikkien muiden maskien kanssa saaduille korteille.


Matemaattisen hygienian vuoksi korvaamme kaikki negatiiviset arvot nollilla. Toistamme vaiheesta 2 niin monta kertaa kuin haluamme saada tasoja hermoverkkoon.


From viimeinen kortti Emme kokoa konvoluutiota, vaan täysin yhdistettyä hermoverkkoa: muutamme kaikki viimeisen tason solut neuroneiksi, jotka tietyllä painolla vaikuttavat seuraavan kerroksen hermosoluihin. Viimeinen askel. Verkoissa, jotka on koulutettu luokittelemaan esineitä (erottelemaan kissoja koirista valokuvissa jne.), tässä on tuloskerros, eli luettelo tietyn vastauksen havaitsemisen todennäköisyyksistä. Kasvojen kohdalla tietyn vastauksen sijaan saamme lyhyen joukon kasvojen tärkeimpiä piirteitä. Esimerkiksi Google FaceNetissä nämä ovat 128 abstraktia numeerista parametria.

3. Tunnista

Useimmat viimeinen vaihe, tunnistaminen itsessään on yksinkertaisin ja jopa triviaali askel. Se tiivistyy arvioimaan tuloksena olevan ominaisuusluettelon samankaltaisuutta tietokannassa jo olevien ominaisuuksien kanssa. Matemaattisessa ammattikielessä tämä tarkoittaa etäisyyden löytämistä piirreavaruudesta tietystä vektorista lähimpään tunnettujen kasvojen alueeseen. Samalla tavalla voit ratkaista toisen ongelman - löytää ihmisiä, jotka ovat samanlaisia.

Miksi tämä toimii? Konvoluutiohermoverkko on suunniteltu poimimaan kuvasta tyypillisimpiä piirteitä ja tekemään tämän automaattisesti ja eri abstraktiotasoilla. Jos ensimmäiset tasot vastaavat yleensä yksinkertaisiin kuvioihin, kuten varjostukseen, gradienttiin, selkeisiin rajoihin jne., jokaisen uuden tason myötä ominaisuuksien monimutkaisuus lisääntyy. Maskit, joita hermoverkko yrittää käyttää korkealla tasolla, muistuttavat usein ihmisten kasvoja tai niiden fragmentteja. Lisäksi, toisin kuin pääkomponenttianalyysi, hermoverkot yhdistävät ominaisuuksia epälineaarisella (ja odottamattomalla) tavalla.

Mistä naamiot tulevat? Toisin kuin Viola-Jones-algoritmissa käytetyt naamarit, hermoverkot pärjäävät ilman ihmisen apua ja löytävät naamioita oppimisprosessin aikana. Tätä varten sinulla on oltava suuri harjoitussarja, joka sisältää kuvia erilaisista kasvoista erilaisilla taustoilla. Mitä tulee tuloksena olevaan ominaisuuksien joukkoon, jonka hermoverkko tuottaa, se muodostetaan triplettien menetelmällä. Kolmiot ovat kuvasarjoja, joissa kaksi ensimmäistä ovat valokuva samasta henkilöstä ja kolmas on valokuva toisesta. Neuraaliverkko oppii löytämään ominaisuuksia, jotka tuovat ensimmäiset kuvat mahdollisimman lähelle toisiaan ja samalla sulkevat pois kolmannen.

Kenen neuroverkko on parempi? Kasvojentunnistus on jo kauan sitten jättänyt akatemian kesken iso bisnes. Ja täällä, kuten missä tahansa liiketoiminnassa, valmistajat pyrkivät todistamaan, että heidän algoritminsa ovat parempia, vaikka ne eivät aina tarjoa tietoja avoimesta testauksesta. Esimerkiksi MegaFace-kilpailun mukaan tällä hetkellä parempi tarkkuus näyttää venäläisen deepVo V3 -algoritmin Vocordilta tuloksella 92%. Googlen FaceNet v8 samassa kilpailussa näyttää vain 70 % ja Facebookin DeepFace 97 %:n tarkkuudella ei osallistunut kilpailuun ollenkaan. Näitä lukuja on tulkittava varoen, mutta jo nyt on selvää, että parhaat algoritmit ovat saavuttaneet lähes ihmistason kasvojentunnistustarkkuuden.

Live meikki (taide)

Talvella 2016 58. vuosittaisessa Grammy-gaalassa Lady Gaga esitti kunnianosoituksen äskettäin kuolleelle David Bowielle. Esityksen aikana elävä laava levisi hänen kasvoilleen jättäen hänen otsaansa ja poskeen jäljen, jonka kaikki Bowie-fanit tunnistavat - oranssin salaman. Liikkuvan meikin vaikutus luotiin videoprojisoinnilla: tietokone seurasi laulajan liikkeitä reaaliajassa ja heijasti kuvia hänen kasvoilleen ottaen huomioon sen muodon ja sijainnin. Internetistä on helppo löytää video, jossa on havaittavissa, että projektio on edelleen epätäydellinen ja viivästyy hieman äkillisten liikkeiden aikana.


Nobumichi Asai on kehittänyt Omote-videokartoitustekniikkaa kasvoille vuodesta 2014 lähtien ja esitellyt sitä aktiivisesti ympäri maailmaa vuodesta 2015 lähtien keräten kunnollisen palkintolistan. Hänen perustamansa yritys, WOW Inc. Hänestä tuli Intelin kumppani ja sai hyvän kannustimen kehitykseen, ja yhteistyö Tokion yliopiston Ishikawa Watanaben kanssa antoi meille mahdollisuuden nopeuttaa ennustetta. Pääasia kuitenkin tapahtuu tietokoneessa, ja vastaavia ratkaisuja käyttävät monet kehittäjät sovellusten, joiden avulla voit laittaa naamioita kasvoillesi, olipa kyseessä Empire-sotilaskypärä tai "David Bowie" -meikki.

Alexander Khanin, VisionLabsin perustaja ja toimitusjohtaja

« Samanlainen järjestelmä ei tarvita tehokasta tietokonetta; mobiililaitteet. Järjestelmä voi toimia suoraan älypuhelimella lähettämättä tietoja pilveen tai palvelimelle."

”Tätä tehtävää kutsutaan kasvopisteiden seurannaksi. Julkisessa käytössä on monia samankaltaisia ​​ratkaisuja, mutta ammattiprojektit erottuvat nopeudesta ja fotorealismista”, VisionLabsin johtaja Alexander Khanin kertoi. "Vaikeinta tässä tapauksessa on pisteiden sijainnin määrittäminen kasvojen ilmeet ja kasvojen yksilöllinen muoto huomioon ottaen tai äärimmäisissä olosuhteissa: voimakkailla pään käännöksillä, riittämättömällä valaistuksella ja suurella valotuksella." Järjestelmän opettamiseksi etsimään pisteitä, neuroverkkoa koulutetaan - ensin manuaalisesti merkitsemällä valokuva valokuvan jälkeen. "Syöte on kuva ja tulos on merkitty pistejoukko", Alexander selittää. — Sitten ilmaisin käynnistetään, kasvot määritetään, sen 3D malli, johon naamio levitetään. Merkkejä käytetään jokaiseen streamin kehykseen reaaliajassa."


Suunnilleen näin Nobumichi Asain keksintö toimii. Aiemmin japanilainen insinööri skannaa malliensa päitä, hankkien tarkkoja kolmiulotteisia prototyyppejä ja valmistelee videojakson kasvojen muodon huomioon ottaen. Tehtävää helpottavat myös pienet heijastavat merkit, jotka liimataan esiintyjään ennen lavalle menoa. Viisi infrapunakameroita seurata niiden liikkeitä ja lähettää seurantatietoja tietokoneelle. Sitten kaikki tapahtuu kuten VisionLabs kertoi: kasvot tunnistetaan, kolmiulotteinen malli rakennetaan ja Ishikawa Watanaben projektori tulee peliin.

Hän esitteli DynaFlash-laitteen vuonna 2015: se on nopea projektori, joka voi seurata ja kompensoida sen tason liikkeitä, jolla kuva näytetään. Näyttöä voidaan kallistaa, mutta kuva ei vääristy ja lähetetään jopa tuhannen 8-bittisen kehyksen taajuudella sekunnissa: viive ei ylitä kolmea millisekuntia silmälle huomaamattomasti. Asaille tällainen projektori osoittautui jumalan lahjaksi, ja se alkoi toimia todella reaaliajassa. Suositun japanilaisen Inorin vuonna 2017 tallennetussa videossa viivettä ei enää näy ollenkaan. Tanssijoiden kasvot muuttuvat joko eläviksi pääkalloiksi tai itkeviksi naamioiksi. Se näyttää raikkaalta ja herättää huomiota - mutta tekniikka on nopeasti tulossa muodikkaaksi. Pian perhonen laskeutuu sääennustajan poskelle tai esiintyjät, jotka vaihtavat ulkonäköään joka kerta lavalla, ovat luultavasti yleisin asia.


Kasvojen hakkerointi (aktivismi)

Mekaniikka opettaa, että jokainen teko saa aikaan reaktion, eikä valvonta- ja henkilötunnistusjärjestelmien nopea kehitys ole poikkeus. Nykyään hermoverkkojen avulla voidaan verrata kadulta otettua satunnaista epäselvää valokuvaa sosiaalisten verkostojen tileille ladattuihin kuviin ja selvittää ohikulkijan henkilöllisyys sekunneissa. Samaan aikaan taiteilijat, aktivistit ja tietokonenäköasiantuntijat luovat työkaluja, jotka voivat palauttaa ihmisille yksityisyyden, henkilökohtaisen tilan, joka kutistuu niin huimaa vauhtia.

Tunnistaminen voidaan estää algoritmien eri vaiheissa. Yleensä hyökätään tunnistusprosessin ensimmäisiin vaiheisiin - hahmojen ja kasvojen havaitsemiseen kuvassa. Aivan kuten sotilaallinen naamiointi pettää näkemyksemme piilottamalla esineen, rikkoen sen geometrisia mittasuhteita ja siluettia, konenäkö he yrittävät hämmentää hänet värillisillä kontrastisilla täplillä, jotka vääristävät hänelle tärkeitä parametreja: kasvojen soikeaa, silmien, suun sijaintia jne. Onneksi tietokonenäkö ei vielä niin täydellinen kuin meidän, mikä jättää enemmän vapautta tällaisen "naamioinnin" värien ja muotojen valinnassa.


Vaaleanpunainen ja violetti, keltainen ja sininen sävyt hallitsevat HyperFace-vaatemallistoa, jonka ensimmäiset näytteet suunnittelija Adam Harvey ja startup Hyphen Labs esittelivät tammikuussa 2017. Pikselikuviot tarjoavat konenäön – sen näkökulmasta katsottuna – ihanteellisen kuvan ihmiskasvoista, jotka tietokone nappaa houkuttimina. Muutamaa kuukautta myöhemmin Moskovan ohjelmoija Grigory Bakunov ja hänen kollegansa jopa kehittivät erityinen sovellus, joka tuottaa meikkivariaatioita, jotka häiritsevät tunnistusjärjestelmiä. Ja vaikka kirjoittajat päättivät jonkinlaisen harkinnan jälkeen olla julkaisematta ohjelmaa, sama Adam Harvey tarjoaa useita valmiita vaihtoehtoja.


Maskia käyttävä tai outo meikki kasvoillaan olevaa henkilöä ei ehkä huomaa tietokonejärjestelmät, mutta muut ihmiset todennäköisesti kiinnittävät siihen huomiota. On kuitenkin tapoja toimia päinvastoin. Todellakin, hermoverkon näkökulmasta kuva ei sisällä kuvia meille tavallisessa merkityksessä; hänelle kuva on joukko numeroita ja kertoimia. Siksi täysin erilaiset esineet voivat näyttää hänen kanssaan melko samanlaisilta. Kun tiedät nämä tekoälyn työn vivahteet, voit suorittaa hienovaraisemman hyökkäyksen ja korjata kuvaa vain hieman - niin, että muutokset ovat ihmiselle melkein huomaamattomia, mutta konenäkö petetään kokonaan. Marraskuussa 2017 tutkijat osoittivat, kuinka pienet muutokset kilpikonnan tai pesäpallon värissä aiheuttivat Googlen järjestelmä InceptionV3 luottaa siihen, että näkee sen sijaan aseen tai kupin espressoa. Ja Mahmoud Sharif ja hänen kollegansa Carnegie Mellon -yliopistosta suunnittelivat silmälasien kehykseen pilkkukuvion: sillä ei ole juuri mitään vaikutusta siihen, miten muut havaitsevat kasvot, mutta Face++:n tietokonetunnistus sekoittaa sen luottavaisesti henkilön kasvoihin. kenelle” kehyksen kuvio on suunniteltu.

Nykyaikaiset integroidut turvajärjestelmät pystyvät ratkaisemaan minkä tahansa monimutkaisia ​​ongelmia kaikenlaisissa teollisissa, sosiaalisissa ja kotitalouksissa. Videovalvontajärjestelmät ovat erittäin tärkeitä työkaluja turvajärjestelmissä ja vaatimukset segmentin toimivuudelle kasvavat tasaisesti.

Kattavat turvajärjestelmät

Yhtenäinen alusta sisältää moduuleja turva- ja palovarustukseen, kulunvalvontaan ja -hallintaan, videovalvontaan tai suljetun piirin televisioon (CCT). Viime aikoihin asti jälkimmäisen toiminnot rajoittuivat videovalvontaan ja tilan ja lähialueen tilanteen tallentamiseen, tietojen arkistointiin ja tallentamiseen. Klassisilla videojärjestelmillä on useita merkittäviä haittoja:

  • Inhimillinen tekijä. Tehoton operaattorin suorituskyky lähetettäessä suuria määriä tietoa.
  • Kirurgisen toimenpiteen mahdottomuus, ennenaikainen analyysi.
  • Merkittävät aikakustannukset tapahtuman etsimiseen ja tunnistamiseen.

Kehitys digitaalisia teknologioita johti "älykkäiden" automatisoitujen järjestelmien luomiseen.

Vahvuus on älyssä

Älyllisen analytiikan perusperiaate on videoanalytiikka - tekniikka, joka perustuu menetelmiin ja algoritmeihin kuvantunnistukseen ja automaattiseen tiedonkeruuun videovirta-analyysin tuloksena. Tällaiset laitteet pystyvät ilman ihmisen väliintuloa havaitsemaan ja seuraamaan reaaliajassa tiettyjä kohteita (auto, ihmisryhmä), mahdollisesti vaarallisia tilanteita (savu, tulipalo, luvaton puuttuminen videokameroiden toimintaan), ohjelmoituja tapahtumia ja viipymättä. antaa hälytyssignaalin. Suodattamalla pois videodata, joka ei ole kiinnostava, kuormitus viestintäkanavia ja arkistotietokanta.

Suosituin videoanalytiikkatyökalu on kasvojentunnistusjärjestelmä. Suoritettavista toiminnoista ja annetuista tehtävistä riippuen laitteille asetetaan tiettyjä vaatimuksia.

Ohjelmisto ja laitteisto

varten tehokasta työtä järjestelmät käyttävät useita erilaisia ​​IP-videokameroita, joissa on erilaisia suorituskykyominaisuudet. Valvotulla alueella olevan kohteen havaitseminen tallennetaan panoraamakameroilla, joiden resoluutio on 1 megapikseliä ja polttoväli 1 mm, ja skannauslaitteet on suunnattu siihen. Nämä ovat edistyneempiä kameroita (alkaen 2MP, alkaen 2mm), jotka suorittavat tunnistuksen yksinkertaisia ​​tekniikoita(3-4 parametria). Tunnistaaksesi kohteen, kamerat hyvä laatu kuvat riittävät monimutkaisten algoritmien käyttöön (5 MP, 8-12 mm).

Suosituin ohjelmistotuotteita kasvojentunnistusta varten "Face Intellect" (kehittäjä House Control -yhtiö), Face Director (Sinesis-yhtiö) ja VOCORD FaceControl (VOCORD) osoittavat:

  • Suuri esineiden tunnistamisen todennäköisyys (jopa 99 %).
  • Tuki laajalle valikoimalle kameran kiertokulmia.
  • Mahdollisuus tunnistaa kasvot jopa tiheässä jalankulkumassassa.
  • Vaihtelu analyyttisten raporttien laadinnassa.

Kuviontunnistuksen perusteet

Kaikki biometriset tunnistusjärjestelmät perustuvat yksilön luettujen fysiologisten ominaisuuksien vastaavuuden tunnistamiseen tietyn määritellyn mallin kanssa.

Skannaus tapahtuu reaaliajassa. IP-kamera lähettää videovirran päätelaitteelle ja kasvojentunnistusjärjestelmä määrittää, vastaako kuva tietokantaan tallennettuja valokuvia. On olemassa kaksi päämenetelmää. Ensimmäinen perustuu staattisiin periaatteisiin: biometristen parametrien käsittelyn tulosten perusteella a elektroninen näyte muodossa ainutlaatuinen numero, joka vastaa tiettyä henkilöä. Toinen menetelmä mallintaa "inhimillistä" lähestymistapaa, ja sille on ominaista itseoppiminen ja vankkaus. Henkilön tunnistamisessa videokuvasta otetaan huomioon ikään liittyvät muutokset ja muut tekijät (päähine, parta tai viikset, lasit). Tämän tekniikan avulla voit työskennellä jopa vanhojen valokuvien ja tarvittaessa röntgensäteiden kanssa.

Kasvojen hakualgoritmi

Yleisin tekniikka kasvojen havaitsemiseen on Haar-kaskadit (naamiosarjat).

Maski on suorakaiteen muotoinen ikkuna erilainen yhdistelmä valkoiset ja mustat segmentit.

Ohjelman mekanismi on seuraava: videokehys peitetään joukolla maskeja, ja konvoluutiotulosten perusteella (laskemalla valkoisiin ja mustiin sektoreihin kuuluvat pikselit) ero lasketaan ja sitä verrataan tiettyyn kynnysarvoon. .

Luokittelijan suorituskyvyn parantamiseksi luodaan positiivisia (ihmiskasvot sisältävät kehykset) ja negatiivisia (ilman niitä) harjoitusnäytteitä. Ensimmäisessä tapauksessa konvoluutiotulos on kynnysarvon yläpuolella, toisessa - alle. Kasvotunnistin määrittää hyväksyttävällä virheellä kaikkien kaskadien konvoluutioiden summan ja, jos kynnys ylittyy, signaloi kasvojen läsnäolon kehyksessä.

Tunnistustekniikat

Havainnon ja lokalisoinnin jälkeen esivaiheessa on kuvan kirkkaus ja geometrinen kohdistus. Jatkotoimet - ominaisuuden laskeminen ja tunnistaminen - voidaan suorittaa eri menetelmillä.

Kun skannaat koko kasvot huoneessa, jossa on erinomainen valaistus, kaksiulotteisten kuvien kanssa toimivat algoritmit osoittavat hyviä tuloksia. Analysoimalla ainutlaatuisia pisteitä ja niiden välisiä etäisyyksiä kasvojentunnistusjärjestelmä määrittää tunnistamisen tosiasian "elävän" kuvan ja rekisteröidyn mallin välisten erokertoimien perusteella.

3D-tekniikka kestää muutoksia valovirta, sallittu poikkeama etukulmasta on jopa 45 astetta. Tässä ei analysoida vain pisteitä ja viivoja, vaan myös pintojen ominaisuuksia (kaarevuus, profiili) ja niiden välisten etäisyyksien metriikkaa. Jotta tällaiset algoritmit toimisivat, se on välttämätöntä maksimi laatu videotallenteita jopa 200 kuvaa/s. Järjestelmä perustuu stereovideokameroihin, joiden matriisi on 5 megapikseliä, korkea optinen resoluutio ja synkronointivirhe minimoitu. Lisäksi ne on yhdistetty erityisellä ajoituskaapelilla kellopulssien lähettämiseen.

Nykyaikaisten järjestelmämarkkinoiden tila

Ensin mainitut kehitettiin korkeiden kustannustensa vuoksi vain valtion sotilaslaitoksiin ja vasta 90-luvun puolivälissä ne tulivat kaupallisten organisaatioiden saataville. Tekniikan nopea kehitys on mahdollistanut järjestelmien tarkkuuden lisäämisen ja niiden käyttöalueen laajentamisen. Maamme markkinoiden johtavat asemat kuuluvat amerikkalaisille ja länsieurooppalaisille turvajärjestelmien valmistajille. Eniten myydyt laitteet ovat ZN Vision Technologies- ja Visionics-yhtiöiden laitteita. Kotimaisista kehittäjistä lupaavimpia ovat Vocordin, NTechLabin, Solingin, VisionLabs LLC:n ja TsRT-ryhmän tutkimus ja tuotteet, jotka muun muassa harjoittavat myös ulkomaisten kompleksien mukauttamista Venäjän olosuhteisiin.

Tietokoneen kasvojenhallinta

Kontaktittoman tunnistamisen laajin sovellusalue on terrorismin ja rikollisuuden torjunta. Rikollisen kasvokuva on tallennettu tietokantaan. Paikoissa, joissa on suuria ihmisjoukkoja (lentokentät, juna-asemat, kauppakeskukset, urheilulaitokset), ihmisvirtoja tallennetaan reaaliajassa etsittyjen henkilöiden tunnistamiseksi.

Seuraava alue on kulunvalvontajärjestelmät: mallikuva päällä sähköinen passi Verrataan malliin, joka on saatu käsittelemällä videokameroiden tietoja. Toimenpide suoritetaan välittömästi ilman, että sen läpikäyviltä vaaditaan lisätoimenpiteitä (toisin kuin verkkokalvon skannaus tai sormenjälkien otto).

Toinen nopeasti kasvava toimiala on markkinointi. Interaktiivinen mainostaulu skannaa henkilön kasvot, määrittää hänen sukupuolensa ja ikänsä ja visualisoi vain ne mainokset, jotka saattavat kiinnostaa asiakasta.

Trendit ja kehitysnäkymät

Kasvojentunnistusjärjestelmillä on suuri kysyntä pankkisektorilla.

Viime vuoden lopussa Pochta Bankin johto onnistui asentamaan toimistoihinsa 50 000 älykästä videokameraa, ja se onnistui säästämään miljoonia ruplaa estämällä petoksia laina- ja maksusegmenteillä. Asiantuntijat sanovat, että vuoteen 2021 mennessä tarvittava infrastruktuuriverkko luodaan ja toiminta pankkiautomaateilla on mahdollista vasta asiakkaan kasvojen biometrisen tunnistamisen jälkeen.

Ensi vuosikymmenellä korkea teknologia mahdollistaa täyden itsepalveluliikkeiden verkoston avaamisen: ostaja kävelee esittelyikkunoiden eteen, valitsee haluamansa tuotteen ja lähtee. Kasvojen ja kuvantunnistusjärjestelmä määrittää ostajan henkilöllisyyden, ostaa ja veloittaa vaaditun summan hänen tililtään.

Parhaillaan luodaan järjestelmiä psykoemotionaalisten tilojen tunnistamiseen. Ihmisen tunteiden analysointi tulee olemaan kysyntää multimedia-aloilla: animaatiossa, elokuvissa ja tietokonepeliteollisuudessa.