S bradom, tamnim naočalama i iz profila: teške situacije za računalni vid

S bradom, tamnim naočalama i iz profila: teške situacije za računalni vid

Tehnologije i modeli za naš budući sustav računalnog vida stvarani su i unapređivani postupno iu različitim projektima naše tvrtke - u Mailu, Cloudu, Searchu. Sazrijevale su kao dobar sir ili konjak. Jednog dana uvidjeli smo da naše neuronske mreže pokazuju odlične rezultate u prepoznavanju te smo ih odlučili objediniti u jedan b2b proizvod – Vision – koji sada sami koristimo, a vama nudimo na korištenje.

Danas naša tehnologija računalnog vida na platformi Mail.Ru Cloud Solutions uspješno radi i rješava vrlo složene praktične probleme. Temelji se na nizu neuronskih mreža koje su obučene na našim skupovima podataka i specijalizirane su za rješavanje primijenjenih problema. Sve usluge rade na našim poslužiteljima. U svoje aplikacije možete integrirati javni Vision API preko kojeg su dostupne sve mogućnosti usluge. API je brz - zahvaljujući GPU-u poslužitelja, prosječno vrijeme odgovora unutar naše mreže je 100 ms.

Idite do mačke, tamo je detaljna priča i mnogo primjera rada Visiona.

Kao primjer usluge u kojoj i sami koristimo navedene tehnologije prepoznavanja lica možemo navesti Događaji. Jedna od njegovih komponenti su Vision foto stalci koje postavljamo na raznim konferencijama. Priđete li takvom foto stalku, fotografirate se ugrađenom kamerom i unesete svoju e-mail adresu, sustav će među nizom fotografija odmah pronaći one na kojima su vas uhvatili stručni fotografi konferencije, a po želji i poslat će vam pronađene fotografije e-poštom. I ne govorimo o insceniranim portretnim snimkama - Vision vas prepoznaje čak i u samoj pozadini u gomili posjetitelja. Naravno, ne prepoznaju se sami stalci za fotografije, to su samo tableti u prekrasnim stalcima koji svojim ugrađenim kamerama jednostavno fotografiraju goste i prenose informacije na servere, gdje se odvija sva magija prepoznavanja. Više puta smo vidjeli koliko je iznenađujuća učinkovitost tehnologije čak i među stručnjacima za prepoznavanje slika. U nastavku ćemo govoriti o nekim primjerima.

1. Naš model prepoznavanja lica

1.1. Neuronska mreža i brzina obrade

Za prepoznavanje koristimo modifikaciju modela neuronske mreže ResNet 101. Average Pooling na kraju je zamijenjen potpuno povezanim slojem, slično kao što se to radi u ArcFaceu. Međutim, veličina vektorskih prikaza je 128, a ne 512. Naš skup za obuku sadrži oko 10 milijuna fotografija 273 593 osobe.

Model radi vrlo brzo zahvaljujući pažljivo odabranoj konfiguracijskoj arhitekturi poslužitelja i GPU računalstvu. Za primanje odgovora od API-ja na našim internim mrežama potrebno je od 100 ms - to uključuje detekciju lica (prepoznavanje lica na fotografiji), prepoznavanje i vraćanje PersonID-a u odgovoru API-ja. S velikim količinama dolaznih podataka - fotografija i videa - bit će potrebno puno više vremena za prijenos podataka u uslugu i za primanje odgovora.

1.2. Procjena učinkovitosti modela

Ali određivanje učinkovitosti neuronskih mreža vrlo je dvosmislen zadatak. Kvaliteta njihova rada ovisi o tome na kojim skupovima podataka su modeli trenirani i jesu li optimizirani za rad s određenim podacima.

Počeli smo ocjenjivati ​​točnost našeg modela popularnim LFW verifikacijskim testom, ali on je premalen i jednostavan. Nakon postizanja točnosti od 99,8%, više nije koristan. Postoji dobra konkurencija za ocjenjivanje modela prepoznavanja - Megaface, na kojoj smo postupno došli do 82% ranga 1. Megaface test sastoji se od milijun fotografija - distraktora - a model bi trebao moći dobro razlikovati nekoliko tisuća fotografija slavnih iz Facescruba. skup podataka iz distraktora. Međutim, nakon što smo očistili Megaface test od pogrešaka, otkrili smo da s očišćenom verzijom postižemo točnost od 98% ranga 1 (fotografije slavnih općenito su prilično specifične). Stoga su napravili zaseban identifikacijski test, sličan Megafaceu, ali s fotografijama “običnih” ljudi. Zatim smo poboljšali točnost prepoznavanja na našim skupovima podataka i otišli daleko naprijed. Osim toga, koristimo test kvalitete klasteriranja koji se sastoji od nekoliko tisuća fotografija; simulira označavanje lica u korisnikovom oblaku. U ovom slučaju klasteri su skupine sličnih jedinki, jedna skupina za svaku prepoznatljivu osobu. Provjerili smo kvalitetu rada na stvarnim grupama (točno).

Naravno, greške u prepoznavanju se javljaju kod svakog modela. Ali takve se situacije često rješavaju finim podešavanjem pragova za specifične uvjete (za sve konferencije koristimo iste pragove, ali, na primjer, za sustave kontrole pristupa moramo znatno povećati pragove kako bi bilo manje lažno pozitivnih). Veliku većinu posjetitelja konferencije naše su Vision foto kabine ispravno prepoznale. Ponekad bi netko pogledao obrezani pregled i rekao: "Vaš je sustav pogriješio, nisam ja." Zatim smo otvorili fotografiju u cijelosti, i pokazalo se da je na fotografiji stvarno bio taj posjetitelj, samo što mi nismo fotografirali njega, nego nekog drugog, osoba se samo slučajno našla u pozadini u zoni zamućenja. Štoviše, neuronska mreža često ispravno prepoznaje i kada se dio lica ne vidi, ili osoba stoji u profilu, pa čak i napola okrenuta. Sustav može prepoznati osobu čak i ako je lice u području optičke distorzije, recimo, prilikom snimanja širokokutnim objektivom.

1.3. Primjeri testiranja u teškim situacijama

Ispod su primjeri kako funkcionira naša neuronska mreža. Na ulaz se šalju fotografije koje ona mora označiti koristeći PersonID - jedinstveni identifikator osobe. Ako dvije ili više slika imaju isti ID, tada, ovisno o modelu, te fotografije prikazuju istu osobu.

Odmah napomenimo da su nam prilikom testiranja dostupni različiti parametri i pragovi modela koje možemo konfigurirati za postizanje određenog rezultata. Javni API optimiziran je za maksimalnu točnost u uobičajenim slučajevima.

Počnimo s najjednostavnijom stvari, s prednjim prepoznavanjem lica.

S bradom, tamnim naočalama i iz profila: teške situacije za računalni vid

Pa, to je bilo prelako. Zakomplicirajmo zadatak, dodajmo bradu i šaku godina.

S bradom, tamnim naočalama i iz profila: teške situacije za računalni vid

Neki će reći da ni to nije bilo preteško jer se u oba slučaja vidi cijelo lice, a algoritmu je dostupno mnogo informacija o licu. U redu, pretvorimo Toma Hardyja u profil. Ovaj je problem mnogo složeniji i uložili smo mnogo truda da ga uspješno riješimo uz održavanje niske stope pogreške: odabrali smo skup za obuku, promislili o arhitekturi neuronske mreže, izbrusili funkcije gubitka i poboljšali pretprocesiranje fotografija.

S bradom, tamnim naočalama i iz profila: teške situacije za računalni vid

Stavimo mu pokrivalo za glavu:

S bradom, tamnim naočalama i iz profila: teške situacije za računalni vid

Inače, ovo je primjer posebno teške situacije, jer je lice jako zaklonjeno, a na donjoj fotografiji postoji i duboka sjena koja skriva oči. U stvarnom životu ljudi vrlo često mijenjaju svoj izgled uz pomoć tamnih naočala. Učinimo isto s Tomom.

S bradom, tamnim naočalama i iz profila: teške situacije za računalni vid

U redu, pokušajmo ubaciti fotografije iz različitih dobi, a ovaj put ćemo eksperimentirati s drugim glumcem. Uzmimo puno složeniji primjer, gdje su promjene vezane uz dob posebno izražene. Situacija nije nevjerojatna, događa se prilično često kada trebate usporediti fotografiju u putovnici s licem nositelja. Uostalom, prva fotografija dodaje se u putovnicu kada vlasnik ima 20 godina, a do 45. godine osoba se može jako promijeniti:

S bradom, tamnim naočalama i iz profila: teške situacije za računalni vid

Mislite li da se glavni specijalist za nemoguće misije nije puno promijenio s godinama? Mislim da bi i nekoliko ljudi spojilo gornju i donju fotku, toliko se dečko promijenio tijekom godina.

S bradom, tamnim naočalama i iz profila: teške situacije za računalni vid

Neuronske mreže mnogo se češće susreću s promjenama izgleda. Na primjer, ponekad žene mogu uvelike promijeniti svoj imidž uz pomoć kozmetike:

S bradom, tamnim naočalama i iz profila: teške situacije za računalni vid

Sada još više zakomplicirajmo zadatak: pretpostavimo da su različiti dijelovi lica prekriveni različitim fotografijama. U takvim slučajevima algoritam ne može usporediti cijele uzorke. Međutim, Vision se dobro nosi s ovakvim situacijama.

S bradom, tamnim naočalama i iz profila: teške situacije za računalni vid

Usput, na fotografiji može biti puno lica, na primjer, na opću fotografiju dvorane može stati više od 100 ljudi. Ovo je teška situacija za neuronske mreže, jer mnoga lica mogu biti različito osvijetljena, neka izvan fokusa. Međutim, ako je fotografija snimljena u dovoljnoj rezoluciji i kvaliteti (najmanje 75 piksela po kvadratu koji pokriva lice), Vision će je moći otkriti i prepoznati.

S bradom, tamnim naočalama i iz profila: teške situacije za računalni vid

Posebnost reportažnih fotografija i slika s nadzornih kamera je da su ljudi često zamućeni jer su bili izvan fokusa ili su se u tom trenutku kretali:

S bradom, tamnim naočalama i iz profila: teške situacije za računalni vid

Također, intenzitet osvjetljenja može jako varirati od slike do slike. To također često postaje kamen spoticanja; mnogi algoritmi imaju velike poteškoće s ispravnom obradom slika koje su pretamne i presvijetle, a da ne spominjemo njihovo točno usklađivanje. Dopustite mi da vas podsjetim da za postizanje ovog rezultata morate konfigurirati pragove na određeni način; ova značajka još nije javno dostupna. Koristimo istu neuronsku mrežu za sve klijente; ona ima pragove koji su prikladni za većinu praktičnih zadataka.

S bradom, tamnim naočalama i iz profila: teške situacije za računalni vid

Nedavno smo izbacili novu verziju modela koji prepoznaje azijska lica s velikom točnošću. To je nekada bio veliki problem, koji se čak nazivao rasizmom “strojnog učenja” (ili “neuralne mreže”). Europske i američke neuronske mreže dobro su prepoznavale lica bijele rase, ali s mongoloidnim i negroidnim licima situacija je bila puno gora. Vjerojatno je u Kini situacija bila upravo suprotna. Sve je u skupovima podataka o obuci koji odražavaju dominantne tipove ljudi u određenoj zemlji. Međutim, situacija se mijenja, danas ovaj problem nije toliko akutan. Vid nema problema s ljudima različitih rasa.

S bradom, tamnim naočalama i iz profila: teške situacije za računalni vid

Prepoznavanje lica samo je jedna od mnogih primjena naše tehnologije; Vision se može uvježbati da prepozna bilo što. Na primjer, registarske pločice, uključujući i uvjete teške za algoritme: pod oštrim kutovima, prljave i teško čitljive registarske pločice.

S bradom, tamnim naočalama i iz profila: teške situacije za računalni vid

2. Slučajevi praktične upotrebe

2.1. Fizička kontrola pristupa: kada dvije osobe koriste istu propusnicu

Uz pomoć Visiona možete implementirati sustave za evidenciju dolaska i odlaska zaposlenika. Tradicionalni sustav koji se temelji na elektroničkim propusnicama ima očite nedostatke, na primjer, možete se mimoići s dvije osobe koristeći jednu značku. Ako se sustav kontrole pristupa (ACS) dopuni Visionom, on će pošteno bilježiti tko je i kada došao/otišao.

2.2. Praćenje vremena

Ovaj slučaj upotrebe Visiona usko je povezan s prethodnim. Dopunite li pristupni sustav našom uslugom prepoznavanja lica, on će moći ne samo detektirati kršenja kontrole pristupa, već i registrirati stvarnu prisutnost zaposlenika u zgradi ili objektu. Drugim riječima, Vision će vam pomoći da pošteno vodite računa o tome tko je u koje vrijeme dolazio na posao i odlazio, a tko je uopće preskočio posao, čak i ako su ga kolege pokrivale pred nadređenima.

2.3. Video analitika: praćenje ljudi i sigurnost

Prateći ljude koristeći Vision, možete točno procijeniti stvarni promet trgovačkih zona, željezničkih postaja, prolaza, ulica i mnogih drugih javnih mjesta. Naše praćenje također može biti od velike pomoći u kontroli pristupa, na primjer, skladištu ili drugim važnim uredskim prostorijama. I naravno, praćenje ljudi i lica pomaže u rješavanju sigurnosnih problema. Jeste li uhvatili nekoga u krađi iz vaše trgovine? Dodajte njegov PersonID, koji je vratio Vision, na crnu listu vašeg softvera za video analitiku, a sljedeći put sustav će odmah upozoriti sigurnost ako se ova vrsta ponovno pojavi.

2.4. U trgovini

Maloprodaja i razne uslužne tvrtke zainteresirane su za prepoznavanje reda čekanja. Uz pomoć Visiona možete prepoznati da se ne radi o nasumičnoj gomili ljudi, već o redu i odrediti njegovu duljinu. A onda sustav obavještava odgovorne o redu čekanja kako bi oni shvatili situaciju: ili je navala posjetitelja i treba pozvati dodatne radnike, ili netko zabušava na svojim radnim obvezama.

Još jedan zanimljiv zadatak je odvajanje zaposlenika tvrtke u hali od posjetitelja. Tipično, sustav je osposobljen za odvajanje objekata koji nose određenu odjeću (dress code) ili s nekim karakterističnim obilježjem (brandirani šal, značka na prsima i tako dalje). To pomaže točnijoj procjeni posjećenosti (kako djelatnici ne bi samom svojom prisutnošću “napuhavali” statistiku ljudi u dvorani).

Pomoću prepoznavanja lica također možete procijeniti svoju publiku: kolika je lojalnost posjetitelja, odnosno koliko se ljudi vraća u vaš objekt i koliko često. Izračunajte koliko vam jedinstvenih posjetitelja dođe mjesečno. Kako biste optimizirali troškove privlačenja i zadržavanja, također možete saznati promjenu prometa ovisno o danu u tjednu, pa čak i dobu dana.

Davatelji franšize i lanci tvrtki mogu naručiti foto procjenu kvalitete brendiranja raznih prodajnih mjesta: prisutnost logotipa, znakova, plakata, bannera i tako dalje.

2.5. Prijevozom

Još jedan primjer osiguranja sigurnosti pomoću videoanalitike je identificiranje napuštenih predmeta u hodnicima zračnih luka ili željezničkih kolodvora. Vizija se može istrenirati da prepoznaje predmete stotine klasa: komade namještaja, torbe, kofere, kišobrane, razne vrste odjeće, boce i tako dalje. Ako vaš video analitički sustav otkrije objekt bez vlasnika i prepozna ga pomoću Visiona, šalje signal sigurnosnoj službi. Sličan zadatak povezan je s automatskim otkrivanjem neuobičajenih situacija na javnim mjestima: nekome je loše, ili netko puši na krivom mjestu, ili je osoba pala na tračnice, i tako dalje - sve te obrasce mogu prepoznati sustavi videoanalitike putem Vision API-ja.

2.6. Protok dokumenata

Još jedna zanimljiva buduća primjena Visiona koju trenutno razvijamo je prepoznavanje dokumenata i njihovo automatsko parsiranje u baze podataka. Umjesto ručnog unosa (ili još gore, unosa) beskonačnih serija, brojeva, datuma izdanja, brojeva računa, bankovnih podataka, datuma i mjesta rođenja i mnogih drugih formaliziranih podataka, možete skenirati dokumente i automatski ih poslati sigurnim kanalom putem API u oblak, gdje će sustav te dokumente prepoznati u hodu, analizirati ih i vratiti odgovor s podacima u potrebnom formatu za automatski unos u bazu. Danas Vision već zna kako klasificirati dokumente (uključujući PDF) - razlikuje putovnice, SNILS, TIN, rodne listove, vjenčane listove i druge.

Naravno, neuronska mreža nije u stanju riješiti sve te situacije odmah. U svakom slučaju, izrađuje se novi model za određenog kupca, uzimaju se u obzir mnogi čimbenici, nijanse i zahtjevi, odabiru se skupovi podataka i provode se ponavljanja obuke, testiranja i konfiguracije.

3. Shema rada API-ja

Visionova "ulazna vrata" za korisnike je REST API. Može primati fotografije, video datoteke i emisije s mrežnih kamera (RTSP streamovi) kao ulaz.

Da biste koristili Vision, trebate registar u usluzi Mail.ru Cloud Solutions i primaju pristupne tokene (client_id + client_secret). Autentifikacija korisnika provodi se pomoću OAuth protokola. Izvorni podaci u tijelu POST zahtjeva šalju se API-ju. Kao odgovor, klijent od API-ja dobiva rezultat prepoznavanja u JSON formatu, a odgovor je strukturiran: sadrži informacije o pronađenim objektima i njihovim koordinatama.

S bradom, tamnim naočalama i iz profila: teške situacije za računalni vid

Uzorak 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 sadrži zanimljiv parametar awesomeness - ovo je uvjetna "hladnost" lica na fotografiji, uz njegovu pomoć odabiremo najbolju snimku lica iz niza. Istrenirali smo neuronsku mrežu da predvidi vjerojatnost da će fotografija biti lajkana na društvenim mrežama. Što je bolja kvaliteta fotografije i što je lice nasmijanije, to je nevjerojatnost veća.

API Vision koristi koncept koji se zove prostor. Ovo je alat za stvaranje različitih skupova lica. Primjeri prostora su crne i bijele liste, popisi posjetitelja, zaposlenika, klijenata itd. Za svaki token u Visionu možete kreirati do 10 prostora, svaki prostor može imati do 50 tisuća PersonID-ova, odnosno do 500 tisuća po tokenu. Štoviše, broj tokena po računu nije ograničen.

Danas API podržava sljedeće metode otkrivanja i prepoznavanja:

  • Recognize/Set - detekcija i prepoznavanje lica. Automatski dodjeljuje PersonID svakoj jedinstvenoj osobi, vraća PersonID i koordinate pronađenih osoba.
  • Delete - brisanje određenog PersonID-a iz baze podataka osoba.
  • Skrati - briše cijeli prostor od PersonID-a, korisno ako je korišten kao testni prostor i trebate resetirati bazu podataka za proizvodnju.
  • Detect - otkrivanje objekata, scena, registarskih tablica, orijentira, redova itd. Vraća klasu pronađenih objekata i njihove koordinate
  • Otkrij dokumente - otkriva određene vrste dokumenata Ruske Federacije (razlikuje putovnicu, SNILS, porezni identifikacijski broj itd.).

Također, uskoro završavamo rad na metodama za OCR, određivanje spola, dobi i emocija, kao i rješavanje problema merchandisinga, odnosno automatskog upravljanja izlaganjem robe u trgovinama. Kompletnu API dokumentaciju možete pronaći ovdje: https://mcs.mail.ru/help/vision-api

4. zaključak

Sada putem javnog API-ja možete pristupiti prepoznavanju lica na fotografijama i videozapisima; podržana je identifikacija raznih objekata, registarskih tablica, znamenitosti, dokumenata i cijelih scena. Scenariji primjene - more. Dođite, testirajte našu uslugu, postavite joj najzahtjevnije zadatke. Prvih 5000 transakcija je besplatno. Možda će to biti "sastojak koji nedostaje" za vaše projekte.

Možete odmah pristupiti API-ju nakon registracije i povezivanja. Vizija. Svi korisnici Habre dobivaju promotivni kod za dodatne transakcije. Napišite mi adresu e-pošte koju ste koristili za registraciju računa!

Izvor: www.habr.com

Dodajte komentar