Cu barbă, ochelari de culoare închisă și de profil: situații dificile pentru vederea computerizată

Cu barbă, ochelari de culoare închisă și de profil: situații dificile pentru vederea computerizată

Tehnologiile și modelele pentru viitorul nostru sistem de viziune computerizată au fost create și îmbunătățite treptat și în diferite proiecte ale companiei noastre - în Mail, Cloud, Search. S-au maturat ca brânza bună sau coniac. Într-o zi, ne-am dat seama că rețelele noastre neuronale arată rezultate excelente în recunoaștere și am decis să le combinăm într-un singur produs b2b - Vision - pe care acum îl folosim noi înșine și îți oferim să-l folosești.

Astăzi, tehnologia noastră de viziune computerizată pe platforma Mail.Ru Cloud Solutions funcționează cu succes și rezolvă probleme practice foarte complexe. Se bazează pe o serie de rețele neuronale care sunt antrenate pe seturile noastre de date și sunt specializate în rezolvarea problemelor aplicate. Toate serviciile rulează pe facilitățile serverului nostru. Puteți integra API-ul public Vision în aplicațiile dvs., prin care sunt disponibile toate capabilitățile serviciului. API-ul este rapid - datorită GPU-urilor de server, timpul mediu de răspuns în rețeaua noastră este de 100 ms.

Du-te la pisică, există o poveste detaliată și multe exemple din munca lui Vision.

Ca exemplu de serviciu în care noi înșine folosim tehnologiile de recunoaștere facială menționate, putem cita Evenimente . Una dintre componentele sale este standurile foto Vision, pe care le instalăm la diferite conferințe. Dacă vă apropiați de un astfel de stand foto, faceți o fotografie cu camera încorporată și introduceți e-mailul dvs., sistemul le va găsi imediat printre paleta de fotografii pe acelea în care ați fost surprins de membrii fotografi ai conferinței și, dacă doriți, vă va trimite fotografiile găsite prin e-mail. Și nu vorbim despre portrete în scenă — Vision te recunoaște chiar și în fundal într-o mulțime de vizitatori. Desigur, nu standurile foto în sine sunt recunoscute, acestea sunt doar tablete în standuri frumoase care pur și simplu fac fotografii oaspeților cu camerele lor încorporate și transmit informații către servere, unde are loc toată magia recunoașterii. Și am văzut de mai multe ori cât de surprinzătoare este eficiența tehnologiei chiar și în rândul specialiștilor în recunoașterea imaginilor. Mai jos vom vorbi despre câteva exemple.

1. Modelul nostru de recunoaștere a feței

1.1. Rețeaua neuronală și viteza de procesare

Pentru recunoaștere, folosim o modificare a modelului de rețea neuronală ResNet 101. La sfârșit, poolingul mediu este înlocuit cu un strat complet conectat, similar cu modul în care se face în ArcFace. Cu toate acestea, dimensiunea reprezentărilor vectoriale este 128, nu 512. Setul nostru de antrenament conține aproximativ 10 milioane de fotografii cu 273 de persoane.

Modelul rulează foarte rapid datorită unei arhitecturi de configurare a serverului atent selectate și a procesului de calcul GPU. Este nevoie de 100 ms pentru a primi un răspuns de la API în rețelele noastre interne - aceasta include detectarea feței (detectarea unei fețe într-o fotografie), recunoașterea și returnarea PersonID în răspunsul API. Cu volume mari de date primite - fotografii și videoclipuri - va dura mult mai mult timp pentru a transfera datele către serviciu și pentru a primi un răspuns.

1.2. Evaluarea eficacității modelului

Dar determinarea eficienței rețelelor neuronale este o sarcină foarte ambiguă. Calitatea muncii lor depinde de ce seturi de date au fost instruite modelele și dacă acestea au fost optimizate pentru a lucra cu date specifice.

Am început să evaluăm acuratețea modelului nostru cu popularul test de verificare LFW, dar este prea mic și simplu. După ce atinge o precizie de 99,8%, nu mai este utilă. Există o competiție bună pentru evaluarea modelelor de recunoaștere - Megaface, la care treptat am ajuns la 82% rangul 1. Testul Megaface constă dintr-un milion de fotografii - distractoare - iar modelul ar trebui să poată distinge bine câteva mii de fotografii ale vedetelor din Facescrub. set de date de la distractori. Cu toate acestea, după ce am șters testul Megaface de erori, am constatat că, cu versiunea ștersă, obținem o precizie de 98% rangul 1 (fotografiile celebrităților sunt în general destul de specifice). Prin urmare, au creat un test de identificare separat, similar cu Megaface, dar cu fotografii ale oamenilor „obișnuiți”. Apoi am îmbunătățit acuratețea recunoașterii pe seturile noastre de date și am mers mult înainte. În plus, folosim un test de calitate a grupării care constă din câteva mii de fotografii; simulează etichetarea feței în cloud-ul utilizatorului. În acest caz, clusterele sunt grupuri de indivizi similari, câte un grup pentru fiecare persoană recunoscută. Am verificat calitatea muncii pe grupuri reale (adevărat).

Desigur, erorile de recunoaștere apar cu orice model. Dar astfel de situații se rezolvă adesea prin reglarea fină a pragurilor pentru anumite condiții (pentru toate conferințele folosim aceleași praguri, dar, de exemplu, pentru sistemele de control acces trebuie să creștem mult pragurile astfel încât să fie mai puține false pozitive). Marea majoritate a vizitatorilor conferinței au fost recunoscuți corect de cabinele noastre foto Vision. Uneori, cineva se uita la previzualizarea decupată și spunea: „Sistemul tău a făcut o greșeală, nu am fost eu”. Apoi am deschis fotografia în întregime și s-a dovedit că într-adevăr era acest vizitator în fotografie, doar că nu îl fotografiam, ci pe altcineva, persoana sa întâmplat să fie în fundal în zona de estompare. Mai mult, rețeaua neuronală recunoaște adesea corect chiar și atunci când o parte a feței nu este vizibilă, sau persoana stă în profil, sau chiar pe jumătate întoarsă. Sistemul poate recunoaște o persoană chiar dacă fața se află în zona de distorsiune optică, de exemplu, atunci când fotografiați cu un obiectiv cu unghi larg.

1.3. Exemple de testare în situații dificile

Mai jos sunt exemple despre cum funcționează rețeaua noastră neuronală. Fotografiile sunt trimise la intrare, pe care trebuie să o eticheteze folosind PersonID - un identificator unic al unei persoane. Dacă două sau mai multe imagini au același ID, atunci, conform modelelor, aceste fotografii înfățișează aceeași persoană.

Să observăm imediat că atunci când testăm, avem acces la diverși parametri și praguri de model pe care le putem configura pentru a obține un anumit rezultat. API-ul public este optimizat pentru o precizie maximă în cazurile obișnuite.

Să începem cu cel mai simplu lucru, cu recunoașterea feței cu fața în față.

Cu barbă, ochelari de culoare închisă și de profil: situații dificile pentru vederea computerizată

Ei bine, a fost prea ușor. Să complicăm sarcina, să adăugăm o barbă și o mână de ani.

Cu barbă, ochelari de culoare închisă și de profil: situații dificile pentru vederea computerizată

Unii vor spune că nici acest lucru nu a fost prea dificil, pentru că în ambele cazuri întreaga față este vizibilă, iar o mulțime de informații despre față sunt disponibile pentru algoritm. Bine, să-l transformăm pe Tom Hardy în profil. Această problemă este mult mai complexă și am depus mult efort pentru a o rezolva cu succes, menținând o rată de eroare scăzută: am selectat un set de antrenament, gândit prin arhitectura rețelei neuronale, am perfecționat funcțiile de pierdere și am îmbunătățit preprocesarea. de fotografii.

Cu barbă, ochelari de culoare închisă și de profil: situații dificile pentru vederea computerizată

Să-i punem o casă:

Cu barbă, ochelari de culoare închisă și de profil: situații dificile pentru vederea computerizată

Apropo, acesta este un exemplu de situație deosebit de dificilă, deoarece fața este puternic ascunsă, iar în fotografia de jos există și o umbră adâncă care ascunde ochii. În viața reală, oamenii își schimbă foarte des aspectul cu ajutorul ochelarilor de culoare închisă. Să facem același lucru cu Tom.

Cu barbă, ochelari de culoare închisă și de profil: situații dificile pentru vederea computerizată

Bine, să încercăm să aruncăm fotografii de la vârste diferite și de data aceasta vom experimenta cu un alt actor. Să luăm un exemplu mult mai complex, în care schimbările legate de vârstă sunt deosebit de pronunțate. Situația nu este exagerată; apare destul de des atunci când trebuie să comparați fotografia din pașaport cu chipul purtătorului. La urma urmei, prima fotografie este adăugată la un pașaport atunci când proprietarul are 20 de ani, iar până la vârsta de 45 de ani o persoană se poate schimba foarte mult:

Cu barbă, ochelari de culoare închisă și de profil: situații dificile pentru vederea computerizată

Crezi că principalul specialist în misiuni imposibile nu s-a schimbat prea mult odată cu vârsta? Cred că chiar și câțiva oameni ar combina fotografiile de sus și de jos, băiatul s-a schimbat atât de mult de-a lungul anilor.

Cu barbă, ochelari de culoare închisă și de profil: situații dificile pentru vederea computerizată

Rețelele neuronale se confruntă cu schimbări de aspect mult mai des. De exemplu, uneori femeile își pot schimba foarte mult imaginea cu ajutorul produselor cosmetice:

Cu barbă, ochelari de culoare închisă și de profil: situații dificile pentru vederea computerizată

Acum să complicăm și mai mult sarcina: să presupunem că diferite părți ale feței sunt acoperite în fotografii diferite. În astfel de cazuri, algoritmul nu poate compara mostre întregi. Cu toate acestea, Vision se descurcă bine în astfel de situații.

Cu barbă, ochelari de culoare închisă și de profil: situații dificile pentru vederea computerizată

Apropo, pot exista o mulțime de fețe într-o fotografie, de exemplu, mai mult de 100 de persoane pot încăpea într-o fotografie generală a unei săli. Aceasta este o situație dificilă pentru rețelele neuronale, deoarece multe fețe pot fi iluminate diferit, unele lipsite de focalizare. Cu toate acestea, dacă fotografia este realizată cu rezoluție și calitate suficientă (cel puțin 75 de pixeli pe pătrat care acoperă fața), Vision o va putea detecta și recunoaște.

Cu barbă, ochelari de culoare închisă și de profil: situații dificile pentru vederea computerizată

Particularitatea fotografiilor de reportaj și a imaginilor de la camerele de supraveghere este că oamenii sunt adesea neclari, deoarece nu erau focalizați sau se mișcau în acel moment:

Cu barbă, ochelari de culoare închisă și de profil: situații dificile pentru vederea computerizată

De asemenea, intensitatea luminii poate varia foarte mult de la o imagine la alta. Și aceasta devine adesea o piatră de poticnire, mulți algoritmi întâmpină mari dificultăți în procesarea corectă a imaginilor care sunt prea întunecate și prea luminoase, ca să nu mai vorbim de potrivirea lor exactă. Permiteți-mi să vă reamintesc că pentru a obține acest rezultat trebuie să configurați pragurile într-un anumit mod, această caracteristică nu este încă disponibilă public. Folosim aceeași rețea neuronală pentru toți clienții; are praguri potrivite pentru majoritatea sarcinilor practice.

Cu barbă, ochelari de culoare închisă și de profil: situații dificile pentru vederea computerizată

Am lansat recent o nouă versiune a modelului care recunoaște fețele asiatice cu o mare precizie. Aceasta a fost o mare problemă, care a fost numită chiar rasism „învățare automată” (sau „rețea neuronală”). Rețelele neuronale europene și americane au recunoscut bine fețele caucaziene, dar cu fețele mongoloide și negroide situația era mult mai gravă. Probabil, în China situația a fost exact invers. Este vorba despre seturi de date de instruire care reflectă tipurile dominante de oameni dintr-o anumită țară. Cu toate acestea, situația se schimbă astăzi, această problemă nu este atât de acută. Viziunea nu are probleme cu oamenii de diferite rase.

Cu barbă, ochelari de culoare închisă și de profil: situații dificile pentru vederea computerizată

Recunoașterea facială este doar una dintre numeroasele aplicații ale tehnologiei noastre Vision poate fi antrenat să recunoască orice. De exemplu, plăcuțele de înmatriculare, inclusiv în condiții dificile pentru algoritmi: la unghiuri ascuțite, plăcuțe murdare și greu de citit.

Cu barbă, ochelari de culoare închisă și de profil: situații dificile pentru vederea computerizată

2. Cazuri practice de utilizare

2.1. Controlul accesului fizic: atunci când două persoane folosesc același permis

Cu ajutorul Vision, puteți implementa sisteme de înregistrare a sosirii și plecării angajaților. Sistemul tradițional bazat pe permise electronice are dezavantaje evidente, de exemplu, poți trece două persoane folosind o singură insignă. Dacă sistemul de control al accesului (ACS) este completat cu Vision, acesta va înregistra sincer cine a venit/a plecat și când.

2.2. Urmărirea timpului

Acest caz de utilizare Vision este strâns legat de cel precedent. Dacă completați sistemul de acces cu serviciul nostru de recunoaștere facială, acesta va putea nu numai să detecteze încălcările controlului accesului, ci și să înregistreze prezența efectivă a angajaților în clădire sau unitate. Cu alte cuvinte, Vision te va ajuta să ții cont cu sinceritate de cine a venit la muncă și a plecat la ce oră și cine a sărit cu totul de la muncă, chiar dacă colegii lui au acoperit pentru el în fața superiorilor.

2.3. Analiza video: Urmărirea persoanelor și securitate

Urmărind persoanele care folosesc Vision, puteți evalua cu exactitate traficul real al zonelor comerciale, gărilor, pasajelor, străzilor și multor alte locuri publice. Urmărirea noastră poate fi, de asemenea, de mare ajutor în controlul accesului, de exemplu, la un depozit sau la alte sedii importante de birou. Și, desigur, urmărirea oamenilor și a fețelor ajută la rezolvarea problemelor de securitate. Ai prins pe cineva furând din magazinul tău? Adăugați ID-ul său de persoană, care a fost returnat de Vision, în lista neagră a software-ului dvs. de analiză video, iar data viitoare sistemul va alerta imediat securitatea dacă acest tip apare din nou.

2.4. In comert

Retailul și diverse companii de servicii sunt interesate de recunoașterea cozilor. Cu ajutorul Vision, puteți recunoaște că aceasta nu este o mulțime aleatorie de oameni, ci o coadă și puteți determina lungimea acesteia. Și apoi sistemul îi informează pe cei responsabili cu privire la o coadă, astfel încât să-și dea seama de situație: fie există un aflux de vizitatori și trebuie chemați lucrători suplimentari, fie cineva își slăbește sarcinile de serviciu.

O altă sarcină interesantă este separarea angajaților companiei din sală de vizitatori. De obicei, sistemul este antrenat să separe obiectele care poartă anumite haine (codul vestimentar) sau cu o trăsătură distinctivă (esarfă cu marcă, ecuson pe piept și așa mai departe). Acest lucru ajută la o evaluare mai precisă a prezenței (astfel încât angajații să nu „umfle” statisticile oamenilor din sală prin simpla lor prezență).

Folosind recunoașterea facială, îți poți evalua și audiența: care este loialitatea vizitatorilor, adică câți oameni revin la unitatea ta și cu ce frecvență. Calculați câți vizitatori unici vin la dvs. pe lună. Pentru a optimiza costurile de atragere și reținere, puteți afla și modificarea traficului în funcție de ziua săptămânii și chiar de ora din zi.

Francizorii și lanțurile de companii pot comanda o evaluare bazată pe fotografii a calității branding-ului diferitelor puncte de vânzare cu amănuntul: prezența logo-urilor, semnelor, afișelor, bannerelor și așa mai departe.

2.5. Prin transport

Un alt exemplu de asigurare a securității cu ajutorul analizei video este identificarea articolelor abandonate în holurile aeroporturilor sau gărilor. Viziunea poate fi antrenată să recunoască obiecte din sute de clase: piese de mobilier, genți, valize, umbrele, diverse tipuri de îmbrăcăminte, sticle și așa mai departe. Dacă sistemul dvs. de analiză video detectează un obiect fără proprietar și îl recunoaște folosind Vision, acesta trimite un semnal către serviciul de securitate. O sarcină similară este asociată cu detectarea automată a situațiilor neobișnuite în locuri publice: cineva se simte rău, sau cineva fumează în locul nepotrivit sau o persoană cade pe șine și așa mai departe - toate aceste modele pot fi recunoscute de sistemele de analiză video prin API-ul Vision.

2.6. Fluxul documentelor

O altă aplicație viitoare interesantă a Vision pe care o dezvoltăm în prezent este recunoașterea documentelor și analiza automată a acestora în baze de date. În loc să introduceți manual (sau mai rău, să introduceți) serii nesfârșite, numere, date de emitere, numere de cont, detalii bancare, date și locuri de naștere și multe alte date oficializate, puteți scana documente și le trimite automat printr-un canal securizat prin intermediul API către cloud, unde sistemul va recunoaște aceste documente din mers, le va analiza și va returna un răspuns cu date în formatul necesar pentru intrarea automată în baza de date. Astăzi, Vision știe deja cum să clasifice documentele (inclusiv PDF) - face distincția între pașapoarte, SNILS, TIN, certificate de naștere, certificate de căsătorie și altele.

Desigur, rețeaua neuronală nu este capabilă să facă față tuturor acestor situații din cutie. În fiecare caz, se construiește un nou model pentru un anumit client, se iau în considerare mulți factori, nuanțe și cerințe, se selectează seturi de date și se efectuează iterații de instruire, testare și configurare.

3. Schema de operare API

„Poarta de intrare” a Vision pentru utilizatori este API-ul REST. Poate primi fotografii, fișiere video și transmisii de la camerele de rețea (streamuri RTSP) ca intrare.

Pentru a utiliza Vision, aveți nevoie înregistra în serviciul Mail.ru Cloud Solutions și primiți token-uri de acces (client_id + client_secret). Autentificarea utilizatorului se realizează folosind protocolul OAuth. Datele sursă din corpurile solicitărilor POST sunt trimise către API. Și ca răspuns, clientul primește de la API un rezultat de recunoaștere în format JSON, iar răspunsul este structurat: conține informații despre obiectele găsite și coordonatele acestora.

Cu barbă, ochelari de culoare închisă și de profil: situații dificile pentru vederea computerizată

Exemplu de răspuns

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

Răspunsul conține un parametru interesant extraordinar - aceasta este „răcirea” condiționată a unei fețe dintr-o fotografie, cu ajutorul său selectăm cea mai bună fotografie a unei fețe din secvență. Am antrenat o rețea neuronală pentru a prezice probabilitatea ca o fotografie să fie apreciată pe rețelele sociale. Cu cât este mai bună calitatea fotografiei și cu cât fața este mai zâmbitoare, cu atât este mai mare.

API Vision folosește un concept numit spațiu. Acesta este un instrument pentru crearea diferitelor seturi de fețe. Exemple de spații sunt liste alb-negru, liste de vizitatori, angajați, clienți etc. Pentru fiecare token în Vision, puteți crea până la 10 spații, fiecare spațiu poate avea până la 50 de mii de PersonID-uri, adică până la 500 de mii. pe jeton . În plus, numărul de jetoane per cont nu este limitat.

Astăzi, API-ul acceptă următoarele metode de detectare și recunoaștere:

  • Recunoaște/Setează - detectarea și recunoașterea fețelor. Atribuie automat un PersonID fiecărei persoane unice, returnează PersonID și coordonatele persoanelor găsite.
  • Delete - ștergerea unui anumit PersonID din baza de date de persoane.
  • Truncate - șterge întregul spațiu din PersonID, util dacă a fost folosit ca spațiu de testare și trebuie să resetați baza de date pentru producție.
  • Detect - detectarea obiectelor, scenelor, numerelor de înmatriculare, reperelor, cozilor etc. Returnează clasa obiectelor găsite și coordonatele acestora
  • Detect pentru documente - detectează tipuri specifice de documente ale Federației Ruse (distinge pașaport, SNILS, număr de identificare fiscală etc.).

De asemenea, vom termina în curând lucrările la metodele pentru OCR, determinarea sexului, vârstei și emoțiilor, precum și rezolvarea problemelor de merchandising, adică pentru controlul automat al expunerii mărfurilor în magazine. Puteți găsi documentația completă API aici: https://mcs.mail.ru/help/vision-api

4. concluzie

Acum, prin intermediul API-ului public, puteți accesa recunoașterea facială în fotografii și videoclipuri, identificarea diferitelor obiecte, plăcuțe de înmatriculare, repere, documente și scene întregi; Scenarii de aplicare - marea. Vino, testează serviciul nostru, setează-i cele mai dificile sarcini. Primele 5000 de tranzacții sunt gratuite. Poate că va fi „ingredientul lipsă” pentru proiectele tale.

Puteți accesa instantaneu API-ul după înregistrare și conectare. Viziune. Toți utilizatorii Habra primesc un cod promoțional pentru tranzacții suplimentare. Vă rog să-mi scrieți adresa de e-mail pe care ați folosit-o pentru a vă înregistra contul!

Sursa: www.habr.com

Adauga un comentariu