Analyse du paysage audiovisuel publicitaire à l'aide de réseaux de neurones

L’Autorité de Régulation Professionnelle de la Publicité définit des règles d’éthique, leur application et le contrôle de l’application à travers les acteurs de la publicité en France. 

Afin d’étudier la coloration sociale du paysage publicitaire français sur l’année 2019, l’ARPP a commandé une étude sur un corpus de plus de 20 000 clips publicitaires TV et VOD dont nous avons assuré la réalisation.

Cette démarche inédite vise à identifier, dénombrer et suivre les différents acteurs de chaque clip, en déterminant leur âge et leur genre.

Dans ce billet, nous vous présentons notre démarche humaine et technique ainsi que l’intégration de la solution dans des pipelines de production.

Fig. 1. Résultats sur une image d’un clip

Méthodologie

Après avoir audité le besoin et présenté notre approche et ses spécifications techniques à l’ARPP, nous leur avons assuré un suivi constant malgré une date butoir restrictive. Chaque semaine, nous avons fait suivre un rapport technique rédigé sur l’avancée du projet, et sommes restés disponibles concernant des interrogations via des rendez-vous réguliers.

L’étude a été scindée en 3 modules pour plus de flexibilité :

  • Analyse vidéo,
  • Analyse audio,
  • Pipelines de production et solution clé en main.

Le code source, les spécifications techniques et une documentation exhaustive ont été livrés pour chaque module afin de permettre une utilisation autonome de cette solution dans le futur. Afin de valider notre expertise,  nous l’avons appliquée sur les données de l’année 2019.

Analyse vidéo

Détection des visages

Fig. 2. Architecture fonctionnelle globale

Après avoir longuement étudié l’existant à travers plusieurs publications scientifiques, nous avons fait le choix de découper la vidéo en extrayant les images clés en amont de la détection (2).

Les méthodes traditionnelles de machine learning pour la détection de visages utilisent des descripteurs de Haar avec AdaBoost pour entraîner des classificateurs en cascade. [1]
La performance de ces méthodes reste bonne mais elles sont très sensibles aux variations sur les visages : éclairage, orientation, pose… Pour des scènes publicitaires avec des plans très différents, des ethnies et des visages variés, il nous fallait un modèle plus robuste.
Nous avons utilisé l’apprentissage profond avec des cascades de réseaux convolutionnels en 3 phases (MTCNN) [2].  La première consiste à produire un grand nombre de candidats à travers un réseau de neurones peu profond. Les deux phases suivantes utilisent des réseaux plus puissants et profonds pour affiner successivement les résultats.

Dans la publication originale [2], les candidats entre chaque phase sont réduits à l’aide de l’algorithme dit de Non-maximum suppression (NMS). Nous avons également remplacé cet algorithme par une implémentation plus récente et plus efficace appelée Soft-NMS. [3]

Détermination de l’âge et du genre

Les implémentations récentes ont, pour le genre, une précision allant de 70% à 95%, [4] [5] et pour l’âge de 50% à 80% [6] [7] [8] (en 5-off). Toutes ces implémentations utilisent du transfer learning, soit depuis un modèle massif réputé en reconnaissance d’objet (VGG-Net, YoLo, Inception,…), soit directement depuis des modèles spécialisés dans le traitement de visages (FaceNet [8], DeepFace [9]…). Après plusieurs tests, nous avons opté pour une base MobileNet pré-entraînée avec des couches denses rajoutées en fin de réseau, car ce réseau est à la fois robuste et rapide.

Suivi des acteurs

Fig. 3. Etapes du tracking

A tout instant, il faut déterminer si le visage détecté appartient à la même personne qu’aux instants précédents, tout en gardant une cohérence sur le genre et l’âge. De ce fait, notre problématique est une chaîne de Markov, usuellement résolue en Deep-Learning via des réseaux récurrents. Toutefois, ceux-là sont beaucoup plus lents qu’une détection en one-shot, surtout pour du traitement d’images. En pratique, nous avons dû récupérer les feature vectors, qui sont les représentations vectorielles réduites de chaque visage détecté. Pour obtenir les feature vectors les plus aptes à un clustering de visages, nous avons préféré utiliser ceux produits par le FaceNet plutôt qu’en récupérer à la fin de notre propre réseau. Couplée à du preprocessing et des clusterings (3), cette méthode nous offre des résultats très satisfaisants (4).

Fig. 4. Résultats du tracking sur un clip

Analyse audio

Il est nécessaire d’extraire l’audio du clip et de le segmenter, puis pour chaque segment audio de calculer une représentation sous forme de coefficients Cepstraux à fréquence Mel qui permettent de construire une échelle fréquentielle adaptée pour la voix. Cette représentation est ensuite transmise à une mixture Gaussienne, qui a été entraînée au préalable pour reconnaître certaines particularités de la voix. 

Enfin, les groupes de segments sont  transmis à des réseaux convolutionnels, différenciant dans un premier temps le bruit de la voix, puis le genre homme ou femme (5).

Fig. 5. Process d’analyse audio

En 2018, l’Institut National de l’Audiovisuel a construit son propre réseau convolutionnel de segmentation audio [10], qui a été entraîné en utilisant l’INA Speaker Dictionary [11] (speechtrax.ina.fr) qui est la plus grande base de données d’orateurs au monde [12]. Nous l’avons utilisée comme base pour notre détecteur.

Pipeline de production

Pour relier l’étude à l’existant, il était nécessaire d’identifier les métadonnées des films à analyser telles qu’elles étaient présentées en sortie des APIs de l’ARPP. Il fallait également récupérer les clips bruts depuis leur espace de stockage.

Une interface web client a également été construite afin de déclencher une nouvelle analyse à tout instant.

Finalement, nous avons réalisé une chaîne d’intégration et de déploiement continue sur le code, sa conteneurisation ainsi que sa documentation.

L’ensemble de l’étude a été déployé sur le cloud Azure avec l’architecture suivante (6).

Fig. 6. Architecture Cloud de la solution clé en main

Conclusion

Nous remercions chaleureusement l’ARPP qui nous a fait confiance sur toute la durée de ce projet et nous a permis de publier ce billet, et vous invitons à consulter leur article si vous êtes désireux de connaître certains des résultats de l’étude.

 

Etude réalisée par MM. Antoine Champion, Yohann Barré, Pierre-Henry Baudin.

Références

[1] P. Viola, M.J. Jones, Rapid Object Detection using a Boosted Cascade of Simple Features, 2001

[2] K. Zhang et al., Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks, 2015

[3] N. Bolda, B. Singh et al., Improving Object Detection With One Line of Code, 2017

[4] A. Bartle, J.Zheng et al., Gender Classification with Deep Learning, 2015

[5] G. Levi, T. Hassncer, Age and Gender Classification using Convolutional Neural Networks, 2015

[6] R. Rothe, R. Timofte, L.V. Gool, DEX: Deep EXpectation of apparent age from a single image, 2015

[7] K. Zhang et al., Fine-Grained Age Estimation in the Wild with Attention LSTM Networks, 2018

[8] F. Schroff, D. Kalenichenko, J. Philbin, FaceNet: A Unified Embedding for Face Recognition and Clustering, 2015

[9] Y. Taigman, M. Yang, M.A. Ranzato, L. Wolf, DeepFace: Closing the Gap to Human-Level Performance in Face Verification, 2014

[10] D. Doukhan, J. Carrive, F. Vallet, A. Larcher, S. Meignier, An Open-Source Speaker Gender Detection Framework for Monitoring Gender Equality, 2018

[11] F. Vallet, Jim Uro, J. Andriamakaoly, H. Nabi, M. Derval, J. Carrive,  Speech trax: A bottom to the top approach for speaker tracking and indexing in an archiving context, 2016 

[12] A. Nagrani,  J. S. Chung, A. Zisser-man,  Voxceleb: A large-scale speaker  identification dataset, 2017