Université Saad Dahlab Blida 1 Institut D'aéronautique Et Des Études Spatiales Département Études Spatiales
Université Saad Dahlab Blida 1 Institut D'aéronautique Et Des Études Spatiales Département Études Spatiales
Master en Aéronautique
Option : Télécommunications Spatiales
THEME
out d’abord, nous tenons à exprimer nos sincères remerciements à Dieu Tout-Puissant
T pour nous avoir accordé la force et le courage nécessaires pour mener à bien ce
travail.
Nous souhaitons exprimer notre gratitude particulière à Le Chef Département Dr. S Tah-
raoui, Dr. B. Azmedroub et Monsieur Dr. B. Ouissem pour nous avoir proposé ce sujet de
recherche et pour leur encadrement tout au long de notre parcours. Leurs connaissances,
leur expérience et leurs conseils précieux ont été d’une grande aide pour la réalisation de
ce mémoire.
Nous aimerions également exprimer notre profonde reconnaissance envers nos parents
respectifs, qui nous ont soutenus et encouragés tout au long de cette aventure académique.
Nos remerciements vont également à tous les membres du jury qui ont accepté de consacrer
leur temps pour évaluer notre travail et pour leurs précieuses observations et recomman-
dations.
Enfin, nous tenons à exprimer notre gratitude envers tous nos enseignants qui ont contribué
à notre formation et à notre développement académique.
Nous sommes conscients que sans le soutien et l’implication de toutes ces personnes, la
réalisation de ce travail aurait été impossible. Nous leur sommes profondément reconnais-
sants pour leur précieuse contribution à notre réussite.
Que tous ceux qui ont contribué à notre parcours soient remerciés du fond du cœur.
Table des matières
Remerciement
Introduction Générale 1
i
TABLE DES MATIÈRES ii
3 Résultats et analyses 47
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2 Outils et environement de développement . . . . . . . . . . . . . . . . . . . 48
3.3 Dataset utilisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3.1 Pretraitement des donnees . . . . . . . . . . . . . . . . . . . . . . . 50
3.4 Apprentissage et détection du drone . . . . . . . . . . . . . . . . . . . . . . 53
3.5 Perte dans la détection d’objet . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.5.1 La perte de classification . . . . . . . . . . . . . . . . . . . . . . . . 56
3.5.2 La perte de localisation . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.5.3 La perte de regularization . . . . . . . . . . . . . . . . . . . . . . . 56
TABLE DES MATIÈRES iii
Conclusion Générale 63
Bibliographie 64
Listes des abréviations
iv
Table des figures
v
TABLE DES FIGURES vi
viii
Introduction Générale
’implémentation d’un système embarqué pour la détection des cibles a été un sujet
L de recherche de longue date dans le domaine de la vision par ordinateur. Au fil des
années, l’utilisation croissante de la détection d’objets dans diverses applications a rendu
impératif le développement de méthodes plus précises et rapides.
Traditionnellement, la détection d’objets reposait sur des approches classiques, mais l’avènement
de l’apprentissage en profondeur (Deep Learning) a introduit une alternative prometteuse.
Cependant, la formation de modèles profonds reste un défi complexe. Les travaux en cours
offrent de nouvelles perspectives de recherche dans ce domaine, ouvrant ainsi la voie à des
méthodes compétitives.[1]
La détection d’objet et tous les systèmes de détection ont deux limitations principales :
L’obtention des hautes performances pour un système de détection d’objet dans le monde
réel est un problème ouvert pour les chercheurs depuis quelques années.
Cependant, l’utilisation des systèmes embarqués pour la détection d’objets présente également
des défis. En raison des ressources limitées, tels que la puissance de calcul et la mémoire,
ces systèmes peuvent être confrontés à des contraintes en termes de capacité de traite-
ment et de stockage des modèles de détection. De plus, l’intégration de capteurs sur des
plateformes embarquées peut être difficile en raison de contraintes d’espace et de poids.
Dans cette étude, notre objectif est de mettre en place un système embarqué pour la
détection des cibles en utilisant différents modèles (SSD et Faster R-CNN). Cette approche
nous permettra de bénéficier d’une méthode rapide et efficace basée sur le Deep Learning,
spécialement adaptée à l’implémentation sur des systèmes embarqués.
Le présent mémoire se concentre sur la mise en œuvre des algorithmes de détection d’objets
basés sur le traitement d’images, et éventuellement sur l’intelligence artificielle telle que
les méthodes de deep learning, sera réalisée au sein d’un système embarqué utilisant un
Raspberry Pi équipé d’une caméra. Ce système est conçu pour des applications en temps
réel.
1
Introduction Générale 2
Le premier chapitre jette les bases d’une compréhension approfondie de la détection d’ob-
jets et met en lumière l’importance cruciale des systèmes embarqués dans ce domaine. En
examinant de manière détaillée la détection d’objets, ce chapitre offre une vue d’ensemble
complète des techniques, des algorithmes et des méthodologies utilisés pour identifier et
localiser des objets dans des images.
3
1.1 Introduction 4
1.1 Introduction
De nos jours, nous assistons à une évolution de notre monde vers davantage d’intelligence,
et la technologie de traitement d’image se répand à travers le globe. Des applications telles
que la surveillance par caméra, le suivi d’objets ou encore la détection et la classification
des objets se multiplient. Cependant, la détection d’objets demeure l’un des éléments les
plus essentiels et spécifiques du traitement d’image. Les avantages de cette technique sont
que nous pouvons l’utiliser à de nombreux objectifs pour faciliter et accélérer nos travaux,
devenant ainsi plus facile et plus rapide que l’homme [2].
Dans ce chapitre, nous abordons les notions de base de la détection d’objets et expliquons
comment les systèmes embarqués jouent un rôle fondamental dans le domaine de la vision
par ordinateur.
La détection d’objets est l’un des domaines de recherche les plus actifs dans le monde
de la vision par ordinateur (CV). Elle englobe de manière simultanée la classification de
chaque objet présent dans une image ainsi que sa localisation précise. Remontant à l’année
2001, l’histoire de la détection d’objets est marquée par l’introduction emblématique des
fameuses cascades de Haar par Paul Viola et Michael Jones[3]. Depuis lors, son utilisation
s’est répandue de manière exponentielle dans diverses applications.
Cette popularité croissante a engendré un besoin pressant de développer des systèmes plus
précis et plus rapides [4]. Les nouveaux algorithmes continuent de repousser les limites en
termes de vitesse et de précision, surpassant constamment leurs prédécesseurs.
Récemment plusieurs études ont démontré l’efficacité de la détection d’objets et son rôle
qui est très important dans divers domaines et large éventail, notamment :
– Vidéosurveillance
– Robotique
– Militaire
– Diagnostique d’images médicales
– Reconnaissance faciale
– Conduite autonome et Sécurité routière en prévenant les accidents potentiellement
causés par la fatigue au volant.
La détection d’objets est une tâche complexe qui trouve son utilité dans de multiples
contextes liés au traitement d’images. Pour qu’un détecteur soit idéal, il doit avoir deux
caractéristiques clés :
– Haute précision de localisation et de reconnaissance : le détecteur doit être capable de
localiser et de reconnaı̂tre les objets dans les images avec précision.
– Haute efficacité en temps et en mémoire : la tâche de détection doit s’exécuter à une
fréquence d’images suffisante (fps) avec une utilisation de mémoire et de stockage ac-
ceptable.
Toutefois, la réalisation d’un tel détecteur n’est pas sans défis.
1.2 Détection d’objets 6
L’un des principaux obstacles est la présence de variations intra-classe. Chaque catégorie
d’objet peut comporter de nombreuses instances d’objets qui diffèrent en fonctionnalités
telles que la couleur, la texture, la taille, la forme et la pose. Ces variations peuvent être
causées par une multitude de facteurs, tels que :
– Eclairage
– Multi-échelle
– Angle
– Conditions météorologiques
– Distribution non uniforme
– Changements d’échelle
– Occultations
– Déformations
– Mouvement d’objets ou de caméra
– Bruit et basse résolution
– Taille d’objet
– Arrière-plans et ombrage
Le deuxième défi consiste à assurer la détection en temps réel des objets. Cela nécessite
des performances élevées, qui peuvent parfois se faire au détriment de la précision pour
gagner en rapidité. De plus, nous devons développer un détecteur efficace qui fonctionne
de manière optimale sur des appareils ayant des ressources de calcul et de stockage limitées
1.2 Détection d’objets 7
[6].
Les méthodes de détection d’objets relèvent généralement d’approches basées sur l’ap-
prentissage automatique (Machine Learning) ou d’approches basées sur l’apprentissage
en profondeur (Deep Learning). Pour les approches d’apprentissage automatique, il de-
vient nécessaire de définir d’abord les entités en utilisant l’une des méthodes ci-dessous,
puis en utilisant une technique telle que la machine à vecteur de support (SVM) pour
effectuer la classification.
D’un autre côté, les techniques d’apprentissage en profondeur sont capables de détecter des
objets de bout en bout sans définir spécifiquement de caractéristiques, et sont généralement
basées sur des Réseaux de Neurones Convolutifs (CNN). Les réseaux de neurones convolu-
tifs ont contribué à une augmentation significative de la précision de la détection d’objets
et ont largement dépassé d’autres modèles classiques tels que le cadre Viola & Jones [3]et
les histogrammes de gradient orienté (HoG) [7].
La conception d’un système embarqué destiné à accomplir une fonction dédiée diffère di-
rectement de celle de l’ordinateur personnel. L’ordinateur personnel est lui aussi composé
de matériel informatique, de logiciels et de composants mécaniques (comme les disques
durs, par exemple). Cependant, un ordinateur personnel n’est pas conçu pour accomplir
une fonction spécifique.[22]
1.3 Systèmes Embarqués 9
Les systèmes embarqués jouent un rôle essentiel dans les applications en temps réel en
raison de leur capacité à fournir des fonctionnalités avancées et une réponse rapide aux
événements. Dans le domaine de la détection d’objets, il est crucial de pouvoir traiter en
temps réel les flux de données provenant de capteurs, tels que des caméras, et d’effectuer
des analyses instantanées pour détecter et reconnaı̂tre les objets d’intérêt.
Les systèmes embarqués offrent une plateforme compacte et économe en énergie qui peut
être utilisée pour exécuter des tâches de détection d’objets en temps réel. En intégrant des
algorithmes de détection d’objets basés sur le deep learning dans ces systèmes embarqués.
L’utilisation de systèmes embarqués pour la détection d’objets permet une exécution
rapide et précise des algorithmes de détection, offrant ainsi des avantages tels qu’une
meilleure réactivité, une faible latence et une consommation d’énergie réduite. Cette com-
binaison de performances en temps réel et de capacités embarquées ouvre la voie à de
nombreuses applications innovantes dans le domaine de la détection d’objets.[23]
L’intégration de nos algorithmes dans un système embarqué revêt une importance cru-
ciale, car elle permet d’exploiter efficacement les ressources matérielles limitées tout en
garantissant des performances en temps réel.
Dans ce contexte, nous devons choisir une plateforme embarquée équipée d’une caméra
afin de créer un système compact et autonome.
1.3 Systèmes Embarqués 10
Ce système embarqué sera capable d’effectuer la détection des cibles en temps réel, tout
en capturant et en traitant la vidéo de manière fluide. Cette approche offre une flexibilité
et une portabilité accrues, ouvrant la voie à des applications potentiellement variées,
telles que la surveillance vidéo, la robotique ou encore la reconnaissance d’objets dans des
environnements dynamiques.
capables de détecter les objets avec précision tout en étant résilients aux variations et
aux perturbations environnementales.
– Contraintes de taille et de poids : Les systèmes embarqués sont généralement conçus
pour être compacts et légers, ce qui impose des contraintes de taille et de poids. Les
solutions de détection d’objets doivent être adaptées à ces contraintes pour permettre
une intégration facile dans des dispositifs embarqués compacts.
En considérant ces contraintes, il est possible de concevoir des systèmes embarqués effi-
caces et performants pour la détection d’objets dans une variété d’applications telles que
la robotique, la surveillance, la sécurité, les véhicules autonomes, etc[24].
1.3.5 Raspberry Pi
Un système embarqué Raspberry Pi est un système informatique complet qui intègre une
carte Raspberry Pi comme cœur du système. Le Raspberry Pi lui-même est une carte de
développement compacte et abordable, qui peut être utilisée comme un ordinateur à part
entière ou comme une unité de traitement centrale dans un système embarqué [26].
Raspberry Pi 4
Dans le cadre de notre projet de fin d’études, on a opté pour l’utilisation du Raspberry
Pi 4 comme plateforme principale. Avec ses performances améliorées par rapport aux
modèles précédents.
Le Raspberry Pi 4, l’un des modèles les plus récents de la série Raspberry Pi, comprend
les composants suivants :
– Processeur : Le Raspberry Pi 4 est équipé d’un processeur Broadcom BCM2711, qui est
un processeur ARM Cortex-A72 64 bits quad-core cadencé à 1,5 GHz. Cela offre une
puissance de calcul significativement plus élevée par rapport aux modèles précédents.
– Mémoire : Le Raspberry Pi 4 est disponible avec différentes options de mémoire vive
(RAM) : 2 Go, 4 Go ou 8 Go. La quantité de RAM dépend du modèle choisi et influence
les performances globales du système.
– Stockage : Le Raspberry Pi 4 utilise une carte microSD pour le stockage du système
d’exploitation et des données. Cependant, il dispose également de deux ports USB 3.0
qui peuvent être utilisés pour connecter des périphériques de stockage externes tels que
des disques durs ou des clés USB.
– Connectivité : Le Raspberry Pi 4 est doté de nombreuses options de connectivité. Il
dispose de deux ports USB 2.0 et deux ports USB 3.0, d’un port Ethernet Gigabit pour
la connexion réseau filaire, ainsi que d’une connectivité sans fil intégrée comprenant le
Wi-Fi 802.11ac et le Bluetooth 5.0.
– Ports d’E/S : Le Raspberry Pi 4 est équipé de plusieurs ports d’entrée/sortie, notam-
ment deux ports micro HDMI pour la sortie vidéo jusqu’à 4K, un port jack audio 3,5
mm, deux ports GPIO 40 broches pour la connexion de périphériques électroniques et
1.4 Conclusion 13
un port caméra CSI (Camera Serial Interface) pour connecter une caméra Raspberry
Pi.
– Alimentation : Le Raspberry Pi 4 est alimenté via un adaptateur secteur USB-C avec
une tension de 5 V.
– Système d’exploitation : Le Raspberry Pi 4 est compatible avec divers systèmes d’ex-
ploitation basés sur Linux, notamment Raspberry Pi OS (anciennement Raspbian),
Ubuntu, etc. Ces systèmes d’exploitation sont spécifiquement optimisés pour les archi-
tectures ARM et les fonctionnalités du Raspberry Pi 4.
Le Raspberry Pi 4 est un choix populaire pour une variété d’applications, y compris les
projets embarqués, les médias, l’automatisation domestique et bien d’autres [26].
1.4 Conclusion
Cependant, les avancées réalisées dans ce chapitre fournissent une base solide pour de
nouvelles recherches et développements, et nous sommes impatients de voir ce que l’avenir
réserve pour la détection d’objets embarquée avec l’apprentissage en profondeur.
Chapitre 2
14
2.1 Introduction 15
2.1 Introduction
Mais que se cache-t-il derrière ces deux mots ? Dans ce chapitre, nous allons explorer
le concept du Deep Learning, en commençant par l’apprentissage automatique (machine
learning) et et l’intelligence artificielle (IA) en général. Nous aborderons comment l’ap-
prentissage automatique permet aux ordinateurs d’effectuer efficacement des tâches sans
programmation explicite. De plus, nous mettrons en évidence les notions fondamentales
liées à la détection d’objets par le Deep Learning. Enfin, nous explorerons différentes
méthodes de détection d’objets proposées au cours des dernières années cité dans le cha-
pitre précédent.
L’intelligence artificielle (IA) est une discipline informatique qui permet aux machines de
simuler l’intelligence humaine. Elle a révolutionné de nombreux domaines en permettant
aux machines d’apprendre, de raisonner et de résoudre des problèmes de manière auto-
nome. Grâce à des algorithmes avancés, l’IA est capable d’analyser de grandes quantités
de données et d’extraire des informations pertinentes. Cette technologie a des applica-
tions variées, allant des assistants virtuels aux voitures autonomes, en passant par les
systèmes de recommandation. Cependant, elle soulève également des questions éthiques
et sociétales. Dans cette étude, nous explorerons les bases de l’intelligence artificielle, ses
applications et les défis qui l’accompagnent [28].
performances sans être explicitement programmées. Il s’agit d’une approche basée sur
l’exploitation de modèles statistiques et d’algorithmes afin de permettre aux machines de
reconnaı̂tre des schémas, de détecter des tendances et de prendre des décisions autonomes.
Le processus de machine learning implique généralement plusieurs étapes : la collecte et la
préparation des données, la sélection et l’entraı̂nement d’un modèle, et enfin, l’évaluation
et l’optimisation de ce modèle. En utilisant les données d’entraı̂nement, les machines ap-
prennent à généraliser et à faire des prédictions sur de nouvelles données, en établissant
des règles et des relations à partir des exemples fournis comme la montre la figure 2.2
Cela permet d’automatiser des tâches complexes et de réaliser des prédictions précises.
Les types d’apprentissage comprennent l’apprentissage supervisé, où les modèles sont en-
traı̂nés sur des données étiquetées, l’apprentissage non supervisé, qui trouve des structures
dans les données non étiquetées, l’apprentissage par renforcement, où un agent apprend à
travers des interactions avec un environnement, et l’apprentissage semi-supervisé, qui uti-
lise à la fois des données étiquetées et non étiquetées pour l’apprentissage. L’apprentissage
par transfert permet de transférer des connaissances d’une tâche à une autre.
Le deep learning, également connu sous le nom d’apprentissage profond, est une branche de
l’intelligence artificielle qui se concentre sur l’utilisation de réseaux de neurones artificiels
profonds pour apprendre et effectuer des tâches complexes à partir de données brutes. Le
terme ”profond” fait référence à la structure en couches multiples des réseaux neuronaux
utilisés dans cette approche.
La différence principale entre le machine learning et le deep learning est que le machine
learning utilise diverses techniques pour apprendre à partir des données, tandis que le deep
learning est une approche plus avancée qui utilise des réseaux de neurones profonds pour
extraire automatiquement des caractéristiques hiérarchiques des données brutes, offrant
ainsi une capacité plus puissante pour résoudre des problèmes d’intelligence artificielle.
2.4 Deep Learning 18
La spécification de ce qu’une couche fait à ses données d’entrée est stockée dans les
poids de la couche. En termes techniques, on pourrait dire que la transformation mise en
œuvre par une couche est paramétrée par ses poids (voir figure 2.5). Dans ce contexte,
l’apprentissage signifie trouver un ensemble de valeurs pour les poids de toutes les couches
d’un réseau, de sorte que le réseau puisse mapper correctement les entrées d’exemple à
leurs cibles associées. Mais voici le problème : un réseau neuronal profond peut contenir
des dizaines de millions de paramètres. Trouver la valeur correcte pour chacun d’entre
eux peut sembler une tâche intimidante.
Figure 2.5 – Un réseau neuronal est paramétré par ses poids [28]
Pour contrôler quelque chose, il est d’abord nécessaire de pouvoir l’observer. Pour contrôler
la sortie d’un réseau neuronal, il faut être capable de mesurer à quel point cette sortie
diffère de ce que l’on attendait. C’est le rôle de la fonction de perte du réseau, également
appelée fonction objectif. La fonction de perte prend les prédictions du réseau et la vraie
2.4 Deep Learning 19
cible et calcule un score de distance, qui mesure à quel point le réseau a réussi sur cet
exemple spécifique (voir figure 2.6) Le truc fondamental dans le deep learning est d’utiliser
Figure 2.6 – Une fonction de perte mesure la qualité de la sortie du réseau [28]
ce score comme un signal de rétroaction pour ajuster légèrement la valeur des poids, dans
une direction qui réduira le score de perte pour l’exemple actuel (voir figure 2.7). Cette
adaptation est le rôle de l’optimiseur, qui met en œuvre ce qu’on appelle l’algorithme de
rétropropagation (Backpropagation). Initialement, les poids du réseau sont assignés à des
Figure 2.7 – Le score de perte est utilisé comme signal de rétroaction pour ajuster les poids[28]
valeurs aléatoires, de sorte que le réseau ne fait que mettre en œuvre une série de trans-
formations aléatoires. Naturellement, sa sortie est loin de ce qu’elle devrait idéalement
être, et le score de perte est en conséquence très élevé. Mais à chaque exemple que le
réseau traite, les poids sont ajustés légèrement dans la bonne direction, et le score de
perte diminue. C’est la boucle d’apprentissage.
2.4 Deep Learning 20
Les réseaux de neurones peuvent être définis comme des modèles de calcul qui apprennent,
généralisent et organisent des données. Ils déduisent des propriétés émergentes qui per-
mettent de résoudre des problèmes complexes. Leur mécanisme s’inspire des cellules ner-
veuses humaines, appelées neurones.
Un neurone biologique est constitué d’un corps cellulaire entouré de dendrites et d’un
axone qui transmet l’influx nerveux. Les neurones sont connectés les uns aux autres par
le biais de synapses.
Plus formellement, nous pouvons situer l’idée derrière les neurones artificiels dans le
contexte d’une tâche de classification binaire où nous désignons nos deux classes comme 1
(classe positive) et -1 (classe négative) pour simplifier. Nous pouvons ensuite définir une
fonction d’activation ϕ(z) qui prend une combinaison non-linéaire de certaines valeurs
d’entrée, x, et d’un poids correspondant [29].
Maintenant, si l’entrée nette d’un exemple particulier, x (i) , est supérieure à un seuil défini,
θ, nous prédisons la classe 1, et la classe -1 sinon. Dans l’algorithme du perceptron, la
fonction de décision, ϕ(·), est une variante d’une fonction d’étape unitaire :
1 if z ≥ θ,
ϕ(z) = (2.2)
−1
otherwise.
ϕ(z) = z = a (2.3)
Ici, l’entrée nette, z , est une combinaison linéaire des poids qui relient la couche d’entrée
à la couche de sortie :
2.5 Les Neurones 24
xj w j = w T x
X
z= (2.4)
j
Alors que nous avons utilisé l’activation ϕ(z) pour calculer la mise à jour du gradient,
nous avons implémenté une fonction seuil pour convertir la sortie à valeur continue en
étiquettes de classes binaires pour la prédiction :
1 if g(z) ≥ 0,
ŷ = (2.5)
−1
otherwise.
La figure 2.18 illustre comment l’entrée nette z = wT x est réduite à une sortie binaire (–1
ou 1) par la fonction de décision du perceptron.
En résumé, le perceptron reçoit les entrées d’un exemple, x, et les combine avec les
poids, w, pour calculer l’entrée nette. L’entrée nette est ensuite transmise à la fonction
de seuil, qui génère une sortie binaire de -1 ou +1 - l’étiquette de classe prédite de
l’exemple. Pendant la phase d’apprentissage, cette sortie est utilisée pour calculer l’erreur
de prédiction et mettre à jour les poids.
2.5 Les Neurones 25
La particularité de la fonction d’activation est qu’elle est non linéaire. Cette non-linéarité
permet de changer la représentation des données, d’avoir une nouvelle approche sur ces
données. Ce changement de représentation ne serait pas possible avec une transformation
linéaire. Chaque neurone d’une couche va appliquer la fonction d’activation de la couche
sur les données. Quelques exemples de certaines des fonctions d’activation populaires
utilisées dans les réseaux de neurones pour les tâches de classification sont données comme
suit :
La couche d’unité linéaire rectifiée (en anglais ”rectified linear unit layer”) est l’une des
fonctions d’activation les plus couramment utilisées dans l’apprentissage en profondeur,
et elle est calculée comme suit :
Les fonctions d’activation ReLU sont très populaires pour la création d’un réseau non
linéaire. Cette fonction permet d’effectuer un filtre sur nos données. Elle laisse passer les
valeurs positives x > 0 dans les couches suivantes du réseau de neurones. Elle est utilisée
presque partout mais surtout pas dans la couche finale, elle est utilisée dans les couches
intermédiaires.
La Fonction Sigmoı̈de
La fonction d’activation sigmoı̈de est une fonction mathématique utilisée dans les réseaux
de neurones. Elle transforme les valeurs d’entrée en une sortie continue entre 0 et 1.
Cette fonction est couramment utilisée pour représenter des probabilités ou normaliser
les valeurs dans un réseau de neurones. La fonction sigmoıde est définie comme suit :
2.5 Les Neurones 26
1
σ(z) = (2.8)
1 + e−x
Un avantage de la fonction sigmoı̈de est qu’elle produit une sortie continue dans la plage
de 0 à 1, ce qui la rend particulièrement adaptée pour représenter des probabilités. Elle
permet également une différenciation facile, ce qui est crucial pour les algorithmes d’ap-
prentissage automatique basés sur le gradient. De plus, la fonction sigmoı̈de est symétrique
par rapport à son point médian, ce qui peut être bénéfique dans certains scénarios d’ap-
prentissage.
La Fonction Tanh
ex − e−x
tanh(x) = x (2.9)
e + e−x
la Fonction Softmax
exi
softmax(xi ) = Pn (2.10)
j=1 exj
Un réseau de neurones à une seule couche, également appelé réseau de neurones mono-
couche, est une architecture simple où tous les neurones sont organisés dans une seule
couche. Cette couche est souvent appelée couche de sortie, car elle génère les sorties du
réseau. Chaque neurone de cette couche est connecté à toutes les entrées du réseau et
effectue un calcul pondéré suivi d’une fonction d’activation pour générer sa sortie. Les
réseaux de neurones à une seule couche sont couramment utilisés pour des tâches simples
de classification ou de régression.
Les S neurones d’une même couche sont tous branchés aux R entrées, on dit alors que la
couche est totalement connectée. On obtient la matrice x comme suit :
2.5 Les Neurones 28
Figure 2.16 – Schéma d’un réseau de neurones à une seule couche [30]
w11 · · · w1R
.. ... ..
w= . .
(2.11)
wS1 · · · wSR
Un réseau de neurones multicouches, également appelé réseau de neurones profond, est une
architecture composée de plusieurs couches de neurones interconnectées. Chaque couche,
à l’exception de la couche d’entrée, est constituée de nombreux neurones qui transmettent
les informations aux neurones de la couche suivante. Les neurones d’une couche reçoivent
des entrées pondérées, effectuent un calcul et appliquent une fonction d’activation pour
générer leur sortie. Les couches intermédiaires, appelées couches cachées, permettent au
réseau de capturer des caractéristiques et des représentations de plus en plus abstraites à
mesure que l’information se propage. La dernière couche, appelée couche de sortie, produit
les résultats finaux du réseau. La figure 2.17 illustre le concept d’un MLP (Multi-Layer
Perceptron) composé de trois couches :
Les réseaux de neurones multicouches sont capables de modéliser des relations complexes
et sont largement utilisés dans des domaines tels que la vision par ordinateur, le traitement
du langage naturel et d’autres tâches d’apprentissage automatique. Comme le montre la
(l)
figure précédente, nous désignons l’unité d’activation ith dans la couche l comme ai .
(in)
a0 1
(in) (in)
a1 x1
a(in) = . =
.
(2.12)
. .
. .
a(in)
m x(in)
m
Maintenant que nous avons examiné l’architecture d’un réseau neuronal, il est temps d’ap-
profondir certains concepts tels que la fonction de coût, l’algorithme de rétropropagation
et les algorithmes d’optimisation que nous mettons en œuvre pour l’apprentissage des
paramètres.
La fonction de coût est une mesure utilisée pour évaluer la performance d’un modèle
d’apprentissage automatique. Elle quantifie l’écart entre les prédictions du modèle et les
valeurs réelles des données. L’objectif est de minimiser cette fonction de coût afin d’obtenir
les meilleures prédictions possibles. Différentes fonctions de coût peuvent être utilisées en
fonction du problème et du type d’apprentissage, telles que l’erreur quadratique moyenne
(MSE) pour la régression ou l’entropie croisée pour la classification :
n
y (i) log(a(i) ) + (1 − y (i) ) log(1 − a(i) )
X
J(w) = − (2.13)
i=1
Ici, a(i) est l’activation fonction du ième échantillon dans l’ensemble de données :
N’oublions pas que notre objectif est de minimiser la fonction de coût J(W) ; ainsi, nous
devons calculer la dérivée partielle des paramètres W par rapport à chaque poids pour
chaque couche du réseau (rétropropagation) :
2.6 Entraı̂ner un réseau de neurones artificiels 30
∂
(l)
J(w) (2.15)
∂wji
Dans la prochaine section, nous parlerons de l’algorithme d’optimisation, qui nous permet
de trouver les valeurs optimales des paramètres du modèle afin de minimiser la fonction
de coût.
la fonction de coût, nous devons calculer la dérivée partielle de la fonction de coût par
rapport à chaque poids, wj
∂J (i)
= − (y (i) − ϕ(z (i) ))xj
X
(2.17)
∂wj
La descente de gradient peut être réalisée avec différentes variantes, telles que la descente
de gradient stochastique (SGD) qui utilise un échantillon aléatoire à chaque itération,
la descente de gradient par lot (batch gradient descent) qui utilise tous les exemples
d’entraı̂nement à chaque itération, ou la descente de gradient mini-batch qui utilise un
sous-ensemble d’exemples d’entraı̂nement.
Momentum
ou :
w j = w j + vt (2.20)
– η est le taux d’apprentissage (learning rate), qui contrôle la taille des mises à jour des
poids.
– ∇J(wj ) est le gradient de la fonction de coût par rapport au poids wj .
– vt est la variable de momentum à l’itération t.
– µ est le coefficient de momentum..
L’algorithme RMSprop utilise les estimations des carrés des gradients précédents pour
mettre à jour les taux d’apprentissage. Il favorise une convergence plus rapide et une
meilleure adaptation des taux d’apprentissage aux différentes caractéristiques des données.
2.6 Entraı̂ner un réseau de neurones artificiels 32
gt
wj = wj − η √ (mise à jour du poids) (2.23)
vt +
mt
m̂t = (correction du premier moment biaisé) (2.27)
1 − β1t
vt
v̂t = (correction du deuxième moment biaisé) (2.28)
1 − β2t
m̂t
wj = wj − η √ (mise à jour du poids) (2.29)
v̂t +
Si le modèle commet de nombreuses erreurs sur les données d’entraı̂nement, nous disons
que le modèle a un biais élevé ou qu’il présente un sous-apprentissage. Ainsi, le sous-
apprentissage correspond à l’incapacité du modèle à prédire correctement les étiquettes
des données sur lesquelles il a été entraı̂né. La figure 2.19 présente les résultats de l’ap-
prentissage sous forme de trois graphiques distincts.
Il peut y avoir plusieurs raisons au Underfiting (sous-apprentissage), dont les plus im-
portantes sont les suivantes :
– La première raison est facile à illustrer dans le cas de la régression unidimensionnelle :
l’ensemble de données peut ressembler à une ligne courbée, mais notre modèle est une
ligne droite.
– La deuxième raison peut être illustrée comme ceci : supposons que vous souhaitez
prédire si un patient a un cancer, et les caractéristiques dont vous disposez sont la
taille, la pression artérielle et la fréquence cardiaque. Ces trois caractéristiques ne sont
clairement pas de bons prédicteurs du cancer, donc notre modèle ne sera pas en mesure
d’apprendre une relation significative entre ces caractéristiques et l’étiquette.
La solution au problème de sous-apprentissage est d’essayer un modèle plus complexe ou
d’élaborer des caractéristiques ayant un pouvoir prédictif plus élevé.
La régularisation est un terme générique qui englobe des méthodes qui obligent l’algo-
rithme d’apprentissage à construire un modèle moins complexe. En pratique, cela en-
traı̂ne souvent un biais légèrement plus élevé mais réduit considérablement la variance.
Ce problème est connu dans la littérature sous le nom biais-variance tradeoff. Parmi
les différentes méthodes de régularisation, nous pouvons citer L1 et L2 regularization,
dropout, data augmentation.
L1/L2 regularization
Les deux types de régularisation les plus couramment utilisés sont appelés régularisation
L1 et régularisation L2. L’idée est assez simple. Pour créer un modèle régularisé, nous
modifions la fonction objective en ajoutant un terme de pénalisation dont la valeur est
plus élevée lorsque le modèle est plus complexe. Dans la régularisation L1, les coefficients
de régression sont obtenus en minimisant la fonction de perte L1, exprimée comme suit :
n
(ŷ (i) − y (i) )2 + αkwk1
X
J(w)L1 = (2.30)
i=1
ou : m
X
kwk1 = |wj | (2.31)
j=1
ou : m
kwk22 = wj2
X
(2.33)
j=1
2.6 Entraı̂ner un réseau de neurones artificiels 35
Dropout
Dropout est une technique de régularisation spécifique aux réseaux de neurones. Pendant
l’entraı̂nement, des neurones aléatoires sont abandonnés ou désactivés avec une certaine
probabilité. Cela oblige le réseau à apprendre de manière plus robuste en évitant de trop
dépendre de certains neurones spécifiques, ce qui réduit le risque de surajustement.
Data augmentation
La data augmentation est une technique qui consiste à augmenter la taille du jeu de
données d’entraı̂nement en générant de nouveaux exemples synthétiques. Elle joue un rôle
important dans la régularisation du modèle en introduisant de la variabilité et en aidant
le modèle à mieux généraliser. En appliquant des transformations aléatoires ou contrôlées
sur les exemples existants. Voici quelques-unes des techniques couramment utilisées :
– Translations et rotations
– Miroir (symétrie)
– Ajustement du contraste la luminosité
– Ajout de bruit
– Recadrage et redimensionnement
Comme vous pouvez le voir dans la figure 2.22, un réseau de neurones convolutif (CNN)
calcule des cartes de caractéristiques à partir d’une image d’entrée, où chaque élément
provient d’un patch local de pixels dans l’image d’entrée.
Figure 2.22 – Exemple d’un réseau de neurones convolutif (CNN) pour la génération de cartes
de caractéristiques
Couche convolutif
La couche convolutive extrait les caractéristiques d’une image ou d’une entrée spatiale en
appliquant des filtres de convolution. Ces filtres permettent de détecter des motifs visuels
locaux tels que des bords, des textures et des formes, ce qui permet au réseau de neurones
convolutif (CNN) de reconnaı̂tre des objets et des structures plus complexes.
La figure 2.24 illustre la convolution 2D d’une matrice d’entrée de taille 8 × 8 à l’aide
d’un noyau de taille 3 × 3. La matrice d’entrée est rembourrée de zéros avec p = 1. En
conséquence, la sortie de la convolution 2D aura une taille de 8 × 8 :
Si nous avons une entrée de taille W x W x D avec Dout nombres de noyaux d’une taille
spatiale de F, avec un pas de S et un padding de P, alors la taille du volume de sortie
peut être déterminée par la formule 2.34 :
W − F + 2P
Wout = +1 (2.34)
S
Couche de pooling
W −F
Wout = +1 (2.35)
S
En résumé, la couche de pooling dans un CNN réduit la taille spatiale des caractéristiques
en effectuant une opération d’agrégation, aidant ainsi à réduire la complexité du modèle,
à améliorer l’efficacité computationnelle et à introduire une certaine invariance aux trans-
lations locales.
La couche entièrement connectée, également appelée couche dense, est une composante
essentielle d’un réseau de neurones. Elle est utilisée pour effectuer la classification ou
la prédiction finale en prenant en compte les caractéristiques extraites par les couches
précédentes.La figure 2.26 représente une couche entièrement connectée (fully connected
layer) avec une fonction d’activation softmax :
En résumé, la couche entièrement connectée dans un réseau de neurones est responsable
de la combinaison des caractéristiques extraites et de la prise de décision finale pour la
classification ou la prédiction des données.
2.6 Entraı̂ner un réseau de neurones artificiels 39
SqueezeNet est le nom d’un réseau neuronal profond lancé en 2016. Il a été développé par
des chercheurs de DeepScale, de l’Université de Californie à Berkeley et de l’Université
de Stanford. L’objectif des auteurs lors de la conception de SqueezeNet était de créer un
réseau de neurones plus petit avec moins de paramètres, qui pourrait facilement s’intégrer
dans la mémoire de l’ordinateur et être transmis plus facilement sur un réseau informa-
tique. SqueezeNet est un réseau neuronal convolutif de 18 couches de profondeur, avec
une taille d’entrée d’image de 227 par 227.
VGG16 est un modèle de réseau neuronal convolutif proposé par K. Simonyan et A. Zis-
serman de l’Université d’Oxford dans l’article intitulé ”Very Deep Convolutional Networks
for Large-Scale Image Recognition”. Ce modèle atteint une précision de 92,7% dans le top
5 des tests d’ImageNet et est l’un des modèles les plus célèbres soumis à l’ILSVRC [14].
VGG-16 est un réseau de 16 couches de profondeur, avec une taille d’entrée d’image de
224 par 224.
Le réseau résiduel (ResNet50) a été développé par Kaiming He et al. Il a remporté l’ILS-
VRC 2015 en apprenant des représentations de fonctionnalités riches pour un large éventail
d’images. ResNet-50 est un réseau neuronal convolutif de 50 couches de profondeur, avec
une taille d’entrée d’image de 224 par 224.
convolutif de 48 couches de profondeur, avec une taille d’entrée d’image de 299 par 299.
Le tableau 2.1 montre la comparaison entre les quatre architectures CNN.
Les modèles de détection d’objets sont des outils puissants dans le domaine de la vision
par ordinateur qui permettent de localiser et d’identifier différents objets dans des images
ou des vidéos.
Les modèles à un seul stage sont conçus pour détecter et classifier les objets en une
seule passe, sans nécessiter d’étapes supplémentaires de proposition de régions d’intérêt.
2.7 Modèles de détection d’objets 41
SSD
Le SSD est un modèle de détection d’objets à un seul stage largement utilisé en vision
par ordinateur. Il permet d’identifier et de localiser des objets spécifiques dans une image
en une seule passe, sans nécessiter d’étapes supplémentaires de proposition de régions
d’intérêt [14]
Tout d’abord, nous décrivons comment le SSD détecte les objets à partir d’une seule
couche. En réalité, il utilise plusieurs couches (cartes de caractéristiques multi-échelles)
pour détecter les objets de manière indépendante. À mesure que le CNN réduit pro-
gressivement la dimension spatiale, la résolution des cartes de caractéristiques diminue
également. Le SSD utilise des couches de résolution plus basse pour détecter des objets
à plus grande échelle. Par exemple, la figure 2.28 présente les cartes de caractéristiques
de 4 × 4 sont utilisées pour les objets à plus grande échelle. Le SSD ajoute 6 couches de
Figure 2.28 – Les cartes de caractéristiques de résolution inférieure (à droite) détectent des
objets à plus grande échelle [33]
convolution auxiliaires supplémentaires après le VGG16. Cinq d’entre elles seront ajoutées
pour la détection d’objets. voir figure 2.29, Dans trois de ces couches, nous effectuons 6
2.7 Modèles de détection d’objets 42
CenterNet
CenterNet est un modèle de détection d’objets qui se distingue par son approche novatrice
basée sur la prédiction des centres d’objets. Au lieu de se concentrer sur la détection de
boı̂tes englobantes, CenterNet vise à localiser précisément les centres des objets dans une
image [21]
2.7 Modèles de détection d’objets 43
Figure 2.30 – CenterNet régresse les centres des objets ainsi que leurs attributs (largeur et
hauteur pour la détection d’objets en 2D) [34]
Dans le modèle de détection d’objets CenterNet, plusieurs éléments clés sont utilisés pour
localiser et décrire les objets détectés.
Tout d’abord, il utilise une carte de chaleur (heatmap) pour prédire les centres des objets
avec précision.
Chaque pixel de la carte de chaleur indique la probabilité qu’il soit le centre d’un objet.
Ensuite, CenterNet prédit la taille et la forme des objets en utilisant des informations de
taille (object size).
Cela permet d’estimer la taille exacte des objets détectés. Enfin, le modèle utilise des
décalages locaux (local offset) pour ajuster les coordonnées des boı̂tes englobantes par
rapport aux centres détectés, ce qui permet une localisation plus précise des objets dans
l’image.voir la figure 2.30, Ensemble, ces éléments, la carte de chaleur, la taille des objets
et les décalages locaux, contribuent à la précision et à l’exactitude de la détection d’objets
dans le modèle CenterNet. CenterNet traite les entrées en passant l’image par un réseau
de neurones convolutifs pour extraire des caractéristiques, puis utilise ces caractéristiques
pour prédire la carte de chaleur (heatmap head), la taille des objets (Dimension head)
et les décalages locaux (Offset Head). L’architecture de traitement du modèle CenterNet
est présentée dans la figure 2.31. Ces informations sont ensuite utilisées pour extraire les
résultats de détection d’objets voir la figure 2.31.
Le backbone (feature extractor) du modèle CenterNet est constitué d’un réseau de neu-
rones convolutifs pré-entraı̂né, tel que ResNet ou Hourglass ou DLA.Il est responsable de
l’extraction des caractéristiques de l’image, ce qui contribue à la capacité de CenterNet à
détecter et localiser précisément les objets.
En conclusion, le modèle CenterNet est une approche avancée et précise pour la détection
d’objets, utilisant des cartes de chaleur, des informations sur la taille et les décalages
locaux. Il offre une combinaison optimale de précision et d’efficacité, et peut être appliqué
à diverses applications de vision par ordinateur.
2.7 Modèles de détection d’objets 44
Les modèles à deux étapes sont basés sur une approche en cascade avec deux étapes
principales. La première étape consiste à générer un ensemble de propositions de régions
d’intérêt potentielles à partir de l’image en utilisant des techniques comme les régions
d’intérêt (RoI) ou les régions de recherche (Region Proposal). Ces régions sont ensuite
alignées et adaptées pour correspondre plus précisément aux objets présents dans l’image.
Dans la deuxième étape, les régions proposées sont classifiées et étiquetées pour déterminer
la présence ou l’absence d’objets spécifiques, ainsi que leurs classes correspondantes. Les
modèles à deux étapes, tels que R-CNN (Region-based Convolutional Neural Network),
Fast R-CNN et Faster R-CNN, sont appréciés pour leur précision de détection élevée, en
particulier pour les petits objets ou les scènes complexes.
Faster R-CNN
Faster R-CNN est un modèle de détection d’objets basé sur des réseaux de neurones
convolutifs (CNN) qui propose une approche en deux étapes pour détecter et localiser les
objets dans une image. Il utilise une région de proposition (Region Proposal Network -
RPN) pour générer des régions d’intérêt potentielles, puis applique un réseau de neurones
convolutifs pour classer et raffiner ces régions d’intérêt.voir figure 2.32. Faster R-CNN a
introduit le concept d’apprentissage de la région de proposition, ce qui lui permet d’être
plus rapide et plus précis par rapport aux approches précédentes. Il est largement utilisé
dans les tâches de détection d’objets, offrant une performance élevée et une flexibilité dans
la détection d’objets de différentes tailles et catégories.
Le choix du backbone peut varier, mais des architectures populaires telles que VGG16, Re-
sNet, et Inception sont couramment utilisées. figure 2.33 présente architecture de VGG16.
Le backbone du modèle Faster R-CNN est responsable de l’extraction des caractéristiques
2.8 Conclusion 46
En résumé, le modèle Faster R-CNN traite les données en utilisant un RPN pour générer
des régions d’intérêt, puis utilise un réseau de neurones convolutifs pour classer et localiser
précisément les objets dans ces régions. Cette approche en deux étapes permet au modèle
de détecter efficacement les objets dans des images complexes tout en conservant une
précision élevée.
2.8 Conclusion
Résultats et analyses
47
3.1 Introduction 48
3.1 Introduction
Dans ce chapitre, nous verrons comment appliquer la détection d’objets à l’aide Deep
Learning. Plus précisément, nous allons utiliser les algorithmes SSD-Mobilenet et Faster
R-CNN-ResNet50 pour construire notre détecteur d’objets. A la fin, nous examinerons les
résultats de l’application du détecteur à des exemples d’images d’entrées.
Notre projet de fin d’études portait sur la détection d’objets, et pour cela on a uti-
lisé Python, TensorFlow et Keras comme principaux outils de développement voir figure
3.1 (a) (b) (c). Python, un langage de programmation polyvalent, et TensorFlow, une
bibliothèque d’apprentissage automatique open-source, nous a permis de créer et d’en-
traı̂ner efficacement des modèles de détection d’objets. On a également utilisé Keras,
une bibliothèque haut niveau intégrée à TensorFlow, qui a simplifié la création et l’en-
traı̂nement de réseaux de neurones convolutifs. Pour la réalisation de notre projet, On a
utilisé Raspberry Pi 4 comme plateforme de déploiement, ce qui a permis une exécution
en temps réel et une portabilité accrue voir figure 3.1 (d). L’ensemble de ces outils et
environnements de développement nous a permis de développer un modèle de détection
d’objets précis et efficace, tout en offrant une interface conviviale pour le développement
et l’entraı̂nement des modèles.
Dans le cadre de notre recherche sur la détection de drones, on a utilisé une dataset
provenant de Kaggle, une plateforme en ligne populaire pour les ensembles de données et
les compétitions en apprentissage automatique, voir la figure 3.2. La source de données
provenant de Kaggle a fourni une base solide pour notre projet.
L’avantage d’utiliser une dataset de Kaggle est qu’elle est souvent prétraitée et bien or-
ganisée, ce qui m’a permis de gagner du temps et de me concentrer davantage sur le
développement de notre modèle. De plus, la possibilité de télécharger des ensembles de
données provenant de Kaggle a élargi mes options et m’a offert une diversité d’exemples
pour former notre modèle de détection de drones.
d’évaluer la capacité du modèle à généraliser et à détecter les drones dans des situations
réelles.
L’utilisation d’un ensemble d’entraı̂nement plus grand (dans ce cas, 80% des images)
permet au modèle d’apprendre à partir d’un plus grand nombre d’exemples et d’ajuster
ses paramètres en conséquence. Cela peut améliorer les performances du modèle et sa
capacité à capturer les relations entre les caractéristiques des données.
D’autre part, l’ensemble de test plus petit (dans ce cas, 20% des images) est utilisé pour
évaluer les performances du modèle de manière indépendante, en mesurant son exactitude
sur des données qu’il n’a pas vues auparavant. Cela permet de fournir une estimation
réaliste de la performance du modèle sur de nouvelles données.
Pour l’étiquetage manuel des images de drones, on a utilisé l’outil LabelImg voir la fi-
gure précédente. LabelImg est un logiciel open-source largement utilisé pour l’annotation
d’images dans le domaine de la vision par ordinateur. Cet outil convivial offre une inter-
face graphique intuitive permettant de marquer facilement les régions d’intérêt dans les
images. Voici les étapes pour étiqueter les images de drones en utilisant l’outil LabelImg :
1. Installation : Commencez par installer l’outil LabelImg sur votre ordinateur.
2. Chargement d’une image : Dans LabelImg, cliquez sur ”Open” ou ”Ouvrir” pour
charger une image à étiqueter depuis le dossier contenant vos images de drones.
autour du drone dans l’image. Ajustez la taille et la position du rectangle pour qu’il
englobe précisément le drone.
4. Attribution d’une classe : Une fois que vous avez annoté la région du drone,
sélectionnez la classe correspondante dans la liste déroulante des classes prédéfinies
(par exemple, ”Drone” ou ”Drones”) dans l’interface LabelImg.
Durant notre projet, nous avons utilisé Jupyter Notebook comme IDE. et Jupyter No-
tebook est une application web open-source qui vous permet de créer et partager des
documents contenant du code en direct, des équations, des visualisations et du texte
explicatif. Il offre un environnement computationnel interactif où vous pouvez combiner
l’exécution de code, la visualisation de données et le texte explicatif. Le nom ”Jupyter” est
un mélange des langages de programmation Julia, Python et R, qui étaient les langages
originaux pris en charge par le projet.
Notre programme de détection d’objets repose sur une série d’étapes bien définies qui per-
mettent d’identifier et de localiser des objets spécifiques dans des images ou des vidéos.
En utilisant des techniques d’apprentissage automatique et des modèles de détection d’ob-
jets pré-entraı̂nés, notre programme est capable de reconnaı̂tre et de classifier différentes
classes d’objets, y compris les drones. voici les étapes clés de notre programme :
Figure 3.12 – Configuration des paramètres et des fichiers à l’aide de Jupyter Notebook
Figure 3.13 – Configuration des chemins et des répertoires à l’aide de Jupyter Notebook
6. Créer TF records
8. Apprentissage du modèle
9. Evaluer le modèle
Dans la détection d’objets, la perte joue un rôle essentiel pour évaluer la précision du
modèle dans la localisation et la classification des objets. La perte est une mesure qui
3.5 Perte dans la détection d’objet 56
quantifie l’écart entre les prédictions du modèle et les vérités terrain (ground truths) des
objets. Elle guide l’optimisation du modèle en ajustant les poids pour minimiser cette
erreur. En utilisant différentes composantes de perte telles que la perte de classification,
la perte de localisation et la perte de régularisation.
La perte de classification est une mesure utilisée pour évaluer la précision des prédictions
de classification d’un modèle par rapport aux étiquettes réelles des classes. Elle quantifie
l’écart entre les prédictions du modèle et les valeurs cibles. L’équation de la perte de
classification :
N X C
1 X
Lclassification =− yij log(pij ) (3.1)
N i=1 j=1
La perte de localisation est généralement calculée en utilisant une distance ou une métrique
appropriée pour mesurer l’écart entre les prédictions des boı̂tes englobantes (bounding
boxes) et les boı̂tes englobantes réelles des objets. La perte de localisation, également
connue sous le nom de perte de régression, mesure l’écart entre les prédictions de locali-
sation et les véritables annotations de localisation dans un modèle de détection d’objets.
La formule générale de la perte de localisation dépend du problème spécifique et de l’al-
gorithme utilisé.
N X M
1 X
Llocalisation = Loss(yi,j , ŷi,j ) (3.2)
N i=1 J=1
λX
Lregularization = ||wi ||2 (3.3)
2 i
Elle vise à prévenir le surajustement (overfitting) en limitant les valeurs extrêmes des
poids et en favorisant des solutions plus simples.
La perte totale (total loss) est la somme des différentes composantes de perte dans un
modèle d’apprentissage automatique. Elle représente l’erreur globale du modèle lors de
son entraı̂nement et est utilisée pour guider l’optimisation du modèle.
La perte totale est utilisée pour ajuster les poids du modèle pendant l’entraı̂nement, en
minimisant l’erreur globale et en améliorant les performances du modèle sur les données
d’entraı̂nement. L’objectif est d’obtenir une perte totale minimale, ce qui indique que le
modèle s’ajuste efficacement aux données et est capable de généraliser correctement sur
de nouvelles données.
Dans le cadre de notre projet de détection de drones, nous avons décidé d’explorer et
d’évaluer l’utilisation du modèle SSD MobileNet pour cette tâche. L’objectif est de tester
les performances de ce modèle dans la détection précise et rapide des drones dans des
images ou des vidéos.
Après l’entraı̂nement du modèle, nous avons réalisé des tests et des évaluations appro-
fondies pour mesurer ses performances. Nous avons utilisé des images et des vidéos de
différents scénarios, comprenant diverses conditions d’éclairage, des angles de vue variés
et des situations réalistes de présence de drones voici les résultats que nous avons obtenu :
3.6 Modèle SSD-Mobilenet 58
La perte de classification mesure l’écart entre les prédictions du modèle et les étiquettes
réelles des classes. Un résultat de 0.05 après 2000 steps indique de bonnes performances,
avec une précision de classification relativement élevée.
La perte de localisation mesure la précision de localisation du modèle. Un résultat de
0.025 après 2000 steps indique de bonnes performances, avec une précision de localisation
relativement élevée.
La perte de régularisation mesure l’ajustement et la généralisation du modèle. Un
résultat de 0.1465 après 2000 steps indique une régularisation adéquate, favorisant un
modèle plus robuste et moins susceptible de surajustement.
La perte totale est la somme des différentes composantes de perte, telles que la perte de
classification, la perte de localisation et la perte de régularisation.0.225 après 2000 steps
représente l’erreur globale accumulée par le modèle.
3.7 Modèle Faster R-CNN-ResNet50 59
Sur la première photo de détection de drone, le modèle a obtenu une précision de 98%
pour détecter la présence de drones. Quant à la deuxième photo, le modèle a obtenu une
précision de 97% pour la détection de drones. Une précision de 98% et 97% est un résultat
solide, témoignant de la capacité du modèle à repérer efficacement les drones dans des
scénarios variés.
Dans le cadre de notre projet de détection de drones, nous avons exploré et évalué l’uti-
lisation du modèle Faster R-CNN avec l’architecture ResNet50. Notre objectif était de
tester les performances de ce modèle en termes de détection précise et rapide des drones
dans des images et des vidéos.
Après avoir entraı̂né le modèle, nous avons procédé à des tests et à des évaluations ap-
profondies pour évaluer ses performances. Nous avons utilisé différentes images et vidéos
représentant une variété de scénarios, comprenant des conditions d’éclairage variées, des
angles de vue différents et des situations réalistes impliquant la présence de drones.Les
résultats obtenus ont été encourageants, démontrant la capacité du modèle Faster R-CNN
avec l’architecture ResNet50 à détecter avec précision les drones dans différents contextes,
voici les résultats que nous avons obtenu :
3.7 Modèle Faster R-CNN-ResNet50 60
La perte de classification mesure l’écart entre les prédictions du modèle et les étiquettes
réelles des classes. Un résultat de 0.11 après 2000 steps indique de bonnes performances,
avec une précision de classification relativement élevée.
La perte totale est la somme des différentes composantes de perte, telles que la perte
de classification, la perte de localisation et la perte de régularisation.0.31 après 2000 steps
représente l’erreur globale accumulée par le modèle.
3.8 Comparaison de la méthode SSD et Faster R-CNN 61
Table 3.2 – Analyses quantitative des graphiques des modèles Faster R-CNN ResNet50
Sur la première photo de détection de drone, le modèle a obtenu une précision de 92%
pour détecter la présence de drones. Quant à la deuxième photo, le modèle a obtenu une
précision de 90% pour la détection de drones. Une précision de 92% et 90% est un résultat
solide, témoignant de la capacité du modèle à repérer efficacement les drones dans des
scénarios variés.
Dans cette section, nous avons mené une étude comparative entre deux méthodes de
détection d’objets par Deep Learning : SSD et Faster R-CNN. L’objectif était de démontrer
l’efficacité de ces méthodes et d’évaluer leurs performances. Nous avons constaté que la
méthode SSD est plus rapide et plus fiable que Faster R-CNN pour les applications en
temps réel. En effet, la méthode SSD permet de détecter et d’entraı̂ner des objets en
même temps, ce qui la rend plus efficace pour les applications en temps réel. En revanche,
Faster R-CNN nécessite un temps d’exécution plus élevé, ce qui la rend moins adaptée
pour les applications en temps réel. En conclusion, la méthode SSD est plus rapide, plus
fiable et plus efficace que Faster R-CNN pour la détection d’objets par Deep Learning.
3.9 Conclusion 62
3.9 Conclusion
Dans ce troisième chapitre de notre mémoire, nous avons abordé les outils et l’environne-
ment de développement utilisés dans notre projet, tels que Python, Raspberry Pi, Keras
et TensorFlow. Nous avons ensuite présenté la source de notre jeu de données sur les
drones, provenant de Kaggle, et expliqué le processus d’étiquetage manuel des images.
Ensuite, nous avons comparé les performances des modèles RCNN (Régions avec Convo-
lutional Neural Network) et SSD (Single Shot MultiBox Detector) dans la détection des
drones. Après une évaluation approfondie, nous avons constaté que le modèle SSD offre de
meilleurs résultats de détection des drones par rapport au modèle RCNN. Cette conclusion
met en évidence l’efficacité et la précision du modèle SSD dans cette tâche spécifique.
Ces résultats sont d’une grande importance, car ils montrent que le modèle SSD est plus
adapté à la détection des drones dans les images ou les vidéos. Cela suggère que le SSD
pourrait être un choix optimal pour des applications pratiques nécessitant une détection
précise et rapide des drones.
Dans l’ensemble, les trois chapitres de ce mémoire ont permis d’explorer et de présenter
différentes facettes de la détection d’objets et de l’apprentissage en profondeur.
Enfin, dans le troisième chapitre, nous avons examiné les résultats obtenus en utilisant
le modèle SSD pour la détection des drones. Nous avons constaté une précision élevée
dans nos tests, confirmant l’efficacité du modèle dans cette tâche spécifique. Ces résultats
démontrent l’importance du choix du modèle et l’impact des différentes étapes du proces-
sus, de la préparation des données à l’évaluation des performances.
En conclusion, ce mémoire a contribué à notre compréhension des concepts clés, des outils
et des méthodes de détection d’objets dans le contexte de la détection des drones. Il a
posé les bases pour de futures recherches et développements, offrant des perspectives
intéressantes pour l’amélioration des performances des modèles et leur déploiement dans
des applications pratiques.
Pour terminer, nous espérons que ce travail servira de référence et d’inspiration pour
d’autres chercheurs et praticiens qui s’intéressent à la détection d’objets et à l’apprentis-
sage en profondeur, ou plus spécifiquement à la détection des drones.
63
Bibliographie
[1] C. Tang, Y. Ling, X. Yang, W. Jin, and C. Zheng, “Multi-view object detection based
on deep learning,” Appl. Sci., vol. 8, no. 9, 2018.
[2] A. c. Saaod M .Rasheed1, “Deep learning,” International Journal of Innovative Re-
search in Science Engineering and Technology, May 2019.
[3] P. Viola and M. Jones, “Rapid object detection using a boosted cascade of simple
features,” in IEEE Conf Comput Vis Pattern Recognit, pp. I–511, Feb 2001.
[4] P. F. Felzenszwalb, R. B. Girshick, D. McAllester, and D. Ramanan, “Object detec-
tion with discriminatively trained part-based models,” IEEE Trans. Pattern Anal.
Mach. Intell., vol. 32, pp. 1627–1645, Sept. 2010.
[5] A. IA, “Segmentation et détection d’objets en temps réel avec ten-
sorflow.” https://www.actuia.com/contribution/jeancharlesrisch/
segmentation-et-detection-dobjets-en-temps-reel-avec-tensorflow/,
October 26 2019. Consulté le 13 juin 2023.
[6] “ICA2IT 2019 : International Conference on Artificial Intelligence and Informa-
tion Technology.” http://wikicfp.com/cfp/servlet/event.showcfp?eventid=
77191©ownerid=119134, March 2019. Consulté le 13 juin 2023.
[7] N. Dalal and B. Triggs, “Histograms of oriented gradients for human detection,” in
2005 IEEE Computer Society Conference on Computer Vision and Pattern Recogni-
tion (CVPR’05), pp. 886–893 vol. 1, June 2005.
[8] C. Cortes and V. Vapnik, “Support-vector networks,” Mach. Learn., vol. 20, pp. 273–
297, September 1995.
[9] D. Lowe, “Distinctive image features from scale-invariant keypoints,” Int. J. Comput.
Vis., vol. 60, p. 91, November 2004.
[10] R. Girshick, J. Donahue, T. Darrell, and J. Malik, “Rich feature hierarchies for accu-
rate object detection and semantic segmentation.” arXiv, October 22 2014. Consulté
le 14 juin 2023.
[11] R. Girshick, “Fast r-cnn.” arXiv, September 27 2015. Consulté le 14 juin 2023.
[12] S. Ren, K. He, R. Girshick, and J. Sun, “Faster R-CNN : Towards real-time object
detection with region proposal networks.” arXiv, January 6 2016. Consulté le 14 juin
2023.
[13] J. Redmon, S. Divvala, R. Girshick, and A. Farhadi, “You only look once : Uni-
fied, real-time object detection,” in 2016 IEEE Conference on Computer Vision and
Pattern Recognition (CVPR), pp. 779–788, June 2016.
64
BIBLIOGRAPHIE 65
[14] W. Liu and et al., “SSD : Single shot multibox detector,” in Proceedings of the
European Conference on Computer Vision (ECCV), pp. 21–37, 2016.
[15] K. He, X. Zhang, S. Ren, and J. Sun, “Deep residual learning for image recognition,”
in 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR),
pp. 770–778, June 2016.
[16] G. Huang, Z. Liu, L. van der Maaten, and K. Weinberger, “Densely connected convo-
lutional networks,” 2017 IEEE Conference on Computer Vision and Pattern Recog-
nition (CVPR), pp. 2261–2269, 2017.
[17] A. G. Howard and et al., “Mobilenets : Efficient convolutional neural networks for
mobile vision applications.” arXiv, April 16 2017. Consulté le 14 juin 2023.
[18] M. Tan and Q. V. Le, “Efficientnet : Rethinking model scaling for convolutional
neural networks.” arXiv, September 11 2020. Consulté le 14 juin 2023.
[19] T.-Y. Lin, P. Goyal, R. Girshick, K. He, and P. Dollár, “Focal loss for dense object
detection,” in 2017 IEEE International Conference on Computer Vision (ICCV),
pp. 2999–3007, October 2017.
[20] A. IA, “Deformable convolutional networks,” pp. 764–773, October 2017. Consulté
le 13 juin 2023.
[21] K. He, G. Gkioxari, P. Dollár, and R. Girshick, “Objects as points,” in Proceedings of
the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR),
June 2019.
[22] M. Barr and A. Massa, Programming Embedded Systems : With C and GNU Deve-
lopment Tools. O’Reilly Media, Inc., 2006.
[23] A. B. Tucker, ed., Computer Science Handbook. Boca Raton, FL : Chapman &
Hall/CRC, 2nd ed., 2004.
[24] J. W. Liu, Real-Time Systems. Prentice Hall, 2000.
[25] B. Daniel, “What are embedded systems ?.” https://www.trentonsystems.com/
blog/what-are-embedded-systems. Consulté le 2 juillet 2023.
[26] “Raspberry pi documentation - raspberry pi hardware.” https://www.raspberrypi.
com/documentation/computers/raspberry-pi.html. Consulté le 3 juillet 2023.
[27] Raspberry Pi Foundation, “Raspberry pi 4 model b.” https://
www.raspberrypi.com/products/raspberry-pi-4-model-b/?variant=
raspberry-pi-4-model-b-8gb. Accessed on [Insert Date].
[28] F. Chollet, Deep Learning with Python. Manning Publications, 2017.
[29] S. Raschka and V. Mirjalili, Python Machine Learning : Machine Learning and Deep
Learning with Python, scikit-learn, and TensorFlow 2. Packt Publishing, 3rd ed.,
2019.
[30] E. Davalo and P. Naı̈m, Des réseaux de neurones. Edition Eyrolle, 2 ed., 1990.
[31] M. Sauget, Parallélisation de problèmes d’apprentissage par réseaux neuronaux artifi-
ciels. Application en radiothérapie externe. PhD thesis, Université de Franche-Comté,
2007.
[32] A. Burkov, The Hundred-Page Machine Learning Book. Andriy Burkov, 2019.
BIBLIOGRAPHIE 66