Stručný sprievodca rozpoznaním tváre spoločnosti BBC R & D

Často sú to úlohy, ktoré ľudia robia bez premýšľania, ktoré si vyžadujú niektoré z najkomplexnejších procesov spracovania v zákulisí. Ochutnávka jedla, chatovanie s priateľmi, počúvanie hudby a samozrejme uznávanie ľudí. Keď sledujete epizódu Eastenders, vidíte rôznych hercov v rôznych prostrediach, z rôznych uhlov a rôznych svetiel, ale váš mozog okamžite spracuje tieto variácie, aby vedel, že v scéne je Dot Cotton a Phil Mitchell. Pretože nemyslíme na príslušné spracovanie, sme prekvapení, keď zistíme, že tieto úlohy sú oveľa zložitejšie, ako sme pôvodne mysleli, keď sa ich snažíme aplikovať na strojové učenie.

Na ulici odfotografujte princa Harryho a Megana Markla nasledujúce obrázky. Vidíme tu Harryho a Megana z rôznych uhlov - spredu, zboku a zozadu - napriek tomu ich ľahko rozoznávame podľa ich vlastností: farby pleti, farby vlasov atď. Zohľadňujeme tiež určité spoločenské podnety. Dav sa na ne pozerá, sú dobre oblečení, sú v strede každého výstrelu a je tu zrejmá kontinuita záberov z tej istej scény. Existuje veľa vrstiev ľudskej intuície, o ktorých máme sklon nemyslieť, pretože zisťujeme kultúrne aj fyzické ukazovatele.

Prirodzene rozpoznávame Harryho a Megana, napriek rôznym uhlom týchto záberov

Ako teda učíme počítač naučiť sa robiť toto všetko? Aj keď nemôžeme získať algoritmus, ktorý bude myslieť ako človek, môžeme ho prinútiť robiť to, čo najlepšie funguje strojové učenie: zisťovať vzory vo veľkých označených množinách údajov. Zahŕňa to zbieranie obrázkov, školenie algoritmu, spracovanie videí a rozpoznávanie ľudí v nich. Konečným výstupom je zoznam ľudí rozpoznaných vo videu spolu s časom a umiestnením v rámcoch, ktoré sa objavia.

Už pracujeme na vývoji tejto technológie v BBC. Náš systém s názvom FaceRec sa vyvíja tímom internetového prieskumu a dátových služieb pre budúce služby v rámci výskumu a vývoja BBC (uložíme niekoľko úderov a jednoducho odtiaľto zavoláme dátovému tímu). Je postavený pomocou kombinácie interného kódu a externého softvéru s otvoreným zdrojovým kódom - najmä Seetaface, rozpoznávacieho nástroja tváre C ++.

Aplikácia FaceRec pracuje spracovaním videa pomocou série algoritmických krokov, pričom každý rieši konkrétnu časť celkového problému. Poskytneme vám prehľad o tom, ako to všetko funguje.

1. Odhaľte strely

Pre každú tvár, ktorá sa má zistiť vo videu, musíme najprv rozdeliť video na jednotlivé snímky (snímka je definovaná ako séria snímok bežiacich nepretržite). FaceRec na tento účel používa knižnicu FFmpeg na spracovanie médií, ktorá pomocou funkcie vracia čas začiatku a konca všetkých záberov v danom videu.

2. Zistite tváre

Ďalším krokom je skontrolovať každý rámec a zistiť, či obsahuje ľudské tváre. Toto je zložitý problém - mali by sme sa pri futbalovom zápase pokúsiť zistiť každú tvár? Počíta sa tvár na tričku? Robíte fotografie na prednej strane novín?

FaceRec prechádza každým záberom a sníma snímky zo záberu a dodáva ich do SeetaFace, ktorá potom vracia ohraničujúce políčka tam, kde si myslí, že sú tváre. Technológia detekcie tvárí SeetaFace zisťuje, či sa tvár „počíta“ dosť na to, aby sa do jej výstupu zahrnula. Vezmite prosím na vedomie, že SeetaFace nehovorí, kto si myslí, že zistení ľudia sú, ale iba to, že verí, že v danom rámci v rámci zistilo tvár na danom mieste.

3. Vytvorte stopy tváre

Teraz, keď sme zhromaždili všetky snímky obsahujúce tváre, je ďalšou úlohou spojiť tieto zistené tváre dohromady a vytvoriť tak tvárovú stopu. Tvárová dráha je nepretržitý tok ohraničujúcich rámčekov okolo tváre, keď sa pohybuje v rámci streleckého rámu.

FaceRec vezme každú ohraničovaciu plochu tváre a pokúsi sa ju namapovať do nasledujúceho ohraničujúceho rámčeka v nasledujúcom rámci. Nie je to vždy úplne zrejmé, pretože tváre môžu byť dočasne zakryté alebo ohraničovacie políčka sa môžu krížiť, keď sa jedna osoba pohybuje za druhou.

Ohraničujúce políčka sledujú tváre cez výstrel

Pod kapotou sa tento problém rieši pomocou metódy Dlib a Lucas-Kanade. Takto sa vytvoria stopy tváre, ktoré sú definované časovými bodmi, zoznamom rámcov a ohraničujúcimi rámčekmi tvárí.

4. Vytvorte vektory tváre pre stopy

Algoritmy strojového učenia často fungujú tak, že prevádzajú vstupný materiál na matematické vektory. Potom sa naučia, ktoré časti tohto „vektorového priestoru“ patria do konkrétnych kategórií alebo typov vstupov. Pokiaľ ide o tváre, dozvedeli sa, že vektory predstavujúce tvár Prince Harryho majú tendenciu byť v určitej oblasti, zatiaľ čo vektory Megan majú tendenciu byť v inej časti. Takisto by ste očakávali, že vektory tváre princa Williama budú v tomto priestore bližšie k Harrymu ako k Meganovi, pretože sú príbuzné a majú podobné vlastnosti.

Na vytvorenie vektorov pre detekované tváre používa FaceRec knižnicu identifikácie tváre SeetaFace. Aplikácia FaceRec podáva orezané fotografie zistených tvárí v ohraničujúcich rámčekoch od stredu tváre. Prijíma späť 2024-rozmerný vektor, ktorý predstavuje vlastnosti tejto tváre.

5. Rozpoznajte tváre ľudí vo vektoroch tváre

Teraz máme vektor tváre pre každú detekovanú tvár. Ďalším krokom je premena týchto vektorov na skutočné názvy rozpoznaných tvárí a naznačenie tvárí, ktoré nerozpoznávame (a preto ich nemožno označiť).

Prvá otázka je tu: iba koho poznáme? Určite nemôžeme vytvoriť model, ktorý by spoznal každého, kto kedy žil - a ani by sme to nechceli. Kto teda považujeme za dostatočne dôležitý pre tento systém rozpoznávania tváre?

Realisticky to musia viesť novinári v BBC News a ľudia, o ktorých najčastejšie informujú. Potrebujeme si tiež uvedomiť, že neznámy ľudia robia správy každý deň, a keď tak urobia, možno ich nemáme žiadne predchádzajúce fotografie. S ohľadom na tieto obmedzenia sa dátový tím pri tréningu FaceRec zameriaval hlavne na celebrity, medzinárodných vodcov, politikov U.K. v parlamente a Snemovňu lordov.

Na spoznanie týchto ľudí potrebovali zhromaždiť údaje o odbornej príprave o každej osobe - to znamená veľa označených fotografií tejto osoby obsahujúcich iba túto osobu. Dátový tím zhromaždil tisíce fotografií a potom vytvoril vlastný front-end systém, ktorý umožňuje jednoduché prezeranie a označovanie jednotlivých fotografií. Nepravdivou pravdou strojového učenia je, že zber kvalitných označených údajov je často najdrahšou, pracnou a napriek tomu dôležitou súčasťou budovania dobre fungujúceho systému AI.

Po zhromaždení fotografií ich dátový tím vložil do klasifikátora strojového učenia nazývaného podporný vektorový stroj na vytvorenie vyškolených modelov. Keď sa tieto modely kŕmia vektorom tváre z SeetaFace, predpovedajú meno osoby v pôvodnom obrázku tváre alebo hovoria, či vôbec nerozpoznali tvár.

IRFS vytvoril dva modely:

  1. Model archívu: Slávni ľudia od 20. storočia vyberali ľudia z archívu BBC. Tento model obsahoval približne 1 000 ľudí.
  2. Spravodajský model: Stále sa to bude vyvíjať a bude zahŕňať viac ako 2 000 členov parlamentných a regionálnych zhromaždení Spojeného kráľovstva, Snemovne lordov a svetových vodcov. Výcvikové obrázky boli získavané z BBC News, Factual a Drama.

Tieto vyškolené modely sa potom používajú na predpovedanie toho, ktorí ľudia sú vo videách.

6. Zhluky tvárových klastrov

Po označení všetkých tvárových stôp je posledným krokom zhromaždenie všetkých stôp od tej istej osoby.

Za týmto účelom umiestnime všetky extrahované vektory tváre z videa do jedného vektorového priestoru, ktorý pre zábavu nazývame priestorom tváre. Na vizualizáciu priestoru tváre môžeme použiť nástroj s názvom Tensorboard, súčasť knižnice strojového učenia Tensorflow.

Pri pohľade na tento face-space dúfame, že vektory od tej istej osoby sú dostatočne blízko seba a dosť ďaleko od iných ľudí, aby sme ich mohli automaticky zoskupiť. Toto je známe v strojovom učení ako problém zoskupovania.

Nižšie vidíme premietnuté vektory tváre do tohto priestoru tváre pre video Harry a Megan. A vidíme, že väčšina stôp Megan je zoskupených dohromady, čo uľahčuje ich zhlukovanie. To je jeden spôsob, ako vieme, že vytvorené vektory tváre fungujú dobre.

Vizualizácia tváre pomocou TensorBoard

Tí, ktorí sú oboznámení s klastrovaním, uvidia ťažkosti nášho problému s klastrovaním tvárí. Pre každé video bude existovať rôzny počet klastrov rôznych veľkostí - s veľkým počtom vektorov, ktoré sa objavia raz a ktoré nebudú patriť do žiadneho zoskupení.

Namiesto toho, aby sa tím pre pokus o dokonalé vyriešenie tohto problému dostal do temnej diery, rozhodol sa dátový tím spustiť s niekoľkými heuristikami. Aplikácia FaceRec rozdelí problém do dvoch samostatných kategórií: tváre ľudí, ktoré rozpoznáva, a tváre ľudí, ktoré nerozoznáva. Pre rozpoznané tváre jednoducho zhlukujú všetky stopy tváre dohromady, ktoré majú rovnaké predpokladané označenie (názov). Pre nerozpoznané tváre používa techniku ​​zvanú hierarchické zoskupovanie nad tvárovými vektormi na ich zoskupenie, ale nedáva im štítky.

7. Výstup informácií

Posledným krokom aplikácie FaceRec je vyplnenie všetkých informácií zhromaždených počas rôznych krokov. Je vo forme súboru JSON, ktorý obsahuje:

Zoznam skladieb vo videu. Pre každú skladbu má:

  • Predpovedaná osoba pre túto trať
  • Dôvera predpovede
  • Sledovať UUID
  • Tvárový vektor pre túto stopu
  • Zoznam snímok v tejto skladbe

V zozname rámcov informácie o každom rámci obsahujú:

  • Vektor tváre pre tento rámec, ak bol zistený
  • Súradnice ohraničenia tváre
  • Čas vo videu, v ktorom sa snímka vyskytne

Čo môžeme robiť s týmito údajmi? Naše nápady nájdete v našom nasledujúcom blogovom príspevku.

Zabaliť

To je naozaj o tom. Dúfame, že sme vám pomohli porozumieť mnohým častiam systému rozpoznávania tváre videa. A možno sme vás tiež viac informovali o všetkých ťažkých zdvihoch a nejasnostiach, ktoré váš mozog zvláda stokrát denne, keď spoznávam vašich priateľov a blízkych.

Po pochopení vnútorných funkcií systému FaceRec bolo úlohou News Labs zistiť, kde by táto technológia mohla priniesť obchodnú hodnotu v rámci BBC. Ako predvádzame schopnosti FaceRec pomocou intuitívneho dema? Ktoré výrobné systémy by sme videli, do ktorých sa FaceRec hodí? Koho problémy s pracovným tokom by to mohlo vyriešiť? A čo je dôležité, ako sa ľudia cítia pri používaní rozpoznávania tváre? Hovoríme o výzvach pri zavádzaní novej technológie vo veľkej organizácii ao otázkach, ktorým čelíme pri vývoji prototypu rozpoznávania tváre v časti „Rozpoznávanie tváre - Aké využitie sa používa v redakciách?“.