Med skägg, mörka glasögon och i profil: svåra situationer för datorseende

Med skägg, mörka glasögon och i profil: svåra situationer för datorseende

Teknologier och modeller för vårt framtida datorseendesystem skapades och förbättrades gradvis och i olika projekt inom vårt företag - i Mail, Cloud, Search. De mognade som god ost eller konjak. En dag insåg vi att våra neurala nätverk visar utmärkta resultat i igenkänning, och vi bestämde oss för att kombinera dem till en enda b2b-produkt - Vision - som vi nu använder själva och erbjuder dig att använda.

Idag fungerar vår datorseendeteknologi på Mail.Ru Cloud Solutions-plattformen framgångsrikt och löser mycket komplexa praktiska problem. Den är baserad på ett antal neurala nätverk som är utbildade på våra datamängder och är specialiserade på att lösa tillämpade problem. Alla tjänster körs på våra serveranläggningar. Du kan integrera det offentliga Vision API i dina applikationer, genom vilket alla funktioner i tjänsten är tillgängliga. API:et är snabbt - tack vare server-GPU:er är den genomsnittliga svarstiden inom vårt nätverk 100 ms.

Gå till katten, det finns en detaljerad berättelse och många exempel på Visions arbete.

Ett exempel på en tjänst där vi själva använder de nämnda ansiktsigenkänningsteknikerna är Händelser . En av dess komponenter är Vision fotoställ, som vi installerar på olika konferenser. Om du närmar dig ett sådant fotoställ, tar ett foto med den inbyggda kameran och anger din e-post, kommer systemet omedelbart att hitta bland de fotografier som du fångade på av personalfotografer på konferensen, och, om så önskas, kommer att skicka de hittade fotografierna till dig via e-post. Och vi pratar inte om iscensatta porträttbilder – Vision känner igen dig även i bakgrunden i en mängd besökare. Naturligtvis är det inte själva fotoställen som känns igen, det är bara surfplattor i vackra stativ som helt enkelt tar bilder av gäster med sina inbyggda kameror och överför information till servrarna, där all igenkänningsmagi sker. Och vi har sett mer än en gång hur överraskande teknikens effektivitet är även bland specialister på bildigenkänning. Nedan kommer vi att prata om några exempel.

1. Vår modell för ansiktsigenkänning

1.1. Neuralt nätverk och bearbetningshastighet

För igenkänning använder vi en modifiering av den neurala nätverksmodellen ResNet 101. Genomsnittlig poolning i slutet ersätts av ett helt anslutet lager, liknande hur det görs i ArcFace. Storleken på vektorrepresentationerna är dock 128, inte 512. Vår träningsuppsättning innehåller cirka 10 miljoner foton av 273 593 personer.

Modellen går mycket snabbt tack vare en noggrant utvald serverkonfigurationsarkitektur och GPU-beräkning. Det tar från 100 ms att få ett svar från API:et på våra interna nätverk – detta inkluderar ansiktsdetektering (upptäcka ett ansikte på ett foto), igenkänning och returnering av PersonID i API-svaret. Med stora mängder inkommande data - foton och videor - kommer det att ta mycket mer tid att överföra datan till tjänsten och att få ett svar.

1.2. Bedömning av modellens effektivitet

Men att bestämma effektiviteten hos neurala nätverk är en mycket tvetydig uppgift. Kvaliteten på deras arbete beror på vilka datamängder som modellerna tränades på och om de var optimerade för att arbeta med specifik data.

Vi började utvärdera noggrannheten hos vår modell med det populära LFW-verifieringstestet, men det är för litet och enkelt. Efter att ha nått 99,8 % noggrannhet är det inte längre användbart. Det finns en bra konkurrens för att utvärdera igenkänningsmodeller - Megaface, där vi successivt nådde 82% rank 1. Megaface-testet består av en miljon fotografier - distraktörer - och modellen borde väl kunna särskilja flera tusen fotografier av kändisar från Facescruben datauppsättning från distraktörer. Men efter att ha rensat Megaface-testet på fel, fann vi att med den rensade versionen uppnår vi en noggrannhet på 98% rang 1 (foton på kändisar är i allmänhet ganska specifika). Därför skapade de ett separat identifieringstest, liknande Megaface, men med fotografier av "vanliga" människor. Sedan förbättrade vi igenkänningsnoggrannheten på våra datauppsättningar och gick långt fram. Dessutom använder vi ett klustringskvalitetstest som består av flera tusen bilder; den simulerar ansiktstaggning i användarens moln. I det här fallet är kluster grupper av liknande individer, en grupp för varje igenkännbar person. Vi kontrollerade kvaliteten på arbetet på riktiga grupper (sant).

Naturligtvis uppstår igenkänningsfel med vilken modell som helst. Men sådana situationer löses ofta genom att finjustera tröskelvärdena för specifika förhållanden (för alla konferenser använder vi samma tröskelvärden, men till exempel för passerkontrollsystem måste vi höja tröskelvärdena rejält så att det blir färre falska positiva). De allra flesta konferensbesökarna kändes igen korrekt av våra Vision-fotobås. Ibland tittade någon på den beskurna förhandsvisningen och sa: "Ditt system gjorde ett misstag, det var inte jag." Sedan öppnade vi fotot i sin helhet, och det visade sig att det verkligen fanns den här besökaren på bilden, bara att vi inte fotograferade honom, utan någon annan, personen råkade bara vara i bakgrunden i oskärpa zonen. Dessutom känner det neurala nätverket ofta korrekt igen även när en del av ansiktet inte är synligt, eller personen står i profil, eller till och med halvt vänd. Systemet kan känna igen en person även om ansiktet är i området för optisk distorsion, till exempel när du fotograferar med en vidvinkellins.

1.3. Exempel på testning i svåra situationer

Nedan finns exempel på hur vårt neurala nätverk fungerar. Bilder skickas till ingången, som hon ska märka med PersonID - en unik identifierare för en person. Om två eller flera bilder har samma ID, visar dessa bilder enligt modellerna samma person.

Låt oss omedelbart notera att vid testning har vi tillgång till olika parametrar och modelltrösklar som vi kan konfigurera för att uppnå ett visst resultat. Det offentliga API:et är optimerat för maximal noggrannhet i vanliga fall.

Låt oss börja med det enklaste, med ansiktsigenkänning framifrån.

Med skägg, mörka glasögon och i profil: svåra situationer för datorseende

Det var för lätt. Låt oss komplicera uppgiften, lägga till ett skägg och en handfull år.

Med skägg, mörka glasögon och i profil: svåra situationer för datorseende

Vissa kommer att säga att detta inte heller var alltför svårt, för i båda fallen är hela ansiktet synligt, och mycket information om ansiktet är tillgänglig för algoritmen. Okej, låt oss göra Tom Hardy till profil. Det här problemet är mycket mer komplext, och vi lade ner mycket ansträngning på att framgångsrikt lösa det samtidigt som vi bibehöll en låg felfrekvens: vi valde en träningsuppsättning, tänkte igenom det neurala nätverkets arkitektur, finslipade förlustfunktionerna och förbättrade förbearbetningen av fotografier.

Med skägg, mörka glasögon och i profil: svåra situationer för datorseende

Låt oss sätta en huvudbonad på honom:

Med skägg, mörka glasögon och i profil: svåra situationer för datorseende

Förresten, detta är ett exempel på en särskilt svår situation, eftersom ansiktet är kraftigt skymt, och på det nedersta fotot finns det också en djup skugga som döljer ögonen. I det verkliga livet ändrar människor väldigt ofta sitt utseende med hjälp av mörka glasögon. Låt oss göra samma sak med Tom.

Med skägg, mörka glasögon och i profil: svåra situationer för datorseende

Okej, låt oss försöka slänga in bilder från olika åldrar, och den här gången kommer vi att experimentera med en annan skådespelare. Låt oss ta ett mycket mer komplext exempel, där åldersrelaterade förändringar är särskilt uttalade. Situationen är inte långsökt, den inträffar ganska ofta när du behöver jämföra fotot i passet med bärarens ansikte. När allt kommer omkring läggs det första fotografiet till i ett pass när ägaren är 20 år gammal, och vid 45 års ålder kan en person förändras mycket:

Med skägg, mörka glasögon och i profil: svåra situationer för datorseende

Tror du att huvudspecialisten på omöjliga uppdrag inte har förändrats mycket med åldern? Jag tror att även ett fåtal personer skulle kombinera topp- och bottenfoton, pojken har förändrats så mycket genom åren.

Med skägg, mörka glasögon och i profil: svåra situationer för datorseende

Neurala nätverk möter förändringar i utseende mycket oftare. Till exempel kan kvinnor ibland ändra sin bild kraftigt med hjälp av kosmetika:

Med skägg, mörka glasögon och i profil: svåra situationer för datorseende

Låt oss nu komplicera uppgiften ännu mer: anta att olika delar av ansiktet är täckta av olika fotografier. I sådana fall kan algoritmen inte jämföra hela prover. Vision hanterar dock situationer som denna bra.

Med skägg, mörka glasögon och i profil: svåra situationer för datorseende

Förresten, det kan finnas många ansikten på ett fotografi, till exempel kan mer än 100 personer rymmas i ett allmänt fotografi av en hall. Detta är en svår situation för neurala nätverk, eftersom många ansikten kan lysas annorlunda, en del oskarpa. Men om bilden är tagen med tillräcklig upplösning och kvalitet (minst 75 pixlar per kvadrat som täcker ansiktet), kommer Vision att kunna upptäcka och känna igen det.

Med skägg, mörka glasögon och i profil: svåra situationer för datorseende

Det speciella med reportagefotografier och bilder från övervakningskameror är att människor ofta är suddiga för att de var oskarpa eller rörde sig i det ögonblicket:

Med skägg, mörka glasögon och i profil: svåra situationer för datorseende

Dessutom kan ljusintensiteten variera mycket från bild till bild. Även detta blir ofta en stötesten, många algoritmer har stora svårigheter att korrekt bearbeta bilder som är för mörka och för ljusa, för att inte tala om att exakt matcha dem. Låt mig påminna dig om att för att uppnå detta resultat måste du konfigurera tröskelvärdena på ett visst sätt; den här funktionen är ännu inte offentligt tillgänglig. Vi använder samma neurala nätverk för alla klienter, det har trösklar som lämpar sig för de flesta praktiska uppgifter.

Med skägg, mörka glasögon och i profil: svåra situationer för datorseende

Vi rullade nyligen ut en ny version av modellen som känner igen asiatiska ansikten med hög noggrannhet. Detta brukade vara ett stort problem, som till och med kallades "maskininlärning" (eller "neurala nätverk") rasism. Europeiska och amerikanska neurala nätverk kände igen kaukasiska ansikten väl, men med mongoloida och negroida ansikten var situationen mycket värre. Sannolikt var situationen precis den motsatta i Kina. Det handlar om träningsdatauppsättningar som speglar de dominerande typerna av människor i ett visst land. Men situationen håller på att förändras, idag är detta problem inte så akut. Syn har inga problem med människor av olika raser.

Med skägg, mörka glasögon och i profil: svåra situationer för datorseende

Ansiktsigenkänning är bara en av många tillämpningar av vår teknik; Vision kan tränas för att känna igen vad som helst. Till exempel registreringsskyltar, inklusive under förhållanden som är svåra för algoritmer: i skarpa vinklar, smutsiga och svårlästa registreringsskyltar.

Med skägg, mörka glasögon och i profil: svåra situationer för datorseende

2. Praktiska användningsfall

2.1. Fysisk åtkomstkontroll: när två personer använder samma pass

Med hjälp av Vision kan du implementera system för att registrera anställdas ankomst och avgång. Det traditionella systemet baserat på elektroniska pass har uppenbara nackdelar, till exempel kan man passera två personer med en bricka. Om passersystemet (ACS) kompletteras med Vision kommer det ärligt att registrera vem som kom/gick och när.

2.2. Tidsuppföljning

Detta användningsfall för Vision är nära relaterat till det föregående. Om du kompletterar åtkomstsystemet med vår ansiktsigenkänningstjänst kommer det inte bara att kunna upptäcka överträdelser av åtkomstkontroll, utan också registrera den faktiska närvaron av anställda i byggnaden eller anläggningen. Med andra ord, Vision hjälper dig ärligt att ta hänsyn till vem som kom till jobbet och lämnade vid vilken tidpunkt, och vem som helt och hållet hoppade över jobbet, även om hans kollegor täckte upp honom inför hans överordnade.

2.3. Videoanalys: Människospårning och säkerhet

Genom att spåra människor som använder Vision kan du noggrant bedöma den verkliga trafiken på shoppingområden, tågstationer, passager, gator och många andra offentliga platser. Vår spårning kan också vara till stor hjälp för att kontrollera tillträde till till exempel ett lager eller andra viktiga kontorslokaler. Och naturligtvis hjälper det att spåra människor och ansikten att lösa säkerhetsproblem. Fångade någon som stal från din butik? Lägg till hans PersonID, som returnerades av Vision, till svartlistan för din videoanalysprogramvara, och nästa gång kommer systemet omedelbart att varna säkerheten om denna typ dyker upp igen.

2.4. I handeln

Detaljhandel och olika tjänsteföretag är intresserade av köigenkänning. Med hjälp av Vision kan du känna igen att detta inte är en slumpmässig skara människor, utan en kö, och bestämma dess längd. Och sedan informerar systemet de ansvariga om en kö så att de kan reda ut situationen: antingen är det en tillströmning av besökare och ytterligare arbetstagare måste tillkallas, eller så slarvar någon med sina arbetsuppgifter.

En annan intressant uppgift är att separera företagsanställda i hallen från besökare. Vanligtvis är systemet tränat för att separera föremål som bär vissa kläder (klädkod) eller med någon utmärkande egenskap (märkescarf, märke på bröstet och så vidare). Detta hjälper till att mer exakt bedöma närvaro (så att anställda inte "blåser upp" statistiken för människor i hallen genom sin blotta närvaro).

Med hjälp av ansiktsigenkänning kan du också utvärdera din publik: vad är besökarnas lojalitet, det vill säga hur många människor som återvänder till din anläggning och med vilken frekvens. Beräkna hur många unika besökare som kommer till dig per månad. För att optimera kostnaderna för attraktion och retention kan du också ta reda på förändringen i trafik beroende på veckodag och till och med tid på dygnet.

Franchisegivare och kedjeföretag kan beställa en bedömning baserad på fotografier av kvaliteten på varumärket i olika butiker: närvaron av logotyper, skyltar, affischer, banderoller och så vidare.

2.5. Med transport

Ett annat exempel på att säkerställa säkerhet med hjälp av videoanalys är att identifiera övergivna föremål i hallarna på flygplatser eller tågstationer. Vision kan tränas för att känna igen föremål från hundratals klasser: möbler, väskor, resväskor, paraplyer, olika typer av kläder, flaskor och så vidare. Om ditt videoanalyssystem upptäcker ett ägarlöst objekt och känner igen det med Vision, skickar det en signal till säkerhetstjänsten. En liknande uppgift är förknippad med automatisk upptäckt av ovanliga situationer på offentliga platser: någon känner sig sjuk, eller någon röker på fel ställe, eller en person faller på rälsen, och så vidare - alla dessa mönster kan kännas igen av videoanalyssystem genom Vision API.

2.6. Dokumentflöde

En annan intressant framtida tillämpning av Vision som vi för närvarande utvecklar är dokumentigenkänning och deras automatiska analys i databaser. Istället för att manuellt mata in (eller ännu värre, skriva in) oändliga serier, nummer, utfärdandedatum, kontonummer, bankuppgifter, födelsedatum och födelseorter och många andra formaliserade data, kan du skanna dokument och automatiskt skicka dem via en säker kanal via API till molnet, där systemet kommer att känna igen dessa dokument i farten, analysera dem och returnera ett svar med data i det format som krävs för automatisk inmatning i databasen. Idag vet Vision redan hur man klassificerar dokument (inklusive PDF) - skiljer mellan pass, SNILS, TIN, födelsebevis, vigselbevis och andra.

Naturligtvis kan det neurala nätverket inte hantera alla dessa situationer direkt. I varje fall byggs en ny modell för en specifik kund, många faktorer, nyanser och krav tas i beaktande, datamängder väljs och iterationer av utbildning, testning och konfiguration utförs.

3. API-driftschema

Visions "ingång" för användare är REST API. Den kan ta emot foton, videofiler och sändningar från nätverkskameror (RTSP-strömmar) som indata.

För att använda Vision behöver du register i Mail.ru Cloud Solutions-tjänsten och ta emot åtkomsttokens (client_id + client_secret). Användarautentisering utförs med OAuth-protokollet. Källdata i kropparna för POST-förfrågningar skickas till API:t. Och som svar får klienten från API:t ett igenkänningsresultat i JSON-format, och svaret är strukturerat: det innehåller information om de hittade objekten och deras koordinater.

Med skägg, mörka glasögon och i profil: svåra situationer för datorseende

Exempel 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 innehåller en intressant parameter awesomeness - detta är den villkorliga "coolness" av ett ansikte i ett foto, med dess hjälp väljer vi det bästa bilden av ett ansikte från sekvensen. Vi tränade ett neuralt nätverk för att förutsäga sannolikheten att ett foto kommer att gillas på sociala nätverk. Ju bättre kvalitet på fotot och ju mer leende ansiktet, desto större häftighet.

API Vision använder ett koncept som kallas rymd. Detta är ett verktyg för att skapa olika uppsättningar ansikten. Exempel på utrymmen är svarta och vita listor, listor över besökare, anställda, kunder etc. För varje token i Vision kan du skapa upp till 10 utrymmen, varje utrymme kan ha upp till 50 tusen PersonID, det vill säga upp till 500 tusen per token. Dessutom är antalet tokens per konto inte begränsat.

Idag stöder API:n följande detektering och igenkänningsmetoder:

  • Recognize/Set - detektering och igenkänning av ansikten. Tilldelar automatiskt ett PersonID till varje unik person, returnerar PersonID och koordinater för de hittade personerna.
  • Ta bort - ta bort ett specifikt PersonID från persondatabasen.
  • Truncate - rensar hela utrymmet från PersonID, användbart om det användes som ett testutrymme och du behöver återställa databasen för produktion.
  • Detektera - detektering av objekt, scener, registreringsskyltar, landmärken, köer, etc. Returnerar klassen av hittade objekt och deras koordinater
  • Upptäck för dokument - upptäcker specifika typer av dokument från Ryska federationen (särskiljer pass, SNILS, skatteidentifikationsnummer, etc.).

Vi kommer också snart att avsluta arbetet med metoder för OCR, bestämma kön, ålder och känslor samt lösa merchandisingproblem, det vill säga för att automatiskt styra visningen av varor i butik. Du kan hitta fullständig API-dokumentation här: https://mcs.mail.ru/help/vision-api

4. slutsats

Nu, genom det offentliga API:et, kan du få tillgång till ansiktsigenkänning i foton och videor; identifiering av olika objekt, registreringsskyltar, landmärken, dokument och hela scener stöds. Tillämpningsscenarier - havet. Kom, testa vår tjänst, ställ in de svåraste uppgifterna. De första 5000 transaktionerna är gratis. Kanske kommer det att vara den "saknade ingrediensen" för dina projekt.

Du kan omedelbart komma åt API:t vid registrering och anslutning. Vision. Alla Habra-användare får en kampanjkod för ytterligare transaktioner. Vänligen skriv till mig den e-postadress du använde för att registrera ditt konto!

Källa: will.com

Lägg en kommentar