Simovits

Kameraidentifikation från unikt brus i bilder

Bilder som tas med digitala kameror innehåller ett subtilt och unikt mönster i bilden. En rest från imperfektioner i tillverkningsprocessen och skador / smuts som uppkommer under hantering av enheten. Detta är den del av brus i bilden som inte är slumpmässig (“skottbrus”, med Poissonfördelning), utan istället har en förutsägbar struktur (FPN eller “Fixed-Pattern Noise”). 

Exakt hur detta faller ut är för varje kamera helt unikt, och därför kan därför liknas med kamerans fingeravtryck. I denna blogg kommer jag att att ge några exempel på vad man kan användas detta till, samt gå in lite på djupet i hur/varför detta uppkommer.

Användningsområden

Det finns tre huvudsakliga användningsområden för mäta kamerans unika FPN.

Identifiera om en bild har tagits med en viss kamera

Ponera att vi har en gisslansituation. En bild på gisslan tas av förövaren och skickas till offrets familj för utpressning. Om det finns misstankar om möjliga förövare kan FPN från bilden jämföras med tidigare bilder från misstänkta, som t.ex. kan tas från dess sociala media konton. På så vis kan förövare identifieras genom dess kameras FPN.

Figur 1
1: Samma digitala kamera används
2: Semesterbilder
3: Bid op gisslansituation
4: FPN extraheras från bilder
5: Resulterande FPN jämförs

Identifiera om en bild är manipulerad

När bilder manipuleras, framförallt tillägg av nya element, kommer att påverka bildens FPN. Genom att jämföra FPN på bild som påstås vara omanipulerad med ett FPN som extraheras direkt från kameran under kontrollerade former, kan spår av bildmanipulation påvisas. Ofta kan man till och med se exakt vilka delar av bilden som är manipulerade. Se exempel nedan.

Figur 2
1. Median FPN från många bilder med samma kamera
2. Delvis manipulerad bild. I FPN kan ett man skymta effekt av inklippt hatt, inringat i rött.
3. Hel manipulerad bild. FPN ser helt annorlunda ut.

Brusreducering

Inom forskning där bilder analyserad med stor precision finns ett behov att minimera och kompensera för brus i så stor uträckning som möjligt. Inom dessa fält tas specifika kaliberringsbilder för att så exakt som möjligt mäta olika typer av brusnivåer.

Hur fungerar en sensor?

Vad är då de bakomliggande effekter som på vad som ger upphov till denna FPN? I grund handlar det om hur den sensorn fungerar, och dess inneboende imperfektioner. Det finns två typer av sensorer som används inom digitala kameror inom den visuella delen av ljusspektra; Charged Coupled Device (CCD) och Complementary Metal-Oxide Semiconductor (CMOS), där CMOS dominerar konsumentmarknaden, framförallt på grund av lägre pris och lägre energiåtgång. Principerna för FPN uppkomst som beskrivs nedan är dock i stort sett lika mellan de två typerna av sensorer, med ett fåtal undantag.

Problemet som sensorer försöker tackla är: Hur omvandlar man infallande fotoner (ljuspartiklar) till en digital signal? Principen för hur detta sker är konceptuellt enkel med praktiskt svår. En sensorns är uppdelad i pixlar, där målet är att mäta ljusstryka i varje pixel (när vi pratar om hur många megapixlar en kamera har är det alltså denna sensor man pratar om). Process går förenklat till enligt följande steg:

  1. Ljus passerar genom en microlins ovanpå varje pixel där de fokuseras på ett tunt lager kiselkristaller. För färgfoto passerar ljus även genom ett rött. grönt eller blått filter ovanpå varje pixel.  
  2. Kiselkristaller som träffas av synligt ljus avger elektroner.
  3. Elektroner samlas i en ”brunn”i pixeln.
  4. Steg 1-3 pågår under en tid (slutartiden), elektroner ackumuleras i brunnen tills dess att kamerans slutare stängs.  
  5. Mängden elektroner som nu befinner sig i brunnen är proportionell mot styrkan som det infallande ljuset haft. Elektronmängd i sin tur är proportionell mot elektrisk laddning. Genom att mäta laddningen i varje pixel får man något som är proportionellt mot ljusstyrkan.
  6. Digital signal fås via analog-till-digital-omvandlare (ADC).

I den process som beskrivs ovan finns ett par källor till brus som är individuell kopplat till varje unik kombination av inre komponenter i en kamera inklusive lins, sensor och omkringliggande elektronik. De största av dessa systematiska bruskällor beskrivs nedan.

Kvanteffektivitet

Konvertering av ljus till elektroner skulle i en perfekt värld vara linjärt relaterat till det infallande ljuset, samt ha samma relation mellan ljusstyrka och laddning för varje pixel. Så är fallet tyvärr inte den verkliga världen. Föroreningar och imperfektioner i kiselkristallen, microlinsen eller färgfiltret för varje pixel gör att detta skiljer sig något från pixel pixel. Uppe på detta pixel-till-pixel beroende finns macro-effekter som ojämn belysning från kameralins eller skador och smuts på lins eller sensor (damm partiklar som ligger på sensorn är vanligt förekommande). Tillsammans skapar alla dessa effekter ett mönster för ljuskänslighet som är unik för varje kamera. Detta mönster kan mätas genom att ta en bild på en likformig ljuskälla (t.ex. en klar och uniformt upplyst himmel), så kallad ”flatfield”, se exempel nedan. 

Figur 3
Exempel på flatfield för att mäta pixelvariationer i ljuskänslighet. Här syns en ojämn global upplysning av sensorn från lins, samt ett antal mörka fläckar som troligtvis kommer från smuts på sensorn.

Mörk ström

Elektroner som genereras när ljus faller på kiselkristaller är tyvärr inte den enda källan till elektroner i en sensor. Effekter av värme (termiskt exciterade elektroner) eller värmestrålning (svartkroppsstrålning med hög nog energi som faller på sensorn) kan också den ge upphov till elektroner. Mörk ström ger upphov till ett brus, som är beroende på temperatur på detektorn och slutartid, men även här finns ett pixel beroende. Vissa pixlar är mer påverkade än andra, framförallt på grund av att de sitter närmare en källa värmekälla eller annat ljusläckage som i exemplet nedan. Denna mörka ström kan mätas och ger upphov till ett unikt mönster för detektorn. För att mäta detta tas bilder med slutaren stäng, en så kalla ”dark”. Nedan syns exempel på detta.

Figur 4
Exempel på dark för att mäta pixelvariationer i mörk ström. Här kan man se en oönskad ljuskälla nere till höger som kontaminerar bilden.

Avläsning

Under Avläsning av sensorn mäts hur många elektroner som samlats i en pixel genom att spänningen i pixeln mäts och omvandlas till en digital signal. Här kommer en viss skillnad mellan CCD och CMOS sensorer in, eftersom avläsning sker på olika sätt. För en CCD sensor sker avläsning av en enda global enhet, vilket innebär att laddningar måste flyttas till denna. Utläsning sker radvis. För en CMOS sensor sker avläsning för varje pixel individuellt.

Imperfektioner i avläsningsprocess är därmed pixel beroende, men för en CCD sensor kan även effekter från problem med förflyttning av laddningar ses, vilket syns radvisa linjer. Unikt brus från avläsning kan mätas genom att ta en bild med slutartid 0, dvs. utan att samla ackumulera någon laddning alls, enbart brus från avläsning mäts. Se exempel på en ”bias” nedan. 

Figur 5
Exempel på dark för att mäta pixelvariationer i mörk ström. Antydan till vertikala rader kan ses, vilket är ett spår av laddningsförflyttningen.

Trasiga pixlar

Det finns tre typer av problem som man kan stöta på som alla kan anses kopplas till trasiga pixlar. 

  1. Svarta pixlar: Områden i sensorn som har betydligt lägre respons än sina grannar, dvs det blir mörka fläckar i resulterande bild. Effekten av svarta pixlar kan hanteras som en extremt låg ljuskänslighet, dock med markant större felmarginal eftersom bruset dominerar över signalen. 
  2. Heta pixlar: Pixlar som har en mycket högre mörk ström än sina grannar. Resultat blir ljusa fläckar i resultatet. Det kan hända att elektron brunn bli full och elektroner strömmar över till närbelägna pixlar. Detta kan vanligtvis hanteras på samma sätt som annan mörk ström, dock återigen med större felmarginal då brusnivån dominerar över signalen.
  3. Trasig laddningsförflyttning. Under avläsning av en CCD flyttas laddningar från pixel till pixel, radvis, för att läsas av längs kanten på sensorn. Om en pixel inte kan kan flytta laddningarna introduceras detta ett fel i samtliga pixlar som passerar genom felet. Detta syns som mörka linjer i resulterande bild. Kan hanteras som annat avläsningsbrus

Praktiska applikationer

Det finns en rad olika metoder att ta fram och jämföra FPN för en kamera. De kan fokusera på olika aspekter och har därmed unika för- och nackdelar, och fungerar olika bra i olika situationer. I exemplet i figur 2 har jag används Matlab-implementationen av den metod som beskrivs i [1] används, med detektionskriterier från [2]. 

En metod som visat sig vara framgångsrik är att fokusera på kameramodell istället för individuell kamera.Detta eftersom de ofta finns större skillnader mellan modeller och tillverkare än mellan individuella enheter av som modell. Man kan därmed med större säkerhet säga att en bild är tagen av en viss kameramodell, än man kan säga att en bild är tagen med en viss kamera.  [3]

Referenser

[1] http://dde.binghamton.edu/download/camera_fingerprint/

[2] https://www.researchgate.net/publication/221210662_Large_scale_test_of_sensor_fingerprint_camera_identification/link/555df01308ae8c0cab2c5bbe/download

[3] https://www.sciencedirect.com/science/article/pii/S0957417422010430