Détection d’anomalies dans une foule 2/5 : Concepts Théoriques pour le Traitement de Vidéo

La Javaness R&D
14 min readJun 6, 2024

--

Cette série d’articles plonge au cœur des défis, des concepts et des technologies de l’Intelligence Artificielle appliquée à la détection d’anomalies dans les foules. À travers chaque article, nous explorons une des étapes clés de cette thématique, des enjeux éthiques aux algorithmes innovants, en passant par le décryptage théorique du traitement vidéo par l’IA.
Ce second article vise à introduire les concepts théoriques liés à une application de détection d’anomalies dans une foule par Deep Learning et Computer Vision. Nous supposons du lecteur des connaissances élémentaires en informatique, en machine learning et en mathématiques.

📼 Traitement de Données Vidéos

La vidéo est une représentation dynamique d’informations visuelles, composée d’une séquence d’images appelées trames affichées à un rythme rapide. En informatique, les images sont stockées sous la forme d’une mosaïque de petits carrés appelés pixels. Ces pixels stockent des informations sur les couleurs, représentées sous forme de valeurs numériques. Chaque image capture un moment spécifique de la scène visuelle, et la succession rapide des images crée l’illusion du mouvement. Les principaux facteurs qui influencent la qualité vidéo sont la résolution et la fréquence d’images (trames par seconde).

Comme les signaux audio, les signaux vidéo peuvent être exprimés numériquement sous la forme d’une série temporelle. Dans notre contexte informatique, la couleur et l’intensité de chaque pixel se voient attribuer des valeurs numériques, créant ainsi une représentation numérique du contenu visuel. Pour ce projet, nous travaillerons principalement avec des images vectorielles rouge-vert-bleu (RVB). En RVB, chaque pixel est représenté par trois nombres correspondant aux valeurs de rouge, de vert et de bleu, chacun allant de 0 à 255 (encodage en 8 bits). La combinaison de ces valeurs génère une teinte spécifique parmi les 16,8 millions de combinaisons de couleurs possibles.

La résolution spatiale d’une vidéo, c’est-à-dire le nombre de pixels par unité de surface, détermine la clarté et le détail des informations visuelles. Les résolutions courantes sont la haute définition (HD) avec 1920x1080 pixels et l’ultra-haute définition (UHD) avec 3840x2160 pixels. Une image UHD est représentée par un tableau de taille (3840, 2160, 3), 3840 étant la largeur, 2160 la hauteur et 3 représentant les valeurs RVB de chaque pixel.

Représentation schématique d’une image en informatique

Dans le cadre de notre projet, il peut s’avérer nécessaire de redimensionner les images vidéo. Cependant, étant donné que le numérique fonctionne avec des nombres discrets à contrario des expériences humaines qui sont souvent analogiques, nous devons tenir compte du taux d’échantillonnage. Le théorème de Shannon-Nyquist nous aide à déterminer le point optimal auquel toutes les informations nécessaires sont enregistrées sans consommation inutile de ressources. Des techniques d’anticrénelage sont employées si nécessaire pour éviter les distorsions.

La fréquence d’images, mesurée en frames (trames) par seconde (fps), indique le nombre d’images individuelles affichées en une seconde. Les fréquences d’images standard vont de 24 images par seconde pour les contenus cinématographiques à 60 images par seconde pour les mouvements plus fluides. Dans ce projet, les images vidéo sont généralement échantillonnées à un taux de fps = 30, ce qui signifie qu’une séquence vidéo d’une seconde se compose de 30 images.

Représentation schématisée d’une vidéo en informatique

Nous parlons de traitement “hors ligne” lorsque nous analysons des données vidéo préenregistrées après la fin de l’enregistrement, et de traitement “en ligne” lorsque nous analysons la vidéo en temps réel pendant qu’elle est capturée ou diffusée en continu. Dans le cadre de ce projet, nous utiliserons un processus hors ligne, mais nous essaierons de développer des modèles et des algorithmes capables de répondre aux exigences d’un processus en ligne, notamment en termes d’images traitées par seconde (nous utiliserons un traitement hors ligne en temps réel).

🕸 Réseaux Neuronaux et Deep Learning

Glossaire

Dans ce travail, nous explorerons des algorithmes d’intelligence artificielle. Nous emploierons des termes techniques et présentons ici les méthodologies qui guideront notre exploration.

  • Apprentissage supervisé / non supervisé : Il s’agit des deux principales approches d’un problème d’apprentissage automatique. L’apprentissage supervisé implique la formation d’un modèle à l’aide de données étiquetées, où l’algorithme apprend à faire correspondre les données d’entrée aux étiquettes de sortie correspondantes. Dans l’apprentissage non supervisé, le modèle explore les structures inhérentes de l’ensemble de données de manière indépendante, sans orientation explicite ni exemples étiquetés.
  • Classification / régression : La classification et la régression représentent des tâches distinctes au sein de l’apprentissage supervisé, chacune étant adaptée à des objectifs de prédiction différents. La classification se concentre sur l’affectation des données d’entrée à des catégories ou classes prédéfinies, en déterminant l’étiquette appropriée pour une entrée donnée, tandis que la régression est axée sur la prédiction de valeurs numériques, en estimant une sortie numérique plutôt que des classes discrètes.

Définitions

Les réseaux neuronaux s’inspirent du fonctionnement des cerveaux biologiques. Ils se composent de nœuds interconnectés, ou “neurones”, organisés en couches qui traitent et apprennent en collaboration à partir des données d’entrée. Chaque neurone reçoit des informations des neurones voisins, applique une fonction d’activation (pour la non-linéarité) et transmet la sortie aux neurones suivants. Le processus d’apprentissage implique l’optimisation d’une fonction de perte définie, qui dépend principalement de la tâche spécifique à accomplir.

Forward propagation de l’information à traver un neurone (source)

Le Deep Learning (DL) représente un sous-ensemble de techniques d’apprentissage automatique qui s’appuie sur des réseaux neuronaux artificiels (ANN) intégrant l’apprentissage de caractéristiques (alias apprentissage de représentation), un ensemble de techniques permettant à un système de découvrir de manière autonome les représentations nécessaires à la détection ou à la classification de caractéristiques à partir de données brutes.

Un réseau neuronal est considéré comme un “réseau neuronal profond” (RNP) lorsqu’il incorpore des couches de neurones cachés entre les couches d’entrée et de sortie. La profondeur du réseau augmente avec le nombre de couches.
Il existe de nombreux types de couches utilisées pour construire un réseau neuronal profond :

  • La couche convolutive (CONV) : La couche convolutive sert d’étape initiale pour l’extraction des caractéristiques des données d’entrée. Dans cette couche, une opération de convolution est appliquée. Cette opération est une agrégation des informations locales des pixels afin de capturer les relations entre les pixels voisins. La convolution est effectuée entre les données d’entrée et un filtre, également connu sous le nom de “noyau”, qui glisse sur l’entrée à différentes positions. À chaque position, une multiplication par élément se produit entre les valeurs de la matrice du noyau et les valeurs des pixels de l’entrée avec laquelle elle s’aligne. Les résultats de ces multiplications sont additionnés pour produire une valeur unique, constituant la sortie de l’opération de convolution pour cette position spécifique du noyau dans l’entrée.
Opération de convolution appliquée à une entrée 2D. Le processus peut être généralisé à d’autres dimensions (source)

La taille de la carte de caractéristiques de sortie est influencée par des facteurs tels que la taille de l’entrée, la taille du noyau et le nombre de pixels sur lequel le noyau se déplace après chaque opération.
Le nombre de noyaux influe sur la profondeur de la sortie et sur le nombre de cartes de caractéristiques générées dans la couche convolutive.

  • La couche de mise en commun (POOL) : La couche de pooling est une opération de sous-échantillonnage généralement appliquée après une couche convolutive lorsque la dimension des données est encore trop importante. Le principe est similaire à celui de la couche convolutive, mais plus simple. Un filtre “glisse” sur chaque région de nos données d’entrée, et pour chaque position du filtre, on récupère la valeur minimale, maximale, médiane ou moyenne de l’ensemble des pixels concernés. Les types de pooling les plus populaires sont le pooling max et le pooling average.
Fonctionnement du max pooling et du average pooling (source)
  • La couche entièrement connectée (CF) : La couche entièrement connectée se compose de poids, de biais et de neurones, facilitant les connexions entre deux couches différentes. Généralement placées avant la couche de sortie, les couches entièrement connectées sont des composants cruciaux de la dernière partie de l’architecture d’un réseau neuronal profond.
    Après avoir “aplati” les données, la couche entièrement connectée relie chaque neurone d’une couche à chaque neurone de la couche suivante, ce qui facilite l’apprentissage de motifs complexes. Les couches entièrement connectées sont essentielles pour des tâches de classification, où les couches finales contribuent à faire des prédictions basées sur les caractéristiques apprises.
Schématisation d’une couche entièrement connectée (source)

Architectures principales des réseaux neuronaux profonds

Dans l’apprentissage supervisé avec les réseaux neuronaux profonds (DNN), les types d’architectures couramment utilisées sont les suivantes :

  • Les Feedforward Neural Networks (FNN) : Les FNN sont la forme la plus élémentaire des réseaux neuronaux. Ils sont composés d’une couche d’entrée, d’une ou plusieurs couches cachées et d’une couche de sortie. L’information circule dans le réseau dans une seule direction, de la couche d’entrée à la couche de sortie, sans cycle ni boucle. Chaque neurone d’une couche est connecté à tous les neurones de la couche suivante. L’activation des neurones est déterminée par une somme pondérée des entrées, passée par une fonction d’activation. Les FNN sont polyvalents, faciles à entraîner et adaptés aux tâches où les données d’entrée et de sortie ont une correspondance claire, ce qui les rend largement utilisés dans les tâches de reconnaissance de motifs dans les données.
  • Réseaux neuronaux récurrents (RNN) : Les RNN sont caractérisés par des connexions qui forment un cycle, ce qui leur confère la capacité de saisir les dépendances séquentielles dans les données. Dotés d’un état caché, ils retiennent des informations sur les entrées antérieures de la séquence. Les architectures spécialisées telles que le Long Short-Term Memory (LSTM) et le Gated Recurrent Unit (GRU) ont été conçues pour résoudre le problème du “vanishing gradient”. Grâce à leurs capacités mémorielles, les RNN sont adaptés aux tâches de traitement de données séquentielles, telles que la prédiction de séries temporelles, la reconnaissance vocale ou le traitement du langage naturel.
Architecture FNN vs architecture RNN
  • Réseaux neuronaux convolutifs (CNN) : Les CNN (Réseaux de Neurones Convolutifs) sont spécifiquement conçus pour des tâches impliquant des données structurées dans l’espace sous forme de grille, telles que les images. Ils sont généralement composés de couches convolutives suivies de couches de mise en commun, puis de couches entièrement connectées pour la classification. Les CNN excellent dans la capture des hiérarchies spatiales et des motifs locaux. Les couches convolutives aident à détecter des caractéristiques locales telles que les bords, les textures et les formes, tandis que les couches de mise en commun réduisent les dimensions spatiales tout en préservant les informations importantes. Les CNN sont largement utilisés dans des tâches telles que la classification d’images, la détection d’objets et la segmentation d’images. Cette structure sert de base à la conception de nombreux modèles étudiés dans la suite de ce travail.
Architecture basique d’un CNN (source)

Réseaux neuronaux profonds pour le traitement d’images

En traitement d’image, les DNN et en particulier les CNN, particulièrement utiles pour le traitement d’image, servent de colonne vertébrale pour l’extraction de caractéristiques et la reconnaissance de motifs. Plusieurs architectures plus complexes, telles que R-CNN (Réseaux de Neurones Convolutifs basés sur les régions), FPN (Réseaux de Pyramides de Caractéristiques) et RPN (Réseaux de Propositions de Régions), ont ouvert la voie à une détection d’objets plus efficace et précise.

R-CNN pour le traitement d’images

L’impossibilité des CNN standards à détecter un nombre variable d’objets dans une image en raison de la longueur fixe de leurs couches de sortie a engendré la nécessité d’une solution intégrant un module de proposition de région. Les R-CNN ont été les pionniers de l’adoption d’une approche en deux étapes pour la détection d’objets, débutant par la proposition de régions avant d’effectuer la classification.

Pendant la phase de proposition de région, des régions d’objets potentiels sont générées à l’aide d’un algorithme de recherche sélective (selective search). Ces régions spécifiques sont ensuite soumises à une extraction de caractéristiques basée sur le CNN, transformant chaque proposition de région en un vecteur de caractéristiques de longueur fixe qui sera introduit dans des couches entièrement connectées responsables de la classification des objets et de la régression de la boîte englobante (bounding box). La couche de classification prédit la probabilité de présence d’un objet dans la proposition de région, et la couche de régression affine les coordonnées de la boîte englobante pour mieux s’adapter à l’objet.

Fonctionnement du R-CNN (source)

Bien que le R-CNN ait établi les bases de la détection d’objets, il reste très demandant en calculs. Son inefficacité calculatoire résulte du traitement indépendant de chacune des quelque 2 000 régions proposées. Ces limitations ont conduit à des progrès vers une architecture plus rationalisée, le Fast R-CNN.

Le Fast R-CNN a introduit la couche de mise en commun des RoI (régions d’intérêt / Regions of Interest). Au lieu de traiter chaque proposition de région de manière indépendante, le Fast R-CNN effectue l’extraction des caractéristiques sur l’ensemble de l’image, puis utilise la mise en commun des régions d’intérêt pour extraire les caractéristiques spécifiques à chaque proposition de région. Cela améliore considérablement l’efficacité en éliminant les calculs redondants.

Néanmoins, les deux architectures utilisent un algorithme de recherche sélective (selective search) pour établir des propositions de régions. L’algorithme de recherche sélective est lourd en calcul et est fixe. Il n’y a pas d’apprentissage à ce stade. De plus les propositions de régions candidates sont généralement de mauvaise qualité.

Pour combler cette lacune, le Faster R-CNN va plus loin en intégrant un RPN directement dans le réseau au lieu de la recherche sélective. Le RPN est un réseau de convolution qui agit comme un mécanisme cognitif “d’attention” pour notre module Faster R-CNN, indiquant “où regarder” dans l’image. Il génère un ensemble de propositions d’objets rectangulaires (chacune avec un score “d’objectness”, mesurant l’appartenance à un ensemble de classes d’objets). Le recadrage des régions d’intérêts s’effectue sur la carte des caractéristiques extraites.

Cette innovation améliore à la fois la vitesse et la précision, faisant de Faster R-CNN l’un des modèles SOTA les plus fiables actuellement.

Architecture RPN (source) & benchmark des temps de traitement (source) pour chaque modèle R-CNN

FPN pour le traitement d’images

Les Réseaux de Pyramides de Caractéristiques (FPN) abordent les défis liés à la variation de la taille des objets dans une image. Les CNN fonctionnent selon une structure hiérarchique où la résolution de la carte des caractéristiques diminue avec chaque couche, tandis que la richesse sémantique capturée par les couches plus profondes s’intensifie. Cependant, en contrepartie, les caractéristiques sémantiquement robustes deviennent plus “grossières” spatialement (plus générales et donc moins précises) en raison de la réduction de l’échantillonnage .

Les FPN résolvent ce problème en utilisant une architecture composée de deux voies : une voie ascendante constituée d’un CNN feed-forward normal, et une conception descendante avec des connexions latérales. Cette approche permet la création d’une pyramide de caractéristiques qui fusionne les caractéristiques de différentes couches, améliorant ainsi la capacité du réseau à détecter des objets à la fois à des niveaux fins et à des niveaux plus grossiers.

Deux architectures possibles de FPN. Au dessus, les prédictions ne sont faites qu’au niveau le plus fin du réseau tandis qu’en bas elles sont réalisées à tous niveaux (source)

Les FPN présentent également l’avantage d’être extrêmement polyvalents dans leurs applications potentielles. Ils contribuent à l’amélioration à la fois du RPN et des Fast R-CNN et Faster R-CNN. Pour le RPN, les FPN remplacent la carte des caractéristiques à échelle unique par une pyramide de caractéristiques, ce qui améliore à la fois la vitesse et la précision. En ce qui concerne les Fast R-CNN et Faster R-CNN, les FPN permettent l’attribution de régions d’interêts de différentes échelles aux niveaux de la pyramide, améliorant ainsi l’adaptabilité du détecteur d’objets basé sur des régions.

Approches Etat de l’art pour la détection d’objets

S’appuyant sur les principes présentés plus tôt, les approches contemporaines repoussent les limites de la performance pour la détection d’objets. Nous discuterons en particulier du framework Detectron2 et du modèle de détection d’objets YOLOv8 (You Only Look Once).

S’appuyant sur le succès de son prédécesseur, Detectron2 est un système de détection d’objets de pointe développé par Facebook AI Research. Il prend en charge diverses tâches de vision par ordinateur, y compris la détection d’objets. Dans notre cas, l’aspect le plus intéressant de Detectron2 est son large éventail de modèles de pointe pour la détection d’objets, comprenant des R-CNN en cascade et des Faster R-CNN.

Dans le cadre de ce projet, nous utiliserons le modèle “R101-FPN” fourni par Detectron2. Ce modèle est une instance de l’architecture Faster R-CNN en deux étapes avec une colonne vertébrale ResNet-101 et un FPN servant de RPN. ResNet-101 est une architecture CNN faisant partie de la famille ResNet (Residual Network). Le “101” représente le nombre de couches du réseau. Il a été imaginé pour relever le défi de l’entraînement de réseaux neuronaux très profonds, sa principale innovation étant l’utilisation de blocs d’apprentissage résiduels, qui introduisent des connexions de raccourci ou des sauts de connexion.

Alors que les Faster RCNN détectent les régions d’intérêt possibles à l’aide d’un RPN, YOLO représente un changement de paradigme dans la détection d’objets en adoptant une approche en une seule étape, en utilisant un seul réseau neuronal pour prédire à la fois les boîtes englobantes et les probabilités de classe. Le nom de YOLO, “You only look once”, vient du fait que, contrairement aux méthodes utilisant un RPN, il parcourt une image en une unique itération, atteignant ainsi des vitesses impressionnantes permettant la détection d’objets en temps réel.
YOLO a connu de nombreuses améliorations de son architecture depuis sa première version en 2015. Cependant, son principe de fonctionnement de base reste le même dans chaque version. Il fonctionne en divisant une image en une grille pour laquelle chaque cellule prédit simultanément les boîtes de délimitation et les probabilités de classe.

Philosophie de YOLO pour aborder la détection d’objet en une seule étape (source)

YOLOv8, la dernière version de YOLO, utilise deux composantes clées pour effectuer la détection d’objets:

  • Une colonne vertébrale composée de couches convolutives qui extraient les caractéristiques pertinentes de l’image d’entrée
  • Une nouvelle tête découplée chargée de produire la sortie finale du modèle sous la forme de boîtes englobantes et de classes d’objets à partir des cartes de caractéristiques produites par sa colonne vertébrale.
Architecture de YOLOv8 (source)

Plus précisément, la couche “SPPF” traite les caractéristiques à différentes échelles et les couches “Upsample” augmentent les résolutions de cartes de caractéristiques. Le module “C2f” combine les caractéristiques de haut niveau avec le contexte général pour améliorer la précision.
Dans YOLOv8, la tête est découplée, gérant les tâches “d’objectness”, de classification et de régression de manière indépendante. Cette conception améliore la précision en permettant à chaque branche de se concentrer sur sa tâche spécifique. La tête, optimisée pour la vitesse et la précision, utilise des couches convolutives suivies d’une couche linéaire pour prédire les boîtes englobantes et les probabilités de classe, en prêtant attention au nombre de canaux et à la taille des noyaux.
L’architecture globale de YOLOv8 est conçue pour être rapide et efficace, tout en assurant une grande précision de détection.

Le prochain article de la série se basera sur les concepts abordés ici afin d’explorer l’implémentation technique d’un détecteur multi-objets de personnes dans une foule.

À propos de l’auteur

Diplômé en ingénierie de l’ISEP et titulaire d’un Master en Data Science et IA de Chalmers University, Axel GAUTRAND a rejoint La Javaness en 2023 en tant que Data Scientist après un stage réussi consacré à la détection d’anomalies dans les foules. À La Javaness, Axel se concentre principalement sur des projets de Computer Vision et d’OCR, notamment pour l’archivage automatisé de documents historiques. Il s’intéresse également à l’impact de l’IA sur la performance sportive et la santé et aux considérations éthiques de cette technologie.

Nous remercions nos collègues Laura RIANO et Agnès GIRARDOT pour leur relecture attentive.

--

--

La Javaness R&D
La Javaness R&D

Written by La Javaness R&D

We help organizations to succeed in the new paradigm of “AI@scale”, by using machine intelligence responsibly and efficiently : www.lajavaness.com

No responses yet