Īss ceļvedis BBC R & D video seju atpazīšanai

Bieži vien uzdevumi, ko cilvēki veic, nedomājot, prasa dažus no sarežģītākajiem apstrādes darbiem aizkulisēs. Ēdienu degustēšana, tērzēšana ar draugiem, mūzikas klausīšanās un cilvēku atpazīšana. Kad skatāties Eastenders epizodi, jūs redzat dažādus aktierus dažādos iestatījumos, no dažādiem leņķiem un atšķirīgā apgaismojumā, taču acumirklī jūsu smadzenes apstrādā šīs variācijas, lai zinātu, ka uz skatuves tas ir Dot Cotton un Phil Mitchell. Tā kā mēs nedomājam par iesaistīto apstrādi, mēs esam pārsteigti, konstatējot, ka šie uzdevumi ir daudz sarežģītāki, nekā sākotnēji domājām, mēģinot tos pielietot mašīnmācībā.

Uz ielas uzņemiet šādus prinča Harija un Meganas Markas attēlus. Mēs šeit varam redzēt Hariju un Meganu no dažādiem leņķiem - priekšā, sānos un aizmugurē, tomēr mēs tos viegli atpazīstam pēc to īpašībām: ādas krāsas, matu krāsas utt. Mēs ņemam vērā arī noteiktas sociālās norādes. Pūlis skatās uz viņiem, viņi ir labi ģērbušies, viņi atrodas katra šāviena centrā un ir acīmredzama to kadru nepārtrauktība no vienas ainas. Šeit ir daudz cilvēku intuīcijas slāņu, par kuriem mēs parasti pat nedomājam, atklājot kultūras, kā arī fiziskos rādītājus.

Mēs, protams, atpazīstam Hariju un Meganu, neskatoties uz atšķirīgajiem leņķiem šajos kadros

Tātad, kā iemācīt datoru, lai iemācītos to visu izdarīt? Kaut arī mēs nevaram iegūt algoritmu, kas domātu kā cilvēks, mēs varam panākt, lai to izdarītu tas, ko mašīnmācība dara vislabāk: atklāt modeļus lielās, marķētās datu kopās. Tas ietver attēlu apkopošanu, algoritma apmācību, video apstrādi un tajos esošo cilvēku atpazīšanu. Gala rezultāts ir to personu saraksts, kuras atpazīst videoklipā, kā arī laiks un vieta rāmjos, kuros viņi parādās.

Mēs jau strādājam pie šīs tehnoloģijas veidošanas BBC. Mūsu sistēmu, ko sauc par FaceRec, izstrādā Interneta pētījumu un nākotnes pakalpojumu datu komanda BBC Pētniecības un attīstības tīklā (mēs ietaupīsim dažus taustiņu taustiņus un turpmāk viņus vienkārši sauksim par datu komandu). Tas ir veidots, izmantojot iekšējo kodu un ārēju atvērtā pirmkoda programmatūru - it īpaši Seetaface, C ++ sejas atpazīšanas motoru.

FaceRec darbojas, apstrādājot video, izmantojot virkni algoritmisku darbību, katra no tām risinot noteiktu kopējās problēmas daļu. Mēs sniegsim pārskatu par tā darbību.

1. Noteikt šāvienus

Lai katra seja tiktu atklāta videoklipā, vispirms ir jāsadala video tā veidojošajos kadros (kadrs tiek definēts kā kadru virkne, kas darbojas nepārtraukti). Lai to izdarītu, FaceRec izmanto multivides apstrādes bibliotēku FFmpeg, kas izmanto funkciju, lai atgrieztu visu kadru sākuma un beigu laiku noteiktā video.

2. Atklāt sejas

Nākamais solis ir pārbaudīt katru rāmi, lai redzētu, vai tajā ir cilvēku sejas. Tā ir sarežģīta problēma - vai mums vajadzētu mēģināt atklāt katru futbola mača seju? Vai seja uz krekla tiek pieskaitīta? Vai fotogrāfijas ir avīžu priekšpusē?

Atkārtojot katru kadru, FaceRec uzņem kadrus no šāviena un pavada tos SeetaFace, kas pēc tam atgriež iesiešanas rūtiņas tur, kur, viņuprāt, ir sejas. SeetaFace sejas noteikšanas dzinējs uztver, vai seja ir pietiekami liela, lai iekļautu to izvadē. Lūdzu, ņemiet vērā, ka SeetaFace nesaka, kas, pēc viņas domām, ir atklātie cilvēki, bet tikai uzskata, ka tā ir noteikusi seju noteiktā vietā kadrā.

3. Izveidojiet sejas celiņus

Tagad, kad esam apkopojuši visus kadrus, kuros ir sejas, nākamais uzdevums ir sašūt šīs atklātās sejas kopā, lai izveidotu sejas trasi. Sejas celiņš ir nepārtraukta ierobežojošo kastu plūsma ap seju, kad tā pārvietojas kadra ietvaros.

FaceRec paņem katru sejas ierobežojošo lodziņu un mēģina to kartēt nākamajā rāmja loģiskajā ierobežojošajā lodziņā. Tas ne vienmēr ir pilnīgi acīmredzams, jo sejas var īslaicīgi aizēnot vai saistošās kastes var šķērsot viena otru, kad viena persona pārvietojas aiz otras.

Ierobežojošās kastes izseko sejas caur kadru

Zem pārsega šī problēma tiek atrisināta, izmantojot Dlibu un Lūkasa-Kanades metodi. Tādējādi tiek izveidotas sejas joslas, kuras nosaka laika punkti, kadru saraksts un seju ierobežojošās ailes.

4. Izveidojiet celiņu sejas vektorus

Mašīnmācīšanās algoritmi bieži darbojas, pārveidojot izejmateriālu matemātiskos vektoros. Pēc tam viņi uzzina, kuras šīs “vektoru telpas” daļas pieder pie noteiktām kategorijām vai ievades veidiem. Runājot par sejām, viņi uzzinātu, ka pārnēsātāji, kas attēlo prinča Harija seju, parasti atrodas noteiktā apgabalā, savukārt Megan pārnēsātāji mēdz atrasties citā sadaļā. Jūs varētu arī gaidīt, ka prinča Viljama sejas vektori šajā telpā ir tuvāk Harijam nekā Meganam, jo ​​viņi ir saistīti un tiem ir līdzīgas īpašības.

Lai izveidotu vektorus atklātajām sejām, FaceRec izmanto SeetaFace sejas identifikācijas bibliotēku. FaceRec baro apgrieztos atklāto seju fotoattēlos to iesiešanas kastēs no sejas trases viduspunkta. Tas saņem atpakaļ 2024 dimensijas vektoru, kas attēlo šīs sejas pazīmes.

5. Atpazīstiet cilvēku sejas, izmantojot veidotājus

Mums tagad ir sejas vektors katram atklātajam sejas slānim. Nākamais solis ir pārvērst šos vektorus atpazīto seju faktiskajos nosaukumos, kā arī atzīmēt tās sejas, kuras mēs neatpazīstam (un kuras tāpēc nevar apzīmēt).

Pirmais jautājums ir šāds: tikai kurus mēs atpazīstam? Mēs noteikti nevaram izveidot modeli, lai atpazītu ikvienu, kurš jebkad ir dzīvojis, un to mēs arī negribētu. Tātad, kuru mēs uzskatām par pietiekami nozīmīgu šai sejas atpazīšanas sistēmai?

Reāli tas jādara BBC News žurnālistiem un cilvēkiem, par kuriem viņi visbiežāk ziņo. Mums arī jāapzinās, ka nezināmi cilvēki katru dienu veido ziņas, un, kad viņi to dara, mums, iespējams, nav iepriekšēju attēlu no tiem. Paturot prātā šos ierobežojumus, apmācot FaceRec, datu grupa koncentrējās galvenokārt uz slavenībām, starptautiskajiem līderiem, Lielbritānijas politiķiem Parlamentā un Lordu palātā.

Lai atpazītu šos cilvēkus, viņiem bija jāapkopo apmācības dati par katru personu - tas ir, daudz marķētu šīs personas fotoattēlu, kuros ir tikai šī persona. Datu komanda apkopoja tūkstošiem fotoattēlu un pēc tam izveidoja savu priekšējā tīkla sistēmu, lai ērti apskatītu un marķētu atsevišķus fotoattēlus. Mašīnmācīšanās neseksiskā patiesība ir tāda, ka kvalitatīvu, marķētu datu apkopošana bieži ir visdārgākā, darbietilpīgākā un tomēr svarīgākā labi funkcionējošās AI sistēmas veidošanas daļa.

Apkopojusi fotoattēlus, datu komanda tos ievadīja mašīnmācīšanās klasifikatorā, ko sauca par atbalsta vektora mašīnu, lai izveidotu apmācītus modeļus. Kad šie modeļi tiek baroti ar sejas vektoru no SeetaFace, šie modeļi sākotnējā sejas attēlā paredz personas vārdu vai saka, vai viņi seju nemaz neatpazīst.

IRFS izveidoja divus modeļus:

  1. Arhīva modelis: slaveni cilvēki no 20. gadsimta, kurus atlasījuši cilvēki no BBC arhīva. Šajā modelī bija aptuveni 1000 cilvēku.
  2. Ziņu modelis: Tas joprojām tiek attīstīts, un tas paplašināsies, iekļaujot vairāk nekā 2000 Apvienotās Karalistes parlamenta un reģionālo asambleju locekļus, Lordu palātu un pasaules līderus. Apmācību attēli tika iegūti no BBC News, Factual un Drama.

Pēc tam šie apmācītie modeļi tiek izmantoti, lai paredzētu, kuri cilvēki ir video priekšā.

6. Kopas sejas sliedes

Tagad, kad visas sejas dziesmas ir marķētas, pēdējais solis ir apkopot visas vienas personas dziesmas.

Lai to izdarītu, mēs visus video iegūtos sejas vektorus ievietojam vienā vektoru telpā, kuru mēs jautri sauksim par sejas telpu. Lai vizualizētu telpas atstarpi, mēs varam izmantot rīku Tensorboard, kas ir daļa no mašīnmācīšanās bibliotēkas Tensorflow.

Raugoties uz šo sejas atstarpi, mēs ceram, ka vienas un tās pašas personas pārnēsātāji atrodas pietiekami tuvu kopā un pietiekami tālu no citiem cilvēkiem, ka mēs tos varam automātiski grupēt. Mašīnmācībā tas ir pazīstams kā klasterizācijas problēma.

Zemāk Harija un Megana video redzam sejas izsekošanas vektorus, kas projicēti šajā sejas telpā. Un mēs redzam, ka lielākā daļa Megan dziesmu ir saliktas kopā, padarot tās viegli kopas. Tas ir viens no veidiem, kā mēs zinām, ka radītie sejas vektori darbojas labi.

Seju vizualizēšana ar TensorBoard

Tie, kas pārzina klasteru veidošanos, redzēs mūsu sejas klasterizācijas problēmas grūtības. Katram videoklipam būs atšķirīgs skaits dažādu izmēru kopu - ar lielu skaitu vektoru, kas parādās vienreiz un nepieder nevienam klasterim.

Tā vietā, lai nokristu pa tumšu caurumu, mēģinot lieliski atrisināt šo problēmu, datu komanda nolēma darboties ar dažām heiristikām. FaceRec problēmu sadala divās atsevišķās kategorijās: cilvēku sejas, kuras tā atpazīst, un to cilvēku sejas, kuriem tā nav. Atpazītām sejām tas vienkārši sagrupē visus sejas ierakstus kopā, kuriem ir tāda pati paredzētā etiķete (nosaukums). Neatpazītām sejām tiek izmantots paņēmiens, ko sauc par hierarhisku klasterizēšanu virs sejas vektoriem, lai tās grupētu, bet nedotu tām etiķetes.

7. Izvadiet informāciju

Pēdējais FaceRec solis ir visas informācijas apkopošana, kas savākta dažādos posmos. Tas ir JSON faila formā, kurā ir:

Video ierakstu saraksts. Par katru dziesmu tai ir:

  • Paredzētā persona šai trasei
  • Prognozes pārliecība
  • Track UUID
  • Šīs dziesmas sejas vektors
  • Tā celiņa kadru saraksts

Kadru sarakstā informācija par katru kadru ietver:

  • Sejas vektors šim kadram, ja tas ir atklāts
  • Norobežojošās kastes koordinātas sejai
  • Laiks video kadrā notiek

Ko mēs varam darīt ar šiem datiem? Jūs varat apskatīt mūsu nākamo emuāra ziņu, lai redzētu mūsu idejas.

Satīt

Tas tā ir par patiesību. Cerams, ka mēs esam jums palīdzējuši izprast daudzās daļas, kas nonāk video sejas atpazīšanas sistēmā. Un, iespējams, mēs esam arī ļāvuši jums apzināties visu smago celšanu un neskaidrības, ar kurām jūsu smadzenes rīkojas simtiem reižu dienā, atzīstot savus draugus un tuviniekus.

Pēc izpratnes par FaceRec sistēmas iekšējo darbību News Labs uzdevums bija noskaidrot, kur šī tehnoloģija varētu pievienot biznesa vērtību BBC. Kā mēs ar intuitīvu demonstrāciju parādīsim FaceRec spējas? Kurās ražošanas sistēmās mēs varētu redzēt, kā FaceRec iederas? Kuras darbplūsmas problēmas tas varētu atrisināt? Un svarīgi, kā cilvēki jūtas, izmantojot sejas atpazīšanu? Mēs runājam par izaicinājumiem, kas saistīti ar jaunas tehnoloģijas ieviešanu lielā organizācijā, kā arī par jautājumiem, ar kuriem mēs saskārāmies, izstrādājot sejas atpazīšanas prototipu sadaļā “Sejas atpazīšana - cik tas noder Newsroom?”.