Vous êtes sur la page 1sur 63

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE

UNIVERSITE ABDELHAMID IBN BADIS - MOSTAGANEM

Faculté des Sciences Exactes et d’Informatique


Département de Mathématiques et informatique
Filière : Informatique

RESUME DE MEMOIRE DE Master en Informatique


Option : Ingénierie des Systèmes d’Information Ou Réseaux et Systèmes

Étudiant (s): - Youcefi Mohammed Yassine


- Benkorreche Mohammed el Amine
THEME :
La détection des événements dans une vidéo

JURY:
Besnassi Miloud Université de Mostaganem Président
Moumen Med El Amine Université de Mostaganem Examinateur
Henni Abdelkader Karim Université de Mostaganem Encadrant

Année Universitaire 2019-2020


Abstract : Thanks to the notable advancement in technological innovations in the field of
public security, a large number of surveillance cameras are connected directly to each other,
therefore an automatic system is necessary for analyzing the videos. The objective of our
work is to understand how to detect events in order to create a desktop application that can
detect events in video surveillance. Our approach divided into three main steps, first we
divide the video into a set of sequences then images to simplify data extraction, then discover
people from an input image or video. specific, finally to have detected the events we have
using convolutional neural networks.

Résumé : Grâce à l'avancement notable dans les innovations technologique de domaine de


sécurité publique, un grand nombre de caméras de surveillances sont connecté directement
entre eux, par conséquence un système automatique est nécessaire pour l'analyse des vidéos.
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, en fin pour avoir détecté les
évènements nous avons utilisant les réseaux de neurones convolutionnel.
‫بفضل التقدم الملحوظ في االبتكارات التكنولوجية في مجال األمن العام‪ ،‬تم توصيل عدد كبير من كاميرات‬ ‫الملخص‪:‬‬
‫المراقبة ببعضها البعض مباشرة‪ ،‬وبالتالي فإن النظام اآللي ضروري لتحليل مقاطع الفيديو‪ .‬الهدف من عملنا هو فهم كيفية‬
‫اكتشاف األحداث من أجل إنشاء تطبيق سطح مكتب يمكنه اكتشاف األحداث في المراقبة بالفيديو‪ .‬نهجنا مقسم إلى ثالث‬
‫خطوات رئيسية‪ ،‬أوالً نقسم الفيديو إلى مجموعة من التسلسالت ثم الصور لتبسيط استخراج البيانات‪ ،‬ثم نكتشف األشخاص‬
‫أخيرا يتم اكتشاف األحداث المعنية باستخدام الشبكات العصبية التالفيفية ‪.‬‬
‫ً‬ ‫من صورة إدخال أو مقطع فيديو‪ .‬محددة‪،‬‬
Dédicaces

Au nom du dieu le clément et le miséricordieux louange à ALLAH le tout Puissant.

Je dédie ce modeste travail en signe de respect, reconnaissance et de remerciement :

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 N° Titre de la figure Page

Figure 1-1 Les couches principales d'un système de vidéosurveillance 6

Figure 1-2 Schéma de la décomposition d'une vidéo en plusieurs scènes 7

Figure 1-3 Différence entre les évènements normaux et anormaux 8

Figure 1-4 Architecture de modèle vgg-16 11

Figure 2-1 Evolution des performances du modèle proposé 14

Figure 2-2 Architecture globale de système 19

Figure 2-3 Distribution du nombre d'images pour les 21 814 classes ImageNet 20

Figure 3-1 Notre méthode proposé 29

Figure 3-2 Architecture de modèle proposé 32

Figure 3-3 Maxpooling2d 33

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

Figure 3-6 Performance du modèle proposé 40

Figure 3-7 Performance du modèle vgg16 41

Figure 3-8 Performance du modèle Resnet 41

Figure 3-9 Interface de d’entrée 45

Figure 3-10 Page de consultation 45

Figure 3-11 Finalisation de détection 46

Figure 3-12 détection de violence. 47

Figure 3-13 Détection de non-violence 48


Liste des tableaux

Tableau N° Titre de tableau Page

Tableau 1 Comparaissent de travaux liées 24

Tableau 2 Résultat d’apprentissage de modèle vgg-16 39

Tableau 3 résultat d’apprentissage de modèle Resnet 39

Tableau 4 comparaison de la méthode avec travaux liée 42


Liste des abréviations

Abréviation Expression Complète Page

CV Computer Vision 10

CNN Réseau De Neurones Convolutifs 11

BOW Bag of Words 15

HOG Histogramme De Gradient Orienté 15

VIF Variance Inflation Factor 15

LSTM Long Short Term Memory 17

OWC Online Weighted Clustering 23

MTT Multiple Target Trackin 23


Table des matières

REMERCIEMENTS.................................................................................................................. II

LISTE DES FIGURES ........................................................................................................................... III

LISTE DES TABLEAUX........................................................................................................................ IV

LISTE DES ABREVIATIONS ................................................................................................................. V

TABLE DES MATIERES ....................................................................................................................... 1

INTRODUCTION ................................................................................................................................ 4

CHAPITRE 1 GENERALITE SUR LA VIDEO SURVEILLANCE ET APPRENTISSAGE MACHINE ................... 6


1.1 INTRODUCTION .................................................................................................................... 6
1.2 VIDEOSURVEILLANCE ............................................................................................................. 6
1.3 DETECTION DES EVENEMENTS .................................................................................................. 7
1.4 DETECTION DE VIOLENCE DANS UNE VIDEO DE SURVEILLANCE ......................................................... 8
1.5 APPRENTISSAGE MACHINE ...................................................................................................... 8
1.5.1 L’apprentissage supervisé ............................................................................................. 9
1.5.2 L’apprentissage non-supervisé...................................................................................... 9
1.6 RESEAUX NEURONES.............................................................................................................. 9
1.7 L'APPRENTISSAGE PROFOND .................................................................................................... 9
1.8 VISION PAR ORDINATEUR .......................................................................................................10
1.9 RESEAU DE NEURONES CONVOLUTIONNELS ................................................................................11
1.10 VGG-16 : ..........................................................................................................................11
1.11 RESNET : ...........................................................................................................................12
1.12 CONCLUSION ......................................................................................................................12

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.14 COMPARAISON DES TRAVAUX : ...............................................................................................24


2.15 CONCLUSION ......................................................................................................................24

CHAPITRE 3 IMPLEMENTATION .......................................................................................................25


3.1 INTRODUCTION ...................................................................................................................25
3.2 ENVIRONNEMENT DE DEVELOPPEMENT.....................................................................................25
3.2.1 Google Colab : .............................................................................................................25
3.3 VISUAL STUDIO CODE ...........................................................................................................25
3.4 LANGAGES DE PROGRAMMATION : ..........................................................................................26
3.4.1 Python : .......................................................................................................................26
3.4.2 Javascript ....................................................................................................................27
3.5 DATA-SET ..........................................................................................................................28
3.5.1 Base de données sur la violence de la foule et la non-violence......................................28

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

CONCLUSION GENERALE ..................................................................................................................49

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.

La difficulté de distinguer les événements anormaux des événements normaux est un


problème pour la vidéosurveillance, Ce document suggère la création d'un algorithme
d’apprentissage automatique qui permet de détecter les scènes d'agression et de violence.

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

Actuellement les caméras enregistrent partout les évènements d'une maniéré


quotidienne sous plusieurs angles, afin de revoir la bande ultérieurement et de recueillir des
informations sur cet événement, qui nous permettre après de traduire les contrevenants en
justice.

Figure 1-1 - les couches principales d'un système de vidéosurveillance [1].

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.

Figure 1-2 - Schéma de la décomposition d'une vidéo en plusieurs scènes [2].

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.

La technologie de détection d'événements vidéo est utilisée dans de nombreux


domaines tels que les sports et la sécurité, Il existe aussi 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.

7
1.4 Détection de violence dans une vidéo de surveillance

Les systèmes de détection d'événements anormaux sont conçus pour détecter


rapidement tout comportement potentiellement dangereux, cela permet de prendre des mesures
précoces pour prévenir ou réagir à des événements, tels que des accidents ou des actes
répréhensibles. Nous abordons le problème de la détection de la violence humaine en vidéo,
comme les coups de poing, les coups de pied, les coups avec des objets, etc. Pour détecter la
violence, nous nous appuyons sur les informations de trajectoire de mouvement et sur les
informations d'orientation des membres d'une personne [3][4].

Figure 1-3 - Différence entre les évènements normaux et anormaux [5].

1.5 Apprentissage machine

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].

Il existe deux types d’apprentissage machine les plus utilisées :

1.5.1 L’apprentissage supervisé


La machine s’appuie sur des classes prédéterminées et sur un certain nombre de
paradigmes connus pour mettre en place un système de classement à partir de modèles déjà
classés. Il y a deux étapes nécessaires pour compléter le processus, à commencer par
l’apprentissage qui consiste à la modélisation des données cataloguées. Ensuite, il s’agira au
second stade de se baser sur les données ainsi définies pour attribuer des classes aux nouveaux
modèles introduits dans le système, afin de les cataloguer eux aussi.

1.5.2 L’apprentissage non-supervisé


En apprentissage non-supervisé, aucune instruction n'est fournie au modèle. C'est à
l'algorithme de déterminer les critères les plus pertinents pour classer les données.

1.6 Réseaux neurones

Un réseau de neurones ou (Artificiel neural networks en anglais) est un modèle


informatique dont la structure en couches est similaire à la structure en réseau des neurones du
cerveau, avec des couches de nœuds connectés. Un réseau de neurones peut apprendre à partir
de données, il peut ainsi classer des données et prévoir des événements à venir [7].

1.7 L'apprentissage profond

Apprentissage profond ou (Deep Learning en anglais) est une technique de machine


learning qui permet de résoudre des problèmes en utilisant un grand niveau d’abstraction.
L’idée consiste à utiliser plusieurs couches de neurones afin de laisser la machine apprendre

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].

1.8 Vision par ordinateur

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.

Computer vision ou La vision par ordinateur en français est une sous-catégorie de


l’informatique et de l’intelligence artificielle. C’est un ensemble de méthodes et de
technologies qui permettent d’automatiser une tâche spécifique à partir d’une image ou une
vidéo.

La Computer Vision extrait l’information des images et reconnaît des concepts


spécifiques. Elle peut donc effectuer une variété de tâches telles que la reconnaissance de
visages ou de caractères dans une image, la détection de l’emplacement d’un objet dans une
image ou la classification d’images. Les tâches les plus courantes sont la détection d’objets et
la classification d’images.

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

Un réseau de neurones convolutionnels (CNN) est un type de réseaux de neurones


profonds, le plus souvent appliqué à l'analyse des images, Ils sont également connus sous le
nom de réseaux de neurones artificiels invariants par décalage, en raison de leur architecture à
poids partagés et de leurs caractéristiques d'invariance de traduction, ils ont des applications
dans la reconnaissance d'images et de vidéos [10].

Les réseaux de neurones convolutifs (CNN) sont un type spécial d'apprentissage en


profondeur qui fonctionne très bien sur les tâches de vision par ordinateur, un grand travail de
prétraitement est effectué sur les images d'entrée pour les rendre mieux optimisées pour les
couches entièrement connectées du réseau neuronal.

1.10 VGG-16 :

VGG16 est un modèle de réseau de neurones convolutif proposé par K. Simonyan et A.


Zisserman en 2018 [11]. Le modèle atteint une précision de test de 92,7% dans le top 5 dans
ImageNet, qui est un ensemble de données de plus de 14 millions d'images appartenant à 1000
classes.

Figure 1-4 – Architecture de modèle 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.

Il existe deux inconvénients majeurs avec VGGNet :

 Il est extrêmement lent à s'entraîner.

 Les poids de l'architecture réseau eux-mêmes sont assez importants (concernant


le disque / la bande passante).

En raison de sa profondeur et du nombre de nœuds entièrement connectés, VGG16 fait


plus de 533 Mo. Cela rend le déploiement de VGG une tâche fastidieuse.

1.11 ResNet :

ResNet, abréviation de Residual Networks, est un réseau neuronal classique utilisé


comme épine dorsale pour de nombreuses tâches de vision par ordinateur. Ce modèle a
remporté le défi ImageNet en 2015[12]. La percée fondamentale avec ResNet a été qu'il nous
a permis de former avec succès des réseaux de neurones extrêmement profonds avec plus de
150 couches. Avant la formation ResNet, les réseaux de neurones très profonds étaient
difficiles en raison du problème de la disparition des gradients.

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

Etat de l’art sur les méthodes de détection

d’évènements

2.1 Introduction

Les techniques de détection d’événements utilisant la vision par ordinateur, analyse


les vidéos des caméras de surveillance, au cours des dernières années, ces caméras et autres
équipements de surveillance ont été installés à différents endroits pour la sécurité publique, par
exemple : Établissements d'enseignement, hôpitaux, banques, marchés et ainsi de suite, pour
surveiller les activations des personnes, nous commençons ce chapitre par des études des
travaux existants.

2.2 Détection de combat rapide

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.

Ensuite, l'image résultante est binarisée, menant vers le nombre de taches de


mouvement et marquée la plus grande sur une séquence de combat et sur une scène non
combattante. Seuls les K plus gros mouvements sont sélectionnés. Pour classer les k
mouvements, différents paramètres sont calculés comme l'aire, le périmètre et la distance entre
les blobs également. Puis, les blobs sont caractérisés par le combat et le non-combat.

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.

Figure 2-1 - Evolution des performances du modèle proposé [15].

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.

2.4 Détection de la violence de foule

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.

2.5 Détection de la violence à l'aide de 3D CNN

Les méthodes typiques de détection de combat s'appuient sur les connaissances du


domaine pour construire les caractéristiques artisanales complexes à partir de l'entrée, en
revanche, les modèles profonds peuvent agir directement et extraire automatiquement les
fonctionnalités, les auteurs dans [17] ont proposé une nouvelle approche des (convNets 3D)
pour la détection de la violence sans utiliser les connaissances préalables dans les vidéos.

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.

2.6 Méthode de reconnaissance des combats

En vision par ordinateur, la reconnaissance des actions devient un axe de recherche


important, les tâches comme le comportement agressif ou les combats sont relativement moins
étudiées, ce qui peut être utile dans de nombreux scénarios de vidéos de surveillance comme
les prisons, les services psychiatriques, l'aspect majeur des détecteurs est l'efficacité signifie
que ces approches doivent être rapides sur le plan informatique, mais l'extraction de certaines
fonctionnalités est toujours prohibitive pour les applications du monde réel, le paradigme de
l'apprentissage en profondeur est appliqué à la tâche qui utilise 3D CNN qui prend la séquence
vidéo complète comme entrée, mais les fonctions de mouvement pour cette tâche sont cruciales
et l'utilisation de la vidéo complète comme entrée cause du bruit et de la redondance dans le
processus d'apprentissage.

À 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].

2.8 Analyse de vidéo suspect

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 :

1. Conception du système : Le système prend une nouvelle vidéo non étiquetée et


plusieurs séquences vidéo étiquetées comme des différents types d'événements
possibles. Il produit une visualisation du contenu de la vidéo sans étiquette comme
sortie, l'utilisateur peut adapter cette visualisation en fonction de vidéo suspect, la vidéo
est stockée sous forme RGB "matrice de valeurs" dans le temps (largeur, hauteur et
nombre d'images), ensuite le système crée un résumé des événements qui ont une
étiquette et l'encode dans le document XML, ce document est utilisé avec une entrée
utilisateur pour fournir une visualisation vidéo.

2. Représentation d'événement : Ce modèle mesure la quantité et le type de changements


qui se produisent dans la scène, les événements similaires auront des distributions de
changement similaires pour chacune des trois dimensions, un événement vidéo est

17
représenté comme un ensemble d'histogrammes x, y et t sur plusieurs échelles
temporelles.

3. Extraire la représentation de l'événement : Après avoir lu la vidéo représentant


l'événement et l'extraction de la matrice, nous calculons la hiérarchie de ces valeurs
dans les directions x, y et t pour chacune des échelles temporelles.

4. Comparaison d'événements : Une fois que nous avons les représentations


histographiques d'une vidéo, nous les comparons aves les autres représentations pour
déterminer si les deux représentent des concepts de signification de haut niveau
similaires.

5. Détection d'événement : La réalisation d'une bonne représentation et une fonction de


comparaison des événements nous permet de commencer à détecter et à classer les
événements dans une nouvelle vidéo.

Malgré ça, Le problème de détection d'événements est donc défini de deux façons
différentes :

 Le problème simplifié : l'obtention d'une séquence vidéo qui contient un seul


événement, nous devons classer cet événement en utilisant notre schéma de
représentation et notre fonction de comparaison.

 Le problèmes complexe : l'obtention d'une séquence vidéo contenant un nombre


inconnu d'événements et nous devons déterminer les événements impliqués.

2.9 Un cadre interactif pour la détection et la modélisation


d'événements de vidéosurveillance

Dans le cadre du développement de la technologie de vidéosurveillance Fabio Persia et


Sven Helmer et Fabio Bettini dans [22] ont fourni du travail en 2017 qui a aidé à résoudre de
nombreuses difficultés, Ce travail est implémenté la détection d'événements dans les flux vidéo
basés sur les extensions temporelle de l'algèbre relationnelle, où selon des interfaces graphiques
les utilisateurs peuvent consulter les différentes couches de quatre systèmes pour obtenir des
18
informations sur le fonctionnement du système, et aussi pour la création de nouveaux
événements et suivre leur traitement via le système, il vise également à la prédéfinition des
événements sur les trois ensembles de vidéosurveillance, ainsi que la diffusion de vidéos en
direct sur un site Web.

La complexité des événements de haut niveau est gérée par la division de système en trois
couches :

o La couche la plus basse génère des événements, elle dépend fortement du


domaine d'application et doit être adaptée avec d'autres domaines.
o à l'aide de grattage web "web scraping" et d'autres données hétérogènes, la
couche intermédiaire prend les événements difficiles et crée des événements
simples qui sont dépendant du domaine d'application.
o Enfin, sur la couche supérieure, un utilisateur peut créer des événements
complexes qui l'intéressent, en utilisant des événements de niveau
intermédiaire, ainsi qu'une interface utilisateur graphique pour gérer des
événements de haut niveau.

Figure 2-2 - Architecture globale de système.

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.

2.11 Représentation profonde pour la détection d'événements


anormaux dans des scènes bondées

La difficulté à distinguer les événements anormaux des événements normaux est un


problème pour la vidéosurveillance, cet article propose un algorithme à action profonde non
supervisée pour extrait des fonctionnalités, les mouvements à court terme sont
automatiquement appris et fusionnés avec des encodeurs automatiques empilés, par la suite, les
indices temporels à long terme sont modélisés avec un réseau récurrent de mémoire à court
terme (LSTM).

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.

2.12 Géolocalisation et suivi des événements à partir de Crowd


Sourced métadonnées vidéo

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.

2.13 Clustering pondéré en ligne pour la détection d'événements


anormaux en temps réel en vidéosurveillance

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 :

Travaux liée référence Méthodes Accuracy

Fast fight detection [13] Variant-v2 91 %


Variant-v1
random forest

Crowd violence detection [16] LaSIFT 96%


BoW

Learning to detect violent [19] Convlstm 96 %

A framework for a video analysis tool [20] Kppv -


Decision tree

Fight Recognition in Video [17] Haugh forest 95 %


conv2d

Online Weighted Clustering [25] OWC 90 %


MTT

Tableau 1 - Comparaissent de travaux liées.

2.15 Conclusion

La recherche dans les travaux liés dans ce domaine fournit un ensemble


d'informations et d'idées qui facilitent le travail que nous sommes en train d'accomplir, où nous
avons vu de nombreux travaux qui ont suivi différentes approches afin de détecter un
événement spécifique avec diverses méthodes d'apprentissage.

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

Dans ce chapitre, nous présentons tous les outils et les environnements de


programmation utilisés pour implémenter notre algorithme d'apprentissage et son application
de bureau, ainsi que son architecture principale et ses codes sources.

3.2 Environnement de développement

3.2.1 Google Colab :


Google Colab ou Colaboratory est un service cloud, offert par Google (gratuit), basé
sur Jupyter Notebook et destiné à la formation et à la recherche dans l’apprentissage
automatique. Cette plateforme permet d’entraîner des modèles de Machine Learning
directement dans le cloud. Sans avoir besoin d’installer quelque
soit sur notre ordinateur à l’exception d’un navigateur [26].

3.3 Visual Studio Code

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

que vous puissiez vous concenter sur le cœur de l'application [32].

27
3.5 Data-set

3.5.1 Base de données sur la violence de la foule et la non-violence


Une base de données de séquences vidéo
réelles de la violence de la foule, ainsi que des
protocoles de référence standard conçus pour tester à
la fois la classification violente / non violente et les
détections d'épidémies de violence. L'ensemble de
données contient 246 vidéos [33]. La meilleure valeur
de précision obtenue avec cet ensemble de données était de 87%, ce qui a été mentionné dans
l’article « Flux violents : détection en temps réel du comportement violent des foules » [34].

3.5.2 Détection de combat basée sur la vision à partir des caméras de


surveillance :
Cet ensemble de données est utilisé pour développer un système de détection de combat
qui vise à être utilisé dans les caméras de surveillance dans les espaces publics tels que les rues,
les stations de métro et plus encore, il est collecté à partir des vidéos YouTube qui contiennent
des instances de combat. En outre, certaines séquences sans combat issues de vidéos de caméras
de surveillance régulières sont incluses. Il y a 300 vidéos au total, 150 combats + 150 vidéos
non-combat durent 2 secondes [35].

28
3.6 Approche proposé :

Figure 3-1 - Notre méthode proposée.

3.6.1 Générateur d'images :


Dans le modèle proposé, nous avons utilisé notre algorithme de préformation sur les
bases de données prédéfinies, qui se trouvent dans le même compte Google Drive associé à
colab. Cette étape assure l'extraction des images de la vidéo, nous commençons par le parcoure

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.

3.6.2 Architecture de modèle :


Notre modèle convolitif est construit par un type spécial de réseau neuronal qui est
utilisé pour analyser et traiter les images. Il tire son nom de la couche qu'il l’utilise comme
filtre. Ses filtres font passer les images fournies de fonctionnalités spécifiques et qui sont
ensuite activées, une carte des caractéristiques est donc générée en passant les images à travers
ces filtres pour détecter des caractéristiques particulières, sa position dans l'image et sa force
sont pertinentes pour le classement.
Concernant l'implémentation nous allons utiliser les deux librairies de python
Tensorflow et keras, L’innovation de ces bibliothèques est leur capacité à apprendre à
développer automatiquement des nombreuses tâches, de la création de modèles et de la
configuration des paramètres nécessaires au traitement et à la validation.

31
Figure 3-2 - Architecture de modèle proposé

Les images de l'ensemble de données se présentent sous différentes formes et tailles.


Pour qu'un réseau de neurones soit formé sur ces images, nous les mettons dans une forme
spécifique, et une profondeur de couleur est égale à 3 octets ou 24 bits car elles sont en RVB,
il n’y a pas mal de travaux qui traitent les images qu’en noire et blanc 'Grayscale' pour facilite
la représentation des images. Ensuite, par Opencv librairie nous redimensionnons nos images
à (150 . 150) et nous remplaçons les noms des classes par un nombre binaire, afin de les
représenter sur des tableaux numpy, et les retourner au hasard avant de les appliquer au réseau.

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.

Figure 3-3 - Maxpooling2d

L’implémentation de Dropout dans le code avec le paramètre à 0,2, signifie la


suppression de 20% des neurones, et ça minimise l’affectation des voisins, et donc
potentiellement le surmonter le sur ajustement ou bien ce qui appel 'overfiting', cela se produit
lorsque le modèle a appris une classe spécifique aux données d'apprentissage, qui n'est pas
pertinent dans l’autre classe.

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.

Nous entraînons notre modèle en utilisant la méthode « fit_generator » dans l'ensemble


d'apprentissage, comme son nom l'indique, le fit_generator est une fonction suppose qu'il existe
une fonction sous-jacente qui génère les données pour elle. Elle est utilisée lorsque nous avons
un énorme ensemble de données à intégrer dans notre mémoire ou lorsque l'augmentation des
données doit être appliquée.

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.

3.6.5 Résultat et discutions


L'entraînement du notre modèle CNN avec le premier ensemble de données [31] a été
arrêté à l'époque 18 à cause de la durée d’exécution, atteignant la précision d’entraînement
97,72% et 94,01 % pour la validation, et une valeur de perte d'entraînement égale à 0,1, alors
que la perte de validation a atteint la valeur de 0,2. La précision obtenue à travers les époques
est présentée à la Figure 3-4, tandis que la valeur de perte du modèle à travers les époques est
présentée sur la figure 22. Les résultats montrent que le modèle classe les données avec une
bonne précision, mais d'autres améliorations sont encore possibles. Compte tenu du fait que le
modèle a été construit de zéro.

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.

Afin de comparer notre approche en termes de traitement des ensembles de données et


d'obtenir une lecture plus claire des résultats obtenus, nous implémentons à la fois des méthodes
vgg16 et resnet avec nos ensembles de données pour le même nombre d'époques, et nous
obtenons les résultats suivants :

38
 Vgg-16 :

Train accuracy Validation accuracy Train loss Validation loss

Dataset 1 [31] 73 % 69 % 0,2 0,3

Dataset 2 [32] 53 ,48% 53,36 % 0,4901 0,4912

Tableau 2 - Résultat d’apprentissage de modèle vgg-16.

 Mini Resnet :

Train accuracy validation accuracy train loss Validation loss

Dataset 1 [31] 85 % 77 % 0,2 0,3

Dataset 2 [32] 57 % 52 % 0,49 0,46

Tableau 3 - résultat d’apprentissage de modèle 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 :

Figure 3-6 - Performance du modèle proposé.

40
Figure 3-7 - Performance du modèle vgg16.

Figure 3-8 - Performance du modèle Resnet.

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

Fast fight detection [13] Variant-v2 91 %


Variant-v1
random forest

Crowd violence detection [16] LaSIFT 96%


BoW

Learning to detect violent [19] Convlstm 96 %

Fight Recognition in Video [17] Haugh forest 95 %


conv2d

Online Weighted Clustering [25] OWC 90 %


MTT

Méthode proposé - Cn2d 92%

Tableau 4 - comparaison de la méthode avec travaux liée.

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 :

La première fonction divise et redimensionne la vidéo d'entrée de l’utilisateur afin de


la préparer pour la prédiction.

La deuxième fonction permettra de lancer le modèle de prédiction avec les paramètres


stockés sous la forme h5.

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.

3.8 Capture d’écran

Avant de lancer l’application on a besoin d’installer les dépendes (les libérés,


frameworks) en suivant les étapes suivantes :

 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.

La deuxième interface permettra à l'utilisateur de lancer la détection de la violence


après avoir consulté la vidéo concernée.

Figure 3-10 - Page de consultation.

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.

Figure 3-11 - Finalisation de détection.

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.

Figure 3-12 - détection de 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

L'importance de la classification des images aujourd'hui, à L'ère d'Internet, d'une


valeur incalculable dans divers domaines. Comme la sécurité des personnes, il s'agit de
transférer des données du monde réel vers le virtuel, et ça augmente également le besoin
d'images plus automatisées. En fait, de nombreux chercheurs ont proposé diverses techniques
pour détecter de telles activités à partir de la vidéo. L'objectif principal de cette revue
systématique est d'explorer les dernières recherches sur le système de détection des évènements
dans une vidéo accompagnés d'une étude approfondie dans ce domaine, tel que les aéroports et
les banques. Il s'agit de détecter les émeutes, les querelles, les violences et d'améliorer le niveau
de service grâce à la surveillance automatique à l’aide d'une application bureau intuitive avec
les dernières technologies existantes dans le monde.

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.

Comme mentionné précédemment, cette étude considère les comportements agressifs


comme violents. Le plus gros problème lié à la prise en compte de cette définition se produit
dans plusieurs cas. Par exemple, les vidéos de combat consistent en des personnes qui se
frappent mutuellement. Le moyen le plus simple de repérer des scènes violentes est donc de
vérifier si quelqu'un s'approche d'une autre personne. Mais les vidéos non violences présentent
également des personnes qui s'embrassent ou font la fête. Il est très probable que ces vidéos
soient considérées comme violences, mais la méthode proposée permet d'éviter cela, en
indiquant qu'elle est capable de coder des mouvements symétriques et les résultats montrent
que CNN peut être utilisé avec succès sur une collection déséquilibrée d'images de violence et
non-violence.
49
Finalement, notre méthode n'est pas la méthode la plus aboutie dans ce domaine, tant
que nous la comparons à méthodes précédemment étudiées, mais elle est toujours utilisable
tant qu'elle donne des résultats satisfaisants.

50
Bibliographie

[1] www.digitalsecuritymagazine.com.

[2] www.researchgate.net.

[3] Dr. M. S. Nagmode, Aditi S. Jahagirdar, Atul L. Borkar, Dhaval S. Pimplaskar.


2013. Moving Object detection and tracking based on correlation and wavelet Transform
Technique to optimize processing time. In CIIT International Journal of digital image
processing, volume 5, ISSN 0974-9691.

[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.

[16] T. Senst, V. Eiselein, A. Kuhn, T. Sikora. 2017.Crowd violence detection using


global motion-compensated Lagrangian features and scale-sensitive video-level representation,
IEEE conference.

[17] C. Ding, S. Fan, M. Zhu, W. Feng, B. Jia. 2014.Violence detection in video by


using 3D convolutional neural networks, Proc. Int. Symp. Visual Comput., pp. 551-558.

[18] Serrano I, Deniz O, Espinosa-Aranda JL, Bueno G. 2018. Fight Recognition in


video using Hough Forests and 2D Convolutional Neural Network. IEEE Trans Image Process.

[19] S. Sudhakaran, O. Lanz. 2017.Learning to detect violent videos using


convolutional long short-term memory, Proc. 14th IEEE Int. Conf. Adv. Video Signal Based
Surveill. (AVSS), pp. 1-6.

[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.

[25] H. Lin, D. Deng, J. Woodford, A. Shahi, October 2016. Online Weighted


Clustering for Real-time Abnormal Event Detection in Video Surveillance. ACM Conference.

[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.

[34] T. Hassner, Y. Itcher et O. Kliper-Gross, Violent Flows: Real-Time Detection


of Violent Crowd Behavior, 3e atelier international de l'IEEE sur la surveillance et le suivi
socialement intelligents (SISM) à l'IEEE Conf. On Computer Vision and Pattern Recognition
(CVPR), Rhode Island, juin 2012.

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

Vous aimerez peut-être aussi