Ang teknolohiya sa pagkilala sa mukha ay isang bagong panahon sa video analytics, video surveillance at access control system. Ang mga toilet na may facial recognition sa China ay nagpapababa ng pagkonsumo ng toilet paper. Alexander Khanin, tagapagtatag at CEO ng VisionLabs

Ang unang hakbang sa aming conveyor ay pagtuklas ng mukha. Malinaw na kailangan mong ihiwalay ang lahat ng mukha sa isang larawan bago mo subukang kilalanin ang mga ito!

Kung gumamit ka ng anumang photography sa nakalipas na 10 taon, malamang na nakakita ka ng pag-detect ng mukha sa pagkilos:

Ang pag-detect ng mukha ay isang magandang bagay para sa mga camera. Kung awtomatikong makaka-detect ang camera ng mga mukha, makatitiyak ka na ang lahat ng mukha ay nasa focus bago kunin ang larawan. Ngunit gagamitin namin ito para sa isa pang layunin - paghahanap ng mga lugar ng imahe na kailangang ipasa sa susunod na yugto ng aming pipeline.

Naging mainstream na trend ang pag-detect ng mukha noong unang bahagi ng 2000s nang mag-imbento sina Paul Viola at Michael Jones ng paraan para maka-detect ng mga mukha na sapat na mabilis para magtrabaho sa mga murang camera. Gayunpaman, ngayon ay may mas maaasahang solusyon. Gagamit kami ng isang paraan na natuklasan noong 2005 - ang histogram ng mga direksyong gradient (sa madaling salita, HOG).

Para makita ang mga mukha sa isang imahe, gagawin naming black and white ang aming imahe, dahil... Hindi kailangan ang data ng kulay para sa pagtukoy ng mukha:

Pagkatapos ay titingnan namin ang bawat indibidwal na pixel sa aming larawan nang paisa-isa. Para sa bawat indibidwal na pixel, dapat isaalang-alang ang agarang kapaligiran nito:

Ang aming layunin ay i-highlight kung gaano kadilim ang kasalukuyang pixel kumpara sa mga pixel na direktang katabi nito. Pagkatapos ay gumuhit ng isang arrow na nagpapakita ng direksyon kung saan ang imahe ay nagiging mas madilim:


Kapag tinitingnan ang nag-iisang pixel na ito at ang mga malapit na kapitbahay nito, ang imahe ay nagdidilim paitaas sa kanan.

Kung uulitin mo ang prosesong ito para sa bawat solong pixel sa larawan, pagkatapos ay sa huli ang bawat pixel ay papalitan ng isang arrow. Ang mga arrow na ito ay tinatawag gradient, at ipinapakita nila ang daloy mula sa liwanag hanggang sa dilim sa buong larawan:

Ang resulta ay maaaring mukhang isang bagay na random, ngunit mayroong isang napaka mabuting rason upang palitan ang mga pixel ng mga gradient. Kapag direkta naming pinag-aralan ang mga pixel, ang madilim at maliwanag na mga larawan ng parehong tao ay magkakaroon ng ibang mga halaga ng intensity ng pixel. Ngunit kung ating isasaalang-alang lamang direksyon mga pagbabago sa liwanag, parehong madilim at maliwanag na mga imahe ay magkakaroon ng eksaktong parehong hitsura. Ginagawa nitong mas madali ang paglutas ng problema!

Ngunit ang pag-save ng gradient para sa bawat indibidwal na pixel ay nagbibigay sa amin ng isang paraan na nagdadala ng masyadong maraming detalye. Sa huli ay hindi namin nakikita ang kagubatan para sa mga puno. Mas maganda kung makikita na lang natin ang pinagbabatayan ng liwanag/dilim na daloy sa mas mataas na antas sa pamamagitan ng pagtingin pangunahing istraktura Mga imahe.

Upang gawin ito, hinahati namin ang imahe sa maliliit na parisukat na 16x16 pixel bawat isa. Sa bawat parisukat, bilangin kung gaano karaming mga gradient na arrow ang lumalabas sa bawat pangunahing direksyon (ibig sabihin, kung gaano karaming mga arrow ang nakaturo pataas, pataas-kanan, kanan, atbp.). Ang parisukat na pinag-uusapan ay pagkatapos ay papalitan sa larawan ng isang arrow na may direksyon na nangingibabaw sa parisukat na iyon.

Ang resulta ay ginagawa natin ang orihinal na larawan sa isang napakasimpleng representasyon na nagpapakita ng pangunahing istraktura ng mukha sa isang simpleng anyo:


Ang orihinal na imahe ay na-convert sa isang representasyon ng HOG na nagpapakita ng mga pangunahing katangian ng imahe anuman ang liwanag nito.

Upang matukoy ang mga mukha sa HOG na larawang ito, ang kailangan lang nating gawin ay hanapin ang bahagi ng larawan na pinakakapareho sa kilalang HOG na istraktura na nakuha mula sa pangkat ng mga mukha na ginamit para sa pagsasanay:

Gamit ang paraang ito, madali mong mahahanap ang mga mukha sa anumang larawan:

Kung gusto mong gawin ang hakbang na ito sa iyong sarili gamit ang Python at dlib, mayroong isang programa na nagpapakita kung paano lumikha at tingnan ang mga representasyon ng HOG ng mga imahe.

Hakbang 2: Pagpoposisyon at Pagpapakita ng Mga Mukha

Kaya, pinili namin ang mga mukha sa aming imahe. Ngunit ngayon ay may problema: ang parehong mukha, na tiningnan mula sa iba't ibang direksyon, ay ganap na naiiba sa computer:


Madaling makita ng mga tao na ang parehong larawan ay ng aktor na si Will Ferrell, ngunit ituturing sila ng mga computer bilang dalawang magkaibang tao.

Upang isaalang-alang ito, subukan nating baguhin ang bawat imahe upang ang mga mata at labi ay palaging nasa parehong lugar sa imahe. Ang paghahambing ng mga mukha ay lubos na mapapasimple sa mga sumusunod na hakbang.

Upang gawin ito gumagamit kami ng isang algorithm na tinatawag "pagsusuri ng mga anthropometric na puntos". Maraming paraan para gawin ito, ngunit gagamitin namin ang diskarte na iminungkahi noong 2014 nina Vahid Kazemi at Josephine Sullivan.

Ang pangunahing ideya ay ang 68 partikular na punto ay natukoy ( mga marka) naroroon sa bawat mukha - ang nakausli na bahagi ng baba, ang panlabas na gilid ng bawat mata, ang panloob na gilid ng bawat kilay, atbp. Pagkatapos, ang algorithm ng pag-aaral ng makina ay na-configure upang hanapin ang 68 partikular na puntong ito sa bawat mukha:


Naglalagay kami ng 68 anthropometric point sa bawat mukha

Nasa ibaba ang resulta ng paglalagay ng 68 anthropometric point sa aming test image:


PRO TIP PARA SA NEWBY: Ang parehong paraan ay maaaring gamitin upang ipasok ang iyong sariling bersyon Mga real-time na 3D face filter sa Snapchat!

Ngayong alam na natin kung nasaan ang mga mata at bibig, paikutin lang natin, sukatin at i-pan ang imahe upang ang mga mata at bibig ay nakasentro hangga't maaari. Hindi kami magpapakilala ng anumang hindi pangkaraniwang 3D deformation dahil maaari nilang i-distort ang imahe. Gagawin lang namin ang mga pangunahing pagbabagong-anyo ng imahe, tulad ng pag-ikot at pag-scale, na nagpapanatili sa mga linya na magkatulad (tinatawag na mga pagbabagong affine):

Ngayon, gaano man ang pag-ikot ng mukha, maaari nating isentro ang mga mata at bibig upang halos nasa parehong posisyon ang mga ito sa imahe. Gagawin nitong mas mataas ang katumpakan ng aming susunod na hakbang.

Kung gusto mong subukan ang hakbang na ito gamit ang Python at dlib, mayroong isang programa para sa paghahanap ng mga anthropometric na puntos at isang programa para sa pag-convert ng imahe batay sa mga puntong iyon.

Hakbang 3: Pag-encode ng Mukha

Ngayon ay dumating tayo sa ubod ng problema - mismong pagkilala sa mukha. Dito na magsisimula ang saya!

Ang pinakasimpleng diskarte sa pagkilala sa mukha ay direktang ihambing ang hindi kilalang mukha na nakita sa hakbang 2 sa lahat ng may label na mukha. Kung makakita tayo ng may markang mukha na halos kapareho ng hindi natin kilala, nangangahulugan ito na iisang tao ang ating kinakaharap. Parang napaka magandang ideya, hindi ba?

Sa katunayan, mayroong isang malaking problema sa diskarteng ito. Ang isang site tulad ng Facebook, na may bilyun-bilyong user at trilyon-trilyong larawan, ay hindi makakapag-ikot sa bawat dating na-tag na mukha nang sapat, na inihahambing ito sa bawat bagong larawang na-upload. Aabutin ito ng masyadong maraming oras. Kailangan nating makilala ang mga mukha sa millisecond, hindi oras.

Kailangan nating matutunang kunin ang ilang pangunahing katangian mula sa bawat mukha. Pagkatapos ay maaari nating makuha ang gayong mga katangian mula sa isang hindi kilalang tao at ihambing ang mga ito sa mga katangian ng mga kilalang tao. Halimbawa, maaari mong sukatin ang bawat tainga, matukoy ang distansya sa pagitan ng mga mata, ang haba ng ilong, atbp. Kung nakapanood ka na ng isang serye sa telebisyon tungkol sa gawain ng mga empleyado ng isang laboratoryo ng krimen sa Las Vegas (CSI: Crime Scene Investigation), alam mo kung ano ang pinag-uusapan natin:


Parang sa mga pelikula! Mukhang totoo talaga!

Ang pinaka-maaasahang paraan upang sukatin ang iyong mukha

Okay, ngunit anong mga katangian ang kailangang makuha mula sa bawat tao upang makabuo ng database ng mga sikat na mukha? Laki ng tenga? Haba ng ilong? Kulay ng mata? May iba pa ba?

Lumalabas na ang mga katangiang tila halata sa ating mga tao (tulad ng kulay ng mata) ay hindi makatuwiran sa isang computer na nagsusuri ng mga indibidwal na pixel sa isang larawan. Nalaman ng mga mananaliksik na ang pinakaangkop na diskarte ay hayaan ang computer mismo na matukoy ang mga katangian na kailangang kolektahin. Ang malalim na pag-aaral ay maaaring matukoy ang mga bahagi ng isang mukha na mahalaga para sa pagkilala ng mukha nang mas mahusay kaysa sa mga tao.

Ang solusyon ay upang sanayin ang isang malalim na convolutional neural network(na kung ano mismo ang ginawa namin sa isyu 3). Ngunit sa halip na sanayin ang network upang makilala ang mga graphic na bagay, tulad ng ginawa namin noong nakaraan, sasanayin namin ito ngayon upang lumikha ng 128 na feature para sa bawat mukha.

Gumagana ang proseso ng pag-aaral kapag tinitingnan ang 3 larawan ng mukha nang sabay-sabay:

1. Mag-upload ng larawan ng pagsasanay ng mukha ng isang sikat na tao

2. Mag-upload ng isa pang larawan ng mukha ng parehong tao

3. Mag-upload ng larawan ng mukha ng ibang tao

Isinasaalang-alang ng algorithm ang mga katangian na kasalukuyang ginagawa nito para sa bawat isa sa tinukoy tatlong larawan. Bahagyang inaayos nito ang neural network upang ang mga tampok na ginagawa nito para sa mga larawan 1 at 2 ay medyo mas malapit sa isa't isa, at ang mga tampok na ginagawa nito para sa mga larawan 2 at 3 ay medyo malayo.

Isang "nakabalangkas" na hakbang sa pag-aaral:

Matapos ulitin ang hakbang na ito ng milyun-milyong beses para sa milyun-milyong larawan ng libu-libong iba't ibang tao, ang neural network ay maaasahang makabuo ng 128 feature para sa bawat tao. Anumang sampung magkakaibang larawan ng parehong tao ay magbibigay ng humigit-kumulang sa parehong mga katangian.

Tinatawag ng mga eksperto sa machine learning ang 128 na katangian ng bawat mukha hanay ng mga katangian (mga tampok). Ang ideya ng pagbabawas ng kumplikadong hilaw na data, tulad ng isang imahe, sa isang listahan ng mga numero na binuo ng computer ay napatunayang lubos na nangangako para sa mga makina ng pagsasanay (lalo na para sa pagsasalin). Ang mukha na diskarte na ginagamit namin ay iminungkahi noong 2015 ng mga mananaliksik ng Google, ngunit mayroong maraming katulad na mga diskarte sa labas.

Pag-encode ng aming imahe ng mukha

Ang proseso ng pagsasanay sa isang convolutional neural network upang mag-output ng mga hanay ng mga katangian ng mukha ay nangangailangan ng malaking halaga ng data at mahusay na pagiging produktibo kompyuter. Kahit na sa isang mamahaling NVidia Telsa video card ito ay kinakailangan humigit-kumulang 24 na oras patuloy na pagsasanay upang makakuha ng mahusay na katumpakan.

Ngunit kung ang network ay sinanay, pagkatapos ay posible na lumikha ng mga katangian para sa anumang mukha, kahit isa na hindi pa nakikita dati! Kaya, isang beses lang kailangang gawin ang hakbang na ito. Sa kabutihang-palad para sa amin, nagawa na ito ng mga mabubuting tao sa OpenFace at nagbigay ng access sa ilang sinanay na network na magagamit namin kaagad. Salamat kay Brandon Amos at sa team!

Bilang resulta, ang kailangan lang nating gawin ay patakbuhin ang ating mga larawan sa mukha sa pamamagitan ng kanilang pre-trained na network at makakuha ng 128 feature para sa bawat mukha. Nasa ibaba ang mga detalye para sa aming pagsubok na larawan:

Ngunit anong mga partikular na bahagi ng mukha ang inilalarawan ng 128 na numerong ito? Lumalabas na wala kaming ideya tungkol dito. Gayunpaman, hindi talaga ito mahalaga sa amin. Ang dapat lang nating alalahanin ay ang network ay gumagawa ng humigit-kumulang sa parehong mga numero kapag sinusuri ang dalawang magkaibang larawan ng parehong tao.

Kung gusto mong subukan ang hakbang na ito sa iyong sarili, ang OpenFace ay nagbibigay ng Lua script na lumilikha ng mga hanay ng mga katangian ng lahat ng mga imahe sa folder at isinusulat ang mga ito sa isang csv file. Maaari mong patakbuhin ito tulad ng ipinapakita.

Hakbang 4. Paghahanap ng pangalan ng tao pagkatapos i-encode ang mukha

Ang huling hakbang ay talagang ang pinakamadali sa buong prosesong ito. Ang kailangan lang naming gawin ay hanapin ang tao sa aming database ng mga sikat na mukha na may mga katangiang pinakamalapit sa mga nasa aming larawang pansubok.

Magagawa ito gamit ang anuman pangunahing algorithm mga klasipikasyon ng machine learning. Anumang mga espesyal na pamamaraan malalim na pag-aaral hindi kailangan. Gagamit kami ng isang simpleng linear SVM classifier, ngunit maraming iba pang mga algorithm ng pag-uuri ang maaaring gamitin.

Ang kailangan lang nating gawin ay sanayin ang isang classifier na maaaring kunin ang mga katangian ng bagong pansubok na larawan at iulat kung aling sikat na mukha ang may pinakamahusay na katugma. Ang gawain ng naturang classifier ay tumatagal ng mga millisecond. Ang resulta ng gawain ng classifier ay ang pangalan ng tao!

Subukan natin ang ating sistema. Una, sinanay ko ang classifier gamit ang mga feature set mula sa humigit-kumulang 20 larawan nina Will Ferrell, Chad Smith, at Jimmy Fallon:


Oh, ang mga kamangha-manghang mga larawan para sa pagtuturo!

Pagkatapos ay pinatakbo ko ang classifier sa bawat frame ng sikat na Youtube video ni Jimmy Fallon Magpapanggap sina Ferrell at Chad Smith bilang isa't isa :

Gumana ito! At tingnan kung gaano ito kahusay para sa mga mukha mula sa napakaraming iba't ibang direksyon - kahit sa profile!

Isinasagawa ang buong proseso sa iyong sarili

Tingnan natin ang mga kinakailangang hakbang:

1. Iproseso ang larawan gamit ang HOG algorithm upang lumikha ng pinasimpleng bersyon ng larawan. Sa pinasimpleng larawang ito, hanapin ang lugar na pinakahawig sa nabuong HOG na representasyon ng mukha.

2. Tukuyin ang posisyon ng mukha sa pamamagitan ng pagtatatag ng mga pangunahing anthropometric point dito. Kapag nakapwesto na ang mga anthropometric point na ito, gamitin ang mga ito upang ibahin ang anyo ng imahe upang isentro ang mga mata at bibig.

3. Ipasa ang nakasentro na imahe ng mukha sa pamamagitan ng isang neural network na sinanay upang makita ang mga katangian ng mukha. I-save ang nagresultang 128 katangian.

4. Matapos tingnan ang lahat ng mga mukha na ang mga katangian ay kinuha nang mas maaga, tukuyin ang tao na ang mga katangian ng mukha ay pinakamalapit sa mga nakuha. Tapos na!

Ngayong alam mo na kung paano gumagana ang lahat, tingnan ang mga tagubilin mula simula hanggang katapusan kung paano isasagawa ang buong proseso ng pagkilala sa mukha sa iyong sariling computer gamit ang OpenFace:

Bago ka magsimula

Tiyaking mayroon kang Python, OpenFace at dlib na naka-install. Maaari mong i-install ang mga ito nang manu-mano o gumamit ng isang paunang na-configure na larawan ng lalagyan na naka-install na ang lahat ng ito:

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

Pro Tip para sa Newbie: Kung gumagamit ka ng Docker sa OSX, maaari mong gawing nakikita ang OSX/Users/ folder sa loob ng imahe ng lalagyan, tulad ng ipinapakita sa ibaba:

Docker run -v /Users:/host/Users -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash cd /root/openface

Maaari mong ma-access ang lahat ng iyong mga OSX file sa loob ng imahe ng lalagyan sa /host/Users/…

Ls /host/Users/

Hakbang 1

Gumawa ng folder na tinatawag na ./training-images/ sa openface folder.

Mkdir training-images

Hakbang 2

Gumawa ng subfolder para sa bawat taong gusto mong kilalanin. Halimbawa:

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

Hakbang 3

Kopyahin ang lahat ng mga larawan ng bawat tao sa naaangkop na mga subfolder. Tiyaking may isang mukha lamang sa bawat larawan. Hindi na kailangang i-crop ang paligid ng mukha. Awtomatikong gagawin ito ng OpenFace.

Hakbang 4

Magsagawa ng mga openface na script mula sa openface root directory:

Ang pagtuklas at pag-align ng posisyon ay dapat na unang gawin:

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

Gagawa ito ng bagong subfolder./aligned-images/ na may naka-crop at naka-align na bersyon ng bawat isa sa iyong mga pansubok na larawan.

Pagkatapos ay lumikha ng mga view mula sa mga nakahanay na larawan:

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

Ang ./generated-embeddings/ subfolder ay maglalaman ng csv file na may mga feature set para sa bawat larawan.

Sanayin ang iyong modelo ng pag-detect ng mukha:

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

Lilikhain bagong file na may pangalan./generated-embeddings/classifier.pk . Ang file na ito ay naglalaman ng modelong SVM na gagamitin upang makilala ang mga bagong mukha.

Mula ngayon, mayroon kang gumaganang pagkilala sa mukha!

Hakbang 5. Kilalanin ang mga mukha!

Kunin bagong Litrato kasama ang hindi kilalang tao. Patakbuhin ito sa pamamagitan ng script ng classifier tulad ng sumusunod:

./demos/classifier.py infer ./generated-embeddings/classifier.pkl your_test_image.jpg

Dapat kang makatanggap ng babala tulad nito:

=== /test-images/will-ferrel-1.jpg === Hulaan ang will-ferrel na may 0.73 kumpiyansa.

Dito, kung gusto mo, maaari mong i-configure ang script ng python./demos/classifier.py.

Mahahalagang Paalala:

Kung ang mga resulta ay hindi kasiya-siya, pagkatapos ay subukang magdagdag ng ilang higit pang mga larawan para sa bawat tao sa hakbang 3 (lalo na ang mga larawan mula sa iba't ibang direksyon).

Ang script na ito ay palaging maglalabas ng babala, kahit na hindi nito kilala ang tao. Sa aktwal na paggamit, dapat mong suriin ang antas ng kumpiyansa at alisin ang mga babala na may mababang halaga ng kumpiyansa, dahil malamang na mali ang mga ito.

Magdagdag ng mga tag

Wala na sigurong ibang teknolohiya ngayon na napapalibutan ng napakaraming mito, kasinungalingan at kawalan ng kakayahan. Ang mga mamamahayag na nagsasalita tungkol sa teknolohiya ay nagsisinungaling, ang mga pulitiko na nagsasalita tungkol sa matagumpay na pagpapatupad ay nagsisinungaling, karamihan sa mga nagbebenta ng teknolohiya ay nagsisinungaling. Bawat buwan ay nakikita ko ang mga kahihinatnan ng mga taong sumusubok na ipatupad ang pagkilala sa mukha sa mga system na hindi makayanan ito.

Matagal nang masakit ang paksa ng artikulong ito, ngunit tinatamad pa rin akong isulat ito. Ang daming text na dalawampung beses ko nang inulit sa iba't ibang tao. Ngunit, pagkatapos basahin ang isa pang pakete ng basura, napagpasyahan kong oras na. Magbibigay ako ng link sa artikulong ito.

Kaya. Sa artikulong ito sasagutin ko ang ilang simpleng tanong:

Sa palagay mo, saan nakuha ng mga tagalikha ng mga algorithm ang mga base na ito?

Isang maliit na pahiwatig. Ang unang produkto ng NTech na mayroon sila ngayon ay ang Find Face, isang paghahanap para sa mga tao sa VKontakte. Sa tingin ko walang paliwanag ang kailangan. Siyempre, nakikipaglaban ang VKontakte sa mga bot na nagpapalabas ng lahat buksan ang mga profile. Pero, sa narinig ko, nagda-download pa rin ang mga tao. At mga kaklase. At Instagram.

Parang sa Facebook - mas kumplikado ang lahat doon. Ngunit halos sigurado ako na mayroon din silang naisip.
Kaya oo, kung ang iyong profile ay pampubliko, kung gayon maaari mong ipagmalaki, ginamit ito upang sanayin ang mga algorithm;)

Tungkol sa mga solusyon at tungkol sa mga kumpanya

Ito ay isang bagay na dapat ipagmalaki. Sa 5 nangungunang kumpanya sa mundo, dalawa na ngayon ang Russian. Ito ay ang N-Tech at VisionLabs. Kalahating taon na ang nakalilipas, ang mga pinuno ay ang NTech at Vocord, ang una ay nagtrabaho nang mas mahusay sa mga nakatalikod na mukha, ang huli sa mga harapan.

Ngayon ang natitirang mga pinuno ay 1-2 kumpanyang Tsino at 1 Amerikano, may nawala ang Vocord sa mga rating.

Ang iba pang Russian sa rating ay itmo, 3divi, at intellivision. Ang Synesis ay isang Belarusian na kumpanya, bagaman ang bahagi nito ay isang beses sa Moscow mga 3 taon na ang nakakaraan mayroon silang isang blog sa Habré. Alam ko ang tungkol sa ilang iba pang mga solusyon na kabilang sila sa mga dayuhang kumpanya, ngunit ang mga tanggapan ng pagpapaunlad ay nasa Russia din. May iilan pa Mga kumpanyang Ruso na wala sa kompetisyon, ngunit tila may magagandang solusyon. Halimbawa, ang MDGs ay mayroon. Malinaw, ang Odnoklassniki at VKontakte ay mayroon ding sariling mga mahusay, ngunit ang mga ito ay para sa panloob na paggamit.

Sa madaling salita, oo, karamihan sa amin at sa mga Intsik ang may parehong ekspresyon sa mukha.

Ang NTech ang unang nagpakita sa mundo mahusay na mga parameter bagong antas. Sa isang lugar sa pagtatapos ng 2015. Kakahabol lang ng VisionLabs sa NTech. Noong 2015 sila ang nangunguna sa merkado. Ngunit ang kanilang desisyon ay sa huling henerasyon, at sinimulan nilang subukang abutin ang NTech sa pagtatapos lamang ng 2016.

Sa totoo lang, hindi ko gusto ang alinman sa mga kumpanyang ito. Napaka-agresibo sa marketing. Nakakita ako ng mga taong nabili ng malinaw na hindi naaangkop na solusyon na hindi nakalutas sa kanilang mga problema.

Mula sa panig na ito, mas nagustuhan ko ang Vocord. Minsan ay kumunsulta ako sa ilang mga lalaki kung saan tapat na sinabi ng Vocord, "Hindi gagana ang iyong proyekto sa gayong mga camera at mga punto ng pag-install." Masayang sinubukan ng NTech at VisionLabs na magbenta. Ngunit ang Vocord ay nawala kamakailan.

mga konklusyon

Sa konklusyon, nais kong sabihin ang mga sumusunod. Ang pagkilala sa mukha ay isang napakahusay at makapangyarihang tool. Ito ay talagang nagpapahintulot sa iyo na makahanap ng mga kriminal ngayon. Ngunit ang pagpapatupad nito ay nangangailangan ng isang napaka-tumpak na pagsusuri ng lahat ng mga parameter. Maraming available na solusyon sa OpenSource. May mga application (pagkilala sa mga madla sa mga stadium) kung saan kailangan mo lang mag-install ng VisionLabs|Ntech, at magpanatili din ng maintenance, analysis at decision-making team. At hindi ka tutulungan ng OpenSource dito.

Ngayon, hindi ka makapaniwala sa lahat ng mga fairy tale na maaari mong hulihin ang lahat ng mga kriminal, o pagmasdan ang lahat sa lungsod. Ngunit mahalagang tandaan na ang mga ganitong bagay ay makakatulong sa paghuli ng mga kriminal. Halimbawa, upang ihinto ang hindi lahat sa subway, ngunit ang mga taong itinuturing ng system na magkatulad. Maglagay ng mga camera upang mas makilala ang mga mukha at lumikha ng naaangkop na imprastraktura para dito. Bagaman, halimbawa, laban ako dito. Dahil ang halaga ng isang pagkakamali kung ikaw ay kinikilala bilang ibang tao ay maaaring masyadong mataas.

Magdagdag ng mga tag

Sa nakakainggit na regularidad, lumilitaw ang mga artikulo sa Habré na nagsasalita tungkol sa iba't ibang paraan ng pagkilala sa mukha. Napagpasyahan naming hindi lamang suportahan ang napakagandang paksang ito, ngunit i-publish ang aming panloob na dokumento, na sumasaklaw, kung hindi man lahat, ngunit maraming mga diskarte upang harapin ang pagkilala, ang kanilang mga kalakasan at kahinaan. Ito ay pinagsama-sama ni Andrey Gusak, ang aming engineer, para sa mga batang empleyado ng machine vision department, para sa mga layuning pang-edukasyon, wika nga. Ngayon iniaalok namin ito sa lahat ng may gusto nito. Sa dulo ng artikulo mayroong isang kahanga-hangang listahan ng mga sanggunian para sa pinaka-matanong.

Kaya, magsimula tayo.
Sa kabila ng malawak na pagkakaiba-iba ng ipinakita na mga algorithm, ang pangkalahatang istraktura ng proseso ng pagkilala sa mukha ay maaaring makilala:

Ang pangkalahatang proseso ng pagproseso ng imahe ng mukha sa panahon ng pagkilala

Sa unang yugto, ang mukha ay nakita at naisalokal sa larawan. Sa yugto ng pagkilala, ang imahe ng mukha ay nakahanay (geometric at liwanag), kinakalkula ang mga tampok, at direktang isinasagawa ang pagkilala—paghahambing ng mga nakalkulang tampok sa mga pamantayang nakaimbak sa database. Ang pangunahing pagkakaiba sa pagitan ng lahat ng ipinakita na mga algorithm ay ang pagkalkula ng mga tampok at paghahambing ng kanilang mga hanay sa bawat isa.

1. Paraan ng flexible na paghahambing sa mga graph (Elastic graph matching).

Ang kakanyahan ng pamamaraan ay bumababa sa nababanat na pagtutugma ng mga graph na naglalarawan ng mga larawan ng mukha. Ang mga mukha ay kinakatawan bilang mga graph na may timbang na mga vertex at mga gilid. Sa yugto ng pagkilala, ang isa sa mga graph - ang reference na isa - ay nananatiling hindi nagbabago, habang ang isa ay deformed upang pinakamahusay na magkasya sa una. Sa ganitong mga sistema ng pagkilala, ang mga graph ay maaaring maging isang hugis-parihaba na sala-sala o isang istraktura na nabuo sa pamamagitan ng katangian (anthropometric) na mga punto ng mukha.

A)

B)

Isang halimbawa ng istraktura ng graph para sa pagkilala ng mukha: a) regular na sala-sala b) graph batay sa mga anthropometric na punto ng mukha.

Sa mga vertice ng graph, ang mga halaga ng mga tampok ay kinakalkula, kadalasang gumagamit ng mga kumplikadong halaga ng mga filter ng Gabor o ang kanilang mga order na set - Gabor wavelets (Gabor arrays), na kinakalkula sa ilang lokal na lugar ng vertex ng graph nang lokal sa pamamagitan ng pagsasama-sama ng mga halaga ng liwanag ng mga pixel na may mga filter ng Gabor.


Itakda (bangko, jet) ng mga filter ng Gabor


Halimbawa ng convolution ng isang imahe ng mukha na may dalawang Gabor filter

Ang mga gilid ng graph ay tinitimbang ng mga distansya sa pagitan ng mga katabing vertice. Ang pagkakaiba (distansya, discriminatory na katangian) sa pagitan ng dalawang graph ay kinakalkula gamit ang ilang deformation cost function na isinasaalang-alang ang parehong pagkakaiba sa pagitan ng mga value ng feature na kinakalkula sa vertices at ang antas ng deformation ng mga gilid ng graph.
Ang pagpapapangit ng graph ay nangyayari sa pamamagitan ng paglilipat ng bawat isa sa mga vertice nito sa pamamagitan ng isang tiyak na distansya sa ilang mga direksyon na may kaugnayan sa orihinal na lokasyon nito at pagpili ng ganoong posisyon kung saan ang pagkakaiba sa pagitan ng mga halaga ng mga tampok (Gabor filter na mga tugon) sa vertex ng deformed graph at ang kaukulang vertex ng reference graph ay magiging minimal. Isa-isang isinasagawa ang operasyong ito para sa lahat ng vertice ng graph hanggang sa makamit ang pinakamaliit na kabuuang pagkakaiba sa pagitan ng mga katangian ng deformed at reference na mga graph. Ang halaga ng cost function ng deformation sa posisyong ito ng deformed graph ay magiging sukatan ng pagkakaiba sa pagitan ng input face image at ng reference graph. Ang "relaxation" na pamamaraan ng pagpapapangit na ito ay dapat isagawa para sa lahat ng reference na indibidwal na kasama sa database ng system. Ang resulta ng system recognition ay ang pamantayan na may pinakamagandang halaga ng pagpapaandar ng presyo ng pagpapapangit.


Isang halimbawa ng isang deformation ng graph sa anyo ng isang regular na sala-sala

Ang ilang mga publikasyon ay nagpapahiwatig ng 95-97% na kahusayan sa pagkilala kahit na sa pagkakaroon ng iba't ibang emosyonal na mga expression at mga pagbabago sa anggulo ng mukha hanggang sa 15 degrees. Gayunpaman, binanggit ng mga developer ng elastic comparison system sa mga graph ang mataas na computational cost ng approach na ito. Halimbawa, ang paghahambing ng input na imahe ng mukha na may 87 reference na imahe ay tumagal ng humigit-kumulang 25 segundo kapag tumatakbo sa isang parallel na computer na may 23 transputer (Tandaan: publikasyon na may petsang 1993). Ang ibang mga publikasyon sa paksang ito ay alinman sa hindi nagpapahiwatig ng oras o nagsasabi na ito ay mahaba.

Bahid: mataas na computational complexity ng pamamaraan ng pagkilala. Mababang teknolohiya sa pagsasaulo ng mga bagong pamantayan. Linear dependence ng operating time sa laki ng database ng mukha.

2. Mga neural network

Sa kasalukuyan, mayroong humigit-kumulang isang dosenang uri ng mga neural network (NN). Ang isa sa pinakamalawak na ginagamit na mga opsyon ay isang network na binuo sa isang multilayer perceptron, na nagbibigay-daan sa iyong pag-uri-uriin ang input na imahe/signal alinsunod sa paunang pagsasaayos/pagsasanay ng network.
Ang mga neural network ay sinanay sa isang hanay ng mga halimbawa ng pagsasanay. Ang kakanyahan ng pagsasanay ay bumababa sa pagsasaayos ng mga timbang ng mga interneuron na koneksyon sa proseso ng paglutas ng isang problema sa pag-optimize gamit ang gradient descent method. Sa panahon ng proseso ng pagsasanay sa NN, ang mga pangunahing tampok ay awtomatikong kinukuha, ang kanilang kahalagahan ay tinutukoy, at ang mga relasyon sa pagitan ng mga ito ay binuo. Ipinapalagay na ang isang sinanay na NN ay magagawang ilapat ang karanasang natamo sa panahon ng proseso ng pagsasanay sa hindi kilalang mga larawan dahil sa mga kakayahan nitong generalization.
Ang pinakamahusay na mga resulta sa larangan ng pagkilala sa mukha (ayon sa mga resulta ng pagsusuri ng mga publikasyon) ay ipinakita ng Convolutional Neural Network o convolutional neural network (mula dito ay tinutukoy bilang CNN), na isang lohikal na pag-unlad ng mga ideya ng naturang neural network architectures bilang cognitron at neocognitron. Ang tagumpay ay dahil sa kakayahang isaalang-alang ang two-dimensional na topology ng imahe, sa kaibahan sa isang multilayer perceptron.
Ang mga natatanging feature ng CNN ay ang mga lokal na field ng receptor (nagbibigay ng lokal na two-dimensional na koneksyon ng mga neuron), shared weight (nagbibigay ng pagtuklas ng ilang partikular na feature saanman sa larawan) at hierarchical na organisasyon na may spatial sampling (spatial subsampling). Salamat sa mga pagbabagong ito, ang CNN ay nagbibigay ng bahagyang pagtutol sa mga pagbabago sa sukat, mga displacement, mga pag-ikot, mga pagbabago sa pananaw at iba pang mga pagbaluktot.


Schematic na paglalarawan ng isang convolutional neural network architecture

Ang pagsubok sa isang CNN sa isang database ng ORL na naglalaman ng mga larawan ng mga mukha na may kaunting pagbabago sa liwanag, sukat, spatial na pag-ikot, posisyon at iba't ibang emosyon ay nagpakita ng 96% katumpakan ng pagkilala.
Natanggap ng CNN ang pag-unlad nito sa pagbuo ng DeepFace, na nakuha ng
Facebook upang makilala ang mga mukha ng mga gumagamit ng social network nito. Ang lahat ng mga tampok ng arkitektura ay sarado.


Paano gumagana ang DeepFace

Mga kawalan ng neural network: Ang pagdaragdag ng isang bagong reference na tao sa database ay nangangailangan ng kumpletong muling pagsasanay ng network sa buong umiiral na hanay (isang medyo mahabang pamamaraan, depende sa laki ng sample mula 1 oras hanggang ilang araw). Mga problema ng isang matematikal na kalikasan na nauugnay sa pagsasanay: pagkuha sa lokal na pinakamabuting kalagayan, pagpili ng pinakamainam na hakbang sa pag-optimize, muling pagsasanay, atbp. Ang yugto ng pagpili ng arkitektura ng network (bilang ng mga neuron, mga layer, likas na katangian ng mga koneksyon) ay mahirap gawing pormal. Ang pagbubuod ng lahat ng nasa itaas, maaari nating tapusin na ang neural network ay isang "itim na kahon" na may mga resulta na mahirap ipaliwanag.

3. Mga Nakatagong Markov na modelo (HMM, HMM)

Isa sa paraang istatistikal Ang mga tool sa pagkilala sa mukha ay mga discrete-time na Hidden Markov Models (HMMs). Ginagamit ng mga HMM ang istatistikal na katangian ng mga signal at direktang isinasaalang-alang ang kanilang spatial na katangian. Ang mga elemento ng modelo ay: isang hanay ng mga nakatagong estado, isang hanay ng mga naobserbahang estado, isang matrix ng mga posibilidad ng paglipat, isang paunang posibilidad ng mga estado. Ang bawat isa ay may sariling modelo ng Markov. Kapag kinikilala ang isang bagay, ang mga modelo ng Markov na nabuo para sa isang naibigay na base ng mga bagay ay sinusuri at ang pinakamataas na naobserbahang posibilidad ay hinahanap na ang pagkakasunud-sunod ng mga obserbasyon para sa isang ibinigay na bagay ay nabuo ng kaukulang modelo.
Sa ngayon, hindi pa posible na makahanap ng isang halimbawa ng komersyal na aplikasyon ng HMM para sa pagkilala sa mukha.

Bahid:
- kinakailangang pumili ng mga parameter ng modelo para sa bawat database;
- Walang discriminative na kakayahan ang HMM, ibig sabihin, ang algorithm ng pag-aaral ay nag-maximize lamang sa pagtugon ng bawat larawan sa modelo nito, ngunit hindi pinaliit ang tugon sa ibang mga modelo.

4. Pagsusuri ng pangunahing bahagi (PCA)

Isa sa mga pinakakilala at mahusay na binuo ay ang principal component analysis (PCA), batay sa pagbabagong Karhunen-Loev.
Sa una, ang pangunahing bahagi na paraan ay nagsimulang gamitin sa mga istatistika upang bawasan ang tampok na espasyo nang walang makabuluhang pagkawala ng impormasyon. Sa gawain ng pagkilala sa mukha, ito ay pangunahing ginagamit upang kumatawan sa isang imahe ng mukha na may mababang-dimensional na vector (mga pangunahing bahagi), na pagkatapos ay inihambing sa mga reference na vector na nakaimbak sa database.
Ang pangunahing layunin ng paraan ng pangunahing bahagi ay ang makabuluhang bawasan ang dimensyon ng feature space upang mailarawan nito ang "karaniwang" mga larawang pagmamay-ari ng maraming indibidwal hangga't maaari. Gamit ang pamamaraang ito, posibleng matukoy ang iba't ibang mga variation sa set ng pagsasanay ng mga imahe ng mukha at ilarawan ang pagkakaiba-iba na ito sa batayan ng ilang mga orthogonal vectors, na tinatawag na eigenfaces.

Ang hanay ng mga eigenvector na nakuha nang isang beses sa hanay ng pagsasanay ng mga larawan ng mukha ay ginagamit upang i-encode ang lahat ng iba pang larawan ng mukha, na kinakatawan ng isang may timbang na kumbinasyon ng mga eigenvector na ito. Gamit ang isang limitadong bilang ng mga eigenvectors, ang isang naka-compress na approximation sa input na imahe ng mukha ay maaaring makuha, na pagkatapos ay maiimbak sa database bilang isang vector ng mga coefficient, na nagsisilbi rin bilang isang search key sa database ng mukha.

Ang kakanyahan ng paraan ng pangunahing bahagi ay ang mga sumusunod. Una, ang buong hanay ng pagsasanay ng mga mukha ay kino-convert sa isang karaniwang data matrix, kung saan ang bawat row ay kumakatawan sa isang instance ng imahe ng mukha na nabulok sa isang row. Ang lahat ng mga mukha sa set ng pagsasanay ay dapat na bawasan sa parehong laki at may mga normalized na histogram.


Mga pagbabago sa hanay ng pagsasanay ng mga mukha sa isang pangkalahatang matrix X

Pagkatapos ang data ay na-normalize at ang mga hilera ay nabawasan sa 0 mean at 1 pagkakaiba, at ang covariance matrix ay kinakalkula. Para sa nagresultang covariance matrix, ang problema sa pagtukoy ng mga eigenvalues ​​at ang kaukulang eigenvectors (eigenfaces) ay malulutas. Susunod, ang mga eigenvector ay pinagsunod-sunod sa pababang pagkakasunud-sunod ng mga eigenvalues ​​at tanging ang mga unang k vector ang natitira ayon sa panuntunan:




Algoritmo ng PCA


Isang halimbawa ng unang sampung eigenvector (eigenfaces) na nakuha mula sa sinanay na hanay ng mga mukha

= 0.956*-1.842*+0.046

Isang halimbawa ng pagbuo (synthesising) ng mukha ng tao gamit ang kumbinasyon ng mga eigenface at mga pangunahing bahagi


Ang prinsipyo ng pagpili ng isang batayan mula sa unang pinakamahusay na eigenvectors


Isang halimbawa ng pagmamapa ng mukha sa isang three-dimensional metric space na nakuha mula sa tatlong eigenface at karagdagang pagkilala

Ang pangunahing bahagi na paraan ay napatunayang mabuti sa mga praktikal na aplikasyon. Gayunpaman, sa mga kaso kung saan ang imahe ng mukha ay naglalaman ng mga makabuluhang pagbabago sa pag-iilaw o ekspresyon ng mukha, ang pagiging epektibo ng pamamaraan ay bumaba nang malaki. Ang bagay ay ang PCA ay pumipili ng isang subspace na may layuning i-maximize ang approximation ng input data set, at hindi nagdidiskrimina sa pagitan ng mga klase ng mga mukha.

Ang isang solusyon sa problemang ito ay iminungkahi gamit ang linear discriminant ni Fisher (sa literatura ang pangalang "Eigen-Fisher", "Fisherface", LDA ay natagpuan). Pinipili ng LDA ang linear subspace na nagma-maximize sa ratio:

saan

Interclass dispersion matrix, at

Intraclass dispersion matrix; m - bilang ng mga klase sa database.

Naghahanap ang LDA ng projection ng data kung saan ang mga klase ay maximally linearly separable (tingnan ang figure sa ibaba). Para sa paghahambing, naghahanap ang PCA ng projection ng data na nagpapalaki sa pagkalat sa buong database ng mukha (hindi pinapansin ang mga klase). Ayon sa mga resulta ng mga eksperimento sa mga kondisyon ng malakas na tangke at pang-ilalim na pagtatabing ng mga imahe ng mukha, ang Fisherface ay nagpakita ng 95% na kahusayan kumpara sa 53% ng Eigenface.


Ang pangunahing pagkakaiba sa pagitan ng pagbuo ng mga projection ng PCA at LDA

Pagkakaiba sa pagitan ng PCA at LDA

5. Active Appearance Models (AAM) at Active Shape Models (ASM) ()
Mga Modelong Aktibong Hitsura (AAM)
Mga aktibong modelo hitsura(Active Appearance Models, AAM) ay mga istatistikal na modelo ng imahe na maaaring iakma sa isang tunay na imahe sa pamamagitan ng iba't ibang uri ng mga pagpapapangit. Ang ganitong uri ng modelo sa isang two-dimensional na bersyon ay iminungkahi nina Tim Coots at Chris Taylor noong 1998. Sa una aktibong mga modelo ginamit ang hitsura upang matantya ang mga parameter ng mga imahe ng mukha.
Ang aktibong modelo ng hitsura ay naglalaman ng dalawang uri ng mga parameter: mga parameter na nauugnay sa hugis (mga parameter ng hugis) at mga parameter na nauugnay sa isang istatistikal na modelo ng mga pixel o texture ng larawan (mga parameter ng hitsura). Bago gamitin, dapat na sanayin ang modelo sa isang hanay ng mga pre-label na larawan. Ang pagmamarka ng imahe ay ginagawa nang manu-mano. Ang bawat marka ay may sariling numero at tumutukoy sa isang katangiang punto na kakailanganing hanapin ng modelo habang umaangkop sa bagong larawan.


Isang halimbawa ng pagmamarka ng larawan ng mukha mula sa 68 puntos na bumubuo ng hugis AAM.

Ang pamamaraan ng pagsasanay sa AAM ay nagsisimula sa pag-normalize ng mga hugis sa mga larawang may label upang mabayaran ang mga pagkakaiba sa sukat, pagtabingi, at pag-offset. Para sa layuning ito, ginagamit ang tinatawag na generalized Procrustes analysis.


Mga coordinate ng mga punto ng hugis ng mukha bago at pagkatapos ng normalisasyon

Mula sa buong hanay ng mga na-normalize na punto, ang mga pangunahing bahagi ay kinukuha gamit ang paraan ng PCA.


Ang modelo ng hugis ng AAM ay binubuo ng isang triangulation na sala-sala s0 at linear na kumbinasyon displacements si relative to s0

Susunod, ang isang matrix ay nabuo mula sa mga pixel sa loob ng mga tatsulok na nabuo ng mga punto ng hugis, na ang bawat isa sa mga haligi nito ay naglalaman ng mga halaga ng pixel ng kaukulang texture. Kapansin-pansin na ang mga texture na ginamit para sa pagsasanay ay maaaring maging single-channel (grayscale) o multi-channel (halimbawa, RGB color space o iba pa). Sa kaso ng mga multi-channel na texture, ang mga pixel vector ay nabuo nang hiwalay para sa bawat channel, at pagkatapos ay pinagsama-sama ang mga ito. Matapos mahanap ang mga pangunahing bahagi ng texture matrix, ang modelo ng AAM ay itinuturing na sinanay.

Ang modelo ng hitsura ng AAM ay binubuo ng isang base na hitsura na A0 na tinukoy ng mga pixel sa loob ng base lattice s0 at isang linear na kumbinasyon ng mga offset na Ai na nauugnay sa A0

Halimbawa ng instantiation ng AAM. Vector ng parameter ng hugis
p=(p_1,p_2,〖…,p〗_m)^T=(-54,10,-9.1,…)^T ay ginagamit upang i-synthesize ang modelo ng hugis s, at ang parameter na vector λ=(λ_1,λ_2 ,〖…, λ〗_m)^T=(3559,351,-256,…)^T para sa pag-synthesize ng hitsura ng modelo. Ang panghuling modelo ng mukha na 〖M(W(x;p))〗^ ay nakuha bilang kumbinasyon ng dalawang modelo - hugis at hitsura.

Ang paglalagay ng modelo sa isang partikular na larawan ng mukha ay ginagawa sa proseso ng paglutas ng isang problema sa pag-optimize, ang kakanyahan nito ay bumababa sa pagliit ng pag-andar

Gamit ang gradient descent method. Ang mga parameter ng modelo na makikita sa kasong ito ay magpapakita ng posisyon ng modelo sa isang partikular na larawan.




Isang halimbawa ng pag-angkop ng isang modelo sa isang partikular na larawan sa 20 pag-ulit ng pamamaraan ng gradient descent.

Gamit ang AAM, maaari kang magmodelo ng mga larawan ng mga bagay na napapailalim sa parehong matibay at hindi matibay na pagpapapangit. Ang AAM ay binubuo ng isang hanay ng mga parameter, ang ilan ay kumakatawan sa hugis ng mukha, ang iba ay tumutukoy sa texture nito. Ang pagpapapangit ay karaniwang nauunawaan bilang isang geometric na pagbabagong-anyo sa anyo ng isang komposisyon ng pagsasalin, pag-ikot at pag-scale. Kapag nilulutas ang problema ng pag-localize ng mukha sa isang imahe, isang paghahanap ay ginawa para sa mga parameter (lokasyon, hugis, texture) ng AAM na kumakatawan sa synthesized na imahe na pinakamalapit sa naobserbahan. Batay sa antas ng pagiging malapit ng AAM sa nilagyan ng imahe, isang desisyon ang ginawa kung may mukha o wala.

Mga Modelong Aktibong Hugis (ASM)

Ang kakanyahan ng pamamaraan ng ASM ay isaalang-alang ang mga istatistikal na relasyon sa pagitan ng mga lokasyon ng mga anthropometric na puntos. Batay sa available na sample ng mga larawan ng mga mukha na kinuha mula sa harapan. Sa larawan, minarkahan ng eksperto ang lokasyon ng mga anthropometric point. Sa bawat larawan, ang mga puntos ay binibilang sa parehong pagkakasunud-sunod.




Halimbawa ng representasyon ng hugis ng mukha gamit ang 68 puntos

Upang dalhin ang mga coordinate sa lahat ng mga imahe sa isang solong sistema, ang tinatawag na. pangkalahatang pagsusuri ng Procrustes, bilang isang resulta kung saan ang lahat ng mga punto ay dinadala sa parehong sukat at nakasentro. Susunod, ang average na hugis at covariance matrix ay kinakalkula para sa buong hanay ng mga imahe. Batay sa covariance matrix, kinakalkula namin eigenvectors, na pagkatapos ay pinagsunod-sunod sa pababang pagkakasunud-sunod ng kanilang mga katumbas na eigenvalues. Ang modelo ng ASM ay tinukoy ng matrix Φ at ang ibig sabihin ng hugis vector s ̅.
Pagkatapos ay maaaring ilarawan ang anumang hugis gamit ang isang modelo at mga parameter:

Ang lokalisasyon ng modelo ng ASM sa isang bagong imahe na hindi kasama sa set ng pagsasanay ay isinasagawa sa proseso ng paglutas ng problema sa pag-optimize.


a B C D)
Ilustrasyon ng proseso ng pag-localize ng modelo ng ASM sa isang partikular na larawan: a) panimulang posisyon b) pagkatapos ng 5 pag-ulit c) pagkatapos ng 10 pag-ulit d) ang modelo ay nagtagpo

Gayunpaman, ang pangunahing layunin ng AAM at ASM ay hindi pagkilala sa mukha, ngunit tumpak na lokalisasyon ng mukha at mga anthropometric na puntos sa imahe para sa karagdagang pagproseso.

Sa halos lahat ng mga algorithm, ang isang ipinag-uutos na hakbang bago ang pag-uuri ay pag-align, na nangangahulugang pag-align ng imahe ng mukha sa isang frontal na posisyon na nauugnay sa camera o pagdadala ng isang hanay ng mga mukha (halimbawa, sa isang set ng pagsasanay para sa pagsasanay ng isang classifier) ​​​​sa isang solong sistema ng coordinate. Upang maipatupad ang yugtong ito, kinakailangan na i-localize ang mga anthropometric point na katangian ng lahat ng mga mukha sa imahe - kadalasan ito ang mga sentro ng mga mag-aaral o ang mga sulok ng mga mata. Tinutukoy ng iba't ibang mga mananaliksik ang iba't ibang grupo ng mga naturang punto. Upang mabawasan ang mga gastos sa computational para sa mga real-time na system, naglalaan ang mga developer ng hindi hihigit sa 10 ganoong puntos.

Ang mga modelo ng AAM at ASM ay tiyak na idinisenyo upang tumpak na i-localize ang mga anthropometric na puntong ito sa isang imahe ng mukha.

6. Mga pangunahing problema na nauugnay sa pagbuo ng mga sistema ng pagkilala sa mukha

Banayad na problema

Ang problema sa posisyon ng ulo (ang mukha ay, pagkatapos ng lahat, isang 3D na bagay).

Upang masuri ang pagiging epektibo ng mga iminungkahing algorithm sa pagkilala sa mukha, binuo ng DARPA at ng US Army Research Laboratory ang programang FERET (teknolohiya sa pagkilala sa mukha).

Ang mga algorithm na batay sa nababaluktot na paghahambing sa mga graph at iba't ibang pagbabago ng principal component method (PCA) ay nakibahagi sa malalaking pagsubok ng programa ng FERET. Ang kahusayan ng lahat ng mga algorithm ay halos pareho. Kaugnay nito, mahirap o imposibleng gumawa ng malinaw na pagkakaiba sa pagitan nila (lalo na kung pare-pareho ang mga petsa ng pagsubok). Para sa mga pangharap na larawan na kinunan sa parehong araw, ang katanggap-tanggap na katumpakan ng pagkilala ay karaniwang 95%. Para sa mga larawang kinunan gamit ang iba't ibang device at sa ilalim ng iba't ibang liwanag, karaniwang bumababa ang katumpakan sa 80%. Para sa mga larawang kinunan sa pagitan ng isang taon, ang katumpakan ng pagkilala ay humigit-kumulang 50%. Ito ay nagkakahalaga ng pagpuna na kahit na 50 porsiyento ay higit pa sa katanggap-tanggap na katumpakan para sa isang sistema ng ganitong uri.

Taun-taon, naglalathala ang FERET ng isang comparative test report sa mga makabagong sistema ng pagkilala sa mukha gamit ang higit sa isang milyong mukha. Sa kasamaang palad, sa pinakabagong mga ulat Ang mga prinsipyo ng pagbuo ng mga sistema ng pagkilala ay hindi isiwalat, ngunit ang mga resulta lamang ng pagpapatakbo ng mga komersyal na sistema ay nai-publish. Ngayon, ang nangungunang sistema ay ang NeoFace system na binuo ng NEC.

Listahan ng mga sanggunian (Google sa unang link)
1. Pagkilala sa Mukha na batay sa imahe - Mga Isyu at Paraan
2. Face Detection Isang Survey.pdf
3. Pagkilala sa Mukha Isang Literature Survey
4. Isang survey ng mga diskarte sa pagkilala ng mukha
5. Isang survey ng face detection, extraction at recognition
6. Pagsusuri ng mga pamamaraan para sa pagkilala sa mga tao batay sa mga larawan ng mukha
7. Mga pamamaraan para sa pagkilala sa isang tao mula sa isang imahe ng mukha
8. Paghahambing na pagsusuri mga algorithm ng pagkilala sa mukha
9.Face Recognition Techniques
10. Tungkol sa isang diskarte sa lokalisasyon ng mga anthropometric point.
11. Pagkilala sa mukha sa mga larawan ng grupo gamit ang mga algorithm ng segmentation
12. Mag-ulat sa gawaing pananaliksik 2nd stage sa pagkilala sa mukha
13. Pagkilala sa Mukha sa pamamagitan ng Elastic Bunch Graph Matching
14. Algorithm para sa pagkilala sa isang tao mula sa isang litrato batay sa mga geometric na pagbabago. Thesis.
15. Distortion Invariant Object Recognition sa Dynamic Link Architecture
16. Pagkilala sa Mukha Gamit ang Mga Modelong Aktibong Hugis, Lokal na Patch at Mga Vector Machine ng Suporta
17. Pagkilala sa Mukha Gamit ang Mga Modelong Aktibong Hitsura
18. Mga Modelong Aktibong Hitsura para sa Pagkilala sa Mukha
19. Face Alignment Gamit ang Active Shape Model At Support Vector Machine
20. Mga Modelong Aktibong Hugis - Ang Kanilang Pagsasanay at Aplikasyon
21. Fisher Vector Faces in the Wild
22. Eigenfaces vs. Fisherfaces Recognition Gamit ang Class Specific Linear Projection
23. Eigenfaces at fisherfaces
24. Pagbabawas ng Dimensionality
25. ICCV 2011 Tutorial sa Parts Based Deformable Registration
26. Constrained Local Model para sa Face Alignment, isang Tutorial
27. Sino ka – Nag-aaral ng mga tukoy na classifier ng tao mula sa video
28. Pagkilala ng tao mula sa isang imahe ng mukha gamit ang mga pamamaraan ng neural network
29. Pagkilala sa Mukha Isang Convolutional Neural Network Approach
30. Pagkilala sa Mukha gamit ang Convolutional Neural Network at Simple Logistic Classifier
31. Pagsusuri ng Imahe ng Mukha Gamit ang Convolutional Neural Network
32. Mga paraan ng pagkilala sa mukha batay sa mga nakatagong proseso ng Markov. Author-ferat
33. Application ng mga nakatagong modelo ng Markov para sa pagkilala sa mukha
34. Pag-detect ng Mukha at Pagkilala Gamit ang Mga Nakatagong Markov na Modelo
35. Pagkilala sa Mukha gamit ang GNU Octave-MATLAB
36. Pagkilala sa Mukha gamit ang Python
37. Anthropometric 3D Face Recognition
38. 3D na Pagkilala sa Mukha
39. Pagkilala sa Mukha Batay sa Pagkakabit ng 3D Morphable Model
40. Pagkilala sa Mukha
41. Matatag na Pagkilala sa Mukha sa pamamagitan ng Sparse Representation
42. Ang FERET Evaluation Methodology Para sa Face-Recognition Algorithms
43. Maghanap ng mga mukha sa mga elektronikong koleksyon ng mga makasaysayang litrato
44. Disenyo, Pagpapatupad at Pagsusuri ng Hardware Vision Systems na nakatuon sa Real-Time na Pagkilala sa Mukha
45. Isang Panimula sa Mabuti, Masama, at Pangit na Hamon sa Pagkilala sa Mukha Problema
46. ​​Pananaliksik at pagbuo ng mga pamamaraan para sa pag-detect ng mga mukha ng tao sa mga digital na imahe. Diploma
47. DeepFace Pagsara ng Gap sa Human-Level Performance sa Face Verification
48. Tinatanggal ang automated na pagpapangalan ng mga character sa TV video
49. Tungo sa Praktikal na Sistema ng Pagkilala sa Mukha Matatag na Pag-align at Pag-iilaw sa pamamagitan ng Kalat-kalat na Representasyon
50. Mga algorithm ng pagtuklas ng mukha ng tao para sa paglutas ng mga inilapat na problema ng pagsusuri at pagproseso ng imahe
51. Detection at localization ng isang mukha sa isang imahe
52. Binagong Viola-Jones motode
53. Pagbuo at pagsusuri ng mga algorithm para sa pag-detect at pag-uuri ng mga bagay batay sa mga pamamaraan ng machine learning
54. Pangkalahatang-ideya ng Malaking Hamon sa Pagkilala sa Mukha
55. Pagsusuri sa Vendor sa Pagkilala sa Mukha (FRVT)
56. Sa pagiging epektibo ng paggamit ng SURF algorithm sa gawain ng pagtukoy ng mga mukha

Ang pagkuha ng pautang, pag-aaplay para sa isang visa, o simpleng paglulunsad ng pinakabagong modelo ng smartphone - lahat ng ito ay imposible ngayon nang walang pakikilahok ng mga algorithm ng pagkilala sa mukha. Tinutulungan nila ang mga opisyal ng pulisya sa mga pagsisiyasat, mga musikero sa entablado, ngunit unti-unti silang nagiging isang nakikitang mata na sumusubaybay sa lahat ng aming mga aksyon online at offline.

Algorithm (mga teknolohiya)

Ang pagkilala sa isang tao mula sa isang larawan mula sa pananaw ng isang computer ay nangangahulugan ng dalawang magkaibang gawain: una, upang mahanap ang mukha sa larawan (kung ito ay naroroon), at ikalawa, upang ihiwalay mula sa larawan ang mga tampok na nagpapakilala sa taong ito mula sa iba. mga tao sa database.

1. Hanapin

Ang mga pagtatangka na turuan ang isang computer na maghanap ng mukha sa mga litrato ay ginawa mula noong unang bahagi ng 1970s. Maraming mga diskarte ang sinubukan, ngunit ang pinakamahalagang tagumpay ay dumating sa ibang pagkakataon - sa paglikha noong 2001 nina Paul Viola at Michael Jones ng cascade boosting method, iyon ay, isang chain ng mahinang mga classifier. Bagama't mayroon na ngayong mas sopistikadong mga algorithm, maaari kang tumaya na ito ang magandang lumang Viola-Jones na gumagana sa iyong cell phone at camera. Ito ay tungkol sa kahanga-hangang bilis at pagiging maaasahan: kahit noong 2001, ang karaniwang computer ay maaaring magproseso ng 15 mga imahe bawat segundo gamit ang pamamaraang ito. Ngayon, natutugunan ng kahusayan ng algorithm ang lahat ng makatwirang pangangailangan. Ang pangunahing bagay na kailangan mong malaman tungkol sa pamamaraang ito ay nakakagulat na simple. Hindi ka man lang maniniwala kung magkano.

  1. Hakbang 1. Inalis namin ang kulay at ginagawang brightness matrix ang imahe.
  2. Hakbang 2. Ilagay ang isa sa mga parisukat na maskara dito - tinatawag silang mga palatandaan ng Haar. Dumaan kami sa buong imahe kasama nito, binabago ang posisyon at laki.
  3. Hakbang 3. Idinaragdag namin ang mga halaga ng digital na liwanag mula sa mga matrix cell na nasa ilalim ng puting bahagi ng mask, at ibawas mula sa kanila ang mga halagang iyon na nasa ilalim ng itim na bahagi. Kung sa hindi bababa sa isa sa mga kaso ang pagkakaiba sa pagitan ng puti at itim na mga lugar ay nasa itaas ng isang tiyak na threshold, kinuha namin ang lugar na ito ng imahe para sa karagdagang trabaho. Kung hindi, kalimutan mo na siya, walang mukha dito.
  4. Hakbang 4. Ulitin mula sa hakbang 2 na may bagong maskara- ngunit sa lugar lamang ng imahe na pumasa sa unang pagsubok.

Bakit ito gumagana? Tignan mo ang palatandaan. Sa halos lahat ng mga larawan, ang bahagi ng mata ay palaging bahagyang mas madilim kaysa sa lugar sa ibaba. Tingnan ang palatandaan: ang liwanag na lugar sa gitna ay tumutugma sa tulay ng ilong, na matatagpuan sa pagitan ng madilim na mga mata. Sa unang sulyap, ang mga itim at puting maskara ay hindi mukhang mga mukha, ngunit para sa lahat ng kanilang primitiveness mayroon silang isang mataas na kapangyarihan sa pangkalahatan.

Bakit napakabilis? Ang isang mahalagang punto ay hindi nabanggit sa inilarawan na algorithm. Upang ibawas ang liwanag ng isang bahagi ng larawan mula sa isa pa, kakailanganin mong idagdag ang liwanag ng bawat pixel, at maaaring marami sa kanila. Samakatuwid, sa katunayan, bago ilapat ang mask, ang matrix ay na-convert sa isang integral na representasyon: ang mga halaga sa brightness matrix ay idinagdag nang maaga sa paraang ang integral na liwanag ng rektanggulo ay maaaring makuha sa pamamagitan lamang ng pagdaragdag lamang. apat na numero.

Paano mag-ipon ng isang kaskad? Kahit na ang bawat yugto ng masking ay gumagawa ng napakalaking error (ang aktwal na katumpakan ay hindi hihigit sa 50%), ang lakas ng algorithm ay nakasalalay sa cascade na organisasyon ng proseso. Binibigyang-daan ka nitong mabilis na ibukod mula sa mga lugar ng pagsusuri kung saan tiyak na walang mukha, at gumugol lamang ng pagsisikap sa mga lugar na maaaring magbunga ng mga resulta. Ang prinsipyong ito ng pag-assemble ng mga mahihinang classifier sa isang sequence ay tinatawag na boosting (maaari kang magbasa ng higit pa tungkol dito sa Oktubre na isyu ng PM o). Pangkalahatang prinsipyo ganito: kahit malalaking pagkakamali, na pinarami ng bawat isa, ay magiging maliit.

2. Pasimplehin

Ang paghahanap ng mga tampok sa mukha na magbibigay-daan sa isa na makilala ang may-ari nito ay nangangahulugan ng pagbabawas ng katotohanan sa isang formula. Pinag-uusapan natin ang tungkol sa pagpapasimple, at isang napaka-radikal. Halimbawa, maaaring magkaroon ng malaking bilang ng iba't ibang kumbinasyon ng mga pixel kahit na sa isang maliit na larawan na 64 x 64 pixels - (2 8) 64 x 64 = 2 32768 piraso. Bukod dito, upang mabilang ang bawat isa sa 7.6 bilyong tao sa Earth, 33 bits lamang ang magiging sapat. Ang paglipat mula sa isang numero patungo sa isa pa, kailangan mong itapon ang lahat kakaibang ingay, ngunit panatilihin ang pinakamahalaga indibidwal na katangian. Ang mga statistician na pamilyar sa mga ganitong problema ay nakabuo ng maraming tool sa pagpapasimple ng data. Halimbawa, ang pangunahing bahagi na paraan, na naglatag ng pundasyon para sa pagtukoy ng mga mukha. Gayunpaman, kamakailan lamang ay iniwan ng mga convolutional neural network ang mga lumang pamamaraan na malayo. Ang kanilang istraktura ay medyo kakaiba, ngunit, sa esensya, ito rin ay isang paraan ng pagpapasimple: ang gawain nito ay upang bawasan ang isang tiyak na imahe sa isang hanay ng mga tampok.


Maglagay ng maskara sa larawan takdang sukat(tama na tinatawag na convolution kernel), pinarami namin ang liwanag ng bawat pixel sa imahe sa mga halaga ng liwanag sa mask. Nahanap namin ang average na halaga para sa lahat ng mga pixel sa "window" at isulat ito sa isang cell ng susunod na antas.


Inilipat namin ang mask sa pamamagitan ng isang nakapirming hakbang, muling dumami at muling isulat ang average sa feature map.


Nang madaanan ang buong imahe gamit ang isang maskara, inuulit namin ang isa pa - nakakakuha kami ng bagong feature na mapa.


Binabawasan namin ang laki ng aming mga mapa: kumukuha kami ng ilang kalapit na pixel (halimbawa, isang 2x2 o 3x3 square) at inililipat ang mga ito sa susunod na antas isang maximum na halaga lamang. Ginagawa namin ang parehong para sa mga card na natanggap kasama ng lahat ng iba pang mga maskara.


Para sa kapakanan ng kalinisan sa matematika, pinapalitan namin ang lahat ng mga negatibong halaga ng mga zero. Uulitin namin mula sa hakbang 2 nang maraming beses hangga't gusto naming makakuha ng mga layer sa neural network.


Mula sa huling card Nag-iipon kami hindi isang convolutional, ngunit isang ganap na konektado na neural network: ginagawa namin ang lahat ng mga cell ng huling antas sa mga neuron na, na may isang tiyak na timbang, ay nakakaimpluwensya sa mga neuron ng susunod na layer. Huling hakbang. Sa mga network na sinanay upang pag-uri-uriin ang mga bagay (upang makilala ang mga pusa mula sa mga aso sa mga larawan, atbp.), narito ang layer ng output, iyon ay, isang listahan ng mga probabilidad ng pag-detect ng isang partikular na sagot. Sa kaso ng mga mukha, sa halip na isang tiyak na sagot, nakakakuha kami ng isang maikling hanay ng mga pinakamahalagang tampok ng mukha. Halimbawa, sa Google FaceNet ito ay 128 abstract numeric parameters.

3. Kilalanin

Karamihan huling yugto, ang mismong pagkakakilanlan, ay ang pinakasimple at kahit na maliit na hakbang. Nagsisimula ito sa pagtatasa ng pagkakapareho ng nagresultang listahan ng mga tampok sa mga nasa database na. Sa mathematical jargon, nangangahulugan ito ng paghahanap sa feature space ng distansya mula sa isang binigay na vector hanggang sa pinakamalapit na lugar ng mga kilalang mukha. Sa parehong paraan, maaari mong lutasin ang isa pang problema - paghahanap ng mga taong katulad ng bawat isa.

Bakit ito gumagana? Ang convolutional neural network ay idinisenyo upang kunin ang pinaka-katangiang mga tampok mula sa isang imahe, at gawin ito nang awtomatiko at sa iba't ibang antas ng abstraction. Kung ang mga unang antas ay karaniwang tumutugon sa mga simpleng pattern tulad ng pagtatabing, gradient, malinaw na mga hangganan, atbp., pagkatapos ay sa bawat bagong antas ay tumataas ang pagiging kumplikado ng mga tampok. Ang mga maskara na sinusubukan ng neural network sa mataas na antas ay kadalasang talagang kahawig ng mga mukha ng tao o mga fragment ng mga ito. Bukod pa rito, hindi tulad ng pangunahing pagsusuri ng bahagi, pinagsasama-sama ng mga neural network ang mga feature sa isang hindi linear (at hindi inaasahang) paraan.

Saan nagmula ang mga maskara? Hindi tulad ng mga maskara na ginamit sa algorithm ng Viola-Jones, ang mga neural network ay gumagawa nang walang tulong ng tao at nakakahanap ng mga maskara sa panahon ng proseso ng pag-aaral. Upang gawin ito, kailangan mong magkaroon ng isang malaking set ng pagsasanay, na naglalaman ng mga larawan ng iba't ibang mga mukha sa iba't ibang mga background. Tulad ng para sa nagresultang hanay ng mga tampok na ginawa ng neural network, nabuo ito gamit ang paraan ng triplets. Ang mga triple ay mga hanay ng mga larawan kung saan ang unang dalawa ay larawan ng parehong tao at ang pangatlo ay larawan ng isa pa. Natututo ang neural network na maghanap ng mga feature na nagdadala sa mga unang larawan nang mas malapit hangga't maaari sa isa't isa at sa parehong oras ay hindi kasama ang pangatlo.

Kaninong neural network ang mas mahusay? Matagal nang umalis sa akademya ang facial identification malaking negosyo. At dito, tulad ng sa anumang negosyo, ang mga tagagawa ay nagsusumikap na patunayan na ang kanilang mga algorithm ay mas mahusay, bagaman hindi sila palaging nagbibigay ng data mula sa bukas na pagsubok. Halimbawa, ayon sa kumpetisyon ng MegaFace, sa kasalukuyan mas mahusay na katumpakan ay nagpapakita ng Russian deepVo V3 algorithm mula sa Vocord na may resulta na 92%. Ang FaceNet v8 ng Google sa parehong kumpetisyon ay nagpapakita lamang ng 70%, at ang DeepFace mula sa Facebook, na may ipinahayag na katumpakan na 97%, ay hindi lumahok sa kompetisyon. Ang mga numerong ito ay kailangang bigyang-kahulugan nang may pag-iingat, ngunit malinaw na na ang pinakamahusay na mga algorithm ay halos nakamit ang katumpakan ng pagkilala sa mukha sa antas ng tao.

Live na pampaganda (sining)

Noong taglamig ng 2016, sa 58th Annual Grammy Awards, nagsagawa si Lady Gaga ng isang pagpupugay kay David Bowie, na namatay kamakailan. Sa panahon ng pagtatanghal, kumalat ang buhay na lava sa kanyang mukha, na nag-iiwan ng markang makikilala ng lahat ng tagahanga ni Bowie sa kanyang noo at pisngi - isang kulay kahel na kidlat. Ang epekto ng paglipat ng makeup ay nilikha ng video projection: sinusubaybayan ng computer ang mga galaw ng mang-aawit sa real time at nag-project ng mga larawan sa kanyang mukha, na isinasaalang-alang ang hugis at posisyon nito. Madaling makahanap ng video sa Internet kung saan kapansin-pansin na ang projection ay hindi pa rin perpekto at bahagyang naantala sa mga biglaang paggalaw.


Binubuo ni Nobumichi Asai ang teknolohiya ng pagmamapa ng video ng Omote para sa mga mukha mula noong 2014 at aktibong ipinapakita ito sa buong mundo mula noong 2015, nangongolekta ng isang disenteng listahan ng mga parangal. Ang kumpanyang itinatag niya, WOW Inc. naging kasosyo sa Intel at nakatanggap ng magandang insentibo para sa pag-unlad, at ang pakikipagtulungan kay Ishikawa Watanabe mula sa Unibersidad ng Tokyo ay nagbigay-daan sa amin na mapabilis ang projection. Gayunpaman, ang pangunahing bagay ay nangyayari sa computer, at ang mga katulad na solusyon ay ginagamit ng maraming mga developer ng mga application na nagpapahintulot sa iyo na maglagay ng mga maskara sa iyong mukha, maging ito ay helmet ng isang sundalo ng Empire o "David Bowie" na pampaganda.

Alexander Khanin, tagapagtatag at CEO ng VisionLabs

« Katulad na sistema hindi na kailangan para sa isang malakas na computer ay maaaring ilapat kahit na sa mga mobile device. Ang system ay maaaring gumana nang direkta sa isang smartphone, nang hindi nagpapadala ng data sa cloud o server."

“Ang gawaing ito ay tinatawag na facial point tracking. Mayroong maraming mga katulad na solusyon sa pampublikong domain, ngunit ang mga propesyonal na proyekto ay nakikilala sa pamamagitan ng bilis at photorealism, "sinabi sa amin ni Alexander Khanin, pinuno ng VisionLabs. "Ang pinakamahirap na bagay sa kasong ito ay upang matukoy ang posisyon ng mga punto, isinasaalang-alang ang mga ekspresyon ng mukha at ang indibidwal na hugis ng mukha o sa matinding mga kondisyon: na may malakas na pagliko ng ulo, hindi sapat na pag-iilaw at mataas na pagkakalantad." Upang turuan ang system na maghanap ng mga puntos, ang neural network ay sinanay - una nang manu-mano, maingat na pagmamarka ng larawan pagkatapos ng larawan. "Ang input ay isang larawan, at ang output ay isang markadong hanay ng mga puntos," paliwanag ni Alexander. — Pagkatapos ang detector ay inilunsad, ang mukha ay tinutukoy, nito 3D na modelo, kung saan inilapat ang maskara. Inilapat ang mga marker sa bawat frame ng stream nang real time."


Ito ay halos kung paano gumagana ang imbensyon ni Nobumichi Asai. Noong nakaraan, ini-scan ng Japanese engineer ang mga ulo ng kanyang mga modelo, kumuha ng tumpak na three-dimensional na mga prototype at naghahanda ng pagkakasunud-sunod ng video na isinasaalang-alang ang hugis ng mukha. Pinapadali din ang gawain sa pamamagitan ng maliliit na reflective marker na nakadikit sa performer bago umakyat sa entablado. lima mga infrared na kamera subaybayan ang kanilang mga paggalaw, pagpapadala ng data ng pagsubaybay sa isang computer. Pagkatapos ang lahat ay mangyayari tulad ng sinabi sa amin ng VisionLabs: ang mukha ay nakita, isang three-dimensional na modelo ay binuo, at ang projector ni Ishikawa Watanabe ay naglaro.

Ang DynaFlash device ay ipinakilala niya noong 2015: ito ay isang high-speed projector na maaaring subaybayan at mabayaran ang mga paggalaw ng eroplano kung saan ipinapakita ang larawan. Maaaring i-tilt ang screen, ngunit ang imahe ay hindi mababaluktot at ibo-broadcast sa dalas ng hanggang sa isang libong 8-bit na mga frame bawat segundo: ang pagkaantala ay hindi lalampas sa isang hindi nakikitang tatlong millisecond. Para kay Asai, ang naturang projector ay naging isang kaloob ng diyos na nagsimulang gumana nang tunay sa real time. Sa video na nai-record noong 2017 para sa sikat na Japanese duo na si Inori, ang lag ay hindi na nakikita. Ang mga mukha ng mga mananayaw ay nagiging mga buhay na bungo o umiiyak na maskara. Mukhang sariwa at nakakaakit ng pansin - ngunit ang teknolohiya ay mabilis na nagiging sunod sa moda. Sa lalong madaling panahon, ang isang butterfly na dumapo sa pisngi ng isang weather forecaster, o mga performer na nagbabago ng kanilang hitsura tuwing nasa entablado, ay malamang na maging ang pinaka-karaniwang bagay.


Pag-hack ng mukha (aktibismo)

Itinuturo ng mekanika na ang bawat aksyon ay lumilikha ng isang reaksyon, at ang mabilis na pag-unlad ng mga sistema ng pagsubaybay at personal na pagkakakilanlan ay walang pagbubukod. Sa ngayon, ginagawang posible ng mga neural network na ihambing ang isang random na malabong litrato mula sa kalye sa mga larawang na-upload sa mga social network account at alamin ang pagkakakilanlan ng isang dumadaan sa ilang segundo. Kasabay nito, ang mga artista, aktibista at mga espesyalista sa computer vision ay lumilikha ng mga tool na maaaring ibalik sa mga tao ang privacy, ang personal na espasyo na lumiliit sa napakabilis na bilis.

Maaaring hadlangan ang pagkakakilanlan sa iba't ibang yugto ng mga algorithm. Bilang isang patakaran, ang mga unang hakbang ng proseso ng pagkilala ay inaatake - pag-detect ng mga figure at mukha sa imahe. Kung paanong dinadaya ng camouflage ng militar ang ating paningin, nagtatago ng isang bagay, lumalabag sa mga geometric na sukat at silweta nito, gayon din paningin ng makina sinusubukan nilang lituhin siya ng mga kulay na magkakaibang mga spot na pumipihit ng mahahalagang parameter para sa kanya: ang hugis-itlog ng mukha, ang lokasyon ng mga mata, bibig, atbp. Sa kabutihang palad, computer vision hindi pa kasing perpekto ng sa atin, na nag-iiwan ng higit na kalayaan sa pagpili ng mga kulay at hugis ng naturang "camouflage".


Ang mga kulay pink at purple, dilaw at asul ay nangingibabaw sa linya ng damit ng HyperFace, ang mga unang sample ay ipinakilala ng designer na si Adam Harvey at ng startup na Hyphen Labs noong Enero 2017. Ang mga pixel pattern ay nagbibigay ng machine vision na may perpektong—mula sa punto de vista nito—larawan ng mukha ng tao, na nahuhuli ng computer bilang isang decoy. Pagkalipas ng ilang buwan, ang programmer ng Moscow na si Grigory Bakunov at ang kanyang mga kasamahan ay umunlad pa rin espesyal na aplikasyon, na bumubuo ng mga variation ng makeup na nakakasagabal sa mga sistema ng pagkakakilanlan. At kahit na ang mga may-akda, pagkatapos ng ilang pag-iisip, ay nagpasya na huwag gawing available sa publiko ang programa, ang parehong Adam Harvey ay nag-aalok ng ilang handa na mga opsyon.


Ang isang taong nakasuot ng maskara o may kakaibang makeup sa kanyang mukha ay maaaring hindi kapansin-pansin mga sistema ng kompyuter, ngunit malamang na papansinin ito ng ibang tao. Gayunpaman, may mga paraan upang gawin ang kabaligtaran. Sa katunayan, mula sa punto ng view ng neural network, ang imahe ay hindi naglalaman ng mga imahe sa karaniwang kahulugan para sa amin; para sa kanya, ang isang larawan ay isang hanay ng mga numero at coefficient. Samakatuwid, ang ganap na magkakaibang mga bagay ay maaaring magmukhang halos kapareho sa kanya. Alam ang mga nuances na ito ng AI, maaari kang magsagawa ng isang mas banayad na pag-atake at itama ang imahe nang bahagya lamang - upang ang mga pagbabago ay halos hindi mahahalata sa isang tao, ngunit ang paningin ng makina ay ganap na malinlang. Noong Nobyembre 2017, ipinakita ng mga mananaliksik kung paano naidulot ng maliliit na pagbabago sa kulay ng pagong o baseball Google system Kumpiyansa ang InceptionV3 na makakita ng baril o isang tasa ng espresso sa halip. At si Mahmoud Sharif at ang kanyang mga kasamahan mula sa Carnegie Mellon University ay nagdisenyo ng isang batik-batik na pattern para sa frame ng mga salamin: halos walang epekto ito sa pang-unawa ng mukha ng iba, ngunit ang pagkakakilanlan ng computer gamit ang Face++ ay kumpiyansa na nalilito ito sa mukha ng tao "para kanino” ang pattern sa frame ay dinisenyo.

Ang mga modernong pinagsama-samang sistema ng seguridad ay may kakayahang lutasin ang mga problema ng anumang kumplikado sa lahat ng uri ng pang-industriya, panlipunan at domestic na pasilidad. Ang mga sistema ng pagsubaybay sa video ay napakahalagang tool sa mga sistema ng seguridad, at ang mga kinakailangan para sa functionality ng segment ay patuloy na lumalaki.

Komprehensibong sistema ng seguridad

Kasama sa pinag-isang platform ang mga module para sa mga kagamitan sa seguridad at sunog, kontrol sa pag-access at pamamahala, pagsubaybay sa video o closed circuit television (CCT). Hanggang kamakailan, ang mga pag-andar ng huli ay limitado sa pagsubaybay sa video at pag-record ng sitwasyon sa pasilidad at sa nakapaligid na lugar, pag-archive at pag-iimbak ng data. Ang mga klasikong video system ay may ilang makabuluhang disadvantages:

  • Salik ng tao. Hindi epektibo ang pagganap ng operator kapag nagbo-broadcast ng malaking dami ng impormasyon.
  • Imposible ng interbensyon sa kirurhiko, hindi napapanahong pagsusuri.
  • Makabuluhang gastos sa oras para sa paghahanap at pagtukoy ng isang kaganapan.

Pag-unlad mga digital na teknolohiya humantong sa paglikha ng "matalinong" mga awtomatikong sistema.

Ang lakas ay nasa talino

Ang pangunahing prinsipyo ng intelektwal na analytics ay video analytics - isang teknolohiyang batay sa mga pamamaraan at algorithm para sa pagkilala ng imahe at awtomatikong pagkolekta ng data bilang resulta ng pagsusuri sa stream ng video. Ang nasabing kagamitan, nang walang interbensyon ng tao, ay may kakayahang tumukoy at masubaybayan sa totoong oras na tinukoy na mga target (isang kotse, isang grupo ng mga tao), mga potensyal na mapanganib na sitwasyon (usok, sunog, hindi awtorisadong interbensyon sa pagpapatakbo ng mga video camera), naka-program na mga kaganapan at kaagad. magbigay ng alarm signal. Sa pamamagitan ng pag-filter ng data ng video na hindi interesado, ang pag-load sa mga channel ng komunikasyon at database ng archive.

Ang pinakasikat na tool sa video analytics ay isang facial recognition system. Depende sa mga pag-andar na isinagawa at mga gawaing itinalaga, ang ilang mga kinakailangan ay ipinapataw sa kagamitan.

Software at hardware

Para sa mahusay na trabaho gumagamit ang mga system ng ilang uri ng mga IP video camera na may iba't ibang uri mga katangian ng pagganap. Ang pagtuklas ng isang bagay sa kinokontrol na teritoryo ay naitala ng mga panoramic camera na may resolution na 1 megapixel at isang focal length na 1 mm at itinuturo ang mga device sa pag-scan dito. Ito ay mga mas advanced na camera (mula sa 2MP, mula sa 2mm) na gumaganap ng pagkilala sa pamamagitan ng mga simpleng pamamaraan(3-4 na mga parameter). Upang makilala ang isang bagay, mga camera na may Magandang kalidad sapat na mga larawan para sa paggamit ng mga kumplikadong algorithm (mula sa 5 MP, 8-12 mm).

Pinaka sikat mga produkto ng software para sa pagkilala sa mukha na "Face Intellect" (binuo ng kumpanya ng House Control), ang direktor ng Mukha (kumpanya ng Sinesis) at VOCORD FaceControl (VOCORD) ay nagpapakita ng:

  • Mataas na posibilidad ng pagkakakilanlan ng bagay (hanggang 99%).
  • Suporta para sa isang malawak na hanay ng mga anggulo ng pag-ikot ng camera.
  • Posibilidad ng pagtukoy ng mga mukha kahit na sa mga siksik na pedestrian mass.
  • Pagkakaiba-iba sa paghahanda ng mga analytical na ulat.

Mga Pangunahing Kaalaman sa Pagkilala ng Pattern

Ang anumang mga biometric na sistema ng pagkilala ay batay sa pagtukoy ng mga sulat ng nabasang physiological na mga katangian ng isang tao sa isang tiyak na tinukoy na pattern.

Ang pag-scan ay nangyayari sa real time. Ang IP camera ay nagbo-broadcast ng video stream sa terminal, at tinutukoy ng facial recognition system kung ang imahe ay tumutugma sa mga litratong nakaimbak sa database. Mayroong dalawang pangunahing pamamaraan. Ang una ay batay sa mga static na prinsipyo: batay sa mga resulta ng pagproseso ng mga biometric na parameter, a elektronikong sample sa hugis ng natatanging numero, naaayon sa isang partikular na tao. Ang pangalawang pamamaraan ay nagmomodelo ng isang "tao" na diskarte at nailalarawan sa pamamagitan ng pag-aaral sa sarili at katatagan. Ang pagkakakilanlan ng isang tao mula sa isang video na larawan ay isinasaalang-alang ang mga pagbabago na nauugnay sa edad at iba pang mga kadahilanan (pagkakaroon ng isang headdress, balbas o bigote, salamin sa mata). Ang teknolohiyang ito ay nagpapahintulot sa iyo na magtrabaho kahit na sa mga lumang litrato at, kung kinakailangan, sa mga x-ray.

Algoritmo ng paghahanap ng mukha

Ang pinakakaraniwang pamamaraan para sa pag-detect ng mga mukha ay ang paggamit ng Haar cascades (mga hanay ng mga maskara).

Ang maskara ay isang hugis-parihaba na bintana na may magkaibang kumbinasyon puti at itim na mga segment.

Ang mekanismo ng programa ay ang mga sumusunod: ang isang video frame ay natatakpan ng isang hanay ng mga maskara, at batay sa mga resulta ng convolution (pagbibilang ng mga pixel na nahulog sa puti at itim na sektor), ang pagkakaiba ay kinakalkula at inihambing sa isang tiyak na halaga ng threshold .

Upang mapabuti ang pagganap ng classifier, ang mga positibong (mga frame na may mga mukha ng tao) at negatibo (nang wala ang mga ito) mga sample ng pagsasanay ay nilikha. Sa unang kaso, ang resulta ng convolution ay nasa itaas ng halaga ng threshold, sa pangalawa - sa ibaba. Tinutukoy ng face detector, na may katanggap-tanggap na error, ang kabuuan ng mga convolutions ng lahat ng cascades at, kung lumampas ang threshold, senyales ng pagkakaroon ng mga mukha sa frame.

Mga teknolohiya sa pagkilala

Pagkatapos ng pagtuklas at lokalisasyon, ang paunang yugto ay nagsasangkot ng liwanag at geometric na pagkakahanay ng imahe. Ang mga karagdagang aksyon - pagkalkula ng tampok at pagkakakilanlan - ay maaaring isagawa gamit ang iba't ibang mga pamamaraan.

Kapag nag-scan ng full-face na mukha sa isang silid na may mahusay na pag-iilaw, ang magagandang resulta ay ipinapakita ng mga algorithm na gumagana sa dalawang-dimensional na larawan. Sa pamamagitan ng pagsusuri sa mga natatanging punto at ang mga distansya sa pagitan ng mga ito, tinutukoy ng sistema ng pagkilala sa mukha ang katotohanan ng pagkakakilanlan batay sa mga koepisyent ng pagkakaiba sa pagitan ng "live" na imahe at ng nakarehistrong template.

Ang teknolohiyang 3D ay lumalaban sa pagbabago luminous flux, ang pinahihintulutang paglihis mula sa frontal angle ay hanggang 45 degrees. Dito, hindi lamang mga punto at linya ang sinusuri, kundi pati na rin ang mga katangian ng mga ibabaw (curvature, profile), at ang sukatan ng mga distansya sa pagitan nila. Para gumana ang gayong mga algorithm, kinakailangan pinakamataas na kalidad mga pag-record ng video hanggang sa 200 frames/s. Ang system ay batay sa mga stereo video camera na may matrix na 5 megapixels, mataas na optical resolution at error sa pag-synchronize na nabawasan sa pinakamababa. Bilang karagdagan, ang mga ito ay konektado sa pamamagitan ng isang espesyal na timing cable upang magpadala ng mga pulso ng orasan.

Estado ng modernong sistema ng merkado

Ang una, dahil sa kanilang mataas na gastos, ay binuo lamang para sa mga pasilidad ng militar ng gobyerno at noong kalagitnaan lamang ng 90s ay naging magagamit sa mga komersyal na organisasyon. Ang mabilis na pag-unlad ng teknolohiya ay naging posible upang madagdagan ang katumpakan ng mga system at palawakin ang saklaw ng kanilang aplikasyon. Ang mga nangungunang posisyon sa merkado ng ating bansa ay nabibilang sa mga tagagawa ng mga sistema ng seguridad ng Amerikano at Kanlurang Europa. Ang mga nangungunang nagbebenta ay mga kagamitan mula sa ZN Vision Technologies at Visionics corporations. Ang pinaka-promising sa mga domestic developer ay ang pananaliksik at mga produkto ng Vocord, NTechLab, Soling, VisionLabs LLC at ang TsRT group, na, bukod sa iba pang mga bagay, ay nakikibahagi din sa pag-angkop ng mga dayuhang complex sa mga kondisyon ng Russia.

Kontrol sa mukha ng computer

Ang pinakamalawak na lugar ng aplikasyon ng contactless identification ay ang paglaban sa terorismo at krimen. Ang imahe ng mukha ng kriminal ay naka-imbak sa isang database. Sa mga lugar kung saan maraming tao (mga paliparan, istasyon ng tren, shopping center, institusyong pampalakasan), nire-record ang daloy ng mga tao sa totoong oras upang matukoy ang mga wanted na tao.

Ang susunod na lugar ay ang mga access control system: naka-on ang sample na larawan ng larawan elektronikong pass ay inihambing sa modelong nakuha sa pamamagitan ng pagproseso ng data mula sa mga video camera. Ang pamamaraan ay nangyayari kaagad, nang hindi nangangailangan ng anumang karagdagang mga aksyon mula sa mga sumasailalim dito (hindi tulad ng isang retinal scan o fingerprinting).

Ang isa pang mabilis na lumalagong industriya ay ang marketing. Ini-scan ng isang interactive na billboard ang mukha ng isang tao, tinutukoy ang kanyang kasarian at edad, at nakikita lang ang mga advertisement na maaaring maging interesado sa kliyente.

Mga uso at prospect ng pag-unlad

Ang mga sistema ng pagkilala sa mukha ay may malaking pangangailangan sa sektor ng pagbabangko.

Sa pagtatapos ng nakaraang taon, ang pamamahala ng Pochta Bank, pagkatapos mag-install ng 50,000 smart video camera sa mga opisina nito, ay nakatipid ng milyun-milyong rubles sa pamamagitan ng pagpigil sa pandaraya sa mga segment ng pagpapautang at pagbabayad. Sinasabi ng mga eksperto na sa 2021 ang kinakailangang network ng imprastraktura ay malilikha at anumang mga operasyon sa mga ATM ay magiging posible lamang pagkatapos ng biometric na pagkakakilanlan ng mukha ng kliyente.

Sa susunod na dekada, gagawing posible ng mga matataas na teknolohiya na magbukas ng network ng mga full self-service na tindahan: lumalakad ang mamimili sa harap ng mga display window, pipili ng produkto na gusto niya at umalis. Ang sistema ng pagkilala sa mukha at imahe ay tutukuyin ang pagkakakilanlan ng mamimili, bibilhin at i-debit ang kinakailangang halaga mula sa kanyang account.

Ang trabaho ay isinasagawa upang lumikha ng mga sistema para sa pagkilala sa mga kalagayang psycho-emosyonal. Ang pagsusuri sa mga damdamin ng tao ay hihingin sa mga larangang multimedia: animation, sinehan, at industriya ng laro sa kompyuter.