Sa bradom, u tamnim naočarima i u profilu: teške situacije za kompjuterski vid

Sa bradom, u tamnim naočarima i u profilu: teške situacije za kompjuterski vid

Tehnologije i modeli za naš budući sistem kompjuterskog vida kreirani su i unapređivani postepeno iu različitim projektima naše kompanije - Mail, Cloud, Search. Sazrele su kao dobar sir ili konjak. Jednog dana smo shvatili da naše neuronske mreže pokazuju odlične rezultate u prepoznavanju i odlučili smo ih spojiti u jedan b2b proizvod - Vision - koji sada i sami koristimo i nudimo vam da ga koristite.

Danas naša tehnologija kompjuterskog vida na platformi Mail.Ru Cloud Solutions uspješno radi i rješava vrlo složene praktične probleme. Bazira se na brojnim neuronskim mrežama koje su obučene na našim skupovima podataka i specijalizirane za rješavanje primijenjenih problema. Sve usluge rade na našim serverskim objektima. Možete integrirati javni Vision API u svoje aplikacije, kroz koje su dostupne sve mogućnosti usluge. API je brz - zahvaljujući serverskim GPU-ovima, prosječno vrijeme odgovora unutar naše mreže je 100 ms.

Idi do mačke, tu je detaljna priča i mnogo primjera Visionovog rada.

Kao primjer usluge u kojoj i sami koristimo spomenute tehnologije prepoznavanja lica možemo navesti Događanja. Jedna od njegovih komponenti su Vision foto štandovi, koje postavljamo na raznim konferencijama. Ako priđete takvom štandu za fotografije, snimite fotografiju ugrađenom kamerom i unesete svoju e-poštu, sistem će u nizu fotografija odmah pronaći one na kojima su vas snimili zaposleni fotografi konferencije, a po želji i poslat će vam pronađene fotografije e-poštom. I ne govorimo o postavljenim portretnim snimcima – Vision vas prepoznaje čak i u pozadini u gomili posjetitelja. Naravno, ne prepoznaju se sami štandovi za fotografije, to su samo tableti u prekrasnim štandovima koji jednostavno fotografiraju goste svojim ugrađenim kamerama i prenose informacije na servere, gdje se dešava sva magija prepoznavanja. I vidjeli smo više puta 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 za prepoznavanje lica

1.1. Neuralna 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 radi u ArcFaceu. Međutim, veličina vektorskih reprezentacija je 128, a ne 512. Naš set za obuku sadrži oko 10 miliona fotografija 273 osobe.

Model radi vrlo brzo zahvaljujući pažljivo odabranoj arhitekturi konfiguracije servera i GPU računarstvu. Potrebno je od 100 ms da primimo odgovor od API-ja na našim internim mrežama - to uključuje detekciju lica (prepoznavanje lica na fotografiji), prepoznavanje i vraćanje PersonID-a u API odgovoru. Uz velike količine dolaznih podataka - fotografija i video zapisa - bit će potrebno mnogo više vremena da se podaci prenesu na uslugu i da se dobije odgovor.

1.2. Procjena efektivnosti modela

Ali određivanje efikasnosti neuronskih mreža vrlo je dvosmislen zadatak. Kvalitet njihovog rada zavisi od toga na kojim skupovima podataka su modeli obučeni i da li su optimizovani za rad sa određenim podacima.

Počeli smo procjenjivati ​​tačnost našeg modela popularnim LFW testom za verifikaciju, ali on je premali i jednostavan. Nakon postizanja 99,8% tačnosti, više nije od koristi. Postoji dobra konkurencija za ocjenjivanje modela prepoznavanja - Megaface, na kojem smo postepeno dostigli 82% rang 1. Megaface test se sastoji od milion fotografija - distraktora - i model bi trebao biti u stanju da dobro razlikuje nekoliko hiljada fotografija poznatih ličnosti iz Facescrub-a skup podataka iz distraktora. Međutim, nakon što smo očistili Megaface test od grešaka, otkrili smo da sa očišćenom verzijom postižemo tačnost od 98% ranga 1 (fotografije poznatih ličnosti su generalno prilično specifične). Stoga su napravili poseban test za identifikaciju, sličan Megafaceu, ali sa fotografijama “običnih” ljudi. Zatim smo poboljšali tačnost prepoznavanja u našim skupovima podataka i otišli daleko naprijed. Osim toga, koristimo test kvalitete grupiranja koji se sastoji od nekoliko hiljada fotografija; simulira označavanje lica u korisnikovom oblaku. U ovom slučaju klasteri su grupe sličnih pojedinaca, po jedna grupa za svaku prepoznatljivu osobu. Provjerili smo kvalitet rada na realnim grupama (tačno).

Naravno, greške u prepoznavanju se javljaju kod bilo kojeg modela. Ali takve situacije se često rješavaju finim podešavanjem pragova za specifične uvjete (za sve konferencije koristimo iste pragove, ali, na primjer, za sisteme kontrole pristupa moramo jako povećati pragove kako bi bilo manje lažnih pozitivnih rezultata). Ogromna većina posjetitelja konferencije bila je ispravno prepoznata po našim Vision foto kabinama. Ponekad bi neko pogledao izrezani pregled i rekao: "Vaš sistem je napravio grešku, nisam to bio ja." Onda smo otvorili fotografiju u celini i ispostavilo se da je na fotografiji zaista taj posetilac, samo što ga nismo mi slikali, već neko drugi, osoba je slučajno bila u pozadini u zoni zamućenja. Štoviše, neuronska mreža često ispravno prepoznaje čak i kada dio lica nije vidljiv, ili osoba stoji u profilu, ili čak napola okrenuta. Sistem može prepoznati osobu čak i ako je lice u području optičkog izobličenja, recimo, kada snimate širokokutnim objektivom.

1.3. Primjeri testiranja u teškim situacijama

Ispod su primjeri kako funkcionira naša neuronska mreža. Fotografije se šalju na ulaz, koji ona mora označiti pomoću PersonID - jedinstvenog identifikatora osobe. Ako dvije ili više slika imaju isti ID, onda, prema modelima, ove fotografije prikazuju istu osobu.

Odmah napominjemo da prilikom testiranja imamo pristup raznim parametrima i pragovima modela koje možemo konfigurirati za postizanje određenog rezultata. Javni API je optimiziran za maksimalnu preciznost u uobičajenim slučajevima.

Počnimo od najjednostavnije stvari, s prepoznavanjem lica sprijeda.

Sa bradom, u tamnim naočarima i u profilu: teške situacije za kompjuterski vid

Pa, to je bilo prelako. Zakomplikujmo zadatak, dodajmo bradu i pregršt godina.

Sa bradom, u tamnim naočarima i u profilu: teške situacije za kompjuterski vid

Neki će reći da ni to nije bilo teško, jer je u oba slučaja cijelo lice vidljivo, a algoritmu je dostupno mnogo informacija o licu. Ok, pretvorimo Toma Hardyja u profil. Ovaj problem je mnogo složeniji i uložili smo mnogo truda da ga uspješno riješimo uz nisku stopu grešaka: odabrali smo skup za obuku, promislili arhitekturu neuronske mreže, usavršili funkcije gubitka i poboljšali prethodnu obradu fotografija.

Sa bradom, u tamnim naočarima i u profilu: teške situacije za kompjuterski vid

Stavimo mu kapu za glavu:

Sa bradom, u tamnim naočarima i u profilu: teške situacije za kompjuterski vid

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

Sa bradom, u tamnim naočarima i u profilu: teške situacije za kompjuterski vid

U redu, hajde da pokušamo da ubacimo fotografije iz različitih uzrasta, a ovaj put ćemo eksperimentisati sa drugim glumcem. Uzmimo mnogo složeniji primjer, gdje su promjene vezane za dob posebno izražene. Situacija nije nategnuta, često se dešava kada trebate uporediti fotografiju u pasošu sa licem nosioca. Uostalom, prva fotografija se dodaje u pasoš kada vlasnik ima 20 godina, a do 45. godine osoba se može jako promijeniti:

Sa bradom, u tamnim naočarima i u profilu: teške situacije za kompjuterski vid

Mislite li da se glavni specijalista za nemoguće misije nije mnogo promijenio s godinama? Mislim da bi čak i nekoliko ljudi kombinovalo gornju i donju fotografiju, dečko se toliko promenio tokom godina.

Sa bradom, u tamnim naočarima i u profilu: teške situacije za kompjuterski vid

Neuronske mreže mnogo češće nailaze na promjene u izgledu. Na primjer, ponekad žene mogu uvelike promijeniti svoj imidž uz pomoć kozmetike:

Sa bradom, u tamnim naočarima i u profilu: teške situacije za kompjuterski vid

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

Sa bradom, u tamnim naočarima i u profilu: teške situacije za kompjuterski vid

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

Sa bradom, u tamnim naočarima i u profilu: teške situacije za kompjuterski vid

Posebnost reportažnih fotografija i slika sa nadzornih kamera je da su ljudi često zamagljeni jer su bili van fokusa ili su se u tom trenutku kretali:

Sa bradom, u tamnim naočarima i u profilu: teške situacije za kompjuterski vid

Takođe, intenzitet osvetljenja može značajno da varira od slike do slike. Ovo također često postaje kamen spoticanja; mnogi algoritmi imaju velike poteškoće da pravilno obrađuju slike koje su previše tamne i previše svijetle, a da ne spominjemo njihovo precizno podudaranje. Dozvolite mi da vas podsjetim da da biste postigli ovaj rezultat morate na određeni način konfigurirati pragove; ova funkcija još nije javno dostupna. Koristimo istu neuronsku mrežu za sve klijente; ona ima pragove koji su prikladni za većinu praktičnih zadataka.

Sa bradom, u tamnim naočarima i u profilu: teške situacije za kompjuterski vid

Nedavno smo predstavili novu verziju modela koja prepoznaje azijska lica sa velikom preciznošću. Ovo je nekada bio veliki problem, koji se čak nazivao rasizmom „mašinskog učenja“ (ili „neuralne mreže“). Evropske i američke neuronske mreže su dobro prepoznale lica kavkaza, ali s mongoloidnim i negroidnim licima situacija je bila mnogo gora. Vjerovatno je u Kini situacija bila upravo suprotna. Sve se radi o 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. Vizija nema problema sa ljudima različitih rasa.

Sa bradom, u tamnim naočarima i u profilu: teške situacije za kompjuterski vid

Prepoznavanje lica samo je jedna od mnogih primjena naše tehnologije; vid se može osposobiti da prepozna bilo šta. Na primjer, registarske tablice, uključujući u uvjetima teškim za algoritme: pod oštrim uglovima, prljave i teško čitljive tablice.

Sa bradom, u tamnim naočarima i u profilu: teške situacije za kompjuterski vid

2. Praktični slučajevi upotrebe

2.1. Kontrola fizičkog pristupa: kada dvije osobe koriste istu propusnicu

Uz pomoć Vision-a možete implementirati sisteme za evidentiranje dolaska i odlaska zaposlenih. Tradicionalni sistem baziran na elektronskim propusnicama ima očigledne nedostatke, na primjer, možete proći dvije osobe koristeći jednu značku. Ako se sistem kontrole pristupa (ACS) dopuni Vision-om, on će pošteno evidentirati ko je došao/otišao i kada.

2.2. Praćenje vremena

Ovaj slučaj upotrebe Vision usko je povezan s prethodnim. Ako pristupni sistem dopunite našom uslugom prepoznavanja lica, on će moći ne samo da otkrije kršenja kontrole pristupa, već i da registruje stvarno prisustvo zaposlenih u zgradi ili objektu. Drugim riječima, Vision će vam pomoći da pošteno uzmete u obzir ko je u koje vrijeme došao na posao i otišao, a ko je u potpunosti preskočio posao, čak i ako su ga kolege pokrivale pred nadređenima.

2.3. Video analitika: praćenje ljudi i sigurnost

Praćenjem ljudi koristeći Vision, možete precizno procijeniti stvarni promet trgovačkih zona, željezničkih stanica, 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 kancelarijskim 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 radnje? Dodajte njegov PersonID, koji je vratio Vision, na crnu listu vašeg softvera za video analitiku i sljedeći put će sistem odmah upozoriti sigurnost ako se ovaj tip ponovo pojavi.

2.4. U trgovini

Maloprodaja i razne uslužne djelatnosti zainteresirane su za prepoznavanje redova. Uz pomoć Vision-a možete prepoznati da se ne radi o nasumičnoj gomili ljudi, već o redu i odrediti njegovu dužinu. A onda sistem obavještava nadležne o čekanju u redu kako bi oni shvatili situaciju: ili je navala posjetitelja i treba pozvati dodatne radnike, ili neko omalovažava svoje radne obaveze.

Još jedan zanimljiv zadatak je odvajanje zaposlenih u sali od posetilaca. Tipično, sistem je obučen da odvoji objekte koji nose određenu odjeću (odjevni kod) ili sa nekom posebnom karakteristikom (brendirani šal, značka na grudima i tako dalje). To pomaže da se preciznije procijeni prisustvo (kako zaposleni ne „naduvaju“ statistiku ljudi u sali svojim prisustvom).

Koristeći prepoznavanje lica, možete procijeniti i svoju publiku: kolika je lojalnost posjetitelja, odnosno koliko se ljudi vraća u vaš lokal i s kojom frekvencijom. Izračunajte koliko jedinstvenih posjetilaca vam dođe mjesečno. Da biste optimizirali troškove privlačenja i zadržavanja, možete saznati i promjenu prometa ovisno o danu u sedmici, pa čak i dobu dana.

Franšizeri i lanci kompanija mogu naručiti procjenu na osnovu fotografija kvaliteta brendiranja raznih maloprodajnih objekata: prisutnost logotipa, znakova, postera, banera i tako dalje.

2.5. Transportom

Još jedan primjer osiguranja sigurnosti korištenjem video analitike je identifikacija napuštenih stvari u hodnicima aerodroma ili željezničkih stanica. Vid se može osposobiti da prepozna predmete stotina klasa: komade namještaja, torbe, kofere, kišobrane, razne vrste odjeće, boce i tako dalje. Ako vaš sistem video analitike otkrije objekat bez vlasnika i prepozna ga pomoću Vision-a, šalje signal službi sigurnosti. Sličan zadatak je povezan s automatskim otkrivanjem neuobičajenih situacija na javnim mjestima: neko se osjeća loše, ili neko puši na pogrešnom mjestu, ili osoba padne na šine i tako dalje - sve ove obrasce mogu prepoznati sistemi video analitike. preko Vision API-ja.

2.6. Tok dokumenata

Još jedna zanimljiva buduća primjena Vision-a koju trenutno razvijamo je prepoznavanje dokumenata i njihovo automatsko raščlanjivanje u baze podataka. Umjesto ručnog unosa (ili još gore, unosa) beskonačnih serija, brojeva, datuma izdavanja, 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 do oblaka, gdje će sistem prepoznati ove dokumente u hodu, analizirati ih i vratiti odgovor sa podacima u potrebnom formatu za automatski ulazak u bazu podataka. Danas Vision već zna kako klasificirati dokumente (uključujući PDF) - razlikuje pasoše, SNILS, TIN, izvode iz matične knjige rođenih, vjenčane listove i druge.

Naravno, neuronska mreža nije u stanju da izađe na kraj sa svim ovim situacijama. U svakom slučaju se izrađuje novi model za određenog kupca, uzimaju se u obzir mnogi faktori, nijanse i zahtjevi, odabiru se skupovi podataka i provode se iteracije obuke, testiranja i konfiguracije.

3. Šema rada API-ja

Visionova „ulazna kapija“ za korisnike je REST API. Može primati fotografije, video datoteke i emisije sa mrežnih kamera (RTSP streamovi) kao ulaz.

Da biste koristili Vision, trebate prijaviti se u usluzi Mail.ru Cloud Solutions i primite pristupne tokene (client_id + client_secret). Provjera autentičnosti korisnika se izvodi korištenjem OAuth protokola. Izvorni podaci u tijelima POST zahtjeva šalju se API-ju. I kao odgovor, klijent prima od API-ja rezultat prepoznavanja u JSON formatu, a odgovor je strukturiran: sadrži informacije o pronađenim objektima i njihovim koordinatama.

Sa bradom, u tamnim naočarima i u profilu: teške situacije za kompjuterski 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 super - ovo je uvjetna "hladnoća" lica na fotografiji, uz pomoć koje odabiremo najbolji snimak lica iz niza. Obučili smo neuronsku mrežu da predvidi vjerovatnoću da će se fotografija lajkovati na društvenim mrežama. Što je fotografija bolja i što je lice nasmijanije, to je veća fantastičnost.

API Vision koristi koncept koji se zove prostor. Ovo je alat za kreiranje različitih skupova lica. Primeri prostora su crne i bele liste, liste posetilaca, zaposlenih, klijenata itd. Za svaki token u Visionu možete kreirati do 10 prostora, svaki prostor može imati do 50 hiljada PersonID-a, odnosno do 500 hiljada po tokenu. Štaviš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.
  • Izbriši - brisanje određene PersonID iz baze podataka osoba.
  • Skraćivanje - briše cijeli prostor iz PersonID-a, korisno ako je korišten kao probni 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
  • Otkrivanje dokumenata - otkriva određene vrste dokumenata Ruske Federacije (razlikuje pasoš, SNILS, poreski identifikacioni broj itd.).

Uskoro ćemo završiti i rad na metodama za OCR, određivanje spola, godina i emocija, kao i rješavanje problema merchandisinga, odnosno automatske kontrole izlaganja 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 video zapisima; podržana je identifikacija raznih objekata, registarskih tablica, orijentira, 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 dobijaju promotivni kod za dodatne transakcije. Molimo vas da mi napišete email adresu koju ste koristili za registraciju vašeg naloga!

izvor: www.habr.com

Dodajte komentar