Su barzda, tamsiais akiniais ir profiliu: sudėtingos kompiuterinio matymo situacijos

Su barzda, tamsiais akiniais ir profiliu: sudėtingos kompiuterinio matymo situacijos

Technologijos ir modeliai mūsų būsimai kompiuterinio matymo sistemai buvo kuriami ir tobulinami palaipsniui ir įvairiuose mūsų įmonės projektuose – pašte, debesyje, paieškoje. Jie subrendo kaip geras sūris ar konjakas. Vieną dieną supratome, kad mūsų neuroniniai tinklai rodo puikius atpažinimo rezultatus, ir nusprendėme juos sujungti į vieną b2b produktą – „Vision“, kurį dabar naudojame patys ir siūlome naudotis jums.

Šiandien mūsų kompiuterinio matymo technologija Mail.Ru Cloud Solutions platformoje sėkmingai veikia ir sprendžia labai sudėtingas praktines problemas. Jis pagrįstas daugeliu neuroninių tinklų, kurie yra apmokyti mūsų duomenų rinkiniuose ir specializuojasi taikomųjų problemų sprendimu. Visos paslaugos teikiamos mūsų serveriuose. Į savo programas galite integruoti viešąją Vision API, per kurią pasiekiamos visos paslaugos galimybės. API yra greita – serverio GPU dėka vidutinis atsako laikas mūsų tinkle yra 100 ms.

Eikite į katę, ten yra išsami istorija ir daug Vizijos darbo pavyzdžių.

Kaip paslaugos, kurioje mes patys naudojame minėtas veido atpažinimo technologijas, pavyzdį galime paminėti Renginiai. Vienas iš jo komponentų yra Vision foto stendai, kuriuos montuojame įvairiose konferencijose. Jei priartėsite prie tokio nuotraukų stendo, nufotografuokite su įmontuota kamera ir įveskite savo el. pašto adresą, sistema iš karto tarp nuotraukų masyvo suras tas, kuriose jus įamžino konferencijos darbuotojai, o jei pageidaujate, rastas nuotraukas atsiųs jums el. Ir mes nekalbame apie surežisuotus portretinius kadrus – „Vision“ atpažįsta jus net pačiame fone minioje lankytojų. Žinoma, atpažįstami ne patys nuotraukų stendai, tai tik planšetiniai kompiuteriai gražiuose stenduose, kurie tiesiog fotografuoja svečius su įmontuotomis kameromis ir perduoda informaciją į serverius, kur ir vyksta visa atpažinimo magija. Ir ne kartą matėme, kaip stebina technologijos efektyvumas net tarp vaizdo atpažinimo specialistų. Žemiau kalbėsime apie keletą pavyzdžių.

1. Mūsų veido atpažinimo modelis

1.1. Neuroninis tinklas ir apdorojimo greitis

Atpažinimui naudojame ResNet 101 neuroninio tinklo modelio modifikaciją.Average Pooling pabaigoje pakeičiamas visiškai sujungtu sluoksniu, panašiai kaip tai daroma ArcFace. Tačiau vektorinių vaizdų dydis yra 128, o ne 512. Mūsų mokymo rinkinyje yra apie 10 milijonų 273 593 žmonių nuotraukų.

Modelis veikia labai greitai dėl kruopščiai parinktos serverio konfigūracijos architektūros ir GPU skaičiavimo. Atsakymas iš API mūsų vidiniuose tinkluose užtrunka nuo 100 ms – tai apima veido aptikimą (veido aptikimą nuotraukoje), asmens ID atpažinimą ir grąžinimą API atsakyme. Esant dideliam gaunamų duomenų kiekiui – nuotraukų ir vaizdo įrašų – duomenų perkėlimas į paslaugą ir atsakymo gavimas užtruks daug daugiau laiko.

1.2. Modelio efektyvumo įvertinimas

Tačiau neuroninių tinklų efektyvumo nustatymas yra labai dviprasmiška užduotis. Jų darbo kokybė priklauso nuo to, kokiais duomenų rinkiniais modeliai buvo mokomi ir ar jie buvo optimizuoti darbui su konkrečiais duomenimis.

Savo modelio tikslumą pradėjome vertinti naudodami populiarų LFW patikros testą, tačiau jis per mažas ir paprastas. Pasiekus 99,8% tikslumą, jis nebenaudingas. Vyksta geras atpažinimo modelių vertinimo konkursas – „Megaface“, kuriame pamažu pasiekėme 82 proc. 1 reitingo. „Megaface“ testą sudaro milijonas nuotraukų – atitraukiančių priemonių – ir modelis turėtų gerai atskirti kelis tūkstančius įžymybių nuotraukų nuo „Facescrub“. duomenų rinkinys iš trukdžių. Tačiau išvalę „Megaface“ testą nuo klaidų, nustatėme, kad su išvalyta versija pasiekiame 98% tikslumą 1 reitinge (įžymybių nuotraukos paprastai yra gana specifinės). Todėl jie sukūrė atskirą identifikavimo testą, panašų į „Megaface“, bet su „paprastų“ žmonių nuotraukomis. Tada pagerinome savo duomenų rinkinių atpažinimo tikslumą ir nuėjome toli į priekį. Be to, naudojame klasterizacijos kokybės testą, kurį sudaro keli tūkstančiai nuotraukų; jis imituoja veido žymėjimą vartotojo debesyje. Šiuo atveju klasteriai yra panašių asmenų grupės, po vieną kiekvienam atpažįstamam asmeniui. Tikrinome darbo kokybę realiose grupėse (tiesa).

Žinoma, bet kuriame modelyje pasitaiko atpažinimo klaidų. Bet tokios situacijos dažnai išsprendžiamos tikslinant konkrečių sąlygų slenksčius (visoms konferencijoms naudojame tuos pačius slenksčius, bet, pavyzdžiui, prieigos kontrolės sistemoms turime labai padidinti slenksčius, kad būtų mažiau klaidingų teigiamų rezultatų). Didžiąją daugumą konferencijos lankytojų teisingai atpažino mūsų Vision foto kabinos. Kartais kas nors pažiūrėdavo į apkarpytą peržiūrą ir sakydavo: „Jūsų sistema padarė klaidą, tai ne aš“. Tada atidarėme visą nuotrauką ir paaiškėjo, kad nuotraukoje tikrai yra šis lankytojas, tik mes fotografavome ne jį, o ką nors kitą, žmogus tiesiog atsidūrė fone, suliejimo zonoje. Be to, neuroninis tinklas dažnai teisingai atpažįsta net tada, kai nematyti dalies veido, arba žmogus stovi profilyje ar net pusiau apsivertęs. Sistema gali atpažinti žmogų net jei veidas yra optinio iškraipymo zonoje, tarkime, fotografuojant plačiakampiu objektyvu.

1.3. Bandymų sudėtingose ​​situacijose pavyzdžiai

Žemiau pateikiami mūsų neuroninio tinklo veikimo pavyzdžiai. Į įvestį pateikiamos nuotraukos, kurias ji turi pažymėti naudodama PersonID – unikalų asmens identifikatorių. Jei du ar daugiau vaizdų turi tą patį ID, tai, pagal modelius, šiose nuotraukose pavaizduotas tas pats asmuo.

Iš karto atkreipkime dėmesį, kad testuodami turime prieigą prie įvairių parametrų ir modelio slenksčių, kuriuos galime konfigūruoti, kad pasiektume tam tikrą rezultatą. Viešoji API optimizuota siekiant maksimalaus tikslumo įprastais atvejais.

Pradėkime nuo paprasčiausio dalyko – nuo ​​priekinio veido atpažinimo.

Su barzda, tamsiais akiniais ir profiliu: sudėtingos kompiuterinio matymo situacijos

Na, tai buvo per lengva. Apsunkinkime užduotį, pridėkime barzdą ir saują metų.

Su barzda, tamsiais akiniais ir profiliu: sudėtingos kompiuterinio matymo situacijos

Kai kas sakys, kad tai taip pat nebuvo labai sunku, nes abiem atvejais matomas visas veidas, o algoritmui prieinama daug informacijos apie veidą. Gerai, paverskime Tomą Hardy profiliu. Ši problema yra daug sudėtingesnė ir įdėjome daug pastangų, kad ją sėkmingai išspręstume, išlaikydami žemą klaidų procentą: pasirinkome mokymo rinkinį, apgalvojome neuroninio tinklo architektūrą, patobulinome praradimo funkcijas ir patobulinome išankstinį apdorojimą. nuotraukų.

Su barzda, tamsiais akiniais ir profiliu: sudėtingos kompiuterinio matymo situacijos

Uždėkime jam galvos apdangalą:

Su barzda, tamsiais akiniais ir profiliu: sudėtingos kompiuterinio matymo situacijos

Beje, tai ypač keblios situacijos pavyzdys, nes veidas stipriai užtemdytas, o apatinėje nuotraukoje taip pat gilus šešėlis, slepiantis akis. Realiame gyvenime žmonės labai dažnai keičia savo išvaizdą tamsių akinių pagalba. Padarykime tą patį su Tomu.

Su barzda, tamsiais akiniais ir profiliu: sudėtingos kompiuterinio matymo situacijos

Gerai, pabandykime įmesti įvairaus amžiaus nuotraukas, o šį kartą eksperimentuosime su kitu aktoriumi. Paimkime daug sudėtingesnį pavyzdį, kur su amžiumi susiję pokyčiai yra ypač ryškūs. Situacija nėra tolima, gana dažnai pasitaiko, kai reikia palyginti nuotrauką pase su nešiotojo veidu. Juk pirmoji nuotrauka į pasą pridedama, kai savininkui sukanka 20 metų, o iki 45 metų žmogus gali labai pasikeisti:

Su barzda, tamsiais akiniais ir profiliu: sudėtingos kompiuterinio matymo situacijos

Kaip manote, ar pagrindinis neįmanomų misijų specialistas su amžiumi nelabai pasikeitė? Manau, kad net keli žmonės derintų viršutinę ir apatinę nuotraukas, berniukas per tiek metų pasikeitė.

Su barzda, tamsiais akiniais ir profiliu: sudėtingos kompiuterinio matymo situacijos

Neuroniniai tinklai daug dažniau susiduria su išvaizdos pokyčiais. Pavyzdžiui, kartais moterys kosmetikos pagalba gali labai pakeisti savo įvaizdį:

Su barzda, tamsiais akiniais ir profiliu: sudėtingos kompiuterinio matymo situacijos

Dabar dar labiau apsunkinkime užduotį: tarkime, kad skirtingos veido dalys yra padengtos skirtingose ​​nuotraukose. Tokiais atvejais algoritmas negali palyginti visų imčių. Tačiau „Vision“ puikiai susidoroja su tokiomis situacijomis.

Su barzda, tamsiais akiniais ir profiliu: sudėtingos kompiuterinio matymo situacijos

Beje, nuotraukoje gali būti daug veidų, pavyzdžiui, bendroje salės nuotraukoje telpa daugiau nei 100 žmonių. Tai sudėtinga situacija neuroniniams tinklams, nes daugelis veidų gali būti apšviesti skirtingai, o kai kurie nefokusuoti. Tačiau jei nuotrauka bus padaryta pakankamai raiška ir kokybiškai (ne mažiau kaip 75 pikseliai viename veidą dengiančio kvadrato), „Vision“ galės ją aptikti ir atpažinti.

Su barzda, tamsiais akiniais ir profiliu: sudėtingos kompiuterinio matymo situacijos

Reportažinių nuotraukų ir vaizdų iš stebėjimo kamerų ypatumas yra tas, kad žmonės dažnai būna neryškūs, nes tuo metu buvo nesufokusuoti arba judėjo:

Su barzda, tamsiais akiniais ir profiliu: sudėtingos kompiuterinio matymo situacijos

Be to, apšvietimo intensyvumas gali labai skirtis priklausomai nuo vaizdo. Tai taip pat dažnai tampa kliūtimi; daugeliui algoritmų kyla didelių sunkumų tinkamai apdoroti per tamsius ir per šviesius vaizdus, ​​jau nekalbant apie jų tikslų atitikimą. Priminsiu, kad norint pasiekti šį rezultatą reikia tam tikru būdu sukonfigūruoti slenksčius, ši funkcija dar nėra viešai prieinama. Visiems klientams naudojame tą patį neuroninį tinklą, jo slenksčiai tinka daugumai praktinių užduočių.

Su barzda, tamsiais akiniais ir profiliu: sudėtingos kompiuterinio matymo situacijos

Neseniai išleidome naują modelio versiją, kuri labai tiksliai atpažįsta Azijos veidus. Anksčiau tai buvo didelė problema, kuri netgi buvo vadinama „mašininiu mokymusi“ (arba „neuroniniu tinklu“) rasizmu. Europos ir Amerikos neuroniniai tinklai gerai atpažino Kaukazo veidus, tačiau su mongoloidiniais ir negroidiniais veidais situacija buvo daug blogesnė. Tikriausiai Kinijoje situacija buvo visiškai priešinga. Tai viskas apie mokymo duomenų rinkinius, kurie atspindi dominuojančius žmonių tipus konkrečioje šalyje. Tačiau situacija keičiasi, šiandien ši problema nėra tokia opi. Vizija neturi problemų su skirtingų rasių žmonėmis.

Su barzda, tamsiais akiniais ir profiliu: sudėtingos kompiuterinio matymo situacijos

Veido atpažinimas yra tik vienas iš daugelio mūsų technologijos pritaikymo būdų; Regėjimą galima išmokyti atpažinti bet ką. Pavyzdžiui, valstybiniai numeriai, įskaitant sudėtingomis algoritmams sąlygomis: esant aštriems kampams, nešvariems ir sunkiai įskaitomiems numeriams.

Su barzda, tamsiais akiniais ir profiliu: sudėtingos kompiuterinio matymo situacijos

2. Praktiniai panaudojimo atvejai

2.1. Fizinė prieigos kontrolė: kai du žmonės naudojasi tuo pačiu leidimu

Vision pagalba galite įdiegti darbuotojų atvykimo ir išvykimo fiksavimo sistemas. Tradicinė sistema, pagrįsta elektroniniais leidimais, turi akivaizdžių trūkumų, pavyzdžiui, vienu ženkleliu galite praleisti du žmones. Jei prieigos kontrolės sistema (ACS) bus papildyta „Vision“, ji sąžiningai fiksuos, kas ir kada atėjo/išėjo.

2.2. Laiko sekimas

Šis „Vision“ naudojimo atvejis yra glaudžiai susijęs su ankstesniu. Jei praėjimo sistemą papildysite mūsų veidų atpažinimo paslauga, ji galės ne tik aptikti praėjimo kontrolės pažeidimus, bet ir užregistruoti faktinį darbuotojų buvimą pastate ar objekte. Kitaip tariant, „Vision“ padės sąžiningai atsižvelgti į tai, kas atėjo į darbą ir kuriuo metu išėjo, o kas apskritai praleido darbą, net jei kolegos už jį dengė viršininkų akivaizdoje.

2.3. Vaizdo įrašų analizė: žmonių sekimas ir sauga

Stebėdami žmones naudodami Vision, galite tiksliai įvertinti tikrąjį eismą prekybos zonose, traukinių stotyse, perėjose, gatvėse ir daugelyje kitų viešųjų vietų. Mūsų sekimas taip pat gali labai padėti kontroliuoti prieigą, pavyzdžiui, į sandėlį ar kitas svarbias biuro patalpas. Ir, žinoma, žmonių ir veidų sekimas padeda išspręsti saugumo problemas. Sugavote ką nors vagiantį iš jūsų parduotuvės? Pridėkite jo asmens ID, kurį grąžino Vision, į juodąjį vaizdo įrašų analizės programinės įrangos sąrašą ir kitą kartą sistema nedelsdama įspės apsaugą, jei šis tipas vėl pasirodys.

2.4. Prekyboje

Eilių atpažinimu domisi mažmeninė prekyba ir įvairios paslaugų įmonės. „Vision“ pagalba galite atpažinti, kad tai ne atsitiktinė žmonių minia, o eilė, ir nustatyti jos ilgį. Ir tada sistema praneša atsakingiems apie eilę, kad jie išsiaiškintų situaciją: arba lankytojų antplūdis ir reikia kviesti papildomų darbuotojų, arba kažkas slampinėja savo darbo pareigas.

Dar viena įdomi užduotis – salėje esančius įmonės darbuotojus atskirti nuo lankytojų. Paprastai sistema treniruojama atskirti objektus, dėvinčius tam tikrus drabužius (aprangos kodas) arba turinčius kokį nors išskirtinį bruožą (firminis šalikas, ženklelis ant krūtinės ir pan.). Tai padeda tiksliau įvertinti lankomumą (kad darbuotojai vien savo buvimu „neišpūstų“ salėje esančių žmonių statistikos).

Naudodami veido atpažinimą taip pat galite įvertinti savo auditoriją: koks yra lankytojų lojalumas, tai yra, kiek žmonių ir kokiu dažnumu grįžta į jūsų įstaigą. Apskaičiuokite, kiek unikalių lankytojų ateina pas jus per mėnesį. Norėdami optimizuoti pritraukimo ir išlaikymo išlaidas, taip pat galite sužinoti srauto pokyčius priklausomai nuo savaitės dienos ir net paros laiko.

Franšizės davėjai ir tinklo įmonės gali užsisakyti įvairių mažmeninės prekybos vietų prekių ženklų kokybės įvertinimą, pagrįstą nuotraukomis: logotipų, iškabų, plakatų, banerių ir pan.

2.5. Transportu

Kitas saugumo užtikrinimo naudojant vaizdo analizę pavyzdys – oro uostų ar traukinių stočių salėse aptikti palikti daiktai. Regėjimą galima lavinti atpažinti šimtų klasių objektus: baldus, krepšius, lagaminus, skėčius, įvairių rūšių drabužius, butelius ir pan. Jei jūsų vaizdo analizės sistema aptinka besavininkį objektą ir atpažįsta jį naudodama „Vision“, ji siunčia signalą saugos tarnybai. Panaši užduotis siejama ir su automatiniu neįprastų situacijų viešose vietose aptikimu: kam nors blogai, ar kas nors ne vietoje rūko, ar žmogus nukrenta ant bėgių ir t.t. – visus šiuos šablonus gali atpažinti vaizdo analizės sistemos. per Vision API.

2.6. Dokumentų srautas

Kita įdomi ateities „Vision“ programa, kurią šiuo metu kuriame, yra dokumentų atpažinimas ir automatinis jų analizavimas į duomenų bazes. Užuot rankiniu būdu įvedę (arba dar blogiau, įvedę) begalines serijas, skaičius, išdavimo datas, sąskaitų numerius, banko duomenis, gimimo datas ir vietas bei daugybę kitų formalizuotų duomenų, galite nuskaityti dokumentus ir automatiškai išsiųsti juos saugiu kanalu per API į debesį, kur sistema atpažins šiuos dokumentus skrydžio metu, juos išnagrinės ir grąžins atsakymą su duomenimis reikiamu formatu, kad būtų galima automatiškai patekti į duomenų bazę. Šiandien Vision jau žino, kaip klasifikuoti dokumentus (įskaitant PDF) - išskiria pasus, SNILS, TIN, gimimo liudijimus, santuokos liudijimus ir kitus.

Žinoma, neuroninis tinklas negali susidoroti su visais šiais atvejais. Kiekvienu atveju konkrečiam klientui kuriamas naujas modelis, atsižvelgiama į daugybę faktorių, niuansų ir reikalavimų, parenkami duomenų rinkiniai, atliekamos mokymo, testavimo, konfigūravimo iteracijos.

3. API veikimo schema

Vision „įėjimo vartai“ vartotojams yra REST API. Jis gali priimti nuotraukas, vaizdo failus ir transliacijas iš tinklo kamerų (RTSP srautų) kaip įvestį.

Norėdami naudoti Vision, jums reikia registruotis Mail.ru Cloud Solutions tarnyboje ir gauti prieigos prieigos raktus (kliento_id + kliento_slaptas). Vartotojo autentifikavimas atliekamas naudojant OAuth protokolą. Pirminiai duomenys POST užklausų korpusuose siunčiami į API. O atsakydamas iš API klientas gauna atpažinimo rezultatą JSON formatu, o atsakymas susistemintas: jame yra informacija apie rastus objektus ir jų koordinates.

Su barzda, tamsiais akiniais ir profiliu: sudėtingos kompiuterinio matymo situacijos

Atsakymo pavyzdys

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

Atsakyme yra įdomus nuostabumo parametras - tai sąlyginis veido „vėsumas“ nuotraukoje, kurio pagalba iš sekos atrenkame geriausią veido kadrą. Išmokėme neuroninį tinklą nuspėti tikimybę, kad nuotraukai patiks socialiniai tinklai. Kuo geresnė nuotraukos kokybė ir kuo labiau besišypsantis veidas, tuo didesnis nuostabumas.

API Vision naudoja sąvoką, vadinamą erdve. Tai įrankis, skirtas sukurti skirtingus veidų rinkinius. Tarpų pavyzdžiai yra juodieji ir baltieji sąrašai, lankytojų, darbuotojų, klientų sąrašai ir kt. Kiekvienam Vision prieigos raktui galite sukurti iki 10 erdvių, kiekviena erdvė gali turėti iki 50 tūkstančių PersonID, tai yra iki 500 tūkst. už žetoną. Be to, žetonų skaičius paskyroje nėra ribojamas.

Šiandien API palaiko šiuos aptikimo ir atpažinimo metodus:

  • Recognize/Set – veidų aptikimas ir atpažinimas. Kiekvienam unikaliam asmeniui automatiškai priskiria asmens ID, grąžina asmenį ir rastų asmenų koordinates.
  • Ištrinti – konkretaus asmens ID ištrynimas iš asmenų duomenų bazės.
  • Sutrumpinti – išvalo visą erdvę iš PersonID, naudinga, jei ji buvo naudojama kaip bandomoji vieta ir reikia iš naujo nustatyti duomenų bazę gamybai.
  • Detect – objektų, scenų, valstybinių numerių, orientyrų, eilių ir tt aptikimas. Grąžina rastų objektų klasę ir jų koordinates
  • Aptikti dokumentus – aptinka tam tikrus Rusijos Federacijos dokumentų tipus (išskiria pasą, SNILS, mokesčių mokėtojo numerį ir kt.).

Taip pat greitai baigiame dirbti su OCR, lyties, amžiaus ir emocijų nustatymo metodais, taip pat sprendžiame prekybines problemas, tai yra, automatiškai kontroliuojame prekių demonstravimą parduotuvėse. Visą API dokumentaciją galite rasti čia: https://mcs.mail.ru/help/vision-api

4. Išvada

Dabar per viešąją API galite pasiekti veido atpažinimą nuotraukose ir vaizdo įrašuose; palaikomas įvairių objektų, valstybinių numerių, orientyrų, dokumentų ir ištisų scenų identifikavimas. Taikymo scenarijai – jūra. Ateikite, išbandykite mūsų paslaugą, nustatykite sudėtingiausias užduotis. Pirmosios 5000 operacijų yra nemokamos. Galbūt tai bus jūsų projektų „trūkstama sudedamoji dalis“.

Prisiregistravę ir prisijungę galite iš karto pasiekti API. vizija. Visi Habra vartotojai gauna reklamos kredito kodą papildomoms operacijoms. Parašykite man el. pašto adresą, kurį naudojote registruodami savo paskyrą!

Šaltinis: www.habr.com

Добавить комментарий