Académique Documents
Professionnel Documents
Culture Documents
JURY:
Besnassi Miloud Université de Mostaganem Président
Moumen Med El Amine Université de Mostaganem Examinateur
Henni Abdelkader Karim Université de Mostaganem Encadrant
A mes chers parents pour leurs prières et encouragements, A mon cher frère qui m’aidai
tout au long de mon travail BENKEDADRA MOHAMMED et à tous mes amis et
camarades.
YASSINE
AMINE
i
Remerciements
Je tiens à remercier toutes les personnes qui ont contribué au succès de mon
étude et qui m’ont aidée lors de la rédaction de ce mémoire.
Je voudrais dans un premier temps remercier, mon directeur de mémoire
M. Abdelkader Karim Henni, pour sa patience, sa disponibilité et surtout ses
judicieux conseils, qui ont contribué à alimenter ma réflexion.
Je remercie également toute l’équipe pédagogique de l’université
Abdelhamid Ibn Badis de Mostaganem et les intervenants professionnels
responsables de ma formation, pour avoir assuré la partie théorique de celle-ci.
Je veux témoigner toute ma gratitude à monsieur Besnassi Miloud pour
m'avoir soutenu et répondu à mes questions sur l'intelligence artificielle, ainsi
que sur leur expérience personnelle. Ils ont été d'un grand soutien dans
l'élaboration de ce mémoire.
ii
Liste des figures
Figure 2-3 Distribution du nombre d'images pour les 21 814 classes ImageNet 20
Figure 3-4 Accuracy et loss de model cnn après 20 épochè avec dataset1 37
Figure 3-5 Accuracy et loss de model cnn après 20 épochè avec dataset2 38
CV Computer Vision 10
REMERCIEMENTS.................................................................................................................. II
INTRODUCTION ................................................................................................................................ 4
1
CHAPITRE 2 ETAT DE L’ART SUR LES METHODES DE DETECTION D’EVENEMENTS ...........................13
2.1 INTRODUCTION ...................................................................................................................13
2.2 DETECTION DE COMBAT RAPIDE ..............................................................................................13
2.3 DETECTION DE COMBAT AUTOMATIQUE ....................................................................................14
2.4 DETECTION DE LA VIOLENCE DE FOULE ......................................................................................15
2.5 DETECTION DE LA VIOLENCE A L'AIDE DE 3D CNN .......................................................................15
2.6 METHODE DE RECONNAISSANCE DES COMBATS ..........................................................................16
2.7 DETECTER LES VIDEOS VIOLENTES A L'AIDE DE LA MEMOIRE CONVOLUTIONNELLE A COURT TERME
(CONVLSTM) .................................................................................................................................17
2.8 ANALYSE DE VIDEO SUSPECT ...................................................................................................17
2.9 UN CADRE INTERACTIF POUR LA DETECTION ET LA MODELISATION D'EVENEMENTS DE VIDEOSURVEILLANCE
18
2.10 THE IMAGENET SHUFflE : PREFORMATION REORGANISEE POUR LA DETECTION D'EVENEMENTS VIDEO.....20
2.11 REPRESENTATION PROFONDE POUR LA DETECTION D'EVENEMENTS ANORMAUX DANS DES SCENES BONDEES
21
2.12 GEOLOCALISATION ET SUIVI DES EVENEMENTS A PARTIR DE CROWD SOURCED METADONNEES VIDEO .....22
2.13 CLUSTERING PONDERE EN LIGNE POUR LA DETECTION D'EVENEMENTS ANORMAUX EN TEMPS REEL EN
VIDEOSURVEILLANCE .........................................................................................................................23
2
3.5.2 Détection de combat basée sur la vision à partir des caméras de surveillance : ............28
3.6 APPROCHE PROPOSE :...........................................................................................................29
3.6.1 Générateur d'images : .................................................................................................29
3.6.2 Architecture de modèle :..............................................................................................31
3.6.3 Entraînement de modèle .............................................................................................35
3.6.4 Validation....................................................................................................................36
3.6.5 Résultat et discutions ..................................................................................................37
3.7 APPLICATION ......................................................................................................................42
3.8 CAPTURE D’ECRAN ...............................................................................................................44
CONCLUSION ...................................................................................................................................48
BIBLIOGRAPHIE................................................................................................................................51
3
Introduction
En raison des progrès notables dans la disponibilité du service Internet mobile, un grand
nombre de smartphones et d'appareils photo numériques ont été connectés directement en
Internet, ce qui facilite le partage et la publication réussis de vidéos, mais l'écart sémantique
complique la compréhension de divers concepts (objet, mouvement et scène).
Les anomalies dans une scène vidéo spécifique sont définies comme des comportements
improbables qui diffèrent des comportements dominants dans cette scène, dépendant fortement
des travailleurs humains, la plupart des systèmes de surveillance des courants ne parviennent
pas à détecter les anomalies dans le temps, de plus, l'analyse basée sur les anomalies détectées
dans les vidéos aide l'état pour améliorer la gestion de la sécurité publique, la localisation des
anomalies dans les vidéos de surveillance a été un domaine d'intérêt pour son importance pour
la sécurité publique, tout en restant un défi en vision par ordinateur.
Les caméras de sécurité sont très répandues dans notre monde, la détection
d'évènements anormaux en vidéosurveillance attire de plus en plus l'attention et pour cela il
existe plusieurs algorithmes de détection d'anomalies mais la plupart de ces algorithmes ne
peuvent pas être appliqués directement car ils fonctionnent par nature en mode batch, ce qui
nécessite que l'ensemble des données doivent être rendu disponible en avance pour que ces
algorithmes continuent.
4
Problématique :
De notre vision du problème de la sécurité des personnes dans retrait d'argent, nous
avons réfléchi ce qui peut être fait pour réduire ce problème, parce que beaucoup de gens ce
actuellement trouvent des difficultés à utiliser le distributeur de monnaie dans les banques et
les postes en raison d'incidents de vol et d'agression, en particulier dans les dernières heures de
la nuit en raison de l'absence de sécurité pendant cette période de la journée, malgré la présence
de caméras de surveillance, mais cela ne permet pas l'arrestation de l'agresseur au moment de
l'accident.
L'objectif de notre travail est de comprendre comment détecter des événements afin de
créer une application bureau qui permet de détecter des événements dans les
vidéosurveillances. Notre approche divisé en trois grand étapes, d'abord on divisions de la
vidéo en un ensemble de séquences puis des images pour simplifier l'extraction des données,
puis découvrir des personnes à partir d'une image ou d'une vidéo d'entrée spécifique, utilisant
les caractéristiques pour décrire l'apparence humaine (forme, mouvement) par découper
l'image en petites zones, et chaque une sera traitée individuellement par un neurone artificiel
qui effectue une opération de filtrage classique appelée noyau de convolution.
5
Chapitre 1 Généralité sur la vidéo surveillance et
apprentissage machine
1.1 Introduction
Dans ce chapitre, nous décrivons le contexte général de projet, nous présentons les
concepts relatifs aux vidéosurveillances, la détection de la violence dans ses séquences,
l’apprentissage machine et leur type ainsi que l'apprentissage profond.
1.2 Vidéosurveillance
6
1.3 Détection des évènements
La vidéo est divisée en plusieurs scènes, et chaque scène contient plusieurs shots
sachant que shot est une collection d'images enregistrées en une seule opération de caméra.
Souvent, les vidéos nécessitent une analyse du contenu, les opérations manuelles sur vidéo ne
sont pas pratiques. Par conséquent, un système automatique est nécessaire pour analyser le
contenu vidéo.
La détection d'un événement dans une vidéo se fait généralement par division de la
vidéo sous forme des images pour faciliter le traitement, en suite dans la phase de traitement
l'utilisation d'un modèle d'apprentissage automatique est nécessaire pour la classification des
images, des événements similaires auront une classification similaire.
7
1.4 Détection de violence dans une vidéo de surveillance
L’apprentissage machine (en anglais Machine Learning) peut être défini comme étant
une technologie d’intelligence artificielle permettant aux machines d’apprendre sans avoir été
au préalablement programmées spécifiquement à cet effet. Elle traite des sujets complexes où
la programmation traditionnelle trouve ses limites. Construire un programme qui conduit une
voiture par exemple serait très complexe, à cause des nombres infinis des cas possibles à traiter,
8
L’apprentissage machine intervienne pour résoudre ce type de problème où il traite cette
problématique différemment au lieu de décrire quoi faire, le programme apprendra par lui-
même comment conduire en “observant” des expérimentations [6].
9
des formes contenues dans nos données. La première couche de neurones interprète l'image
sous forme de données (dans ce cas les données traitées sont les valeurs des pixels de l'image).
Après le traitement dans la première couche les résultats passés à la prochaine couche
et ce jusqu'à la dernière. Une fois que le système a été entraîné avec suffisamment d'images on
obtient un modèle. On le teste ensuite avec de nouvelles images pour vérifier la pertinence du
modèle obtenu [8].
Dans la vie quotidienne, la personne dépend de ses yeux pour beaucoup de choses comme
éviter des obstacles ou atteindre des choses ou accomplir des missions. Inspirés par la vision,
les scientifiques tentent de donner aux ordinateurs un moyen de voir les choses aussi, c'est ce
qu'on appelle : Computer Vision.
Dans la pratique, cette technique aide à automatiser les processus métier. Elle aide les
humains à détecter des objets, des comportements ou des situations spécifiques faisant gagner
beaucoup de temps et réduisant considérablement le taux d’erreurs humaines. De plus, c’est
grâce à la CV que se développent des innovations révolutionnaires telles que la voiture
autonome ou les objets connectés [9].
10
1.9 Réseau de neurones convolutionnels
1.10 VGG-16 :
11
L'entrée de la couche cov1 est d'une image RGB de taille fixe 224 x 224. L'image est
passée à travers un empilement de couches convolutives, Où les filtres ont été utilisés avec un
très petit champ récepteur : 3 × 3 (qui est la plus petite taille pour capturer la notion de gauche
/ droite, haut / bas). Dans l'une des configurations, il utilise également des filtres de convolution
1 × 1, La foulée de convolution est fixée à 1 pixel, le remplissage spatial de conv. L’entrée de
couche est telle que la résolution spatiale est conservée après convolution, c'est-à-dire que le
remplissage est de 1 pixel pour 3 × 3 convolution filtre Couches. La mise en commun spatiale
est effectuée par cinq couches de pooling max, qui suivent une partie de la conv.
1.11 ResNet :
1.12 Conclusion
Dans ce chapitre, nous avons essayé aborder les concepts généraux de la vidéo
surveillance et de machine Learning, et on a essayé de définir des concepts qui va nous aide
dans le prochain chapitre.
12
Chapitre 2
d’évènements
2.1 Introduction
Au sein de la vision par ordinateur, la reconnaissance des actions devient un sujet actif.
Pour détecter les séquences de violence, une nouvelle méthode est proposée en 2015 [13]. Les
auteurs supposent que dans les scènes de combat, les blobs de mouvement ont une forme et
une position spécifiques, Premièrement, la différence entre les images consécutives est calculée
pour les images absolues.
13
2.3 Détection de combat automatique
Pour détecter les combats de manière peu coûteuse et naturelle, une approche basée sur
l’apprentissage profond vers la détection de la violence dans les films est proposée en 2016
[14], cette méthode est basée sur l'analyse de mouvement, deux approches sont appliquées pour
détecter le combat.
La première approche est une agrégation statistique à deux niveaux qui génère un
ensemble de fonctionnalités. Les pixels de mouvement sont extraits puis les régions de
mouvement de la série d'images en calculant les vecteurs de flux optique. Ensuite, les images
du flux optique sont classées selon la nature des vecteurs après élimination du bruit. Après cela,
les statistiques de mouvement sont calculées en fonction de types classifiés pour produire
l'ensemble des fonctions de reconnaissance.
La deuxième approche utilisée est le sac de mots (Bag of Words), qui est utilisée pour
produire l'ensemble de mots visuels. Ensuite, l'histogramme est utilisé à travers l'ensemble des
mots visuels comme vecteur pour caractériser la vidéo pour la détection du combat.
14
Les expériences sont effectuées à l'aide des vidéos basées sur des combats réels et les
résultats de l'expérience montrent que la méthode proposée surpasse les méthodes existantes
basées sur les descripteurs MoSIFT avec mécanisme (BOW) et l'analyse de base du signal de
mouvement avec l'approche (BOW) en termes de rappel et de précision.
Dans les applications de vision par ordinateur, un ensemble riche d'outils est fourni par
la théorie lagrangienne pour analyser les informations non locales à long terme du mouvement.
Sur la base de cette théorie, une technique lagrangienne spécialisée est proposée en 2017 [16]
pour la reconnaissance automatique des scènes de violence dans les séquences vidéo.
Les champs de direction basés sur un modèle spatio-temporel sont utilisés pour de
nouvelles fonctionnalités et ont utilisé les informations de compensation de mouvement
d'arrière-plan, d'apparences et de mouvement à long terme. Une approche étendue basée sur le
sac de mots est appliquée de manière tardive sur une base par vidéo en tant que schéma de
classification pour garantir l'échelle de caractéristiques temporelle et spatiale appropriée.
Les résultats montrent que l'ajout de la théorie lagrangienne est un signe précieux pour
la détection de la violence et les performances de classification ont augmenté par rapport aux
méthodes de pointe comme Vif, HOG + Bow, CNN à deux flux, etc. en termes d'AUC et de
précision.
15
Le CNN 3D est utilisé pour calculer la convolution sur l'ensemble d'images vidéo,
d'où l'information sur le mouvement est extraite de l'entrée, le modèle est formé à l'aide d'un
apprentissage supervisé. Les expériences sont effectuées à l'aide du jeu de données Hockey et
les résultats montrent que la méthode proposée est supérieure sans s'appuyer sur des
caractéristiques artisanales en termes de précision.
À cette fin, un cadre hybride a été proposé en 2018 par I. Serrano [18], la méthode vise
tout d'abord à obtenir l'image illustrative de la séquence vidéo prise comme entrée pour
l'extraction de caractéristiques et la forêt de Hough (Hough Forest), elle est utilisée comme
classificateur, ensuite, pour classer cette image et obtenir la conclusion de la séquence, le CNN
2D est utilisé. Des expériences utilisant trois ensembles de données bien connus sur le hockey,
le cinéma et le comportement sont effectuées. Les résultats révèlent que la méthode proposée
fonctionne mieux que les différentes méthodes d'apprentissage artisanal et approfondi basées
sur les précisions et les écarts-types.
16
2.7 Détecter les vidéos violentes à l'aide de la mémoire
convolutionnelle à court terme (ConvLSTM)
Une méthode basée sur un réseau de neurones profonds est proposée pour reconnaître la
violence dans les vidéos. CNN est utilisé pour extraire les fonctionnalités du niveau image dans
les vidéos, ensuite, ces fonctionnalités sont accumulées à l'aide d'une variante de LSTM qui
utilise des portes convolutionnelles. La combinaison de CNN et ConvLSTM peut prendre les
caractéristiques spatio-temporelles localisées qui permettent une analyse de mouvement locale
ayant lieu dans les vidéos. Il est également proposé d'utiliser les différences d'images adjacentes
comme entrée dans le modèle qui codent les changements survenus dans les vidéos [20].
Dans le domaine de détection des événements dans une vidéo, les auteurs dans [21] ont
créé en 2005 une nouvelle méthode, ce travail est lié au problème de l'écart sémantique entre
les propriétés de bas niveau (couleur, texte, forme), et les événement qu'un être humain regarde
dans un clip vidéo (documentation, série télévisée, matche football), les méthodes pour
résoudre ce problème doivent prendre en considération les points suivants :
17
représenté comme un ensemble d'histogrammes x, y et t sur plusieurs échelles
temporelles.
Malgré ça, Le problème de détection d'événements est donc défini de deux façons
différentes :
La complexité des événements de haut niveau est gérée par la division de système en trois
couches :
19
2.10 The ImageNet Shuffle : Préformation réorganisée pour la
détection d'événements vidéo
Cet article est un travail réalisé par Pascal Mettes, Dennis C. Koelma et Cees G. M en
2016 [22], il présente une tente d'assurer la détection des événements vidéo à l'aide d'une
représentation tirée des réseaux de neurones convolutionnels profonds, d'autres méthodes
fonctionnent sur l'apprentissage à partir des 1000 cycles dans le défi de reconnaissance visuelle
à grande échelle d'ImageNet, mais ce travail se concentre sur l'étude de la façon de tirer parti
de la hiérarchie complète d'ImageNet pour la formation passée sur les réseaux profonds, pour
traiter les problèmes des classes sur spécifiées et des classes avec peu d'images.
L'approche introduit par cet article est une méthode ascendante et descendante pour la
réorganisation de la hiérarchie ImageNet basée sur toutes ses 21 814 classes et plus de 14
millions d'images.
Figure 2-3 - Distribution du nombre d'images pour les 21 814 classes ImageNet.
TRECVID MultiMedia Event Detection offre une tâche intéressante mais très difficile dans
la détection des événements complexes de haut niveau dans les vidéos générées par Hanhe Lin,
Jeremiah D. Deng, Brendon J. Woodford, and Ahmad Shahi. 2016. Online Weighted
Clustering for Real-time Abnormal Event Detection in Video Surveillance. In Proceedings of
the 24th ACM international conference on Multimedia (MM ’16). Association for Computing
20
Machinery, New York, NY, USA, 536–540.l'utilisateur, ses expériences de 2013 et 2015
montrent que les représentations vidéo dérivées des couches d'un réseau neuronal profond
préformé avec la hiérarchie réorganisée.
S'améliorent par rapport à la préformation standard.
Sont complémentaires entre les différentes réorganisations.
Conserve les avantages de la fusion avec d'autres modalités.
Conduit à des résultats de détection d'événements de pointe.
Un nouveau cadre pédagogique profond a été proposé par Yachuang Feng, Yuan Yuan et
Xiaoqiang Lu en 2016 [23], pour découvrir des événements anormaux, l'apparence, le
mouvement et leurs représentations combinées sont reconnus par trois codeurs audio empilés
(SDAE), mais il y a encore quelques lacunes :
1. Seules les informations de mouvement à court terme, c'est-à-dire les cartes de flux
optique, sont prises en compte. Comme on le sait, les événements vidéo sont très
complexes, par conséquent, des guides temporels à long terme sont nécessaires pour
connaître la régularité des événements vidéo.
2. Les informations de contexte sont ignorées, dans les scènes surpeuplées, les objets en
mouvement sont étroitement liés les uns aux autres. Dans ce cas, la découverte des
21
relations entre les événements vidéo adjacents devrait être utile pour détecter les
anomalies dans les scènes surpeuplées.
Afin de faire face à ces problèmes, un cadre d'apprentissage approfondi a été proposé pour
la détection d'événements anormaux, un modèle SDAE est formé pour apprendre et fusionner
des caractéristiques d'apparence, de texture et d'indices de mouvement à court terme, en
revanche, ce travaille modélise les régularités des événements avec un réseau neuronal
récurrent, LSTM est utilisé dans cet article car il est capable d'apprendre des dépendances à
long terme dans des événements vidéo. Ces dépendances sont apprises par un cadre de
prédiction basé sur LSTM.
De nos jours, les smartphones ont connu un grand développement où ils sont équipés
d'une variété de capteurs ainsi que les utilisateurs de ces smartphones génèrent une énorme
quantité de données sous forme d'images et de vidéos. Il existe différentes méthodes
disponibles pour le traitement d'une telle information vidéo, par exemple la détection et le suivi
d'objets, la détection d'événements de reconnaissance d'action ...etc.
Le présent article porte sur une méthode moderne de traitement vidéo proposé par Amit
More et Subhasis Chaudhuri en 2016 [24] appelé la géolocalisation d'événements, cette
méthode vise à localiser et suivre un événement, pour cela elle utilise des propriétés existant
dans les smartphones, comme une boussole numérique et un récepteur GPS.
De plus, l'événement dans cette technique est un objet en mouvement ou immobile qui
est enregistré par de nombreuses personnes en même temps comme un concert ou un défilé,
sont souvent enregistrés en vidéo par de nombreuses personnes en même temps. Il existe
plusieurs méthodes et algorithmes traditionnels qui font de même mais peuvent échouer ou
nécessitent une grande quantité de calculs. La technologie est toujours en cours de
développement car il y a des imperfections, comme le fait de gérer plusieurs événements en
22
même temps dans une petite zone géographique, l'approche actuelle peut ne pas être en mesure
de localiser correctement l'un des événements.
Les caméras de sécurité sont très répandues dans notre monde, la détection
d'événements anormaux (DEA) en vidéosurveillance attire de plus en plus l'attention et pour
cela il existe plusieurs algorithmes de détection d'anomalies mais la plupart de ces algorithmes
ne peuvent pas être appliqués directement car ils fonctionnent par nature en mode batch, ce qui
nécessite que l'ensemble des données doive être rendu disponible à l'avance pour que ces
algorithmes continuent.
Cet article proposé par Hanhe Lin et d’autre [25], porte sur un nouveau Framework
pour résoudre le problème de la détection des événements anormaux en vidéo surveillance, La
méthode se concentre sur l'utilisation de nombreux algorithmes pour obtenir le résultat
souhaité. Premièrement les emplacements spatiaux dans un cadre sont partitionnés en grilles.
Puis dans chaque grille, les caractéristiques proposées du flux optique d'histogramme multi-
échelle adaptatif (AMHOF) sont extraits et modélisés par un algorithme appelé Online
Weighted Clustering (OWC) cet algorithme est simple à mettre en œuvre et efficace en termes
de calcul. Les AMHOF qui ne peuvent pas être adaptés à un cluster de poids important sont
considérés comme des événements anormaux. Au but d'améliorer les performances de
détection la méthode utilise un algorithme appelé Multiple Target Tracking (MTT).
23
2.14 Comparaison des travaux :
2.15 Conclusion
Dans ce chapitre, nous avons faire une collecte d’informations qui nous a permis de
préparer une étude théorique au cours de laquelle nous avons étudié et critiqué les Techniques
précédentes, tel que l'utilisant de l'apprentissage automatique.
24
Chapitre 3 Implémentation
3.1 Introduction
Visual Studio Code ou VSC est l'un des éditeurs de code source les plus populaires les plus
utilisés par les programmeurs. Il est rapide, léger, puissant et même configurable, sans oublier
sa fonctionnalité d’extension qui présenté la caractéristique la plus utile. Microsoft a conçu
VSC comme un éditeur de code multi plateforme pour l'écriture
d'applications Web et cloud.
25
3.4 Langages de programmation :
3.4.1 Python :
Python est le langage de programmation open source le plus
employé par les informaticiens. Ce langage s’est propulsé en tête de
la gestion d’infrastructure, d’analyse de données ou dans le domaine
du développement de logiciels, dans notre travaille nous allons
utiliser la version actuelle Python3, parce que son interpréteur est plus
efficace, ainsi que son contrôle de concurrence [27].
Parmi les bibliothèques de python les plus importantes dans le domaine de l'intelligence
artificielle que nous avons utilisé :
3.4.1.1 Tensorflow :
TensorFlow est une bibliothèque de Machine Learning créée par l’équipe Google Brain
en 2011, il s’agit d’une boîte à outils permettant de résoudre des problèmes mathématiques
extrêmement complexes avec aisance. Elle permet aux chercheurs
de développer des architectures d’apprentissage expérimentales et
de les transformer en logiciels [28], dans notre approche, nous
utilisons la dernière version 2.3.0.
3.4.1.2 Keras
Keras est une bibliothèque open-source de composants de réseaux neuronaux écrits en
Python. Elle est capable de fonctionner au sommet du tensorflow, composée d'une bibliothèque
de composants d'apprentissage automatique couramment utilisés, y compris des objectifs, des
fonctions d'activation et des optimiseurs, la plateforme open source de Keras offre également
une prise en charge des réseaux de neurones récurrents et convolutifs.
Depuis 2018, la bibliothèque a 22% d'utilisation à travers ses plus de 200 000
utilisateurs [29].
26
3.4.1.3 Flask
Flask est un framework open-source de développement web en Python. Son but
principal est d'être léger, afin de garder la souplesse de la programmation Python, associé à un
système de Template. Il est distribué sous licence
BSD2[30].
3.4.2 Javascript
JavaScript désigne un langage de développement informatique, et plus précisément un
langage de script orienté objet. On le retrouve principalement dans les pages
Internet. Il permet, entre autres, d'introduire sur une page web ou HTML
des petites animations ou des effets, il a été créé en 1995 par Brendan Eich,
en même temps que la technologie Java [31].
3.4.2.1 Electron js
Electron est un framework de JavaScript pour créer des applications natives avec
des technologies Web telles que JavaScript, HTML et CSS. Il s'occupe des parties dures afin
27
3.5 Data-set
28
3.6 Approche proposé :
29
de dataset à l'aide de la librairie python os, par la suite et avec opencv nous prenons 2 images
pour chaque seconde de la vidéo afin de diversifier les images en termes de contenu.
30
En fin, les images obtenues sont divisées en deux collections, 75% pour l'entrainement
et 25% pour le teste et validation.
31
Figure 3-2 - Architecture de modèle proposé
32
Nous utilisons le modèle séquentiel dans notre approche, il convient à une simple pile
de couches où chaqu'une a exactement un tenseur d'entrée et un tenseur de sortie, nous ajoutons
des couches convolutives 2D initialement avec un incrément du nombre de nœuds après chaque
couche, en commençant par 32 à 64 avec une fonction d'activation de type 'relu', pour la taille
des filtres nous choisissons (3,3), cette couche va être suivi avec une maxpoolin2D ,ce qui
raccourcit les échantillons de représentation d'entrée en prenant la valeur maximale avec
pool_size pour chaque dimension.
33
Après nous aplatirons la sortie des couches de chaise, c'est-à-dire supprimer toutes les
dimensions sauf une. Donc la forme de sortie ultérieure du couche aplati sous forme (18 * 18
* 64 = 20736). Les entités existent maintenant en tant que vecteur et peuvent ensuite être
introduites dans le réseau dense dans les couches suivantes.
Notre modèle est fini avec trois couches de type dense, une couche dans laquelle chaque
neurone d'entrée est connecté au neurone de sortie, comme un simple réseau de neurones, les
paramètres d'unités vous indiquent simplement la dimensionnalité de votre sortie, pour les deux
premières couches, nous initialiserons une activation de type ‘Relu’ avec un nombre
incrémentiel de nœuds, et pour la couche de sortie nous utilisons l'activation Softmax pour la
classification binaire (n = 2). Lorsque la somme de toutes les unités softmax est supposée être
1, donc le résultat va être (1 pour violence et 0 pour le non-violence).
34
3.6.3 Entraînement de modèle
Après avoir construit le modèle, nous devons spécifier une fonction de perte "loss
function" pour optimiser les valeurs des paramètres dans un modèle de réseau neuronal, et un
optimiseur pour modifier les attributs de notre réseau neuronal tels que les poids et le taux
d'apprentissage afin de réduire les pertes et aider aussi à obtenir des résultats plus rapidement,
et éventuellement nous spécifions des métriques à surveiller, en les passant au modèle comme
arguments de la méthode compile (). Pour l'argument métrique, nous choisissons la précision,
et "adam" comme un optimiseur.
Le générateur de données peut ensuite être utilisé avec le modèle Keras pour accepter
plusieurs générateurs de données comme entrées : « train_generator »
« validation_generator », nous utilisons le paramètre « shear_range » pour appliquer de
manière aléatoire des transformations de cisaillement, et le « zoom_range » pour zoomer de
manière aléatoire à l'intérieur des images.
35
En raison de générateur de données Keras est conçu pour une boucle infinie, il n'a pas la
capacité de déterminer quand une époque commence et quand une nouvelle époque commence,
par conséquent, nous utilisons le step_per_epoch avec le nombres des pas égal à 220, l'objet
history_cnn_fcn renvoyé contient un enregistrement des valeurs de perte et des valeurs de
métrique pendant l'entraînement.
Puis nous commençons à entraîner notre modèle avec 100 époques via Google Colab
avec 0,80 Go de RAM / 12,72 Go de GPU, enfin nous enregistrerons nos meilleurs paramètres
dans fichier de type HDF (Hierarchical Data Format) qui est un ensemble de format de fichiers
permettant de sauvegarder et de structurer des fichiers contenant de très grandes quantités de
données, nous utilisent le type H5 pour cette tâche.
3.6.4 Validation
Pour évaluer l'efficacité de l'approche proposée dans la classification, deux ensembles de
données de référence sont utilisés et la précision de la classification est rapportée, donc nous
prenons notre ensemble de données de validation de Google Drive et nous réorganiserons
l'ordre des éléments avec la méthode shuffle () de la bibliothèque Random, puis nous
l'exécuterons à travers le modèle, pour essayer de prédire si l'image est violente ou non avec la
méthode predict ().
36
Tant que Keras peut prédire plusieurs valeurs en même temps, nous entrerons un vecteur
de 30 éléments, il peut calculer une prédiction pour chaque élément, donnant 30 sorties, c'est
simplement parce que nous ne pouvons pas insérer toutes les données dans la RAM en même
temps, donc un traitement par batch est nécessaire.
Figure 3-4 - accuracy et loss de model cnn après 20 épochè avec dataset1.
37
Pour le deuxième ensemble de données [32], nous obtenons une précision
d’entraînement 78,72% et 65,00 % de validation pour le même nombre époques. La valeur de
la perte d'entraînement est montée à environ de 0,5 et la perte de validation atteint la valeur de
0,7. La précision obtenue à travers les époques est représentée sur la figure 33, ainsi que la
perte est représentée sur la figure 3-5. Les résultats montrent que le modèle classe les données
avec une avec une mauvaise précision et obtenez le problème de sur ajustement qui correspond
trop précisément à une collection particulière d'un ensemble de données. Ainsi, cette analyse
ne peut pas correspondre à des données supplémentaires ou ne peut pas prévoir de manière
fiable les observations futures.
Figure 3-5 - accuracy et loss de model cnn après 20 épochè avec dataset2.
38
Vgg-16 :
Mini Resnet :
Les modèles Resnet et vgg_16 ont montré de bonnes performances, mais c'est
intéressant d'observer que les modèles avec le premier ensemble de données ont obtenu de
meilleures performances à la fois en termes de précision et de perte par rapport aux résultats
obtenus lorsque nous avons commencé à les entraîner avec le deuxième ensemble de données,
et que ce qui s'est passé avec notre modèle, on note une variation des résultats obtenus, que ce
soit en termes de précision (accuracy) ou bien en termes de perte (loss) dans les deux phases
entraînement et validation.
Enfin, pour accéder aux performances du modèle, en plus les graphiques de perte et
accuracy, les mesures de performance sont également utilisées. En particulier, les scores de
précision, de rappel et de F1 étaient obtenus pour les modèles. La précision est le rapport ont
correctement classé les vraies instances positives à la somme des vraies instances positives et
fausses positives (1). Rappel représente le rapport des vraies instances positives à la somme de
39
instances vraies positives et fausses négatives (2), tandis que le score F1 présente la moyenne
pondérée des deux précision et rappel et peut être calculé sur la base de (3) valeurs plus proche
de 1 pour ces trois mesures indiquent des bonnes performances du modèle.
(1)
(2)
(3)
Les résultats suivants sont obtenus avec 100 époques pour les trois méthodes avec le
premier jeu de données :
40
Figure 3-7 - Performance du modèle vgg16.
On remarque dans les résultats obtenus que l’approche proposée enregistre la plus
grande valeur en termes de f1-score et précision avec un taux de 92%, cela ne veut pas dire que
c'est la meilleure méthode, mais c’est la plus compatible avec l'ensemble de données traité.
Cependant, la méthode proposée ne surpasse pas les travaux précédents (elle arrive quatrième
en termes de précision).
.
41
Travaux liée référence méthodes Accuracy
3.7 Application
L'application que nous avons fournie basée sur Electron pour gérer le front-end et
l'interface, avec le back-end Python pour exécuter le modèle d'apprentissage sauvegarder sous
forme H5, au lieu d'utiliser les bibliothèques python connues pour les interfaces d'applications
de bureau telles que (kivy, Tkinter, PyGUI), cela nous permet d'utiliser des technologies Web
avancées et nous n'avons pas besoin d'apprendre l'ancienne boîte à outils GUI à peine
entretenue, afin de pouvoir réutiliser nos connaissances actuelles en JavaScript, HTML et CSS
que nous utilisons tous déjà à l'époque de la construction de sites.
Nous utilisons Flask, le Framework web populaire pour créer des applications Web avec
Python, et Electron pour créer une application de bureau avec une interface graphique moderne.
Il existe de nombreux avantages à combiner Flask avec Electron pour créer des applications,
telles que :
42
- La puissance de nodejs et de son énorme référentiel de packages npm.
- Mises à jour automatiques de votre application.
- La grande communauté et l'écosystème d’Electron.
Notre application est composée de plusieurs fonctions, voici les plus importantes :
43
Cette fonction encadrera les images traitées selon leurs classes, la couleur du cadre sera
rouge si l'image prédite comme une action de violence sinon la fonction affectera la couleur
Les images encadrées seront collées dans une vidéo finale afin de la sauvegarder dans un
dossier.
Ouvrir le terminal et accéder vers le dossier Api qu’est dans le dossier de notre projet.
Ensuit tapez la commande pip install requirement.txt pour installer les dépendances
de python.
Une fois que l'utilisateur lance l'application, la première interface qui sera affichée est
la page d’entrée, cette interface contient un champ de texte pour saisir le lien de la vidéo qui
sera traitée et un bouton pour suivre la procédure.
44
Figure 3-9 - interface de d’entrée.
45
Enfin les vidéos traitées seront enregistrées dans un dossier sur le bureau avec
l'encadrement des images et la définition des types d'événement dans chaque seconde, cela
facilite le stockage des résultats pour l’utilisateur.
46
La Figure 3-12 représente un exemple de détection d’un évènement de violence.
La Figure 3-13 représente un exemple de détection d’un évènement de non-violence.
47
Figure 3-13 - détection de non-violence.
Conclusion
Dans ce chapitre, nous avons présenté les technologies et les outils utilisés pour réaliser
notre projet, en suit nous avons détaillé l’architecture de notre algorithme ainsi que
l’explication des paramètres et le code source de chaque phase, en fin on a expliqué notre
application bureau. Notre objectif était la réalisation d’un algorithme de détection de violence
robuste avec une interface intuitive.
48
Conclusion Générale
Dans cet article nous avons tout d’abord entraîné et testé un modèle CNN sur deux
ensembles de données classées en 2 classes : un ensemble contient 246 vidéos, et l’autre ont
300 vidéos. Le modèle CNN s'est mieux développé précision pour un grand ensemble de
données.
50
Bibliographie
[1] www.digitalsecuritymagazine.com.
[2] www.researchgate.net.
[4] Prateek Joshi, David Millán Escrivá, Vinić ius Godoy; Livre électronique Packt
Publishing, 2016, OpenCV by example: enhance your understanding of computer vision and
image processing by developing real-world projects in OpenCV 3.
[5] www.mdpi.com
[6] www.stemmer-imaging.com.
[7] fr.mathworks.com.
[8] www.supinfo.com.
[9] deepomatic.com.
[10] Zhang, Wei. 1988. Shift-invariant pattern recognition neural network and its
optical architecture. Actes de la conférence annuelle de la Japan Society of Applied Physics.
[11] neurohive.io/en/popular-networks/vgg16/.
[12] iq.opengenus.org/resnet50-architecture/
[13] I. S. Gracia, O. D. Suarez, G. B. Garcia, T.-K. Kim, Fast fight detection, PLoS
ONE, vol. 10, Apr. 2015.
51
[14] E. Y. Fu, H. Va Leong, G. Ngai, S. Chan. 2016. Automatic fight detection in
surveillance videos, Proc. 14th Int. Conf. Adv. Mobile Comput. Multi Media, pp. 225-234.
[15] www.semanticscholar.org.
[20] Lavee, Gal & Khan, Latifur & Thuraisingham, Bhavani. 2007. A framework
for a video analysis tool for suspicious event detection. Multimedia Tools Appl. 35. 109-123.
[21] Fabio Persia, Fabio Bettini, and Sven Helmer. 2017. An Interactive Framework
for Video Surveillance Event Detection and Modeling. In Proceedings of the 2017 ACM on
Conference on Information and Knowledge Management (CIKM ’17). Association for
Computing Machinery, New York, NY, USA, 2515–2518.
[22] Pascal Mettes, Dennis C. Koelma, and Cees G.M. Snoek. 2016. The ImageNet
Shuffle: Reorganized Pre-training for Video Event Detection. In Proceedings of the 2016 ACM
on International Conference on Multimedia Retrieval (ICMR ’16). Association for Computing
Machinery, New York, NY, USA, 175–182.
52
[23] Yachuang Feng, Yuan Yuan, and Xiaoqiang Lu. 2016. Deep Representation for
Abnormal Event Detection in Crowded Scenes. In Proceedings of the 24th ACM international
conference on Multimedia (MM ’16). Association for Computing Machinery, New York, NY,
USA, 591–595.
[24] Amit More and Subhasis Chaudhuri. 2016. Event geo-localization and tracking
from crowd-sourced video metadata. In Proceedings of the Tenth Indian Conference on
Computer Vision, Graphics and Image Processing (ICVGIP ’16). Association for Computing
Machinery, New York, NY, USA, Article 24, 1–8.
[26] https://ledatascientist.com/google-colab-le-guide-ultime/.
[27] www.journaldunet.fr/web-tech/dictionnaire-du-webmastering/1445304-python-
definition-et-utilisation-de-ce-langage-informatique/.
[28] www.lebigdata.fr/tensorflow-definition-tout-savoir.
[29] deepai.org/machine-learning-glossary-and-terms/keras.
[30] flask.palletsprojects.com.
[31] www.journaldunet.fr.
[32] www.electronjs.org.
[33] https://www.openu.ac.il/home/hassner/data/violentflows/violent_flows.pdf.
53
[35] Ş. Akti, G.A. Tataroğlu, H.K. Ekenel, “Vision-based Fight Detection from
Surveillance Cameras”, IEEE/EURASIP 9th International Conference on Image Processing
Theory, Tools and Applications, Istanbul, Turkey, November 2019.
54