Un score de similarité est la similarité cosinus entre deux vecteurs faciaux — deux listes de 512 nombres — et il va de 0 à 1. Sur notre index, 0.40 est le point au-delà duquel une paire est considérée comme probablement la même personne. Ce n'est pas un pourcentage, pas un niveau de confiance, pas une probabilité. C'est un angle.
Ce nombre compte à cause d'une chose que la plupart des outils de recherche faciale ne vous disent pas : la recherche vectorielle dense ne renvoie jamais rien. Demandez-lui dix résultats et elle en renvoie dix, que la personne recherchée existe ou non dans l'index. Le score est la seule chose qui distingue une réponse de l'inconnu le plus proche disponible.
Que mesure réellement ce score ?
La similarité cosinus mesure l'angle entre deux vecteurs, sans tenir compte de leur longueur. Deux visages encodés en vecteurs à 512 dimensions sont « similaires » quand leurs vecteurs pointent presque dans la même direction.
L'encodeur — ArcFace, dans notre cas — est entraîné pour que des images d'une même identité produisent des vecteurs orientés de la même façon, et des images d'identités différentes des vecteurs qui divergent. La pose, la lumière, l'arrière-plan et la coiffure sont largement écartés lors de la détection et de l'alignement, avant même que l'encodeur ne voie le visage.
C'est pourquoi le score ne se comporte pas comme une impression visuelle. Deux photographies qui vous semblent se ressembler peuvent obtenir un score faible ; deux photographies qui n'ont rien à voir — autre lumière, autre décennie, autres cheveux — peuvent obtenir un score élevé.
Comment faut-il lire chaque tranche de score ?
Traitez le score comme une tranche, pas comme un verdict. Voici les tranches de travail que nous utilisons sur nos propres données.
| Score | Lecture | Quoi en faire |
|---|---|---|
| 0.70 et au-dessus | Très probablement la même identité | À traiter comme une correspondance ; vérifiez quand même la page source |
| 0.55 – 0.70 | Probablement la même identité | Correspondance, mais recoupez avec une deuxième image |
| 0.40 – 0.55 | Au-dessus du seuil, mais faible | Plausible ; un mauvais angle comme un sosie donnent cela |
| 0.25 – 0.40 | En dessous du seuil | Ressemblance, pas identité |
| En dessous de 0.25 | Le vecteur le plus proche disponible | Ne dit rien, sinon que l'index devait renvoyer quelque chose |
Ce sont les lignes sous 0.40 que l'on lit de travers. Un résultat à 0.31 n'est pas « 31% de chances ». C'est le système qui vous dit qu'il n'a pas votre personne et qu'il vous montre ce qu'il a.
Source : notre index, instantané 2026-08. Les tranches sont des repères empiriques pour lire nos propres résultats, pas un benchmark publié.
Pourquoi y a-t-il un seuil, tout court ?
Parce qu'un seuil convertit une distance continue en une décision oui/non, et que toute conversion de ce genre échange un type d'erreur contre un autre.
Abaissez le seuil et vous récupérez davantage de vraies correspondances prises sous des angles difficiles ou dans une mauvaise compression — au prix de visages sans rapport qui s'invitent. Relevez-le et les correspondances retenues sont plus propres, tandis que de vraies correspondances issues d'un profil ou d'un flux à faible débit disparaissent complètement de la liste.
Aucun réglage ne supprime les deux erreurs. Si 0.40 se trouve là où il est, c'est parce que notre requête type est une image extraite d'une vidéo : compressée, floue de mouvement, rarement de face, souvent petite. Un seuil calibré sur des portraits de studio propres serait plus haut et rejetterait la plupart des requêtes réelles.
Pourquoi une même personne obtient-elle des scores différents selon les photos ?
Parce que l'encodeur écarte la pose et la lumière de façon imparfaite, et parce que chaque dégradation entre la caméra et votre capture déplace le vecteur.
| Condition | Effet sur le score |
|---|---|
| De face, net, bien éclairé | Les meilleurs scores ; le cas idéal de l'encodeur |
| Tête tournée au-delà des trois quarts environ | Chute nette ; une partie du visage est tout simplement absente |
| Forte compression vidéo, faible débit | Chute ; les artefacts de blocs abîment le détail fin du visage |
| Visage petit dans l'image | Chute, et la détection peut échouer avant même l'encodage |
| Occlusion — main, cheveux, objet en travers du visage | Les points de repère se déplacent, l'alignement se déforme, le vecteur est faux |
| Des années entre les deux images | Chute modérée ; le signal d'identité persiste mais s'affaiblit |
| Chirurgie esthétique, forte variation de poids | De vraies correspondances peuvent passer sous le seuil |
| Maquillage, coiffure, couleur de cheveux | Peu d'effet ; l'alignement en recadre l'essentiel |
La dernière ligne surprend, et celle du dessus déçoit. Les cheveux ne coûtent presque rien ; un visage modifié, si.
Pourquoi se méfier d'un outil qui cache le score ?
Parce que cacher le score cache la différence entre une correspondance et une supposition, et que cette différence est tout le résultat.
Une liste classée sans scores a exactement la même allure que le premier résultat soit à 0.85 ou à 0.19. Les deux s'affichent comme « voici votre correspondance la plus proche ». Une seule veut dire quelque chose. Un outil qui montre dix visages et aucun chiffre a pris le champ le plus informatif et l'a retiré — et il l'a fait dans la seule situation où le système est certain de produire un résultat quelle que soit la vérité.
La version honnête d'un résultat de recherche faciale contient trois choses : le score, le seuil auquel il est comparé, et un lien vers l'image source pour que vous puissiez vérifier de vos propres yeux. S'il manque l'un des trois, vous ne pouvez pas auditer la réponse.
Données et méthode
Source. Vecteurs faciaux calculés à partir de jaquettes et de photogrammes indexés par starlikeness sur 106 sites.
Échantillon. 241,792 vecteurs faciaux dans l'index ; 2,333 fiches d'identité avec un nom rattaché (notre index, instantané 2026-08).
Méthode. Détection avec YuNet, produisant une boîte englobante et cinq points de repère. Alignement sur une pose canonique à partir de ces points. Encodage avec ArcFace en vecteurs à 512 dimensions. Recherche par similarité cosinus sur l'index complet. Le seuil de 0.40 est calibré pour des requêtes issues d'images vidéo contre cet index.
Date de l'instantané. 2026-08.
Biais connu. La couverture est très concentrée. 2,246 des 2,333 identités nommées tirent leur image représentative d'un seul site, et seule une petite minorité des 106 sites indexés porte des identifiants de contenu japonais. Ce que nous mesurons est donc l'exposition sur des sites agrégateurs, pas un volume de sorties. Une interprète dont le travail n'apparaît que sur des sites que nous n'avons pas indexés ne sera pas trouvée, et aucun score ne vous le dira — la recherche renverra quand même ses dix inconnus les plus proches.
Limites du seuil. 0.40 vaut pour cet encodeur et cet index. Il n'est transférable ni à un autre outil, ni à un autre modèle, ni à un autre type d'image de requête. Affirmer qu'un score « signifie » une probabilité d'identité fixe est exagéré : le même nombre pèse différemment selon la qualité de la requête.
Citation.
starlikeness (2026). « Que veut dire un score de similarité de 0.40 ? »
Index facial, instantané 2026-08 (n=241,792 visages ; 2,333 identités nommées).
https://starlikeness.com/fr/articles/what-similarity-score-means
Questions connexes
- Comment fonctionne la recherche faciale, étape par étape
- Notre index contient 589 personnes sans nom
- Quelle part de l'industrie voyons-nous réellement ?
- D'où viennent nos données, et ce qui manque
- Pourquoi la recherche d'image inversée de Google ne marche pas pour la vidéo pour adultes
Vous pouvez voir le seuil à l'œuvre : envoyez une image et lisez les scores à côté des visages. La détection tourne dans votre navigateur, seule la zone du visage recadrée est envoyée pour la comparaison, et l'original ne quitte jamais votre appareil.