S plnovousem, tmavými brýlemi a z profilu: obtížné situace pro počítačové vidění

S plnovousem, tmavými brýlemi a z profilu: obtížné situace pro počítačové vidění

Technologie a modely pro náš budoucí systém počítačového vidění vznikaly a vylepšovaly postupně a v různých projektech naší společnosti - v Mail, Cloud, Search. Zrály jako dobrý sýr nebo koňak. Jednoho dne jsme si uvědomili, že naše neuronové sítě vykazují vynikající výsledky v rozpoznávání, a rozhodli jsme se je spojit do jediného b2b produktu – Vision – který nyní sami používáme a nabízíme vám k použití.

Naše technologie počítačového vidění na platformě Mail.Ru Cloud Solutions dnes úspěšně funguje a řeší velmi složité praktické problémy. Je založen na řadě neuronových sítí, které jsou trénovány na našich datových sadách a specializují se na řešení aplikovaných problémů. Všechny služby běží na našich serverových zařízeních. Do svých aplikací můžete integrovat veřejné rozhraní Vision API, jehož prostřednictvím jsou dostupné všechny možnosti služby. API je rychlé – díky serverovým GPU je průměrná doba odezvy v naší síti 100 ms.

Jděte ke kočce, je tam podrobný příběh a mnoho příkladů Visionovy práce.

Jako příklad služby, ve které sami využíváme zmíněné technologie rozpoznávání obličeje, můžeme uvést Události. Jednou z jeho součástí jsou fotostojany Vision, které instalujeme na různých konferencích. Pokud k takovému stojanu na fotografie přistoupíte, vyfotíte se vestavěným fotoaparátem a zadáte svůj e-mail, systém okamžitě najde mezi řadou fotografií ty, na kterých vás zachytili fotografové štábu konference, a na přání Vám zašle nalezené fotografie emailem. A to nemluvíme o inscenovaných portrétech – Vision vás pozná i v samotném pozadí v davu návštěvníků. Pochopitelně nejsou rozpoznávány samotné stojany na fotografie, jsou to jen tablety v krásných stojanech, které jednoduše fotí hosty pomocí svých vestavěných fotoaparátů a přenášejí informace na servery, kde se odehrává všechna ta kouzla s rozpoznáváním. A nejednou jsme viděli, jak překvapivá je účinnost technologie i mezi specialisty na rozpoznávání obrazu. Níže budeme hovořit o některých příkladech.

1. Náš model rozpoznávání tváře

1.1. Neuronová síť a rychlost zpracování

Pro rozpoznání používáme modifikaci modelu neuronové sítě ResNet 101. Average Pooling na konci je nahrazen plně propojenou vrstvou, podobně jako se to dělá v ArcFace. Velikost vektorových reprezentací je však 128, nikoli 512. Náš tréninkový soubor obsahuje asi 10 milionů fotografií 273 593 lidí.

Model běží velmi rychle díky pečlivě vybrané architektuře konfigurace serveru a GPU. Přijetí odpovědi z API na našich interních sítích trvá od 100 ms – to zahrnuje detekci obličeje (detekce obličeje na fotografii), rozpoznání a vrácení PersonID v odpovědi API. S velkými objemy příchozích dat – fotografií a videí – bude přenos dat do služby a přijetí odpovědi trvat mnohem déle.

1.2. Posouzení účinnosti modelu

Ale stanovení účinnosti neuronových sítí je velmi nejednoznačný úkol. Kvalita jejich práce závisí na tom, na jakých datových sadách byly modely trénovány a zda byly optimalizovány pro práci s konkrétními daty.

Přesnost našeho modelu jsme začali hodnotit oblíbeným ověřovacím testem LFW, který je ale příliš malý a jednoduchý. Po dosažení přesnosti 99,8 % již není užitečný. Pro hodnocení rozpoznávacích modelů je dobrá soutěž - Megaface, na které jsme se postupně dostali na 82% 1. místo. Test Megaface se skládá z milionu fotografií - distraktorů - a model by měl být schopen dobře rozlišit několik tisíc fotografií celebrit z Facescrub datový soubor od distraktorů. Když jsme však vyčistili test Megaface od chyb, zjistili jsme, že s vyčištěnou verzí dosahujeme přesnosti 98 % pořadí 1 (fotografie celebrit jsou obecně dost specifické). Proto vytvořili samostatný identifikační test, podobný Megaface, ale s fotografiemi „obyčejných“ lidí. Poté jsme zlepšili přesnost rozpoznávání našich datových sad a šli daleko vpřed. Kromě toho používáme test kvality shlukování, který se skládá z několika tisíc fotografií; simuluje označování obličeje v cloudu uživatele. V tomto případě jsou shluky skupiny podobných jedinců, jedna skupina pro každou rozpoznatelnou osobu. Kvalitu práce jsme ověřili na reálných skupinách (pravda).

Chyby rozpoznávání se samozřejmě vyskytují u jakéhokoli modelu. Takové situace se ale často řeší doladěním prahů pro konkrétní podmínky (pro všechny konference používáme stejné prahy, ale například u systémů kontroly přístupu musíme prahy výrazně zvýšit, aby bylo méně falešných poplachů). Naprostá většina návštěvníků konference byla podle našich fotobudek Vision správně rozpoznána. Občas se někdo podíval na oříznutý náhled a řekl: „Váš systém udělal chybu, to jsem nebyl já.“ Pak jsme fotku otevřeli celou a ukázalo se, že tento návštěvník na fotce opravdu je, jen jsme ho nefotili my, ale někdo jiný, ta osoba byla jen náhodou v pozadí v zóně rozostření. Neuronová síť navíc často správně rozpozná, i když není vidět část obličeje, nebo člověk stojí z profilu či dokonce napůl otočený. Systém dokáže rozpoznat osobu, i když je obličej v oblasti optického zkreslení, řekněme při fotografování širokoúhlým objektivem.

1.3. Příklady testování v obtížných situacích

Níže uvádíme příklady, jak naše neuronová síť funguje. Na vstup se odevzdávají fotografie, které musí označit pomocí PersonID – jedinečného identifikátoru osoby. Pokud mají dva nebo více obrázků stejné ID, pak podle modelů tyto fotografie zobrazují stejnou osobu.

Okamžitě poznamenejme, že při testování máme přístup k různým parametrům a prahovým hodnotám modelu, které můžeme nakonfigurovat pro dosažení konkrétního výsledku. Veřejné API je optimalizováno pro maximální přesnost v běžných případech.

Začněme tou nejjednodušší věcí, rozpoznáváním obličeje směřujícím dopředu.

S plnovousem, tmavými brýlemi a z profilu: obtížné situace pro počítačové vidění

No, to bylo příliš snadné. Zkomplikujme úkol, přidejme plnovous a hrstku let.

S plnovousem, tmavými brýlemi a z profilu: obtížné situace pro počítačové vidění

Někdo řekne, že to také nebylo příliš obtížné, protože v obou případech je vidět celý obličej a algoritmus má k dispozici mnoho informací o obličeji. Dobře, pojďme udělat z Toma Hardyho profil. Tento problém je mnohem složitější a vynaložili jsme mnoho úsilí na jeho úspěšné vyřešení při zachování nízké chybovosti: vybrali jsme trénovací sadu, promysleli architekturu neuronové sítě, zdokonalili ztrátové funkce a zlepšili předzpracování fotografií.

S plnovousem, tmavými brýlemi a z profilu: obtížné situace pro počítačové vidění

Dáme mu pokrývku hlavy:

S plnovousem, tmavými brýlemi a z profilu: obtížné situace pro počítačové vidění

Mimochodem, toto je příklad obzvláště obtížné situace, protože obličej je silně zakrytý a na spodní fotografii je také hluboký stín zakrývající oči. V reálném životě lidé velmi často mění svůj vzhled pomocí tmavých brýlí. Udělejme to samé s Tomem.

S plnovousem, tmavými brýlemi a z profilu: obtížné situace pro počítačové vidění

Dobře, zkusme sem hodit fotky z různých věkových kategorií a tentokrát budeme experimentovat s jiným hercem. Vezměme si mnohem složitější příklad, kde jsou změny související s věkem obzvláště výrazné. Situace není přitažená za vlasy, nastává poměrně často, když potřebujete porovnat fotografii v pase s tváří nositele. Koneckonců, první fotografie je přidána do pasu, když je majiteli 20 let, a ve věku 45 let se člověk může výrazně změnit:

S plnovousem, tmavými brýlemi a z profilu: obtížné situace pro počítačové vidění

Myslíte si, že se hlavní specialista na nemožné mise s věkem příliš nezměnil? Myslím, že i málokdo by spojil horní a spodní fotku, kluk se za ta léta hodně změnil.

S plnovousem, tmavými brýlemi a z profilu: obtížné situace pro počítačové vidění

Neuronové sítě se mnohem častěji setkávají se změnami vzhledu. Například někdy mohou ženy výrazně změnit svůj obraz pomocí kosmetiky:

S plnovousem, tmavými brýlemi a z profilu: obtížné situace pro počítačové vidění

Nyní zkomplikujme úkol ještě více: předpokládejme, že různé části obličeje jsou pokryty různými fotografiemi. V takových případech algoritmus nemůže porovnávat celé vzorky. Vision však takové situace zvládá dobře.

S plnovousem, tmavými brýlemi a z profilu: obtížné situace pro počítačové vidění

Mimochodem, na fotografii může být mnoho tváří, například na obecnou fotografii sálu se vejde více než 100 lidí. To je pro neuronové sítě obtížná situace, protože mnoho tváří může být osvětleno odlišně, některé rozostřeně. Pokud je však fotografie pořízena s dostatečným rozlišením a kvalitou (alespoň 75 pixelů na čtverec zakrývající obličej), Vision ji dokáže detekovat a rozpoznat.

S plnovousem, tmavými brýlemi a z profilu: obtížné situace pro počítačové vidění

Zvláštností reportážních fotografií a snímků z bezpečnostních kamer je, že lidé jsou často rozmazaní, protože nebyli zaostřeni nebo se v tu chvíli pohybovali:

S plnovousem, tmavými brýlemi a z profilu: obtížné situace pro počítačové vidění

Také intenzita osvětlení se může u jednotlivých snímků značně lišit. I to se často stává kamenem úrazu, mnoho algoritmů má velké potíže se správným zpracováním příliš tmavých a příliš světlých obrázků, nemluvě o jejich přesném spárování. Dovolte mi, abych vám připomněl, že k dosažení tohoto výsledku musíte určitým způsobem nakonfigurovat prahové hodnoty, tato funkce zatím není veřejně dostupná. Pro všechny klienty používáme stejnou neuronovou síť, má prahové hodnoty, které jsou vhodné pro většinu praktických úkolů.

S plnovousem, tmavými brýlemi a z profilu: obtížné situace pro počítačové vidění

Nedávno jsme spustili novou verzi modelu, který s vysokou přesností rozpoznává asijské tváře. To býval velký problém, který se dokonce nazýval rasismus „strojového učení“ (nebo „neuronové sítě“). Evropské a americké neuronové sítě dobře rozpoznávaly kavkazské tváře, ale s mongoloidními a negroidními tvářemi byla situace mnohem horší. Pravděpodobně v Číně byla situace přesně opačná. Je to všechno o tréninkových souborech dat, které odrážejí dominantní typy lidí v konkrétní zemi. Situace se však mění, dnes tento problém není tak akutní. Vision nemá problém s lidmi různých ras.

S plnovousem, tmavými brýlemi a z profilu: obtížné situace pro počítačové vidění

Rozpoznávání obličeje je jen jednou z mnoha aplikací naší technologie; Vision může být trénován, aby rozpoznal cokoli. Například SPZ, a to i v podmínkách obtížných pro algoritmy: pod ostrými úhly, špinavé a obtížně čitelné SPZ.

S plnovousem, tmavými brýlemi a z profilu: obtížné situace pro počítačové vidění

2. Praktické případy použití

2.1. Fyzická kontrola přístupu: když dva lidé používají stejný průkaz

Pomocí Vision můžete implementovat systémy pro evidenci příchodů a odchodů zaměstnanců. Tradiční systém založený na elektronických průkazech má zjevné nevýhody, například pomocí jednoho odznaku můžete projít dva lidi. Pokud je systém kontroly přístupu (ACS) doplněn o Vision, bude poctivě zaznamenávat, kdo a kdy přišel/odešel.

2.2. Sledování času

Tento případ použití Vision úzce souvisí s předchozím. Pokud přístupový systém doplníte o naši službu rozpoznávání obličejů, bude schopen nejen odhalit narušení kontroly vstupu, ale také registrovat skutečnou přítomnost zaměstnanců v objektu či zařízení. Jinými slovy, Vision vám pomůže poctivě zohlednit, kdo v kterou hodinu přišel do práce a odešel a kdo práci úplně vynechal, i když ho kolegové před nadřízenými kryli.

2.3. Video Analytics: Sledování lidí a zabezpečení

Sledováním lidí pomocí Vision můžete přesně posoudit skutečný provoz nákupních oblastí, nádraží, pasáží, ulic a mnoha dalších veřejných míst. Naše sledování může být také velkou pomocí při kontrole přístupu například do skladu nebo jiných důležitých kancelářských prostor. A samozřejmě sledování lidí a tváří pomáhá řešit bezpečnostní problémy. Přistihli jste někoho při krádeži ve vašem obchodě? Přidejte jeho PersonID, které vrátil Vision, na černou listinu vašeho softwaru pro analýzu videa a příště systém okamžitě upozorní zabezpečení, pokud se tento typ objeví znovu.

2.4. Výměna

Maloobchod a různé podniky služeb mají zájem o rozpoznávání fronty. S pomocí Vision poznáte, že se nejedná o náhodný zástup lidí, ale o frontu a určíte si její délku. A pak systém informuje odpovědné o frontě, aby mohli zjistit situaci: buď je nával návštěvníků a je třeba přivolat další pracovníky, nebo někdo fláká ve svých pracovních povinnostech.

Dalším zajímavým úkolem je oddělit zaměstnance firmy v hale od návštěvníků. Typicky je systém trénován tak, aby odděloval předměty v určitém oblečení (dress code) nebo s nějakým charakteristickým znakem (značkový šátek, odznak na hrudi atd.). To napomáhá k přesnějšímu posouzení docházky (aby zaměstnanci „nenafukovali“ statistiky lidí v sále pouhou přítomností).

Pomocí rozpoznávání obličejů můžete také vyhodnotit své publikum: jaká je loajalita návštěvníků, tedy kolik lidí se do vašeho podniku vrací a s jakou frekvencí. Spočítejte si, kolik unikátních návštěvníků k vám za měsíc přijde. Chcete-li optimalizovat náklady na přilákání a udržení, můžete také zjistit změnu návštěvnosti v závislosti na dni v týdnu a dokonce i na denní době.

Franchisoři a obchodní řetězce si mohou na základě fotografií objednat hodnocení kvality brandingu různých maloobchodních prodejen: přítomnost log, nápisů, plakátů, bannerů atd.

2.5. Přepravou

Dalším příkladem zajištění bezpečnosti pomocí videoanalýzy je identifikace opuštěných předmětů v halách letišť nebo nádraží. Zrak lze trénovat, aby rozpoznával předměty stovek tříd: kusy nábytku, tašky, kufry, deštníky, různé druhy oblečení, lahve a tak dále. Pokud váš systém pro analýzu videa detekuje objekt bez vlastníka a rozpozná jej pomocí Vision, vyšle signál bezpečnostní službě. Podobný úkol je spojen s automatickou detekcí neobvyklých situací na veřejných místech: někdo se cítí nemocný nebo někdo kouří na nesprávném místě, nebo někdo spadne na koleje a tak dále - všechny tyto vzorce mohou být rozpoznány systémy pro analýzu videa prostřednictvím rozhraní Vision API.

2.6. Tok dokumentů

Další zajímavou budoucí aplikací Vision, kterou právě vyvíjíme, je rozpoznávání dokumentů a jejich automatické parsování do databází. Namísto ručního zadávání (nebo v horším případě zadávání) nekonečných sérií, čísel, dat vydání, čísel účtů, bankovních údajů, dat a míst narození a mnoha dalších formalizovaných údajů můžete skenovat dokumenty a automaticky je odesílat přes zabezpečený kanál prostřednictvím API do cloudu, kde systém tyto dokumenty za běhu rozpozná, analyzuje a vrátí odpověď s daty v požadovaném formátu pro automatický zápis do databáze. Dnes už Vision umí klasifikovat dokumenty (včetně PDF) – rozlišuje pasy, SNILY, DIČ, rodné listy, oddací listy a další.

Všechny tyto situace samozřejmě neuronová síť není schopna zvládnout hned po vybalení. V každém případě je sestaven nový model pro konkrétního zákazníka, zohledňuje se mnoho faktorů, nuancí a požadavků, vybírají se datové sady a provádějí se iterace školení, testování a konfigurace.

3. Operační schéma API

„Vstupní bránou“ společnosti Vision pro uživatele je REST API. Může přijímat fotografie, video soubory a vysílání ze síťových kamer (RTSP streamy) jako vstup.

Chcete-li používat Vision, potřebujete registrovat ve službě Mail.ru Cloud Solutions a získat přístupové tokeny (client_id + client_secret). Ověření uživatele se provádí pomocí protokolu OAuth. Zdrojová data v tělech požadavků POST se odesílají do rozhraní API. A jako odpověď klient obdrží z API výsledek rozpoznání ve formátu JSON a odpověď je strukturovaná: obsahuje informace o nalezených objektech a jejich souřadnicích.

S plnovousem, tmavými brýlemi a z profilu: obtížné situace pro počítačové vidění

Ukázka odpovědi

{
   "status":200,
   "body":{
      "objects":[
         {
            "status":0,
            "name":"file_0"
         },
         {
            "status":0,
            "name":"file_2",
            "persons":[
               {
                  "tag":"person9"
                  "coord":[149,60,234,181],
                  "confidence":0.9999,
                  "awesomeness":0.45
               },
               {
                  "tag":"person10"
                  "coord":[159,70,224,171],
                  "confidence":0.9998,
                  "awesomeness":0.32
               }
            ]
         }

         {
            "status":0,
            "name":"file_3",
            "persons":[
               {
               "tag":"person11",
               "coord":[157,60,232,111],
               "aliases":["person12", "person13"]
               "confidence":0.9998,
               "awesomeness":0.32
               }
            ]
         },
         {
            "status":0,
            "name":"file_4",
            "persons":[
               {
               "tag":"undefined"
               "coord":[147,50,222,121],
               "confidence":0.9997,
               "awesomeness":0.26
               }
            ]
         }
      ],
      "aliases_changed":false
   },
   "htmlencoded":false,
   "last_modified":0
}

Odpověď obsahuje zajímavý parametr úžasnost - to je podmíněná „chladnost“ obličeje na fotografii, s jehož pomocí vybereme ze sekvence nejlepší záběr obličeje. Vytrénovali jsme neuronovou síť, aby předpověděla pravděpodobnost, že se fotka bude líbit na sociálních sítích. Čím lepší je kvalita fotografie a čím více se tvář usmívá, tím větší je úžasnost.

API Vision využívá koncept zvaný prostor. Jedná se o nástroj pro vytváření různých sad tváří. Příklady prostorů jsou černé a bílé seznamy, seznamy návštěvníků, zaměstnanců, klientů atd. Pro každý token ve Vision můžete vytvořit až 10 prostorů, každý prostor může mít až 50 tisíc PersonID, tedy až 500 tisíc za token. Navíc počet tokenů na účet není omezen.

Dnes API podporuje následující metody detekce a rozpoznávání:

  • Recognize/Set - detekce a rozpoznání tváří. Automaticky přiřadí PersonID každé jedinečné osobě, vrátí PersonID a souřadnice nalezených osob.
  • Smazat - smazání konkrétního PersonID z databáze osob.
  • Zkrátit – vymaže celý prostor z PersonID, což je užitečné, pokud byl použit jako testovací prostor a potřebujete resetovat databázi pro produkci.
  • Detect - detekce objektů, scén, SPZ, orientačních bodů, front atd. Vrací třídu nalezených objektů a jejich souřadnice
  • Detekce pro dokumenty - detekuje specifické typy dokumentů Ruské federace (rozlišuje pas, SNILS, daňové identifikační číslo atd.).

Brzy také dokončujeme práce na metodách pro OCR, určování pohlaví, věku a emocí a také řešení problémů s merchandisingem, tedy pro automatické řízení vystavení zboží na prodejnách. Kompletní dokumentaci API naleznete zde: https://mcs.mail.ru/help/vision-api

4. Závěr

Nyní můžete prostřednictvím veřejného API přistupovat k rozpoznávání obličejů na fotografiích a videích, podporována je identifikace různých objektů, poznávacích značek, orientačních bodů, dokumentů a celých scén. Aplikační scénáře - moře. Přijďte si otestovat naši službu, nastavit jí ty nejnáročnější úkoly. Prvních 5000 transakcí je zdarma. Možná to bude „chybějící ingredience“ pro vaše projekty.

Po registraci a připojení máte okamžitý přístup k API. Naše vize. Všichni uživatelé Habra obdrží propagační kód pro další transakce. Napište mi prosím e-mailovou adresu, kterou jste použili k registraci svého účtu!

Zdroj: www.habr.com

Přidat komentář