Habe, tumedate prillidega ja profiiliga: arvutinägemise jaoks keerulised olukorrad

Habe, tumedate prillidega ja profiiliga: arvutinägemise jaoks keerulised olukorrad

Meie tulevase arvutinägemissüsteemi tehnoloogiad ja mudelid loodi ja täiustati järk-järgult ja meie ettevõtte erinevates projektides - Mail, Cloud, Search. Nad küpsesid nagu hea juust või konjak. Ühel päeval mõistsime, et meie närvivõrgud näitavad äratundmisel suurepäraseid tulemusi ja otsustasime need ühendada ühtseks b2b tooteks - Vision -, mida me nüüd ise kasutame ja teile kasutada pakume.

Tänapäeval töötab meie arvutinägemise tehnoloogia Mail.Ru Cloud Solutions platvormil edukalt ja lahendab väga keerulisi praktilisi probleeme. See põhineb mitmetel närvivõrkudel, mis on koolitatud meie andmekogumite põhjal ja on spetsialiseerunud rakendusprobleemide lahendamisele. Kõik teenused töötavad meie serveriseadmetes. Saate integreerida oma rakendustesse avaliku Vision API, mille kaudu on saadaval kõik teenuse võimalused. API on kiire – tänu serveri GPU-dele on meie võrgus keskmine reageerimisaeg 100 ms.

Minge kassi juurde, seal on üksikasjalik lugu ja palju näiteid Visioni tööst.

Näide teenusest, milles me ise kasutame mainitud näotuvastustehnoloogiaid, on Sündmused. Selle üheks komponendiks on Vision fotostendid, mida paigaldame erinevatel konverentsidel. Kui lähenete sellisele fotostendile, tehke foto sisseehitatud kaameraga ja sisestage oma e-posti aadress, leiab süsteem fotode hulgast kohe need, millel teid on jäädvustanud konverentsi personalifotograafid, ja soovi korral saadab leitud fotod teile meili teel. Ja me ei räägi lavastatud portreevõtetest – Vision tunneb teid külastajate hulgas isegi taustal ära. Loomulikult ei tuvastata fotostendid endid, need on lihtsalt ilusates stendides olevad tahvelarvutid, mis lihtsalt pildistavad külalisi oma sisseehitatud kaameratega ja edastavad teabe serveritesse, kus toimub kogu äratundmismaagia. Ja oleme korduvalt näinud, kui üllatav on tehnoloogia tõhusus isegi pildituvastusspetsialistide seas. Allpool räägime mõnest näitest.

1. Meie näotuvastusmudel

1.1. Närvivõrk ja töötlemiskiirus

Tuvastamiseks kasutame ResNet 101 närvivõrgu mudeli modifikatsiooni.Average Pooling lõpus asendatakse täielikult ühendatud kihiga, sarnaselt sellele, kuidas seda tehakse ArcFace'is. Vektoresitluste suurus on aga 128, mitte 512. Meie koolituskomplektis on umbes 10 miljonit fotot 273 593 inimesest.

Mudel töötab väga kiiresti tänu hoolikalt valitud serveri konfiguratsiooniarhitektuurile ja GPU andmetöötlusele. API-lt vastuse saamine meie sisevõrkudes võtab aega alates 100 ms – see hõlmab näotuvastust (fotol näo tuvastamist), API vastuses isikuID tuvastamist ja tagastamist. Suurte sissetulevate andmete – fotode ja videote – puhul kulub andmete teenusesse edastamiseks ja vastuse saamiseks palju rohkem aega.

1.2. Mudeli efektiivsuse hindamine

Kuid närvivõrkude efektiivsuse määramine on väga mitmetähenduslik ülesanne. Nende töö kvaliteet sõltub sellest, milliste andmekogumite osas mudelid koolitati ja kas need olid optimeeritud konkreetsete andmetega töötamiseks.

Hakkasime oma mudeli täpsust hindama populaarse LFW kontrolltestiga, kuid see on liiga väike ja lihtne. Pärast 99,8% täpsuse saavutamist pole see enam kasulik. Tunnustusmudelite hindamiseks on käimas korralik konkurents – Megaface, mille puhul jõudsime järk-järgult 82% 1. kohale. Megaface’i test koosneb miljonist fotost – segajatest – ja modell peaks suutma Facescrubist hästi eristada mitu tuhat fotot kuulsustest. segajate andmekogum. Pärast Megaface'i testi vigadest puhastamist leidsime aga, et kustutatud versiooniga saavutame 98% täpsuse 1. järgu (kuulsuste fotod on üldiselt üsna spetsiifilised). Seetõttu lõid nad eraldi identifitseerimistesti, mis sarnaneb Megaface'iga, kuid "tavaliste" inimeste fotodega. Seejärel parandasime oma andmekogumite tuvastamise täpsust ja läksime kaugele edasi. Lisaks kasutame klastri kvaliteedi testi, mis koosneb mitmest tuhandest fotost; see simuleerib näo märgistamist kasutaja pilves. Sel juhul on klastrid sarnaste indiviidide rühmad, üks rühm iga äratuntava isiku kohta. Kontrollisime reaalsete rühmade töö kvaliteeti (tõene).

Loomulikult esineb iga mudeli puhul äratundmisvigu. Kuid sellised olukorrad lahendatakse sageli konkreetsete tingimuste lävede peenhäälestusega (kõigi konverentside puhul kasutame samu lävesid, kuid näiteks juurdepääsukontrollisüsteemide puhul peame lävesid kõvasti tõstma, et valepositiivseid oleks vähem). Valdav osa konverentsikülastajatest tundsid meie Visioni fotokabiinid õigesti ära. Mõnikord vaatas keegi kärbitud eelvaadet ja ütles: "Teie süsteem tegi vea, see polnud mina." Seejärel avasime foto tervikuna ja selgus, et fotol oli tõesti see külaline, ainult et me ei pildistanud teda, vaid kedagi teist, inimene lihtsalt juhtus olema hägustamise tsoonis taustal. Pealegi tunneb närvivõrk sageli õigesti ära isegi siis, kui osa näost pole näha või kui inimene seisab profiilis või isegi pooleldi pöördes. Süsteem tunneb inimese ära isegi siis, kui nägu on optiliste moonutuste piirkonnas, näiteks lainurkobjektiiviga pildistades.

1.3. Näited testimisest keerulistes olukordades

Allpool on näited selle kohta, kuidas meie närvivõrk töötab. Sisendisse esitatakse fotod, mille ta peab märgistama, kasutades PersonID - isiku unikaalset identifikaatorit. Kui kahel või enamal pildil on sama ID, siis mudelite järgi on neil fotodel sama isik.

Pangem kohe tähele, et testimisel on meil juurdepääs erinevatele parameetritele ja mudelilävedele, mida saame konkreetse tulemuse saavutamiseks konfigureerida. Avalik API on optimeeritud tavajuhtumite maksimaalse täpsuse tagamiseks.

Alustame kõige lihtsamast, esiküljel oleva näotuvastusega.

Habe, tumedate prillidega ja profiiliga: arvutinägemise jaoks keerulised olukorrad

Noh, see oli liiga lihtne. Teeme ülesande keerulisemaks, lisame habeme ja käputäie aastaid.

Habe, tumedate prillidega ja profiiliga: arvutinägemise jaoks keerulised olukorrad

Mõned ütlevad, et see polnud ka liiga keeruline, sest mõlemal juhul on kogu nägu nähtav ja algoritmil on näo kohta palju teavet. Olgu, muudame Tom Hardy profiiliks. See probleem on palju keerulisem ja selle edukaks lahendamiseks, säilitades samas madala veamäära, nägime palju vaeva: valisime välja koolituskomplekti, mõtlesime läbi närvivõrgu arhitektuuri, lihvisime kadufunktsioone ja täiustasime eeltöötlust. fotodest.

Habe, tumedate prillidega ja profiiliga: arvutinägemise jaoks keerulised olukorrad

Paneme talle peakatte:

Habe, tumedate prillidega ja profiiliga: arvutinägemise jaoks keerulised olukorrad

Muide, see on näide eriti keerulisest olukorrast, kuna nägu on tugevalt varjatud ja alumisel fotol on silmi varjatud ka sügav vari. Päriselus muudavad inimesed väga sageli oma välimust tumedate prillide abil. Teeme sama Tomiga.

Habe, tumedate prillidega ja profiiliga: arvutinägemise jaoks keerulised olukorrad

Olgu, proovime visata fotosid erinevatest vanustest ja seekord katsetame teise näitlejaga. Võtame palju keerulisema näite, kus vanusega seotud muutused on eriti ilmekad. Olukord pole kaugeleulatuv, seda tuleb üsna sageli ette, kui on vaja võrrelda passis olevat fotot kandja näoga. Lõppude lõpuks lisatakse passi esimene foto, kui omanik on 20-aastane ja 45-aastaselt võib inimene oluliselt muutuda:

Habe, tumedate prillidega ja profiiliga: arvutinägemise jaoks keerulised olukorrad

Kas arvate, et võimatute missioonide peaspetsialist pole vanusega palju muutunud? Ma arvan, et isegi paar inimest kombineeriks ülemist ja alumist fotot, poiss on aastatega nii palju muutunud.

Habe, tumedate prillidega ja profiiliga: arvutinägemise jaoks keerulised olukorrad

Närvivõrgud kogevad välimuse muutusi palju sagedamini. Näiteks võivad naised mõnikord kosmeetika abil oma pilti oluliselt muuta:

Habe, tumedate prillidega ja profiiliga: arvutinägemise jaoks keerulised olukorrad

Teeme nüüd ülesande veelgi keerulisemaks: oletame, et näo erinevad osad on kaetud erinevatel fotodel. Sellistel juhtudel ei saa algoritm võrrelda terveid valimeid. Küll aga tuleb Vision selliste olukordadega hästi toime.

Habe, tumedate prillidega ja profiiliga: arvutinägemise jaoks keerulised olukorrad

Muide, fotol võib olla palju nägusid, näiteks saali üldfotole mahub üle 100 inimese. See on närvivõrkude jaoks keeruline olukord, kuna paljud näod võivad olla erinevalt valgustatud, mõned on fookusest väljas. Kui aga foto on tehtud piisava resolutsiooni ja kvaliteediga (vähemalt 75 pikslit nägu katval ruudul), suudab Vision selle tuvastada ja ära tunda.

Habe, tumedate prillidega ja profiiliga: arvutinägemise jaoks keerulised olukorrad

Reportaažfotode ja valvekaamerate piltide eripära on see, et inimesed on sageli hägused, kuna nad olid sel hetkel fookusest väljas või liikusid:

Habe, tumedate prillidega ja profiiliga: arvutinägemise jaoks keerulised olukorrad

Samuti võib valgustuse intensiivsus pilditi suuresti erineda. Ka see saab sageli komistuskiviks, paljudel algoritmidel on suuri raskusi liiga tumedate ja liiga heledate piltide korrektsel töötlemisel, rääkimata nende täpsest sobitamisest. Tuletan teile meelde, et selle tulemuse saavutamiseks peate lävesid teatud viisil konfigureerima, see funktsioon pole veel avalikult saadaval. Kasutame kõikide klientide jaoks sama närvivõrku, sellel on enamiku praktiliste ülesannete jaoks sobivad läved.

Habe, tumedate prillidega ja profiiliga: arvutinägemise jaoks keerulised olukorrad

Hiljuti tõime välja mudeli uue versiooni, mis tuvastab Aasia näod suure täpsusega. Varem oli see suur probleem, mida nimetati isegi "masinõppe" (või "närvivõrgu") rassismiks. Euroopa ja Ameerika närvivõrgud tundsid hästi ära kaukaasia näod, kuid Mongoloidi ja Negroidi nägude puhul oli olukord palju hullem. Tõenäoliselt oli Hiinas olukord täpselt vastupidine. See kõik puudutab koolitusandmekogumeid, mis kajastavad konkreetse riigi domineerivaid inimtüüpe. Olukord on aga muutumas, täna pole see probleem nii terav. Eri rassist inimestega pole nägemisega probleeme.

Habe, tumedate prillidega ja profiiliga: arvutinägemise jaoks keerulised olukorrad

Näotuvastus on vaid üks meie tehnoloogia paljudest rakendustest; Nägemist saab treenida kõike ära tundma. Näiteks numbrimärgid, sealhulgas algoritmide jaoks rasketes tingimustes: teravate nurkade all, määrdunud ja raskesti loetavad numbrimärgid.

Habe, tumedate prillidega ja profiiliga: arvutinägemise jaoks keerulised olukorrad

2. Praktilised kasutusjuhtumid

2.1. Füüsiline juurdepääsukontroll: kui kaks inimest kasutavad sama pääset

Visioni abil saab juurutada süsteeme töötajate saabumise ja lahkumise fikseerimiseks. Traditsioonilisel elektroonilistel pääsmetel põhineval süsteemil on ilmsed miinused, näiteks saab ühe märgi abil läbida kaks inimest. Kui läbipääsusüsteemi (ACS) täiendada Visioniga, paneb see ausalt kirja, kes ja millal tuli/lahkus.

2.2. Aja jälgimine

See Visioni kasutusjuhtum on eelmisega tihedalt seotud. Kui täiendate läbipääsusüsteemi meie näotuvastusteenusega, suudab see mitte ainult tuvastada juurdepääsukontrolli rikkumisi, vaid ka registreerida töötajate tegelikku viibimist hoones või rajatises. Teisisõnu aitab Vision ausalt arvesse võtta, kes mis kell tööle tuli ja lahkus ning kes üldse töö pooleli jättis, isegi kui kolleegid teda ülemuste ees katsid.

2.3. Videoanalüüs: inimeste jälgimine ja turvalisus

Jälgides inimesi Visioni abil, saate täpselt hinnata tegelikku liiklust ostupiirkondades, rongijaamades, käikudes, tänavates ja paljudes muudes avalikes kohtades. Meie jälgimine võib olla suureks abiks ka ligipääsu kontrollimisel näiteks lattu või muudele olulistele kontoriruumidele. Ja loomulikult aitab inimeste ja nägude jälgimine lahendada turvaprobleeme. Kas olete tabanud kedagi teie poest varastamast? Lisage tema Visioni poolt tagastatud PersonID oma videoanalüüsi tarkvara musta nimekirja ja järgmine kord annab süsteem koheselt turbele märku, kui see tüüp uuesti ilmub.

2.4. Kaubanduses

Järjekorratuvastusest on huvitatud jaekaubandus ja erinevad teenindusettevõtted. Visioni abil saate ära tunda, et tegemist pole juhusliku rahvahulga, vaid järjekorraga, ja määrata selle pikkuse. Ja siis teatab süsteem vastutajatele järjekorrast, et nad saaksid olukorrast aru: kas on külastajate pealevool ja tuleb kutsuda lisatööjõudu või on keegi oma tööülesannete täitmisel lõdvemas.

Teine huvitav ülesanne on eraldada saalis olevad ettevõtte töötajad külastajatest. Tavaliselt on süsteem välja õpetatud eraldama objekte, mis kannavad teatud riideid (riietuskood) või millel on mõni iseloomulik tunnus (kaubamärgiga sall, rinnamärk jne). See aitab kohalolekut täpsemalt hinnata (et töötajad pelgalt kohalolekuga saalis viibijate statistikat ei “paisutaks”.

Näotuvastuse abil saate hinnata ka oma vaatajaskonda: milline on külastajate lojaalsus, st kui palju inimesi teie ettevõttesse tagasi pöördub ja millise sagedusega. Arvutage, kui palju kordumatuid külastajaid teie juurde kuus tuleb. Atraktsiooni- ja kinnipidamiskulude optimeerimiseks saate teada ka liikluse muutumise sõltuvalt nädalapäevast ja isegi kellaajast.

Frantsiisiandjad ja ketiettevõtted saavad tellida fotohinnangu erinevate jaemüügipunktide brändingu kvaliteedi kohta: logode, siltide, plakatite, bännerite jms olemasolu.

2.5. Transpordiga

Teine näide turvalisuse tagamisest videoanalüütika abil on lennujaamade või raudteejaamade saalides mahajäetud esemete tuvastamine. Nägemist saab treenida ära tundma sadade klasside objekte: mööblitükke, kotte, kohvreid, vihmavarju, erinevat tüüpi riideid, pudeleid jne. Kui teie videoanalüütikasüsteem tuvastab omanikuta objekti ja tunneb selle Visioni abil ära, saadab see signaali turvateenistusele. Sarnane ülesanne on seotud avalikes kohtades ebatavaliste olukordade automaatse tuvastamisega: keegi tunneb end halvasti või keegi suitsetab vales kohas või kukub rööbastele ja nii edasi – kõik need mustrid tunnevad ära videoanalüütikasüsteemid. Vision API kaudu.

2.6. Dokumendivoog

Veel üks huvitav tulevikurakendus, mida praegu arendame, on dokumentide tuvastamine ja nende automaatne parsimine andmebaasidesse. Selle asemel, et käsitsi sisestada (või veel hullem, sisestada) lõputuid seeriaid, numbreid, väljastamise kuupäevi, kontonumbreid, pangarekvisiite, sünnikuupäevi ja -kohti ning palju muid vormistatud andmeid, saate dokumente skannida ja need automaatselt turvalise kanali kaudu saata. API pilve, kus süsteem tunneb need dokumendid käigu pealt ära, analüüsib need ja tagastab vastuse koos andmetega vajalikus vormingus automaatseks sisestamiseks andmebaasi. Täna teab Vision juba dokumente (sh PDF-i) klassifitseerida - eristab passe, SNILS-i, TIN-i, sünnitunnistusi, abielutunnistusi ja muid.

Loomulikult ei suuda närvivõrk kõiki neid olukordi karbist välja tulla. Igal juhul ehitatakse konkreetsele kliendile uus mudel, võetakse arvesse paljusid tegureid, nüansse ja nõudeid, valitakse andmekogumid ning viiakse läbi koolituse, testimise ja seadistamise iteratsioonid.

3. API tööskeem

Visioni "sissepääsuvärav" kasutajatele on REST API. See saab sisendina vastu võtta fotosid, videofaile ja ülekandeid võrgukaameratest (RTSP-vood).

Visioni kasutamiseks vajate registreerima teenuses Mail.ru Cloud Solutions ja saada juurdepääsuluba (kliendi_id + kliendi_saladus). Kasutaja autentimine toimub OAuth-protokolli abil. POST-päringute kehades olevad lähteandmed saadetakse API-le. Ja vastuseks saab klient API-lt tuvastustulemuse JSON-vormingus ja vastus on struktureeritud: see sisaldab teavet leitud objektide ja nende koordinaatide kohta.

Habe, tumedate prillidega ja profiiliga: arvutinägemise jaoks keerulised olukorrad

Vastuse näidis

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

Vastus sisaldab huvitavat parameetrit awesomeness - see on fotol oleva näo tingimuslik “jahedus”, mille abil valime jadast välja parima näokaadri. Treenisime närvivõrku, et ennustada tõenäosust, et fotole sotsiaalvõrgustikes meeldivad meeldimised. Mida parem on foto kvaliteet ja naeratavam nägu, seda suurem on vinge.

API Vision kasutab kontseptsiooni nimega ruum. See on tööriist erinevate näokomplektide loomiseks. Ruudude näideteks on mustad ja valged nimekirjad, külastajate, töötajate, klientide jne loendid. Iga Visioni märgi kohta saate luua kuni 10 ruumi, igal ruumil võib olla kuni 50 tuhat PersonID-d, see tähendab kuni 500 tuhat. märgi kohta. Lisaks ei ole žetoonide arv konto kohta piiratud.

Tänapäeval toetab API järgmisi tuvastamis- ja tuvastamismeetodeid:

  • Recognize/Set – nägude tuvastamine ja tuvastamine. Määrab igale unikaalsele isikule automaatselt PersonID, tagastab leitud isikute PersonID ja koordinaadid.
  • Kustuta – konkreetse PersonID kustutamine isikute andmebaasist.
  • Kärbi – puhastab kogu ruumi PersonID-st, kasulik, kui seda kasutati testruumina ja peate andmebaasi tootmiseks lähtestama.
  • Tuvasta - objektide, stseenide, numbrimärkide, orientiiride, järjekordade jms tuvastamine. Tagastab leitud objektide klassi ja nende koordinaadid
  • Dokumentide tuvastamine - tuvastab teatud tüüpi Vene Föderatsiooni dokumendid (eristab passi, SNILS-i, maksukohustuslase numbri jne).

Samuti jõuame peagi lõpule OCR-i meetodite kallal, soo, vanuse ja emotsioonide määramisel ning kaubavahetuse probleemide lahendamisel ehk kauplustes kaupade väljapaneku automaatsel juhtimisel. Täieliku API dokumentatsiooni leiate siit: https://mcs.mail.ru/help/vision-api

4. Järeldus

Nüüd pääsete avaliku API kaudu fotodel ja videotes ligi näotuvastusele, toetatakse erinevate objektide, numbrimärkide, orientiiride, dokumentide ja tervete stseenide tuvastamist. Rakenduse stsenaariumid - meri. Tulge, testige meie teenust, määrake kõige keerulisemad ülesanded. Esimesed 5000 tehingut on tasuta. Võib-olla on see teie projektide jaoks "puuduv koostisosa".

Registreerumisel ja ühenduse loomisel pääsete API-le kohe juurde. Nägemus. Kõik Habra kasutajad saavad lisatehingute jaoks sooduskoodi. Palun kirjutage mulle e-posti aadress, mida kasutasite oma konto registreerimisel!

Allikas: www.habr.com

Lisa kommentaar