Structure d’accueil
Contexte du projet
Ce sujet de stage est né d’une problématique autour de la sécurité dans un smart city (une ville intelligente), l’automatisation des systèmes de sécurité à l’aide des caméras de surveillance, aujourd’hui, qui ne cesse d’augmenter en quantité et qua- lité autour de nous dans nos vie quotidienne dans des lieux public comme privé, dans nos service comme nos domicile La sécurité des citoyens dans les environ- nements urbains modernes est un aspect important de la qualité de la vie Pro- mouvoir la capacité, l’importance de la vidéosurveillance basée sur les villes in- telligentes L’exploitation des sources de données fournissant une quantité énorme d’informations précieuses le plus tôt possible afin de prendre des décisions et agir en conséquence Inspectées, identifié les évènements inattendu beaucoup plut tôt, d’extraire des actions humaines à partir de vidéos enregistrées ou éventuellement en temps réel, de reconnaˆıtre des modèles et d’apprendre les comportements habi- tuels, puis de détecter s’il en existe des anormaux L’approche de la ville intelligente est considérée comme une solution prometteuse aux problèmes liés à l’urbanisa- tion accrue Vues les performances de certaines méthodes de deep learning et de la vision par ordinateur de comprendre, caractériser le mouvement et des com- portements humain sur certaines données vidéo, il était question de les appliquer sur nos données Le but du projet est d’utiliser des informations provenant des caméras de surveillance pour l’optimisation de la sécurité des personnes dans les périmètre du systèmes de sécurité urbain, de détecter des évènements anormaux
Problématique
La problématique de notre travail fait mention de la reconnaissance des actions humaines telles que : violence et non violence Ces actions expliquent entre autres les activités effectuées par au moins deux personnes dans une scène (voir Figure
3 https ://vision.seecs.edu.pk/vision-based-violence-detection-system/
Objectifs du stage
Les objectifs de ce stage étaient de faire :
— une études préalable du domaine de la détection d’anomalie des comporte- ments humain via une caméra de surveillance,
— proposer une solution spécifique du domaine de la détection d’anomalie, donc la détection de violence,
— mettre en œuvre cette solution permettant d’extraire les actions humaines et de détecter les comportements anormaux à partir d’une caméra en uti- lisant les certaine technique de l’apprentissage profond et de la vision par ordinateur.
Détection de violence
L’approche à l’aide de fonctionnalités de bas niveau
L’organigramme général de l’approche de la détection de la violence par fonc- tionnalités de bas niveau est composé de cinq phases à savoir :
— segmentation de région de mouvement,
— extraction de caractéristiques de bas niveau,
— traitement de caractéristiques et classification
Comme mentionné dans la référence [15], les images consécutives sont très redon- dantes, il n’est donc pas nécessaire d’extraire les images image par image Pendant la phase de prétraitement vidéo, les images sont extraires d’une longue séquence vidéo en utilisant une stratégie d’échantillonnage temporel clairsemée, qui est ap- pelée cadre de segment temporel [15] L’organigramme général de l’approche est illustré dans la figure 4.
Figure 4 – Organigramme général de l’approche proposée.
Cinq phases sont impliquées : le prétraitement vidéo, la segmentation de la région de mouvement, l’extraction d’entités, le traitement et la prédiction d’entités.
L’approches à l’aide du descripteur audio-visuel
Cette section décrit la représentation audio-visuelle jointe proposer pour la dé- tection des événements et plus précisément de scènes violentes Le but étant d’ex- ploiter la forte corrélation entre l’information audio et l’information visuelle afin de découvrir des motifs audio-visuels capables d’identifier les scènes violentes.
La représentation des motifs audio-visuels est censée donner de meilleurs résultats qu’une simple fusion (précoce ou tardive) des deux modalités audio et visuelle qui ignore leurs corrélations La méthode proposée est composée de trois étapes :
1 Dans un premier temps, les descripteurs locaux audio et visuels sont extraits à partir de la vidéo ;
2 Ensuite, les motifs bimodaux (ou encore les mots bimodaux) sont trouvés et le dictionnaire bimodal est construit ;
3 Enfin, la représentation sous la forme de sacs-de-mots bimodaux est construite par l’intermédiaire de ces mots.
Le processus général de la méthode est illustré dans la figure 5.
Figure5 – Le processus général pour la génération de sacs-de-mots audio-visuels.
L’approche heuristique du comportement
Gao et al les descripteurs de flux violents proposés pour détecter la violence dans les vidéos de foule Plus récemment, Mohammadi et al [19] ont proposés une nouvelle approche basée sur une approche heuristique du comportement pour classifier les vidéos violentes et non violentes Au-delà de la discrimination fondée sur des formes violentes et non violentes, les auteurs dans [20] ont proposés d’uti- liser le suivi pour modéliser le mouvement normal de personnes et détecter une déviation de ce mouvement normal comme une anomalie En raison de la difficulté d’obtenir des pistes fiables, plusieurs approches évitent de suivre et apprennent les modèles de mouvement globaux à l’aide de méthodes basées sur l’histogramme, la modélisation de sujets [16], les modèles de mouvement, les modèles de forces sociales, les mélanges de modèles de textures dynamiques.
La structure générale est illustré dans la figure 6.
Figure 6 – Détection des événements anormaux dans les séquences vidéo.
Tout d’abord, nous avons une extraction d’une description de mouvement au moyen d’un flux optique dense (l’advection de particules peut également être uti- lisée) Deuxièmement, en suivant l’équation de dérivée substantielle, nous calculons la force locale et la force de convection entre chaque paire consécutive de trames.
Ensuite, nous avons suivi le paradigme standard du sac de mots pour chaque force séparément, en échantillonnant P patchs et en les encodant dans K centres Enfin, nous concaténons les histogrammes pour former le descripteur final, défini comme la force totale.
L’approche basées sur fonctionnalités audio
Les premiers travaux sur le terrain comprennent [32], présenter dans la figure 8, ó des scènes violentes dans des vidéos ont été reconnues en utilisant la détection de flammes et de sang et en capturant le degré de mouvement, ainsi que les sons caractéristiques des événements violents.
Figure 7 – Processus de fusion multimodale
Un travail important a été réalisé sur l’exploitation des fonctionnalités audio et vidéo d’une vidéo afin de détecter et localiser la violence [26] Par exemple, dans, une méthode faiblement supervisée est utilisée pour combiner les classificateurs auditifs et visuels de manière co-formative Bien que l’intégration de l’audio dans l’analyse soit souvent plus efficace, l’audio n’est pas souvent disponible dans les vidéos de surveillance publique Ce problème a été résolut en développant une architecture de détection de la violence qui ne nécessite pas de fonctionnalités audio De plus, la violence est une catégorie assez large, englobant non seulement la violence de personne à personne, mais aussi la violence de foule, la violence sportive, le feu, les coups de feu, la violence physique, etc Dans [31], la violence des foules est détectée à l’aide du modèle allocation de Dirichlet latente (LDA) et des machines à vecteurs de support (SVM) La détection de la violence par la détection d’objets spécifiques liés à la violence tels que les armes à feu est également un sujet de recherche actuel.
L’approche basées sur les trames
Plusieurs techniques existantes utilisent des changements inter-images pour la détection de la violence, afin de capturer des modèles de changement de mouve- ment rapide qui sont typiques d’une activité violente [24] ont proposés l’utilisation d’estimations d’accélération calculées à partir du spectre de puissance des trames adjacentes comme indicateur de mouvement rapide entre trames successives [36] ont proposés un réseau neuronal profond pour la détection de la violence en se nourrissant des différences de trame Il a été proposés d’utiliser des caractéristiques d’objets blob, obtenues en soustrayant des trames adjacentes, comme descripteur de caractéristiques Dans la figure ci-dessous nous avons une illustration de la basés sur les trames.
Figure 8 – Archtecture basées sur les trames (changements inter-images)
L’approche basées sur les points d’intérêt
D’autres méthodes suivent des techniques telles que le suivi du mouvement et la position des membres etc, pour identifier les points d’intérêt spatio-temporels et extraire les caractéristiques de ces points Il s’agit notamment du détecteur de coin Harris [22], de la transformation des caractéristiques invariantes à l’échelle du mouvement (MoSIFT), illustrer dans la figure 9.
Figure 9 – Une illustration des descripteurs de mouvement binaires locaux
Les descripteurs MoSIFT sont obtenus à partir de points saillants en deux par- ties : la première est un histogramme agrégé de gradients (HoG) qui décrit l’ap- parence spatiale La deuxième partie est un histogramme agrégé de flux optique(HoF) qui indique le mouvement du point caractéristique [38] ont utilisé une version modifiée du descripteur local motion-Weber (MoIWLD), suivie d’une re- présentation clairsemée comme descripteur de caractéristique.
Architecture des modèles de la détection de violences
Architecture d’encodage spatio-temporel
L’encodeur spatio-temporel est composé de trois parties : un encodeur spatial réseau VGG13, un LSTM à convolution bidirectionnelle (BiConvLSTM), un en- codeur temporel et un classificateur Les trames sont redimensionnées à 224 ×
224 et la différence entre les trames adjacentes est utilisée comme entrée sur le réseau Le classificateur VGG et la dernière couche de regroupement maximale sont supprimés du réseau VGG13 (bleu et rouge) Les mappes de caractéristiques de trame (Orange) sont de taille 14 × 14 × 512 Les caractéristiques de trame sont transmises au BiConvLSTM (vert) qui émet les codages spatio-temporels de trame (Cyan) Une opération de regroupement max par élément est effectuée sur l’encodage spatio-temporel pour produire la représentation vidéo finale (Gold).
Cette représentation vidéo est ensuite classée comme violente ou non violente via un classificateur entièrement connecté (violet).
L’architecture de l’encodeur spatio-temporel est illustrée à la figure 10 Elle se compose d’un encodeur spatial qui extrait les caractéristiques spatiales pour chaque image de la vidéo, suivi d’un codeur temporel qui permet à ces cartes de caractéris- tiques spatiales de se ômộlangerằ temporellement pour produire un codage spatio- temporel à chaque pas de temps Tous ces encodages sont ensuite agrégés en une seule représentation vidéo via une opération de regroupement max par élément.
Cette représentation vidéo finale est vectorisée et transmise à un classificateur entièrement connecté.
Encodage spatial : Dans ce travail, un modèle de réseau neuronal convolutif(CNN) VGG13 [35] est utilisé comme encodeur spatial La dernière couche de pool max et toutes les couches entièrement connectées du réseau VGG13 sont supprimées, ce qui donne des cartes de caractéristiques spatiales pour chaque image de taille 14 × 14 × 512 Au lieu de passer directement des images vidéo, des images adjacentes ont été soustraites et utilisées comme entrée pour le encodeur spatial.
Cela agit comme un modèle de flux pseudo-optique et suit [36, 34].
Codage temporel : un LSTM convolutionnel bidirectionnel (BiConvLSTM) est utilisé comme codeur temporel, dont les entrées sont les cartes de caractéris- tiques du codeur spatial Le BiConvLSTM est construit de telle sorte que la sortie de chaque cellule soit également 14 × 14 × 512 Le fonctionnement maximal par élément est appliqué à ces sorties comme illustré sur la figure 10, résultant ainsi en une représentation vidéo finale de taille 14 × 14 × 512 Une cellule BiConvLSTM est essentiellement une cellule ConvLSTM avec deux états de cellule Les fonc- tionnalités de ConvLSTM et BiConvLSTM sont présentés dans les sous-sections suivantes.
— ConvLSTM :une couche ConvLSTM apprend les caractéristiques spatio- temporelles globales à long terme d’une vidéo sans réduire la taille spatiale des représentations intermédiaires Ce codage a lieu pendant le processus récurrent du LSTM Dans un réseau LSTM standard, l’entrée est vectorisée et codée à travers des couches entièrement connectées, dont la sortie est une représentation temporelle apprise Du fait de ces couches entièrement connectées, les informations spatiales sont perdues Par conséquent, si l’on souhaite conserver ces informations spatiales, l’utilisation d’une opération convolutionnelle au lieu d’une opération entièrement connectée peut être souhaitée Le ConvLSTM fait exactement cela Il remplace les couches en- tièrement connectées du LSTM par des couches convolutives Le ConvLSTM est utilisé de telle sorte que les opérations de convolution et de récurrence dans les transitions entrée-à-état et état-à-état puissent utiliser pleinement les informations de corrélation spatio-temporelles La formulation de la cel- lule ConvLSTM est présentée ci-dessous : i t =σ(W xi ∗X t +W hi ∗H t−1 +b i ) f t =σ(W xf ∗X t +W hf ∗H t1 +b f ) o t =σ(W xo ∗X t +W ho ∗H t1 +b o )
D’ú ô*ằ dộsigne l’opộrateur de convolution, ôằ dộsigne le produit de Hadamard, ôσ ằ est la fonction sigmoăıde et W x∗ , W h sont des noyaux de convolution 2D correspondant respectivement à l’état d’entrée et caché Les états cachés (H 0 , H 1 , H t−1) et les cellules (C 1 , C 2 , C t ) sont mis à jour en fonction de l’entrée (X 1 , X 2 , X t ) qui le traversent, les activations f t et o t gate à chaque étape de la séquence temporelle.b i , b f , b o etb c sont les termes de biais correspondants.
— BiConvLSTM : Le BiConvLSTM est une amélioration de ConvLSTM dans lesquels deux ensembles d’états cachés et de cellule sont conservés pour chaque cellule LSTM : un pour une séquence avant et l’autre pour une séquence arrière dans le temps BiConvLSTM peut ainsi accéder au contexte à longue portée dans les deux sens de la séquence temporelle de l’entrée et ainsi potentiellement acquérir une meilleure compréhension de la vidéo entière La figure 11 illustre la fonctionnalité d’une cellule BiConvL- STM Il est composé d’une cellule ConvLSTM avec deux ensembles d’états masqués et cellulaires Le premier ensemble (h f , c f ) est pour la passe avant et le second ensemble (h b , c b ) est pour la passe arrière Pour chaque séquence temporelle, les états cachés correspondants des deux ensembles sont empilés et passés à travers une couche de convolution pour obtenir une représenta- tion cachée finale pour ce pas de temps Cette représentation masquée est ensuite transmise à la couche suivante du module BiConvLSTM en entrée.
Figure 11 – Présentation d’une cellule BiConvLSTM.
Les états cachés et de cellule sont passés à la cellule LSTM suivante dans le sens du flux Les lignes pointillées rouges correspondent à la première entrée du pas de temps pour les états cachés avant et arrière.
Classificateur : le nombre de nœuds dans chaque couche du classificateur en- tièrement connecté, ordonné séquentiellement, est de 1000, 256, 10 et 2 Chaque couche utilise la non-linéarité tangente hyperbolique La sortie de la dernière couche est un prédicteur binaire dans les classes violentes et non violentes.
Architecture du codeur spatial
L’encodeur spatial est une version simplifiée de l’architecture de l’encodeur spatio- temporel (Section 2.2.1) et est illustré sur la figure 12 L’encodeur temporel est supprimé et le regroupement max par élément est appliqué directement aux ca- ractéristiques spatiales De plus, s’intéressant uniquement aux caractéristiques spa- tiales de cette architecture, les différences de trames adjacentes ne sont pas utilisées en entrée et les trames sont transmises directement au codeur spatial.
Figure 12 – Schéma du codeur spatial
L’encodeur spatial est composé de deux parties :
1 un encodeur spatial de réseau VGG13
2 un classificateur Les trames sont redimensionnées à 224 × 224 avant d’être fournies en entrée au réseau Le classificateur VGG et la dernière couche de regroupement max sont supprimés du réseau VGG13 (bleu et rouge) Les mappes de caractéristiques de trame (Orange) sont de taille 14 × 14 × 512 Une opération de regroupement max par élément est effectuée sur les mappes de caractéristiques de trame pour produire la représentation vidéo finale (Gold) Cette représentation vidéo est ensuite classée comme violente ou non violente via un classificateur entièrement connecté (violet).
Suite à toutes ces méthodes d’apprentissage profond utilisées dans la littérature, nous allons présenter dans une vue globale nos solutions proposées dans 3.1 Les solutions ont été sélectionnées des différentes catégories des techniques de l’état de l’art, à savoir :
— réseau de neurones à convolution (CNN) ;
— réseau de neurones récurrents (RNN) ;
— combinaison de réseau de neurones à convolution 3D et le réseau de neurones récurrents (LSTM).
Base de données
Collecte de données
Donc pour plus de diversité c’est-à-dire pour plus de généralité nos jeux de données a été collecté par nous même sur YouTube Les vidéos collectées sont dé- diées au contexte vietnamien Nous avons collecté des vidéos sur différents types de violence tels que les combats de rue, le chaos sur les précisions politiques, les combats avec la police, etc et les avons étiquetées comme des vidéos violentes.
De plus, nous avons collecté des vidéos d’une précision pacifique, une galerie de matchs de tennis, football, la natation, hockey, de certain activités non violente dans les rues, etc, et les avons étiquetées comme des vidéos non-violentes Ce choix est faite de manière expertisée c’est à dire reflétant les vérités terrains.
Nos jeu de données
Nous avons collecté 300 vidéos de chaque classe, ce qui nous donne 600 vidéos au total Nous avons découpé ces vidéo en petit segment de vidéos dont chacune segment de vidéos dure environ 06 secondes Le jeu de données est donc divisé en trois parties suivante : les 50% de chacune de ces classes (50% de la classe violence et 50% de la classe non-violence) pour la formation, de même pour le test dont 40% de chaque classe et 10% pour la validation.
Un modèle pré-formé sur l’ensemble de données ImageNet a été utilisé pour tirer parti de l’apprentissage par transfert, car l’ensemble de données utilisé dans cette étude n’est pas assez grand.
Nos classes (étiquettes)
Nous représentons nous données grâce à un encodage one-hot (one-hot) pour effectuer la ôbinarisationằ de la catộgorie dont 0 indique inexistant tandis que 1 indique existant Le encodage à chaud est un moyen de marquer une étiquette de classe active via des éléments de tableau binaire Nous avons deux catégories à savoir non-combat (NO_FIGHT_LABEL = [1., 0.]) et combat (FIGHT_LABEL [0., 1.]), ce qui nous donne un tableau comme suite :
NO_FIGHT_LABEL FIGHT_LABELBATCH_SIZE
Table 1 – Le tableau encodage à chaud (one-hot).
Modèles
Les modèles à cadre unique
Pour la première architecture de réseau proposer, il a été rapporté que les modèles à cadre unique, des modèles qui ne prennent pas en compte les informations temporelles, ont déjà de bonnes performances Cela pourrait être dˆu au fait que plusieurs catégories de la tâche de classification des vidéos peuvent être reconnues par la scène ou l’arrière- plan des vidéos comme par exemple des vidéos de football ou de la natation, du tennis des jeux de donnes telles que Sports-1M et UCF-101 Donc le réseau n’a pas besoin d’apprendre les caractéristiques de mouvement des objets en mouvement Par contre, dans notre travail, les vidéos sont tournées dans différent endroit et plusieurs aspects sont nécessaires lorsqu’elles sont examinées à l’œil par les humains Par conséquent, la performance du modèle à cadre unique dans notre travail dont l’accent est mis sur la généralité, ne devrait pas être aussi bonne que celle des modèles prenant en compte les informations temporelles Comme le montre la figure 13 une illustration.
Comme nous le montre dans la figure 13, le modèle à une seule image prend la sortie du modèle pré-formé Darknet19 gelé et envoie la carte des caractéristiques de sortie dans les 3 couches entièrement connectées pour classifier l’entrée.
Le tableau 2 montre l’architecture du modèle à cadre unique et les paramètres par couche du réseau qui ont été utilisés dans cette expérience Le modèle comporte trois couches entièrement connectées.
FullyConnectedLayer 4096 BatchNormalization 128 FullyConnectedLayer 4096 BatchNormalization 128 FullyConnectedLayer 2
Table 2 – Les modèles à cadre uniqueNous utilisons les mêmes paramètre pour le modèle suivant comme paramètre par défaut afin de bien mener notre comparaison du modèle pour ce problème.
Les modèles à cadre multiple
La seconde architecture de réseau proposée est illustrée à la Figure 16 Il a été mon- tré qu’en plus du LSTM (censé extraire les caractéristiques temporelles globales) après le CNN, les caractéristiques temporelles locales pouvant être obtenues à partir du flux optique sont : également important De plus, il a été rapporté que la vertu du flux op- tique est due à son invariance dans son apparence ainsi qu’à sa précision aux limites et aux petits déplacements [13] Par conséquent, dans ce travail, l’effet du flux optique est supposé être imité en prenant deux images vidéo en entrée Les deux trames d’entrée sont traitées par le CNN pré-entraˆıné Les deux trames sorties de la couche inférieure du modèle pré-entraˆıné sont concaténées dans le dernier canal, puis introduites dans le CNN supplémentaire (indiqué en orange dans la Figure 16) Étant donné que les sorties de la couche inférieure sont considérées comme des entités de bas niveau, le CNN supplémentaire est supposé apprendre les caractéristiques de mouvement locales ainsi que les entités invariantes en apparence en comparant la carte des entités à deux trames Les deux trames issues de la couche supérieure du réseau pré-formé sont égale- ment concaténées et introduites dans l’autre CNN supplémentaire afin de comparer les caractéristiques de haut niveau des deux trames Les sorties des deux CNN supplémen- taires sont ensuite concaténées et transmises à une couche entièrement connectée et à la cellule LSTM pour apprendre les caractéristiques temporelles globales Enfin, les sorties de la cellule LSTM sont classées par une couche entièrement connectée qui contenait deux neurones représentant respectivement les deux catégories (combat et non-combat).
Les couches étiquetées en bleu sont pré-entraˆınées sur le jeu de données ImageNet et sont gelées pendant l’entraˆınement Les couches étiquetées en orange sont formées sur le jeu de données vidéo.
Le modèle pré-formé est mis en œuvre par Darknet19 [14] en raison de sa précision surImageNet et des performances en temps réel décrites ci-dessus Puisque le Darknet19 contient déjà 19 couches convolutives, pour éviter le problème de dégradation, les CNN supplémentaires sont implémentés par les utilisateurs restants en fonction des besoin qui s’imposent.
Le tableau 3 montre l’architecture du modèle à cadre multiple et les paramètres par couche du réseau qui ont été utilisés dans cette expérience Le modèle comporte trois couches entièrement connectées,
FullyConnectedLayer 4096 BatchNormalization 128 FullyConnectedLayer 4096 BatchNormalization 128 FullyConnectedLayer 2
Table 3 – Les modèles à cadre unique
Darknet-19
Le modèle pré-formé est mis en œuvre par Darknet19 [8] en raison de sa précision surImageNet et des performances en temps réel Darknet est un framework de réseau de neurones écrit en langage C et CUDA Sa détection d’objet est très rapide, ce qui est très important pour prédire en temps réel L’architecture du Darknet19 est présentée dans la figure 15 ci-dessous.
Figure 15 – L’architecture du modèle Darknet-19.
L’architecture Darknet-19 comprend 19 couches convolutionnelles et 5 couches de max pooling et une couche softmax pour la classification des objets L’architecture utilise une filtre constante de taille 3 * 3 L’architecture Darknet est utilise par YOLO v2 4 comme classificateur de base.
Paramètres du modèle
• LEAKY_RELU : Rectified Linear Units (ReLU) 5 ou Unités linéaires rectifiées (ReLU), est une fonction d’activation dont la plupart des applications d’apprentissage en profondeur l’utilisent au lieu des fonctions d’activation logistique pour la vision par ordinateur, la reconnaissance vocale et les réseaux neuronaux profonds, etc.
Contrairement à la fonction sigmo¨ıde a l’avantage de ne pas avoir d’erreurs de rétropro- pagation, également pour les réseaux de neurones plus grands, la vitesse de construction de modèles basés sur ReLU est très rapide par opposition à l’utilisation de Sigmoids.
Meilleure propagation du gradient : moins de problèmes de gradient de fuite par rapport aux fonctions d’activation sigmo¨ıde qui saturent dans les deux directions Calcul efficace : uniquement comparaison, addition et multiplication Invariant d’échelle : max (0, ax) a max (0, x) pour a 0.
ReLU a une sortie 0 si l’entrée est inférieure à 0 et une sortie brute dans le cas contraire.
Autrement dit, si l’entrée est supérieure à 0, la sortie est égale à l’entrée.
Les ReLU ne sont pas sans inconvénients, certains d’entre eux sont que ReLU n’est pas centré sur zéro et n’est pas différentiable à zéro , mais différentiable ailleurs.
Un autre problème que nous voyons dans ReLU est le problème de ReLU mourant ó certains neurones ReLU meurent essentiellement pour toutes les entrées et restent inactifs quelle que soit l’entrée fournie, ici aucun flux de gradient et si un grand nombre de neurones morts sont là dans un réseau neuronal, ses performances sont affecté, cela peut être corrigé en utilisant ce qu’on appelle Leaky ReLU ó la pente est modifiée à gauche dex = 0 dans la figure 17 ci-dessous et provoquant ainsi une fuite et étendant la plage de ReLU.
Leaky ReLU :Les ReLU qui fuient sont une tentative pour résoudre le problème des ôReLU mourantsằ Au lieu que la fonction soit nulle lorsque x < 0, un ReLU qui fuit aura à la place une petite pente négative (de 0,01 environ) Autrement dit, la fonction calcule f(x) = 1(x < 0)(αx)+1(x >=0)(x) ó α est une petite constante.
5 https ://medium.com/@himanshuxd/activation-functions-sigmoid-relu-leaky-relu-and- softmax-basics-for-neural-networks-and-deep-8d9c70eed91e
•Max Pooling : Le Max Pooling est une opération visant à réduire la dimensionna- lité d’entrée La sortie est calculée en prenant des valeurs d’entrée maximales à partir de patchs entrecroisés et d’une fenêtre de filtre glissante Nous utilisons la fonction Max- PoolingLayer de la librairie tensorflow avec des paramètres tel que :
— un padding (Rembourrage) : Nous remplissons le cadre de notre image avec des zéros à la fin pour qu’elle s’adapte, alors nous choisissons l’option "SAME" contrairement a l’option "VALID".
— Un Strides : nous dộplaácons les filtres à 2 pixels à la fois.
Nous donnons une illustration de notre Max Pooling dans les figure ci-dessous (18, 19,
6 https ://www.corvil.com/kb/what-is-the-difference-between-same-and-valid-padding-in-tf- nn-max-pool-of-tensorflow
Optimisation des modèles
Il est bien connu que le gradient du réseau récurrent peut augmenter rapidement en raison des composants à long terme Habituellement le gradient en explosion est gérer en le tronquant afin qu’il reste dans une plage aussi raisonnable Plusieurs études résolvent ce problème par une autre approche, qui est de commencer l’entraˆınement avec peu de déroulements (unrolls) de frame, puis doubler la taille des déroulés lorsque la perte atteint les plateaux [12] Dans la seconde approche, il été constaté qu’il n’était même pas nécessaire de couper les gradients Ils affirment également que, sans partir des petits déroulements, le réseau peut même ne pas converger [12] Dans ce travail, nous constatons que le réseau peut facilement converger même si le déroulement initial est défini sur la longueur des vidéos Cependant, l’absence de coupure du gradient fait osciller la courbe de perte pendant l’entraˆınement, même si l’entraˆınement commence avec un petit déroulement Par conséquent, nous tronquons les gradients du réseau dans la plage allant de -5,0 à 5,0 Le découpage des gradients dans la plage la plus petite(comme par exemple de -1,0 à 1,0) a également été testé Cependant, notre expérience montre que cela entraˆınera une faible convergence du réseau vers les minima inférieurs.
Évaluation de nos modèles
Le modèle proposé dans ce travail peut générer le résultat classifié par image Pour- tant, les recherches précédentes évaluent la précision au niveau de la vidéo Afin pouvoir comparer avec le travail précédent, les résultats au niveau de la trame sont rassemblés et traités par une stratégie qui est de classée la vidéo dans une certaine catégorie si et seulement si le nombre de signaux continus de cette catégorie est supérieur à un certain seuil Ce seuil peut être obtenu en scannant le seuil de 0 à la longueur de la vidéo et en sélectionnant le seuil offrant la meilleure précision dans l’ensemble de validation S’il existe plusieurs seuils pouvant produire la même précision, le plus petit sera choisi.
Faisant une analyse comparative, un benchmark des techniques utilisables pour la dé- tection de violence, nous avons essayés de considérer plusieurs techniques différentes.
Sˆurement, ces techniques ont des avantages et des inconvénients, et parfois prenant connaissance des manques existant pour chaque technique, nous arrivons mieux à les composer afin d’arriver à une solution beaucoup plus robuste Pour rendre notre conclu- sion encore plus exacte, il est important de faire des analyses sur la qualité et la quantité du résultat,
Résultats
Outils et environnement de travail
Pour la réalisation de notre projet, nous avons faire usage de différent outils que nous énumérons ci-dessous.
1 Matériels : Comment matériels informatique pour notre travail, nous avons utili- ser, un ordinateur de marque DELL, core i5, 16 GB de Ram, avec une mémoire de 1 terabyte ;
2 Environnement de travail : Pour ce qui est notre environnement de travail nous les citons ci-dessous,
— Système d’exploitation : Ubuntu 7 18.04, C’est un système d’exploitation GNU/Linux basé sur la distribution Linux Debian Il est développé, commer- cialisé et maintenu pour les ordinateurs individuels par la société Canonical.
— L’environnement de travail : Anaconda 8 , une distribution libre et open source des langages de programmation Python et R appliqué au développement d’ap- plications dédiées à la science des données et à l’apprentissage automatique, qui vise à simplifier la gestion des paquets et de déploiement.
— Langage de programmation : Python 9 , un langage de programmation in- terprété, multi-paradigme et multiplateformes Il favorise la programmation impérative structurée, fonctionnelle et orientée objet.
— Google Colab ou Colaboratory 10 : C’est un service cloud, offert par Google (gratuit), basé sur Jupyter Notebook et destiné à la formation et à la re- cherche dans l’apprentissage automatique, C’est une plateforme permetant d’entraˆıner nos modèles de Machine Learning, directement dans le cloud
— Google Drive 11 : C’est un service de stockage et de partage de fichiers dans le cloud La plateforme nous a servit de mémoire de stockage contenant notre projet et les résultats de formation, en liaisons avec la plateforme google colab.
3 Bibliothèques : Pour nos différent algorithme, nous utilisons les bibliothèque tel que :
— OpenCV est une bibliothèque graphique libre, initialement développée par Intel, spécialisée dans le traitement d’images en temps réel ;
— NumPy est une extension du langage de programmation Python, destinée à manipuler des matrices ou tableaux multidimensionnels ainsi que des fonc- tions mathématiques opérant sur ces tableaux ;
— Matplotlib est une bibliothèque du langage de programmation Python des- tinée à tracer et visualiser des données sous formes de graphiques,
— Scikit-learn est une bibliothèque libre Python dédiée à l’apprentissage auto- matique.
7 https ://fr.wikipedia.org/wiki/Ubuntu_(syst%C3%A8me_d’exploitation)
8 https ://fr.wikipedia.org/wiki/Anaconda_(Python_distribution)
9 https ://fr.wikipedia.org/wiki/Python_(langage)
10 https ://ledatascientist.com/google-colab-le-guide-ultime/
11 https ://fr.wikipedia.org/wiki/Google D rive
Expérimentation du modèle à cadre unique, Darknet19+3FC 40
Nos modèles ont été entraˆınés sur les donnes d’entraˆınement de notre jeux de données ensuite testés par rapport aux vidéos réservées à des fins de test Le tableau 4 montre les performances du modèle à cadre unique après 10, 15, 20, 25, et 30 époques en termes de pourcentage de précision Nous voyons qu’après 20 époques, la précision ne converge pas, au lieu de áca elle diminuer à une certaine marge Ainsi, nous avons pris la prộcision après 20 époques comme référence (benchmark) pour ce modèle.
Epochs Training Accuracy Testing Accuracy
Table 4 – Précision du modèle à cadre unique.
Cependant, la figure 21 montre le graphe de la précision du modèle Darknet19+3FC.
Le graphique montre que le modèle est coupable de sur-ajustement (overfitting) à une certaine échelle et la précision varie de 71% à 90% La figure 22 est celle du graphe de la perte du modèle Darknet19+3FC qui nous montre une perte fluctuante de l’ensemble de test, des changements brusque.
Figure 21 – Graphe de la préci- sions du modèle à cadre unique Figure 22 – Graphe de la perte du modèle à cadre unique.
Ce modèle, comme nous pouvons le constater, est également coupable de sur-ajustement et la précision ainsi que la perte ne sont pas également cohérentes.
Alors, nous avons optés pour le modèle pré-formé pour tirer parti du modèle à cadre multiple.
Expérimentation du modèle à cadre multiple, Darknet19+CNN+LSTM 41
De ce fait, nous avons adopté pour la deuxième approche tout en utilisant et maintenu le même modèle pré-formé gelé avec une couche entièrement connectée en entête Dans cette approche, nous avons utilisé des CNN avant le LSTM avec des couches entièrement connectées tandis que dans le modèle précédent, nous avons juste utilisés le modèle pré- formé gelé puis ajouter des couches des couches entièrement connectées en entête Le tableau 5 montre les performances du modèle en termes de pourcentage de précision.
Epochs Training Accuracy Testing Accuracy
Table 5 – Précisions du modèle CNN+LSTM
Les figures 23 et 24 montrent le graphique des précisions et des perte du modèle CNN+LSTM On voit que les modèles fonctionnent bien en termes de précision par rapport au modèle précédent et dont leurs métriques fluctuent beaucoup moins que l’autre modèles Nous observons également que l’ajout d’une couche de réseau neuronal convolutif devant les couches LSTM améliore la précision par une grande marge.
Figure23 – Graphe de la précision du modèle à cadre multiple Figure 24 – Graphe de la perte du modèle à cadre multiple
Le tableau 6 montre la précision de nos deux modèles d’apprentissage par transfert.
Aproches Training Accuracy Testing Accuracy
Table 6 – Précisions du modèle CNN+LSTM en terme de
Cependant, le modèle d’apprentissage par transfert, avec un modele pré-formé semble fonctionner mieux en termes de précision parmi les modèles Le tableau montre que le CNN et le LSTM combinés sont cohérents pour détecter les vidéos violentes et non vio- lentes de notre ensemble de données bas sur la généralité tandis que le modèle à cadre unique a des difficultés à détecter les vidéos violentes.
Nous montrons dans les figures suivantes quelque exemple du modèle CNN+LSTM Les figures 25 et 26 nous montrent quelques exemples de la détection du modèle CNN+LSTM sur les images vidéo Dans ces deux figures nous avons une détection de non violence dans la scène, ce qui est indiquer par la couleur verte de notre cadre d’image Le modèle a détecter correctement dans ces images vidéo comme non violence.
Figure 25 – Détection de non violence dans la vidéo 01
Figure 26 – Détection de non violence dans la vidéo 02
D’autre part, la figure 27 et 28 montrent 2 images vidéo des détections de violences de chaque vidéo de test Le modèle a détecter correctement ces images vidéo comme violentes, donc la couleur du cadre change et nous donne une couleur rouge que nous avons designer comme la couleur de violence détecter.
Figure 27 – Détection de violence dans la vidéo 01
Figure 28 – Détection de violence dans la vidéo 02
Par contre, dans la figure 29 nous avons des violences qui sont détecter comme des comportements non violent de vidéo de test des détection de 9 images vidéo d’une vidéo violente de l’ensemble de données collectées Le modèle n’a pas correctement détecté ces actions dans la vidéo comme violentes Il n’a pas réussi à préciser l’action dans cette partie de la vidéo car il fait des confusions entre l’action violente et l’action non violente.
Figure 29 – Violence non détecter dans la vidéo 01
Résultat attendu
Pour notre projet, l’objectif principal était de réaliser un système de détection de vio- lence dans une vidéo de surveillance, de distinguer les comportement humain violent et des comportements humain non violent dans une vidéo Ces objectif attendu ont été réaliser avec succès.
Nous avons mis en place un algorithme dont nous avons combinés deux technique de l’apprentissage automatique, que sont respectivement le CNN et RNN, adapter a notre dataset que nous avons aussi pris soin de sélecter selon nos objectifs et critère que nous avons proposé pour la détection de violence d’action humaine.
Comme extension nous envisageons ajouter une grande variété de données, essayer d’autre technique du domaine puis faire une analyse comparative de l’ensemble de ces technique.
Architecture de la solution
Dans la figure 30, nous présentons la structure globale de notre système, dans le quel nous avons la caméras qui capte les évènements de la scène dont les vidéos sont enregistrés dans le serveur d’enregistrement, puis en parallèlement gérer par le poste de gestion d’ó est tester nos algorithmes de détectons qui va ensuite déterminer si oui ou non il y a une violence dans la scène en temps réel.
Figure 30 – L’architecture de la solution
Cette architecture est notre architecture par défaut de notre système pour tester notre algorithme en production Nous n’avions pas en possession tous les composants de cette architecture Alors nous avons tester notre algorithme avec les composants de base dont nous avions a notre disposition pour le travail Les caméras ont été compassés par des vidéos déjà enregistrer et stoker sur le poste de travail qui nous ont servirent de tester de l’algorithme mise en place.
En conclusion, ce travail nous a permis de faire une première tentative de la résolution de la détection d’anomalie dans une vidéo de surveillance Plusieurs problématique ont été abordées, par les biais de différents cas d’application et divers point de vue du pro- blème dans le monde réel, ce qui a nécessite le choix de la détection de violence dans une vidéo de surveillance Nous avons essayé d’aborder ce problème en utilisant l’architec- ture à cadre unique dans la partie 3.3.1, utilisant un modèle pré-former avec des couches entièrement connecté ce qui ne répondait pas aux objectives donc n’a pas donné un bon résultat.
Par la suite, nous avons effectué d’autres techniques nécessitant les modèles à cadre multiple dans la partie 3.3.2, à base des réseaux de neurones CNN et RNN en particulier la mémoire à long terme et à long terme (LSTM) Dans ce travail, nous nous sommes intéressés à la détection de violence qui est une partie du domaine de la reconnaissance d’actions dont la détection des comportements anormal dans une vidéo de surveillance, à partir de données vidéos collection lors de la réalisation du projet Dans cette théma- tique, nous avons proposé 2 modèles dans le contexte de notre stage afin de répondre à la problématique du projet au sein de IFI SOLUTION Nous mettons en évidence l’usage de quelque technique de l’apprentissage profond parmi tant d’autre et de la vision par ordinateur dans cette thématique.
Pour la première technique elle consiste à faire une classification en se focaliser sur les caractéristique local et ne prenant pas en compte les informations temporelles, autre- ment dis il ne n’a pas besoin d’apprendre les caractéristiques de mouvement des objets en mouvement Ce qui ne répond pas au objectifs rechercher dans notre travail, dont les données concernent différents endroit donc ce qui nécessite plusieurs aspects Cette approche dans notre travail n’est pas optimal avec nos données utiliser dont les quelles sont caractérisé pas l’objective cible.
Pour la seconde technique, contrairement à la première elle prend en compte les ca- ractéristique temporelles globales et des caractéristiques temporelles locale en prenant deux images vidéo en entrée imitant ainsi l’effet du flux optique dont la vertu est due à son invariance dans son apparence ainsi qu’à sa précision aux limites ainsi qu’aux petits déplacements.
Comme perspectives, il faut préciser que le projet nécessite encore plus d’amélioration de performance, les prochaines étapes dans ce projet seront :
— de s’équiper d’un ordinateur avec une carte graphique, un GPU afin d’approfondir l’entraˆınement du modèle avec plus de données possible ;
— élargir la comparaison en essayant d’autre approche de l’apprentissage profond et de la vision par ordinateur, dans le but d’avoir un modèle encore plus performant et léger ;
— de valider nos approches sur des équipement de production, tel que déployer ou d’embarquer ce projet sur un système de sécurités adéquate ou sur un RaspberryPi.
[1] Juan, I.E.; Juan, M.; Barco, R A low-complexity vision-based system for real-time traffic monitoring IEEE Trans Intell Transp Syst.
[2] Mohammad, R.; Sami, F Adaptive vision-based crack detection using 3D scene reconstruction for condition assessment of structures Autom.
[3] Bermejo Nievas, E.; Deniz, O.; Bueno, G.; Sukthankar, R Violence detection in video using computer vision techniques In Proceedings of the International Conference on Computer Analysis of Images and Patterns, Seville, Spain, 29–31 August 2011; pp 332–339.
[4] Bautista-Durán, M.; García-Gómez, J.; Gil-Pita, R.; Mohíno-Herranz, I.; Rosa-Zurera, M Energy-Efficient Acoustic Violence Detector for Smart Cities Int J Computat Intell Syst 2017, 10, 1298–1305.
[5] Hadjkacem, B.; Ayedi, W.; Abid, M.; Snoussi, H A new method of video-surveillance data analytics for the security in camera networks In Proceedings of the IEEE International Conference on Internet of Things, Embedded Systems and Communications IINTEC 2017, Gafsa, Tunisia, 20–22 October 2017; pp 140–145
[6] Mabrouk, A.B.; Ezzeddine, Z Abnormal behavior recognition for intelligent video surveillance systems: A review Expert Syst Appl.
[7] Saif, S.; Tehseen, S.; Kausar, S A survey of the techniques for the identification and classification of human actions from visual data.
[8] W Sultani, C Chen, and M Shah Real-world Anomaly Detection in Surveillance Videos
[9] E Bermejo, O Deniz, G Bueno, and R Sukthankar Violence Detection in Video Using Computer Vision Techniques.
[10] C Ding, S Fan, M Zhu, W Feng, and B Jia Violence Detection in Video by Using 3D Convolutional Neural Networks.
[11] A Karpathy, G Toderici, S Shetty, T Leung, R Sukthankar, and L.
Fei-Fei Large-scale video classification with convolutional neural networks.
[12] D Gordon, A Farhadi, and D Fox Re3: Real-Time Recurrent Regression Networks for Visual Tracking of Generic Objects.
[13] L Sevilla-Lara, Y Liao, F Guney, V Jampani, A Geiger, and M J.
Black On the Integration of Optical Flow and Action Recognition.
[14] [8] J Redmon and A Farhadi Yolo9000: Better, faster, stronger.In Computer Vision and Pattern Recognition.
[15] Wang L, Xiong Y, Wang Z, Qiao Y, Lin D, Tang X, et al Réseaux de segments temporels: vers de bonnes pratiques pour la reconnaissance d’actions en profondeur Dans: Conférence européenne sur la vision par ordinateur Springer; 2016 p 20–36.
[16] T Hospedales, S Gong, and T Xiang A markov clustering topic model for mining behaviour in video In ICCV, 2009.
[17] J Kooij, M Liem, J Krijnders, T Andringa, and D Gavrila.
Multi-modal human aggression detection Computer Vision and Image Understanding, 2016.
[18] C Lu, J Shi, and J Jia Abnormal event detection at 150 fps in matlab In ICCV, 2013.
[19] S Mohammadi, A Perina, H Kiani, and M Vittorio Angry crowds:
Detecting violent events in videos In ECCV, 2016.
[20] S Wu, B E Moore, and M Shah Chaotic invariants of lagrangian particle trajectories for anomaly detection in crowded scenes In CVPR, 2010.
[21] D Xu, E Ricci, Y Yan, J Song, and N Sebe Learning deep representations of appearance and motion for anomalous event detection In BMVC, 2015.
[22] Chen, D., Wactlar, H., Chen, M.y., Gao, C., Bharucha, A., Hauptmann, A.: Recognition of aggressive human behavior using binary local motion descriptors In:
[23] Cui, Z., Ke, R., Wang, Y.: Deep bidirectional and unidirectional lstm recurrent neural network for network-wide traffic speed prediction CoRR abs/1801.02143 (2018)
[24] Deniz, O., Serrano, I., Bueno, G., Kim, T.K.: Fast violence detection in video In: Computer Vision Theory and Applications (VISAPP), 2014 International Conference on vol 2, pp 478–485 IEEE (2014)
[25] Dong, Z., Qin, J., Wang, Y.: Multi-stream deep networks for person to person violence detection in videos In: Tan, T., Li, X., Chen, X., Zhou, J., Yang, J., Cheng, H (eds.) Pattern Recognition pp.
Violence content classification using audio features In: Hellenic Conference on Artificial Intelligence pp 502–507 Springer (2006)
[27] Graves, A., Jaitly, N., rahman Mohamed, A.: Hybrid speech recognition with deep bidirectional lstm In: In IEEE Workshop onAutomatic Speech Recognition and Understanding (ASRU (2013)
[28] Greff, K., Srivastava, R.K., Koutnık, J., Steunebrink, B.R., Schmidhuber, J.: Lstm: A search space odyssey IEEE transactions on neural networks and learning systems 28(10), 2222–2232 (2017)
[29] Huang, Y., Wang, W., Wang, L.: Video super-resolution via bidirectional recurrent convolutional networks IEEE Transactions on Pattern Analysis and Machine Intelligence 40(4), 1015–1028 (April
[30] Medel, J.R., Savakis, A.E.: Anomaly detection in video using predictive convolutional long short-term memory networks CoRR abs/1612.00390 (2016)
[31] Mousavi, H., Mohammadi, S., Perina, A., Chellali, R., Murino, V.: Analyzing track- lets for the detection of abnormal crowd behavior In: Applications of Computer Vision (WACV), 2015 IEEE Winter Conference on pp 148–155 IEEE (2015)
[32] Nam, J., Alghoniemy, M., Tewfik, A.H.: Audio-visual content-based violent scene characterization In: Proceedings
1998 International Conference on Image Processing ICIP98 (Cat No.98CB36269) vol 1, pp 353–357 vol.1 (Oct 1998). https://doi.org/10.1109/ICIP.1998.723496
[33] Schuster, M., Paliwal, K.K.: Bidirectional Recurrent Neural Net- works IEEE Transactions on Signal Processing 45(11) (1997), https://pdfs.semanticscholar.org/4b80/89bc9b49f84de43acc2eb8900035f7d492b2. df
[34] Simonyan, K., Zisserman, A.: Two-stream convolutional networks for action recognition in videos In: Ghahramani, Z., Welling, M., Cortes, C., Lawrence, N.D., Weinberger, K.Q (eds.) Advances in Neural Information Processing Systems 27, pp 568–576 Curran Associates, Inc (2014), http://papers.nips.cc/paper/5353-two-stream-convolutional-networks-for-action-recognition-in-videos.pdf
[35] Simonyan, K., Zisserman, A.: Very deep convolutional networks for large-scale image recognition In International Conference on Learning Representations (2015), http://arxiv.org/abs/1409.1556
[36] Sudhakaran, S., Lanz, O.: Learning to detect violent videos using convolutional long short-term memory In: Advanced Video and Signal Based Surveillance (AVSS), 2017 14th IEEE International Conference on pp 1–6 IEEE (2017)
[37] Xingjian, S., Chen, Z., Wang, H., Yeung, D.Y., Wong, W.K., Woo,W.c.: Convolutional lstm network: A machine learning approach for precipitation nowcasting In: Advances in neural information processing systems pp 802–810 (2015)