Med skjegg, mørke briller og i profil: vanskelige situasjoner for datasyn

Med skjegg, mørke briller og i profil: vanskelige situasjoner for datasyn

Teknologier og modeller for vårt fremtidige datasynssystem ble opprettet og forbedret gradvis og i forskjellige prosjekter i selskapet vårt - i Mail, Cloud, Search. De modnet som god ost eller konjakk. En dag innså vi at våre nevrale nettverk viser utmerkede resultater i gjenkjennelse, og vi bestemte oss for å kombinere dem til et enkelt b2b-produkt - Vision - som vi nå bruker selv og tilbyr deg å bruke.

I dag fungerer datasynsteknologien vår på Mail.Ru Cloud Solutions-plattformen vellykket og løser svært komplekse praktiske problemer. Den er basert på en rekke nevrale nettverk som er trent på våre datasett og spesialiserer seg på å løse anvendte problemer. Alle tjenester kjører på våre serverfasiliteter. Du kan integrere den offentlige Vision API i applikasjonene dine, der alle funksjonene til tjenesten er tilgjengelige. API-en er rask - takket være server-GPUer er gjennomsnittlig responstid i nettverket vårt 100 ms.

Gå til katten, det er en detaljert historie og mange eksempler på Visions arbeid.

Et eksempel på en tjeneste der vi selv bruker de nevnte ansiktsgjenkjenningsteknologiene er hendelser. En av komponentene er Vision fotostativer, som vi installerer på ulike konferanser. Hvis du nærmer deg et slikt fotostativ, tar et bilde med det innebygde kameraet og skriver inn e-posten din, vil systemet umiddelbart finne blant utvalget av fotografier de du ble tatt på av ansattes fotografer på konferansen, og om ønskelig, vil sende de funnet bildene til deg på e-post. Og vi snakker ikke om iscenesatte portrettbilder – Vision gjenkjenner deg selv i bakgrunnen i en mengde besøkende. Selvfølgelig er det ikke selve fotostandene som gjenkjennes, dette er bare nettbrett i vakre stativer som ganske enkelt tar bilder av gjester med sine innebygde kameraer og overfører informasjon til serverne, der all gjenkjenningsmagien skjer. Og vi har sett mer enn én gang hvor overraskende teknologiens effektivitet er selv blant spesialister på bildegjenkjenning. Nedenfor vil vi snakke om noen eksempler.

1. Vår ansiktsgjenkjenningsmodell

1.1. Nevrale nettverk og prosesseringshastighet

For gjenkjennelse bruker vi en modifikasjon av nevrale nettverksmodellen ResNet 101. Gjennomsnittlig pooling på slutten er erstattet av et fullt tilkoblet lag, lik hvordan det gjøres i ArcFace. Størrelsen på vektorrepresentasjonene er imidlertid 128, ikke 512. Vårt treningssett inneholder omtrent 10 millioner bilder av 273 593 personer.

Modellen kjører veldig raskt takket være en nøye utvalgt serverkonfigurasjonsarkitektur og GPU-databehandling. Det tar fra 100 ms å motta et svar fra APIen på våre interne nettverk – dette inkluderer ansiktsgjenkjenning (oppdage et ansikt på et bilde), gjenkjenne og returnere PersonID i API-svaret. Med store mengder innkommende data – bilder og videoer – vil det ta mye mer tid å overføre dataene til tjenesten og å få svar.

1.2. Vurdere effektiviteten til modellen

Men å bestemme effektiviteten til nevrale nettverk er en svært tvetydig oppgave. Kvaliteten på arbeidet deres avhenger av hvilke datasett modellene ble trent på og om de var optimalisert for å jobbe med spesifikke data.

Vi begynte å evaluere nøyaktigheten til modellen vår med den populære LFW-verifiseringstesten, men den er for liten og enkel. Etter å ha nådd 99,8 % nøyaktighet, er det ikke lenger nyttig. Det er en god konkurranse for å vurdere gjenkjennelsesmodeller - Megaface, hvor vi gradvis nådde 82% rangering 1. Megaface-testen består av en million fotografier - distraktorer - og modellen skal være i stand til godt å skille flere tusen fotografier av kjendiser fra Facescruben datasett fra distraktorer. Etter å ha fjernet Megaface-testen for feil, fant vi imidlertid ut at med den ryddede versjonen oppnår vi en nøyaktighet på 98 % rangering 1 (bilder av kjendiser er generelt ganske spesifikke). Derfor laget de en egen identifikasjonstest, lik Megaface, men med fotografier av "vanlige" mennesker. Deretter forbedret vi gjenkjenningsnøyaktigheten på datasettene våre og gikk langt foran. I tillegg bruker vi en klyngekvalitetstest som består av flere tusen bilder; den simulerer ansiktsmerking i brukerens sky. I dette tilfellet er klynger grupper av lignende individer, en gruppe for hver gjenkjennelig person. Vi sjekket kvaliteten på arbeidet på reelle grupper (true).

Selvfølgelig oppstår gjenkjenningsfeil med enhver modell. Men slike situasjoner løses ofte ved å finjustere tersklene for spesifikke forhold (for alle konferanser bruker vi de samme tersklene, men for eksempel for adgangskontrollsystemer må vi øke tersklene kraftig slik at det blir færre falske positiver). De aller fleste konferansebesøkende ble gjenkjent korrekt av våre Vision-fotobokser. Noen ganger så noen på den beskårede forhåndsvisningen og sa: "Systemet ditt gjorde en feil, det var ikke meg." Så åpnet vi bildet i sin helhet, og det viste seg at det virkelig var denne besøkende på bildet, bare vi ikke fotograferte ham, men noen andre, personen var tilfeldigvis i bakgrunnen i uskarphetsonen. Dessuten gjenkjenner det nevrale nettverket ofte riktig selv når en del av ansiktet ikke er synlig, eller personen står i profil, eller til og med halvveis. Systemet kan gjenkjenne en person selv om ansiktet er i området med optisk forvrengning, for eksempel når du fotograferer med et vidvinkelobjektiv.

1.3. Eksempler på testing i vanskelige situasjoner

Nedenfor er eksempler på hvordan vårt nevrale nettverk fungerer. Bilder sendes inn til innspillet, som hun skal merke ved hjelp av PersonID – en unik identifikator til en person. Hvis to eller flere bilder har samme ID, viser disse bildene, ifølge modellene, den samme personen.

La oss umiddelbart merke oss at når vi tester, har vi tilgang til ulike parametere og modellterskler som vi kan konfigurere for å oppnå et bestemt resultat. Det offentlige API-et er optimalisert for maksimal nøyaktighet på vanlige saker.

La oss starte med det enkleste, med frontvendt ansiktsgjenkjenning.

Med skjegg, mørke briller og i profil: vanskelige situasjoner for datasyn

Vel, det var for lett. La oss komplisere oppgaven, legge til et skjegg og en håndfull år.

Med skjegg, mørke briller og i profil: vanskelige situasjoner for datasyn

Noen vil si at dette heller ikke var for vanskelig, fordi i begge tilfeller er hele ansiktet synlig, og mye informasjon om ansiktet er tilgjengelig for algoritmen. Ok, la oss gjøre Tom Hardy om til profil. Dette problemet er mye mer komplekst, og vi brukte mye krefter på å lykkes med å løse det og samtidig opprettholde en lav feilrate: vi valgte et treningssett, tenkte gjennom arkitekturen til det nevrale nettverket, finpusset tapsfunksjonene og forbedret forhåndsbehandlingen av fotografier.

Med skjegg, mørke briller og i profil: vanskelige situasjoner for datasyn

La oss sette et hodeplagg på ham:

Med skjegg, mørke briller og i profil: vanskelige situasjoner for datasyn

Forresten, dette er et eksempel på en spesielt vanskelig situasjon, siden ansiktet er sterkt skjult, og på det nederste bildet er det også en dyp skygge som skjuler øynene. I det virkelige liv endrer folk ofte utseende ved hjelp av mørke briller. La oss gjøre det samme med Tom.

Med skjegg, mørke briller og i profil: vanskelige situasjoner for datasyn

Ok, la oss prøve å kaste inn bilder fra forskjellige aldre, og denne gangen skal vi eksperimentere med en annen skuespiller. La oss ta et mye mer komplekst eksempel, hvor aldersrelaterte endringer er spesielt uttalte. Situasjonen er ikke langsøkt; den oppstår ganske ofte når du trenger å sammenligne bildet i passet med ansiktet til bæreren. Tross alt blir det første bildet lagt til et pass når eieren er 20 år gammel, og i en alder av 45 kan en person endre seg sterkt:

Med skjegg, mørke briller og i profil: vanskelige situasjoner for datasyn

Tror du at hovedspesialisten på umulige oppdrag ikke har endret seg mye med alderen? Jeg tror at selv noen få mennesker ville kombinere topp- og bunnbildene, gutten har forandret seg så mye gjennom årene.

Med skjegg, mørke briller og i profil: vanskelige situasjoner for datasyn

Nevrale nettverk møter endringer i utseende mye oftere. For eksempel kan noen ganger kvinner endre bildet sitt ved hjelp av kosmetikk:

Med skjegg, mørke briller og i profil: vanskelige situasjoner for datasyn

La oss nå komplisere oppgaven enda mer: anta at forskjellige deler av ansiktet er dekket av forskjellige fotografier. I slike tilfeller kan ikke algoritmen sammenligne hele prøver. Vision takler imidlertid situasjoner som dette godt.

Med skjegg, mørke briller og i profil: vanskelige situasjoner for datasyn

Forresten, det kan være mange ansikter i et fotografi; for eksempel kan mer enn 100 personer passe inn i et generelt fotografi av en hall. Dette er en vanskelig situasjon for nevrale nettverk, siden mange ansikter kan lyses annerledes, noen ute av fokus. Men hvis bildet er tatt med tilstrekkelig oppløsning og kvalitet (minst 75 piksler per kvadrat som dekker ansiktet), vil Vision kunne oppdage og gjenkjenne det.

Med skjegg, mørke briller og i profil: vanskelige situasjoner for datasyn

Det særegne med reportasjebilder og bilder fra overvåkingskameraer er at folk ofte er uskarpe fordi de var ute av fokus eller beveget seg i det øyeblikket:

Med skjegg, mørke briller og i profil: vanskelige situasjoner for datasyn

Dessuten kan lysintensiteten variere mye fra bilde til bilde. Også dette blir ofte en snublestein, mange algoritmer har store problemer med å korrekt behandle bilder som er for mørke og for lyse, for ikke å snakke om å matche dem nøyaktig. La meg minne deg på at for å oppnå dette resultatet må du konfigurere tersklene på en bestemt måte; denne funksjonen er ennå ikke offentlig tilgjengelig. Vi bruker det samme nevrale nettverket for alle klienter, det har terskler som passer for de fleste praktiske oppgaver.

Med skjegg, mørke briller og i profil: vanskelige situasjoner for datasyn

Vi har nylig rullet ut en ny versjon av modellen som gjenkjenner asiatiske ansikter med høy nøyaktighet. Dette pleide å være et stort problem, som til og med ble kalt "maskinlæring" (eller "nevrale nettverk") rasisme. Europeiske og amerikanske nevrale nettverk gjenkjente kaukasiske ansikter godt, men med mongoloide og negroide ansikter var situasjonen mye verre. Sannsynligvis var situasjonen akkurat motsatt i Kina. Det handler om treningsdatasett som gjenspeiler de dominerende typene mennesker i et bestemt land. Situasjonen er imidlertid i endring, i dag er ikke dette problemet så akutt. Visjon har ingen problemer med mennesker av forskjellige raser.

Med skjegg, mørke briller og i profil: vanskelige situasjoner for datasyn

Ansiktsgjenkjenning er bare en av mange anvendelser av teknologien vår; Visjon kan trenes til å gjenkjenne hva som helst. For eksempel bilskilt, inkludert under forhold som er vanskelige for algoritmer: i skarpe vinkler, skitne og vanskelig å lese bilskilt.

Med skjegg, mørke briller og i profil: vanskelige situasjoner for datasyn

2. Praktiske brukssaker

2.1. Fysisk tilgangskontroll: når to personer bruker samme pass

Ved hjelp av Vision kan du implementere systemer for registrering av ankomst og avgang av ansatte. Det tradisjonelle systemet basert på elektroniske pass har åpenbare ulemper, for eksempel kan du passere to personer ved hjelp av ett merke. Hvis adgangskontrollsystemet (ACS) er supplert med Vision, vil det ærlig registrere hvem som kom/gikk og når.

2.2. Tidssporing

Denne Vision-brukssaken er nært knyttet til den forrige. Hvis du supplerer tilgangssystemet med vår ansiktsgjenkjenningstjeneste, vil det ikke bare kunne oppdage brudd på adgangskontroll, men også registrere den faktiske tilstedeværelsen av ansatte i bygningen eller anlegget. Med andre ord, Vision vil hjelpe deg ærlig å ta hensyn til hvem som kom på jobb og dro på hvilket tidspunkt, og hvem som helt hoppet over jobben, selv om kollegene dekket for ham foran hans overordnede.

2.3. Videoanalyse: Personsporing og sikkerhet

Ved å spore folk som bruker Vision, kan du nøyaktig vurdere den reelle trafikken til shoppingområder, togstasjoner, passasjer, gater og mange andre offentlige steder. Vår sporing kan også være til stor hjelp for å kontrollere tilgang til for eksempel et lager eller andre viktige kontorlokaler. Og selvfølgelig hjelper sporing av mennesker og ansikter å løse sikkerhetsproblemer. Har du tatt noen som stjeler fra butikken din? Legg til PersonID-en hans, som ble returnert av Vision, til svartelisten til videoanalyseprogramvaren din, og neste gang vil systemet umiddelbart varsle sikkerheten hvis denne typen dukker opp igjen.

2.4. I handel

Detaljhandel og ulike servicebedrifter er interessert i køgjenkjenning. Ved hjelp av Vision kan du gjenkjenne at dette ikke er en tilfeldig mengde mennesker, men en kø, og bestemme lengden. Og så informerer systemet de ansvarlige om en kø slik at de kan finne ut av situasjonen: enten er det en tilstrømning av besøkende og flere arbeidstakere må tilkalles, eller noen slakker på jobben.

En annen interessant oppgave er å skille bedriftens ansatte i hallen fra besøkende. Vanligvis er systemet trent til å skille gjenstander som har på seg visse klær (kleskode) eller med noen særegne funksjoner (merket skjerf, merke på brystet, og så videre). Dette bidrar til å mer nøyaktig vurdere oppmøte (slik at ansatte ikke "blåser opp" statistikken til folk i salen bare ved deres tilstedeværelse).

Ved å bruke ansiktsgjenkjenning kan du også evaluere publikummet ditt: hva er lojaliteten til besøkende, det vil si hvor mange som kommer tilbake til etablissementet ditt og med hvilken frekvens. Beregn hvor mange unike besøkende som kommer til deg per måned. For å optimalisere kostnadene for tiltrekning og oppbevaring, kan du også finne ut endringen i trafikken avhengig av ukedagen og til og med tidspunktet på dagen.

Franchisegivere og kjedeselskaper kan bestille en vurdering basert på fotografier av kvaliteten på merkevarebyggingen til ulike utsalgssteder: tilstedeværelsen av logoer, skilt, plakater, bannere og så videre.

2.5. Med transport

Et annet eksempel på å sikre sikkerhet ved hjelp av videoanalyse er å identifisere forlatte gjenstander i hallene på flyplasser eller togstasjoner. Visjon kan trenes til å gjenkjenne gjenstander fra hundrevis av klasser: møbler, vesker, kofferter, paraplyer, ulike typer klær, flasker og så videre. Hvis videoanalysesystemet ditt oppdager et eierløst objekt og gjenkjenner det ved hjelp av Vision, sender det et signal til sikkerhetstjenesten. En lignende oppgave er forbundet med automatisk oppdagelse av uvanlige situasjoner på offentlige steder: noen føler seg syk, eller noen røyker på feil sted, eller en person faller på skinnene, og så videre - alle disse mønstrene kan gjenkjennes av videoanalysesystemer gjennom Vision API.

2.6. Dokumentflyt

En annen interessant fremtidig applikasjon av Vision som vi for tiden utvikler er dokumentgjenkjenning og deres automatiske parsing til databaser. I stedet for manuelt å legge inn (eller enda verre, legge inn) endeløse serier, tall, utstedelsesdatoer, kontonumre, bankdetaljer, fødselsdatoer og -steder og mange andre formaliserte data, kan du skanne dokumenter og automatisk sende dem over en sikker kanal via API til skyen, hvor systemet vil gjenkjenne disse dokumentene i farten, analysere dem og returnere et svar med data i det nødvendige formatet for automatisk inntasting i databasen. I dag vet Vision allerede hvordan man klassifiserer dokumenter (inkludert PDF) - skiller mellom pass, SNILS, TIN, fødselsattester, vigselsattester og andre.

Selvfølgelig er det nevrale nettverket ikke i stand til å håndtere alle disse situasjonene ut av boksen. I hvert tilfelle bygges en ny modell for en spesifikk kunde, mange faktorer, nyanser og krav tas i betraktning, datasett velges og iterasjoner av opplæring, testing og konfigurasjon utføres.

3. API-operasjonsskjema

Visions "inngangsport" for brukere er REST API. Den kan motta bilder, videofiler og sendinger fra nettverkskameraer (RTSP-strømmer) som input.

For å bruke Vision, trenger du registrer i Mail.ru Cloud Solutions-tjenesten og motta tilgangstokener (client_id + client_secret). Brukerautentisering utføres ved hjelp av OAuth-protokollen. Kildedataene i kroppen til POST-forespørsler sendes til API. Og som svar mottar klienten fra API-en et gjenkjenningsresultat i JSON-format, og svaret er strukturert: det inneholder informasjon om de funnet objektene og deres koordinater.

Med skjegg, mørke briller og i profil: vanskelige situasjoner for datasyn

Eksempel på svar

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

Svaret inneholder en interessant parameter awesomeness - dette er den betingede "kulheten" til et ansikt i et bilde, med dets hjelp velger vi det beste bildet av et ansikt fra sekvensen. Vi trente et nevralt nettverk til å forutsi sannsynligheten for at et bilde vil bli likt på sosiale nettverk. Jo bedre kvaliteten på bildet og jo mer smilende ansiktet er, desto større er det fantastisk.

API Vision bruker et konsept kalt space. Dette er et verktøy for å lage forskjellige sett med ansikter. Eksempler på mellomrom er svarte og hvite lister, lister over besøkende, ansatte, klienter osv. For hvert token i Vision kan du opprette opptil 10 mellomrom, hver plass kan ha opptil 50 tusen PersonIDer, det vil si opptil 500 tusen per token. Dessuten er antall tokens per konto ikke begrenset.

I dag støtter API følgende gjenkjennings- og gjenkjenningsmetoder:

  • Recognize/Set - gjenkjenning og gjenkjenning av ansikter. Tildeler automatisk en PersonID til hver unike person, returnerer PersonID og koordinater til de funnet personene.
  • Slett - sletting av en bestemt PersonID fra persondatabasen.
  • Truncate - fjerner hele plassen fra PersonID, nyttig hvis den ble brukt som testplass og du må tilbakestille databasen for produksjon.
  • Oppdag - gjenkjenning av objekter, scener, lisensplater, landemerker, køer osv. Returnerer klassen av funnet objekter og deres koordinater
  • Oppdag for dokumenter - oppdager spesifikke typer dokumenter fra den russiske føderasjonen (skiller pass, SNILS, skatteidentifikasjonsnummer, etc.).

Vi avslutter også snart arbeidet med metoder for OCR, fastsettelse av kjønn, alder og følelser, samt løsning av varehandelsproblemer, det vil si for automatisk kontroll av visning av varer i butikk. Du finner fullstendig API-dokumentasjon her: https://mcs.mail.ru/help/vision-api

4. Konklusjon

Nå, gjennom den offentlige APIen, kan du få tilgang til ansiktsgjenkjenning i bilder og videoer; identifikasjon av ulike objekter, lisensplater, landemerker, dokumenter og hele scener støttes. Søknadsscenarier - havet. Kom, test tjenesten vår, sett den til de vanskeligste oppgavene. De første 5000 transaksjonene er gratis. Kanskje vil det være den "manglende ingrediensen" for prosjektene dine.

Du får øyeblikkelig tilgang til API ved registrering og tilkobling. Visjonen. Alle Habra-brukere mottar en kampanjekode for ytterligere transaksjoner. Vennligst skriv til meg e-postadressen du brukte til å registrere kontoen din!

Kilde: www.habr.com

Legg til en kommentar