Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

3) Iris Recognition & Liveness

Capture NIR, segmentation pupille/limbe, encoding (Gabor), PAD (pupil dynamics, photopléthysmographie oculaire).
👁️
Synthèse Iris
NIRCaptureSegmentationPro
L'iris offre une biométrie d'une précision extrême (EER < 0.1%), basée sur un motif unique et stable à vie. La capture se fait en Proche Infrarouge (NIR) pour révéler la texture.
🧬
Encoding & Matching
GaborIrisCodeHamming
Le processus standard (Daugman) segmente l'iris, le normalise en 'bande polaire', puis utilise des filtres de Gabor pour générer un template binaire (IrisCode) de 2048 bits.
🛡️
Liveness (PAD)
Pupil DynamicsoPPGToF
La détection d'attaque (PAD) analyse la dynamique pupillaire (réponse à la lumière), la texture, et les micro-signaux sanguins de l'œil (photopléthysmographie oculaire).
1. Capture & Segmentation
2. Encodage (IrisCode)
3. Liveness (PAD)
4. Architecture & UX

1.1 Capture NIR

La capture de l'iris se fait impérativement en Proche Infrarouge (NIR), typiquement entre 700nm et 900nm.

  • Pourquoi NIR ? La lumière visible écrase les détails des yeux sombres (marrons), qui apparaissent homogènes. Le NIR pénètre la mélanine et révèle la structure stromale complexe de l'iris.
  • Illumination : Des LEDs NIR co-axiales avec la caméra sont utilisées pour éclairer l'œil de manière uniforme et éviter les ombres.
  • Contraintes :
    • Distance : Nécessite une distance opérationnelle stricte (ex: 25-35 cm).
    • Focus : La profondeur de champ est très faible; un autofocus rapide est vital.
    • Mouvement : L'utilisateur doit rester immobile pendant ~1s.

1.2 Segmentation

Étape la plus critique du pipeline. L'objectif est d'isoler précisément le motif de l'iris.

  • Opérateur Intégro-différentiel : (Daugman) Modélise un "ressort" circulaire qui cherche le gradient maximal pour trouver les deux frontières :
    1. Frontière Pupillaire (Iris / Pupille)
    2. Frontière Limbique (Iris / Sclère)
  • Masquage (Occlusion) :
    • Détection et masquage des paupières (supérieure et inférieure).
    • Détection et masquage des cils.
    • Détection des reflets spéculaires (des LEDs) et masquage.
Un échec de segmentation (ex: erreur de 2 pixels sur le rayon) entraîne un échec quasi-certain du matching.

2.1 Normalisation (Rubber Sheet)

Le diamètre de la pupille varie (dilatation/contraction), ce qui déforme l'iris. Il faut normaliser l'image avant encodage.

  • Modèle "Rubber Sheet" : L'iris segmenté (un anneau) est "déroulé" en une bande rectangulaire de taille fixe (ex: 512x64 pixels).
  • Coordonnées Polaires : Cette transformation passe d'un système Cartésien (x, y) à un système Polaire (rayon, angle).
  • Résultat : L'image normalisée est invariante à la taille de la pupille et à la distance de capture.

2.2 Encodage (Filtres de Gabor)

L'image normalisée est transformée en un template binaire (un "IrisCode").

  • Filtres de Gabor 2D : Une banque de filtres (ondelettes) est appliquée à l'image. Ces filtres sont excellents pour capturer l'information de texture locale (fréquence, orientation).
  • Quantification de Phase : Le résultat de chaque filtre est complexe (partie réelle, partie imaginaire). On ne garde que l'information de phase (le "quadrant"), qui est la plus stable.
  • Template (IrisCode) : Le résultat est quantifié sur 2 bits par filtre, produisant un template binaire final (ex: 2048 bits).
  • Masque : Un second template binaire (le masque) est généré pour indiquer quels bits du IrisCode sont "valides" (non-occultés par des cils/paupières).

2.3 Matching

Distance de Hamming : Le matching est une simple opération XOR bit-à-bit entre deux IrisCodes, en ignorant les bits masqués. Le résultat est un score (0 à 1) indiquant le % de bits différents. (Score < 0.32 = Match).

3. Liveness (PAD) pour l'Iris

L'iris est très robuste au spoofing, mais les attaques (lentilles de contact imprimées, yeux artificiels) existent.

3.1 Dynamique Pupillaire (Challenge)

La méthode de liveness la plus connue pour l'iris est un challenge-réponse.

  • Principe : Le capteur envoie un flash lumineux (visible ou NIR) soudain.
  • Analyse : Le système mesure la contraction de la pupille (latence, amplitude, vitesse). Un œil artificiel ou une photo n'a pas cette réaction.
  • Variante : Analyse du "Hippus" (micro-fluctuations naturelles de la pupille).

3.2 Photopléthysmographie Oculaire (oPPG)

  • Principe : Le capteur analyse les micro-variations de couleur/réflectance dans le blanc de l'œil (sclère) ou les tissus périoculaires.
  • Signal : Ces variations sont synchronisées avec le flux sanguin (pouls), prouvant la vivacité.

3.3 Analyse de Texture & 3D

  • Lentilles de contact : Les lentilles imprimées en 2D pour "voler" un iris ont des défauts :
    • Perte des hautes fréquences (texture floue).
    • Bords de la lentille visibles sur la sclère.
    • Artefacts d'impression (points, trames).
  • Capteurs 3D / ToF :
    • Vérifient la convexité de la cornée.
    • Détectent une photo (plate) ou un écran.
    • Un capteur ToF peut mesurer la profondeur et la forme 3D de l'œil et de l'orbite.

4. Architecture & UX

4.1 Architecture (Edge vs Cloud)

  • Edge (On-Device) : Privilégié pour la sécurité et la latence. Le template ne quitte jamais l'appareil (ex: Secure Enclave, TEE).
    • Contrôle total du capteur (synchro LED/Caméra).
    • Matching 1:1 instantané.
  • Cloud (Serveur) : Utilisé pour l'identification 1:N (recherche dans une base de données).
    • Nécessite une infrastructure de stockage sécurisée (templates chiffrés).
    • Pose des questions légales (stockage de biométrie).

4.2 Défis UX & Déploiement

  • Acceptabilité : Souvent perçu comme "intrusif" (pointer un laser/lumière vers l'œil). L'UX est le principal frein à l'adoption.
  • Lunettes/Reflets : Les verres de lunettes (surtout sales ou progressifs) et la lumière du soleil peuvent bloquer le signal NIR et créer des reflets, causant un échec de capture.
  • Distance & Alignement : L'utilisateur doit activement s'aligner face au capteur à la bonne distance, ce qui est moins "fluide" que le visage ou la voix.
  • Vitesse : Le pipeline complet (capture, segment, encodage, match) doit s'exécuter en moins de 1.5 seconde pour être acceptable.