
Il y a quelques années, nos équipes avaient travaillé sur un prototype d’algorithme intelligent capable d’analyser à la volée, des comportements de consommateurs en magasins. Il y a quelques semaines, nous avons eu la chance de déployer cette solution au sein d’un hypermarché spécialisé en matériel de bricolage.
Notre idée était de brancher nos infrastructures d’analyse sur les flux des caméras de vidéo surveillance et d’effectuer une analyse comportementale sur la base des images récupérées. Nous parlons donc de Vision par ordinateur ou de Computer Vision, domaine de l’Intelligence Artificielle qui permet aux machines de comprendre et d’interpréter les images ou vidéos pour extraire des informations utiles.
Compte tenu des réglementations autour du RGPD, nous ne pouvions pas enregistrer les vidéos issues des caméras et effectuer un traitement à postériori. Nous avons donc imaginé une solution « RGPD-friendly » qui analyserait à la volée, un ensemble d’images, sans les sauvegarder. Ce qui
Dans un premier temps, notre objectif était de comprendre les flux d’individus, les temps d’attentes aux caisses, et les temps passés devant les rayons.
Principaux défis
Reconnaître un visage humain
La reconnaissance faciale consiste à reconnaître les personnes grâce à leur visage par un algorithme d’intelligence artificielle. “FaceNet” est un réseau de neurones profond créé par Google dans ce but. Ce réseau génère à partir d’une image un vecteur de 128 dimensions qui décrit le visage.
Malgré l’avancement sur ce sujet, ces méthodes ne sont pas complètement robustes, notamment quand la position du visage n’est pas frontale ou quand l’image est de mauvaise résolution ou floue. Il est donc important d’améliorer la robustesse de cet algorithme.
Suivi temporel des individus
Après la détection, la deuxième étape a été de suivre le trajet de chaque individu au fil du temps, d’une image à la suivante. Pour cela une correspondance doit être réalisée entre les individus détectés dans l’image précédente et celles détectées dans l’image courante.
L’information temporelle peut améliorer le suivi des individus et combler le point faible de la reconnaissance faciale. En effet, un individu A qui se situe à la position X, Y, Z à un instant t dans un magasin va être toujours présente dans une position proche de cette dernière à l’instant t+1. Ainsi, la modélisation du mouvement d’un individu en 3 dimensions est une information importante pour le suivi.
La question est donc de savoir estimer la position position d’un individu en utilisant des caméras.
Choix des caméras
En effet, il existe plusieurs approches, la méthode la plus simple – et celles que nous avons choisi – est d’utiliser une caméra RGBD (Red Green Blue Depth) qui donne aussi la profondeur de chaque “pixel”.
Une autre approche aurait été d’utiliser deux caméras calibrées correctement pour introduire la notion de profondeur : cette méthode s’appelle la stéréovision.
A partir d’une seule image, il est impossible de reconstruire la profondeur et donc la position en 3D. En effet, lors de la prise d’une image par une caméra traditionnelle, l’information de profondeur est perdue.
Un individu, plusieurs caméras
Nous avons expliqué précédemment comment notre système identifiait un individu se déplaçant en 3 dimension. Un élément clé à intégrer était la notion de caméras multiples. En effet, au travers une seule caméra, nous appliquons une étiquette à un individu. En rajoutant une seconde caméra, l’enjeu était d’éviter à tout prix que le même individu ne soit comptabilisé 2 fois.
Tout est une question de probabilités ! Nous avons commencé à associant dans un même identifiant l’âge probable de l’individu, s’il portant une barbe ou des lunettes, ainsi que son style vestimentaire. Cette approche nous a apporté des résultats satisfaisants mais pouvait trouver ses limites si 2 individus similaires étaient dans le magasin.
Notre client, pour ses besoins, a accepté le fait que le niveau d’erreur (environ 5%) était acceptable. Néanmoins, nous avons tout de même avancé sur une logique plus complexe présentée par Tesla lors de leurs AI Days en 2021. Vous pouvez retrouver la synthèse ici. Concrètement, la solution consiste à fusionner les images des différentes caméras en une seule vue tout en créant une représentation spatiale vectorielle 3D du monde. Cela implique bien entendu d’éviter le maximum de zones blanches (non couvertes par les caméras) afin de cartographier l’intégralité de l’espace.
Les résultats
Il est important de noter qu’aucun utilisateur n’avait accès aux flux vidéos analysés par notre système. Nous présentions l’information sous forme de logs. Les données internes au systèmes affichées étaient:
- Comptage des individus en magasin,
- Analyse x,y,z,t de la position temporelle des individus,
- Projection de l’âge des visiteurs (marge d’erreur pouvant aller jusqu’à 25%)
Les données externes au systèmes récupérées étaient:
- Horodatage,
- Météo,
- Jour de la semaine (ouvré, ouvrable, férié).
Les principales déductions issues de ces informations étaient:
- L’Analyse des flux clients : au travers un comptage et la cartographie des déplacements;
- La compréhension des comportements d’achat, grâce à l’analyse des zones chaudes ou des produits les plus consultés mais non achetés;
- La réduction des délais des campagnes marketing grâce à un suivi quasi temps réel de l’impact des campagnes d’affichage.
Vous souhaitez mettre en place un projet de computer vision au sein de votre entreprise? Contactez nous !