Kratek vodnik za razpoznavanje video posnetkov R&D BBC

Pogosto so naloge, ki jih ljudje opravljajo brez razmišljanja, potrebne nekatere najbolj zapletene obdelave v zakulisju. Okusiti hrano, klepetati s prijatelji, poslušati glasbo in res prepoznati ljudi. Ko gledate epizodo Eastendersa, vidite različne igralce v različnih nastavitvah, iz različnih zornih kotov in pri različni osvetlitvi, vendar pa vaši možgani takoj obvladajo te različice, da veste, da sta na sceni Dot Cotton in Phil Mitchell. Ker ne razmišljamo o vključeni obdelavi, smo presenečeni, ko so ugotovili, da so te naloge veliko bolj zapletene, kot smo sprva mislili, ko jih poskušamo uporabiti pri strojnem učenju.

Na ulici vzemite naslednje slike princa Harryja in Megan Markle. Tu lahko vidimo Harryja in Megan iz različnih zornih kotov - spredaj, ob strani in zadaj - vendar jih zlahka prepoznamo po njihovih lastnostih: barvi kože, barvi las in tako naprej. Upoštevamo tudi nekatere družbene napotke. Množica jih gleda, lepo so oblečeni, so v središču vsakega posnetka in očitno je kontinuiteta posnetkov z istega prizora. Tu je veliko plasti človeške intuicije, na katere običajno ne razmišljamo, ko zaznavamo kulturne in fizične kazalce.

Harryja in Megan seveda prepoznamo, kljub različnim kotom teh posnetkov

Kako torej učimo računalnik, da se nauči vse to? Medtem ko ne moremo najti algoritma, ki bi razmišljal kot človek, ga lahko prisilimo, da dela tisto, kar strojno učenje najbolje počne: zazna vzorce v velikih, označenih naborih podatkov. To vključuje zbiranje slik, usposabljanje algoritma, obdelavo videoposnetkov in prepoznavanje ljudi v njih. Končni izid je seznam ljudi, prepoznanih v videoposnetku, skupaj s časom in lokacijo v okvirih, ki se prikažejo.

Pri BBC-ju že delamo na tem področju. Naš sistem, imenovan FaceRec, razvija Raziskovalna skupina za internetne raziskave in prihodnje storitve v okviru BBC-jeve raziskave in razvoja (prihranili bomo nekaj pritiskov tipk in jih bomo samo od tukaj poimenovali Podatkovna skupina). Zgrajena je s pomočjo kombinacije lastne kode in zunanje programske opreme z odprtim kodom, zlasti Seetaface, mehanizem za prepoznavanje obrazov C ++.

FaceRec deluje tako, da obdela video z nizom algoritmičnih korakov, pri čemer vsak reši določen del celotne težave. Dali vam bomo pregled, kako to deluje.

1. Zaznajte posnetke

Za vsak obraz, ki ga lahko zaznamo v videoposnetku, moramo najprej razdeliti video na sestavne posnetke (posnetek je opredeljen kot niz sličic, ki tečejo neprekinjeno). To storite tako, da FaceRec uporablja knjižnico za obdelavo predstavnosti FFmpeg, ki uporablja funkcijo za vrnitev začetnih in končnih časov vseh posnetkov v določenem videoposnetku.

2. Zaznajte obraze

Naslednji korak je, da preverite vsak okvir in preverite, ali vsebuje človeške obraze. To je težaven problem - naj na nogometni tekmi skušamo odkriti vsak obraz? Ali obraza na majici šteje? Ali fotografije na sprednji strani časopisov?

Med ponovitvijo vsakega posnetka FaceRec odvzame okvirje in jih pošlje v SeetaFace, ki nato vrne omejevalna polja tam, kjer misli, da so obrazi. SeetaFaceov mehanizem za zaznavanje obrazov ugotovi, ali obraz "šteje" dovolj, da ga vključi v svoj izhod. Prosimo, upoštevajte, da SeetaFace ne pove, kdo misli, da so odkrite osebe, temveč zgolj to, da verjame, da je v določenem mestu v okviru zaznal obraz.

3. Ustvarite posnetke obrazov

Zdaj, ko smo zbrali vse okvirje, ki vsebujejo obraze, je naslednja naloga, da te odkrite obraze zlepimo skupaj, da ustvarite sled. Obrazna steza je neprekinjen tok omejujočih škatel okrog obraza, ko se giblje znotraj okvirja.

FaceRec vzame vsako polje za omejevanje obrazov in ga poskuša preslikati v naslednje polje z logičnim omejevanjem v naslednjem okviru. To ni vedno povsem očitno, saj se obrazi lahko začasno zasenčijo ali pa se omejujoči okvirji med seboj prekrižajo, ko se ena oseba premika za drugo.

Mejne škatle sledijo obrazom skozi strel

Pod pokrovom se ta težava reši z uporabo Dliba in metode Lucas-Kanade. To ustvari sledove obraza, ki so definirane s časovnimi točkami, seznamom okvirjev in omejujočimi polji obrazov.

4. Ustvari obraze vektorjev za skladbe

Algoritmi za strojno učenje pogosto delujejo s pretvorbo vhodnega gradiva v matematične vektorje. Nato se naučijo, kateri deli tega "vektorskega prostora" pripadajo določenim kategorijam ali vrstam vnosa. Z vidika obrazov bi se naučili, da vektorji, ki predstavljajo lice princa Harryja, ponavadi ležijo na določenem območju, medtem ko so vektorji Megan ponavadi na drugem odseku. Prav tako pričakujete, da bodo vektorji obraza princa Williama v tem prostoru bližje Harryju kot Megan, saj so povezani in imajo podobne lastnosti.

Za ustvarjanje vektorjev za zaznane obraze FaceRec uporablja knjižnico za identifikacijo obraza SeetaFace. FaceRec se vrezuje v obrezane fotografije zaznanih obrazov znotraj svojih omejujočih polj od sredine točke obraza. Nazaj prejme 2024-dimenzijski vektor, ki predstavlja lastnosti tega obraza.

5. Prepoznajte obraze ljudi v vektorjih za sledenje

Zdaj imamo obrazec-vektor za vsako odkrito sled. Naslednji korak je, da te vektorje spremenimo v dejanska imena prepoznanih obrazov ter označimo obraze, ki jih ne prepoznamo (in jih zato ne moremo označiti).

Prvo vprašanje tukaj je: le koga prepoznamo? Zagotovo ne moremo sestaviti modela, s katerim bi prepoznali vse, ki smo kdaj živeli - in tega tudi ne bi želeli. Kdo se nam torej zdi dovolj pomemben za ta sistem prepoznavanja obrazov?

Realno bi to morali voditi novinarji BBC News in ljudje, o katerih najpogosteje poročajo. Zavedati se moramo tudi, da neznani ljudje novice objavljajo vsak dan, in ko to storijo, morda ne bomo imeli nobenih prejšnjih slik o njih. Glede na te omejitve se je skupina za podatke pri izobraževanju FaceRec osredotočila predvsem na zvezdnike, mednarodne voditelje, ameriške politike v Parlamentu in Hišo lordov.

Da bi te ljudi prepoznali, so morali zbrati podatke o usposabljanju o vsaki osebi - to je veliko nalepljenih fotografij te osebe, ki vsebujejo samo to osebo. Podatkovna skupina je zbrala na tisoče fotografij in nato zgradila svoj lastni sistem za lažji ogled in označevanje posameznih fotografij. Neseksualna resnica strojnega učenja je, da je zbiranje kakovostnih, označenih podatkov pogosto najdražji, naporen in hkrati pomemben del izgradnje dobro delujočega sistema AI.

Po zbiranju fotografij jih je ekipa za podatke nato vnesla v klasifikator za strojno učenje, imenovan podporni vektorski stroj za ustvarjanje usposobljenih modelov. Ko se hranijo z vektorjem obraza SeetaFace, ti modeli napovedujejo ime osebe na izvirni sliki obraza ali povedo, ali sploh niso prepoznali obraza.

IRFS je ustvaril dva modela:

  1. Model arhiva: Znani ljudje od 20. stoletja naprej, ki so jih izbrali ljudje iz BBC Archive. Ta model je vseboval približno 1.000 ljudi.
  2. Novinski model: Še vedno se razvija, saj bo vključeval več kot 2000 članov britanskega parlamenta in regionalnih skupščin, Hiše lordov in svetovnih voditeljev. Slike treninga so bile pridobljene iz BBC News, Factual in Drama.

Ti usposobljeni modeli se nato uporabljajo za napovedovanje, kateri ljudje so v posnetkih.

6. Sledi obraza grozda

Zdaj, ko so bile vse obrazne sledi označene, je zadnji korak zbiranje vseh skladb iste osebe.

Da bi to naredili, smo vse izvlečene obrazne vektorje videoposnetka postavili v en vektorski prostor, ki mu bomo rekli za zabavo. Za vizualizacijo prostora obraza lahko uporabimo orodje, imenovano Tensorboard, del knjižnice strojnega učenja Tensorflow.

Če pogledamo ta obrazni prostor, upamo, da so vektorji iste osebe dovolj blizu in dovolj oddaljeni od drugih ljudi, da jih lahko samodejno združimo. To se v strojnem učenju pozna kot problem grozdenja.

Spodnji videoposnetek o Harryju in Meganu lahko vidimo v tem prostoru za obraze, ki so projicirani v obraz. In vidimo, da je večina Meganskih skladb združenih, kar jih olajša. To je en način, kako vemo, da ustvarjeni vektorji obraza delujejo dobro.

Vizualizacija obrazov s TensorBoardom

Tisti, ki so seznanjeni z grozdom, bodo videli težavo našega problema z grozdanjem po obrazu. Za vsak videoposnetek bo različno število grozdov različnih velikosti - z veliko vektorji, ki se pojavijo enkrat in ne pripadajo nobeni skupini.

Namesto da bi padli v temno luknjo s tem, da bi poskušali to težavo popolnoma rešiti, se je ekipa Data odločila, da bo z nekaj hevristike. FaceRec težavo razdeli na dve ločeni kategoriji: obraze ljudi, ki jih prepozna, in obraze ljudi, ki jih ne. Za prepoznane obraze preprosto združuje vse posnetke obrazov, ki imajo enako predvideno oznako (ime). Za neprepoznane obraze uporablja tehniko, imenovano hierarhično združevanje po obraznih vektorjih, da jih združuje, ne pa da jim daje oznake.

7. Iznesite informacije

Zadnji korak za FaceRec je napajanje vseh informacij, zbranih v različnih korakih. To je v obliki datoteke JSON, ki vsebuje:

Seznam skladb v videoposnetku. Za vsako skladbo ima:

  • Napovedana oseba za to skladbo
  • Zaupanje napovedi
  • Sledite UUID
  • Obraz vektorja za to skladbo
  • Seznam okvirjev v tej skladbi

Na seznamu okvirjev informacije o vsakem okviru vključujejo:

  • Obraz vektor za ta okvir, če je bil zaznan
  • Koordinate okvirja za obraz
  • Čas v kadru nastopi

Kaj lahko storimo s temi podatki? Lahko si ogledate našo naslednjo objavo na blogu in si ogledate naše ideje.

Zaviti

To je v resnici. Upajmo, da smo vam pomagali razumeti številne dele, ki spadajo v sistem za prepoznavanje obrazov za video. In morda smo vas tudi bolj osveščali o vseh težkih dvigovanjih in dvoumnostih, s katerimi se lastni možgani spopadajo stokrat na dan, ko prepoznavajo svoje prijatelje in ljubljene.

Po razumevanju notranjega delovanja sistema FaceRec je bila naloga News Labs-a videti, kje lahko ta tehnologija doda BBC-ju poslovno vrednost. Kako z intuitivno predstavitvijo pokazati sposobnosti FaceRec-a? V katere proizvodne sisteme bi lahko videli, da se FaceRec prilega? Katere težave v delovnem toku bi lahko rešil? In kar je pomembno, kako se ljudje počutijo pri uporabi prepoznavanja obrazov? Govorimo o izzivih uvedbe nove tehnologije v veliki organizaciji in o vprašanjih, s katerimi smo se soočali pri razvoju prototipa prepoznavanja obraza v razpoznavi obrazov - Kakšne koristi imajo časopisi? «.