Reconnaissance Faciale
Vue d'ensemble
Immich reconnaît les visages dans vos photos et vidéos et les regroupe en personnes. Vous pouvez ensuite attribuer des noms à ces personnes et les rechercher.
La liste des personnes est affichée sur la page Explorer.

En cliquant sur une personne, une liste de contenus contenant son visage sera affichée.

La vue détaillée des contenus montrera également les visages reconnus dans le contenu.

Actions
Les actions supplémentaires que vous pouvez effectuer incluent :
- Changer la photo de présentation de la personne
- Définir la date de naissance d'une personne
- Fusionner deux ou plusieurs visages détectés en une seule personne
- Masquer les visages d'une personne de la page Explorer et de la vue détaillée
- Attribuer un visage non reconnu à une personne
Cela peut être trouvé dans la barre d'application lorsque vous accédez à la vue détaillée d'une personne.

Comment fonctionne la détection de visage
La détection de visage envoie l'image de prévisualisation générée au service d'apprentissage automatique pour traitement. Le service vérifie s'il dispose du modèle pertinent téléchargé et le télécharge si ce n'est pas le cas. L'image est décodée, prétraitée et transmise au modèle de détection de visage (avec accélération matérielle si configurée). Les cadres et scores générés par ce modèle sont utilisés pour recadrer et prétraiter à nouveau l'image avant de la transmettre à un modèle de reconnaissance faciale (également accéléré si configuré). Les embeddings du modèle de reconnaissance, ainsi que les cadres et scores du modèle de détection de visage, sont ensuite renvoyés au serveur pour être ajoutés à la base de données. Les embeddings en particulier sont indexés pour qu'ils puissent être recherchés rapidement lors du regroupement des visages.
Comment fonctionne la reconnaissance faciale
L'algorithme de reconnaissance faciale que nous utilisons est dérivé de DBSCAN, un algorithme de regroupement populaire. Essentiellement, il traite chaque visage détecté comme un point dans un graphe et vise à regrouper les points qui sont proches les uns des autres.
Un concept important est de savoir si quelque chose est un point central. Un point central a un nombre minimum de points autour de lui dans une certaine distance. Un point non central ne peut être assigné à un groupe que s'il peut atteindre un point central ; un point non central ne peut pas être utilisé pour étendre un groupe même s'il en fait partie. Dans Immich, le paramètre Visages Reconnaissables Minimaux contrôle le seuil pour être considéré comme un point central.
Pour chaque visage, l'algorithme vérifie autour de lui pour trouver d'autres visages dans une certaine distance. Les visages dans cette distance sont considérés comme similaires, l'algorithme vérifie ensuite si l'un de ces visages est associé à une personne.
S'il existe une personne, il attribue la personne au visage le plus similaire avec le visage en cours de traitement.
Sinon, l'algorithme doit déterminer, grâce à DBSCAN, si le visage est un point central. S'il y a un certain nombre de visages similaires (par défaut 3, y compris le visage en question), alors ce visage est un point central. Une nouvelle personne est alors créée pour ce visage et le visage lui est attribué. Lorsque d'autres visages sont traités, s'ils sont similaires à ce visage, ils verront qu'il est associé à une personne et pourront être attribués à cette personne.
Cependant, s'il n'y a pas assez de visages similaires, aucune nouvelle personne ne sera créée. Le visage attendra alors que tous les autres visages soient traités pour voir si des visages précédemment non associés à une personne le sont maintenant. Dans ce cas, le visage sera attribué à cette personne. Sinon, ce visage sera considéré comme un point marginal, comme une personne inconnue à l'arrière-plan d'une image.
L'algorithme présente quelques différences subtiles par rapport à DBSCAN :
- DBSCAN n'a pas de concept de regroupement incrémental : il regroupe tous les points en même temps. En revanche, la reconnaissance faciale évolue au fur et à mesure que des contenus sont ajoutés sans re-regrouper tout à chaque fois.
- L'algorithme décrit ci-dessus fonctionne dans un ensemble d'éléments en attente. Une fois que ces visages sont traités et qu'une nouvelle série de visages est détectée, le comportement ne sera pas le même que DBSCAN traditionnel, car il préserve les groupes (personnes) générés lors de la précédente série.
- La reconnaissance faciale essaye d'attendre la fin de la détection des visages et de la génération des miniatures avant de commencer pour cette raison : plus l'ensemble de visages dans la file d'attente est large, meilleurs sont les résultats.
- Relancer la reconnaissance faciale sur tous les contenus après coup se comporte comme DBSCAN, toutefois.
- L'algorithme décrit ci-dessus fonctionne dans un ensemble d'éléments en attente. Une fois que ces visages sont traités et qu'une nouvelle série de visages est détectée, le comportement ne sera pas le même que DBSCAN traditionnel, car il préserve les groupes (personnes) générés lors de la précédente série.
- DBSCAN est conçu pour des recherches basées sur les distances (c'est-à-dire les points dans une certaine distance), mais les indices de vecteurs à haute dimension sont généralement optimisés pour obtenir les K résultats les plus proches. L'algorithme de reconnaissance ne tente pas d'obtenir tous les visages similaires dans une distance pour des raisons de performances. À la place, il recherche un petit nombre de correspondances pour chaque visage. Le résultat final devrait être très similaire voire identique, mais avec des caractéristiques de performance éventuellement différentes.
- À cause de cela, une partie du processus de reconnaissance est exécutée pendant une tâche nocturne pour s'assurer que les visages non assignés avec des correspondances potentielles peuvent être reconnus.
Si vous n'avez pas importé vos contenus d'un coup ou si le serveur a été capable de traiter les tâches plus rapidement que vous ne les avez téléchargés, il est possible que le regroupement soit sous-optimal. Si vous n'avez pas investi dans les résultats actuels, il peut être utile de relancer la reconnaissance faciale sur tous les contenus pour obtenir le meilleur point de départ. Si c'est trop tard pour cela, vous pouvez également attribuer manuellement une sélection de visages non assignés et mettre en file d'attente les éléments Manquants pour la reconnaissance faciale afin d'aider à apprendre et à attribuer plus de visages automatiquement.
Configuration
En naviguant sur Administration > Paramètres > Paramètres Machine Learning > Reconnaissance Faciale, vous verrez les options disponibles.
Il est préférable de seulement ajuster les paramètres ici plutôt que de les régler à des valeurs très différentes sauf si vous êtes prêt à tester une variété d'options. Si vous avez besoin de régler un paramètre strictement, assouplir d'autres paramètres peut être une bonne option pour compenser, et vice versa.
Vous pouvez apprendre comment ajuster les résultats dans ce Guide
Modèle de reconnaissance faciale
Il existe différents modèles disponibles ; le modèle par défaut est généralement considéré comme le meilleur. Sur les systèmes plus contraints où le modèle par défaut est trop intensif, vous pouvez choisir un modèle plus petit à la place.
Score de détection minimal
Ce paramètre détermine si un résultat du modèle de détection de visage est filtré comme un faux positif. Il peut sembler tentant de régler ce paramètre à une valeur basse pour détecter plus de visages, mais cela peut conduire à des faux positifs difficiles à gérer et nuire à la reconnaissance faciale. Il est fortement recommandé de ne pas descendre en dessous de 0.5 pour ce paramètre. Régler une valeur très élevée comme 0.9 est également déconseillé : la valeur par défaut est déjà orientée vers la précision, donc un seuil aussi élevé conduirait à de nombreux visages non détectés.
Après modification de ce paramètre, il s'appliquera uniquement aux nouvelles tâches de détection de visage. Pour appliquer le nouveau paramètre à tous les contenus, vous devez relancer la détection des visages pour tous les contenus.
Distance de reconnaissance maximale
Le seuil de distance décrit dans Comment fonctionne la reconnaissance faciale. La valeur par défaut fonctionne bien pour la plupart des gens, mais il peut être utile de la réduire si votre bibliothèque contient des jumeaux ou des personnes avec des apparences très similaires. Un seuil trop bas signifie simplement devoir fusionner les doublons après la reconnaissance faciale, alors qu'un seuil trop élevé peut produire des résultats irrécupérables. Il est fortement recommandé de ne pas descendre en dessous de 0.3 ni de dépasser 0.7.
Visages reconnus minimaux
Le seuil de point central décrit dans Comment fonctionne la reconnaissance faciale. Ce paramètre a plusieurs implications. Premièrement, il prend effet immédiatement car les personnes avec moins de visages que ce seuil sont masquées de la vue. Deuxièmement, il rend le regroupement plus robuste en empêchant des visages faiblement liés d'être connectés les uns aux autres en exigeant un certain niveau de densité.
Augmenter ce paramètre est une bonne idée si vous augmentez la distance de reconnaissance ou réduisez le score de détection minimal. Le régler à 1 désactive efficacement le concept de points centraux, mais peut être une option si vous préférez une approche plus pratique.