Serhii Maksymenko,
Data Science Solution Architect

Forsøgsgenkendelsesteknologi fremstår i et andet lys i dag. Anvendelsestilfælde omfatter en bred anvendelse fra kriminalitetsdetektion til identifikation af genetiske sygdomme.

Mens regeringer over hele verden har investeret i ansigtsgenkendelsessystemer, har nogle amerikanske byer som Oakland, Somerville og Portland forbudt det på grund af bekymringer om borgerrettigheder og privatlivets fred.

Hvad er det – en tidsindstillet bombe eller et teknologisk gennembrud? Denne artikel åbner op for, hvad ansigtsgenkendelse er ud fra et teknologisk perspektiv, og hvordan deep learning øger dens kapacitet. Kun ved at indse, hvordan ansigtsgenkendelsesteknologien fungerer indefra og ud, er det muligt at forstå, hvad den er i stand til.

Opdateret 06/09/2020:

Hvordan Deep Learning kan modernisere ansigtsgenkendelsessoftware

Download PDF

Ved at klikke på “GET PDF”-knappen nedenfor giver du dit samtykke og giver os ret til at behandle de personoplysninger, som du har angivet i felterne ovenfor. Dine personlige data kan bruges til profilering i vores kundebase og til at kontakte dig med forretningstilbud. Du har til enhver tid ret til at tilbagekalde dit samtykke ved at sende en anmodning til [email protected].

Tak!

Url’en til at downloade PDF-filen blev sendt til din e-mail

Ok

Hvordan virker ansigtsgenkendelse?

Den computeralgoritme i ansigtsgenkendelsessoftware minder lidt om menneskelig visuel genkendelse. Men hvis mennesker lagrer visuelle data i en hjerne og automatisk genkalder visuelle data, når de har brug for dem, skal computere anmode om data fra en database og matche dem for at identificere et menneskeligt ansigt.

I en nøddeskal kan man sige, at et computersystem, der er udstyret med et kamera, registrerer og identificerer et menneskeligt ansigt og uddrager ansigtstræk som f.eks. afstanden mellem øjnene, længden af en næse, formen af panden og kindbenene. Derefter genkender systemet ansigtet og matcher det med billeder, der er gemt i en database.

Den traditionelle ansigtsgenkendelsesteknologi er dog ikke helt perfekt endnu. Den har både styrker og svagheder:

Styrke

Kontaktløs biometrisk identifikation

Op til et sekund databehandling

Kompatibilitet med de fleste kameraer

Den nemme integration

Svagheder

Tvillinger og racebias

Problemer med databeskyttelse

Præsentationsangreb (PA)

Lav nøjagtighed under dårlige lysforhold

Realisering af svaghederne ved ansigtsgenkendelsessystemer, gik datalogerne videre. Ved at anvende traditionelle computer vision-teknikker og deep learning-algoritmer finjusterede de ansigtsgenkendelsessystemet for at forhindre angreb og øge nøjagtigheden. Sådan fungerer en teknologi til bekæmpelse af ansigtssvindel.

Sådan opgraderer deep learning ansigtsgenkendelsessoftware

Deep learning er en af de mest nye måder at forbedre ansigtsgenkendelsesteknologien på. Ideen er at udtrække ansigtsindlejringer fra billeder med ansigter. Sådanne ansigtsindlejringer vil være unikke for forskellige ansigter. Og træning af et dybt neuralt netværk er den mest optimale måde at udføre denne opgave på.

Afhængigt af en opgave og tidsrammer er der to almindelige metoder til at bruge deep learning til ansigtsgenkendelsessystemer:

Brug på forhånd trænede modeller som f.eks. dlib, DeepFace, FaceNet og andre. Denne metode tager mindre tid og kræfter, fordi forudtrænede modeller allerede har et sæt algoritmer til ansigtsgenkendelsesformål. Vi kan også finjustere prætrænede modeller for at undgå bias og lade ansigtsgenkendelsessystemet fungere korrekt.

Udvikle et neuralt netværk fra bunden. Denne metode er velegnet til komplekse ansigtsgenkendelsessystemer, der har funktionalitet til flere formål. Den tager mere tid og kræfter og kræver millioner af billeder i træningsdatasættet i modsætning til en forudtrænet model, som kun kræver tusindvis af billeder i tilfælde af transfer learning.

Men hvis ansigtsgenkendelsessystemet indeholder unikke funktioner, kan det være en optimal måde i det lange løb. De vigtigste punkter, man skal være opmærksom på, er:

  • Det korrekte valg af CNN-arkitektur og tabsfunktion
  • Optimering af inferenstid
  • Kraften af en hardware

Det anbefales at bruge konvolutionelle neurale netværk (CNN), når man udvikler en netværksarkitektur, da de har vist sig at være effektive til billedgenkendelses- og klassificeringsopgaver. For at opnå de forventede resultater er det bedre at bruge en generelt accepteret neuronalt netværksarkitektur som grundlag, f.eks. ResNet eller EfficientNet.

Når man træner et neuralt netværk med henblik på udvikling af software til ansigtsgenkendelse, bør man i de fleste tilfælde minimere fejlene. Her er det afgørende at overveje tabsfunktioner, der anvendes til beregning af fejl mellem det reelle og det forudsagte output. De mest almindeligt anvendte funktioner i ansigtsgenkendelsessystemer er triplet tab og AM-Softmax.

  • Den triplet tabsfunktion indebærer, at man har tre billeder af to forskellige personer. Der er to billeder – anker og positivt – for den ene person, og det tredje billede – negativt – for den anden person. Netværksparametrene læres således, at de samme personer bringes tættere på hinanden i funktionsrummet og adskiller forskellige personer.
  • AM-Softmax-funktionen er en af de nyeste modifikationer af standard softmax-funktionen, som anvender en særlig regulering baseret på en additiv margin. Den gør det muligt at opnå en bedre adskillelse af klasserne og forbedrer derfor nøjagtigheden af ansigtsgenkendelsessystemet.

Der er også flere metoder til at forbedre et neuralt netværk. I ansigtsgenkendelsessystemer er de mest interessante viden-destillation, transfer learning, kvantisering og dybde-separable convolutions.

  • Knowledge distillation involverer to netværk af forskellig størrelse, når et stort netværk underviser sin egen mindre variation. Den vigtigste værdi er, at efter træningen arbejder det mindre netværk hurtigere end det store og giver det samme resultat.
  • Transfer learning-tilgangen gør det muligt at forbedre nøjagtigheden ved at træne hele netværket eller kun visse lag på et bestemt datasæt. Hvis ansigtsgenkendelsessystemet f.eks. har problemer med racebias, kan vi tage et bestemt sæt billeder, lad os sige billeder af kinesere, og træne netværket for at opnå en højere nøjagtighed.
  • Kvantiseringsmetoden forbedrer et neuralt netværk for at opnå en højere behandlingshastighed. Ved at tilnærme et neuralt netværk, der anvender flydende tal, til et neuralt netværk med tal med lav bitbredde, kan vi reducere hukommelsesstørrelsen og antallet af beregninger.
  • Depthwise separable convolutions er en klasse af lag, som gør det muligt at opbygge CNN med et meget mindre sæt parametre sammenlignet med standard-CNNN’er. Selv om der er tale om et lille antal beregninger, kan denne funktion forbedre ansigtsgenkendelsessystemet, så det er egnet til mobile vision-applikationer.

Det vigtigste element i deep learning-teknologier er kravet om højtydende hardware. Når der anvendes dybe neurale netværk til udvikling af software til ansigtsgenkendelse, er målet ikke kun at forbedre genkendelsesnøjagtigheden, men også at reducere svartiden. Derfor er GPU, for eksempel, mere egnet til deep learning-drevne ansigtsgenkendelsessystemer end CPU.

Sådan implementerede vi deep learning-drevne ansigtsgenkendelsesapp

Da vi udviklede Big Brother (en demo-kamera-app) hos MobiDev, var vores mål at skabe biometrisk verifikationssoftware med videostreaming i realtid. Da Big Brother er en lokal konsol-app til Ubuntu og Raspbian, er den skrevet i Golang og konfigureret med Local Camera ID og Camera Reader-type via JSON-konfigurationsfilen. Denne video beskriver, hvordan Big Brother fungerer i praksis:

Fra indersiden består Big Brother-appens arbejdscyklus af:

1. Ansigtsdetektion

App’en registrerer ansigter i en videostrøm. Når ansigtet er opfanget, beskæres billedet og sendes til backend via HTTP-formdataforespørgsel. Backend-API’et gemmer billedet til et lokalt filsystem og gemmer en post i Detection Log med et personID.

Backend’en anvender Golang og MongoDB Collections til at gemme medarbejderdata. Alle API-forespørgsler er baseret på RESTful API.

2. Øjeblikkelig ansigtsgenkendelse

Backenden har en baggrundsarbejder, der finder nye uklassificerede poster og bruger Dlib til at beregne den 128-dimensionale deskriptorvektor af ansigtsegenskaber. Hver gang en vektor beregnes, sammenlignes den med flere referenceansigtsbilleder ved at beregne den euklidiske afstand til hver egenskabsvektor for hver person i databasen og finde et match.

Hvis den euklidiske afstand til den detekterede person er mindre end 0,6, indsætter arbejderen et personID i Detection Log og markerer den som klassificeret. Hvis afstanden er større end 0,6, opretter den et nyt personID til loggen.

3. Opfølgningshandlinger: advarsel, give adgang og andet

Billeder af en uidentificeret person sendes til den tilsvarende leder med meddelelser via chatbots i messengers. I Big Brother-appen brugte vi Microsoft Bot Framework og Python-baserede Errbot, hvilket gjorde det muligt for os at implementere advarsels-chatbotten inden for fem dage.

Efterfølgende kan disse poster administreres via administrationspanelet, som gemmer billeder med ID’er i databasen. Ansigtsgenkendelsessoftwaren fungerer i realtid og udfører ansigtsgenkendelsesopgaver med det samme. Ved at udnytte Golang og MongoDB Collections til lagring af medarbejderdata indtastede vi ID-databasen, herunder 200 poster.

Sådan er Big Brother-appen til ansigtsgenkendelse designet:

I tilfælde af skalering op til 10.000 poster vil vi anbefale at forbedre ansigtsgenkendelsessystemet for at bevare en høj genkendelseshastighed i backend. En af de optimale måder er at anvende parallelisering. Ved at opsætte en load balancer og bygge flere web workers kan vi sikre korrekt arbejde for en backend-del og optimal hastighed for et helt system.

Andre Deep Learning-baserede genkendelsesanvendelsestilfælde

Forsynsgenkendelse er ikke den eneste opgave, hvor deep learning-baseret softwareudvikling kan forbedre ydeevnen. Andre eksempler omfatter:

Maskeret ansigtsdetektion og -genkendelse

Siden COVID-19 fik folk i mange lande til at bære ansigtsmasker, blev ansigtsgenkendelsesteknologien mere avanceret. Ved hjælp af den dybe indlæringsalgoritme baseret på konvolutionelle neurale netværk kan kameraer nu genkende ansigter, der er dækket af masker. Datavidenskabsingeniører anvender sådanne algoritmer som ansigtsøjebaserede multi-granularitets- og periokulære genkendelsesmodeller for at forbedre ansigtsgenkendelsessystemets kapacitet. Ved at identificere ansigtstræk som pande, ansigtskontur, øjen- og periokulære detaljer, øjenbryn, øjne og kindben gør disse modeller det muligt at genkende maskerede ansigter med op til 95 % nøjagtighed.

Et godt eksempel på et sådant system er den ansigtsgenkendelsesteknologi, der er skabt af en af de kinesiske virksomheder. Systemet består af to algoritmer: Deep Learning-baseret ansigtsgenkendelse og temperaturmåling med infrarød termisk billedbehandling. Når personer med ansigtsmasker står foran kameraet, uddrager systemet ansigtstræk og sammenligner dem med eksisterende billeder i databasen. Samtidig måler den infrarøde temperaturmålingsmekanisme temperaturen og registrerer således personer med unormale temperaturer.

Detektion af defekter

I de sidste par år har producenterne brugt AI-baseret visuel inspektion til detektion af defekter. Udviklingen af deep learning-algoritmer gør det muligt for dette system at definere de mindste ridser og revner automatisk, så man undgår menneskelige faktorer.

Detektion af kropsafvigelser

Den israelskbaserede virksomhed Aidoc har udviklet en deep learning-drevet løsning til radiologi. Ved at analysere medicinske billeder registrerer dette system abnormiteter i brystkassen, halshvirvelsøjlen, hovedet og maven.

Taleridentifikation

Taleridentifikationsteknologi skabt af Phonexia-virksomheden identificerer også højttalere ved at udnytte den metriske læringstilgang. Systemet genkender talere ved hjælp af stemmen og producerer matematiske modeller af menneskelig tale kaldet voiceprints. Disse stemmeaftryk lagres i databaser, og når en person taler, identificerer højttalerteknologien det unikke stemmeaftryk.

Emotionsgenkendelse

Genkendelse af menneskelige følelser er en opgave, der kan udføres i dag. Ved at spore et ansigts bevægelser via et kamera kategoriserer emotionsgenkendelsesteknologien menneskelige følelser. Den dybe indlæringsalgoritme identificerer landmærkepunkter i et menneskeligt ansigt, registrerer et neutralt ansigtsudtryk og måler afvigelser i ansigtsudtryk, der genkender mere positive eller negative ansigtsudtryk.

Aktionsgenkendelse

Visual One company, som er leverandør af Nest Cams, drev deres produkt med AI. Ved at udnytte dybe indlæringsteknikker finjusterede de Nest Cams til ikke kun at genkende forskellige objekter som mennesker, kæledyr, biler osv. men også til at identificere handlinger. Sættet af handlinger, der skal genkendes, kan tilpasses og vælges af brugeren. For eksempel kan et kamera genkende en kat, der kradser i døren, eller et barn, der leger med komfuret.

Hvis man skal opsummere, er dybe neurale netværk et kraftfuldt værktøj for menneskeheden. Og kun et menneske bestemmer, hvilken teknologisk fremtid der kommer næste gang.

Hvordan Deep Learning kan modernisere ansigtsgenkendelsessoftware

Download PDF

Ved at klikke på knappen “GET PDF” nedenfor giver du dit samtykke og giver os ret til at behandle de personoplysninger, som du har angivet i felterne ovenfor. Dine personlige data kan bruges til profilering i vores kundebase og til at kontakte dig med forretningstilbud. Du har til enhver tid ret til at tilbagekalde dit samtykke ved at sende en anmodning til [email protected].

Tak!

Url’en til at downloade PDF-filen blev sendt til din e-mail

Ok

admin

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.

lg