Anpr New
Anpr New
1|Page
Table de matières
Chapitre 1 : Introduction sur le Système ANPR.................................................................................5
I. Introduction....................................................................................................................................6
II. Historique du développement........................................................................................................6
III. Composants et technologie........................................................................................................7
IV. Algorithmes................................................................................................................................8
V. Matériel pour ANPR........................................................................................................................8
VI. Le fonctionnement d’une caméra ANPR......................................................................................9
VII. Système de travail de l’ANPR.......................................................................................................9
a) Détection du véhicule...............................................................................................................10
b) Capture des images..................................................................................................................11
Type de caméras.......................................................................................................................11
Type de lumière........................................................................................................................11
c) Processus de reconnaissance des plaques d’immatriculation...................................................12
VIII. Domaines d’application de l’ANPR.............................................................................................12
IX. Conclusion................................................................................................................................14
Chapitre 2 : Présentation des outils utilisés....................................................................................15
I. Introduction..................................................................................................................................16
II. Outils utilisés................................................................................................................................16
1. Analyse fonctionnelle...............................................................................................................16
2. Diagramme de preuve..............................................................................................................17
3. Diagramme de FAST.................................................................................................................18
4. Matrice Morphologique...........................................................................................................19
5. Matrice de Pugh.......................................................................................................................19
III. Conclusion................................................................................................................................19
Chapitre 3 : Etude de projet...........................................................................................................20
I. Analyse du besoin.........................................................................................................................21
II. Analyse fonctionnelle du besoin...................................................................................................22
III. Cahier des charges fonctionnel.................................................................................................24
IV. Analyse fonctionnelle technique..............................................................................................25
1. Diagramme de FAST..............................................................................................................25
2. Matrice morphologique........................................................................................................26
3.Rassemblement des concepts...................................................................................................26
4.La matrice de décision : PUGH...................................................................................................27
Chapitre 4 : Implémentation du concept de solution......................................................................31
OpenCV-Python.................................................................................................................34
2|Page
1. Environnement matériel...............................................................................................................40
2. Environnement logiciel..................................................................................................................41
II/ Les axes du projet.................................................................................................................42
Chapitre 5 : Réalisation.................................................................................................................45
I/ Configuration du logiciel...............................................................................................................46
1. Virtual Machine et configuration de la Raspberry pi.................................................................46
Conclusion.....................................................................................................................................62
3|Page
Liste des figures
4|Page
Chapitre 1 :
Introduction sur le
Système ANPR
5|Page
I. Introduction :
Le système ANPR (Automatic Number Plate Recognition) est une technologie
de reconnaissance de plaque d'immatriculation qui permet de lire et de
déchiffrer automatiquement les plaques d'immatriculation des véhicules. Cette
technologie est souvent utilisée par les forces de l'ordre et les agences de
sécurité pour surveiller et contrôler les véhicules qui circulent sur les routes et
les autoroutes.
Ce système fonctionne en utilisant des capteurs et des caméras qui prennent
des photos des plaques d'immatriculation des véhicules. Ces photos sont
ensuite traitées par un logiciel de reconnaissance de caractères qui lit les
numéros et les lettres de la plaque d'immatriculation et les envoie à une base
de données. La base de données peut être utilisée pour vérifier l'identité du
véhicule et de son propriétaire, ainsi que pour détecter les véhicules qui sont
suspect.
Il peut être utilisé de différentes manières, par exemple pour contrôler le
respect des limitations de vitesse, pour surveiller les mouvements de véhicules
suspects ou pour identifier les véhicules impliqués dans des infractions
routières. Il peut également être utilisé pour gérer le stationnement et le péage
autoroutier, ou encore pour suivre les mouvements de véhicules dans des
zones sensibles ou protégées.
Le système ANPR est considéré comme une technologie très utile pour la
sécurité routière et la lutte contre la criminalité, mais il soulève également des
questions de vie privée et de protection des données personnelles. En effet, le
système ANPR permet de suivre les déplacements des véhicules et de collecter
des informations sur leur propriétaire, ce qui peut être considéré comme une
atteinte à la vie privée. Par conséquent, il est important que les lois et les
réglementations en matière de protection des données soient strictement
respectées lorsque ce système est utilisé.
6|Page
de Dartford. La première arrestation par détection d’une voiture volée a eu lieu
en 1981.
7|Page
IV. Algorithmes :
Le logiciel a besoin de six algorithmes principaux pour identifier une plaque
d’immatriculation :
Localisation de la plaque : responsable de la recherche et de l’isolement
de la plaque sur l’image.
Orientation et dimensionnement de la plaque : compense l’inclinaison
de la plaque et ajuste les dimensions à la taille requise.
Normalisation : ajuste la luminosité et le contraste de l’image.
Segmentation des caractères : trouve les caractères individuels sur les
plaques.
Reconnaissance optique de caractères.
Analyse syntaxique/géométrique : vérifier les caractères et les positions
par rapport aux règles spécifiques à chaque pays
V. Matériel pour ANPR :
À l’avant de tout système ANPR se trouve le matériel d’imagerie qui capture
l’image des plaques d’immatriculation. La capture d’image initiale constitue une
partie cruciale du système ANPR qui déterminera souvent la performance globale.
La capture de plaques d’immatriculation est généralement effectuée par des
caméras spécialisées conçues spécifiquement pour la tâche. Les facteurs qui posent
des difficultés pour les caméras d’imagerie de plaques d’immatriculation
comprennent la vitesse des véhicules enregistrés, les conditions d’éclairage ambiant
variables, l’éblouissement des phares et les conditions environnementales difficiles.
La plupart des caméras dédiées à la capture de plaques d’immatriculation intègrent
un éclairage infrarouge afin de résoudre les problèmes d’éclairage et de réflectivité
des plaques.
De nombreux pays utilisent maintenant des plaques d’immatriculation rétro
réfléchissantes. Cela renvoie la lumière à la source et améliore ainsi le contraste de
l’image. Dans certains pays, les caractères sur la plaque ne sont pas réfléchissants,
ce qui donne un niveau élevé de contraste avec le fond réfléchissant dans toutes les
conditions d’éclairage. Une caméra qui utilise l’imagerie infrarouge active (avec un
filtre de couleur normal sur l’objectif et un illuminateur infrarouge à côté) en
bénéficie grandement car les ondes infrarouges sont réfléchies par la
plaque. Cependant, cela n’est possible que sur les caméras ANPR dédiées, de sorte
que les caméras utilisées à d’autres fins doivent s’appuyer davantage sur les
capacités logicielles. De plus, lorsqu’une image en couleur est requise ainsi que
l’utilisation des détails récupérés par ANPR, il est nécessaire d’avoir une caméra
infrarouge et une caméra normale (couleur) travaillant ensemble.
8|Page
9|Page
Pour éviter le flou, il est idéal d’avoir la vitesse d’obturation d’un appareil photo
dédié réglée sur 1/1000 de seconde. Parce que la voiture est en mouvement, des
vitesses d’obturation plus lentes pourraient entraîner une image trop floue pour être
lue à l’aide du logiciel OCR, surtout si la caméra est beaucoup plus haute que le
véhicule. Dans la circulation lente, ou lorsque la caméra est à un niveau inférieur et
que le véhicule est à un angle proche de la caméra, la vitesse d’obturation n’a pas
besoin d’être aussi rapide. Des vitesses d’obturation de 1/500 de seconde peuvent
faire face à un trafic allant jusqu’à 40 mph (64 km/h) et 1/250 de seconde jusqu’à 5
mph (8 km/h). Les caméras de capture de plaques d’immatriculation peuvent
désormais produire des images utilisables à partir de véhicules roulant à 120 mph
(190 km / h).
Pour maximiser les chances d’une capture efficace des plaques d’immatriculation,
les installateurs doivent examiner attentivement le positionnement de la caméra par
rapport à la zone de capture cible. Le dépassement des angles seuils d’incidence
entre l’objectif de la caméra et la plaque d’immatriculation réduira
considérablement la probabilité d’obtenir des images utilisables en raison de la
distorsion. Les fabricants ont développé des outils pour aider à éliminer les erreurs
lors de l’installation physique des caméras de capture de plaques d’immatriculation.
10 | P a g e
Figure 1 : Fonctionnement de Système ANPR
11 | P a g e
Déclencheur logiciel : L’équipement ANPR communique avec
l’application cliente, qui contrôle physiquement un capteur directement
installé dans la voie. Chaque fois qu’un véhicule a été détecté par le
capteur, l’application cliente connaît la présence du véhicule et la
communique à l’équipement ANPR. À ce moment, le processus de
capture commence.
Flux libre : L’équipement ANPR n’a pas besoin de recevoir de signal
d’un capteur externe. L’équipement ANPR prend des images en continu
et est capable de détecter automatiquement les véhicules.
b) Capture des images :
Une fois le véhicule détecté, l’étape suivante est la capture du véhicule. Afin de
prendre une image correcte, les points suivants devront être pris en compte.
Type de caméras :
• Caméra entrelacée : La capture des images se fait en deux étapes.
D’abord les lignes inégales et plus tard les lignes paires. Ce type de
caméras sont moins chers mais son utilisation n’est pas recommandée
pour l’ANPR car si le véhicule est en mouvement, la plaque
d’immatriculation apparaît.
• Caméras progressives : La capture des images se fait
immédiatement. L’utilisation de ce type de caméras est totalement
recommandée car si le véhicule est en mouvement, la plaque
d’immatriculation apparaît toujours focalisée.
Type de lumière :
La lumière infrarouge est généralement utilisée pour l’équipement ANPR. Bien
que certains équipements ANPR soient capables d’utiliser la lumière du jour et
la lumière infrarouge pendant la nuit.
Lumière infrarouge : Les systèmes ANPR utilisent la lumière infrarouge car l’œil
humain ne peut pas la détecter sans d’autres appareils. Un filtre infrarouge situé dans
la caméra permet de mettre en évidence la plaque d’immatriculation, mais, d’autre
part, le reste des éléments de l’image sont assombris.
Voici quelques exemples :
12 | P a g e
13 | P a g e
Figure 2 : Lumière infrarouge
Lumière du jour : Elle est perçue par l’œil humain. Il permet de prendre des images
dans lesquelles le véhicule est distingué.
Gestion de la lumière : Le type de lumière est aussi important que la façon dont elle
est gérée. Il est possible d’utiliser n’importe quelle technique typique de la
photographie, mais les fabricants de ANPR ont choisi deux grandes voies :
Pour contrôler la lumière émise par la mise au point
Pour contrôler la lumière qui pénètre dans la
caméra
c) Processus de reconnaissance des
plaques d’immatriculation :
Chaque fabricant de ANPR a développé ses propres
algorithmes de reconnaissance, bien qu’il s’agisse des
principaux et des plus courants.
Les étapes suivantes sont suivies :
Pour localiser et isoler la plaque d’immatriculation dans l’image
Pour corriger la luminosité et le contraste de la plaque d’immatriculation
Pour séparer chaque caractère de la plaque d’immatriculation
Reconnaître chaque caractère de la plaque d’immatriculation
14 | P a g e
environnements en mouvement.
15 | P a g e
Les systèmes ANPR mobiles sont souvent utilisés par les forces de l'ordre pour
contrôler les véhicules en circulation et rechercher des véhicules volés ou
impliqués dans des infractions. Ils peuvent également être utilisés pour surveiller
les zones de trafic dense, comme les autoroutes et les aéroports, ou pour
surveiller les frontières et les points de passage.
Les systèmes ANPR mobiles sont généralement équipés de caméras et de
logiciels de reconnaissance optique des caractères, mais ils peuvent également
utiliser d'autres technologies de lecture, comme l'infrarouge ou le laser. Ils sont
souvent couplés à des bases de données d'immatriculation pour vérifier
rapidement si un véhicule est enregistré ou s'il est impliqué dans une infraction.
Les systèmes ANPR mobiles présentent plusieurs avantages, notamment la
possibilité de surveiller de vastes zones de manière efficace et de rechercher
rapidement des véhicules impliqués dans des infractions. Toutefois, ils peuvent
également être coûteux à mettre en place et à entretenir, et ils peuvent susciter
des préoccupations en matière de vie privée si leur utilisation n'est pas
correctement encadrée.
Contrôle D’accès :
Le contrôle d’accès en général est un mécanisme permettant de limiter l’accès
aux zones et aux ressources en fonction de l’identité des utilisateurs et de leur
appartenance à divers groupes prédéfinis. Toutefois, l’accès à des zones limitées
peut également être géré en fonction de l’accès aux véhicules seuls ou avec une
identité personnelle. La reconnaissance des plaques d’immatriculation apporte
l’automatisation de la gestion du contrôle d’accès des véhicules, offrant une
sécurité accrue, la gestion du covoiturage pour la logistique, l’assistance au
guide de sécurité, la journalisation des événements, la gestion des événements,
la tenue du journal d’accès, les possibilités d’analyse et d’exploration de
données.
Contrôle aux frontières :
Le contrôle des frontières est un effort coordonné par l’État pour parvenir à un
contrôle opérationnel de la frontière de l’État du pays avec la mission prioritaire
de soutenir la sécurité du territoire contre le terrorisme, le trafic transfrontalier
illégal, la contrebande et les activités criminelles. Un contrôle efficace aux
frontières réduit considérablement le taux de criminalité violente et accroît la
sécurité de la société. La reconnaissance automatique des plaques
d’immatriculation ajoute une valeur significative en enregistrant les événements,
en établissant des bases de données sur les passages frontaliers, en alarmant les
passages suspects, et bien d’autres.
16 | P a g e
17 | P a g e
Mesure du temps de trajet :
La mesure du temps de trajet est une méthode très efficace et largement
utilisable pour comprendre le trafic, détecter les situations et les événements
ostentatoires, etc. Un système basé sur la vision par ordinateur a ses
inconvénients bien connus dans la mesure du temps de trajet, tandis que la
reconnaissance automatique des plaques d’immatriculation a assuré sa viabilité :
les temps de trajet des véhicules peuvent être mesurés de manière fiable par des
systèmes basés sur la reconnaissance automatique des plaques
d’immatriculation. Les données collectées par les systèmes de reconnaissance
des plaques d’immatriculation peuvent être utilisées de nombreuses façons après
le traitement : retour d’informations aux usagers de la route pour accroître la
sécurité du trafic, aide à une application efficace de la loi, optimisation des
itinéraires de circulation, réduction des coûts et des délais, etc.
Application de la loi :
La reconnaissance automatique des plaques d’immatriculation est une
technologie idéale pour être utilisée à des fins d’application de la loi. Il est
capable d’identifier automatiquement les voitures volées sur la base de la liste
noire à jour. D’autres applications d’application de la loi très courantes sont
l’application des feux rouges, la recharge sur la vitesse excessive et le contrôle
des voies réservées aux bus.
IX. Conclusion :
Le système ANPR (Automatic Number Plate Recognition) est utilisé pour lire
automatiquement les plaques d'immatriculation des véhicules et peut être utilisé
pour diverses applications telles que la gestion du stationnement, la
réglementation de la circulation, la sécurité routière et la lutte contre la
criminalité.
Dans ce chapitre on a donné une généralité à propos du Système ANPR.
18 | P a g e
Chapitre 2 :
Présentation des outils
utilisés
19 | P a g e
I. Introduction :
Le but principal de l'utilisation de méthodes de gestion de projet est de garantir
que le projet est terminé de manière efficace et efficace, en respectant les délais
et le budget impartis, et en atteignant les objectifs et les résultats souhaités. Les
méthodes de gestion de projet permettent également de gérer les risques et les
problèmes qui peuvent survenir pendant le projet.
20 | P a g e
H pour hiérarchiser les fonctions avec un degré de priorité pour le client.
2. Diagramme de preuve :
Un diagramme de pieuvre, également appelé diagramme en étoile ou diagramme
radial, est un type de diagramme qui utilise des rayons à partir d'un point central
pour représenter des données. Chaque rayon représente une catégorie de
données, et la longueur de chaque rayon est proportionnelle à la valeur de la
donnée associée. Le diagramme de pieuvre est souvent utilisé pour illustrer la
répartition de données et pour mettre en évidence les différences entre les
catégories.
21 | P a g e
Figure 3 : Exemples de diagramme pieuvre
22 | P a g e
3. Diagramme de FAST :
Le diagramme FAST - qui signifie en anglais Function Analysis System
Technique – est une représentation visuelle des relations logiques qui existent
entre les fonctions à satisfaire et l'acteur ou les ressources du système technique.
Il se construit pas à pas sur un questionnement logique :
23 | P a g e
Sa construction peut vite vous prendre du temps inutilement s'il n'est pas
suffisamment ciblé.
Ne remplace pas le test d'un produit. Cela reste un complément abstrait
pour une analyse plus fine.
4. Matrice Morphologique :
Une matrice morphologique est un outil utilisé en gestion de projet pour décrire
les différentes combinaisons possibles de produits ou de services qui peuvent
être proposés par une entreprise. Elle permet de visualiser les différentes options
qui sont disponibles et de déterminer comment elles pourraient être combinées
de manière à satisfaire les besoins et les attentes des clients.
La matrice morphologique est généralement organisée sous la forme d'un
tableau qui comprend deux axes. Le premier axe représente les différents
attributs ou caractéristiques des produits ou services proposés, tandis que le
second axe représente les différentes catégories de clients ou de segments de
marché ciblés. Chaque cellule de la matrice indique si un produit ou service
particulier est adapté à un segment de clientèle particulier.
L'utilisation d'une matrice morphologique peut aider une entreprise à identifier
de nouvelles opportunités de développement de produits et à cibler de manière
plus efficace ses efforts de marketing. Elle peut également être utilisée pour
évaluer l'impact de modifications de l'offre de produits ou de services sur les
différents segments de clientèle ciblés.
5. Matrice de Pugh :
La matrice de Pugh, ou matrice de décision, est un outil simple d’aide à la
décision multicritères permettant de progresser dans la résolution de problèmes
de décision où plusieurs objectifs, souvent contradictoires, doivent être pris en
compte. En appliquant plusieurs critères de décision simultanément.
L’objectif de cet outil est d’effectuer le choix optimal malgré des critères
conflictuels. L’outil s’utilise dans des contextes variés, tels la conception de
produit, le choix de processus de fabrication ou sélection d’une opportunité
d’amélioration, et est intégré à la philosophie Six Sigma.
III. Conclusion :
Dans ce chapitre, nous avons mentionné tous les outils que nous allons utiliser
dans notre projet. L'objectif de ces méthodes est d'obtenir une meilleure
visibilité de l'ensemble du projet avec le choix idéal de matériels à utiliser.
24 | P a g e
Chapitre 3 : Etude de projet
25 | P a g e
I. Analyse du besoin :
Forces de l'ordre : Les services de police utilisent les systèmes ANPR pour
détecter les véhicules impliqués dans des activités criminelles, tels que les
véhicules volés, ceux associés à des crimes, ou ceux recherchés dans le cadre
d'enquêtes. Les informations collectées peuvent aider à localiser et à suivre les
véhicules suspects.
Suivre les déplacements des véhicules et collecter des données sur leur
trafic, ce qui peut être utile pour l'analyse de la circulation routière et la
planification des transports.
Gérer l'accès et le stationnement des véhicules dans les parkings et les
garages.
26 | P a g e
Détecter les véhicules qui ont des plaques d'immatriculation falsifiées ou
qui sont impliqués dans des activités criminelles.
Les systèmes ANPR (Automatic Number Plate Recognition) sur les autoroutes
sont mis en place dans le but d'atteindre plusieurs objectifs, visant à améliorer
la sécurité, la gestion du trafic, et la collecte d'informations liées aux
déplacements des véhicules.
FP
Sécurité
Contrainte
ANPR Techniques
Ethiques
Financières
Légales
27 | P a g e
Le système de reconnaissance automatique de plaque d'immatriculation
(ANPR) admet deux fonctions principales, la première fonction comporte
l’dentification de la plaque de matricule, la deuxième est la lecture des
numéros de plaque d'immatriculation de véhicules.
1. Contraintes Techniques :
Qualité de l'image : Pour que le système ANPR fonctionne de manière fiable, il
est important que l'image de la plaque d'immatriculation soit de bonne qualité.
Cela peut être difficile à garantir si la plaque est sale, floue ou prise à un angle
non favorable.
Variabilité des plaques : Les plaques d'immatriculation varient d'un pays à
l'autre et peuvent être présentées dans des formats différents. Le système
ANPR doit donc être capable de traiter cette variabilité pour être efficace.
Éclairage : L'éclairage peut également affecter la qualité de l'image de la plaque
d'immatriculation et rendre la reconnaissance plus difficile.
Vitesse du véhicule : Si le véhicule se déplace à une vitesse élevée, il peut être
difficile de capturer une image claire de la plaque d'immatriculation.
Conditions climatiques : Les conditions climatiques peuvent également affecter
la qualité de l'image de la plaque d'immatriculation, par exemple en cas de
pluie ou de neige.
2. Contraintes financières :
Coût : La mise en place d'un système ANPR peut être coûteuse, en particulier si
le système doit être déployé sur de grandes distances ou si plusieurs caméras
et autres équipements sont nécessaires.
3. Contraintes légales :
Aspects légaux : Il peut y avoir des considérations légales à prendre en compte
lors de la mise en place d'un système ANPR, en particulier en ce qui concerne la
protection de la vie privée et l'utilisation des données collectées.
4. Contraintes éthiques :
Respect de la vie privée : Le système ANPR peut collecter des données sur les
mouvements des véhicules et les associer à leurs propriétaires. Il est important
de s'assurer que ces données sont collectées et utilisées de manière
responsable et en respectant la vie privée des individus.
28 | P a g e
Utilisation des données : Il est important de s'assurer que les données
collectées par le système ANPR sont utilisées de manière éthique et ne sont pas
utilisées à des fins discriminatoires ou illégales.
5. Contraintes Sécurité :
Protection des données : Le système ANPR peut collecter et stocker des
données sur les véhicules et leurs propriétaires, il est donc important de
s'assurer que ces données sont protégées contre les accès non autorisés et les
fuites de données.
Sécurité physique : Le système ANPR peut être composé de caméras et
d'autres équipements qui doivent être protégés contre le vol et les dommages
physiques.
Sécurité des communications : Le système ANPR peut être connecté à d'autres
systèmes ou réseaux, il est donc important de s'assurer que les
communications sont sécurisées pour éviter les interceptions ou les attaques
de type man-in-the- middle.
Sécurité des logiciels : Le système ANPR peut être composé de logiciels et de
systèmes d'exploitation qui doivent être protégés contre les virus et autres
types de malware.
Gestion des mots de passe : Il est important de mettre en place des politiques
de gestion des mots de passe pour s'assurer que seuls les utilisateurs autorisés
ont accès au système ANPR.
30 | P a g e
Une carte SD: Une carte SD de 32 Go est une carte mémoire flash utilisée
pour le stockage de données dans divers appareils électroniques, y
compris les appareils photo, les smartphones, les tablettes, les caméras
de surveillance, et bien sûr, les cartes Raspberry Pi...
31 | P a g e
2. Matrice morphologique :
Fonctions Solution1 Solution 2 Solution 3
Fct 1 : Caméra USB Caméra ESP32 Caméra Raspberry
Capture
d'image de la
matricule
Fct 2 : Arduino
Traitement de l'image
de matricule
32 | P a g e
Concept 2 :
Fonctions Solution
Fct 1 : Caméra Raspberry
Capture d'image de
la matricule
Fct 2 : Raspberry Pi
Traitement de l'image
de matricule
Concept 3 :
Fonctions Solution
Fct 1 : Caméra USB
Capture
d'image
de la
matricule
33 | P a g e
meilleurs résultats le plus rapidement, le meilleur retour sur investissement, le
moins de résistance au changement…
4.1. Implémentation :
On fixe Le concept 2 comme Datum est on établit La matrice de Pugh afin de
choisir le meilleur concept.
Le fonctionnement en temps réel du système est le critère le plus prioritaire ici,
la qualité d’acquisition est un critère aussi important vu qu’on a intérêt à avoir
un système qui capte des donnés avec une exactitude optimale. Le stockage (la
taille du CPU de notre Microcontrôleur est un facteur crucial vu que le système
traitera plusieurs données quotidiennement.
34 | P a g e
Les critères sont classés du plus prioritaire au moins prioritaire.
Dans cette matrice de Pugh, la qualité d'image, la résolution et la vitesse de capture sont
évaluées sur une échelle de 1 à 5, où 5 est la meilleure valeur.
De cette comparaison, les caméras Raspberry Pi et USB sont sélectionnées comme les
meilleures options, avec un score global de 17 surpassant la Camera ESP32 et Camera USB.
35 | P a g e
Après établissement de la deuxième matrice de Pugh on trouve que les deux
concepts proposés sont inférieurs au datum (le concept solution Raspberry PI 4
model B) en terme de critères prioritaires pour notre système.
Pour cela le meilleur concept de solution qui s’avère pour le moment est la
solution dont on va utiliser la raspberry pi 4 avec sa caméra pour le
prototypage de ce système vu les possibilités qu’il offre en terme d’un
fonctionnement en temps réel qui est fiable, et sa capacité d’acquérir le
maximum des données et les traiter même dans des conditions défavorables
(matricule flou, grande vitesse de véhicule, brouillard etc …).
Figure 7 : composants
36 | P a g e
Chapitre 4 : Implémentation
du concept de solution
37 | P a g e
Dans cette partie projet nous allons apprendre à reconnaître et à lire le numéro
de plaque d'immatriculation des automobiles à l'aide de Raspberry Pi et
OpenCV, ainsi la lecture du numéro de la plaque à l'aide de Tesseract OCR.
En addition nous nous intéressons à présenter l'environnement du matériel et
du logiciel, exploités dans la réalisation du projet, description de la conception
de notre système, sans oublier son étude financière.
Python :
Le langage Python est un langage de programmation open
source multi-plateformes et orienté
Figure 8 : Logo Python
38 | P a g e
OpenCV a une structure modulaire, ce qui signifie que le package comprend
plusieurs bibliothèques partagées ou statiques. Les modules suivants sont
disponibles :
39 | P a g e
E/S vidéo ( videoio ) : une interface facile à utiliser pour la capture vidéo
et les codecs vidéo.
... d'autres modules d'assistance, tels que les wrappers de test FLANN
et Google, les liaisons Python, etc.
OpenCV-Python :
Figure 10 : OpenCV-Python
40 | P a g e
OpenCV-Python utilise Numpy , qui est une bibliothèque hautement optimisée
pour les opérations numériques avec une syntaxe de style MATLAB. Toutes les
structures de tableau OpenCV sont converties vers et à partir de tableaux
Numpy. Cela facilite également l'intégration avec d'autres bibliothèques qui
utilisent Numpy telles que SciPy et Matplotlib.
OCR :
La reconnaissance optique des caractères, ou Optical Character Recognition –
OCR en anglais, est une conversion électronique d’images textuelles
dactylographiées, manuscrites ou imprimées. Ce texte est encodé par une
machine dans un fichier de format texte.
Ces images et documents peuvent être numérisés sous forme de document
texte, de photo de document ou de photo de scène d’une capture de matricule
d’une voiture pour la Reconnaissance automatique des plaques
d’immatriculation.
Le challenge de l’OCR repose principalement sur la difficulté à reconnaître les
différentes polices de caractères qui démultiplient les façons d’écrire chaque
symbole. Ceci fait en sorte qu’avant même de sélectionner un algorithme
d’OCR, l’image en elle-même doit être prétraitée pour en assurer la lecture.
Prétraitement
La majorité des logiciels d’OCR prétraitent les images pour augmenter les
chances de reconnaissance.
Les techniques de prétraitement comprennent :
1. Réalignement (de-skew)
Si le document n’a pas été correctement aligné lorsqu’il est numérisé, il peut
avoir besoin d’être tourné de quelques degrés dans le sens horaire ou
antihoraire pour s’assurer que les lignes de texte soient parfaitement
horizontales ou verticales.
2. Déparasitage (Despeckle)
Enlever les taches sur le document ou lisser ses bords.
3. Binarisation
41 | P a g e
Convertir une image en noir et blanc (appelé une « image binaire » parce qu’il
n’y a que deux couleurs). La tâche de binarisation est effectuée comme un
moyen facile et précis de distinguer le texte de l’arrière-plan.
4. Suppression de la ligne
Nettoyer les boîtes et les lignes non glyphes.
5. Analyse de mise en page ou « zonage »
Identifier les colonnes, les paragraphes, les légendes, sous forme de blocs.
Particulièrement utile dans les mises en page et les tables multicolonnes.
6. Détection de lignes et de mots
Établir des formes avec les mots et les caractères de base, diviser les mots au
besoin.
7. Reconnaissance du script
Dans plusieurs documents linguistiques, le script peut se transformer au niveau
des mots. Donc l’identification du script est essentielle avant que l’OCR puisse
être utilisé pour gérer un script en particulier.
8. Isolation des caractères ou « segmentation »
Divers caractères liés par des artefacts d’images doivent être divisés. Par
exemple, les caractères uniques qui ont été divisés en plusieurs morceaux
basés devraient être liés.
9. Normalisation
Normaliser le ratio des dimensions de l’image (aspect ratio) et l’échelle (scale
ratio).
42 | P a g e
Nous pouvons reconnaître une ligne de texte en recherchant des lignes de
pixels blancs qui ont des pixels noirs entre les deux. De la même façon, nous
pouvons reconnaître où un caractère commence et où il se termine.
Les images suivantes démontrent visuellement ces méthodes respectivement :
Post-traitement
La précision de l’OCR peut être améliorée si son extrant est limité par un
lexique (une liste de mots autorisés dans un document). Par exemple, un
lexique pourrait comprendre tous les mots en anglais ou une liste de mots plus
techniques spécifiques à un domaine en particulier.
Évidemment, cette méthode sera moins efficace si le document contient des
mots qui ne sont pas dans le lexique. C’est souvent le cas avec les noms
propres par exemple.
43 | P a g e
Heureusement, pour améliorer la précision il existe plusieurs librairies d’OCR
gratuites sur Internet. La librairie Tesseract par exemple utilise son dictionnaire
pour contrôler la segmentation des caractères.
L’extrant de l’algorithme peut être une seule chaîne ou un fichier de caractère.
Les systèmes OCR plus avancés peuvent conserver la structure de page
d’origine et créer un PDF contenant à la fois les pages d’image d’origine et le
rendu textuel décodé.
44 | P a g e
Conception
45 | P a g e
I/Environnement technique du projet :
Le projet ANPR (Automatic Number Plate Recognition), ou reconnaissance
automatique de plaques d'immatriculation, repose sur un environnement
technique complexe combinant plusieurs éléments pour assurer une
performance optimale. Au cœur de cette solution se trouve un système de
traitement d'images avancé, utilisant des algorithmes de vision par ordinateur
et d'apprentissage automatique pour extraire les informations cruciales des
plaques d'immatriculation.
Les caméras installées dans le cadre du projet ANPR sont dotées de capteurs
haute résolution et de technologies d'imagerie avancées, permettant une
capture précise des plaques d'immatriculation dans des conditions variées, que
ce soit de jour ou de nuit. L'éclairage adaptatif et les filtres infrarouges sont
souvent intégrés pour garantir une qualité d'image optimale quel que soit
l'environnement lumineux.
L'infrastructure logicielle du projet repose sur des algorithmes de traitement
d'images sophistiqués, capables de reconnaître et de segmenter les caractères
des plaques d'immatriculation. Ces algorithmes sont souvent entraînés à l'aide
de vastes ensembles de données, utilisant des techniques d'apprentissage
profond pour améliorer la précision de la reconnaissance.
1. Environnement matériel
Dans notre système ANPR commandés par les informations captées par la ou
les caméras situées dans ou à côté de la barrière, et gérée par des capteurs de
préséance du véhicule, et un moteur commandé pour l’ouverture ou la
fermeture de la barrière.
Camera pi
46 | P a g e
Raspberry Pi est carte basée sur un processeur ARM et permet
l'exécution du système d'exploitation GNU/Linux/Windows 10
IoT et des logiciels compatibles.
Dans ce projet c’est le dispositif principal qui sera soumis à
beaucoup de pression, et assumera la plupart des responsabilités,
car il doit être en permanence:
alimenté
connecté avec un point d’accès (wifi ) .
Afin d’assurer :
2. Environnement logiciel :
Oracle VM Virtual box :
Oracle VM VirtualBox est un logiciel libre de virtualisation publié par Oracle.
• Machine hôte : La machine hôte représente la machine physique qui va «
héberger » une ou plusieurs machines virtuelles. VirtualBox est installé sur la
machine hôte.
• Système hôte : Le système hôte représente le système d'exploitation
(OS) (Windows, MacOS ou Linux) qui est installé sur la machine hôte.
• Machine invitée : La machine invitée représente la machine virtuelle qui
sera allouée et gérée par l'hyperviseur VirtualBox. On l'appelle aussi parfois
"client".
• Système invité : Le système invité représente le système d'exploitation
(OS) qui est installé sur la machine virtuelle. N'importe quel système
d'exploitation peut être utilisé comme système invité sur VirtualBox.
47 | P a g e
II/ Les axes du projet
Contrôle
Figure 133 : Les étapes du processus
Détection :
La caméra PI est un composant de la chaine de détection prélève les
informations utiles de la présence du véhicule et la capture d’immatriculation.
48 | P a g e
• Traitement :
Des programmes seront développés et lancés sur la Raspberry pi traitent les
données reçues des capteurs (Infra rouge, Camera PI) ou par communication et
agit sur le système.
Les programmes ou les scriptes seront responsables de :
Collecte des données des capteurs : détection du véhicule et
l’acquisition de la capture d’immatriculation.
Gestion des données : préparation des bibliothèques, et de la base
de données.
Traitement de l’image : l’utilisation de la bibliothèque OpenCV pour
les transformations géométriques d'image, et l’application du filtre
pour garder que les contours et la détection de la matricule puis
extraction des caractères en utilisant l’Optical Character
Recognition.
Vérification : La comparaison des caractères extraire avec la base de
données des immatriculations autorisé.
49 | P a g e
50 | P a g e
III/Etude financière du projet :
Le tableau ci-dessous représente les résultats de l’étude financière effectuée
pour notre projet :
Totale : 1085,00MAD
Figure 16 : Etude financière du projet
51 | P a g e
Chapitre 5 : Réalisation
52 | P a g e
I/ Configuration du logiciel :
1.Virtual Machine et configuration de la Raspberry pi
Etape 1 : Installation des applications d’affichage du desktop RPI 4 dans un écran de pc.
Putty :
C’est un émulateur de terminal doublé d'un client pour les protocoles SSH, Telnet, rlogin, et
TCP brut. Il permet également des connexions directes par liaison série RS-232.
Initialisation de la Raspberry PI 4.
On peut commander la RP4 par l'adresse :
168.192.8.110
Premièrement on commande le terminal de la RPI4 via l’application Putty pour entrer le Login et le
password pour pouvoir l’accéder à partir du VNC viewer.
Etape 2 : Configuration de la connexion de l’applications Putty R :
Password: pfa2024
47 | P a g
Etape 4 : l’activation de Vnc Viewer
VNC Viewer:
Virtual Network Computing est un dispositif créé en 1999 permettant d'accéder à un bureau
d'ordinateur à distance via le protocole RFB.
48 | P a g
Figure 21 : Dans le Vnc Viewer on peut accéder à la caméra PI
49 | P a g
Figure 23 : Le bureau de la Raspberry pi
Traitement d'image :
Puisque on manque toujours du matériel on va programmer la RPI de traité
des images qu’on a importé de google dans le système :
import cv2 : est une bibliothèque open-source populaire pour la vision par ordinateur.
Elle est utilisée ici pour effectuer des opérations de traitement d'image.
import pytesseract : est une interface Python pour Tesseract-OCR, un moteur OCR
open-source. Cette bibliothèque permet de reconnaître du texte dans des images.
50 | P a g
from picamera import PiCamera : Cette ligne importe la classe PiCamera du
module picamera, qui permet de contrôler la caméra Raspberry Pi.
import time : Cette ligne importe le module time, qui est utilisé pour introduire des
délais dans le script, par exemple pour attendre que la caméra se stabilise avant de capturer
une image.
save_directory
Ce code = "saved_images"
définit un répertoire appelé "saved_images" pour sauvegarder les
images traitées. La fonction os.makedirs
os.makedirs(save_directory, est utilisée pour créer le répertoire s'il
exist_ok=True)
n'existe pas déjà (exist_ok=True garantit qu'aucune erreur n'est générée si le
répertoire existe déjà).
51 | P a g
images vidéo en distances réelles en centimètres. Le commentaire suggère que
vous devriez ajuster cette valeur en fonction de votre configuration spécifique.
prev_timesont
Ces variables = time.time()
initialisées pour calculer la vitesse d'un objet dans les images
vidéo.prev_position
prev_time stocke
= le temps précédent où la vitesse a été calculée,
prev_position stocke la position précédente de l'objet, et speed stocke la
None speed = 0
vitesse calculée.
save_interval
Ces variables = 50 # Adjust
contrôlent this valueàbased
la fréquence on how
laquelle les often
imagesyousont
wantsauvegardées.
to save images
La variable save_interval
save_counter =0 détermine le nombre d'images entre chaque
sauvegarde d'image. save_counter garde une trace du nombre d'images
traitées depuis la dernière sauvegarde.
cv2.namedWindow('Results',
Ce code crée une fenêtre appelée cv2.WINDOW_NORMAL)
'Results' pour afficher les images vidéo
traitées. La fonction cv2.namedWindow
cv2.resizeWindow('Results', 800, 600) # crée
Adjustune fenêtre,
window etneeded
size as cv2.resizeWindow
définit la taille initiale de la fenêtre.
52 | P a g
traitements ultérieurs, comme la comparaison des plaques d'immatriculation
détectées dans les images vidéo avec cette valeur prédéfinie.
Cette def
fonction (calculate_speed) prend la position actuelle d'un objet en
argument et calcule sa vitesse en fonction de la différence de temps (time_diff)
calculate_speed(current_position):
entre le temps actuel et le temps précédent où la vitesse a été calculée. La
global prev_time, prev_position,
fonction utilise des variables globales (prev_time, prev_position, speed) pour
speedl'état
current_time = time.time()
conserver entre les appels de fonction.
time_diff = current_time - prev_time
if prev_position is not None:
# Appliquez le facteur de conversion ici pour obtenir la vitesse en centimètres par seconde
speed =du
Cette partie (distance
code *complète
pixels_to_cm) /
la fonction calculate_speed présentée
précédemment.
time_diff prev_time = current_time
Elle calcule la distance
prev_position parcourue par un objet entre deux instants dans le
= current_position
temps.
return speed
En utilisant le facteur de conversion (pixels_to_cm), elle convertit cette
distance en centimètres.
Elle divise ensuite cette distance par la différence de temps (time_diff) pour
obtenir la vitesse en centimètres par seconde.
Les variables globales prev_time et prev_position sont mises à jour pour être
utilisées lors du prochain appel de la fonction.
53 | P a g
def enhance_characters(image):
clahe = cv2.createCLAHE(clipLimit=2.0,
# Appliquer une binarisation adaptative tileGridSize=(8, 8))
_,enhanced
thresh = =cv2.threshold(enhanced,
clahe.apply(gray) 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
return closing
Cette fonction enhance_characters prend une image en couleur (image)
comme entrée.
Elle convertit l'image en niveaux de gris et applique une égalisation adaptative
de l'histogramme pour améliorer la luminosité.
Ensuite, elle applique une binarisation adaptative pour obtenir une image
binaire.
Des transformations morphologiques (ouverture et fermeture) sont appliquées
pour améliorer la visibilité du texte dans l'image.
L'image améliorée est renvoyée.
def recognize_plate(frame):
global speed, save_counter
# Convertir l'image en niveaux de gris
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
54 | P a g
# Appliquer une égalisation adaptative de l'histogramme
Un objetclahe = cv2.createCLAHE(clipLimit=2.0,
clahe tileGridSize=(8,
est créé en utilisant la méthode 8))
createCLAHE de la bibliothèque
OpenCV.enhanced_gray = clahe.apply(gray)
Cette méthode crée un égaliseur d'histogramme adaptatif en spécifiant des
paramètres tels que clipLimit (limite de clip) et tileGridSize (taille de la grille).
L'objet clahe est ensuite appliqué à l'image en niveaux de gris (gray) pour
améliorer le contraste et la visibilité des caractéristiques.
55 | P a g
# Trouver les contours dans l'image des contours
contours,
La fonction _ = cv2.findContours(edges.copy(),
findContours trouve les contours danscv2.RETR_EXTERNAL,
l'image des contours
cv2.CHAIN_APPROX_SIMPLE)
résultant de l'étape précédente.
cv2.RETR_EXTERNAL spécifie le mode de récupération des contours externes
(pas de contours internes).
cv2.CHAIN_APPROX_SIMPLE spécifie le type d'approximation des contours
(compression horizontale, verticale et diagonale).
Une foisfor
lescontour in valid_contours:
contours valides obtenus, la boucle itère à travers chacun d'eux.
x, y, w, h = cv2.boundingRect(contour)
cv2.boundingRect est utilisée pour obtenir les coordonnées du rectangle
englobant le contour, représenté par (x, y, w, h).
56 | P a g
# Utilisation de Tesseract OCR pour reconnaître le texte :
Cette text
ligne= pytesseract.image_to_string(roi, config='--psm
utilise la bibliothèque pytesseract 8')
pour appliquer Tesseract OCR à la
région d'intérêt (ROI) roi de l'image.
Le paramètre config='--psm 8' spécifie le mode de segmentation de page 8,
adapté à la reconnaissance de mots.
#ifAjouter
suspected_license_plate.lower() in text.lower():
du texte au-dessus de la plaque d'immatriculation indiquant qu'il s'agit d'une
plaque suspecte
cv2.putText(frame,
Si le texte "Suspected
extrait contient License", (x, y - 50),
une correspondance cv2.FONT_HERSHEY_SIMPLEX,
partielle avec la plaque
0.5, (0, 0, 255), 2)
d'immatriculation suspecte, le texte "Plaque Suspecte" est ajouté au-dessus de
la plaque dans le cadre (frame).
#enhanced_roi = enhance_characters(roi)
Dessiner la ROI améliorée sur le cadre d'origine
#frame[y:y + h,
Dessiner le x:x +reconnu
texte w] = cv2.cvtColor(enhanced_roi, cv2.COLOR_GRAY2BGR)
sur le cadre (changer la couleur du texte en blanc)
cv2.putText(frame,
Si du texte est extrait, ilf"License Plate:sur
est affiché {text}", (x, y - 10),
la console.
cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 2)
57 | P a g
Un rectangle est dessiné autour de la plaque d'immatriculation dans le cadre.
Les caractères de la plaque sont améliorés pour une meilleure visibilité.
La ROI améliorée est dessinée sur le cadre d'origine.
Le texte reconnu est également affiché sur le cadre avec des informations sur la
plaque.
plate_center_x
Le centre horizontal= de
(x +la
x +plaque
w) // 2 d'immatriculation est calculé.
current_speed = calculate_speed(plate_center_x)
La fonction calculate_speed est appelée pour obtenir la vitesse actuelle de la
plaque.
La vitesse est affichée sur le cadre.
58 | P a g
# Enregistrement du frame à l’intervalles X :
À des ifintervalles
save_counter % save_interval
réguliers, le cadre==est
0: enregistré avec un nom de fichier qui
inclut filename
des informations
= telles que le texte de la plaque, la vitesse, le temps, et
le numéro du cadre.
f"{save_directory}/plate_{text}speed{current_speed:.2f}time{current_time}frame{sav
e
Le compteur save_counter est incrémenté à chaque itération.
_counter}.png"
cv2.imwrite(filename,
return
frame)frame
Le cadre modifié est renvoyé, prêt à être affiché ou traité dans la boucle
principale du script.
if _name_ == "_main_":
# Initialisation de la PIcaméra
camera = PiCamera()
camera.resolution = (1280, 720) # Increase resolution
camera.framerate = 32
rawCapture = PiRGBArray(camera, size=(1280, 720)) # Update size accordingly
Cette section s'exécute uniquement si le script est exécuté directement (pas
importé en tant que module).
La caméra Raspberry Pi est initialisée avec une résolution de 1280x720 pixels et
un taux de rafraîchissement de 32 images par seconde.
rawCapture est créé pour capturer les images brutes de la caméra.
# Préchauffage de la caméra:
time.sleep(2.0)
59 | P a g
La caméra est mise en marche pendant 2 secondes pour permettre à ses
composants de se stabiliser avant de commencer à capturer des images.
for frame
La boucle in camera.capture_continuous(rawCapture,
for itère en continu, capturant chaque image de la caméra.
format="bgr", use_video_port=True):
Le résultat de l'ANPR (image modifiée) est affiché dans une fenêtre nommée
'Results' à l'aide de la bibliothèque OpenCV (cv2).
60 | P a g
# Effacer le flux en préparation pour la prochaine image
rawCapture.truncate(0)
if cv2.waitKey(1)
La boucle & 0xFF ==
est interrompue ord('q'):
si la touche 'q' est pressée dans la fenêtre
d'affichage.
break
Une fois que la boucle est terminée (touche 'q' pressée), la fenêtre 'Results' est
fermée.
61 | P a g
Conclusion
En conclusion, le projet ANPR a démontré avec succès la capacité de reconnaître et d'analyser
automatiquement les plaques d'immatriculation avec une précision élevée. Grâce à l'utilisation de
technologies avancées telles que la vision par ordinateur et les réseaux neuronaux, notre système a
été en mesure d'effectuer une identification rapide et fiable des plaques d'immatriculation dans des
conditions variées, y compris de jour comme de nuit et dans des environnements météorologiques
difficiles.
Les avantages de ce système incluent une amélioration significative de l'efficacité des processus de
surveillance et de contrôle du trafic, une réduction des délais de traitement des données et une
augmentation de la sécurité routière grâce à la détection rapide des véhicules suspects. Cependant, il
est important de noter que l'efficacité globale du système dépend de la qualité des données
d'entrée, de la maintenance régulière du système et de la conformité aux normes de protection de la
vie privée.
62 | P a g