Z brado, temnimi očali in iz profila: težke situacije za računalniški vid

Z brado, temnimi očali in iz profila: težke situacije za računalniški vid

Tehnologije in modeli za naš prihodnji sistem računalniškega vida so nastajali in izboljševali postopoma in v različnih projektih našega podjetja – v Pošti, Oblaku, Iskanju. Zoreli so kot dober sir ali konjak. Nekega dne smo ugotovili, da naše nevronske mreže kažejo odlične rezultate pri prepoznavanju in smo se odločili, da jih združimo v en sam b2b produkt – Vision – ki ga zdaj uporabljamo sami in vam ga ponujamo v uporabo.

Danes naša tehnologija računalniškega vida na platformi Mail.Ru Cloud Solutions uspešno deluje in rešuje zelo zapletene praktične probleme. Temelji na številnih nevronskih mrežah, ki so usposobljene na naših naborih podatkov in so specializirane za reševanje uporabnih problemov. Vse storitve delujejo na naših strežniških zmogljivostih. V svoje aplikacije lahko integrirate javni Vision API, preko katerega so na voljo vse zmožnosti storitve. API je hiter – zahvaljujoč strežniškim GPU je povprečni odzivni čas znotraj našega omrežja 100 ms.

Pojdite do mačke, tam je podrobna zgodba in veliko primerov Visionovega dela.

Primer storitve, pri kateri sami uporabljamo omenjene tehnologije prepoznave obraza je Dogodki. Ena izmed njegovih komponent so stojala za fotografije Vision, ki jih postavljamo na različnih konferencah. Če pristopite k takšnemu stojalu za fotografije, se fotografirate z vgrajeno kamero in vpišete svoj e-poštni naslov, bo sistem med naborom fotografij takoj našel tiste, na katerih so vas ujeli zaposleni fotografi konference, in po želji najdene fotografije vam bomo poslali po elektronski pošti. In ne govorimo o uprizorjenih portretnih posnetkih – Vision vas prepozna tudi v samem ozadju v množici obiskovalcev. Seveda niso prepoznana sama stojala za fotografije, to so le tablice v lepih stojalih, ki preprosto fotografirajo goste z vgrajenimi kamerami in posredujejo informacije strežnikom, kjer se zgodi vsa čarovnija prepoznavanja. Več kot enkrat smo videli, kako presenetljiva je učinkovitost tehnologije celo med strokovnjaki za prepoznavanje slik. Spodaj bomo govorili o nekaterih primerih.

1. Naš model za prepoznavanje obraza

1.1. Nevronska mreža in hitrost obdelave

Za prepoznavanje uporabljamo modifikacijo modela nevronske mreže ResNet 101. Average Pooling na koncu nadomesti popolnoma povezana plast, podobno kot je to narejeno v ArcFace. Vendar je velikost vektorskih predstavitev 128, ne 512. Naš komplet za usposabljanje vsebuje približno 10 milijonov fotografij 273 ljudi.

Model deluje zelo hitro zahvaljujoč skrbno izbrani konfiguracijski arhitekturi strežnika in GPU računalništva. Traja od 100 ms, da prejmemo odgovor API-ja v naših internih omrežjih – to vključuje zaznavanje obraza (zaznavanje obraza na fotografiji), prepoznavanje in vračanje PersonID-ja v odzivu API-ja. Pri velikih količinah dohodnih podatkov - fotografij in videoposnetkov - bo prenos podatkov v storitev in prejem odgovora trajal veliko več časa.

1.2. Ocena učinkovitosti modela

Toda določanje učinkovitosti nevronskih mrež je zelo dvoumna naloga. Kakovost njihovega dela je odvisna od tega, na katerih nizih podatkov so bili modeli usposobljeni in ali so bili optimizirani za delo s specifičnimi podatki.

Natančnost našega modela smo začeli ocenjevati s priljubljenim verifikacijskim testom LFW, vendar je premajhen in preprost. Ko doseže 99,8 % natančnost, ni več uporaben. Obstaja dobra konkurenca za ocenjevanje prepoznavnih modelov - Megaface, na kateri smo postopoma dosegli 82% rang 1. Test Megaface je sestavljen iz milijona fotografij - distraktorjev - in model naj bi dobro razločil več tisoč fotografij slavnih iz Facescruba. nabor podatkov iz distraktorjev. Ko pa smo test Megaface očistili napak, smo ugotovili, da z očiščeno različico dosegamo natančnost 98% 1. stopnje (fotografije zvezdnikov so na splošno precej specifične). Zato so ustvarili ločen identifikacijski test, podoben Megafaceu, vendar s fotografijami »navadnih« ljudi. Nato smo izboljšali natančnost prepoznavanja naših naborov podatkov in šli daleč naprej. Poleg tega uporabljamo test kakovosti grozdenja, ki je sestavljen iz več tisoč fotografij; simulira označevanje obraza v uporabnikovem oblaku. V tem primeru so grozdi skupine podobnih posameznikov, ena skupina za vsako prepoznavno osebo. Kakovost dela smo preverili na realnih skupinah (true).

Seveda se pri vsakem modelu pojavijo napake pri prepoznavanju. Toda takšne situacije se pogosto rešujejo s fino nastavitvijo pragov za posebne pogoje (za vse konference uporabljamo enake pragove, vendar moramo na primer pri sistemih za nadzor dostopa močno povečati pragove, da je manj lažnih pozitivnih rezultatov). Veliko večino obiskovalcev konference so naše fotografske kabine Vision pravilno prepoznale. Včasih bi kdo pogledal obrezan predogled in rekel: "Vaš sistem je naredil napako, nisem bil jaz." Nato smo fotografijo odprli v celoti in izkazalo se je, da je na fotografiji res ta obiskovalec, le da nismo fotografirali njega, ampak nekoga drugega, oseba se je pač znašla v ozadju v območju zamegljenosti. Še več, nevronska mreža pogosto pravilno prepozna tudi, ko del obraza ni viden ali oseba stoji v profilu ali celo napol obrnjena. Sistem lahko prepozna osebo, tudi če je obraz v območju optičnega popačenja, recimo pri fotografiranju s širokokotnim objektivom.

1.3. Primeri testiranja v težkih situacijah

Spodaj so primeri delovanja naše nevronske mreže. Na vnos se oddajo fotografije, ki jih mora označiti z uporabo PersonID - edinstvenega identifikatorja osebe. Če imata dve ali več slik isti ID, te fotografije glede na modele prikazujejo isto osebo.

Naj takoj opozorimo, da imamo pri testiranju dostop do različnih parametrov in pragov modela, ki jih lahko konfiguriramo za doseganje določenega rezultata. Javni API je optimiziran za največjo natančnost v pogostih primerih.

Začnimo z najpreprostejšim, s prepoznavanjem sprednjega obraza.

Z brado, temnimi očali in iz profila: težke situacije za računalniški vid

No, to je bilo prelahko. Zakomplicirajmo nalogo, dodajmo brado in prgišče let.

Z brado, temnimi očali in iz profila: težke situacije za računalniški vid

Nekateri bodo rekli, da tudi to ni bilo pretežko, saj je v obeh primerih viden celoten obraz, algoritmu pa je na voljo veliko informacij o obrazu. V redu, spremenimo Toma Hardyja v profil. Ta problem je veliko bolj zapleten in vložili smo veliko truda, da smo ga uspešno rešili ob ohranjanju nizke stopnje napak: izbrali smo učni nabor, premislili o arhitekturi nevronske mreže, izpilili funkcije izgube in izboljšali predprocesiranje fotografij.

Z brado, temnimi očali in iz profila: težke situacije za računalniški vid

Dajmo mu pokrivalo:

Z brado, temnimi očali in iz profila: težke situacije za računalniški vid

Mimogrede, to je primer posebej težke situacije, saj je obraz močno zakrit, na spodnji fotografiji pa je tudi globoka senca, ki skriva oči. V resničnem življenju ljudje zelo pogosto spremenijo svoj videz s pomočjo temnih očal. Naredimo enako s Tomom.

Z brado, temnimi očali in iz profila: težke situacije za računalniški vid

V redu, poskusimo dodati fotografije iz različnih starosti in tokrat bomo eksperimentirali z drugim igralcem. Vzemimo veliko bolj kompleksen primer, kjer so starostne spremembe še posebej izrazite. Situacija ni nenavadna, pojavlja se precej pogosto, ko morate primerjati fotografijo v potnem listu z obrazom imetnika. Konec koncev je prva fotografija dodana v potni list, ko je lastnik star 20 let, do 45. leta pa se lahko človek močno spremeni:

Z brado, temnimi očali in iz profila: težke situacije za računalniški vid

Se vam zdi, da se glavni specialist za nemogoče misije s starostjo ni kaj dosti spremenil? Mislim, da bi tudi malokdo združil zgornjo in spodnjo fotko, tako se je fant z leti spremenil.

Z brado, temnimi očali in iz profila: težke situacije za računalniški vid

Nevronske mreže se veliko pogosteje srečujejo s spremembami videza. Na primer, včasih lahko ženske močno spremenijo svojo podobo s pomočjo kozmetike:

Z brado, temnimi očali in iz profila: težke situacije za računalniški vid

Zdaj pa še bolj zapletimo nalogo: predpostavimo, da so na različnih fotografijah pokriti različni deli obraza. V takih primerih algoritem ne more primerjati celotnih vzorcev. Vendar Vision dobro obvlada takšne situacije.

Z brado, temnimi očali in iz profila: težke situacije za računalniški vid

Mimogrede, na fotografiji je lahko veliko obrazov, na primer, več kot 100 ljudi se lahko prilega splošni fotografiji dvorane. To je težka situacija za nevronske mreže, saj je veliko obrazov lahko osvetljenih drugače, nekateri niso izostreni. Če pa je fotografija posneta z zadostno ločljivostjo in kakovostjo (vsaj 75 slikovnih pik na kvadrat, ki pokriva obraz), jo bo Vision lahko zaznal in prepoznal.

Z brado, temnimi očali in iz profila: težke situacije za računalniški vid

Posebnost reportažnih fotografij in posnetkov z nadzornih kamer je, da so ljudje pogosto zamegljeni, ker niso bili izostreni ali so se v tistem trenutku premikali:

Z brado, temnimi očali in iz profila: težke situacije za računalniški vid

Prav tako se lahko intenzivnost osvetlitve zelo razlikuje od slike do slike. Tudi to pogosto postane kamen spotike; številni algoritmi imajo velike težave pri pravilni obdelavi pretemnih in presvetlih slik, da ne omenjamo njihovega natančnega ujemanja. Naj vas spomnim, da morate za dosego tega rezultata na določen način konfigurirati pragove; ta funkcija še ni javno dostopna. Za vse odjemalce uporabljamo isto nevronsko mrežo, ima pragove, ki so primerni za večino praktičnih nalog.

Z brado, temnimi očali in iz profila: težke situacije za računalniški vid

Nedavno smo uvedli novo različico modela, ki z visoko natančnostjo prepoznava azijske obraze. To je bil včasih velik problem, ki so ga imenovali celo rasizem »strojnega učenja« (ali »nevronske mreže«). Evropske in ameriške nevronske mreže so dobro prepoznale kavkaške obraze, z mongoloidnimi in negroidnimi obrazi pa je bilo stanje veliko slabše. Verjetno je bilo na Kitajskem ravno obratno. Vse se nanaša na nize podatkov o usposabljanju, ki odražajo prevladujoče vrste ljudi v določeni državi. Vendar se razmere spreminjajo, danes ta problem ni tako pereč. Vid nima težav z ljudmi različnih ras.

Z brado, temnimi očali in iz profila: težke situacije za računalniški vid

Prepoznavanje obraza je le ena od mnogih aplikacij naše tehnologije; Vision je mogoče usposobiti, da prepozna karkoli. Na primer registrske tablice, tudi v pogojih, ki so težki za algoritme: pod ostrimi koti, umazane in težko berljive registrske tablice.

Z brado, temnimi očali in iz profila: težke situacije za računalniški vid

2. Primeri praktične uporabe

2.1. Nadzor fizičnega dostopa: ko dve osebi uporabljata isto prepustnico

S pomočjo Visiona lahko implementirate sisteme za evidentiranje prihoda in odhoda zaposlenih. Tradicionalni sistem, ki temelji na elektronskih izkaznicah, ima očitne pomanjkljivosti, na primer, z eno izkaznico lahko mimo dveh oseb. Če sistem za nadzor pristopa (ACS) dopolnimo z Visionom, bo ta pošteno beležil, kdo je prišel/odšel in kdaj.

2.2. Sledenje času

Ta primer uporabe Vision je tesno povezan s prejšnjim. Če dostopni sistem dopolnite z našo storitvijo prepoznave obraza, bo le-ta lahko zaznaval ne le kršitve nadzora dostopa, temveč tudi dejansko prisotnost zaposlenih v stavbi ali objektu. Z drugimi besedami, Vision vam bo pomagal, da boste pošteno upoštevali, kdo je prišel v službo in ob kateri uri odšel ter kdo je sploh izpustil delo, tudi če so ga sodelavci pokrivali pred nadrejenimi.

2.3. Video analitika: sledenje ljudem in varnost

S sledenjem ljudem z uporabo Vision lahko natančno ocenite dejanski promet nakupovalnih površin, železniških postaj, prehodov, ulic in mnogih drugih javnih mest. Naše sledenje je lahko tudi v veliko pomoč pri nadzoru dostopa na primer do skladišča ali drugih pomembnih pisarniških prostorov. In seveda sledenje ljudem in obrazom pomaga pri reševanju varnostnih težav. Ste nekoga ujeli pri kraji v vaši trgovini? Dodajte njegov PersonID, ki ga je vrnil Vision, na črni seznam vaše programske opreme za video analitiko in naslednjič bo sistem takoj opozoril varnostno službo, če se ta vrsta znova pojavi.

2.4. V trgovini

Maloprodaja in različna storitvena podjetja se zanimajo za prepoznavanje čakalnih vrst. S pomočjo Visiona lahko prepoznate, da ne gre za naključno množico ljudi, ampak za čakalno vrsto, in določite njeno dolžino. In potem sistem obvesti odgovorne o čakalni vrsti, da lahko ugotovijo situacijo: ali je naval obiskovalcev in je treba poklicati dodatne delavce, ali pa nekdo olaja pri svojih delovnih obveznostih.

Druga zanimiva naloga je ločevanje zaposlenih v podjetju od obiskovalcev. Običajno je sistem usposobljen za ločevanje predmetov, ki nosijo določena oblačila (koda oblačenja) ali z neko značilnostjo (šal z blagovno znamko, značka na prsih itd.). To pripomore k natančnejšemu ocenjevanju obiska (da zaposleni s samo prisotnostjo ne »napihujejo« statistike ljudi v dvorani).

S pomočjo prepoznave obraza lahko ocenite tudi svojo publiko: kakšna je zvestoba obiskovalcev, torej koliko ljudi se vrača v vašo ustanovo in kako pogosto. Izračunajte, koliko edinstvenih obiskovalcev pride k vam na mesec. Za optimizacijo stroškov privabljanja in zadrževanja lahko ugotovite tudi spremembo prometa glede na dan v tednu in celo uro v dnevu.

Franšizorji in verižna podjetja lahko na podlagi fotografij naročijo oceno kakovosti blagovne znamke različnih maloprodajnih mest: prisotnost logotipov, znakov, plakatov, transparentov itd.

2.5. S prevozom

Drug primer zagotavljanja varnosti z uporabo video analitike je prepoznavanje zapuščenih predmetov v halah letališč ali železniških postaj. Vid je mogoče usposobiti za prepoznavanje predmetov na stotine razredov: kosi pohištva, torbe, kovčki, dežniki, različne vrste oblačil, steklenice itd. Če vaš video analitični sistem zazna objekt brez lastnika in ga prepozna s pomočjo Vision, pošlje signal varnostni službi. Podobna naloga je povezana s samodejnim zaznavanjem nenavadnih situacij na javnih mestih: nekomu je slabo, ali nekdo kadi na napačnem mestu, ali oseba pade na tirnice in tako naprej - vse te vzorce lahko prepoznajo sistemi za video analitiko prek API-ja Vision.

2.6. Pretok dokumentov

Druga zanimiva prihodnja aplikacija Visiona, ki jo trenutno razvijamo, je prepoznavanje dokumentov in njihovo samodejno razčlenjevanje v baze podatkov. Namesto ročnega vnašanja (ali še huje, vnašanja) neskončnih serij, številk, datumov izdaje, številk računov, bančnih podatkov, datumov in krajev rojstva ter mnogih drugih formaliziranih podatkov, lahko skenirate dokumente in jih samodejno pošljete po varnem kanalu prek API v oblak, kjer bo sistem te dokumente sproti prepoznal, razčlenil in vrnil odgovor s podatki v zahtevanem formatu za avtomatski vnos v bazo. Danes Vision že ve, kako razvrstiti dokumente (vključno s PDF) - razlikuje med potnimi listi, SNILS, TIN, rojstnimi listi, poročnimi listi in drugimi.

Seveda nevronska mreža ni sposobna takoj obvladati vseh teh situacij. V vsakem primeru se za določeno stranko zgradi nov model, upoštevajo se številni dejavniki, nianse in zahteve, izberejo se nabori podatkov ter izvedejo ponovitve usposabljanja, testiranja in konfiguracije.

3. Shema delovanja API-ja

Visionova "vhodna vrata" za uporabnike so REST API. Kot vhod lahko sprejema fotografije, video datoteke in oddaje iz omrežnih kamer (tokovi RTSP).

Če želite uporabljati Vision, potrebujete Registracija v storitvi Mail.ru Cloud Solutions in prejmete žetone za dostop (client_id + client_secret). Avtentikacija uporabnika se izvaja s protokolom OAuth. Izvorni podatki v telesih zahtev POST se pošljejo v API. V odgovor odjemalec od API-ja prejme rezultat prepoznave v formatu JSON, odgovor pa je strukturiran: vsebuje informacije o najdenih predmetih in njihovih koordinatah.

Z brado, temnimi očali in iz profila: težke situacije za računalniški vid

Vzorec odgovora

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

Odgovor vsebuje zanimiv parameter awesomeness - to je pogojna "hladnost" obraza na fotografiji, s pomočjo katere izberemo najboljši posnetek obraza iz zaporedja. Nevronsko mrežo smo usposobili za napovedovanje verjetnosti, da bo fotografija všečkana na družbenih omrežjih. Boljša kot je kakovost fotografije in bolj nasmejan obraz, večja je osupljivost.

API Vision uporablja koncept, imenovan prostor. To je orodje za ustvarjanje različnih nizov obrazov. Primeri prostorov so črni in beli seznami, seznami obiskovalcev, zaposlenih, strank itd. Za vsak žeton v Visionu lahko ustvarite do 10 prostorov, vsak prostor ima lahko do 50 tisoč PersonID-jev, torej do 500 tisoč na žeton. Poleg tega število žetonov na račun ni omejeno.

Danes API podpira naslednje metode zaznavanja in prepoznavanja:

  • Recognize/Set - zaznavanje in prepoznavanje obrazov. Samodejno dodeli PersonID vsaki edinstveni osebi, vrne PersonID in koordinate najdenih oseb.
  • Izbriši - brisanje določenega PersonID-ja iz podatkovne baze oseb.
  • Odreži – izbriše celoten prostor iz ID-ja osebe, uporabno, če je bil uporabljen kot testni prostor in morate ponastaviti zbirko podatkov za proizvodnjo.
  • Zaznaj - zaznavanje predmetov, prizorov, registrskih tablic, mejnikov, čakalnih vrst itd. Vrne razred najdenih predmetov in njihove koordinate
  • Zaznavanje dokumentov - zazna posebne vrste dokumentov Ruske federacije (razlikuje potni list, SNILS, davčno številko itd.).

Kmalu bomo tudi zaključili z delom na metodah za OCR, določanje spola, starosti in čustev ter reševanje problemov merchandisinga, torej avtomatskega nadzora izlaganja blaga v trgovinah. Tukaj lahko najdete celotno dokumentacijo API-ja: https://mcs.mail.ru/help/vision-api

4. Zaključek

Zdaj lahko prek javnega API-ja dostopate do prepoznavanja obrazov na fotografijah in videoposnetkih, podprta je identifikacija različnih predmetov, registrskih tablic, znamenitosti, dokumentov in celotnih prizorov. Scenariji uporabe - morje. Pridite, preizkusite našo storitev, postavite ji najzahtevnejše naloge. Prvih 5000 transakcij je brezplačnih. Morda bo to "manjkajoča sestavina" za vaše projekte.

Dostop do API-ja je mogoče pridobiti takoj po registraciji in povezavi Vizija. Vsi uporabniki Habre prejmejo promocijsko kodo za dodatne transakcije. Prosim, napišite mi e-poštni naslov, ki ste ga uporabili za registracijo računa!

Vir: www.habr.com

Dodaj komentar