A BBC K + F videó arcfelismerésének rövid útmutatója

Gyakran azok a feladatok, amelyeket az emberek gondolkodás nélkül hajtanak végre, a színfalak mögött a legbonyolultabb feldolgozást igénylik. Ételek kóstolása, beszélgetés barátaival, zenehallgatás és valóban az emberek felismerése. Ha meglátogatja az Eastenders epizódját, akkor a különböző szereplőket különböző körülmények között, különböző szögekből és eltérő megvilágításban láthatja, de az agyad azonnal kezelte ezeket a variációkat, hogy megtudja, hogy Dot Cotton és Phil Mitchell a jelenetben. Mivel nem gondolunk az érintett feldolgozásra, meglepődve tapasztaljuk, hogy ezek a feladatok sokkal összetettebbek, mint azt eredetileg gondoltuk, amikor megpróbáljuk őket gépi tanulásra alkalmazni.

Készítse el az alábbi képeket Harry hercegtől és Megan Markle-től az utcán. Különböző szögekből - elölről, oldalról és hátulról - láthatjuk Harryt és Meganot, mégis könnyen megismerjük őket jellemzőik alapján: bőrszín, hajszín stb. Figyelembe vesszük bizonyos társadalmi jelzéseket is. A tömeg rájuk néz, jól vannak öltözve, minden lövés közepén vannak, és nyilvánvaló folytonossága van annak, hogy az ugyanazon a jeleneten lévő felvételek folyamatosak. Az emberi intuíciónak sok rétege van, amelyekre általában nem is gondolunk, amikor kulturális és fizikai mutatókat is felismerünk.

Természetesen felismerjük Harryt és Meganot, a felvételek eltérő szöge ellenére

Szóval, hogyan tanítsunk meg egy számítógépet mindez megtanulására? Noha nem kaphatunk olyan algoritmust, hogy úgy gondoljunk, mint egy ember, meg tudjuk csinálni azt, amit a gépi tanulás a legjobban: felismerni a mintákat nagy, címkézett adatkészletekben. Ez magában foglalja a képek gyűjtését, az algoritmus kiképzését, a videók feldolgozását és a benne lévő emberek felismerését. A végső eredmény egy videó felismerésével felsorolt ​​emberek listája, a megjelenített képkockák idejével és helyével együtt.

Már dolgozunk ezen a technológián a BBC-n. A FaceRec elnevezésű rendszert az Internet Research and Future Services Data Team fejleszti a BBC Research and Development keretében (néhány gombnyomást mentünk, és csak innen hívjuk őket az adatcsoporthoz). A házon belüli kód és a külső nyílt forráskódú szoftverek - különösen a Seetaface, a C ++ arcfelismerő motor - kombinációjával készült.

A FaceRec úgy működik, hogy a videót egy algoritmikus lépés sorozatán keresztül dolgozza fel, amelyek mindegyike megoldja a teljes probléma egy meghatározott részét. Áttekintést adunk neked arról, hogyan működik ez az egész.

1. A felvételek észlelése

Annak érdekében, hogy a videóban minden egyes arc felismerhető legyen, először a videót fel kell osztani az alkotórészekre (a felvételt a képkockák sorozatának tekintjük, amely folyamatosan zajlik). Ehhez a FaceRec az FFmpeg médiafeldolgozó könyvtárat használja, amely egy funkcióval visszaadja az összes felvétel kezdési és befejezési idejét egy adott videóban.

2. Felismerni az arcokat

A következő lépés az, hogy ellenőrizzük az egyes kereteket, hogy azok tartalmaznak-e emberi arcokat. Ez trükkös probléma - meg kell próbálnunk felfedezni minden egyes arcot a futball-mérkőzésen? Számít egy póló arca? Fotókat készít az újságok elején?

Az egyes felvételek között iratkozva a FaceRec képkockákat vesz a felvételről, és azokat a SeetaFace-nak továbbítja, amely visszaadja a korlátozó dobozokat, ahol azt gondolja, hogy az arcok vannak. A SeetaFace arcfelismerő motorja felismeri, hogy egy arc „számol-e” elegendő ahhoz, hogy belekerüljön a kimenetébe. Felhívjuk figyelmét, hogy a SeetaFace nem azt mondja, kinek tartja az észlelt embereket, pusztán úgy véli, hogy egy arcot észlelt egy adott helyen a keretben.

3. Hozzon létre arcvonalakat

Most, hogy összegyűjtöttük az összes arcokat tartalmazó keretet, a következő feladat az, hogy összefűzzük ezeket az észlelt arcokat, hogy hozzon létre egy arcpályát. Az arcpálya egy folyamatos körülhatároló dobozok áramlása egy arc körül, amikor a képkockán belül mozog.

A FaceRec minden egyes arckeretes mezőt megtesz, és megpróbálja leképezni a következő keret következő logikai korlátozó mezőjére. Ez nem mindig teljesen nyilvánvaló, mivel az arcokat ideiglenesen eltakarhatják, vagy a korlátozó dobozok áthaladhatnak egymással, amikor az egyik ember a másik mögött mozog.

A korlátozó dobozok nyomon követik az arcokat egy lövés közben

A motorháztető alatt ezt a problémát Dlib és Lucas-Kanade módszer alkalmazásával oldják meg. Ez arcpályákat hoz létre, amelyeket időpontok, a keretek listája és az arcok határoló dobozai határoznak meg.

4. Hozzon létre arcvektoreket a sávokhoz

A gépi tanulási algoritmusok gyakran úgy működnek, hogy a bemeneti anyagot matematikai vektorokká alakítják. Ezután megtanulják, hogy ennek a „vektor térnek” mely részei tartoznak bizonyos kategóriákhoz vagy bemeneti típusokhoz. Az arcokat illetően megtanulják, hogy Harry herceg arcát ábrázoló vektorok általában egy adott területen vannak, míg a Megan vektorok általában egy másik szakaszban vannak. Arra is számíthat, hogy a William Prince herceg arca vektorok közelebb állnak ebben a térben Harryhez, mint Meganhoz, mivel rokonok és hasonló tulajdonságokkal rendelkeznek.

Vektorok létrehozására az észlelt arcokhoz a FaceRec a SeetaFace arcát azonosító könyvtárát használja. A FaceRec levágott képekben jeleníti meg az észlelt arcokat a határoló dobozukban az arcpálya közepétől kezdve. Visszakap egy 2024-es dimenziós vektort, amely az arc jellemzőit képviseli.

5. Felismerje fel az emberek arcát a nyomkövető vektorokban

Most már van egy arcvektor minden felismert arcra. A következő lépés az, hogy ezeket a vektorokat felismerjük a felismert arcok tényleges nevére, valamint megjelöljük azokat az arcokat, amelyeket nem ismerünk fel (és ezért nem tudunk megcímkézni).

Az első kérdés itt a következő: csak kit ismerünk fel? Biztosan nem tudunk modellt felépíteni, hogy felismerjük mindenkit, aki valaha is él - és mi sem akarjuk. Tehát ki szerintünk elég fontos ennek az arcfelismerő rendszernek?

Reálisan ezt a BBC News újságíróinak és az embereknek, akikről a leggyakrabban beszámolnak, kell irányítania. Azt is tudnunk kell, hogy ismeretlen emberek minden nap híreket jelentenek, és amikor megteszik, lehet, hogy nincs korábbi képeink róluk. E korlátozások figyelembevételével az Adatcsoport elsősorban a hírességekre, a nemzetközi vezetőkre, az Egyesült Királyság politikai képviselőire és a Lordok Házára összpontosított a FaceRec képzése során.

Ezeknek az embereknek a felismerése érdekében képzési adatokat kellett összegyűjteniük az egyes személyekről - azaz rengeteg címkével ellátott fotóról arról a személyről, amely csak azt a személyt tartalmazza. Az Adatcsoport több ezer fényképet gyűjtött össze, majd elkészítette saját front-end rendszerét az egyes fényképek egyszerű megtekintéséhez és címkézéséhez. A gépi tanulás nem megfelelő igazsága az, hogy a jól működő AI rendszer felépítése a minőségi, címkézett adatok gyűjtése gyakran a legdrágább, fárasztóbb és mégis fontos része.

Miután összegyűjtötte a fényképeket, az Adatcsoport beillesztette azokat egy gépi tanulási osztályozóba, amelyet támogató vektorgépeknek hívtak, hogy képzett modelleket hozzanak létre. Amikor a SeetaFace arcvektorát táplálják, ezek a modellek megjósolják a személy nevét az eredeti arculatban, vagy azt mondják, hogy egyáltalán nem ismerik fel az arcot.

Az IRFS két modellt hozott létre:

  1. Archívummodell: Híres emberek a XX. Századtól kezdve, amelyeket a BBC Archívum választott ki. Ez a modell körülbelül 1000 embert tartalmazott.
  2. Hírek modellje: Még fejlesztés alatt áll, ez kibővíti az Egyesült Királyság parlamentjének és regionális közgyűléseinek, a Lordok Házának és a globális vezetőknek több mint 2000 tagját. A képzési képeket a BBC News, a Factual és a Drama forrásból szerezték be.

Ezeket a kiképzett modelleket azután használják annak megjóslására, hogy az emberek mikor néznek ki videókat.

6. A klaszter arcpályái

Most, hogy az összes arcpálya fel van címkézve, az utolsó lépés az, hogy ugyanazon személy összes számát összegyűjtsük.

Ehhez az összes videó kivonatolt arcvektorát egyetlen vektortérbe helyezzük, amelyet szórakozás céljából arcfelületnek nevezünk. Az arctér megjelenítéséhez használhatunk egy Tensorboard nevű szerszámot, amely a Tensorflow gépi tanulási könyvtár része.

Ezt az arcfelületet tekintve reméljük, hogy ugyanazon személy vektorjai elég közel állnak egymáshoz és elég távol vannak másoktól, hogy automatikusan csoportosíthatjuk őket. Ezt a gépi tanulásban klaszterproblémaként ismeri.

Az alábbiakban láthatjuk az arc-pályavektorokat, amelyek kivetültek ebbe az arctérbe a Harry és Megan videó számára. És látjuk, hogy a legtöbb Megan sáv össze van kötve, így könnyedén csoportosulnak. Ez az egyik módja annak, hogy tudjuk, hogy a létrehozott arcvektorok jól működnek.

Arcok megjelenítése a TensorBoard segítségével

Azok, akik ismerik a klaszterolást, látják az arc-klaszter-probléma nehézségét. Minden videóhoz változó számú, különböző méretű klaszter lesz - sokféle vektor jelenik meg egyszer, és egyáltalán nem tartozik klaszterhez.

Ahelyett, hogy egy sötét lyukat ejtett volna le, és megpróbálta tökéletesen megoldani ezt a problémát, az Adatcsoport úgy döntött, hogy néhány heurisztikával fut. A FaceRec felosztja a problémát két külön kategóriába: az emberek arca, amelyet felismer, és az emberek arca, amelyek nem. A felismert arcok esetében az összes arcvonalat egyszerűen csoportosítja, amelyek ugyanazzal a megjósolt címkével (névvel) rendelkeznek. A felismerhetetlen arcok esetében a hierarchikus csoportosításnak nevezett technikát használják az arcvektorok felett, de nem adnak nekik címkéket.

7. Adja ki az információt

A FaceRec számára az utolsó lépés a különböző lépések során összegyűjtött összes információ táplálása. Ez JSON fájl formájában érkezik, amely a következőket tartalmazza:

A videó számai. Minden számnak:

  • Jósolt személy arra a pályára
  • A jóslat magabiztossága
  • A UUID nyomon követése
  • Arcvektor arra a számra
  • A sáv kereteinek listája

A keretek listájában az egyes keretekre vonatkozó információk a következőket tartalmazzák:

  • Arcvektor arra a keretre, ha azt észlelték
  • Az arc határoló dobozának koordinátái
  • A videóban szereplő idő megjelenik

Mit tehetünk ezekkel az adatokkal? Nézze meg következő blogbejegyzésünket, hogy megnézze ötleteinket.

Wrap-up

Valójában erről van szó. Remélhetőleg segítettünk megérteni a videó arcfelismerő rendszerbe tartozó sok részletét. És talán tudatosította mindazokat a nehéz emelőképességeket és kétértelműségeket, amelyekkel saját agyad naponta százszor foglalkoznak, amikor felismerik barátait és szeretteit.

Miután megértette a FaceRec rendszer belső működését, a News Labs feladata annak megismerése volt, hogy ez a technológia hozzáadhat-e üzleti értéket a BBC-n belül. Hogyan mutathatjuk ki a FaceRec képességeit egy intuitív bemutatóval? Mely gyártási rendszerekben láthatjuk, hogy a FaceRec illeszkedik? Kinek a munkafolyamat-problémákkal oldható meg? És ami nagyon fontos, hogyan érzik magukat az emberek az arcfelismerés használatával? Beszélünk az új technológia bevezetésének kihívásairól egy nagy szervezeten belül, valamint azokról a kérdésekről, amelyekkel szembesültünk egy arcfelismerési prototípus kidolgozásakor a „Arcfelismerés - mi haszna a Hírházaknak?” Című részben.