master-degree-notes/Biometric Systems/notes/8 Face anti spoofing.md

3.4 KiB

Lo spoofing consiste nell'ingannare un sistema biometrico assumendo un'identità che non ci appartiene. La differenza con il camouflage (camuffamento) è data dal fatto che nel primo l'obiettivo è essere riconosciuti con un'altra identità, nel secondo invece si tenta di non far riconoscere la propria identità.

L'attacco di spoofing può essere:

  • Diretto (1): avviene al momento dell'acquisizione (attacchi di presentazione)
  • Indiretto (2-8): avviene nelle fasi successive della pipeline !Pasted image 20241113134358.png

Face spoofing

si classificano in attacchi di spoofing 2D e 3D

  • Print/photo attack: viene presentata un'immagine del soggetto da identificare. Questo attacco può essere facilmente iderntificato (cambia il modo in cui riflette la luce ecc., LBP viene d'aiuto), oppure possiamo rilevare cose tipo il battito delle ciglia...
  • Video attack: (o replay attack) viene presentato un video. Anche qui viene usato LBP nel tentativo di prevenire l'attacco
  • Maschera facciale: viene prodotta una maschera 3D. Un modo per prevenirlo è vedere come la luce riflette sulla pelle (la plastica della maschera rifletterà in modo un po' diverso)

Se, in fase di valutazione, prendiamo in considerazione anche gli attacchi di spoofing, dobbiamo utilizzare una metrica diversa dal classico FAR, ovvero lo Spoofing-FAR, che prende quindi in considerazione anche i casi in cui gli impostori vengono accettati grazie allo spoofing.

Face antispoofing - Liveness Detection

!Pasted image 20241113140703.png

Liveness detection

La differenza essenziale tra una faccia vera e una foto è che la faccia è un oggetto tridimensionale, il movimento della faccia può aiutare a distinguere una persona vera da una foto (optical flow). Stimare la profondità da delle immagini 2D è difficile però, e la stima è molto sensibile al rumore e all'illuminazione. Inoltre, è vulnerabile al movimento della foto o la deformazione (bending) di questa (se curvo il foglio con la foto stampata tipo). Si potrebbe anche provare a riconoscere le texture della carta.

Un altro modo è riconoscere il battito di ciglia, considerando che un battito dura circa 250ms e avviene tra i 2 e i 4 secondi, ci bastano circa 15 fps. Però è spoofabile perché si potrebbero ad es. fare dei buchi per gli occhi a una maschera.

[!PDF|yellow] LEZIONE8_Face antispoofing, p.27

The work by Pan et al. models

modello Pan et al.

!Pasted image 20241113143053.png Hidden Markov model, modella la sequenza di stati di un occhio. (aggiungere altro)

// LBP per riconoscere difetti di stampa analizzando le micro-texture della carta. Si basa sul fatto che nessuna stampante è perfetta, ogni foto ha dei "difetti" di stampa che possono essere riconosciuti con un po' di feature extraction.

  • la faccia e le stampe riflettono la luce in modo diverso
  • le proprietà della superficie di una faccia e di una stampa sono diverse Le feature possono essere estrratte usando multi-scale local binary patterns (LBP), si possono poi usare per trainare una SVM, che poi determinerà se le feature estratte caratterizzano una persona o una stampa.

!Pasted image 20241113144129.png vera foto vs stampa e rispettive immagini LBP.

Prima di applicare LBP la faccia viene riconosciuta, croppata e normalizzata come immagine 64x64. !Pasted image 20241113144743.png

LBP viene applicato