Académique Documents
Professionnel Documents
Culture Documents
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 .
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.
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
Figure 3: Méthodes d’apprentissage automatique.
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].
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].
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.
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.
7
Figure 9: Max-Pooling avec un filtre 2x2 et un pas de 2.
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).
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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
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.
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
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.
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
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
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.
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.
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.
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
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
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 ...
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é
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.
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
16. Une fois le terminal ouvert nous pouvons maintenant ajouter des bibliothèques à la carte.
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