S bradou, tmavými okuliarmi a z profilu: ťažké situácie pre počítačové videnie

S bradou, tmavými okuliarmi a z profilu: ťažké situácie pre počítačové videnie

Technológie a modely pre náš budúci systém počítačového videnia vznikali a zdokonaľovali postupne a v rôznych projektoch našej spoločnosti - v Mail, Cloud, Search. Zreli ako dobrý syr alebo koňak. Jedného dňa sme si uvedomili, že naše neurónové siete vykazujú vynikajúce výsledky v rozpoznávaní a rozhodli sme sa ich spojiť do jediného b2b produktu – Vision – ktorý teraz sami používame a ponúkame vám na používanie.

Dnes naša technológia počítačového videnia na platforme Mail.Ru Cloud Solutions úspešne funguje a rieši veľmi zložité praktické problémy. Je založený na množstve neurónových sietí, ktoré sú trénované na našich dátových súboroch a špecializujú sa na riešenie aplikovaných problémov. Všetky služby bežia na našich serverových zariadeniach. Do svojich aplikácií môžete integrovať verejné API Vision, prostredníctvom ktorého sú dostupné všetky možnosti služby. API je rýchle – vďaka serverovým GPU je priemerná doba odozvy v rámci našej siete 100 ms.

Choďte za mačkou, je tam podrobný príbeh a veľa príkladov Visionovej práce.

Príkladom služby, v ktorej sami využívame spomínané technológie rozpoznávania tváre je diania. Jednou z jeho súčastí sú fotostojany Vision, ktoré inštalujeme na rôznych konferenciách. Ak sa priblížite k takémuto stojanu na fotografie, odfotíte sa vstavaným fotoaparátom a zadáte svoj email, systém okamžite nájde medzi množstvom fotografií tie, na ktorých vás zachytili fotografi z konferencie, a ak chcete, nájdené fotografie vám pošle e-mailom. A to nehovoríme o inscenovaných portrétnych záberoch – Vision vás rozpozná aj v samom pozadí v dave návštevníkov. Samozrejme, nie sú to samotné stojany na fotografie, ktoré sú rozpoznané, sú to len tablety v krásnych stojanoch, ktoré jednoducho fotia hostí pomocou svojich vstavaných fotoaparátov a prenášajú informácie na servery, kde sa dejú všetky kúzla s rozpoznávaním. A viac ako raz sme videli, aká prekvapivá je účinnosť technológie aj medzi špecialistami na rozpoznávanie obrázkov. Nižšie si povieme o niektorých príkladoch.

1. Náš model rozpoznávania tváre

1.1. Neurónová sieť a rýchlosť spracovania

Na rozpoznávanie používame modifikáciu modelu neurónovej siete ResNet 101. Average Pooling na konci je nahradený plne prepojenou vrstvou, podobne ako sa to robí v ArcFace. Veľkosť vektorových zobrazení je však 128, nie 512. Náš tréningový súbor obsahuje približne 10 miliónov fotografií 273 593 ľudí.

Model beží veľmi rýchlo vďaka starostlivo zvolenej architektúre konfigurácie servera a výpočtovej technike GPU. Prijatie odpovede z API na našich interných sieťach trvá od 100 ms – to zahŕňa detekciu tváre (detegovanie tváre na fotografii), rozpoznanie a vrátenie PersonID v odpovedi API. Pri veľkých objemoch prichádzajúcich dát – fotografií a videí – bude prenos dát do služby a prijatie odpovede trvať oveľa dlhšie.

1.2. Posúdenie účinnosti modelu

Ale určenie účinnosti neurónových sietí je veľmi nejednoznačná úloha. Kvalita ich práce závisí od toho, na akých dátových súboroch boli modely trénované a či boli optimalizované pre prácu s konkrétnymi dátami.

Presnosť nášho modelu sme začali hodnotiť populárnym overovacím testom LFW, ktorý je však príliš malý a jednoduchý. Po dosiahnutí presnosti 99,8 % už nie je užitočný. Na hodnotenie rozpoznávacích modelov existuje dobrá súťaž - Megaface, na ktorej sme sa postupne dostali na 82% rank 1. Test Megaface pozostáva z milióna fotografií - distraktorov - a model by mal byť schopný dobre rozlíšiť niekoľko tisíc fotografií celebrít z Facescrub. súbor údajov od distraktorov. Po vyčistení testu Megaface od chýb sme však zistili, že s vymazanou verziou dosahujeme presnosť 98 % v poradí 1 (fotografie celebrít sú vo všeobecnosti dosť špecifické). Preto vytvorili samostatný identifikačný test, podobný Megaface, ale s fotografiami „obyčajných“ ľudí. Potom sme zlepšili presnosť rozpoznávania na našich súboroch údajov a išli ďaleko vpred. Okrem toho používame test kvality zhlukovania, ktorý pozostáva z niekoľkých tisíc fotografií; simuluje označovanie tváre v cloude používateľa. V tomto prípade sú zhluky skupiny podobných jednotlivcov, jedna skupina pre každú rozpoznateľnú osobu. Kvalitu práce sme si overili na reálnych skupinách (pravda).

Pri každom modeli sa samozrejme vyskytujú chyby v rozpoznávaní. Takéto situácie sa však často riešia doladením prahov pre konkrétne podmienky (pre všetky konferencie používame rovnaké prahové hodnoty, ale napríklad pri systémoch kontroly prístupu musíme prahy výrazne zvýšiť, aby bolo menej falošných poplachov). Drvivá väčšina návštevníkov konferencie bola podľa našich fotobúdok Vision správne rozpoznaná. Niekedy sa niekto pozrel na orezaný náhľad a povedal: "Váš systém urobil chybu, nebol som to ja." Potom sme fotku otvorili celú a ukázalo sa, že na fotke naozaj bol tento návštevník, len sme ho nefotili my, ale niekto iný, tá osoba bola len náhodou v pozadí v zóne rozmazania. Neurónová sieť navyše často správne rozpozná aj vtedy, keď nie je viditeľná časť tváre, osoba stojí z profilu, či dokonca napoly otočená. Systém dokáže rozpoznať osobu, aj keď je tvár v oblasti optického skreslenia, povedzme pri snímaní širokouhlým objektívom.

1.3. Príklady testovania v náročných situáciách

Nižšie uvádzame príklady fungovania našej neurónovej siete. Na vstup sa posielajú fotografie, ktoré musí označiť pomocou PersonID – jedinečného identifikátora osoby. Ak majú dva alebo viac obrázkov rovnaké ID, potom podľa modelov tieto fotografie zobrazujú tú istú osobu.

Okamžite si všimnime, že pri testovaní máme prístup k rôznym parametrom a modelovým prahom, ktoré môžeme nakonfigurovať na dosiahnutie konkrétneho výsledku. Verejné API je optimalizované pre maximálnu presnosť v bežných prípadoch.

Začnime tou najjednoduchšou vecou, ​​a to rozpoznávaním tváre spredu.

S bradou, tmavými okuliarmi a z profilu: ťažké situácie pre počítačové videnie

No, to bolo príliš jednoduché. Skomplikujme si úlohu, pridajme fúzy a pár rokov.

S bradou, tmavými okuliarmi a z profilu: ťažké situácie pre počítačové videnie

Niektorí povedia, že to tiež nebolo príliš ťažké, pretože v oboch prípadoch je viditeľná celá tvár a algoritmus má k dispozícii veľa informácií o tvári. Dobre, urobme z Toma Hardyho profil. Tento problém je oveľa zložitejší a vynaložili sme veľa úsilia na jeho úspešné vyriešenie pri zachovaní nízkej chybovosti: vybrali sme trénovaciu sadu, premysleli architektúru neurónovej siete, zdokonalili stratové funkcie a zlepšili predspracovanie. fotografií.

S bradou, tmavými okuliarmi a z profilu: ťažké situácie pre počítačové videnie

Dajme mu pokrývku hlavy:

S bradou, tmavými okuliarmi a z profilu: ťažké situácie pre počítačové videnie

Mimochodom, toto je príklad obzvlášť ťažkej situácie, pretože tvár je silne zakrytá a na spodnej fotografii je tiež hlboký tieň zakrývajúci oči. V reálnom živote ľudia veľmi často menia svoj vzhľad pomocou tmavých okuliarov. Urobme to isté s Tomom.

S bradou, tmavými okuliarmi a z profilu: ťažké situácie pre počítačové videnie

Dobre, skúsme hodiť fotky z rôznych vekových kategórií a tentoraz budeme experimentovať s iným hercom. Vezmime si oveľa komplexnejší príklad, kde sú zmeny súvisiace s vekom obzvlášť výrazné. Situácia nie je pritiahnutá, vyskytuje sa pomerne často, keď potrebujete porovnať fotografiu v pase s tvárou nositeľa. Koniec koncov, prvá fotografia sa pridá do pasu, keď má majiteľ 20 rokov a vo veku 45 rokov sa človek môže výrazne zmeniť:

S bradou, tmavými okuliarmi a z profilu: ťažké situácie pre počítačové videnie

Myslíte si, že hlavný špecialista na nemožné misie sa vekom príliš nezmenil? Myslím, že aj málokto by spojil hornú a spodnú fotku, chlapec sa za tie roky veľmi zmenil.

S bradou, tmavými okuliarmi a z profilu: ťažké situácie pre počítačové videnie

Neurónové siete sa oveľa častejšie stretávajú so zmenami vzhľadu. Napríklad niekedy môžu ženy výrazne zmeniť svoj imidž pomocou kozmetiky:

S bradou, tmavými okuliarmi a z profilu: ťažké situácie pre počítačové videnie

Teraz si úlohu skomplikujme ešte viac: predpokladajme, že rôzne časti tváre sú pokryté rôznymi fotografiami. V takýchto prípadoch algoritmus nemôže porovnávať celé vzorky. Vision však takéto situácie zvláda dobre.

S bradou, tmavými okuliarmi a z profilu: ťažké situácie pre počítačové videnie

Mimochodom, na fotografii môže byť veľa tvárí, napríklad na všeobecnú fotografiu sály sa zmestí viac ako 100 ľudí. Toto je zložitá situácia pre neurónové siete, keďže mnohé tváre môžu byť osvetlené inak, niektoré rozostrené. Ak je však fotografia nasnímaná v dostatočnom rozlíšení a kvalite (aspoň 75 pixelov na štvorec pokrývajúci tvár), Vision ju dokáže rozpoznať a rozpoznať.

S bradou, tmavými okuliarmi a z profilu: ťažké situácie pre počítačové videnie

Zvláštnosťou reportážnych fotografií a obrázkov z kamier je to, že ľudia sú často rozmazaní, pretože neboli zaostrení alebo sa v tom momente pohybovali:

S bradou, tmavými okuliarmi a z profilu: ťažké situácie pre počítačové videnie

Tiež intenzita osvetlenia sa môže značne líšiť od obrázka k obrázku. Aj to sa často stáva kameňom úrazu, mnohé algoritmy majú veľké problémy so správnym spracovaním príliš tmavých a príliš svetlých obrázkov, nehovoriac o ich presnom zhode. Dovoľte mi pripomenúť, že na dosiahnutie tohto výsledku musíte určitým spôsobom nakonfigurovať prahové hodnoty; táto funkcia zatiaľ nie je verejne dostupná. Pre všetkých klientov používame rovnakú neurónovú sieť, má prahové hodnoty, ktoré sú vhodné pre väčšinu praktických úloh.

S bradou, tmavými okuliarmi a z profilu: ťažké situácie pre počítačové videnie

Nedávno sme spustili novú verziu modelu, ktorý s vysokou presnosťou rozpoznáva ázijské tváre. Kedysi to bol veľký problém, ktorý sa dokonca nazýval rasizmus „strojového učenia“ (alebo „neurónovej siete“). Európske a americké neurónové siete dobre rozoznávali kaukazské tváre, no s mongoloidnými a negroidnými tvárami bola situácia oveľa horšia. Pravdepodobne v Číne bola situácia presne opačná. Všetko je to o tréningových súboroch údajov, ktoré odrážajú dominantné typy ľudí v konkrétnej krajine. Situácia sa však mení, dnes tento problém nie je taký akútny. Vízia nemá problém s ľuďmi rôznych rás.

S bradou, tmavými okuliarmi a z profilu: ťažké situácie pre počítačové videnie

Rozpoznávanie tváre je len jednou z mnohých aplikácií našej technológie; Zrak sa dá naučiť rozpoznať čokoľvek. Napríklad poznávacie značky, a to aj v podmienkach náročných pre algoritmy: v ostrých uhloch, špinavé a ťažko čitateľné poznávacie značky.

S bradou, tmavými okuliarmi a z profilu: ťažké situácie pre počítačové videnie

2. Praktické prípady použitia

2.1. Fyzická kontrola prístupu: keď dvaja ľudia používajú rovnaký preukaz

Pomocou Vision môžete implementovať systémy na evidenciu príchodov a odchodov zamestnancov. Tradičný systém založený na elektronických preukazoch má zjavné nevýhody, napríklad pomocou jedného odznaku môžete prejsť dvoch ľudí. Ak je systém kontroly vstupu (ACS) doplnený o Vision, bude poctivo zaznamenávať, kto a kedy prišiel/odišiel.

2.2. Sledovanie času

Tento prípad použitia Vision úzko súvisí s predchádzajúcim. Ak prístupový systém doplníte o našu službu rozpoznávania tváre, dokáže nielen odhaliť narušenie kontroly vstupu, ale aj registrovať skutočnú prítomnosť zamestnancov v budove alebo zariadení. Inými slovami, Vision vám pomôže poctivo zohľadňovať, kto v akom čase prišiel do práce a odišiel a kto prácu úplne vynechal, aj keď ho kolegovia pred nadriadenými kryli.

2.3. Video Analytics: Sledovanie ľudí a zabezpečenie

Sledovaním ľudí pomocou Vision môžete presne posúdiť skutočnú premávku nákupných zón, železničných staníc, priechodov, ulíc a mnohých ďalších verejných miest. Naše sledovanie môže byť tiež veľkou pomocou pri kontrole prístupu napríklad do skladu alebo iných dôležitých kancelárskych priestorov. A samozrejme, sledovanie ľudí a tvárí pomáha riešiť bezpečnostné problémy. Prichytili ste niekoho pri krádeži vo vašom obchode? Pridajte jeho PersonID, ktoré vrátila spoločnosť Vision, na čiernu listinu vášho softvéru na analýzu videa a nabudúce systém okamžite upozorní bezpečnosť, ak sa tento typ znova objaví.

2.4. V obchode

Maloobchod a rôzne podniky služieb majú záujem o rozpoznávanie frontu. Pomocou Vision spoznáte, že nejde o náhodný zástup ľudí, ale o rad a určíte jeho dĺžku. A potom systém informuje zodpovedných o rade, aby mohli zistiť situáciu: buď je nával návštevníkov a treba privolať ďalších pracovníkov, alebo niekto fláka svoje pracovné povinnosti.

Ďalšou zaujímavou úlohou je oddeliť zamestnancov firmy v hale od návštevníkov. Typicky je systém trénovaný tak, aby oddeľoval predmety v určitom oblečení (dress code) alebo s nejakým charakteristickým znakom (značková šatka, odznak na hrudi atď.). Pomáha to presnejšie posúdiť dochádzku (aby zamestnanci „nenafukovali“ štatistiky ľudí v sále už len svojou prítomnosťou).

Pomocou rozpoznávania tváre môžete vyhodnotiť aj svoje publikum: aká je lojalita návštevníkov, teda koľko ľudí sa vracia do vášho podniku a s akou frekvenciou. Vypočítajte si, koľko unikátnych návštevníkov k vám za mesiac príde. Ak chcete optimalizovať náklady na prilákanie a udržanie, môžete tiež zistiť zmenu návštevnosti v závislosti od dňa v týždni a dokonca aj od dennej doby.

Franchisori a reťazcové spoločnosti si môžu na základe fotografií objednať hodnotenie kvality brandingu rôznych maloobchodných predajní: prítomnosť log, nápisov, plagátov, bannerov atď.

2.5. Prepravou

Ďalším príkladom zabezpečenia bezpečnosti pomocou video analýzy je identifikácia opustených predmetov v halách letísk alebo železničných staníc. Zrak sa dá naučiť rozpoznávať predmety stoviek tried: kusy nábytku, tašky, kufre, dáždniky, rôzne druhy oblečenia, fľaše atď. Ak váš systém na analýzu videa zistí objekt bez vlastníka a rozpozná ho pomocou Vision, odošle signál bezpečnostnej službe. Podobná úloha je spojená s automatickou detekciou neobvyklých situácií na verejných miestach: niekto sa cíti chorý alebo niekto fajčí na nesprávnom mieste, alebo osoba spadne na koľajnice atď. - všetky tieto vzorce dokážu rozpoznať systémy na analýzu videa. cez Vision API.

2.6. Tok dokumentov

Ďalšou zaujímavou budúcou aplikáciou Vision, ktorú v súčasnosti vyvíjame, je rozpoznávanie dokumentov a ich automatická analýza do databáz. Namiesto manuálneho zadávania (v horšom prípade zadávania) nekonečných sérií, čísel, dátumov vydania, čísel účtov, bankových údajov, dátumov a miest narodenia a mnohých ďalších formalizovaných údajov môžete dokumenty skenovať a automaticky ich odosielať cez zabezpečený kanál prostredníctvom API do cloudu, kde systém tieto dokumenty za behu rozpozná, analyzuje a vráti odpoveď s údajmi v požadovanom formáte pre automatický zápis do databázy. Dnes už Vision vie klasifikovať dokumenty (vrátane PDF) – rozlišuje pasy, SNILY, DIČ, rodné listy, sobášne listy a iné.

Samozrejme, neurónová sieť nie je schopná zvládnuť všetky tieto situácie hneď po vybalení. V každom prípade sa vytvorí nový model pre konkrétneho zákazníka, zohľadnia sa mnohé faktory, nuansy a požiadavky, vyberú sa súbory údajov a vykonajú sa iterácie školení, testovania a konfigurácie.

3. Schéma fungovania API

„Vstupnou bránou“ spoločnosti Vision pre používateľov je REST API. Môže prijímať fotografie, video súbory a vysielanie zo sieťových kamier (RTSP streamy) ako vstup.

Ak chcete používať Vision, potrebujete registrovať v službe Mail.ru Cloud Solutions a získajte prístupové tokeny (client_id + client_secret). Autentifikácia používateľa sa vykonáva pomocou protokolu OAuth. Zdrojové údaje v telách požiadaviek POST sa odosielajú do API. A ako odpoveď dostane klient z API výsledok rozpoznávania vo formáte JSON a odpoveď je štruktúrovaná: obsahuje informácie o nájdených objektoch a ich súradniciach.

S bradou, tmavými okuliarmi a z profilu: ťažké situácie pre počítačové videnie

Vzorová odpoveď

{
   "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
}

Odpoveď obsahuje zaujímavý parameter úžasnosť - to je podmienená „chladnosť“ tváre na fotografii, pomocou ktorej vyberieme najlepší záber tváre zo sekvencie. Vytrénovali sme neurónovú sieť na predpovedanie pravdepodobnosti, že sa fotka bude páčiť na sociálnych sieťach. Čím lepšia kvalita fotografie a usmievavejšia tvár, tým väčšia úžasnosť.

API Vision používa koncept nazývaný priestor. Toto je nástroj na vytváranie rôznych sád tvárí. Príkladmi priestorov sú čierne a biele zoznamy, zoznamy návštevníkov, zamestnancov, klientov atď. Pre každý token vo Vision môžete vytvoriť až 10 priestorov, každý priestor môže mať až 50 tisíc PersonID, teda až 500 tisíc za token. Navyše počet tokenov na účet nie je obmedzený.

Dnes rozhranie API podporuje nasledujúce metódy detekcie a rozpoznávania:

  • Rozpoznať/Nastaviť – detekcia a rozpoznávanie tvárí. Automaticky priradí PersonID každej jedinej osobe, vráti PersonID a súradnice nájdených osôb.
  • Vymazať – vymazanie konkrétneho PersonID z databázy osôb.
  • Skrátiť - vymaže celý priestor z PersonID, čo je užitočné, ak bol použitý ako testovací priestor a potrebujete resetovať databázu pre produkciu.
  • Detect - detekcia objektov, scén, poznávacích značiek, orientačných bodov, front atď. Vráti triedu nájdených objektov a ich súradnice
  • Detekovať pre dokumenty - zisťuje špecifické typy dokumentov Ruskej federácie (rozlišuje pas, SNILS, daňové identifikačné číslo atď.).

Čoskoro tiež dokončujeme práce na metódach pre OCR, určovanie pohlavia, veku a emócií, ako aj riešenie problémov s merchandisingom, teda pre automatické riadenie vystavenia tovaru v predajniach. Kompletnú dokumentáciu API nájdete tu: https://mcs.mail.ru/help/vision-api

4. záver

Teraz máte prostredníctvom verejného API prístup k rozpoznávaniu tváre na fotografiách a videách, podporuje sa identifikácia rôznych predmetov, poznávacích značiek, orientačných bodov, dokumentov a celých scén. Aplikačné scenáre - more. Príďte si otestovať našu službu, nastavte jej tie najnáročnejšie úlohy. Prvých 5000 transakcií je zadarmo. Možno to bude „chýbajúca ingrediencia“ pre vaše projekty.

Po registrácii a pripojení máte okamžitý prístup k API. Videnie. Všetci používatelia Habra dostanú propagačný kód na ďalšie transakcie. Napíšte mi prosím e-mailovú adresu, ktorú ste použili pri registrácii účtu!

Zdroj: hab.com

Pridať komentár