Ansiktsgjenkjenning og teknologien bak
Ansiktsgjenkjenning og teknologien bak
Ansiktsgjenkjenning og teknologien bak. Bruker kunstig intelligens (AI) til å identifisere og tolke ansiktstrekk for å gjenkjenne enkeltpersoner.
Her er en generell forklaring på hvordan AI-systemer kan bruke og tolke ansiktsgjenkjenning.
Datainnsamling
AI-systemer som driver med ansiktsgjenkjenning trenger store mengder data for trening. Dette kan inkludere bilder og videoer som inneholder ansikter fra ulike kilder, som for eksempel bilder fra sosiale medier eller overvåkningskameraer.
Ansiktssporing
Først og fremst må AI-systemet kunne oppdage og spore ansikter i en gitt bilde- eller videoramme. Dette kan gjøres ved hjelp av teknikker som ansiktssporing, hvor man identifiserer ansiktsområder basert på kjennetegn som ansiktskonturer, øyne, nese og munn.
Funksjonsutvinning
Etter å ha identifisert ansiktene, ekstraherer AI-systemet ulike funksjoner eller karakteristikker fra ansiktene.
Dette kan omfatte punkter som øyenbrynens posisjon, formen på øynene, neseformen og avstanden mellom forskjellige ansiktstrekk. Disse funksjonene kan brukes til å danne en unik representasjon av hvert ansikt.
Lagring og sammenligning
De ekstraherte funksjonene blir typisk konvertert til en numerisk representasjon og lagret i en database. Når et nytt bilde eller en ny video blir presentert for AI-systemet, blir funksjonene også ekstrahert fra dette og sammenlignet med de som allerede er lagret. Dette gjøres vanligvis ved hjelp av algoritmer for sammenligning av ansiktstrekk, som for eksempel en metode kjent som «euclidean distance» eller «cosine similarity».
Beslutningstaking
Basert på sammenligningen genererer AI-systemet en beslutning om hvorvidt ansiktet som blir analysert samsvarer med noen av de ansiktene som er lagret i databasen. Dette kan være en enkel «ja/nei»-beslutning eller en rangering som indikerer hvor sannsynlig det er at ansiktet tilhører en bestemt person.
Det er viktig å merke seg at ansiktsgjenkjenningsteknologier kan variere i kompleksitet og nøyaktighet, og det finnes ulike metoder og tilnærminger som kan brukes av ulike AI-systemer. Noen ansiktsgjenkjenningssystemer kan også ha innebygde muligheter til å oppdage og tolke følelser, aldring eller kjønn basert på ansiktsgjenkjenning fungerer på et teknisk nivå.
Ansiktssporing
Ansiktsgjenkjenning starter med ansiktssporing, hvor AI-systemet må identifisere og lokalisere ansiktene i et bilde eller en video. Dette kan gjøres ved hjelp av objektdeteksjonsteknikker, for eksempel Haar Cascades eller mer avanserte metoder som R-CNN (Region-based Convolutional Neural Network) eller SSD (Single Shot MultiBox Detector).
Disse teknikkene bruker maskinlæring for å lære å skille ansikter fra andre objekter i en bildestrøm.
Funksjonsutvinning
Når ansiktene er lokalisert, går AI-systemet videre til funksjonsutvinning. Det finnes flere tilnærminger til dette, men en vanlig metode er å bruke en type dyp nevralt nettverk kalt et convolutivt nevralt nettverk (CNN). CNN-en kan trenes til å lære representative funksjoner fra ansiktsbilder ved å eksponeres for store mengder treningsdata. CNN-en tar inn ansiktsbildet som inndata og gjennomgår flere lag av konvolusjon, pooling og fullt tilkoblede lag for å utvinne hierarkiske funksjoner fra bildet.
Ansiktsembedding
Etter funksjonsutvinning blir resultatene fra CNN-en normalisert og omdannet til en vektorrepresentasjon, ofte kalt en «ansiktsembedding». En ansiktsembedding er en numerisk representasjon av ansiktet som fanger opp de viktige funksjonene og skiller det fra andre ansikter. Ansiktsembeddinger er ofte vektorer med høy dimensjonalitet.
Lagring og sammenligning
Ansitkene, blir lagret i en database sammen med tilhørende identifikatorer eller etiketter som identifiserer personen som er knyttet til ansiktet. Når en person blir registrert. Sammenlignes den nye genererte ansiktsembeddingen med de som er lagret i databasen.
Dette gjøres ved å beregne avstanden eller likheten mellom de to vektorene. Vanlige metoder for beregning av avstand inkluderer euclidean distance eller cosine similarity. Hvis avstanden eller likheten er under en forhåndsdefinert terskelverdi, blir ansiktet ansett som en kamp.
Treningsprosess
For å trene et ansiktsgjenkjenningssystem, trenger man en stor mengde merkede ansiktsbilder. Merkingen innebærer å knytte hver ansiktsembedding til en spesifikk identitet. Deretter bruker man maskinlæringsalgoritmer
Ansiktsembedding er en numerisk representasjon av ansiktet som fanger opp de viktige funksjonene og skiller det fra andre ansikter. Denne representasjonen er en vektor med høy dimensjonalitet som kan brukes til å sammenligne og identifisere ansikter.
Generere ansiktsembedding
For å generere ansiktsembedding bruker man vanligvis dype nevrale nettverk, spesielt convoluted neural networks (CNNs). CNN-teknologien, er godt egnet til å lære å gjenkjenne ansiktstrekk og generere representative funksjoner.
Her er en generell oversikt over hvordan ansiktsembedding genereres ved hjelp av
CNN-arkitektur
Man bruker en CNN-arkitektur, som for eksempel VGGNet, InceptionNet eller ResNet. Disse nettverkene består av flere lag med konvolusjonelle lag, pooling-lag og fullt tilkoblede lag, som er designet for å lære komplekse funksjoner fra bilder.
Treningsdata
For å trene CNN-en trenger man et stort datasett med ansiktsbilder. Datasettet kan inneholde bilder av forskjellige personer og variasjoner i ansiktsuttrykk, vinkler, lysforhold osv. Disse bildene må merkes med de riktige identitetsetikettene for å kunne trene CNN-en overvåket.
Foroverpassering
Ansiktsbildet blir matet inn i CNN-en for å gjennomgå en foroverpassering (forward pass) gjennom nettverket. Dette innebærer at bildet passerer gjennom de forskjellige lagene i nettverket, og de konvolusjonelle lagene ekstraherer gradvis funksjoner og mønstre fra bildet.
Funksjonsutvinning
I de konvolusjonelle lagene lærer CNN-en å gjenkjenne enkle funksjoner som kanter og teksturer i de tidlige lagene, og mer komplekse funksjoner som øyne, nese og munn i de dypere lagene. Denne gradvise læringen gjør at nettverket kan fange opp viktige ansiktstrekk.
Utgangslag
Den siste delen av CNN-en består vanligvis av fullt tilkoblede lag som genererer selve ansiktsembeddingen. Disse lagene tar output fra de tidligere lagene og transformerer dem til en vektorrepresentasjon. Vektoren inneholder tall som representerer ansiktets egenskaper og er ofte høydimensjonal.
Normalisering:
Ansiktsembeddingen kan normaliseres for å sikre at den har en enhetslengde. Dette kan gjøres ved å dele den resulterende vektoren med dens euklidske norm, slik at vektoren blir normalisert til en enhetslengde. Dette gjør at sammenligninger mellom ansiktsembeddinger kan være basert på vinklene mellom dem, i stedet for størrelsen på vektorene.
Optimalisering
For å trene CNN-en, brukes en optimaliseringsalgoritme, for eksempel stokastisk gradientavstigning (SGD), for å justere vektene i nettverket basert på en kostnadsfunksjon. Kostnadsfunksjonen sammenligner den genererte ansiktsembeddingen med den riktige identiteten og måler hvor godt nettverket presterer i forhold til målet om å skille ansikter.
Generering av ansiktsembedding for nye bilder
Et nytt ansiktsbilde passerer gjennom den trenede CNN-en ved å gjennomgå en foroverpassering. De siste lagene av nettverket genererer ansiktsembeddingen for det nye bildet. Slik trenes ansiktsembeddingen.
Ansiktsgjenkjenningsalgoritme
Den metoden som er beskrevet ovenfor kalles. DeepFace er en ansiktsgjenkjenningsalgoritme som er utviklet av Facebook AI Research (FAIR). første gangen den ble introdusert var i, 2014 og er designet for å identifisere og gjenkjenne ansikter i digitale bilder med høy nøyaktighet.
Læringsteknikker
DeepFace bruker dyp læringsteknikker, innen nevrale nettverk (CNN), for å ekstrahere og analysere ansiktstrekk. Algoritmen er trenes på et stort datasett med millioner av ansiktsbilder fra sosiale nettverk, noe som gjør det mulig for den å lære å skille mellom ulike individer basert på unike kjennetegn i ansiktsstrukturen.
Tidligere ansiktsgjenkjenningsmetoder
Det som skiller DeepFace fra tidligere ansiktsgjenkjenningsmetoder er dens evne til å håndtere variasjoner i ansiktsuttrykk, belysning og vinkel. Algoritmen er i stand til å generere en numerisk representasjon av et ansikt, kalt ansiktsembedding, som kan sammenlignes med andre ansiktsembedding for å avgjøre om to ansikter tilhører samme person eller ikke.
Applikasjoner
DeepFace har blitt anvendt i ulike applikasjoner, inkludert ansiktsgjenkjenning på bilder og videoer, ansiktsautentisering for å låse opp enheter eller gi tilgang til systemer, og i sikkerhetssystemer for overvåkning og identifikasjon. Det har også blitt brukt i forskningssammenheng for å studere ansiktsattributter og sosiale interaksjoner.
Det er viktig å merke seg at DeepFace har også vært gjenstand for kontroverser og bekymringer knyttet til personvern og potensiell misbruk av ansiktsgjenkjennelsesteknologi.
Sammenligning av ansiktsembeddinger
Ansiktsembeddingene kan sammenlignes ved hjelp av forskjellige metoder, for eksempel beregning av euclidean distance eller cosine similarity.
For å avgjøre om to ansiktsembeddinger samsvarer eller ikke, blir avstanden eller likheten mellom dem sammenlignet med en forhåndsdefinert terskelverdi.
Det var en innføring, i hvordan denne teknologien fungerer.