Louis-François Bouchard

View Original

Comment Apple Photos reconnaît les personnes dans vos photos privées à l'aide de l'apprentissage automatique

Dans une publication récente [1], Apple a expliqué comment ils ont utilisé l'apprentissage automatique pour reconnaître directement les personnes dans des photos privées sur vos iPhone et iPad sans avoir accès à vos images pour entraîner leurs algorithmes.

Pour ceux d'entre vous qui possèdent des produits Apple, vous pouvez en fait rechercher par personne dans l'application Photos. En effet, en utilisant plusieurs algorithmes basés sur l'apprentissage automatique que je couvrirai dans cet article, exécuté en privé sur votre appareil, vous êtes en mesure de trier et organiser vos images et vidéos sur iOS 15 en fonction de qui est présent sur chaque image. Votre appareil reconnaîtra les différentes personnes et vous permettra de rechercher dans vos photos où la personne apparaît. Si vous avez des milliers de photos comme moi, vous aurez déjà différents groupes représentant chacun des personnes différentes. Par exemple, un tel groupe pourrait être toutes les photos où se trouve votre ami John afin que vous puissiez nommer ce groupe « John », puis rechercher des images de John pour les faire apparaître automatiquement. Il peut même reconnaître des photos où les mêmes personnes apparaissent fréquemment, même s'il ne connaît pas les personnes individuellement et n'a pas été directement entraîné avec ces personnes. L’iPhone peut également utiliser ces nouveaux algorithmes pour partager des souvenirs comme la fonction « Together » présentée ici-bas. Il s'agit d'un outil intégré dans l’application ‘‘photos’’ super cool d'Apple, et le mieux est qu'elle fonctionne même lorsque le visage est obstrué ou sur le côté, comme nous le verrons.

A) Image montrant les personnes identifiées en bas à gauche. B) Album de personnes. C) Recherche de requête de personnes composées. D) Volet ‘‘Together’’ affichant des souvenirs spécifiques à une personne. Image d'Apple, “Recognizing People in Photos Through Private On-Device Machine Learning”, (2021)

Comme je l'ai dit, ça a l'air de très bien fonctionner. L’outil s’exécute entièrement sur votre appareil en privé, et Apple améliore toujours les algorithmes, mais c'est encore plus cool de savoir comment cela fonctionne, alors plongeons dans ces détails!

Cette tâche de reconnaître les personnes dans vos propres photos est extrêmement difficile en raison de la variabilité de vos photos. Différentes personnes, différents angles, différentes échelles, différents éclairages, occlusions parce que votre ami attrapait un ballon de football, ou même d'autres caméras. Si nous nous basions strictement sur le visage de la personne, ce serait assez incomplet, car la plupart de nos photos prises sur place lors d'un événement ne sont pas des images parfaites avec vos amis souriants devant la caméra. Lorsque vous tapez John, vous souhaitez voir ces événements où John a gagné le match en attrapant ce ballon.

Pour s'y attaquer, ils commencent par localiser les visages et le haut du corps des personnes visibles sur l'image à l'aide d'un premier algorithme de détection. Cet algorithme a été entraîné sur de nombreux exemples humains étiquetés annotés avec l'emplacement des corps et des visages. Ce qui signifie qu'ils ont formé un réseau de neurones profonds avec des images envoyées comme entrées, et les sorties n'étaient que la version recadrée de l'image avec les corps ou les visages des personnes. Cela se fait en fournissant de nombreux exemples au réseau, l'aidant à montrer où concentrer son attention avec les sections correctement identifiées. De cette façon, il peut apprendre de manière itérative à trouver cette partie du corps par lui-même par la suite si nous lui montrons suffisamment d'exemples lors de l'entraînement.

Reconnaître les personnes dans les collections d'images. Image d'Apple, “Recognizing People in Photos Through Private On-Device Machine Learning”, (2021)

Ensuite, ils détectent les corps et les visages de chaque individu pour avoir encore plus de données sur la personne au cas où un seul des deux apparaîtrait dans une future image. Vous pouvez voir ici que le corps et le visage sont envoyés dans un modèle distinct qui encode les informations, créant des ‘‘embeddings’’. Ces ‘‘embeddings’’ sont simplement les informations les plus précieuses sur le visage et le corps de la personne. Ici, nous utilisons un autre réseau pour encoder les informations, car nous voulons que nos ‘‘embeddings’’ soient similaires pour la même personne et différents pour différents individus. Cela se fait à nouveau avec un autre modèle qui ressemblera à ceci (affiché ci-bas), inspiré de mobilenet, dont j'ai parlé dans mon article sur le réseau de neurones convolutifs. Il s'agit d'un réseau neuronal convolutif léger qui peut fonctionner de manière extrêmement efficace, conçu pour les appareils mobiles au lieu des GPU (cartes graphiques de vos ordinateurs). Si vous n'êtes pas familier avec les CNNs, je vous invite fortement à lire l'article que j'ai écrit, les expliquant simplement. Fondamentalement, ce réseau CNN prend les images recadrées et compresse les informations dans un espace plus petit en se concentrant sur les détails les plus intéressants sur l'individu. C'est possible parce qu'un tel modèle a été formé sur beaucoup d'images pour faire exactement cela. Ensuite, ces ‘‘embeddings’’ sont fusionnées et enregistrées dans la galerie de votre téléphone, à moins qu'elles n'aient de mauvaises réponses. Ces réponses médiocres peuvent provenir de visages ou de haut du corps peu clair et seraient automatiquement filtrées.

Architecture de réseau à ‘‘embeddings’’ de visage. Image d'Apple, “Recognizing People in Photos Through Private On-Device Machine Learning”, (2021)

Ceci est répété avec toutes vos images pour créer des groupes à partir de ces ‘‘embeddings’’. Ces groupes, qu’on appel clusters représentent les différentes personnes identifiées. Il fusionnera toutes les embeddings similaires en petits groupes où chaque groupe est un individu spécifique. C'est donc l'étape où toutes les photos où John a été identifié sont mises en commun dans une galerie. Et ce qui est cool, c'est que cela s'exécute automatiquement pendant la nuit lorsque votre téléphone se charge pendant que vous dormez et continue d’être amélioré plus vous avez de photos.

Répartition des embeddings de visage avant et après l'entraînement. Image d'Apple, “Recognizing People in Photos Through Private On-Device Machine Learning”, (2021)

Ainsi, une fois ces clusters créés, vos nouvelles photos contenant des personnes sont envoyées au même réseau profond pour créer un nouvel embedding par personne dans l'image. Ce nouvel embedding rejoindra soit un cluster s'il trouve une correspondance, soit en créera une nouvelle en fonction de la différence entre les embeddings que vous avez dans votre téléphone et les embeddings de la nouvelle image.

Ici, pour savoir s'il s'agit de la même personne ou non, le réseau se concentre principalement sur le visage. S'il est caché ou de côté, le réseau utilise le haut du corps couplé avec ce que nous avons du visage et prend en compte le temps auquel la photo a été prise pour mesurer si les vêtements pouvaient être identiques ou différents. Comme vous pouvez vous en douter, le haut du corps n'est pas toujours utile. Comme ils le disent, "Nous avons soigneusement réglé l'ensemble des seuils de calculs de distance du visage et du haut du corps pour tirer le meilleur parti des embeddings du haut du corps sans affecter négativement la précision globale." (traduction) Et c'est ainsi que Photos regroupe vos amis au sein de l'application à votre insu!

Une autre préoccupation était qu'ils voulaient offrir la même expérience à tous les utilisateurs d'Apple, quels que soient la couleur de peau, l'âge ou le sexe du sujet photographié. C'est formidable qu'ils continuent à améliorer la généralisation et à travailler pour supprimer ces biais de leurs algorithmes du mieux qu'ils peuvent en utilisant les ensembles de données les plus larges possible et l'augmentation des données pour ajouter des variations aux images d'entraînement.

Si vous avez un iPhone ou un iPad, n'hésitez pas à me dire ce que vous pensez de cette fonctionnalité de l'application Photos et à quel point elle fonctionne bien!

Merci d’avoir lu cet article!

Venez discuter avec nous dans notre communauté Discord: ‘Learn AI Together’ et partagez vos projets, vos articles, vos meilleurs cours, trouvez des coéquipiers pour des compétitions Kaggle et plus encore!

Si vous aimez mon travail et que vous souhaitez rester à jour avec l'IA, vous devez absolument me suivre sur mes autres médias sociaux (LinkedIn, Twitter) et vous abonner à ma newsletter hebdomadaire sur l'IA!

Pour supporter mon travail:

  • La meilleure façon de me soutenir est de souscrire à ma newsletter tel que mentionné précédemment ou de vous abonner à ma chaîne sur YouTube si vous aimez le format vidéo en anglais.

  • Soutenez mon travail financièrement sur Patreon

Références

Apple, “Recognizing People in Photos Through Private On-Device Machine Learning”, (2021), https://machinelearning.apple.com/research/recognizing-people-photos