Identification des personnes par Deep Learning

Appstud
5 min readAug 9, 2019

Introduction

Pour faire suite à notre dernier article qui porte sur l’identification des personnes, on vous présente une autre technique basée sur le Deep Learning pour le même objectif. Il existe des architectures spécifiques de réseaux de neurones convolutionnels pour ce problème. La différence principale de ces architectures par rapport aux architectures ordinaires est que l’entrée de ces réseaux n’est pas une seule image mais deux (certaines architectures prennent trois images). Le réseau doit donner comme sortie une mesure de similarité de ces deux images.

Deep learning

Avant d’expliquer l’approche d’identification des personnes, il est nécessaire de reprendre quelques notions de base sur les réseaux deep et surtout les réseaux convolutionnels.

Un réseau convolutionnel est constitué à la base de plusieurs couches d’opérations. L’opération essentielle dans ce type de réseau, et qui est à l’origine de leurs succès dans le domaine de vision par ordinateur, est la convolution.

La convolution est une opération mathématique qui à pour but d’appliquer à un signal image un certain filtre afin de donner une autre image. Il existe par exemple des filtres qui détectent les contours, d’autres qui détectent des couleurs... En Deep learning, le réseau apprend à estimer les filtres qui correspondent le mieux au problème automatiquement.

L’opération “MaxPooling”, qui se trouve très souvent dans les réseaux Deep, consiste à prendre le maximum entre chaque groupe de pixels. Elle permet la réduction de dimension de son entrée tout en conservant l’information essentielle.

L’opération de convolution entre une matrice et un filtre. Source: https://towardsdatascience.com/applied-deep-learning-part-4-convolutional-neural-networks-584bc134c1e2
L’opération “Max Pooling”. Source: https://computersciencewiki.org/index.php/Max-pooling_/_Pooling

Architecture du réseau

Le réseau de neurones¹ expliqué ici est formé de plusieurs couches:

Architecture du réseau de neurones¹.

Extraction des caractéristiques

Les deux images de taille [160,60] à l’entrée du réseau, passent en premier lieu par une couche de convolution de 20 filtres suivie par une couche de “Max Pooling” puis une autre couche de convolution de 25 filtres suivie par du “Max pooling” aussi. Il est important de noter que les deux images subissent exactement les même opérations ici. En d’autres termes, ce sont les mêmes filtres qui extraient les caractéristiques des deux images, la convolution est appelé donc “Tied convolution”. A la fin de cette étape chaque image sera représentée par une matrice 3D de taille [37,12,25].

Différence des caractéristiques

Après l’étape d’extraction de caractéristique, le réseau doit commencer à les comparer afin de pouvoir raisonner sur la similarité des ces images. Pour le problème d’identification de personnes, une approche consiste à comparer des “patches” locaux des deux images.

Pour ce faire, on compare les caractéristiques d’une image, à un endroit spécifique, à celles d’une deuxième image, dans une région voisine. La région voisine dans la seconde image est de taille 5x5 centrée sur l’endroit spécifique de la première image. Chaque matrice de caractéristiques d’une image est alors comparée à la matrice de caractéristique correspondante dans l’autre image pour donner comme sortie un volume de 25 matrices ayant chacune comme taille [37x5,12x5].

Ce processus est répété en inversant les rôles des deux images pour donner un autre groupe de 25 couches de même taille [37x5,12x5]. Ensuite les deux couches seront rassemblées pour donner un volume de 50 matrices, chacune de taille [37x5,12x5].

La méthode propose d’effectuer une convolution 3D, avec un “stride” (décalage) de 5, ce qui permet de résumer un espace de matrice de 5x5 en un seul nombre. Ainsi, nous obtenons un nouveau volume de 50 matrices plus denses, chacune de taille [37,12]. Enfin, on applique une couche de “MaxPooling” qui réduit la taille des matrices à [18,5].

Classification

Après l’étape d’extraction, et de calcul des différences des caractéristiques, vient l’étape finale de classification. Une couche dense de neurones de taille 500 sera implémentée et sera suivie par une couche finale, ayant comme sortie deux neurones qui donnent la probabilité que les deux images soit celles d’une même personne.

Visualisation des couches du réseau pour un couple d’image

Visualisation du parcours des images dans le réseau¹.

On peut visualiser certaines matrices dans les différentes couches pour voir le trajet que les images suivent afin de comprendre comment fonctionne ce réseau.

On remarque par exemple qu’une des couches de convolutions (L1) a tendance à détecter la couleur blanche (image à droite), tandis qu’une autre a plutôt tendance à détecter la couleur noir (image à gauche).

Dans la deuxième couche de convolution (L2), on remarque des résultats similaires: une des couches a tendance a s’activer pour les régions qui sont roses (image à gauche).

Si on regarde la couche L3, on peut directement constater que pour le cas positif, où les deux images correspondent à la même personne, on obtient une matrice dont les valeurs sont proches de zéro, ce qui est logique. En effet, deux images qui correspondent à la même personne ont presque les mêmes caractéristiques dans des régions voisines. Ainsi, leur différence va donner des valeurs proches de zéro. En revanche, ce n’est pas le cas pour le couple négatif, où on voit clairement qu’il y a une différence au niveau de vêtements des personnes.

Enfin, si on regarde la dernière couche L6 qui correspond au vecteur de taille 500, on voit que les deux cas donnent des résultats très différents, ce qui facilite la classification.

La méthode donne une précision rang 1 de 65% sur la base de donnée CUH0K1², contre 29.40% pour la deuxième meilleure méthode au moment de la rédaction de l’article¹. Sa précision sur la base de donnée VIPeR³, considérée la plus complexe, est de 34.81%.

Conclusion

Malgré un coût de calcul plus élevé, cette méthode de deep learning est plus performante que les méthodes traditionnelles. Pour les applications où la contrainte temps-réel n’est pas importante comme la performance du système, elle se présente comme un choix plus convenable et plus efficace que les méthodes classiques.

Fawzi Khattar, docteur du Lab Appstud

Relecture : Jérémy Basso et Romuald Ribas

Référence

  1. Ahmed, Ejaz, Michael Jones, and Tim K. Marks. “An improved deep learning architecture for person re-identification.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2015.
  2. http://www.ee.cuhk.edu.hk/~xgwang/CUHK_identification.html
  3. https://vision.soe.ucsc.edu/node/178

--

--

Appstud

At Appstud, we design digital experiences for humans. The key success of our products is our team, our methodology and the continuous innovation that drives us.