Blog - Jak działa rozpoznawanie tęczówki

Segmentacja źrenicy i tęczówki, normalizacja do mapy polarnej, kody Daugmana i Hamming distance.

Autor
2code
Opublikowano
Tagi
  • biometria
  • iris
  • CV

Rozpoznawanie tęczówki (iris) należy do najstabilniejszych biometrii. Kluczowy pomysł Daugmana: znormalizować pierścień tęczówki do stałej mapy i porównać binarną teksturę.

Segmentacja i normalizacja

Najpierw znajdujemy okręgi źrenicy i limbusu. Punkt (r,θ)(r, \theta) w pierścieniu mapujemy na prostokąt (rubber sheet):

I(x(ρ,θ),y(ρ,θ))J(ρ,θ)I(x(\rho,\theta), y(\rho,\theta)) \mapsto J(\rho, \theta)

gdzie ρ[0,1]\rho \in [0,1] biegnie od źrenicy do limbusu, a θ[0,2π)\theta \in [0, 2\pi).

Iris code

Teksturę filtruje się filtrami Gabor / log-Gabor. Z fazy odpowiedzi budowany jest kod binarny C{0,1}nC \in \{0,1\}^{n} oraz maska okluzji MM (powieki, błyski).

Podobieństwo to (ważona) odległość Hamminga:

HD(Ca,Cb)=(CaCb)MaMb1MaMb1HD(C_a, C_b) = \frac{\|(C_a \oplus C_b) \land M_a \land M_b\|_1}{\|M_a \land M_b\|_1}

Im niższe HDHD, tym większa zgodność. Decyzja: HDτHD \le \tau.

Pipeline

Dlaczego NIR?

Światło bliskiej podczerwieni stabilizuje teksturę niezależnie od koloru oczu i ogranicza refleksy. Widzialne RGB bywa zbyt zależne od pigmentacji.

Wniosek

Iris recognition wygrywa powtarzalnością template’u: dobra segmentacja + maskowanie okluzji + dobrze dobrany τ\tau na Hamming distance.

Wróć do bloga

Porozmawiajmy o Twoim projekcie