Med skæg, mørke briller og i profil: vanskelige situationer for computersyn

Med skæg, mørke briller og i profil: vanskelige situationer for computersyn

Teknologier og modeller til vores fremtidige computervisionssystem blev skabt og forbedret gradvist og i forskellige projekter i vores virksomhed - i Mail, Cloud, Search. De modnede som god ost eller cognac. En dag indså vi, at vores neurale netværk viser fremragende resultater i genkendelse, og vi besluttede at kombinere dem i et enkelt b2b-produkt - Vision - som vi nu selv bruger og tilbyder dig at bruge.

I dag fungerer vores computervisionsteknologi på Mail.Ru Cloud Solutions-platformen med succes og løser meget komplekse praktiske problemer. Det er baseret på en række neurale netværk, der er trænet på vores datasæt og specialiseret i at løse anvendte problemer. Alle tjenester kører på vores serverfaciliteter. Du kan integrere den offentlige Vision API i dine applikationer, hvorigennem alle tjenestens muligheder er tilgængelige. API'en er hurtig - takket være server-GPU'er er den gennemsnitlige responstid på vores netværk 100 ms.

Gå til katten, der er en detaljeret historie og mange eksempler på Visions arbejde.

Et eksempel på en service, hvor vi selv anvender de nævnte ansigtsgenkendelsesteknologier er Events. En af dens komponenter er Vision fotostandere, som vi installerer på forskellige konferencer. Hvis du nærmer dig en sådan fotostand, tager et billede med det indbyggede kamera og indtaster din e-mail, vil systemet straks finde blandt de billeder, hvor du blev fanget af konferencens personalefotografer, og hvis det ønskes, vil sende de fundne billeder til dig via e-mail. Og vi taler ikke om iscenesatte portrætbilleder – Vision genkender dig selv i baggrunden i en mængde besøgende. Det er selvfølgelig ikke selve fotostanderne, der genkendes, det er blot tablets i smukke stande, der blot tager billeder af gæster med deres indbyggede kameraer og overfører information til serverne, hvor al genkendelsesmagien sker. Og vi har set mere end én gang, hvor overraskende teknologiens effektivitet er selv blandt billedgenkendelsesspecialister. Nedenfor vil vi tale om nogle eksempler.

1. Vores ansigtsgenkendelsesmodel

1.1. Neuralt netværk og behandlingshastighed

Til genkendelse bruger vi en modifikation af den neurale netværksmodel ResNet 101. Gennemsnitlig pooling i slutningen er erstattet af et fuldt forbundet lag, svarende til hvordan det gøres i ArcFace. Størrelsen af ​​vektorrepræsentationerne er dog 128, ikke 512. Vores træningssæt indeholder omkring 10 millioner billeder af 273 personer.

Modellen kører meget hurtigt takket være en nøje udvalgt serverkonfigurationsarkitektur og GPU-beregning. Det tager fra 100 ms at modtage et svar fra API'en på vores interne netværk - dette inkluderer ansigtsgenkendelse (registrering af et ansigt på et billede), genkendelse og returnering af PersonID i API-svaret. Med store mængder af indgående data - fotos og videoer - vil det tage meget længere tid at overføre dataene til tjenesten og at modtage et svar.

1.2. Vurdering af modellens effektivitet

Men at bestemme effektiviteten af ​​neurale netværk er en meget tvetydig opgave. Kvaliteten af ​​deres arbejde afhænger af, hvilke datasæt modellerne er trænet i, og om de er optimeret til at arbejde med specifikke data.

Vi begyndte at evaluere nøjagtigheden af ​​vores model med den populære LFW-verifikationstest, men den er for lille og enkel. Efter at have nået 99,8% nøjagtighed, er det ikke længere nyttigt. Der er en god konkurrence om at vurdere genkendelsesmodeller - Megaface, hvorpå vi efterhånden nåede 82% rang 1. Megaface-testen består af en million fotografier - distraktorer - og modellen burde godt kunne skelne flere tusinde fotografier af berømtheder fra Facescrubben datasæt fra distraktorer. Men efter at have ryddet Megaface-testen for fejl, fandt vi ud af, at med den ryddede version opnår vi en nøjagtighed på 98% rang 1 (billeder af berømtheder er generelt ret specifikke). Derfor lavede de en separat identifikationstest, der ligner Megaface, men med fotografier af "almindelige" mennesker. Derefter forbedrede vi genkendelsesnøjagtigheden på vores datasæt og gik langt videre. Derudover bruger vi en klyngekvalitetstest, der består af flere tusinde fotos; det simulerer ansigtsmærkning i brugerens sky. I dette tilfælde er klynger grupper af lignende individer, en gruppe for hver genkendelig person. Vi kontrollerede kvaliteten af ​​arbejdet på rigtige grupper (sandt).

Selvfølgelig opstår der genkendelsesfejl med enhver model. Men sådanne situationer løses ofte ved at finjustere tærsklerne for specifikke forhold (til alle konferencer bruger vi de samme tærskler, men f.eks. for adgangskontrolsystemer skal vi øge tærsklerne kraftigt, så der er færre falske positiver). Langt de fleste konferencegæster blev genkendt korrekt af vores Vision-fotobokse. Nogle gange kiggede nogen på den beskårede forhåndsvisning og sagde: "Dit system lavede en fejl, det var ikke mig." Så åbnede vi billedet i sin helhed, og det viste sig, at der virkelig var denne gæst på billedet, men vi fotograferede ikke ham, men en anden, personen var tilfældigvis i baggrunden i sløringszonen. Desuden genkender det neurale netværk ofte korrekt, selv når en del af ansigtet ikke er synligt, eller personen står i profil eller endda halvt vendt. Systemet kan genkende en person, selvom ansigtet er i området med optisk forvrængning, f.eks. når du optager med et vidvinkelobjektiv.

1.3. Eksempler på test i svære situationer

Nedenfor er eksempler på, hvordan vores neurale netværk fungerer. Billeder sendes til input, som hun skal mærke ved hjælp af PersonID - en unik identifikator for en person. Hvis to eller flere billeder har samme ID, viser disse billeder ifølge modellerne den samme person.

Lad os straks bemærke, at når vi tester, har vi adgang til forskellige parametre og modeltærskler, som vi kan konfigurere for at opnå et bestemt resultat. Den offentlige API er optimeret til maksimal nøjagtighed på almindelige sager.

Lad os starte med det enkleste, med frontvendt ansigtsgenkendelse.

Med skæg, mørke briller og i profil: vanskelige situationer for computersyn

Nå, det var for nemt. Lad os komplicere opgaven, tilføje et skæg og en håndfuld år.

Med skæg, mørke briller og i profil: vanskelige situationer for computersyn

Nogle vil sige, at dette heller ikke var for svært, for i begge tilfælde er hele ansigtet synligt, og en masse information om ansigtet er tilgængelig for algoritmen. Okay, lad os gøre Tom Hardy til profil. Dette problem er meget mere komplekst, og vi brugte mange kræfter på at løse det med succes og samtidig bevare en lav fejlrate: vi valgte et træningssæt, gennemtænkte det neurale netværks arkitektur, finpudset tabsfunktionerne og forbedrede forbehandlingen af fotografier.

Med skæg, mørke briller og i profil: vanskelige situationer for computersyn

Lad os sætte en hovedbeklædning på ham:

Med skæg, mørke briller og i profil: vanskelige situationer for computersyn

Forresten er dette et eksempel på en særlig vanskelig situation, da ansigtet er stærkt sløret, og på det nederste billede er der også en dyb skygge, der skjuler øjnene. I det virkelige liv ændrer folk meget ofte deres udseende ved hjælp af mørke briller. Lad os gøre det samme med Tom.

Med skæg, mørke briller og i profil: vanskelige situationer for computersyn

Okay, lad os prøve at smide billeder ind fra forskellige aldre, og denne gang vil vi eksperimentere med en anden skuespiller. Lad os tage et meget mere komplekst eksempel, hvor aldersrelaterede ændringer er særligt udtalte. Situationen er ikke langt ude, den opstår ret ofte, når du skal sammenligne billedet i passet med bærerens ansigt. Når alt kommer til alt føjes det første fotografi til et pas, når ejeren er 20 år gammel, og i en alder af 45 kan en person ændre sig meget:

Med skæg, mørke briller og i profil: vanskelige situationer for computersyn

Tror du, at hovedspecialisten i umulige missioner ikke har ændret sig meget med alderen? Jeg tror, ​​at selv nogle få mennesker ville kombinere de øverste og nederste billeder, drengen har ændret sig så meget gennem årene.

Med skæg, mørke briller og i profil: vanskelige situationer for computersyn

Neurale netværk støder meget oftere på ændringer i udseendet. For eksempel kan kvinder nogle gange i høj grad ændre deres image ved hjælp af kosmetik:

Med skæg, mørke briller og i profil: vanskelige situationer for computersyn

Lad os nu komplicere opgaven endnu mere: antag, at forskellige dele af ansigtet er dækket af forskellige fotografier. I sådanne tilfælde kan algoritmen ikke sammenligne hele prøver. Vision håndterer dog situationer som denne godt.

Med skæg, mørke briller og i profil: vanskelige situationer for computersyn

I øvrigt kan der være mange ansigter på et fotografi, for eksempel kan mere end 100 personer passe ind i et generelt fotografi af en hal. Dette er en vanskelig situation for neurale netværk, da mange ansigter kan oplyses anderledes, nogle ude af fokus. Men hvis billedet er taget med tilstrækkelig opløsning og kvalitet (mindst 75 pixels pr. kvadrat, der dækker ansigtet), vil Vision være i stand til at registrere og genkende det.

Med skæg, mørke briller og i profil: vanskelige situationer for computersyn

Det særlige ved reportagebilleder og billeder fra overvågningskameraer er, at folk ofte er slørede, fordi de var ude af fokus eller bevægede sig i det øjeblik:

Med skæg, mørke briller og i profil: vanskelige situationer for computersyn

Ligeledes kan lysintensiteten variere meget fra billede til billede. Også dette bliver ofte en anstødssten; mange algoritmer har store problemer med at behandle billeder, der er for mørke og for lyse, for ikke at tale om at matche dem nøjagtigt. Lad mig minde dig om, at for at opnå dette resultat skal du konfigurere tærsklerne på en bestemt måde; denne funktion er endnu ikke offentligt tilgængelig. Vi bruger det samme neurale netværk for alle klienter; det har tærskler, der passer til de fleste praktiske opgaver.

Med skæg, mørke briller og i profil: vanskelige situationer for computersyn

Vi har for nylig udrullet en ny version af modellen, der genkender asiatiske ansigter med høj nøjagtighed. Dette plejede at være et stort problem, som endda blev kaldt "machine learning" (eller "neuralt netværk") racisme. Europæiske og amerikanske neurale netværk genkendte kaukasiske ansigter godt, men med mongoloide og negroide ansigter var situationen meget værre. Sandsynligvis var situationen i Kina præcis den modsatte. Det handler om træningsdatasæt, der afspejler de dominerende typer mennesker i et bestemt land. Situationen er imidlertid ved at ændre sig, i dag er dette problem ikke så akut. Syn har ingen problemer med mennesker af forskellige racer.

Med skæg, mørke briller og i profil: vanskelige situationer for computersyn

Ansigtsgenkendelse er blot en af ​​de mange anvendelser af vores teknologi; Vision kan trænes til at genkende hvad som helst. For eksempel nummerplader, herunder under forhold, der er vanskelige for algoritmer: i skarpe vinkler, snavsede og svære at læse nummerplader.

Med skæg, mørke briller og i profil: vanskelige situationer for computersyn

2. Praktiske use cases

2.1. Fysisk adgangskontrol: når to personer bruger det samme pas

Ved hjælp af Vision kan du implementere systemer til registrering af ansattes ankomst og afgang. Det traditionelle system baseret på elektroniske pas har åbenlyse ulemper, for eksempel kan man passere to personer ved hjælp af et badge. Hvis adgangskontrolsystemet (ACS) suppleres med Vision, vil det ærligt registrere, hvem der kom/tog og hvornår.

2.2. Tidsregistrering

Denne Vision-brugscase er tæt forbundet med den forrige. Hvis du supplerer adgangssystemet med vores ansigtsgenkendelsesservice, vil det ikke kun være i stand til at opdage adgangskontrolbrud, men også at registrere den faktiske tilstedeværelse af medarbejdere i bygningen eller anlægget. Med andre ord vil Vision hjælpe dig med ærligt at tage højde for, hvem der kom på arbejde og gik på hvilket tidspunkt, og hvem der helt sprang arbejdet over, selvom hans kolleger dækkede for ham foran hans overordnede.

2.3. Videoanalyse: Personsporing og sikkerhed

Ved at spore folk ved hjælp af Vision kan du nøjagtigt vurdere den reelle trafik i shoppingområder, togstationer, passager, gader og mange andre offentlige steder. Vores sporing kan også være til stor hjælp til at kontrollere adgangen til eksempelvis et lager eller andre vigtige kontorlokaler. Og selvfølgelig hjælper sporing af mennesker og ansigter med at løse sikkerhedsproblemer. Fanget nogen i at stjæle fra din butik? Tilføj hans PersonID, som blev returneret af Vision, til sortlisten for din videoanalysesoftware, og næste gang vil systemet straks advare sikkerheden, hvis denne type dukker op igen.

2.4. I handelen

Detail- og diverse servicevirksomheder er interesserede i køgenkendelse. Ved hjælp af Vision kan du genkende, at dette ikke er en tilfældig skare af mennesker, men en kø, og bestemme dens længde. Og så informerer systemet de ansvarlige om en kø, så de kan finde ud af situationen: Enten er der tilstrømning af besøgende, og der skal tilkaldes yderligere medarbejdere, eller også sløver nogen med deres arbejdsopgaver.

En anden interessant opgave er at adskille virksomhedens medarbejdere i hallen fra besøgende. Typisk er systemet trænet til at adskille genstande, der bærer bestemt tøj (dresscode) eller med nogle karakteristiske træk (brandet tørklæde, badge på brystet og så videre). Dette hjælper til mere præcist at vurdere tilstedeværelsen (så medarbejderne ikke "puster" statistikken over folk i hallen ved deres blotte tilstedeværelse).

Ved hjælp af ansigtsgenkendelse kan du også evaluere dit publikum: hvad er de besøgendes loyalitet, det vil sige, hvor mange mennesker vender tilbage til din virksomhed og med hvilken hyppighed. Beregn, hvor mange unikke besøgende der kommer til dig om måneden. For at optimere omkostningerne ved tiltrækning og fastholdelse kan du også finde ud af ændringen i trafikken afhængigt af ugedagen og endda tidspunktet på dagen.

Franchisegivere og kædevirksomheder kan bestille en fotovurdering af kvaliteten af ​​branding af forskellige detailforretninger: tilstedeværelsen af ​​logoer, skilte, plakater, bannere og så videre.

2.5. Med transport

Et andet eksempel på at sikre sikkerhed ved hjælp af videoanalyse er at identificere efterladte genstande i hallerne i lufthavne eller togstationer. Vision kan trænes til at genkende genstande fra hundredvis af klasser: møbler, tasker, kufferter, paraplyer, forskellige typer tøj, flasker og så videre. Hvis dit videoanalysesystem registrerer et ejerløst objekt og genkender det ved hjælp af Vision, sender det et signal til sikkerhedstjenesten. En lignende opgave er forbundet med automatisk registrering af usædvanlige situationer på offentlige steder: nogen føler sig syg, eller nogen ryger det forkerte sted, eller en person falder på skinnerne og så videre - alle disse mønstre kan genkendes af videoanalysesystemer gennem Vision API.

2.6. Dokument flow

En anden interessant fremtidig anvendelse af Vision, som vi i øjeblikket er ved at udvikle, er dokumentgenkendelse og deres automatiske parsing i databaser. I stedet for manuelt at indtaste (eller endnu værre, indtaste) endeløse serier, numre, udstedelsesdatoer, kontonumre, bankoplysninger, fødselsdatoer og -steder og mange andre formaliserede data, kan du scanne dokumenter og automatisk sende dem over en sikker kanal via API til skyen, hvor systemet vil genkende disse dokumenter på farten, parse dem og returnere et svar med data i det krævede format til automatisk indtastning i databasen. I dag ved Vision allerede, hvordan man klassificerer dokumenter (inklusive PDF) - skelner mellem pas, SNILS, TIN, fødselsattester, vielsesattester og andre.

Naturligvis er det neurale netværk ikke i stand til at håndtere alle disse situationer ud af boksen. I hvert tilfælde bygges en ny model til en specifik kunde, mange faktorer, nuancer og krav tages i betragtning, datasæt udvælges, og der udføres iterationer af træning, test og konfiguration.

3. API-driftsskema

Visions "indgangsport" for brugere er REST API. Den kan modtage billeder, videofiler og udsendelser fra netværkskameraer (RTSP-streams) som input.

For at bruge Vision skal du bruge register i Mail.ru Cloud Solutions-tjenesten og modtage adgangstokens (client_id + client_secret). Brugergodkendelse udføres ved hjælp af OAuth-protokollen. Kildedataene i kroppen af ​​POST-anmodninger sendes til API'et. Og som svar modtager klienten fra API'en et genkendelsesresultat i JSON-format, og svaret er struktureret: det indeholder information om de fundne objekter og deres koordinater.

Med skæg, mørke briller og i profil: vanskelige situationer for computersyn

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 indeholder en interessant parameter awesomeness - dette er den betingede "coolness" af et ansigt på et billede, med dets hjælp vælger vi det bedste billede af et ansigt fra sekvensen. Vi trænede et neuralt netværk til at forudsige sandsynligheden for, at et billede vil blive like på sociale netværk. Jo bedre kvaliteten af ​​billedet og jo mere smilende ansigtet er, jo større er fantastiskheden.

API Vision bruger et koncept kaldet space. Dette er et værktøj til at skabe forskellige sæt ansigter. Eksempler på mellemrum er sorte og hvide lister, lister over besøgende, medarbejdere, klienter osv. For hver token i Vision kan du oprette op til 10 pladser, hver plads kan have op til 50 tusinde PersonID'er, det vil sige op til 500 tusinde pr. token. Desuden er antallet af tokens per konto ikke begrænset.

I dag understøtter API'en følgende detektions- og genkendelsesmetoder:

  • Recognize/Set - registrering og genkendelse af ansigter. Tildeler automatisk et PersonID til hver unik person, returnerer PersonID og koordinater for de fundne personer.
  • Slet - sletning af et bestemt PersonID fra persondatabasen.
  • Truncate - rydder hele rummet fra PersonID, nyttigt, hvis det blev brugt som et testrum, og du skal nulstille databasen til produktion.
  • Detect - detektering af objekter, scener, nummerplader, vartegn, køer osv. Returnerer klassen af ​​fundne objekter og deres koordinater
  • Registrer for dokumenter - registrerer specifikke typer dokumenter fra Den Russiske Føderation (adskiller pas, SNILS, skatteidentifikationsnummer osv.).

Vi afslutter også snart arbejdet med metoder til OCR, bestemmelse af køn, alder og følelser samt løsning af merchandising-problemer, det vil sige automatisk styring af visning af varer i butikker. Du kan finde komplet API-dokumentation her: https://mcs.mail.ru/help/vision-api

4. Konklusion

Nu kan du gennem den offentlige API få adgang til ansigtsgenkendelse i fotos og videoer; identifikation af forskellige objekter, nummerplader, vartegn, dokumenter og hele scener er understøttet. Anvendelsesscenarier - havet. Kom, test vores service, sæt den til de mest vanskelige opgaver. De første 5000 transaktioner er gratis. Måske vil det være den "manglende ingrediens" til dine projekter.

Du kan øjeblikkeligt få adgang til API'en ved registrering og tilslutning. Vision. Alle Habra-brugere modtager en kampagnekode til yderligere transaktioner. Skriv venligst til mig den e-mailadresse, du brugte til at registrere din konto!

Kilde: www.habr.com

Tilføj en kommentar