Vous êtes sur la page 1sur 30

Your Paper

You
June 5, 2023

List of Figures
1 Intelligence artificielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Apprentissage automatique Machine Learning. . . . . . . . . . . . . . . . . . . . . . . . 3
3 Méthodes d’apprentissage automatique. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4 Apprentissage supervisé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
5 Différences entre clustring, classification et régression. . . . . . . . . . . . . . . . . . . . 5
6 Différence entre machine learning et deep learning. . . . . . . . . . . . . . . . . . . . . . 5
7 Deep learning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
8 Les réseaux de neurones convolutifs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
9 Max-Pooling avec un filtre 2x2 et un pas de 2. . . . . . . . . . . . . . . . . . . . . . . . . 8
10 Average-Pooling avec un filtre 2x2 et un pas de 2. . . . . . . . . . . . . . . . . . . . . . 8
11 Architecture de LeNet(1998) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
12 Architecture d’AlexNet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
13 Architecture de ZFNet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
14 Architecture de GoogleNet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
15 Architecture de VGGNet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
16 Architecture de ResNet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
17 Mortalité routière annuelle en Tunisie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
18 panneaux de signalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
19 Base de données (Train). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
20 Base de données (Test). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
21 Présentation d’architecture DCNN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
22 Architecture CNN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
23 Architecture de VGG 16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
24 Résultat Loss et Accuracy de PYNQ-Z1. . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
25 Les bibliothèques nécessaires pour l’apprentissage. . . . . . . . . . . . . . . . . . . . . . 18
26 La carte Respberry Pi4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
27 Les broches de la carte Raspberry pi4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
28 Architecture de la carte Raspberry Pi4. . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
29 Installation OS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
30 Télécharger la version. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
31 Insération de la carte SD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
32 Installation terminé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
33 Les logicielles exécute sur pynq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
34 Les composants de la carte pynq z1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
35 Plateforme de pynq-z1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
36 Configuration de pynq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
37 Configuration de l’adresse IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
38 Accéder a la zone d’accueil de pynq. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
39 Configuration de PUTTY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

1
Etat de l’art

1 présentation général
La voiture est le mode de transport prédominant dans la vie quotidienne des êtres humains.
Cependent, les accidents de la route constituent la principale cause de décès chez les individus. Dans
le cas des véhicules conventionnels, il arrive que les conducteurs oublient les panneaux de signalisa-
tion ou ne les remarquent pas lors de conditions météorologiques difficiles telles qu’une forte pluie, du
brouillard ou de la neige, ce qui entraı̂ne un nombre considérable d’accidents.
Selon l’OMS (Organisation Mondiale de la Santé), les accidents de la route dans le monde provoquent
le décès de presque 1,3 million de personnes chaque année et font de 25 à 50 millions de blessés. Elle
est en outre la première cause de décès chez les jeunes âgés de 15 à 29 ans.
Les panneaux de signalisation routières sont très importants pour et guider avertir l’usager afin
d’assurer sa sécurité et celle du réseau routier.
Grâce aux avancées technologiques et à l’émergence de l’Intelligence Artificielle (IA) au cours des
dernières décennies, de nombreuses entreprises ont été en mesure de développer des systèmes em-
barqués sophistiqués en utilisant des machines intelligentes pour automatiser des tâches industrielles.
Ces systèmes embarqués intelligents sont capables de prendre des décisions autonomes dans des tâches
complexes et variées, grâce à l’application de nouvelles technologies et de techniques d’IA.
Dans le domaine de la conduite automobile, il est devenu essentiel de mettre en place des systèmes
de détection et de reconnaissance des panneaux de signalisation afin de réduire le nombre de décès,
résoudre les problèmes sur la route et garantir la sécurité des individus.
Notre projet de fin d’étude s’inscrit précisément dans ce contexte.
L’objectif de ce travail est la conception et l’implémentation, sur un Raspberry pi4, d’un système
basé sur l’apprentissage profond pour la reconnaissance des panneaux routiers dans le contexte d’un
véhicule autonome afin de diminuer le nombre de décès. Ce mémoire comporte trois chapitres :
Le premier chapitre de notre projet de fin d’étude consiste en une synthèse qui explore les principes de
l’Intelligence Artificielle ainsi que les différentes catégories d’apprentissage automatique et d’apprentissage
profond. Il expose aussi les réseaux de neurones convolutifs et leurs couches
Le deuxième chapitre fournit d’abord une description détaillée du système de détection et de reconnais-
sance des panneaux de signalisation routiers. Là, où la base de données et l’architecture utiliser pour
la détection.A la fin de ce chapitre,citerles plateformes bien détailler et les bibliothéques nécessaires.
Le troixième chapitre intitulé déploiement de la carte respberry Pi4 et la carte pynq décrit dans une
première partie la carte et leur configuration.

2 Introduction
L’apprentissage en profondeur est une forme d’intelligence artificielle dérivé de l’apprentissage au-
tomatique. Cette branche est largement utilisée Lire le classement et la reconnaissance dans plusieurs
domaines ces derniéres années.
Dans ce chapitre, nous allons d’abord présenter l’intelligence artificielle et les réseaux de neurones
convolutifs .

3 Intelligence artificielle et réseaux de neurones


3.1 définition
Les nombreuses techniques de l’intelligence artificielle (IA) permettent aux machines de reproduire ou
de simuler certaines formes d’intelligence humaine[1]. Les systémes d’IA sont conçus pour pouvoir
interagir avec des individus humains: * Afin de permettre aux utilisateurs de comprendre leurs actions
et motivations, les systémes d’IA doivent être capables d’exprimer leur comportement et de fournir
des explications justifiant les décisions qu’ils prennent [2].
* Afin de répondre aux attentes et aux besoins des différents utilisateurs, les systémes d’IA doivent
également faire preuve de flexibilité et être capables de s’adapter à chaque utilisateur de maniére
appropriée.

2
par conséquent Il est essentiel de mettre en place des mécanismes de communication et d’interopérabilité
entre les êtres humains et les systémes d’IA.

Figure 1: Intelligence artificielle

3.2 L’apprentissage automatique (Machine Learning)


L’apprentissage automatique est un domaine de l’intelligence artificielle qui permet aux ordinateurs
d’acquérir la capacité d’apprendre à partir des données3, ce qui leur permet d’améliorer leurs perfor-
mances dans la résolution de tâches sans nécessiter une programmation explicite

Figure 2: Apprentissage automatique Machine Learning.

En général, l’apprentissage automatique se divise en trois grandes catégories. tous les jours Les
catégories se concentrent sur la façon dont le processus d’apprentissage est effectué par le systéme.
Ces catégories sont : Apprentissage supervisé, apprentissage non supervisé et apprentissage par ren-
forcement. L’apprentissage supervisé se produit lorsque le modéle reçoit une phrase Pour les entrées
étiquetes, l’appartenance à la classe correspondante est également incluse. Le modéle essaie de s’ajuster
pour que chaque entrée puisse être mappée à la classe de sortie appropriée. L’apprentissage non super-
visé prend un ensemble d’entrées non étiquetées. En ce sens, le modéle essaie d’apprendre les données
en examinant des modéles. Enfin, l’apprentissage par renforcement se produit lorsque les agents
récompensent ou punissent en fonction des d´ecisions qu’ils prennent pour atteindre leurs objectifs.

3.3 Méthodes d’apprentissage automatique


Un ensemble de différents algorithmes d’apprentissage automatique ont été proposés pour Couvre
un large éventail de types de données et de problèmes. Ces méthodes d’apprentissage peuvent être
principalement divisées en trois méthodes principales : apprentissage supervisé, semi-supervisé, non
supervisé, apprentissage par renforcement et apprentissage par transfert.

3
Figure 3: Méthodes d’apprentissage automatique.

3.3.1 Méthodes supervisées


La plupart des méthodes pratiques actuelles d’apprentissage automatique sont Méthode d’apprentissage
supervisé, en raison de ses performances supérieures par rapport à d’autres méthodes similaires.
L’apprentissage supervisé comprend un ensemble de données étiquetées ou d’exemples attribués à une
classe par un enseignant ou un expert. Cet ensemble d’exemples constitue la base de l’apprentissage.
Dans le cas des méthodes d’apprentissage supervisé, ces derniéres se donnent alors des objectifs
généraux construits à partir de bases d’apprentissage ou de fonctions catégorielles. A partir de la
description d’un objet, une telle fonction peut identifier des attributs spécifiques, comme la classe
indiquée... [BORGI, 2011]. Les méthodes d’apprentissage supervisé se rapprochent d’une fonction de
mappage f(x) qui prédit une variable de sortie y étant donné un échantillon d’entrée x. La fonction de
mappage f(.) se présente sous de nombreuses formes, notamment les arbres de décision, les forêts de
décision aléatoires (RDF), la régression logistique (LR), les machines à vecteurs de support (SVM),
les réseaux de neurones (NN), les machines à noyau et les classificateurs bayésiens. Une large gamme
d’algorithmes d’apprentissage à également été proposée pour estimer ces différents types de mappages.

Figure 4: Apprentissage supervisé.

L’apprentissage supervisé pose divers problémes et peut être divisé principalement en deux ap-
proches principales : la classification et la régression.
• Classification : Un modéle d’apprentissage automatique dont la sortie appartient à un ensemble
fini de valeurs [Malfante, 2017].
• Régression : Tentative de prédiction d’un attribut continu [4].

3.3.2 Méthodes non-supervisées


Dans le domaine de l’intelligence artificielle, l’apprentissage non supervisée est le probléme de l’apprentissage
automatique, qui consiste à trouver des structures sous-jacentes à partir de données non étiquetées. Le
but de l’apprentissage non supervisé est de modéliser la structure/distribution sous-jacente des données

4
afin de découvrir des structures intéressantes au sein des données. Les méthodes d’apprentissage non
supervisé les plus populaires sont les approches de clustering telles que le clustering hiérarchique, le
clustering k-means, les modéles de mélange gaussien (GMM) et les cartes auto-organisatrices (SOM)
[Cleuziou, 2006]. Il existe deux approches de l’apprentissage non supervisé : le regroupement et la
réduction de la dimensionnalité.
• Regroupement : une approche d’apprentissage non supervisé dans laquelle les réseaux de neurones
peuvent être utilisés pour l’analyse exploratoire des données afin de trouver des modéles ou des clusters
cachés dans les données. Ce processus consiste à regrouper les données par similarité. Les applications
de l’analyse par grappes comprennent l’analyse de séquences génétiques, les études de marché et la
reconnaissance d’objets [Alelyani, 2013].
• Réduction de la dimensionnalité : un ensemble de techniques d’apprentissage automatique et
de statistiques visant à réduire le nombre de variables aléatoires prises en compte. Cela inclut la
sélection et l’extraction de fonctionnalités. La réduction de la dimensionnalité rend l’analyse des
données beaucoup plus facile et rapide pour les algorithmes d’apprentissage automatique sans avoir
à gérer des variables non pertinentes, ce qui rend les algorithmes d’apprentissage automatique plus
rapides et plus faciles [Zhao,2016].

Figure 5: Différences entre clustring, classification et régression.

3.3.3 . Méthodes par renforcement


En intelligence artificielle, l’apprentissage par renforcement correspond au cas o‘u un algorithme ap-
prend un comportement à partir d’observations. L’opération de l’algorithme sur l’environnement
produit une valeur de retour qui sert à guider l’algorithme d’apprentissage [François, 2017].

3.4 Deep learning


L’apprentissage en profondeur ou apprentissage en profondeur est l’une des principales techniques
d’apprentissage automatique. Avec l’apprentissage en profondeur, nous parlons d’algorithmes qui
imitent les actions du cerveau humain à travers des réseaux de neurones artificiels. Les réseaux sont
constitués de dizaines voire de centaines de ”couches” de neurones, dont chacune reçoit et interpréte
les informations de la couche précédente.

Figure 6: Différence entre machine learning et deep learning.

5
3.5 Différence entre machine learning et deep learning
L’apprentissage en profondeur est une forme particuliére d’apprentissage automatique. Le proces-
sus d’apprentissage automatique commence par extraire manuellement les caractéristiques pertinentes
d’une image, puis utilise ces caractéristiques pour créer un modéle qui classe les objets dans l’image. Le
processus d’apprentissage en profondeur extrait automatiquement les caractéristiques pertinentes des
images. De plus, l’apprentissage en profondeur effectue un ”apprentissage de bout en bout”, où nous
alimentons le réseau en données brutes et une tâche à effectuer (telle que la classification), et il apprend
à le faire automatiquement. Il évolue avec les données, tandis que l’apprentissage superficiel converge.
L’apprentissage superficiel fait référence aux méthodes d’apprentissage automatique qui atteignent un
certain niveau de performance à mesure que davantage d’exemples et de données de formation sont
ajoutés au réseau. L’une des principales forces des réseaux d’apprentissage en profondeur est qu’ils
s’améliorent continuellement à mesure que la quantité de données augmente.

Figure 7: Deep learning.

4 Réseaux de neurones convolutifs (CNN)


4.1 introduction
Les réseaux de neurones convolutifs (CNN) sont les plus largement utilisés dans les applications de
vision par ordinateur. Il a été introduit par Kunihiko Fukushima en 1980 [Fukushima 1980] et amélioré
par Yann et al. [Yann, 1998] 1998. Dans l’apprentissage automatique, les CNN sont des réseaux à
plusieurs étapes qui peuvent être entraˆınés. Les CNN sont l’une des classes les plus populaires de
réseaux de neurones, en particulier pour les données de grande dimension telles que les images et
les vidéos. Il fonctionne de maniére trés similaire à un réseau de neurones standard. Ils facilitent
les progrés dans la détection et la reconnaissance d’objets et fournissent des architectures optimales
pour la reconnaissance d’images et la détection de modéles. Combinés aux progrés des GPU et de
l’informatique paralléle, les CNN sont une technologie clé qui soustend les nouveaux développements
en matiére de conduite autonome et de reconnaissance faciale. Il est particuliérement utile pour trouver
des motifs dans les images pour la reconnaissance partir d’objets, de visages et de scénes. Il apprend
directement à partir des données d’image, en utilisant un modéle pour classer les images sans extraire
manuellement les caractéristiques. Un réseau de neurones convolutifs est constitué de neurones avec
des poids et le biais de l’apprenant. Chaque neurone reçoit une entrée, exécute un produit point et
éventuellement le suivre de maniére non linéaire. Tout le réseau a dit Une fonction de partition plus
différenciable : des pixels d’image bruts à une extrémité aux partitions de classe à l’autre extrémité. Et
ils ont toujours une fonction de perte (par exemple SVM/Softmax) sur la derniére couche (entiérement
connectée). Dans cette section, nous allons d’abord expliquer l’opération de convolution, détailler
l’architecture des CNN, donner les différents type de couche et quelques exemples réels de CNN bien
connus.

6
4.2 les différents type de couche
Il existe quatre types de couches pour un réseau de neurones convolutif:
*la couche de convolution
*la couche de correction ReLU
*la couche de pooling
*la couche fully-connected.
Dans ce partie, je vais vous expliquer le fonctionnement de ces différentes couches.

Figure 8: Les réseaux de neurones convolutifs.

4.2.1 Couche convolutif


Les couches convolutives sont les éléments de base des réseaux convolutifs et effectuent la majeure
partie du travail informatique lourd, où une convolution découvre la présence d’un ensemble de car-
actéristiques dans une image reçue en entrée. Pour ce faire, un filtrage convolutif est effectué, qui
fonctionne en ”glissant” une fenêtre représentant une caractéristique sur l’image et en calculant le
produit de convolution entre la caractéristique et chaque partie de l’image numérisée. Traitez ensuite
la fonctionnalité comme un filtre. Ainsi, une couche convolutive reçoit plusieurs images en entrée et
calcule la convolution de chaque image avec chaque filtre. Les filtres correspondent exactement aux
caractéristiques que vous souhaitez retrouver dans l’image. Nous obtenons une carte d’activation ou de
fonctionnalité pour chaque paire (image, filtre), qui nous indique où se trouve l’élément dans l’image
: plus la valeur est élevée, plus l’emplacement correspondant dans l’image ressemble à cet élément.

4.2.2 Couche de correction (ReLU)


Unité linéaire rectifiée (ReLU) pour un entraı̂nement plus rapide et plus efficace En mappant les valeurs
négatives sur zéro et en conservant les valeurs positives. Cette opération est parfois appelée activation
car seules les entités activées sont transférées vers la couche suivante.

4.2.3 Couche de pooling


Les couches de regroupement permettent de simplifier la sortie en effectuant un sous-échantillonnage
non linéaire, réduisant ainsi le nombre de paramétres que le réseau doit apprendre. Par conséquent,
pour réduire les paramétres et le calcul dans le réseau, la taille de la représentation peut être pro-
gressivement réduite, de sorte que le surajustement peut également être contrôlé. L’opération de
regroupement crée toujours une forme d’invariance de translation. De plus, il existe plusieurs types
de mise en commun, la mise en commun MAX étant la forme la plus courante. La valeur de sortie la
plus courante est la valeur d’entrée maximale, comme le montre la figure
Sinon, d’autres fonctions de regroupement autres que max peuvent être utilisées. La ”mise en
commun AVG” peut être utilisée, où la sortie est la moyenne des valeurs d’entrée, comme illustré à la
Figure

7
Figure 9: Max-Pooling avec un filtre 2x2 et un pas de 2.

Figure 10: Average-Pooling avec un filtre 2x2 et un pas de 2.

4.3 Exemple réel de modelde CNN célébres


4.3.1 LeNet(1998)
Première application réussie des réseaux convolutifs développés La plus connue d’entre elles est l’architecture
LeNet [LeCun, 1998], qui servait à lire les codes postaux, les numéros, etc.

Figure 11: Architecture de LeNet(1998)

8
4.3.2 AlexNet(2012)
AlexNet [Krizhevsky, 2012] a été le premier ouvrage à populariser les réseaux convolutifs en vision par
ordinateur, développés par Alex Krizhevsky avec Sutskever et GeoffHinton. L’architecture de ce réseau
est trés similaire à LeNet, mais plus grande et plus profonde, avec des couches convolutives empiplées
les unes sur les autres (auparavant, il n’y avait généralement qu’une seule couche convolutive suivie
d’une couche de regroupement).

Figure 12: Architecture d’AlexNet.

4.3.3 ZFNet(2013)
Les finalistes ILSVRC 2013 sont également Matthew Zeiler et Rob’s Convolutional Networks Fergus.
Il s’appelle ZFNet (abr´eviation de Zeiler et Fergus Net) [Russa kovsky, 2015]. C’est une amélioration
sur AlexNet en améliorant les hyperparamétres de l’architecture, notamment en agrandissant la taille
des couches convolutives et en réduisant la taille du noyau sur la couche initiale.

Figure 13: Architecture de ZFNet.

4.3.4 VGGNet (2014)


Le gagnant de l’ILSVRC2014 est appelé VGGNet par la communauté [Zhang, 2016] Développé par
Simonyan et Zisserman. Composé de 16 couches convolutives, VGGNet est attrayant en raison de son
architecture hautement unifiée. Semblable ‘a AlexNet, seulement des convolutions 3x3,

Figure 14: Architecture de GoogleNet.

9
mais avec de nombreux filtres. Aujourd’hui, c’est le premier choix de la communauté pour extraire
des images. La configuration de poids VGGNet est accessible au public et a été utilisée comme
extracteur de fonctionnalités de base dans plusieurs autres applications et défis. Cependant, VGGNet
contient 138 millions de paramètres, ce qui peut être un peu ingérable. VGG utilise de grandes tailles
d’entités dans plusieurs couches, de sorte que l’inférence est très coûteuse lors de l’exécution. La
réduction du nombre de fonctions dans le goulot d’étranglement permettra d’économiser des coûts de
calcul.

Figure 15: Architecture de VGGNet.

4.3.5 ResNet(2015)
Enfin, ‘a ILSVRC 2015, le r eseau r esiduel d evelopp e par Kaiming He et al. est le gagnant [Zhang,
2016]. Il introduit une nouvelle architecture avec des ”connexions ignor ees” et une utilisation intensive
de la normalisation par lots. Il utilise egalement la mise en commun globale AVG au lieu de PMC ‘a
la fin.

Figure 16: Architecture de ResNet.

10
4.4 Problèmatique et solution proposée
La voiture est le mode de transport dominant sur les routes, mais malheureusement, les accidents de
la route demeurent la principale cause de décès dans de nombreux pays. Dans les voitures ordinaires,
le conducteur peut oublier les panneaux de signalisation ou ne pas les voir dans le brouillard, et dans
ce cas, des accidents se produisent. D’après les données de l’OMS, les accidents de la route sont
responsables du déc‘es d’environ 1,3 million de personnes chaque année dans le monde, et entraı̂nent
entre 25 et 50 millions de blessés. Il est important de noter que les accidents de la route constituent la
principale cause de décès chez les jeunes âgés de 15 à 29 ans [5]. Ces accidents sont le résultat d’erreurs
de conduite et de l’évolution du nombre de morts sur les routes tunisiennes depuis un an 2004.

Figure 17: Mortalité routière annuelle en Tunisie.

Les panneaux de signalisation routières sont très importantes pour avertir et guider l’usager afin
d’assurer sa sécurité et celle du réseau routier. Pour réduire le nombre de décès et les problèmes
d’accidents de la route, nous avons proposé ce projet sur une voiture autonome permettant de détecter
et reconnaı̂tre les panneaux de signalisations routières afin assurer la sécurité des utilisateurs.

5 conclusion
Dans ce chapitre l’intelligence artificielle et on a donné une vision générale sur les méthodes ou ap-
proches de la classification supervisées et non supervisées. Dans ce chapitre on a présenté aussi les
réseaux de neurones convolutifs et quelques diff´erents type de couche (couche convolutif,ReLu,couche
de pooling et FC) . Dans le chapitre suivant, nous allons détailler la conception des panneaux de
signalisation et la base de données.

6 Introduction
nous allons préciser dans ce chapitre une description détaillée de notre système proposé pour la
détection et la reconnaissance des panneaux routiers.nous présentons une vue générale de notre base de
données et les architectures de l’entrainement. Dans le dernier partie nous allons décrir les plateformes
et les bibliothéques nécessaires.

7 Panneaux de signalisation routèire


La détection des panneaux de signalisation a attiré l’attention des chercheurs ces dernières années en
raison de sa nature difficile en tant que problème de vision par ordinateur. Par conséquent, divers
systèmes de marquage routier sont utilisés dans le monde. Ces régimes reposent sur des principes
généraux et poursuivent les mêmes objectifs. Cela se traduit par une norme internationale. Il existe
des différences spécifiques à chaque pays dans le système. Cependant, ils ne sont pas basiques dans le
sens où les formes et couleurs de base utilisées sont les mêmes.

11
8 Propriétés des panneaux de signalisation routière
La conception des panneaux de signalisation routière est principalement distinct des milieux naturels
et/ou artificiels. Plusieurs de leurs caractéristiques les rendent reconnaissables à leur environnement.
Conception, fabrication, pose de panneaux de signalisation Selon une réglementation stricte. Ils sont
con¸cus comme des formes bidimensionnelles fixes telles que des triangles, des cercles, des octogones
ou des rectangles. Les couleurs des panneaux sont choisies pour se d´emarquer de l’environnement,
ce qui les rend facilement reconnaissables par les conducteurs. L’information sur le panneau routier
n’a qu’une seule couleur, le reste du panneau est en Une autre couleur pour recouvrir les panneaux et
la teinte de la peinture doivent correspondre à une longueur d’ondes pécifique dans le spectre visible.
Ces panneaux sont situés dans des positions bien définies par rapport à la route, de sorte que les
conducteurs peuvent plus ou moins anticiper l’emplacement de ces panneaux. Ils peuvent contenir des
pictogrammes, des chaı̂nes ou les deux. Le logo se caractérise par l’utilisation d’une police de caractères
et d’une hauteur de caractère fixes. Ils peuvent apparaı̂tre dans une variété de situations, y compris
partiellement déformés, flous, endommagés et regroupés en plusieurs signes. Ils ont un impact direct
sur la vie quotidienne, que ce soit en tant que conducteurs, cyclistes ou piétons, car leur ignorance
peut facilement constituer une menace pour leur vie. En général, les panneaux ont trois propriétés ;
premièrement, ils sont Indiqué par des couleurs telles que le vert, le rouge et le bleu. deuxièmement, ils
viennent poses spécifiques à la forme telles que l’octogone, le triangle, le cercle, l’octogone, Le contenu
intérieur des panneaux de signalisation tels que les carrés représente un troisième attribut, Cela peut
varier en fonction de l’application de la signalisation routière [Vitabile, 2002]. La figure montre les
différentes catégories de panneaux de signalisation en fonction de leurs informations de couleur et de
forme.

9 Les méthodes de détection des panneaux


La recherche sur la reconnaissance et la cognition des panneaux de signalisation s’est développée
rapidement au cours de la dernière décennie. Les méthodes de détection de trafic susmentionnées
peuvent être regroupées en trois catégories principales :
• Une méthode basée sur la couleur.
• Méthode basée sur les formulaires.
• Une méthode basée sur les fenêtres coulissantes.
Les méthodes basées sur la couleur sont couramment utilisées car les panneaux de signalisation sont
généralement jaunes, rouges et bleus. Etant donné que ces méthodes sont sensibles aux changements
de lumière, plusieurs espaces colorimétriques sont souvent utilisés,

Figure 18: panneaux de signalisation

tels que RVB normalisé [Escalera, 1997] et HSI [Escalera, 2003]. Les méthodes basées sur la forme
utilisent des formes de panneaux de signalisation telles que des carrés, des cercles et des triangles
pour détecter les panneaux de signalisation qui sont plus robustes aux changements d’éclairage. La
transformée de Hough est souvent utilisée pour reconnaı̂tre les panneaux de signalisation tels que
les cercles et les triangles [Garcia-Garrido2005]. Cependant, ces méthodes sont très chronophages.

12
Motivé par cela, un détecteur à symétrie radiale a été proposé dans [Loy,2004] pour réduire le temps
de traitement. Cependant, les environnements encombrés sont souvent sensibles au bruit et certains
panneaux de signalisation peuvent être obscurcis et difficiles à détecter. Tirant parti des méthodes
ci-dessus, certaines méthodes de fusion de caractéristiques combinent des couleurs et des formes pour
reconnaı̂tre les panneaux de signalisation [Zhou, 2016]. Malheureusement, toutes les méthodes ci-dessus
peuvent manquer des panneaux de signalisation pour diverses raisons. Pour résoudre ce problème, une
méthode basée sur Des fenêtres coulissantes utilisant HOG [Creusen, 2010] et Viola-Jones [Bar´o
2009] ont été proposées pour de bons résultats dans la reconnaissance des panneaux de signalisation.
Ces méthodes examinent des régions de l’image entière, résultant en un grand nombre de candidats.
De la reconnaissance de caractères et des exigences de reconnaissance Signalisation en temps réel, ces
méthodes sont peu pratiques. Il existe plusieurs méthodes courantes de reconnaissance des panneaux de
signalisation qui utilisent différents classificateurs, tels que : que le plus proche voisin [Escalera1997],
la forêt aléatoire, le réseau de neurones [Garcia-Garrido, 2006] [Cires an, 2012], CNN [Sun, 2014],
support vector machine [ Maldonado -Bascon, 2007] etc. A cet égard, nous avons proposé un système
d’aide à la décision utilisant une nouvelle technique d’intelligence artificielle appelée Deep Learning.

10 Préparation de la base de données


Dans notre système de détection et de reconnaissance des panneaux de signalisation, les données
d’apprentissage sont généralement réparties en trois catégories : L’ensemble d’apprentissage est com-
posé des images utilisées pour créer le modèle d’apprentissage. L’ensemble de test est constitué
des images sur lesquelles le modèle d’apprentissage est appliqué pour tester et corriger l’algorithme.
L’ensemble de validation est une sous-population de l’ensemble d’apprentissage qui peut être utilisée
pendant l’apprentissage pour valider le modèle et éviter le sur apprentissage. La base de données
de panneaux de signalisation allemande (GTSRB) utilisée dans ce projet est divisée en ensembles
d’entraı̂nement, de test et de validation. Le modèle de réseau conventionnel sera utilisé pour clas-
sifier les panneaux de signalisation en se basant sur ces ensembles de données. Ces images ont les
caractéristiques suivantes:
• Les images sont 20 (largeur) x 20 (hauteur) x 3 (canaux couleur RVB).
• L’ensemble des données d’apprentissage (training) est composé de 4193 images.
• L’ensemble des données de validation est composé de 4410 images.
• L’ensemble des données de tests est composé de 1797 images
Train : Chaque classe d’images de panneaux de signalisation routière, telle que ”STOP”, ”limite
de vitesse 20 km/h”, ”entrée interdite”, comprend un nombre aléatoire d’images différentes à en
traı̂ner. Ces images peuvent varier en termes de distance, d’éclairage, de conditions météorologiques,
d’obstructions partielles et de rotations.

Figure 19: Base de données (Train).

Test: Des données utilisées pour fournir une évaluation impartiale d’un modèle d’ajustement final
pour l’ensemble de données d’apprentissage, il compose 12631 images de classe différente de panneau
de signalisation pour tester l’entrainement

13
Figure 20: Base de données (Test).

11 La phase d’apprentissage du modèle


Pour réaliser la reconnaissance des panneaux de signalisation, le système passe par plusieurs étapes
avant d’atteindre l’étape de reconnaissance.

11.1 La base de données ou Dataset


Un ensemble de données tabulaires est composé d’une ou plusieurs tables de base de données. Chaque
colonne représente une variable spécifique et chaque ligne correspond à un enregistrement. Les données
répertorient les valeurs de chaque variable, par exemple la taille et le poids d’un objet pour chaque
élément de l’ensemble de données.Les valeurs connues sont appelées données. Les ensembles de données
peuvent inclure des documents ou des fichiers.une base de données à grande échelle et sans contraintes
collectée automatiquement via l’API de recherche d’images de Google.

11.2 Traitement de données


Le prétraitement des données est essentiel dans l’apprentissage profond car la qualité des données et
les informations qu’elles contiennent impactent directement la capacité du modèle à apprendre. Ainsi,
il est crucial de prétraiter les donn´ees avant de les utiliser dans notre modéle.
Dans ce projet, nous avons appliqué les processus de traitement suivants :
* Normalisation : les données ont été ajustées pour se situer dans une plage de 0 ‘a 1.
*Séparation des images en ensembles d’apprentissage et de validation.

11.3 Apprentissage du réseau de neurones convolutionnel


Pour chaque tâche exécutée par un réseau de neurones convolutionnels (CNN), il est nécessaire de
régler certains paramètres spécifiques à cette tâche.
* Les itérations (Epochs):
Les époques (ou epochs) représentent le nombre de fois où toutes les données d’apprentissage sont
utilisées par le réseau neuronal pendant le processus d’entrainement. Il est généralement recommandé
d’augmenter le nombre d’époques jusqu’à ce que l’exactitude mesurée sur les données de validation
commence à diminuer, même si l’exactitude sur les données d’apprentissage continue d’augmenter.
Cette approche est importante pour éviter le surapprentissage du modèle.
* Taille du lot(batch size):
Les données d’apprentissage peuvent être divisées en mini-lots pour être transmises au réseau.
Le batch-size est généralement utilisé pour déterminer la taille de ces mini-lots lors d’une itération
d’entraı̂nement, afin de mettre à jour les gradients. La taille optimale du batch-size dépend de divers
facteurs, notamment la capacité mémoire de l’ordinateur utilisé pour effectuer les calculs.

14
12 Les architectures de l’entrainement
12.1 introduction
Dans l’état de l’art, beaucoup d’architectures en Deep learning pour la reconnaissance des panneaux
de signalisation ont été proposées. Afin de sélectionner l’architecture la plus performante, nous avons
d´ecrit les performances de trois architectures les plus utilis´ee dans l’´etat de l’art.

12.2 L’Architecture DCNN


Il s’agit d’un réseau neuronal convolutif profond (DCNN) basé sur le travail de Gaurav Sharma[22]
réalisé sur la plate-forme Kaggle. Cette architecture comprend six couches de convolution, trois couches
de pooling avec une taille de (2,2) et deux couches entièrement connectées.

Figure 21: Présentation d’architecture DCNN.

12.3 l’architecture CNN


Le réseau neuronal convolutif (CNN), illustré par la figure , est un type spécial de réseau neuronal utilisé
pour traiter des données avec topologie maillée. Des expériences ont montré qu’ils sont très efficace
dans des domaines tels que la reconnaissance et la classification d’images vidéo. Les CNN ont identifié
avec succès des visages, des objets, des panneaux de signalisation et Voitures autonomes. En DL, les
réseaux convolutionnels est un réseau de neurones nutritionnels inspiré des processus biologiques. Un
réseau de neurones est un système composé de neurones, généralement répartis en plusieurs couches
connectées entre elles. Un réseau de neurones estconstruit en empilant les couches : la sortie d’une
couche correspond ‘a l’entrée de la suivante. Un CNN est principalement compose par
— Une couche de convolution
— Unité linéaire rectifiée
— La couche (La couhe Rectified Linear Unit)
— Une couche Pooling
— Une couche entièrement connectée

Figure 22: Architecture CNN.

15
12.4 L’architecture de VGG 16
Un réseau neuronal convolutif, également appelé ConvNet, est un type de réseau neuronal artificiel.
Il se compose d’une couche d’entrée, d’une couche de sortie et de plusieurs couches cachées. VGG16
est un exemple de CNN (Convolutional Neural Network) et est considéré comme l’un des meilleurs
modèles en vision par ordinateur jusqu’à présent. Ses créateurs ont amélioré la profondeur du réseau en
utilisant une architecture avec de petits filtres de convolution (3 × 3), ce qui a entraı̂né une amélioration
significative par rapport aux approches antérieures. Ils ont augmenté la profondeur à 16-19 couches de
poids, ce qui représente environ 138 paramètres entraı̂nables. VGG16 est un algorithme de détection
et de classification d’objets qui atteint une précision de 92,7 % en classifiant 1 000 images réparties en
1 000 catégories différentes. Il est largement reconnu et utilisé comme l’un des choix privilégiés pour la
classification d’images, notamment grâce à sa facilité d’utilisation avec l’apprentissage par transfert.

Figure 23: Architecture de VGG 16.

12.5 Tableau de comparaison


Afin de choisir l’architecture adéquate pour développer notre système,il sera de comparer les perfor-
mances des différentes architecture les plus utilisées.

architecture param etre nombre de epochs pr ecision de la validation


CNN 50 0.56
VGG16 70 0.48
DCNN 50 0.90

L’architecture DCNN a donné la valeur de précision la plus grande (90%). Par conséquent, nous
avons maintenu cette architecture pour l’impl´ementer dans notre système de détection des panneaux
de signalisation,on retrouve les résultats (Accuracy et Loss) sont présentés ci-dessous

16
Figure 24: Résultat Loss et Accuracy de PYNQ-Z1.

Le réseau doit régler plusieurs hyper paramètres, notamment le nombre d’Epochs, le nombre
d’échantillons qui seront propagés sur le réseau (Batch-size), le taux d’apprentissage (learning rate)

epoch 50 50 70 100
batch size 16 32 32 32
rate 0.001 0.0001 0.0001 0.0001
validation accuracy 0.40 0.80 0.38 0.50

13 Les plateformes
Après une recherche approfondie, j’ai identifiè deux plateformes matérielles largement utilisées dans le
domaine de l’apprentissage profond et disponibles sur le Cloud. Ces plateformes sont :
*Google Colab
*Kaggle
Ces deux plateformes sont développées par Google. Cependant, nous avons décidé d’utiliser la
plateforme Kaggle pour l’apprentissage de notre architecture, car notre base de données est déjà
hébergée sur cette plateforme

13.1 La plateforme Kaggle


Kaggle, une filiale de Google LLC, est une communauté en ligne regroupant des scientifiques des
données et des praticiens de l’apprentissage automatique. Kaggle permet aux utilisateurs de découvrir
et de partager des ensembles de données, d’explorer et de construire des modèles dans un environnement
de science des données basé sur le Web, de collaborer avec d’autres experts en données et ingénieurs en
apprentissage automatique, et de participer à des compétitions pour résoudre des défis liés à la science
des données. L’API Kaggle offre la possibilité de créer de nouvelles versions de Notebooks sur Kaggle
en utilisant des commandes simples en ligne. Cela facilite l’exécution et le partage du code sur Kaggle,
faisant ainsi partie intégrante des flux de travail.

13.2 Google Colab


Il s’agit d’une plateforme à distance développée par Google, qui fonctionne sur un systéme d’exploitation
Linux et dispose de cartes graphiques pouvant être utilisées gratuitement pendant une période quotidi-
enne déterminée. Cette plateforme nous permet d’écrire et d’exécuter des cellules de code en Python,
sans avoir besoin d’utiliser les ressources de notre propre appareil. L’avantage de ces cellules est qu’elles
permettent d’exécuter des parties de code individuellement, ce qui rend le code plus organisé et facilite
la détection des erreurs.

17
13.3 Yolov4
YOLOv4, la quatrième itération de l’approche YOLO (You Only Look Once), a été introduite en 2015
comme l’un des modèles pionniers pour la détection d’objets en temps réel. Son objectif principal est
une exécution plus rapide tout en conservant une précision comparable aux modèles à deux passes.
Cependant, contrairement à ce à quoi on pourrait s’attendre en fonction de ses performances,
YOLOv4 n’a pas une architecture complètement nouvelle ou révolutionnaire par rapport aux autres
méthodes de pointe. Au lieu de cela, la construction de YOLOv4 peut être considérée comme une
optimisation des principes de ses prédécesseurs, incorporant une pléthore de nouvelles technologies.
YOLOv4 a mis en œuvre un nombre important d’avancées, de techniques et d’architectures issues de
recherches scientifiques récentes tout en éliminant celles qui sont coûteuses en calcul. La combinaison
de ces techniques complémentaires a été soigneusement sélectionnée et intégrée dans l’architecture
YOLO, résultant en YOLOv4.

14 Les bibliothèques nécessaires


Dans cette partie, nous décrivons les bibliothèques utilisées à la fois pour la phase d’apprentissage, et
pour la phase de détection.

14.1 Bibliothèques pour la phase d’apprentissage


Kaggle propose toutes les bibliothèques nécessaires pour les algorithmes d’apprentissage profond.
Cependant, dans la section suivante, nous détaillerons l’ensemble des bibliothèques et des modules req-
uis pour implémenter l’architecture d’apprentissage profond que nous avons choisie pour notre système.
Les modules mentionnés sont développés en utilisant le langage Python, largement reconnu comme le
plus convivial pour les développeurs dans le domaine de l’apprentissage automatique. Python offre un
vaste ensemble de bibliothèques riches et intéressantes pour faciliter le développement d’applications
d’apprentissage automatique.

Figure 25: Les bibliothèques nécessaires pour l’apprentissage.

14.1.1 Le module Tensorflow


TensorFlow est une bibliothèque majeure pour l’apprentissage automatique et l’apprentissage profond
en Python, considérée comme l’une des meilleures disponibles. Développée par Google, TensorFlow
offre une facilité de construction de modèles d’apprentissage automatique, adaptée tant aux débutants
qu’aux professionnels. TensorFlow permet de créer et d’entraı̂ner des modèles d’apprentissage automa-
tique non seulement sur des ordinateurs, mais également sur des appareils et des serveurs mobiles en
utilisant TensorFlow Lite et TensorFlow Serving. Ces outils offrent les mêmes avantages que Tensor-
Flow, mais sont spécialement con¸cus pour les plateformes mobiles et les serveurs haute performance.

18
14.1.2 Le module keras
Keras est une bibliothèque open-source très populaire pour les réseaux neuronaux en Python. Elle a
été rapidement intégrée à la bibliothèque principale de TensorFlow, ce qui la rend accessible en tant
que surcouche de TensorFlow. Keras offre de nombreux éléments de construction et outils nécessaires
à la création d’un réseau neuronal, tels que :
*Couches neurales
*Fonctions d’activation
*Normalisation des lots (batch normalization): La normalisation par lots est une méthode utilisée
pour rendre les réseaux neuronaux artificiels plus rapides et plus stables par la normalisation de la
couche d’entrée en recentrant et en redimensionnant. Il a été proposé par Sergey Ioffe et Christian
Szegedy en 2015
*Décrocheur (dropout)
*Mise en commun

14.1.3 Le module Pandas


Pandas est une bibliothèque de manipulation de données de haut niveau développée par Wes McK-
inney. Elle repose sur le package Numpy et utilise principalement une structure de données appelée
DataFrame. Les DataFrames permettent de stocker et de manipuler des données dans des tableaux de
maninère efficace.

14.1.4 Le module Numpy


Numpy est une bibliothèque Python axée sur les opérations de calcul dans les tableaux multidimen-
sionnels. Elle propose également diverses fonctions pour les tableaux, des méthodes d’indexation, et
bien d’autres fonctionnalités.

15 Solutions d’implémentation
15.1 Les microprocesseurs
Le microprocesseur, également connu sous le nom de processeur ou CPU, est la composante centrale
d’un ordinateur qui gère l’exécution des instructions informatiques. Depuis les années 1970, les progrès
technologiques et la miniaturisation des composants ont considérablement amélioré la vitesse de fonc-
tionnement et la fiabilité des microprocesseurs. Au début, les processeurs étaient capables d’exécuter
des dizaines de milliers d’instructions par seconde, tandis qu’aujourd’hui, ils peuvent traiter plus de
10 milliards d’instructions par seconde. De plus, ces avancées technologiques ont permis de réduire la
taille des processeurs à quelques millimètres, ce qui facilite leur intégration dans de nombreux objets
du quotidien. Applications modernes, infrastructure moderne. Alors que les organisations exploitent
de plus en plus les charges de travail de nouvelle génération telles que l’intelligence artificielle, de
nouveaux composants sont introduits dans les centres de données. Parallèlement aux processeurs tra-
ditionnels de plus en plus puissants, des accélérateurs spécialisés prennent en charge une partie du
calcul et fournissent des résultats plus rapidement.

15.2 GPU
Le GPU (Graphics Processing Unit), ou unité de traitement graphique en français, est une puce
informatique intégrée dans une carte graphique. Son objectif principal est d’optimiser le rendu des
images, la visualisation 2D et 3D, ainsi que la vidéo. Initialement conçus pour les tâches de rendu
graphique dans les jeux vidéo, les applications de conception et même la réalité virtuelle, les GPU
ont également attiré l’attention des experts en apprentissage automatique en raison de leurs capacités
de calcul parallèle. Un processeur traite une tâche à la fois de manière séquentielle, tandis qu’un
GPU exécute plusieurs processus simultanément. Ceci est particulièrement efficace pour les tâches
répétitives telles que la phase d’apprentissage de l’IA.

19
15.3 Les fpga
Les FPGA, ou réseaux logiques programmables en français, et Field Programmable Array en anglais,
sont des circuits qui peuvent être programmés à volonté. A leurs débuts, ils ont évolué à partir des
circuits PLD (Programmable Logic Devices) qui permettaient leur reprogrammation. Les FPGA sont
composés de blocs logiques programmables entourés de blocs d’entrée/sortie programmables. Ces
blocs sont interconnectés par un dispositif d’interconnexion. Les FPGA sont une autre option majeure
d’accélération matérielle. Ce sont des circuits constitués de cellules qui, contrairement aux CPU, peu-
vent être reprogrammées après fabrication. De cette manière, l’utilisateur peut attribuer différentes
fonctions aux cellules et redéfinir leurs interconnexions. Meilleure personnalisation pour les applica-
tions exécutées par votre organisation. Les FPGA ont aussi la particularité de pouvoir communiquer
entre eux sans passer par un processeur. Ils offrent donc une latence très faible. Ceci est partic-
ulièrement apprécié dans l’industrie automobile, comme les voitures autonomes, aussi les FPGA peu-
vent être adaptés ‘a votre application, ils peuvent également être très économes en énergie. Lorsqu’un
processeur doit exécuter des milliers d’instructions, un FPGA peut effectuer la même fonction en
quelques cycles seulement, consommant ainsi moins d’énergie. Afin d’améliorer les performances de
conception matérielle et de simplifier la programmation des FPGA, les concepteurs ont développé la
carte PYNQ, qui repose sur l’utilisation de Jupyter Notebooks.

16 conclusion
Dans ce chapitre nous avons présenté les panneaux de signalisation et nous avons fait une description
da la base de données plus détailler.De plus, nous avons également discuté des plateformes et des
bibliothèques nécessaires pour la mise en œuvre du système. Dans le chapitre suivant,

17 Introduction
Ce chapitre présente la déploiment de la carte respberry Pi4 et la carte pynq tel que nous allons décrire
la configuration de chaque carte.

18 Conception de l’interface matérielle


18.1 Raspberry PI
Le Raspberry Pi est décrit comme ”un nano ordinateur de la taille d’une carte de crédit qui peut être
connecté à un écran et utilisé comme un ordinateur standard”[6]. Bien qu’il ne puisse pas atteindre des
performances exceptionnelles en raison de sa petite taille, il est amplement suffisant pour effectuer des
tâches telles que la création de projets en ligne à partager avec le client ou l’apprentissage de Linux.

Figure 26: La carte Respberry Pi4.

carte Raspberry Pi 4 peut être utilisée dans diverses applications grâce au nombre important
des broches.Elle présente 40 broches dont 26 sont des broches GPIO et les autres sont des broches

20
d’alimentation ou de masse. Les différentes broches sont illustrées dans la figure

Figure 27: Les broches de la carte Raspberry pi4.

18.2 Constituant de la carte Raspberry PI


Le Raspberry Pi est équipé d’un processeur ARM qui permet l’exécution de différents systèmes
d’exploitation tels que Linux, Windows 10 IoT et GNU, ainsi que des logiciels compatibles [7]. Grâce à
son circuit Broadcom Video Core VI, il est capable de diffuser des vidéos en haute définition, prenant
en charge le décodage des flux vidéo 4K H.265 et 1080p H.264. De plus, il peut effectuer des tâches
courantes d’un PC bureautique telles que le traitement de texte, les jeux et les feuilles de calcul.
Cette nouvelle version du Raspberry Pi prend également en charge la résolution 4K via ses sorties
micro-HDMI.

Figure 28: Architecture de la carte Raspberry Pi4.

21
18.3 Caractéristiques de la carte Raspberry pi4
Les caractéristiques de la carte Raspberry Pi 4 sont présentées dans le tableau ci-dessous [8] :

Alimentation •5V DC via un en-tête GPIO (minimum 3A) . compatible Power over
Ethernet (PoE) (nécessite un HAT pour PoE) 5V DC via un connecteur
USB-C (minimum 3A),
Processeur •quad-core Cortex-A72 (ARM v8) 64-bit SoC à 1.5GHz Broadcom
BCM2711,
RAM •8 Go LPDDR4
stockage •Lecteur de carte micro-SD
GPU • VideoCore VI prenant en charge OpenGL ES 3.0, • décodage HEVC
4K à 60 i/s
Connexion sans fil • Wi-Fi 802.11b/g/n/ac • Bluetooth 5.0, 0
Connexion filaire •Gigabit Ethernet (RJ45) Audio AV 3.5 mm Ports • 1 x USB-C (ali-
mentation seulement) • 2 x USB 2.0 2 x USB 3.0 • 1 x GPIO 40 pin
1 x port quadripôle
audio •Vidéo composite • 2 x micro-HDMI
ports • 1 x USB-C (alimentation seulement) •2 x USB 2.0 •2 x USB 3.0 •
1 x GPIO 40 pin • 1 x port quadripôle Audio •Vidéo composite • 2 x
micro-HDMI

18.3.1 Avantages de la carte Raspberry PI


La carte Raspberry PI est de plus en plus utilisée chez les programmeurs en raison de ses avantages
[9]:
• Systèmes d’exploitation (OS) multiples et gratuits
• autonomie pour le développement.
• La Raspberry pi4 8GB est la plus puissante des pis.
• permettre de gagner du temps et préserver la SD Card.
• Cout raisonnable : 150 Dinars.
• Un très grand nombre d’utilisateurs développent et partagent sur Raspberry PI.

19 Procédure d’installation du système d’exploitation


la carte Raspberry Pi soit compatible avec de nombreux systèmes d’exploitation, le plus pertinent
d’entre eux est le Raspberry Pi OS.

19.1 Raspberry Pi OS
Raspberry Pi OS, anciennement connu sous le nom de Raspbian, est un système d’exploitation li-
bre et gratuit basé sur Debian. Il est officiellement pris en charge par la Fondation Raspberry Pi
et est spécialement optimisé pour une utilisation avec les cartes Raspberry Pi. L’interface utilisa-
teur graphique PIXEL (Pi Improved X-Window Environment, Light weight) rend Raspberry Pi OS
particulièrement convivial, ce qui en fait un excellent choix pour les débutants.

19.2 Etapes d’installation du Raspberry Pi OS


La Fondation Raspberry Pi a créé un outil permettant de télécharger et d’installer facilement l’image
du système sur la carte microSD de destination en quelques étapes simples. Pour télécharger Raspbian,
on a cliqué sur ce lien Raspberry Pi OS
Une fois que vous avez installé PI Imager sur votre ordinateur, vous devez le lancer et cliquer sur
”CHOOSE OS” pour sélectionner le système que vous souhaitez installer. Ensuite, vous pouvez cliquer

22
Figure 29: Installation OS.

sur ”Use custom” pour choisir la version que vous avez téléchargée, comme illustré dans les figures
ci-dessous.

Figure 30: Télécharger la version.

Pour activer le bouton ”CHOOSE SD CARD”, vous devez insérer la carte micro-SD dans le lecteur
de votre ordinateur. Cela permettra à l’outil de reconnaissance de la carte et d’indiquer la destination
de la copie.

Figure 31: Insération de la carte SD.

Ensuite, vous pouvez lancer le processus d’écriture des fichiers en cliquant sur le bouton ”WRITE”,
comme illustré dans les figures ci-dessous.

23
Figure 32: Installation terminé

20 la carte PYNQ
PYNQ est un projet open source développé par Xilinx qui simplifie l’utilisation de la plateforme
Xilinx. En utilisant le langage et les bibliothèques Python, les concepteurs peuvent tirer parti de la
logique programmable et des microprocesseurs pour créer des systèmes électroniques meilleurs et plus
excitants. PYNQ-Z1 est une plate-forme matérielle pour le framework open source PYNQ. Le logiciel
exécuté sur le processeur ARM A9 comprend :
• Serveur Web pour héberger l’environnement de conception
• Jupyter Notebook
• Noyau et packages IPython
• Linux

Figure 33: Les logicielles exécute sur pynq

Il convient de noter que PYNQ ne peut pas étre pragrammer directement le FPGA via le langage
Python. L’auteur pense que beaucoup de gens penseront que PYNQ peut programmer directement le
FPGA pour obtenir une accélération matérielle lorsqu’ils entendront parler de PYNQ pour la première
fois. En fait, sous le framework PYNQ, il est impossible de programmer FPGA via Python pour rem-
placer la méthode de programmation RTL traditionnelle. Le framework PYNQ fournit une interface
Python permettant aux développeurs de logiciels d’accéder aux ressources FPGA. Les développeurs
Python peuvent ignorer ces détails d’implémentation. Ils peuvent facilement accéder au FPGA via
Python, charger dynamiquement diverses applications FPGA précompilées, telles que des fonctions
d’appel. Invoquez diverses applications accélérées par FPGA ou accédez à des périphériques connectés
au FPFA. Permet aux ingénieurs logiciels de profiter facilement des nombreux avantages du calcul par-
allèle FPGA et Lorsque vous y êtes invité, le nom d’utilisateur est xilinx et le mot de passe est xilinx
Lorsque vous y êtes invité, le nom d’utilisateur est xilinx et le mot de passe est xilinx de la configu-
ration flexible En ce qui concerne diverses applications FPGA, les ingénieurs matériels professionnels
doivent toujours utiliser les outils Vivado pour le développement. Cette base de développement basée
sur Zynq XC7Z020 embarque un puissant processeur ARM cortex-A9 dual-core cadencé à 650 Mz, un

24
FPGA de la série Artix-7, 512 Mo DDR3, Gigabit Ethernet, port USB (OTG), USB JTAG, 2 ports
HDMI (in/out), un connecteur pour carte mémoire MicroSD, une sortie audio, 2 switchs, 2 boutons, 6
LED (dont 2 RGB), 2 connecteurs pour modules Pmod et le connecteur femelle/format chipKIT dans
le Shield Arduino

Figure 34: Les composants de la carte pynq z1

La carte PYNQ-Z1 est une plateforme polyvalente et programmable con¸cue pour les systèmes
embarqués. Avec sa multitude de ports d’extension intégrés, elle offre de nombreuses possibilités
d’application, notamment dans les domaines suivants :
-Vision par ordinateur
- Contrôle industriel
- Internet des objets (IoT)
- Des drones
- Cryptage
- Traitement en temps réel ...

Figure 35: Plateforme de pynq-z1.

La carte PYNQ-Z1 offre la possibilité d’étendre les périphériques USB tels que le WiFi, le Blue-
tooth et les webcams. PYNQ peut être utilisé avec différentes plateformes telles que Zynq, Zynq
UltraScale+, Zynq RFSoC, les cartes accélératrices Alveo et AWS-F1 pour cr´eer des applications à
haute performance.
• exécution matérielle parallèle
• traitement vidéo à fréquence d’images élevée
• algorithmes accélérés par le matériel
• traitement du signal en temps réel
• E/S à bande passante élevée
• contrôle à faible latence

25
21 Configuration du PYNQ Z1
la carte mérite la matérieles suivant pour l’utilisation :
• Carte PYNQ Z1
• Ordinateur avec navigateur compatible
• Câble Ethernet
• Câble micro-USB
• Carte micro SD avec image pré chargé

21.1 Configuration de la carte SD


Etape1 : en accédez au lien nous avons téléchargé l’image.zip
Etape2 :pour transférer l’image vers la carte SD nous avons téléchargé l’application win32 diskl-
mager
Etape3 :A présent, ouvrons l’application Win32 Disk Imager et ajoutons le fichier image.img. ‘
Ensuite, cliquons sur le bouton ”Ecrire” une fois que l’écriture de l’image est terminée avec succés.
Insérons ensuite la carte SD dans la carte Pynq.

21.2 Méthode de configuration de la carte Pynq z1

26
Figure 36: Configuration de pynq

1. Placez le cavalier JP4/Boot sur la position SD en le pla¸cant sur les deux broches supérieures
de JP4, conformément à l’image fournie.
2.Afin d’assurer l’alimentation du PYNQ-Z1 à partir du câble micro USB, veuillez ajuster le cavalier
JP5/Power sur la position USB.(Vous avez également la possibilité d’alimenter la carte en utilisant un
régulateur d’alimentation externe de 12 V en positionnant le cavalier sur REG.)
3.Insérons la carte Micro SD contenant l’image PYNQ-Z1 dans la fente de la carte située en dessous.
4. Relions le câble USB entre votre ordinateur et le port PROG-UART/J14 Micro USB de la carte.
5.Etablissons une connexion Ethernet avec la carte. ´
6. Mettez en marche le PYNQ-Z1 et vérifiez la séquence de démarrage.
7.Conformément à l’étape 6, faites glisser l’interrupteur d’alimentation en position ON pour mettre
sous tension la carte. La LED rouge LD13 s’allumera, indiquant que la carte est alimentée. Après
quelques instants, la LED jaune/verte LD12/Done s’allumera pour signaler que l’appareil est prêt à
être utilisé.
8. Après une minute, vous remarquerez que les deux LED bleues LD4 et LD5 clignotent simul-
tanément, tandis que les quatre LED jaune/verte LD0-LD3 restent allumées en permanence. Les LED
LD4-LD5 s’allumeront et s’éteindront périodiquement, indiquant l’activité de la carte. Cela signifie
que la carte est désormais prête à être utilisée.
9. Après avoir configuré votre carte, il est nécessaire de la connecter au réseau en utilisant un port
Ethernet disponible sur votre ordinateur. Effectuons cette connexion maintenant.
10. Affectons une adresse IP statique à la carte, puis connectons-la au port Ethernet de votre
ordinateur.

Figure 37: Configuration de l’adresse IP

11. Une fois que votre carte est configurée, pour accéder à Jupyter Notebook, ouvrez un navigateur
web et saisissez l’adresse suivante : pynq:9090 si votre carte est connectée à un ordinateur via une
adresse IP statique.
12.Si la carte est correctement configurée, la fenêtre s’affichera avec le mot de passe ”xilinx”.

27
13. Pour accéder à la zone d’accueil de Pynq, entrez l’adresse pynq dans la barre de navigation.
Vous verrez alors une fenêtre s’afficher avec l’adresse ”xilinx” et le mot de passe ”xilinx”. Jupyter
Notebook s’ouvre comme ci-dessous

28
Figure 38: Accéder a la zone d’accueil de pynq.

14. Maintenant nous avons téléchargé l’application PUTTY est un émulateur de terminal qui
permet des connexions directes
15. Nous avons liée la carte pynq avec le modem par le câble Ethernet une fois PuTTY ouvert,
saisissons les paramètres suivants:
entrons le numéro de port COM et les paramètres suivants:
*115200 bauds
*8 bits de données
*1 bit d’arrêt
*Pas de parité
*Pas de contrôle de flux

Figure 39: Configuration de PUTTY.

16. Une fois le terminal ouvert nous pouvons maintenant ajouter des bibliothèques à la carte.

22 bibliothèques nécessaires pour la phase de détection


nous allons classer quelques bibliothèques nécessaires pour la phase de détection et de reconnaissance
des panneaux de signalisation sur le Raspberry Pi4. Installation de tensorflow:
pip3 install tensorflow
Installation de pandas:
pip3 install pandas
Installation de keras:
pip3 install keras
Installation de opencv:
pip3 install opencv-python OpenCV (Open Source Computer Vision Library) est une bibliothèque de
fonctions de programmation principalement destinée à la vision informatique en temps réel. Développé
à l’origine par Intel.

29
23 conclution
Dans ce dernier chapitre nous avons présenter la carte respberry pi4 et la carte pynq, aussi nous avons
présenter la configuration de chaque carte.

24 conclusion général
L’objectif de notre travail était de développer un système intelligent basé sur l’apprentissage profond,
capable de détecter et de reconnaı̂tre les panneaux de signalisation routière pour une voiture autonome.
Durant la réalisation de ce projet, nous avons passé par trois chapitres :
Dans le premier chapitre de notre étude, nous avons réalisé une présentation approfondie de notre
projet. Nous avons abordé les concepts fondamentaux de l’Intelligence Artificielle et de l’apprentissage
automatique. De plus, nous avons exposé les réseaux de nérones convolutifs.
Le deuxième chapitre été consacré à la description système de détection et de reconnaissance des
panneaux de signalisation routiers et la base de données utilisé, ensuite nous avons citer quelques
architectures, les plateformes et les bibliothéques nécessaires.
Le troisième chapitre été consacré l’implémentation de notre système sur les deux cartes (Respberry
Pi4 et pynq) et aux procédures d’installations .

30

Vous aimerez peut-être aussi