Plus de jeux sur WuGames.ioSponsoriséDécouvrez des jeux de navigateur gratuits — jouez aussitôt, sans téléchargement ni inscription.Jouer

Mesureur de Similitude Faciale

Comparez la similitude entre deux visages avec l'IA. Importez deux photos et obtenez un score, hors ligne dans le navigateur.

Téléversez 2 photos de visages à comparer: cliquez sur chaque cadre ci-dessous pour choisir une photo, ou glissez-déposez. Le bouton Comparer s'active dès que les deux visages sont chargés.
Upload
Glissez-déposez l'image ici
Image 1
Upload
Glissez-déposez l'image ici
Image 2

À propos du Mesureur de Similitude Faciale

Le Mesureur de Similitude Faciale compare deux photos et indique à quel point les visages se ressemblent visuellement, en pourcentage de 0 % à 100 %. Il fonctionne entièrement dans votre navigateur via @vladmandic/face-api (un fork maintenu de face-api.js). Les deux images sont décodées localement, les visages sont détectés par un détecteur de style MobileNet, chaque visage est encodé en descripteur de 128 dimensions par un réseau inspiré de FaceNet, et la distance cosinus entre les deux descripteurs est convertie en pourcentage de similitude. Aucun octet d'image ne quitte votre appareil — pas de traitement côté serveur, pas de téléversement, pas de journalisation.

Utilisez-le pour de l'exploration ludique : « mes deux cousins se ressemblent-ils vraiment ? », « ce selfie d'il y a cinq ans me ressemble-t-il encore ? », « ces deux célébrités sans lien apparent se ressemblent-elles ? ». C'est amusant, c'est rapide, ça vous donne un nombre. Nous avons délibérément choisi un mode opératoire permissif (un seul meilleur visage par image, pas de vérification de vivacité, pas de filtrage qualité) pour que les petites photos ou de basse qualité produisent quand même un résultat plutôt qu'une erreur. Cela rend l'outil convivial mais cela signifie aussi que les pourcentages ne sont pas calibrés pour l'authentification biométrique. Considérez le score comme un indicateur relatif de similitude visuelle, pas comme une preuve d'identité.

Les meilleurs résultats nécessitent des photos frontales, bien éclairées, à résolution correcte où le visage occupe une part significative du cadre. Les photos avec lunettes de soleil, masques, maquillage marqué, chapeaux couvrant les sourcils, angles de profil, ou basse résolution déformeront le descripteur et baisseront le score, même quand la même personne figure sur les deux photos. À l'inverse, les jumeaux identiques, parents et enfants, et même des personnes sans lien d'âge, d'origine et de coiffure similaires peuvent produire des scores étonnamment élevés. La chirurgie esthétique, un changement de poids significatif, un vieillissement de dix ans ou plus, ou des filtres puissants / logiciels face-tune comptent aussi — le modèle n'a pas été entraîné pour être invariant à cela.

Nous avons délibérément conçu cet outil comme une curiosité plutôt qu'un système de vérification. Il n'est pas adapté à la vérification d'identité biométrique, au KYC (know-your-customer), au contrôle frontalier, à la surveillance, au filtrage de candidats, à la vérification d'apps de rencontre, ni à toute situation où le résultat sert à autoriser ou refuser quelque chose à une personne. Pour ces cas d'usage, il faut un système d'éditeur évalué sous NIST FRVT 1:1, prenant en charge la détection de vivacité (anti-spoofing), l'évaluation d'équité démographique, l'inscription sécurisée et la révocation. Une démo gratuite dans le navigateur ne peut pas satisfaire ces exigences opérationnelles, juridiques ou d'audit.

La confidentialité est par conception. Les poids du modèle sont téléchargés vers votre navigateur une fois (environ 6 Mo, mis en cache pour les visites suivantes) et toute la comparaison s'exécute localement en JavaScript. Pas d'étape de téléversement, pas de cache temporaire côté serveur, pas d'appel API. La page utilise des analyses standard uniquement pour le décompte du trafic. Fermer l'onglet efface tout l'état. Nous ne stockons, ne journalisons, ne vendons ni ne partageons les photos comparées.

Comment fonctionne la comparaison

Le pipeline comporte trois étapes — détection, alignement + encodage, et notation par distance — et chaque étape utilise un réseau de neurones open source établi. Le détecteur est un SSD MobileNetV1 entraîné sur WIDER FACE. Il renvoie une ou plusieurs boîtes englobantes par image avec scores de confiance ; nous gardons le visage le plus confiant par photo pour la comparaison. Pour un flux multi-visages, voyez notre Prédicteur d'Âge et de Genre qui itère sur chaque détection.

Chaque visage détecté est ensuite aligné. Un détecteur de 68 landmarks (un petit ConvNet entraîné sur le jeu iBUG 300-W) prédit les coordonnées des landmarks : coins externes et internes des yeux, arête et bout du nez, coins de la bouche et ligne de la mâchoire. Le visage est tourné et recadré pour que les yeux soient horizontaux et que la distance interpupillaire soit normalisée. L'alignement compte : le réseau d'encodage a été entraîné sur des visages alignés et produit des descripteurs incohérents sur une entrée non alignée.

Le recadrage aligné passe par un réseau d'encodage facial — dans face-api.js c'est une architecture ResNet-34 inspirée de FaceNet (Schroff, Kalenichenko & Philbin, 2015) entraînée avec une triplet loss pour produire des vecteurs unitaires de 128 dimensions qui se regroupent au sein d'une même identité et s'écartent entre identités. ArcFace (Deng et al., 2019) est une amélioration plus récente qui utilise une perte à marge angulaire additive ; le fork de vladmandic prend en charge des dorsales plus récentes de style ArcFace pour une précision supérieure si nécessaire. Nous utilisons le modèle ResNet-34 par défaut pour la compatibilité navigateur et l'empreinte.

Deux descripteurs de 128 dimensions sont comparés par distance cosinus : distance = 1 − (dot(a,b) / (|a||b|)). Distance plus petite = plus similaire. Le seuil face-api.js standard pour « même personne » est environ 0,6 (une distance de 0,6 correspond à environ 70 % de similitude dans notre affichage). Nous mappons la distance vers un pourcentage de similitude par une courbe lisse : 0,0 → 100 %, 0,4 → ~70 %, 0,6 → ~50 %, 1,0 → 0 %. Ce mappage est empirique et convivial plutôt que calibré contre une norme biométrique, donc un score de 85 % doit se lire « très similaires » et non comme une probabilité d'être la même personne.

Tous les poids sont quantifiés en flottant 32 bits pour le runtime TensorFlow.js du navigateur ; téléchargement total ~6 Mo. L'inférence tourne sur WebGL quand disponible (accéléré GPU) et retombe sur CPU via WebAssembly. La comparaison de bout en bout de deux visages prend généralement 200 ms à 1 s sur un ordinateur portable moderne, plus sur mobile. L'interface affiche une barre de style confiance et l'une de cinq bandes qualitatives (très similaires, similaires, plutôt similaires, pas similaires, très différents) choisies pour la convivialité, pas pour la rigueur biométrique.

Précision, seuils et où cet outil échoue

Sur le benchmark académique LFW (Labelled Faces in the Wild), des encodeurs de visage 128-d bien entraînés atteignent ~99 % de précision de vérification sur les paires appariées. Ce chiffre n'est pas la précision à attendre sur des photos internet quelconques. Les paires LFW sont présélectionnées pour la qualité d'image et la pose frontale ; les performances en conditions réelles sont bien plus bruitées. NIST FRVT 1:1 — qui évalue des dizaines d'éditeurs commerciaux sur des centaines de milliers de photos opérationnelles — montre que même les systèmes leaders ont des valeurs de FAR (False Acceptance Rate) et FRR (False Rejection Rate) qui varient d'un ordre de grandeur selon la démographie, l'âge et la qualité d'image. Notre dorsale open source est plus ancienne et plus petite que les leaders FRVT.

Modes d'échec concrets que vous rencontrerez : les jumeaux identiques scorent presque toujours au-dessus de 80 % — l'encodeur ne peut pas les distinguer de manière fiable. Parents et enfants adultes, fratries, ou personnes sans lien d'origine et d'âge et de coiffure similaires peuvent toutes scorer 70–85 %. La même personne photographiée à dix ans d'intervalle peut tomber à 50 % si les traits du visage ont changé. Des filtres puissants (FaceTune, Snapchat, beauty filters) éditent en pratique un visage différent dans la photo et baisseront le score significativement. Lunettes, masques, barbes, hijabs, chapeaux et occlusion partielle réduisent la précision car ils masquent des landmarks informatifs.

L'équité démographique est une limite connue. Buolamwini & Gebru (2018), NIST FRVT (2019, 2024) et de nombreux autres audits ont montré que les modèles de reconnaissance faciale entraînés majoritairement sur des sujets à peau claire produisent des taux d'erreur plus élevés pour les visages à peau foncée, les femmes et les enfants. Le descripteur face-api.js utilisé ici hérite de ces biais. Traitez toute comparaison individuelle avec prudence, surtout quand un ou les deux sujets viennent de groupes sous-représentés dans les jeux d'entraînement publics standards.

N'utilisez pas cet outil comme authentificateur biométrique, système de preuve d'identité, vérification anti-fraude, mise en correspondance de surveillance, filtre de présélection à l'embauche ou vérificateur d'app de rencontre. Pour ces usages il faut un système commercial audité avec détection de vivacité (pour qu'une photo imprimée ou une vidéo deepfake ne passe pas), un pipeline de révocation et une évaluation de biais documentée. Nous n'avons pas ces garanties et nous vous disons explicitement de ne pas déployer cela en production. C'est un outil de curiosité, et le score est une indication, pas un verdict.

  • Les jumeaux identiques scorent typiquement 85–95 % — le modèle ne peut pas les distinguer de manière fiable.
  • La même personne à plus de 10 ans d'intervalle peut tomber à 50–70 % de similitude par vieillissement naturel.
  • Lunettes de soleil, masques, barbes, chapeaux ou autres occlusions bloquent les landmarks et réduisent le score.
  • Filtres puissants (FaceTune, beauty filters, lentilles Snapchat) éditent effectivement le visage et déforment le descripteur.
  • L'équité démographique est inégale : peaux foncées, femmes et enfants ont des taux d'erreur plus élevés en raison du déséquilibre du jeu d'entraînement.
  • L'outil renvoie le visage le plus confiant par image ; les photos de groupe doivent être recadrées sur un seul visage d'abord.
  • Pas de détection de vivacité — une photo imprimée d'un visage produit le même descripteur qu'une capture en direct.
  • Pas adapté à la vérification d'identité biométrique, au KYC, au contrôle frontalier, à l'emploi ou aux contrôles de sécurité d'apps de rencontre.
  • Le mappage de la distance cosinus en pourcentage est convivial et non calibré contre une norme biométrique.

Glossaire

Embedding facial (descripteur)
Vecteur numérique de longueur fixe — ici 128 nombres flottants — produit par un réseau de neurones qui encode l'identité visuelle d'un visage. Les photos de la même personne devraient avoir des embeddings similaires ; celles de personnes différentes, dissemblables.
Similitude cosinus / distance cosinus
Mesure géométrique de l'alignement de deux vecteurs. Similitude cosinus = dot(a,b) / (|a||b|), plage [-1, 1] ; distance cosinus = 1 − similitude cosinus. Utilisée car les descripteurs vivent sur une hypersphère de haute dimension.
Seuil (threshold)
Distance cosinus en dessous de laquelle deux descripteurs sont déclarés correspondants. face-api.js utilise ~0,6 par défaut ; cela correspond à environ 50 % sur notre échelle UI conviviale. L'abaisser rend l'outil plus strict (moins de faux positifs, plus de manqués).
FAR (False Acceptance Rate)
Taux auquel un comparateur facial dit à tort que deux personnes différentes sont la même. Critique pour les systèmes de sécurité — un FAR élevé veut dire que des imposteurs passent.
FRR (False Rejection Rate)
Taux auquel un comparateur facial dit à tort que des photos d'une même personne sont différentes. Un FRR élevé signifie que de vrais utilisateurs sont gênés.
FaceNet
Article-référence de 2015 de Schroff, Kalenichenko & Philbin (Google) introduisant le schéma d'entraînement par triplet loss pour produire des embeddings faciaux de 128 dimensions sur une hypersphère unitaire.
ArcFace
Fonction de perte de reconnaissance faciale de 2019 (Deng et al., InsightFace) qui utilise une marge angulaire additive pour écarter davantage les classes de descripteurs sur l'hypersphère. État de l'art sur des benchmarks académiques comme LFW et IJB-B.
LFW / NIST FRVT
Benchmarks académiques et gouvernementaux pour les systèmes de reconnaissance faciale. LFW (Labelled Faces in the Wild, 2007) est petit et de haute qualité. NIST FRVT (Face Recognition Vendor Test) est l'évaluation gouvernementale de référence, avec des centaines de milliers de photos opérationnelles et une publication continue.

Foire aux Questions

Comment l'IA compare-t-elle deux visages ?

Elle détecte un visage par image, aligne chaque visage avec 68 landmarks faciaux, encode chaque visage aligné en vecteur de 128 dimensions par un ResNet de style FaceNet, et calcule la distance cosinus entre les deux vecteurs. La distance cosinus est mappée vers un score convivial de 0–100 % de similitude. Toute l'inférence est en JavaScript dans votre navigateur via @vladmandic/face-api sur TensorFlow.js.

Que signifie réellement le pourcentage ?

C'est un mappage lisse de la distance cosinus vers une échelle 0–100. En gros : 90–100 % = visuellement quasi identiques (même personne, jumeaux ou sosie extrême) ; 70–90 % = même personne probable, ou parents proches ; 50–70 % = quelques traits communs mais pas forcément la même personne ; sous 50 % = personnes différentes. Ce N'EST PAS une probabilité et CE N'EST PAS un résultat de vérification biométrique.

Pourquoi des inconnus scorent-ils 60 % ?

Parce que le descripteur encode la forme générale du visage — écartement des yeux, largeur du nez, angle de la mâchoire, origine, âge — et beaucoup de personnes sans lien partagent assez de ces traits pour atterrir dans une zone similaire de l'espace d'embeddings. C'est une propriété fondamentale des descripteurs faciaux 128-d, pas un bogue.

Pourquoi ma propre photo n'a-t-elle scoré que 75 % contre une autre photo de moi ?

Causes courantes : (1) éclairage ou angle de caméra différents ; (2) âge différent (plus de quelques années peut décaler les descripteurs sensiblement) ; (3) lunettes ou pilosité faciale dans l'une des photos seulement ; (4) filtres puissants ou FaceTune sur une photo ; (5) une photo en bien plus basse résolution ; (6) maquillage sur l'une et pas l'autre. Essayez une autre paire dans des conditions similaires.

Mes photos sont-elles téléversées ?

Non. Toute la détection, l'encodage et la comparaison faciaux se déroulent localement dans votre navigateur via TensorFlow.js. Les poids du modèle sont téléchargés une fois (environ 6 Mo, mis en cache) et l'inférence tourne sur les JPEG sélectionnés. Les octets des photos ne quittent jamais l'appareil. Nous ne stockons, ne journalisons ni ne partageons les photos.

Puis-je l'utiliser pour la vérification d'identité ?

Non. N'utilisez pas cet outil pour vérifier l'identité de quelqu'un, contrôler l'accès à un service, prévenir la fraude ou présélectionner des employés / des dates. Il n'a pas de détection de vivacité, pas de seuil calibré, pas d'audit d'équité démographique et utilise un modèle open source plus petit que les systèmes commerciaux. Pour la vérification d'identité il faut un éditeur évalué sous NIST FRVT avec FAR/FRR documentés et garanties opérationnelles.

Pourquoi les jumeaux identiques ne sont-ils pas distinguables ?

Le descripteur facial est entraîné pour être invariant à l'éclairage, l'expression et la pose, mais n'est pas conçu pour capter les micro-traits que même les humains utilisent pour distinguer des jumeaux (un grain de beauté, une légère asymétrie). La discrimination des jumeaux est un domaine de recherche actif ; les encodeurs faciaux standards y échouent généralement.

Distingue-t-il parents et enfants ?

Souvent, mais pas toujours. Parents et enfants adultes partagent de nombreux traits faciaux génétiques et peuvent scorer 60–80 %. Le modèle est entraîné à rapprocher la même identité, mais n'a pas de notion de « ressemblance familiale » contre « identité », donc des scores élevés entre proches sont courants et attendus.

Prend-il en charge plusieurs visages dans une photo ?

Actuellement, il prend le visage le plus confiant par image et compare ces deux. Si vos photos sont des photos de groupe, recadrez chacune sur un seul visage d'abord. Pour des flux multi-visages, nous avons un Prédicteur d'Âge et de Genre dédié qui itère sur chaque visage détecté dans une image.

Mesureur de Similitude Faciale — Comparez la similitude entre deux visages avec l'IA. Importez deux photos et obtenez un score, hors ligne dans le naviga
Mesureur de Similitude Faciale

Que se passe-t-il si aucun visage n'est détecté ?

L'outil affiche « aucun visage détecté » pour cette image. Causes courantes : visage trop petit (sous la taille minimale du détecteur), angle extrême, éclairage trop sombre ou trop fort, image fortement floue ou image qui n'est pas réellement une photo de visage. Essayez une photo plus claire, plus grande, frontale.

Références et sources académiques

  1. Schroff, F., Kalenichenko, D., & Philbin, J.. (2015). FaceNet: A Unified Embedding for Face Recognition and Clustering IEEE CVPR.
  2. Deng, J., Guo, J., Xue, N., & Zafeiriou, S.. (2019). ArcFace: Additive Angular Margin Loss for Deep Face Recognition IEEE CVPR (projet InsightFace).
  3. Huang, G. B., Ramesh, M., Berg, T., & Learned-Miller, E.. (2007). Labeled Faces in the Wild: A Database for Studying Face Recognition in Unconstrained Environments Université du Massachusetts Amherst Technical Report.
  4. Grother, P., Ngan, M., & Hanaoka, K.. (2024). NIST Face Recognition Vendor Test (FRVT) Institut national américain des normes et technologies.
  5. Buolamwini, J., & Gebru, T.. (2018). Gender Shades : Disparités de précision intersectionnelle dans la classification de genre commerciale Proceedings of Machine Learning Research.
  6. Mandic, V.. (2024). @vladmandic/face-api — fork TypeScript maintenu de face-api.js Projet open source, licence MIT.

Last reviewed: · Reviewed by Équipe Éthique et Ingénierie IA WuTools

Questions Fréquentes

La comparaison de visages se passe-t-elle dans mon navigateur ou mes photos sont-elles téléversées ?

Tout s'exécute dans votre navigateur. Les modèles de détection de visage et d'embedding (ResNet de style FaceNet via @vladmandic/face-api sur TensorFlow.js) sont téléchargés une fois puis chaque comparaison est calculée localement via WebGL, WebGPU ou WebAssembly. Vos photos de visage ne quittent jamais l'appareil — pas de téléversement, pas de traitement serveur, pas de gabarit biométrique stocké ailleurs que dans votre navigateur. C'est crucial car sous le RGPD et la BIPA d'Illinois, les embeddings faciaux comptent comme identifiants biométriques sensibles, et de nombreuses politiques de sécurité d'entreprise interdisent explicitement de les téléverser vers des API tierces. Le seul trafic réseau après le téléchargement du modèle est constitué des ressources statiques de la page.

Quels formats et conditions d'image donnent les meilleurs résultats ?

Formats acceptés : JPEG, PNG, WebP, AVIF, GIF (première image), BMP et HEIC sur navigateurs compatibles. Pour une comparaison précise, les deux visages doivent : faire au moins 160x160 pixels dans la région faciale recadrée, être frontaux ou quasi frontaux (lacet dans ±30°), uniformément éclairés sans ombres dures, nets et non obstrués par des reflets de lunettes, masques ou cheveux abondants. Photos de profil, éclairage extrême, flou de mouvement et visages plus petits que 80 pixels dégradent la qualité de l'embedding. Si plusieurs visages apparaissent dans une image, l'outil utilise le plus grand visage détecté — pour des portraits avec plusieurs personnes, recadrez manuellement d'abord.

Que représente vraiment le pourcentage de similarité ?

C'est un remappage convivial de la distance cosinus entre deux embeddings faciaux de 128 dimensions produits par le réseau de style FaceNet. En interne, chaque visage est encodé comme un vecteur unitaire dans un espace 128D ; la distance cosinus (1 - cos(angle) entre les deux vecteurs) est ensuite mappée à un score 0-100%. Au-dessus de 70% signifie généralement "même personne" avec haute confiance sur des images de bonne qualité. 50-70% est une zone limite affectée par les différences d'éclairage, d'âge ou d'expression. En-dessous de 50% est presque certainement "personne différente". Le pourcentage n'est pas une probabilité littérale — c'est une métrique de commodité calibrée. Pour des applications juridiques ou de sécurité, utilisez toujours la distance cosinus brute avec un seuil validé pour votre jeu de données.

Pourquoi le modèle dit-il parfois que mes vieilles et récentes photos ne sont pas la même personne ?

Les embeddings faciaux sont très sensibles aux changements d'âge (>5 ans peut faire chuter la similarité de 10-20%), barbe, lunettes, changements de poids, coiffure, maquillage et température de couleur de l'éclairage. Un modèle FaceNet entraîné sur des photos web a appris à discriminer des centaines de milliers d'identités dans des conditions typiques ; des changements significativement hors distribution réduiront le score même pour la même personne. Jumeaux et parents proches peuvent aussi le tromper (similarité élevée mais techniquement personnes différentes). Pour des comparaisons de style généalogie sur des décennies, attendez-vous à des scores de 50-70% entre vraies correspondances ; pour des applications de sécurité ou déverrouillage, vous voulez typiquement exiger ≥75% avec les deux images capturées dans des conditions similaires.

WebGPU est-il plus rapide que WebAssembly pour la comparaison faciale ?

Oui, de façon significative. La passe de détection (SSD-MobileNet) et la passe d'embedding 128D (ResNet) sont deux réseaux lourds en convolutions qui bénéficient du parallélisme GPU. Sur un portable typique, WebGPU complète un cycle complet détecter-aligner-embed-comparer en 100-300 ms par paire ; WebAssembly avec SIMD prend 500-2000 ms, et WebGL (un backend GPU plus ancien) se situe entre les deux. Pour des comparaisons par lot (un visage requête contre plusieurs références), l'avantage GPU se compose. L'outil détecte automatiquement le meilleur backend au démarrage : WebGPU > WebGL > WebAssembly-SIMD > WebAssembly. Vous pouvez voir quel backend est actif dans la console du navigateur.

L'outil peut-il être trompé par une photo imprimée, une photo d'écran ou un deepfake ?

Cet outil est un mètre de similarité de reconnaissance faciale, pas un détecteur d'attaque de présentation. Il comparera joyeusement une photo d'une photo imprimée de vous à une vraie photo de vous, et l'embedding correspondra. Il ne vérifie pas la vivacité, la profondeur, les reflets d'écran ou les artefacts générés par IA. Pour la vérification de paiement, la preuve d'identité ou les applications de déverrouillage, vous avez besoin d'une couche séparée de détection de vivacité (défis actifs comme clignement ou tournement de tête, ou analyse passive de profondeur depuis une caméra true-depth) au-dessus du contrôle de similarité. La détection de vivacité uniquement navigateur est possible (MediaPipe Face Landmarker peut détecter les changements de pose) mais ne fait pas partie de cet outil. Pour un usage occasionnel ou généalogique, l'absence n'importe pas.

Quelle architecture neuronale fait le gros du travail — FaceNet, ArcFace ou DeepFace ?

Le pipeline par défaut utilise face-api.js / @vladmandic/face-api, qui combine un détecteur de visage SSD-MobileNet v1, un régresseur de 68 points de repère (pour l'alignement) et un réseau d'embedding ResNet-34 de style FaceNet qui produit un descripteur de 128 dimensions entraîné avec triplet loss. ArcFace (2019) et CosFace (2018) sont des architectures plus récentes utilisant des pertes à marge angulaire et des embeddings de 512 dimensions qui atteignent une précision plus élevée sur LFW (99.83% contre 99.65% pour FaceNet) mais nécessitent des modèles plus grands et un alignement légèrement différent. Elles sont disponibles en options avancées si vous avez besoin de précision de pointe. Pour la comparaison quotidienne, le pipeline FaceNet par défaut est rapide, bien testé et suffisant.

Quelle est la différence entre FP32 et INT8 pour les embeddings faciaux et cela affecte-t-il la précision ?

FP32 stocke chaque poids du réseau en flottant 32 bits ; INT8 le stocke en entier 8 bits, réduisant le modèle par 4x et accélérant l'inférence CPU par 2-3x. Pour les embeddings faciaux, INT8 réduit typiquement la précision LFW de 0.1-0.3% — invisible pour un humain comparant les scores mais mesurable sur un benchmark de 6000 images. Plus important, les embeddings INT8 sont légèrement plus bruités, ce qui peut pousser des paires limites (autour de 70% de similarité) dans le mauvais panier. L'outil livre FP32 par défaut pour le réseau d'embedding car les données faciales méritent la précision ; les réseaux détecteur et de points de repère utilisent INT8 car leur sortie (boîte englobante, 68 points) est robuste au bruit de quantification.