Blog - How iris recognition works

Pupil/iris segmentation, polar normalization, Daugman iris codes, and Hamming-distance matching.

Author
2code
Published
Tags
  • biometrics
  • iris
  • CV

Iris recognition is among the most stable biometrics. Daugman’s core idea: normalize the iris annulus to a fixed map and compare binary texture codes.

Segmentation and normalization

First locate pupil and limbus circles. Map a ring point (r,θ)(r, \theta) onto a rectangle (rubber sheet):

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

where ρ[0,1]\rho \in [0,1] runs from pupil to limbus and θ[0,2π)\theta \in [0, 2\pi).

Iris code

Texture is filtered with Gabor / log-Gabor kernels. Phase responses become a binary code C{0,1}nC \in \{0,1\}^{n} plus an occlusion mask MM (eyelids, specularities).

Similarity is a masked Hamming distance:

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}

Lower HDHD means a better match. Decision: HDτHD \le \tau.

Pipeline

Why NIR?

Near-infrared light stabilizes iris texture across eye colors and reduces glare. Visible RGB is too pigment-dependent.

Takeaway

Iris recognition wins on template repeatability: solid segmentation + occlusion masks + a calibrated Hamming threshold τ\tau.

Back to blog

Let's talk about your project