Matematikken bak ansiktsgjenkjenning
Pythagoras teorem beskriver forholdet mellom segmentene i en rettvinklet trekant. Hvordan kan det hjelpe å avgjøre om to bilder beskriver det samme ansiktet? Da Kristian Danev våknet i Buenos Aires en februarmorgen i 2018, visste han ikke at det var akkurat denne dagen rettferdigheten ville innhente ham. Da han ble arrestert på flyplassen, hadde han tilbrakt nesten ti år på flukt, som en av Europas mest ettersøkte kriminelle, mistenkt for knivdrapet på en 24 år gammel mann i byen Poděbrady i Tsjekkia i 2008 Opprinnelsen til arrestasjonen var at Danevs ansikt hadde dukket opp i en etterforskning av det argentinske politiet. Ute av stand til å identifisere ham, sendte politiet bildet videre til Interpol, for søk i Interpols ansiktsgjenkjenningsregister. Da søket ga et treff, var det ikke bare en triumf for politiet, men også en fjær i hatten på et eldgammelt matematisk teorem.
Ansiktsgjenkjenning
Vi mennesker kan gjenkjenne et ansikt på et øyeblikk. Men for at en datamaskin skal gjenkjenne et ansikt, må ansiktstrekk konverteres til tall. Denne prosessen kan deles inn i følgende trinn.
- Deteksjon
En algoritme søker i bildet og lokaliserer ansiktet.
- Landemerker
Algoritmen lokaliserer spesielle punkter i ansiktet, såkalte landemerker, for eksempel hakekanten, øyenbrynsbuen eller midten av nesen.
- Ansiktsmål
Ved å bruke landemerkene gjør algoritmen målinger på ansiktet. Den kan for eksempel bestemme avstanden mellom øynene, lengden på nesen eller bredden på munnen.
Disse målingene, i noen algoritmer 128 stykker, er datamaskinens numeriske beskrivelse av det aktuelle ansiktet. Hvert bilde av et ansikt er dermed kodet som en lang rekke tall, hvor hvert tall beskriver en ansiktsdimensjon. Tallstrengen kalles en funksjonsvektor eller deskriptor.
Å være likeverdig
Da Interpol mottok bildet fra det argentinske politiet, var deres oppgave å sammenligne det med ansiktene til ettersøkte kriminelle i databasen deres. Det første trinnet var å beskrive det innkommende bildet med en beskrivelse, en lang rekke tall. Neste trinn var å sammenligne beskrivelsen med beskrivelsene til bildene i databasen. Det kan høres ut som en ganske grei prosess. Hvis beskrivelsene stemmer overens, beskriver de vel den samme personen? Men det er egentlig ikke så enkelt. Deskriptoren beskriver nemlig et enkelt bilde av et ansikt. Men visse faktorer, som avstand til kamera, minespill og lyssetting, gjør at forskjellige bilder av samme person fortsatt har delvis forskjellige deskriptorer. For å få et treff i søket handler det derfor om å finne deskriptorer som er tilstrekkelig like hverandre. Det viser seg at en litt usannsynlig matematisk helt, Pythagoras teorem, kan hjelpe med akkurat det.
Pythagoras formelen
Men vent litt. Pythagoras teorem beskriver forholdet mellom segmentene i en rettvinklet trekant. Hvordan kan det hjelpe å avgjøre om to bilder beskriver det samme ansiktet? Enkelt sagt, hvis to deskriptorer er rimelig like, så er de nær hverandre i vårt univers av deskriptorer. Og å bestemme avstander – det er det Pythagoras’ teorem handler om.
La meg forklare.
Hvis vi plasserer to punkter i et rektangulært koordinatsystem, kan vi bestemme avstanden mellom dem ved hjelp av Pythagoras teorem. Vi betrakter ganske enkelt avstanden mellom punktene som hypotenusen til en rettvinklet trekant. Det gir:
Vi kan beregne avstanden d ved å bruke Pythagoras setning.
Hvis du ser nøye etter, vil du se at lengden på katetrene i trekanten er forskjellen mellom x- og y-koordinatene til de to punktene.
4 – 1 = 3 l.e.
6 – 2 = 4 l.e.
Ved å bruke den observasjonen kan vi formulere den såkalte avstandsformelen. Den viser hvordan du kan beregne avstanden mellom to punkter, hvis du kjenner koordinatene til punktene.
Avstandsformelen i to dimensjoner
Ikke vær skremt. Avstandsformelen ovenfor er bare Pythagoras teorem i fancy dress. Formelen sier at for å beregne avstanden mellom to punkter, regner man først ut forskjellen mellom punktenes respektive koordinater. Deretter kvadrater du forskjellene, legger dem til og tar roten ut av resultatet.
Avstandsformelen fungerer faktisk selv om du ønsker å beregne avstanden mellom to punkter som ligger i rommet, dvs. i tre dimensjoner, med den forskjellen at du har en tredje koordinat å ta hensyn til, en z-koordinat som indikerer høyden på punktet over xy-planet.
Men hvordan kan vi bruke dette til å finne ut om to beskrivelser beskriver det samme ansiktet? Vel, hvis du strekker fantasien litt, kan du tenke på hver deskriptor som et slags «punkt» som har 128 koordinater. Hvis vi vil finne ut om to deskriptorer er rimelig like, kan vi finne ut om de er nær hverandre ved å beregne avstanden mellom dem ved hjelp av avstandsformelen. Eller ja, en versjon av avstandsformelen som tar hensyn til alle 128 koordinater! Hvis avstanden mellom beskrivelsene er liten (mindre enn en terskelverdi som vi bestemte fra begynnelsen), så har vi et treff! Bildene viser trolig samme person. Pythagoras teorem, eller dets fetter avstandsformelen, er en måte å bestemme om to deskriptorer er like. I moderne ansiktsgjenkjenningssystemer er det flere andre måter. Du kan lese mer om dem her.
Nytte
Å bruke ansiktsgjenkjenning er ikke uproblematisk. Det har hendt at folk har blitt feilaktig arrestert, etter at en ansiktsgjenkjenningsalgoritme feilaktig pekte dem ut. Bruk av teknologien i offentlige miljøer kan krenke personvernet vårt. Og det er et faktum at algoritmene er flinkere til å identifisere hvite menn enn kvinner og mørkhudede, noe som er problematisk fra et diskrimineringsperspektiv. Men ideene bak ansiktsgjenkjenning kan også være nyttige. De hjalp politiet i Argentina med å fange Kristian Danev. De brukes til å lokalisere svulster i røntgenbilder og brukes daglig i våre mobiltelefoner og sosiale medier. For eksempel bruker mobilselskaper som Apple ansiktsgjenkjenning som innloggingsmetode. Facebook bruker teknologien til å lokalisere ansikter på bilder, slik at vi kan tagge vennene våre. Og apper for videosamtaler finner konturene av ansiktet ditt slik at du kan bruke morsomme effekter som disse.
Neste gang du bruker en av disse tjenestene kan du sende en tanke til alle dedikerte programmerere, men også en takknemlig tanke til Pythagoras.
Les også: 4 tips for å forstå risiko