Kratak vodič za prepoznavanje video i video zapisa BBC-a

Često su to zadaće koje ljudi obavljaju bez razmišljanja, a koji zahtijevaju neke od najsloženijih obrada iza kulisa. Kušati hranu, razgovarati s prijateljima, slušati glazbu i, zaista, prepoznati ljude. Kada gledate epizodu Eastendera, vidite različite glumce u različitim postavkama, iz različitih kutova i pri različitoj rasvjeti, ali vaš mozak trenutno obrađuje te varijacije da biste znali da su na sceni Dot Cotton i Phil Mitchell. Budući da ne razmišljamo o obradi koja je uključena, iznenađeni smo što su ovi zadaci mnogo složeniji nego što smo u početku mislili kada ih pokušamo primijeniti u strojnom učenju.

Sljedeće slike princa Harryja i Megan Markle ponesite na ulicu. Ovdje možemo vidjeti Harryja i Megan iz različitih kutova - sprijeda, sa strane i straga - no lako ih prepoznajemo po njihovim osobinama: boji kože, boji kose i tako dalje. Također uzimamo u obzir određene socijalne znakove. Mnoštvo ih gleda, lijepo su obučeni, u središtu su svakog snimka i očit je kontinuitet snimaka s istog prizora. Ovdje postoji mnogo slojeva ljudske intuicije o kojoj često ne razmišljamo dok otkrivamo kulturne i fizičke pokazatelje.

Prirodno prepoznajemo Harryja i Megan, unatoč različitim kutovima u tim snimcima

Pa kako naučiti računalo da nauči sve to raditi? Iako ne možemo pronaći algoritam za razmišljanje kao čovjek, možemo ga natjerati da radi ono što strojno učenje najbolje radi: otkrivanje obrazaca u velikim, označenim skupima podataka. To uključuje prikupljanje slika, trening algoritma, obradu video zapisa i prepoznavanje ljudi u njima. Konačni ishod je popis osoba prepoznatih u videozapisu, zajedno s vremenom i lokacijom u okvirima u kojima se pojavljuju.

Već radimo na izgradnji ove tehnologije na BBC-u. Naš sustav, nazvan FaceRec, razvija Tim za istraživanje interneta i usluge budućih usluga u okviru BBC-jevog istraživanja i razvoja (uštedjet ćemo neke pritiske na tipke i jednostavno ih nazvati Tim podataka). Izgrađen je pomoću kombinacije internog koda i vanjskog softvera otvorenog koda - posebno, Seetaface, motora za prepoznavanje lica C ++.

FaceRec djeluje obradom videa kroz niz algoritamskih koraka, svaki rješava specifičan dio cjelokupnog problema. Dat ćemo vam pregled kako to sve radi.

1. Otkrivanje snimaka

Da bismo svako lice prepoznali u videozapisu, prvo ga moramo rastaviti na njegove sastavne snimke (snimak se definira kao niz kadrova koji se prikazuju u neprekidnom vremenskom periodu). Da biste to učinili, FaceRec koristi biblioteku za obradu medija FFmpeg koja koristi funkciju za vraćanje svih početnih i krajnjih vremena snimke unutar određenog videozapisa.

2. Otkrivanje lica

Sljedeći je korak provjera svakog okvira da biste vidjeli sadrži li ljudska lica. Ovo je škakljiv problem - trebamo li pokušati otkriti svako lice na nogometnoj utakmici? Da li se lice na majici računa? Fotografiraju li se na naslovnicama novina?

Mijenjajući se kroz svaki snimak, FaceRec uzima kadrove iz kadra i pušta ih u SeetaFace, koji zatim vraća ograničene okvire mjesta za koje misli da su lica. SeetaFaceov mehanizam za otkrivanje lica razazna da li lice „broji“ dovoljno da se uključi u svoj izlaz. Imajte na umu da SeetaFace ne kaže tko misli da su otkrivene osobe, već samo vjeruje da je otkrio lice na određenoj lokaciji unutar okvira.

3. Stvorite zapise lica

Sada kada smo prikupili sve okvire koji sadrže lica, sljedeći je zadatak spajanje tih otkrivenih lica zajedno stvoriti praćenje lica. Trag lica neprekidni je tijek ograničavajućih okvira oko lica dok se kreće unutar kadra.

FaceRec uzima svaki okvir za ograničavanje lica i pokušava ga preslikati na sljedeći okvir logičkog ograničavanja u sljedećem okviru. To nije uvijek posve očito, jer se lica mogu privremeno zatamniti ili granični okviri međusobno prelaziti dok se jedna osoba kreće iza druge.

Ograničene kutije slijede lica kroz metak

Taj se problem ispod haube rješava primjenom Dliba i metode Lucas-Kanade. Ovo stvara tragove lica koji su definirani vremenskim točkama, popisom okvira i okvirima lica.

4. Stvorite face-vektore za zapise

Algoritmi strojnog učenja često djeluju pretvaranjem ulaznog materijala u matematičke vektore. Zatim saznaju koji dijelovi ovog "vektorskog prostora" pripadaju određenim kategorijama ili vrstama unosa. U pogledu lica, naučili bi da vektori koji predstavljaju lice princa Harryja imaju određeno područje, dok su Megan vektori skloni drugim dijelovima. Također biste očekivali da će vektori lica princa Williama u ovom prostoru biti bliži Harryju nego Meganu, jer su povezani i dijele slične karakteristike.

Za stvaranje vektora za otkrivena lica, FaceRec koristi SeetaFaceovu biblioteku za identifikaciju lica. FaceRec unosi izrezanim fotografijama otkrivenih lica unutar svojih ograničavajućih okvira od sredine točke zapisa lica. Vraća natrag 2024-dimenzionalni vektor koji predstavlja značajke tog lica.

5. Prepoznajte lica ljudi u faktorima praćenja

Sada imamo faktor vektora za svaki otkriveni zapis lica. Sljedeći je korak pretvaranje tih vektora u stvarna imena prepoznatih lica, kao i označavanje lica koja ne prepoznajemo (i zato ih ne možemo označiti).

Prvo pitanje ovdje je: samo koga prepoznajemo? Sigurno ne možemo stvoriti model kako prepoznati sve koji su ikada živjeli - a niti bismo to htjeli. Pa koga mi smatramo dovoljno važnim za ovaj sustav prepoznavanja lica?

Realno, to trebaju pokrenuti novinari BBC News i ljudi o kojima najčešće izvještavaju. Također moramo biti svjesni da nepoznati ljudi svakodnevno iznose vijesti, a kad to učine, možda nećemo imati nijednu prethodnu sliku o njima. Imajući u vidu ta ograničenja, Tim za podatke se prilikom treninga FaceRec-a usredotočio uglavnom na poznate ličnosti, međunarodne vođe, američke političare u Parlamentu i Dom lordova.

Da bi prepoznali ove ljude, trebalo im je prikupiti podatke o treningu o svakoj osobi - to jest obilje etiketnih fotografija te osobe koje sadrže samo tu osobu. Data Team prikupio je tisuće fotografija, a zatim izgradio vlastiti prednji sustav kako bi lako pregledao i označio pojedine fotografije. Neseksualna istina strojnog učenja je da je prikupljanje kvalitetnih, označenih podataka često najskuplji, mukotrpan, a opet važan dio izgradnje dobro funkcionirajućeg AI sustava.

Prikupivši fotografije, tim podataka ih je zatim ubacio u klasifikator strojnog učenja nazvan stroj za vektor podrške za izradu obučenih modela. Kad se napajaju vektorom lica kompanije SeetaFace, ovi modeli predviđaju ime osobe na originalnoj slici lica ili govore jesu li uopće prepoznali lice.

IRFS je stvorio dva modela:

  1. Model arhive: Poznati ljudi od 20. stoljeća nadalje odabrani od strane ljudi iz Arhiva BBC. Ovaj model je sadržavao otprilike 1.000 ljudi.
  2. Model vijesti: Još uvijek u razvoju, ovo će se proširiti i obuhvatit će preko 2000 članova britanskog parlamenta i regionalnih skupština, Doma lordova i globalnih lidera. Slike s treninga dobivene su iz BBC News-a, Factual-a i Drame.

Ovi obučeni modeli koriste se za predviđanje ljudi koji se nalaze u videozapisima.

6. Tragovi lica klastera

Sada kada su sve tragovi lica označeni, posljednji korak je prikupljanje svih pjesama iste osobe.

Da bismo to učinili, sve izvučene face-vektore videozapisa smještamo u jedan vektorski prostor koji ćemo nazvati licem prostora radi zabave. Za vizualizaciju prostora lica možemo koristiti alat pod nazivom Tensorboard, dio biblioteke strojnog učenja Tensorflow.

Gledajući ovaj prostor lica, nadamo se da su vektori iste osobe dovoljno bliski zajedno i dovoljno daleko od drugih ljudi da ih možemo automatski grupirati. To je poznato u strojnom učenju kao problem klastera.

Ispod videa o Harryju i Meganu možemo vidjeti vektore tragova lica koji su projicirani u ovaj prostor. I vidimo da je većina Megan staza skučena, što ih čini lako skupljati. Na taj način znamo da izrađeni vektori za lice djeluju dobro.

Vizualizacija lica pomoću TensorBoarda

Oni koji su upoznati s udruživanjem vidjet će poteškoću u našem problemu udruživanja lica. Za svaki će videozapis postojati različit broj klastera različitih veličina - s mnoštvom vektora koji će se pojaviti jednom i koji uopće ne pripadaju grupi.

Umjesto da padne niz mračnu rupu pokušavajući savršeno riješiti ovaj problem, Data Team odlučio je pokrenuti s nekoliko heuristika. FaceRec problem dijeli na dvije odvojene kategorije: lica ljudi koje prepoznaje i lica ljudi koje to ne čini. Za prepoznata lica jednostavno grupira sve zapise lica koji imaju istu predviđenu oznaku (ime). Za neprepoznata lica koristi tehniku ​​koja se naziva hijerarhijsko grupiranje preko vektora lica kako bi ih grupirala, ali ne i davala im oznake.

7. Izvedite podatke

Posljednji korak za FaceRec jest prikupljanje svih informacija prikupljenih tijekom različitih koraka. Dolazi u obliku datoteke JSON koja sadrži:

Popis pjesama u videozapisu. Za svaki zapis ima:

  • Predviđena osoba za tu stazu
  • Povjerenje u predviđanje
  • Pratite UUID
  • Vektor lica za taj zapis
  • Popis okvira u tom zapisu

Na popisu okvira, podaci o svakom okviru uključuju:

  • Vektor lica za taj okvir ako je detektiran
  • Koordinate okvira za lice za lice
  • Vrijeme kad se videozapis pojavi

Što možemo učiniti s ovim podacima? Možete pogledati naš sljedeći blog da biste vidjeli naše ideje.

Zamotati

Stvarno je to tako. Nadamo se da smo vam pomogli da shvatite mnoge dijelove koji ulaze u sustav prepoznavanja videozapisa. A možda smo vas i osvijestili o svim teškim dizanjema i nejasnoćama koje vaš mozak rješava stotine puta dnevno prilikom prepoznavanja svojih prijatelja i voljenih osoba.

Nakon razumijevanja unutarnjeg funkcioniranja FaceRec sustava, zadatak News News-a bio je vidjeti gdje ova tehnologija može dodati BBC-ju poslovnu vrijednost. Kako pokazati intuicione sposobnosti intuitivnim demo? U koje bismo proizvodne sustave mogli vidjeti FaceRec? Čije bi probleme toka rada mogao riješiti? I što je važno, kako se ljudi osjećaju koristeći prepoznavanje lica? Govorimo o izazovima uvođenja nove tehnologije u veliku organizaciju i pitanjima s kojima smo se suočili prilikom izrade prototipa prepoznavanja lica u odjeljku "Prepoznavanje lica - od čega koristi Newsrooms?".