Reconnaissance Plaques sur Raspberry Pi
Reconnaissance Plaques sur Raspberry Pi
MÉMOIRE DE MASTER
Sciences et Technologies
Electronique
Système Embarqués
Réf. :
Jury :
MASTER 2
A mes chers parents, pour tous leurs sacrifices, leur amour, leur
tendresse, leur soutien et leurs prières tout au long de mes études,
L’identification des véhicules doit se faire de manière très efficace en utilisant des
ressources limitées. L'un des meilleurs moyens est la Reconnaissance Automatique de la
Plaque d'Immatriculation (RAPI).
Tout système RAPI va passer par quatre étapes [CHH09] : La première consiste à
extraire à partir d’une image du véhicule, obtenu d'une caméra haute résolution, la plaque de
la voiture, en se basant essentiellement sur une méthode de détection de contours. Cette
plaque subit par la suite une segmentation en caractères afin d’être analyser par un système de
reconnaissance optique de caractère (OCR) (optical character recognition). Afin d’arriver à
un meilleur résultat le plus rapidement possible, il faut utiliser un ensemble de prétraitements
comme les techniques de la morphologie mathématique.
- Quels sont les systèmes RAPI existants, et quel sont les avantages et les inconvénients
de chaque système ? et quel est le système le plus approprié à notre cas d'étude ?
1
- Après avoir choisir un système à implanter, quelles sont les étapes à suivre pour qu'on
puisse concevoir un système RAPI efficace et performant ?
- Quels sont les outils matériels et logiciels à exploiter pour faire implémenter un tel
système ?
Un premier chapitre va nous mettre sur les rails du domaine d'analyse des images et plus
précisément, par la suite, des techniques de reconnaissance des plaques d'immatriculation.
Le deuxième chapitre sera sacré à une présentation générale sur la plateforme Raspberry
Pi, ainsi que les modèles publiés et les composants de base de chaque modèle. Par la suite,
nous allons présenter quelques projets réalisés en utilisant des Raspberry Pi.
Dans le troisième chapitre, nous allons faire une conception pour le système de
reconnaissance automatique des plaques d'immatriculation dont le but est de décomposer le
système voulu en un ensemble de modules à détailler par la suite.
2
Chapitre 01
Généralités sur le traitement
d’images et les techniques
RAPI
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
1. Introduction
Le traitement d’images est un domaine très vaste qui a connu, et qui connaît encore, un
développement important depuis quelques dizaines d’années.
2. Traitement d’images
Le traitement d'images (image processing) est une discipline de l'informatique et des
mathématiques appliquées qui étudie les images numériques et leurs transformations, dans le
but d'améliorer leur qualité ou d'en extraire de l'information (Ex.: la création d’effets spéciaux
au cinéma, l’amélioration de la qualité des photos en corrigeant les conditions de prise de vue,
la détection de lettres ou de visages, l’identification de zones cancéreuses en imagerie
médicale, la compression JPEG, … etc). [MAZ18]
Les réglages optiques utilisés, (dont la mise au point) qui déterminent par exemple la
netteté de l'image.
Les conditions d'éclairage, qui déterminent une partie de la variabilité des images
traitées.
Quelques exemples de types d'informations qu'il est possible d'obtenir d'une image
numérique :
La luminance moyenne.
Le contraste moyen.
4
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
La couleur prédominante.
3. Image
Une image est obtenue par transformation d'une scène réelle par un capteur, donc c'est
un signal 2D (x, y), qui représente souvent une réalité 3D (x, y, z). D'un point de vue
mathématique, une image est une matrice de nombres représentant un signal, plusieurs outils
permettent de manipuler ce signal. Pour un ordinateur, une image est un ensemble de pixels.
Un pixel, c'est un élément d'image (picture element). [DIA04]
4. Représentation d’image
Les images numériques, destinées à être visualisées sur les écrans d'ordinateur, se
divisent en 2 grandes classes : Les images matricielles et les images vectorielles. [BER15]
Une image matricielle (image bitmap), est formée d’un assemblage de points ou de
pixels. On parle sur des points lorsque ces images sont imprimées ou destinées à l’impression
(photographies, publicités, cartes ... etc.) et on parle sur des pixels pour les images stockées
sous forme « binaire » ou « numérique ».
L'image est composée d’une matrice (tableau) de points à plusieurs dimensions, chaque
dimension représentant une dimension spatiale (hauteur, largeur, profondeur), temporelle
(durée) ou autre (par exemple, un niveau de résolution). [MAZ18]
Une image vectorielle en informatique (ou image en mode trait), est une image
numérique composée d’objets géométriques individuels (segments de droite, polygones, arcs
de cercle, ... etc) définis chacun par divers attributs de forme, de position, de couleur, etc....
(définis de manière mathématique). Par exemple, une image vectorielle d’un cercle est définie
par des attributs de types : position du centre, rayon, etc.…
Par nature, un dessin vectoriel est dessiné à nouveau à chaque visualisation, ce qui
engendre des calculs sur la machine. L’intérêt est de pouvoir redimensionner l’image à
volonté sans aucun effet d’escalier. L’inconvénient est que pour atteindre une qualité
5
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
5. Echantillonnage et quantification
Le codage ou la représentation informatique d’une image implique sa numérisation.
L'échantillonnage et la quantification ne sont pas limités à la numérisation d'une image. Ce
sont des techniques que l'on utilise également sur des images déjà numérisées, afin de
modifier la résolution (on rééchantillonne l'image) ou le nombre de couleurs utilisées
(quantification). Donc, cette opération se fait dans deux espaces (Figure 1.1) [DIA04] :
– l’espace spatial où l’image (2D) est numérisée suivant l’axe des abscisses et des
ordonnées : on parle d’échantillonnage. Les échantillons dans cet espace sont nommés pixels
et leur nombre va constituer la définition de l’image.
– l’espace des couleurs où les différentes valeurs de luminosité que peut prendre un
pixel sont numérisés pour représenter sa couleur et son intensité ; on parle de quantification.
La précision dans cet espace dépend du nombre de bits sur lesquels on code la luminosité et
est appelée profondeur de l’image.
Figure 1.1 : Echantillonnage et Quantification d'un signal 2D continu selon déférentes résolutions spatiales et
colorimétriques. [DIA04]
6
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
7.1. Dimension
La Dimension est la taille de l’image. Cette dernière se présente sous forme de matrice
dont les éléments sont des valeurs numériques représentatives des intensités lumineuses
(pixels). Le nombre de lignes, de cette matrice, multiplié par le nombre de colonnes nous
donne le nombre total de pixels dans une image.
7.2. Résolution
7.3. Bruit
Un bruit (parasite) dans une image est considéré comme un phénomène de brusque
variation de l’intensité d’un pixel par rapport à ses voisins, il provient de l’éclairage des
dispositifs optiques et électroniques du capteur.
– le bruit de chrominance, qui est la composante colorée des pixels bruités : il est visible sous
la forme de tâches de couleurs aléatoires,
7
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
– le bruit de luminance, qui est la composante lumineuse des pixels bruités : il est visible sous
la forme de tâches plus foncées ou plus claires donnant un aspect granuleux à l’image.
7.4. Histogramme
L’histogramme des niveaux de gris ou des couleurs d’une image est une fonction qui
donne la fréquence d’apparition de chaque niveau de gris (couleur) dans l’image. Il permet de
donner un grand nombre d’information sur la distribution des niveaux de gris (couleur) et de
voir entre quelles bornes est repartie la majorité des niveaux de gris (couleur) dans le cas
d’une image trop claire ou d’une image trop foncée. Donc, c’est la fonction discrète "h" telle
que " h(i) = n", où n est le nombre de pixels de l’image ayant l’intensité i, que l’on appelle «
effectif ». [MAZ18]
Il peut être utilisé pour améliorer la qualité d’une image (Rehaussement d’image) en
introduisant quelques modifications, pour pouvoir extraire les informations utiles de celle-ci.
Pour diminuer l’erreur de quantification, pour comparer deux images obtenues sous des
éclairages différents, ou encore pour mesurer certaines propriétés sur une image, on modifie
souvent l’histogramme correspondant.
8
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
7.5. Luminance
La luminance est le degré de luminosité des points de l’image. Elle est définie aussi
comme étant le quotient de l’intensité lumineuse d’une surface par l’aire apparente de cette
surface, pour un observateur lointain, le mot luminance est substitué au mot brillance, qui
correspond à l’éclat d’un objet. Une bonne luminance se caractérise par :
Un bon contraste : il faut éviter les images où la gamme de contraste tend vers le blanc
ou le noir, ces images entraînent des pertes de détails dans les zones sombres ou
lumineuses.
L’absence de parasites.
7.6. Contraste
Le contraste est l’opposition marquée entre deux régions d’une image, plus précisément
entre les régions sombres et les régions claires de cette image. Le contraste est défini en
fonction des luminances de deux zones d’images.
Même s’il est parfois utile de pouvoir représenter des images en noir et blanc, les
applications multimédias utilisent le plus souvent des images en couleurs. La représentation
des couleurs s’effectue de la même manière que les images monochromes avec cependant
quelques particularités. En effet, il faut tout d’abord choisir un modèle de représentation.
9
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
On peut représenter les couleurs à l’aide de leurs composantes primaires. Les systèmes
émettant de la lumière (écrans d’ordinateurs, ...) sont basés sur le principe de la synthèse
additive : les couleurs sont composées d’un mélange de rouge, vert et bleu (modèle R.V.B).
8.1. Prétraitements
Les prétraitements préparent l'image pour son analyse ultérieure. Il s'agit souvent
d'obtenir l'image théorique que l'on aurait dû acquérir en l'absence de toute dégradation. Ainsi,
ils peuvent par exemple corriger :
L’amélioration d'image a pour but d'améliorer la visualisation des images. Pour cela,
elle élimine / réduit le bruit de l’image et/ou met en évidence certains éléments (frontières,
etc....) de l'image. Elle est souvent appliquée sans connaissance à priori des éléments de
l'image. Les principales techniques sont :
L'amélioration de contraste.
10
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
Le filtrage linéaire (lissage, mise en évidence des frontières avec l'opérateur "Image -
Image lissée" ... etc.) et transformée de Fourier pour faire apparaître / disparaître
certaines fréquences dans l'image.
Filtrage non linéaire (filtres médians, ... etc.) pour éliminer le bruit sans trop affecter
les frontières, etc.
En ce qui concerne les images proprement dites, la représentation la plus utilisée est
celle d'un tableau à 2 dimensions composé d'un ensemble de lignes et de colonnes. Chaque
cellule du tableau, appelée pixel, contient une valeur quantifiée. Cette valeur est une
sémantique dépendant du type de signal qu'elle code (intensité lumineuse du point, distance à
un point de référence, ou numéro de la région d'appartenance par exemple).
Dans le cas des images 3D d'IRM, la représentation n'est plus un tableau à 2 dimensions
mais un tableau à 3 dimensions.
11
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
Les parties suivantes s'attachent à détailler les différents opérateurs et leurs applications
habituelles, puis à présenter la manière dont ils sont combinés pour construire une application
de traitement d'images.
12
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
Il faut alors utiliser des opérateurs de traitement plus complexes scindés bien souvent en
deux sous-catégories :
La première sous-catégorie comprend tous les opérateurs pouvant exprimer leur résultat
comme une combinaison linéaire des niveaux de gris d'un voisinage de l'image. Ces filtres
possèdent des caractéristiques spectrales, on parle ainsi de filtre passe-bas (l'image devient
floue) ou de filtre passe-haut (les contours ressortent).
Une fois le bruit éliminé et l'image restaurée afin de compenser les déformations
introduites par le milieu de transmission et l'optique d'acquisition, on peut passer à l'étape de
segmentation qui doit permettre de réaliser une partition de l'image en ensembles connexes
homogènes.
13
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
14
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
10.2.1. Lissage
Ceux-ci sont des filtres passe-bas qui coupent plus ou moins les plus hautes fréquences.
Ils sont utilisés pour atténuer les bruits d'origines les plus diverses qui polluent l'information,
en particulier dans la détection de contours considérée ci-après.
Filtre gaussien : ce filtre très populaire utilise la loi de probabilité de Gauss (voir Loi
normale multidimensionnelle). Des approximations de plus en plus précises peuvent
être obtenues, selon le théorème central limite par itération de l'un des filtres
précédents.
Ces filtres transforment l'image d'entrée en une image noire sauf aux points où un
contour est détecté qui est marqué en blanc. Les valeurs absolues importent peu, il est sans
intérêt de changer d'échelle comme pour un lissage.
La détection est basée sur la dérivation selon les deux coordonnées. Si on considère
classiquement les signaux comme des sommes de sinusoïdes, la dérivation apparaît comme un
filtre passe-haut qui introduit donc du bruit à l'origine de faux contours. Pour l'amateur il est
recommandé, avant d'utiliser un filtre simple, d'atténuer ce bruit par passage dans un filtre
flou. Des méthodes plus élaborées ont été systématisées pour les professionnels. [WITR18]
Filtre dérivées premières : Le filtre le plus simple consiste à calculer les différences
entre pixels voisins sur les horizontales puis sur les verticales. Chaque extremum
correspond à un point d'un contour.
Filtre de Prewitt : le filtre de Prewitt introduit un flou, chacune des deux matrices
étant le produit du filtre dérivation dans la direction considérée par un filtre de flou
rectangulaire selon l'autre direction.
15
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
Filtre de Canny : c'est un filtre de Sobel précédé par un lissage gaussien et suivi par
un seuillage. Ce filtre est conçu pour être optimal, au sens de trois critères.
16
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
Donc, l'idée est, en partant d'une image initiale, d'en extraire des informations. Pour
cela, on va utiliser les opérateurs à la manière de « briques logicielles », en les combinant et
en les enchaînant. Ces techniques sont la base des systèmes de vision industrielle. De
nombreuses briques sont disponibles permettant de créer des applications complexes et
évoluées.
Analyse de la vidéo : L'objectif de cette technique devenue une discipline depuis les
années 2000 (lorsque la puissance des processeurs peu onéreux et en particulier des
18
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
PC a permis des traitements puissants en temps réel) est d'interpréter les faits observés
à l'image afin de signaler ou d'enregistrer des faits marquants. Le plus souvent, la
caméra est fixe et observe les mouvements d'une scène. Les applications sont
nombreuses : protection des biens (détection d'intrusion, détection d'objet abandonné
ou déposé...), identification (biométrie faciale), Sécurité des personnes(détection de
chutes de personnes, franchissement de rambardes...), animations (planchers animés
selon les mouvements des danseurs en boîte de nuit), détection de feux (industriel,
forêts, tunnels...), surveillance de tunnels (comptage, mesure de vitesse, détection de
fuites/anomalies dans les plafonds), surveillance de tuyaux et autres process
industriels...
Dans la partie qui suit on va essayer de détailler l'une des techniques utilisant le
traitement d'images comme un outil d'analyse et d'aide à la décision ; La reconnaissance
automatique des plaques d'immatriculation (RAPI).
Pour obtenir des résultats satisfaisants, ce sont des séries de techniques de traitement
d'image qui sont appliquées afin de détecter, normaliser et agrandir l'image de la plaque
d'immatriculation, et enfin de pouvoir réaliser la reconnaissance optique de caractères (OCR)
pour extraire les caractères alphanumériques de la plaque.
19
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
une technique courante est d'utiliser un a priori sur les zones potentielles de détection et de
réduire la recherche à celles-ci. Ces zones sont déterminées par l'analyse des localisations des
détections précédentes. Cette technique est appliquée dans le cadre des caméras ayant une
prise de vue large (plusieurs voies). L'application de cette technique permet d’accélérer les
traitements et donc d'augmenter le nombre de plaque lisible à la seconde. Cela est utile dans
le cas où les dispositifs doivent travailler dans un environnement proche du temps réel tout en
ayant une puissance de calcul modérée. Toutefois, elles s'exposent également au risque de ne
pas détecter les véhicules qui ne passent pas dans les zones de pré-détection. C'est pourquoi
elles ne sont pas appliquées dans le cas des dispositifs qui nécessitent d'identifier toutes les
plaques à des fins de sécurité. Dans ces cas-là, soit le traitement est fait hors ligne, en temps
différé, ou bien en temps réel mais avec un système plus couteux car nécessitant une
puissance de calcul élevée.
La littérature nous dévoile un ensemble de méthodes qui ont été proposées pour la
détection et la reconnaissance des plaques ; généralement on peut classer ces méthodes en
quatre catégories [CHH09] :
Wang et al [BAI04], utilisent un filtre spécial en plus du filtre de couleur. Ces filtres
sont appliqués à une image au niveau de gris et la sortie contiendra les formes des caractères.
Toutes les régions sont testées pour en extraire celles susceptibles d’être la plaque.
Pour Beatriz et Broumandnia [BEA04] et [BRO05],, ils appliquent une méthode qui
travaille avec des seuils afin de segmenter l’image en noir et blanc pour ensuite en extraire la
plaque.
Les algorithmes basés sur les couleurs sont moins efficaces face à un changement
d’éclairage car les couleurs apparaissent différemment sous différents éclairages et en plus les
plaques ont plusieurs couleurs et plusieurs formes.
Avec ce type de méthodes on n’est pas sûre que les régions détectées vont correspondre
à la plaque.
20
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
Pour détecter la plaque, certains algorithmes utilisent les contours des caractères et de la
plaque comme des points de référence pour l’extraction.
L’intensité des pixels dans les caractères et dans les contours des plaques est
complètement différente que celle des voisins. En effet dans la majorité des cas ils sont d’une
couleur différente que celle du reste de l’image. Une arête peut être détectée dans une image
en utilisant le gradient comme par exemple avec le seuil OTSU.
La seconde partie de la détection localise les contours de la plaque à partir d’une image
en noir et blanc.
Pour Dai et al. et David et al [DAI01] et [DVA05]. ils ont utilisé des opérations
morphologiques sur l’image transformée en contours.
Anagnostopoules [JFC86] a développé une méthode qui décrit les irrégularités dans la
plaque. Cette méthode ressemble à la méthode précédente parce qu’elle dépend de l’intensité
des pixels.
Les algorithmes présentés sont défaillants lorsque les bords de la plaque ne présentent
pas une grande variation par rapport au reste de l’image en plus ces algorithmes utilisent un
seuil qui doit être déterminé automatiquement ce qui est difficile sous différentes conditions
d’éclairage.
Zimic et al [JXI05]. ont appliqué le même concept de la logique floue. Ils ont divisé
l’image en un ensemble de rectangles de la taille de la plaque.
Les auteurs de Matas [MAT05] ont réussi à localiser la plaque en utilisant la logique
floue avec un pourcentage de réussite de 97.9%.
21
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
Park et al [NIJ95]. ont utilisé un réseau de neurones à deux entrées comme un filtre
horizontal et vertical pour détecter les plaques coréennes. L’intersection entre les deux filtres
localise la région de la plaque.
Chacon et Zimmermann [OTS79] ont utilisé un réseau de neurones pour déterminer les
régions susceptibles d’être la plaque qu’on va analyser par la suite par une transformé de
Fourrier pour détecter la bonne région, l’algorithme sera répété jusqu'à la détermination de la
plaque. Ils ont réussi à extraire 85% des plaques ainsi la réussite de ce type d’algorithme
dépend de leur capacité à s’adapter aux différents éclairages car l’entrée des réseaux est la
valeur de niveau de gris pixel.
Elliman et Lancoster [SHY04] ont fait évoluer l’utilisation du spectre de fourrier pour
distinguer entre les différentes régions de l’image qui présentent des informations.
Broumandnia et al ont parcouru l’image verticalement et ont distingué le nombre d’arêtes
pour chaque parcourt pour localiser la ligne horizontale à laquelle est lié la plaque.
22
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
Plusieurs solutions de gestion de trafic ont déjà été éprouvées à l'étranger. Cette liste,
non exhaustive, permet d'illustrer la variété des applications en lien avec les caméras vidéo.
23
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
Les caméras peuvent être employées pour une vidéo-surveillance du réseau routier ; ces
systèmes peuvent être installés en poste fixe ou bien mobile (embarqué sur véhicule de
patrouille). Ils comportent également des moyens de communication permettant de fournir
des images en direct à distance permettant une prise de décision optimisée.
Les Etats Unis ont aménagé sur leurs infrastructures routières des voies pour bus et co-
voiturage appelée « High Occupancy Vehicle » (HOV) ainsi que des voies appelées « High
Occupancy Toll » (HOT) autorisant l'accès sur la voie de véhicules avec un seul passager à
bord mais s'acquittant d'un péage modulé en fonction de la fréquentation de cette voie.
cette voie spécialisée est composé d'un portique équipé d'une antenne de lecture RFID et de 3
caméras dont une utilisée en lecture automatique des plaques d'immatriculation. De plus, sur
le trajet de 17 km de long, plusieurs dizaines de caméras sont également utilisées pour la
détection d'incidents.
13.4. Télépéage
Le télépéage permet aux véhicules de franchir les péages à la vitesse normale du trafic,
réduisant ainsi la congestion aux zones de péage (ex : Singapour). Techniquement, le
télépéage appelé « Electronic Road Pricing » (ERP) fonctionne à l'aide d'un boitier de lecture
dans le véhicule, d'une « cash card » sorte de carte de péage rechargeable, des portails d'accès
(cf. photo ci-dessus) et d'une centrale informatique. Sila « cash card » est vide ou absente du
véhicule, un système LAPI enregistre le numéro d'immatriculation.
25
Chapitre 01 Généralités sur le traitement d'images et les techniques RAPI
14. Conclusion
Nous avons introduit dans ce chapitre les notions de base qui représentent l’image et
ses caractéristiques puis la compréhension de différentes techniques de traitement d’images et
leurs opérateurs. Par la suite nous avons fait un tour sur les techniques de reconnaissance
automatiques des plaques d'immatriculation avec une présentation de quelques exemples
d'utilisation des systèmes RAPI.
Dans le chapitre suivant, nous allons présenter certains outils matériels que nous allons
utiliser pour réaliser un système RAPI.
26
Chapitre 02
Raspberry Pi
Chapitre 02 Raspberry Pi
1. Introduction
Nous allons penser à intégrer un système RAPI dans un système embarqué, pour cela
nous avons choisi le Raspberry Pi (un ordinateur à carte unique) pour l'implémentation. De ce
fait, ce chapitre fournit des informations générales sur le RaspberryPi. Nous commençons par
des informations générales telles que les modèles publiés et leurs composants de base. Il
fournit également des informations sur l'historique de cet ordinateur à carte unique, ainsi
qu'un détail de son système sur puce (SoC), notamment CPU, GPU et de la RAM.
Parmi les systèmes SBCs existants on peut trouver le Raspberry Pi, qu'on va détailler
leurs caractéristiques dans ce qui suit.
3. Généralités et historiques
A la taille d'une carte de crédit, Raspberry Pi, est un nano-ordinateur mono carte à
processeur ARM d'une petite taille que fonctionne sous Linux et qui peut être interfacé avec
des composants électronique externes. De ce fait, elle intègre des puissances de calcul
considérable. Elle est développée au Royaume Unie par la fondation Raspberry Pi créé en
2009. [PAJ17, UPT17, BEN18]
28
Chapitre 02 Raspberry Pi
Il est fourni nu, c'est-à-dire la carte mère seule, sans boitier, alimentation, clavier, souris
ni écran, dans l'objectif de diminuer les couts et de permettre l'utilisation de matériel de
récupération.
Les modèles sont des versions mises à niveau de leurs versions précédentes pour rendre
l'ordinateur plus efficace et pratique pour les utilisateurs, notamment en raison de sa faible
consommation énergétique et de ses ports USB (Universal Serial Bus).
Les différences entre ces modèles sont la taille du GPIO, le nombre de ports USB et la
présence ou non d’Ethernet, le support de carte microSD et la taille de la RAM.
La première génération est composée de quatre modèles. Le premier modèle publié c'est
le 1B, suivi par le modèle 1A, suivi des modèles 1B + et 1A +, respectivement. Les deux
derniers modèles sont des versions mises à niveau de leurs versions précédentes pour rendre
l'ordinateur plus efficace et plus pratique pour les utilisateurs.
29
Chapitre 02 Raspberry Pi
Raspberry Pi Model 1B, est sorti en début 2012 avec la spécification de 256 Mo de
RAM, deux ports USB et un port Ethernet. Plus tard dans la même année, dans une nouvelle
version, la quantité de RAM augmentée à 512 Mo, suivie de la sortie de la carte de
spécifications inférieures, le modèle 1A a été libéré avec la même quantité de RAM que
l'ancien modèle B à 256 Mo, mais avec un port USB et pas de port Ethernet. Ces ordinateurs
de première génération utilisent le SoC Broadcom, BCM2835, qui intègre un processeur
ARM1176JZF-S mono cœur de 700 MHz, un processeur graphique Vidéo-Core IV et divers
périphériques. Bien que le modèle 1B puisse être utilisé dans toutes les applications, le
modèle A moins cher est utile dans des applications spécifiques nécessitant une
consommation légère et faible, telles que la robotique ou tout service multimédia portable.
30
Chapitre 02 Raspberry Pi
En 2014, une version mise à niveau des deux modèles précédents a été lancée, sous les
noms 1B + et 1A +. Bien que les deux nouveaux modèles disposent des mêmes CPU, GPU et
RAM que leurs versions précédentes, plusieurs mises à niveau et nouvelles fonctionnalités ont
été ajoutées, telles qu'un support de mémoire micro SD remplaçant un emplacement pour
carte SD, une version mise à niveau de GPIO de 26 à 40 broches, un son à faible bruit et une
consommation d'énergie réduite de 0,5 à 1 W grâce à un régulateur de commutation au lieu
d'un régulateur linéaire. En outre, le modèle 1A + est environ 2 cm plus court que son
prédécesseur, tandis que le modèle 1B + fournit quatre ports USB au lieu de deux dans le
modèle 1B.
En mars 2018 le Raspberry Pi 3 modèle B+, est sortie avec un changement du précédent
de 1.4GMHz de processeur au lieu de 1.2GHZ, suivi en novembre 2018 de la création du
Raspberry Pi 3 modèle A+, avec quelques modifications du model précédent de moins de
mémoire 512Mo, et un seul port USB, et moins chère que 3B+.
Il existe un dernier modèle qui en fait n’appartient pas vraiment à une des générations à
proprement parlé.
31
Chapitre 02 Raspberry Pi
On peut dire que c’est une sorte d’ovni dans l’horizon Raspberry, C’est le plus petit et le
moins cher de la famille. Il n’appartient à aucune génération parce qu’il est en fait une version
light du Rpi1. Ce modèle est une bonne occasion de tester le Raspberry et ses fonctionnalités
à prix réduit. Il saura ravir les plus curieux malgré son cruel manque de puissance, ce n'est pas
comme un vrai Rpi car il n’a pas d’Ethernet, mais il est parfaitement adapté pour remplir le
but original de la Raspberry Fondation : lutter contre la fracture numérique et apporter le
savoir numérique à moindre coût.
Ce nouveau modèle est commercialisé 10$ à sa sortie soit deux fois plus cher que le
modèle précédent.
Fin 2012, le code de pilote GPU de Raspberry Pi fonctionnant sur ARM a été publié en
tant que source ouverte et disponible au téléchargement. Puis, en 2014, la documentation
complète au niveau du registre, comprenant une pile de pilotes graphiques du chi p, a été
publiée publiquement.
4. Composants de base
Les détails des composants de base d’une Raspberry Pi sont expliqués ci-dessous. Bien
que la liste soit basée sur la seconde génération de la carte, les détails des composants de la
première génération sont également expliqués s’ils sont différents.
dernières versions). Son circuit graphique BMC Vidéo Core 4 permet de décoder des flux
Blu-Ray full HD (1080p 30 images par seconde), d'émuler d’anciennes consoles et d'exécuter
des jeux vidéo relativement récents.
Le tableau 2.2 résume les principales caractéristiques des modèles Raspberry Pi:
33
Tableau 2.2 : Les modèles de Raspberry Pi et leurs principales caractéristiques.
Modèle Modèle Modèle Modèle Modèle 2B Modèle Zero Modèle 3B Modèle Modèle Modèle 3B+ Modèle 3A+
1B 1A 1B+ 1A+ Zero W Zero WH
Date de Avril Fevrier Juillet Novembre Fevrier 2015 Novembre 2015 Fevrier 2016 Fevrier 2017 Janvier 2018 Mars 2018 Novembre 2018
lancement 2012 2013 2014 2014
SoC BroadcomBCM2835(CPU.GPU.DSP.SDRAM. Broadcom BCM2836 Broadcom BCM2835 Broadcom Broadcom BCM2835 Broadcom BCM2837B0
port USB) BCM2837
CPU 700 MHZ ARM 1176JZF-S core(ARM11) 900 MHZ quadricoeur 01 GHZ ARM 1176JZF-S 1.2 GHZ 700 MHZ ARM 1176JZF-S 1.4 GHZ quadricoeur ARM Cortex-
ARM Cortex-A7(jeu core(ARM11) quadricoeur ARM core(ARM11) A53
d'instructions ARM v7 Cortex-A53
GPU BroadcomVideocoreIV, Open GL ES 2.0, MPEG-2 et VC-1 avec licence, 1080p30 h.264/MPEG-4 high-profile décodeur et compresseur
Memoir SDRAM 512 Mo 256 Mo 512 Mo 256 Mo 01 Go 512 Mo 01 Go 512 Mo 01 Go 512 Mo
Sortie Vidéos HDMI et composite HDMI et composite Mini HDMI et composite HDMI et composite Mini HDMI et composite (via HDMI et composite
(via prise RCA) (via connecteur JACK) (via soudure) (via connecteur soudure) (via connecteur JACK)
JACK)
Sortie Audio Stereo jack 3.5 mm (sortie son 5.1 sur la prise HDMI) et composite Mini HDMI Stereo jack 3.5 mm Mini HDMI Stereo jack 3.5 mm (sortie son 5.1
(sortie son 5.1 sur la sur la prise HDMI) et composite
prise HDMI) et
composite
Unité de lecture/ SD/MMC/fente pour Micro SD
écriture carte SDIO(3.3v)
Carte 10/100 NON 10/100 NON 10/100 ethernet NON 10/100 ethernet,wifi Wifi 802.11n Bluetooth 4.1 10/100 Wifi 802.11ac
connectionreseau ethernet ethernet 802.11n, Bluetooth ethernet(max Bluetooth 4.2
4,1 300Mbps),wifi
802.11ac,
Bluetooth 4,2
Systeme Debian GNU/Linux,Raspbian OS, Fedora,Arch Idem modéle Debian Idem modéle Debian GNU/Linux,Raspbian Idem modéle 1+Snappy
d'exploitation Linux ARM,RiscOS,FreeBSD,Plan 9,Kali 1+Snappy GNU/Linux,Raspbian OS, 1+Snappy OS, Fedora,Arch Linux Ubuntocore,SolydX RPI , Windows
Linux Ubuntocore,SolydX Fedora,Arch Linux Ubuntocore,SolydX ARM,RiscOS,FreeBSD,Plan 10 loT
RPI , Windows 10 loT ARM,RiscOS,FreeBSD,Plan RPI , Windows 10 9,Kali Linux
9,Kali Linux loT
34
Chapitre 02 Raspberry Pi
Très certainement, l’un des attraits du Raspberry Pi est imputable à ses fortes capacités
d’innovation et de créativité. En ce sens, l’ambition d’Ebon Upton et de la Fondation
Raspberry Pi d’inciter des élèves à apprendre l'informatique et de permettre à des bidouilleurs
de réaliser leurs projets les plus fous sans avoir à casser leur tirelire semble avoir atteint ses
objectifs. Voici 8 projets parmi les plus inventifs, les plus surprenants et les plus incroyables
réalisés ces dernières années avec le Raspberry Pi. Mieux encore : la plupart des inventeurs
livrent tous les détails pour reproduire leurs projets à la maison ou dans un laboratoire.
L’idée pourrait venir d’un ado discutant avec ses copains dans la cour du lycée,
imaginant que chacun puisse entendre sa musique préférée quand il entre dans une pièce. Et
voilà que le Raspberry Pi offre justement la technologie pour mettre au point un tel
système. C’est ainsi qu’est né le projet Doorjam mis en œuvre par l'agence Redpepper.
Doorjam associe une chaîne stéréo portable, un récepteur Raspberry Pi, un récepteur
Bluetooth iBeacon et une application personnalisée pour smartphone. Quand le tout a été
assemblé, chacun choisit la musique qu’il veut entendre quand il entre dans une pièce via
l'API Spotify de l'application. Dès que le système détecte la personne qui a franchi la porte, il
lance sa musique favorite. Ça ressemble à l’entrée sur le ring des boxeurs, mais pour les
comptables et les analystes de données.
35
Chapitre 02 Raspberry Pi
36
Chapitre 02 Raspberry Pi
L’idée du développeur Michael Teeuw est originale : Créer un miroir high-tech pour la
maison qui permet de voir la météo, l'heure et les principales informations du jour pendant
que l’on se prépare. Pour ce projet, le développeur a relié un miroir unidirectionnel à un écran
et fixé une carte Raspberry Pi à l'arrière. Il a réuni le tout dans une boîte. C'est un vrai « killer
concept », et son « miroir magique » a inspiré d’autres à créer leurs propres versions. Tous les
détails sur le projet Magic Mirror ainsi que des photos de toutes les variantes réalisées par
d’autres développeurs partout dans le monde sont disponibles sur le blog de Michael Teeuw.
Le Raspberry Pi a été très utilisé pour reproduire une console de jeu rétro. Mais certains
bidouilleurs ont poussé l’idée beaucoup plus loin : fabriquer une console de jeux portable.
C’est le cas de cette petite console appelée mintyPi 2.0 que l’on peut voir sur le site
Sudomod.com. Pour ce projet, le créateur Warner Skoch, connu en ligne sous le
pseudonyme Wermy, a fait rentrer un Raspberry Pi Zero, un contrôleur Nintendo DS Lite et
d’autres composants dans une boite de pastilles mentholées de la marque Altoids. Il a
complété le tout avec des pièces imprimées en 3D pour protéger les câbles. Au final, sa
console portable miniature est très léchée et facile à loger dans une poche. Wermy a présenté
son mintyPi 2.0 en avril, mais il n'a pas encore fourni de guide détaillé de tous les éléments
qu’il a utilisés pour construire sa console. Mais, il est possible d’acheter certaines des pièces
imprimées en 3D dans la boutique en ligne de Sudomod.
37
Chapitre 02 Raspberry Pi
Le Raspberry Pi n'est plus réservé à Linux. En effet, depuis un peu plus de deux ans,
Microsoft a livré une version de Windows 10 appelée Windows IoT Core compatible avec le
mini-PC. En janvier 2016, Microsoft a démarré un projet basé sur Windows IoT et sur sa
technologie de reconnaissance faciale Project Oxford pour créer un verrou intelligent : l’idée
est de permettre à une personne d’ouvrir une porte verrouillée en appuyant simplement sur la
sonnette. Le système déverrouille la porte quand il reconnaît la personne. En fait, pour réaliser
son prototype, Microsoft a utilisé une MinnowBoard Max d’Intel. Mais, il est tout à fait
possible de faire la même chose avec une carte Raspberry Pi, comme le montre Microsoft sur
Hackster.io. Le système présenté par Microsoft était juste une preuve de concept, donc assez
rudimentaire, mais il est facile de l’améliorer sans trop d’efforts. Cela dit, il est difficile de
garantir la sécurité du système, car Project Oxford étant basée sur la détection des visages
dans les images, il suffirait de montrer une photo de la personne pour tromper le système.
Reste que c’est un projet amusant à réaliser avec le Raspberry Pi.
38
Chapitre 02 Raspberry Pi
Personnaliser son banal four à micro-ondes avec une carte Pi ? C’est ce qu’a voulu faire
le développeur Nathan Broadbent. Notamment, il a doté son four de commandes vocales, d’un
scanner de code barres qui lui permet d’accéder à une base de données en ligne pour connaître
les temps de cuisson des aliments, d’une interface Web pour l'accès à distance et l’envoi de
tweets automatiques quand le temps est écoulé.
Il est devenu relativement facile de bloquer les annonces publicitaires sur son navigateur
avec un simple plug-in, mais si vous ne supportez vraiment pas les publicités, le projet Pi-hole
mérite le détour (https://pi-hole.net//). L'idée de Pi-hole est de créer un trou noir dans le
39
Chapitre 02 Raspberry Pi
réseau destinée pour piéger les annonces. Pi-hole se substitue au serveur DNS et il avale les
publicités acheminées vers toutes les machines du réseau. Il est nécessaire de procéder à
quelques ajustements sur le routeur. Les instructions sont disponibles sur le site Web de Pi-
Hole. Pi-Hole fonctionne avec le système d'exploitation Raspbian de Raspberry Pi et avec
plusieurs distributions Linux standard, dont Ubuntu, Fedora, Debian et CentOS.
C’est un projet plus coûteux, qui demande pas mal de compétences mécaniques, mais
créer son propre drone avec un Raspberry Pi est assurément très gratifiant. Le Britannique
Andy Baker explique comment il a construit un quad-copter semi-autonome préprogrammé
avec son plan de vol. C’est un très bon point de départ pour ce genre de projet. Au mois de
février, Andy Baker s’est lancé dans un nouveau projet de quad-copter.
6. Conclusion
Nous avons donné dans ce chapitre quelques détails techniques sur le système choisi
pour faire intégrer un système de reconnaissance des plaques d'immatriculation : Un
Raspberry Pi. Pour mieux maitriser l'implémentation d'un tel système on doit passer dans le
chapitre suivant à la préparation d'une conception (globale et détaillée) permettant de
décomposer le système à implémenter en un ensemble de modules. Les modules seront
détaillés par la suite selon la démarche à suivre.
41
Chapitre 03
Conception du système RAPI
Chapitre 03 Conception de système RAPI
1. Introduction
Avec l'augmentation du nombre de voitures, Le contrôle de ces voitures est trop difficile
et coûte très cher. Pour surmonter ces difficultés, nous devons utiliser un système automatisé
qui repose sur la reconnaissance des plaques d'immatriculation (RAPI).
- 00535 : signifie que ce véhicule est le "535"ème qui est entré dans la wilaya "07" (biskra) en
"2018".
La plaque a une forme de rectangulaire. Le style des caractères varie d’une plaque à une
autre et la distance entre les caractères n’est pas standardisé, elle dépend au constructeur de la
plaque. Les plaques sont blanches (à l’avant), jaunes (à l’arrière) et la couleur des caractères
est noire. Récemment les gens aiment ajouter quelques illustrations sur la plaque
d’immatriculation de leur voiture, comme par exemple le drapeau Algérien, un numéro de
téléphone, le nom de la ville ou du pays, le nom d’une entreprise, etc.....
43
Chapitre 03 Conception de système RAPI
Module de prétraitement qui va permettre de bien préparer l'image à analyser aux étapes
suivantes.
Image acquise
Prétraitement et
amélioration
Localisation
Reconnaissance de la
plaque
Matricule sous
format texte
44
Chapitre 03 Conception de système RAPI
Durant la capture des images ou des trames vidéo à travers un appareil photo numérique
(Webcam PiCamera / HR) les images peuvent contenir des bruits. La mauvaise qualité de
l'image est la principale cause d'échec de la détection de la plaque d'immatriculation du
véhicule. L'algorithme de prétraitement aide à améliorer la qualité de l'image capturée ou de
l'image extraite de la plaque. Cela implique :
a- Redimensionner l'image
Cela implique de redimensionner l'image prise à des fins d'optimisation. Le
redimensionnement est utile car la qualité de l’image diffère et afin de localiser la plaque
d'immatriculation ou de pouvoir reconnaître la plaque d'immatriculation sur l'image, le
redimensionnement sera très utile. Nous redimensionnerons alors l'image capturée à 500 px
de largeur.
La figure 3.3. présente un exemple sur l’effet d’un filtre bilatérale où les contours
restent clairs :
45
Chapitre 03 Conception de système RAPI
Figure 3.3. : Effet d’un filtre bilatéral, lissage sans perdre les contours. [HEB17]
d- Seuillage
Le seuillage est le moyen rapide de convertir l'image en niveaux de gris en une image
binaire. Ici, les pixels de l’image en niveaux de gris vont être séparés ou arrangés. L’image en
niveaux de gris contient des pixels de 0 à 255. Ainsi, 0-127 correspondra à 0 et 128-255 à 1,
46
Chapitre 03 Conception de système RAPI
ce qui explique pourquoi nous disons que c’est le moyen le plus rapide de convertir l’image
en niveaux de gris en image binaire (voir figure 3.4.).
Figure 3.4. : Le seuillage permet de convertir une image de niveaux de gris vers noir et blanc. [MAZ18]
détecter la présence d'un bord en un point d'une image, tandis que la deuxième dérivée peut
être utilisée pour déterminer si le pixel est sur l'obscurité ou sur une image [WITR18].
Afin de détecter les régions de l'image candidate à la plaque, nous appliquons tout
d'abord l'algorithme de Canny pour détecter les objets à frontière fermée. Un certain nombre
d'algorithmes d'évaluation candidats sont appliqués sur des images de contour obtenues à
partir de l'algorithme de détection de contour afin de séparer les objets de plaque. Cependant,
cet algorithme rencontre des difficultés pour traiter des images de mauvaise qualité en raison
48
Chapitre 03 Conception de système RAPI
de rayures, d’hélices de plug-in. Dans ces cas, l'algorithme de contour produit des lignes de
limites fermées incomplètes qui ne détecte pas correctement les images de la plaque.
Une étape d'évaluation des contours fermés candidats repose sur une vérification du
rapport entre la hauteur et la largeur du candidat. Nous vérifions et sélectionnons uniquement
les candidats dont le rapport hauteur / largeur est satisfait par la contrainte suivante :
Nous avons choisi Seuil min =3,5 et Seuil max = 6. Les candidats qui satisfont aux contraintes
sont sélectionnés et passés à l'étape suivante, à savoir le module de reconnaissance des
numéros de la plaque.
Les systèmes de reconnaissance optique des caractères ont été développés il y’a de ça
une vingtaine d’années et leurs performances dépend des conditions environnantes et doivent
être capables de gérer un grand nombre de difficultés possibles. Parmi lesquelles :
Une mauvaise résolution de l’image à cause d’une plaque trop éloignée ou d’une
caméra de mauvaise qualité,
a- Moteur Tesseract
b- Algorithme KNN
L’algorithme KNN figure parmi les plus simples algorithmes d’apprentissage artificiel.
Dans un contexte de classification d’une nouvelle observation x, l’idée fondatrice simple est
de faire voter les plus proches voisins de cette observation. La classe de x est déterminée en
fonction de la classe majoritaire parmi les k plus proches voisins de l’observation x. La
méthode KNN est donc une méthode à base de voisinage, non-paramétrique ; Ceci signifiant
que l’algorithme permet de faire une classification sans faire d’hypothèse sur la fonction
y=f(x1,x2,…xp) qui relie la variable dépendante aux variables indépendantes. La méthode du
plus proche voisin est une méthode non paramétrique où une nouvelle observation est classée
dans la classe d’appartenance de l’observation de l’échantillon d’apprentissage qui lui est la
plus proche, au regard des covariables utilisées. La détermination de leur similarité est basée
sur des mesures de distance. [DUP10]
On va essayer d’utiliser une des deux techniques pour faire la reconnaissance des
caractères. Donc, les caractères segmentés vont être envoyés à un algorithme de
reconnaissance, qui renvoie l'ASCII de chaque numéro de la plaque.
50
Chapitre 03 Conception de système RAPI
5. Conclusion
Nous avons présenté dans ce chapitre une conception détaillée d’un système de
reconnaissance automatique des plaques d’immatriculation. Cette conception va nous permet
de faciliter la démarche d’implémentation logiciel du système. L’implémentation sera le sujet
du chapitre suivant.
51
Chapitre 04
Implémentation du système
RAPI
52
Chapitre 04 Implémentation du système RAPI
1. Introduction
Après avoir définir et décrire les différents modules constituant un système de
reconnaissance automatique des plaques d'immatriculation, on va passer à décrire les
différents composants du système à réaliser. Nous allons, donc, décrire brièvement les
différentes étapes de la réalisation du projet. On va acheminer notre travail par
l’environnement matériel et logiciel qui assure la réalisation de notre plateforme électronique
et de ses applications.
2. Aspect matériel
Pour faire implémenter la technique RAPI selon la conception faite dans le chapitre
précédent, nous avons choisi d’utiliser un Raspberry Pi 3 modèle B+. Par rapport à celles de
son prédécesseur, la vitesse et la puissance de Raspberry Pi 3 B+ ont gagné globalement
15 %. Elle est caractérisée par :
− Communication sans fil double bande 802.11ac (2,4 GHz / 5,0 GHz),
Pour la capture des vidéos et des images nous allons utiliser une caméra Longruner
Camera pour Raspberry avec vision de nuit. Cette caméra dotée d’un capteur Omnivision
5647 possède une résolution de 5 Megapixels 2592 x 1944 pixels et une résolution vidéo
maximale de 1080p @30fps, 720p @60fps et 640*480 @90fps.
3. Aspect logiciel
Pour notre Raspberry, nous avons installé sur une carte mémoire SD le système
d’exploitation Raspbian (C’est un système d'exploitation libre et gratuit basé sur Debian
optimisé) pour faire fonctionner le Raspberry Pi. Étant donné les ressources limitées de cet
ordinateur, Raspbian utilise des logiciels réputés pour être légers : l'environnement de
bureau par défaut est PIXEL, acronyme de « Pi Improved Xwindows Environment Lightweight »,
« Environnement Xwindows amélioré et léger pour PI », le navigateur web par défaut est Chromium.
53
Chapitre 04 Implémentation du système RAPI
3.1. Python
Le langage de programmation Python [FUC19] a été créé en 1989 par Guido van
Rossum, aux Pays-Bas. Le nom Python vient d’un hommage à la série télévisée Monty
Python’s Flying Circus dont G. van Rossum est fan. La première version publique de ce
langage a été publiée en 1991.
La dernière version de Python est la version 3. Plus précisément, la version 3.7 a été
publiée en juin 2018. La version 2 de Python est désormais obsolète et cessera d’être
maintenue après le 1er janvier 2020. Dans la mesure du possible évitez de l’utiliser.
— Il est gratuit. Vous pouvez l’installer sur autant d’ordinateurs que vous voulez
(même sur votre téléphone !).
— C’est un langage interprété. Un script Python n’a pas besoin d’être compilé pour être
exécuté, contrairement à des langages comme le C ou le C++. Il convient bien à des scripts
d’une dizaine de lignes qu’à des projets complexes de plusieurs dizaines de milliers de lignes.
54
Chapitre 04 Implémentation du système RAPI
du monde réel (une cellule, une protéine, un atome, etc.) avec un certain nombre de règles de
fonctionnement et d’interactions.
— Enfin, Comme Scheme ou SmallTalk, Python est dynamiquement typé. Tout objet
manipulable par le programmeur possède un type bien défini à l’exécution, qui n’a pas besoin
d’être déclaré à l’avance.
Toutes ces caractéristiques font que Python est désormais enseigné dans de nombreuses
formations, depuis l’enseignement secondaire jusqu’à l’enseignement supérieur.
3.2. OpenCV
OpenCV (Open Source Computer Vision Library) [EBO] est une bibliothèque de
logiciels et de logiciels d'apprentissage automatique. Il a été conçu pour divers objectifs tels
que l'apprentissage automatique, la vision par ordinateur, l'algorithme, les opérations
mathématiques, la capture vidéo, le traitement d'images, … etc. , android, ios). En outre, il a
enveloppé dans divers langages de programmation renommés. Dans le cadre du contrat de
licence, les entreprises peuvent accéder au code et le modifier.
La bibliothèque contient plus de 2500 algorithmes optimisés, qui ont une excellente
précision en termes de performances et de vitesse. Ces algorithmes peuvent être utilisés pour
détecter et reconnaître des visages, identifier des objets, classer des actions humaines dans des
vidéos, suivre des mouvements de caméra, suivre des objets en mouvement, extraire des
modèles 3D d'objets, produire des nuages de points 3D à partir de caméras stéréo image d'une
scène entière, trouver des images similaires à partir d'une base de données d'images,
supprimer les yeux rouges des images prises, suivre les mouvements oculaires, reconnaître les
décors et établir des marqueurs pour la superposer à la réalité augmentée. , les développeurs et
les chercheurs, le nombre est plus de 47 000 et le nombre estimé de téléchargements dépasse
55
Chapitre 04 Implémentation du système RAPI
De nombreuses entreprises bien établies telles que Google, Yahoo, Microsoft, Intel,
IBM, Sony, Honda et Toyota qui emploient la bibliothèque, ainsi que de nombreuses startups
telles que Applied Minds, VideoSurf et Zeitera, utilisent largement OpenCV. Les utilisations
déployées d'OpenCV s'étendent de l'assemblage d'images StreetView, à la détection
d'intrusions dans la vidéo de surveillance en Israël, à la surveillance des équipements miniers
en Chine, à la détection des accidents de noyade en Europe et à l'art interactif. L'Espagne et
New York vérifient les pistes en Turquie et inspectent les étiquettes des produits dans les
usines du monde entier pour détecter rapidement les visages au Japon. Il possède des
interfaces C ++, C, Python, Java et MATLAB et supporte Windows, Linux, Android et Mac
OS. OpenCV s'appuie principalement sur les applications de vision en temps réel et tire parti
des instructions MMX et SSE lorsqu'elles sont disponibles. Des interfaces complètes CUDA
et OpenCL sont en cours de développement. Il existe plus de 500 algorithmes et environ 10
fois plus de fonctions qui composent ou supportent ces algorithmes. OpenCV est écrit
nativement en C ++ et possède une interface basée sur des modèles qui fonctionne de manière
transparente avec les conteneurs STL.
Nous allons présenter ci-dessous, sous format algorithmique, les modules du système
RAPI que nous avons fait leur conception.
Algorithme Prétraitement(trame_lue)
Entrées :
Résultats :
Début
Redimentionner(trame_lue , largeur=500)
56
Chapitre 04 Implémentation du système RAPI
Renvoyer Image_filtrée
Fin
L'algorithme 2 sert à localiser une plaque d'immatriculation s'il existe dans l'image
prétraitée. Cela sera effectuer en suivant les étapes suivantes : Conversion de l'image en noir
et blanc, l'extraction de la liste des contours fermés, le trie des contours par ordre de surface et
on va choisir enfin celui qui a quatre coins et qui va vérifier un facteur largeur/hauteur entre
3.5 et 6.
Algorithme Localizer(image_entrée)
Entrées :
Résultats :
Début
Appliquer un seuillage adaptatif sur l'image d'entrée pour avoir une image
noire et blanc
Trier la liste des contours extraites selon leurs surfaces du plus grand
vers le plus petit
Détectée faux
Détecté = vrai
Sortir de la boucle
FinSi
FinSi
FinPour
57
Chapitre 04 Implémentation du système RAPI
Si Détectée Alors
FinSi
Fin
Entrées :
Résultats :
Début
Matricule ""
Appliquer sur l'image filtrée un seuillage adaptatif pour avoir une image
noire et blanc
58
Chapitre 04 Implémentation du système RAPI
FinSi
FinPour
Renvoyer Matricule
Fin
Le dernier algorithme représente la suite des étapes à suivre pour accomplir le processus
de la reconnaissance automatique des plaques d'immatriculation.
Algorithme RAPI()
Début
(Détectée,Image_Plaque,PLargeur,PHauteur) = Localizer(Image_Filtrée)
Si Détectée Alors
Afficher(Matricule)
FinSi
FinPour
Fin
Nous avons utilisé plusieurs bibliothèques python pour arriver à réaliser notre système
RAPI. Parmi les plus importantes on peut citer les suivantes [COP19] :
a. NumPy
59
Chapitre 04 Implémentation du système RAPI
NumPy est une bibliothèque numérique apportant le support efficace de larges tableaux
multidimensionnels, et de routines mathématiques de haut niveau (fonctions spéciales, algèbre
linéaire, statistiques, etc.).
b. MatPlotLib
c. ImUtils
ImUtils est une série de fonctions pratiques permettant de simplifier les fonctions de
traitement d’images de base telles que la translation, la rotation, le redimensionnement, la
squelettisation et l’affichage facile des images Matplotlib avec OpenCV sous Python 2.7 et
Python 3.
D’un autre côté, nous avons utilisé aussi la bibliothèque de la vision par ordinateur
OpenCV. Parmi les fonctions les plus importantes on peut citer les suivantes [EBO] :
a. bilateralFilter
b. arcLength
c. findContours
60
Chapitre 04 Implémentation du système RAPI
La fonction findContours permet d’obtenir, comme son nom l’indique, tous les contours
présents dans une image binaire. Pour chaque contour obtenu, nous calculons la périphérie de
la forme pour faire ensuite une approximation des formes rectangulaires.
d. approxPolyDP
La fonction findContours trouve beaucoup trop de points pour déterminer les segments
de droite minimaux qui composent la figure. Nous devons donc utiliser une fonction
approxPolyDP qui nous permettra de réduire le nombre de point utilisé pour définir le contour
de la courbe. L’idée de cette méthode est d’approcher une courbe (un contour) par une série
de courtes droites. La fonction prend en paramètre : le vecteur 2D des points trouvés par
findContours, une valeur qui représente une précision pour effectuer l'approximation, epsilon
qui représente une valeur de 1% à 3% du périmètre donne de bons résultats, et elle va nous
renvoyer un vecteur de point qui recevra les points approximés.
e. KNearest_create, train
f. findNearest
Cette fonction sert à trouver le chiffre le plus proche de celui que nous avons donné en
appliquant l’algorithme kNN.
4. Résultats et discutions
Nous allons commencer cette partie par une présentation générale de la démarche suivie pour
localiser les plaques et identifier par la suite les chiffres dans chacune des plaques. Nous
allons passer par la suite à une analyse des résultats obtenues en utilisant un ensemble
d’images de voitures dans différents cas pour pouvoir évaluer les performances de la méthode
implémentée. Enfin, on va passer à une discussion des résultats obtenus.
Nous allons présenter ici les résultats intermédiaires de l'exécution de notre programme
en suivant les étapes de chaque module :
61
Chapitre 04 Implémentation du système RAPI
Image d'entrée Image convertis en niveaux de gris Image filtrée (Filtre bilatéral)
Image en noir et blanc Les contours détecté par un filtre de Matricule détecté
Canny
Figure 4.1. : Détection de la plaque d'immatriculation.
Nous avons séparé les résultats obtenus en deux parties ; Les résultats de module de
localisation de la plaque d’immatriculation, et les résultats du module de reconnaissance des
chiffres.
62
Chapitre 04 Implémentation du système RAPI
63
Chapitre 04 Implémentation du système RAPI
64
Chapitre 04 Implémentation du système RAPI
65
Chapitre 04 Implémentation du système RAPI
Nous avons essayé d’utiliser le moteur OCR Teserract mais il n’a pas donné des
résultats pour la reconnaissance. Nous avons, donc, décider de passer à l’utilisation du moteur
à base de l’algorithme des k-plus proches voisins. Cet algorithme nécessite de passer
premièrement par une phase d’apprentissage. Pour ce faire, nous avons utilisé un ensemble de
données (data set) téléchargé à partir de la page web : https://github.com/muchlisinadi/ALPR-
Indonesian-plate. La base originale permet de faire un apprentissage sur les lettres de A à Z et
des chiffres de 0 à 9. Nous avons extrait depuis cette base la partie permettant de reconnaitre
les chiffres seulement où chacune des dix classes (représentant un chiffre par son code ASCII)
comporte cinq observations différentes pour le même chiffre.
Pour qu’on puisse évaluer le module de la reconnaissance nous avons essayer d’extraire
66
Chapitre 04 Implémentation du système RAPI
manuellement les zones d’image contenant les plaques. Les images extraites sont passés
directement au module de la reconnaissance des chiffres. Le module va segmenter l’image de
la plaque pour extraire les zones contenant des chiffres, et va passer par la suite chaque
segment au moteur de reconnaissance à base de l’algorithme de k-plus proches voisins. Les
résultats obtenus sont présents dans le tableau 4.3.
67
Chapitre 04 Implémentation du système RAPI
68
Chapitre 04 Implémentation du système RAPI
14
0769311407 10 0769371407 09 0769372407 08
15
Non détecté 00 Non détecté 00 Non détecté 00
16
8348910487 07 8348930487 06 8340930407 08
17
8841318987 06 8841318987 06 0641310907 10
18
Non détecté 00 Non détecté 00 Non détecté 00
19
8614574947 05 0644574447 04 8644544947 04
20
0811518887 05 0841548987 04 0834548807 03
21
Non détecté 00 Non détecté 00 Non détecté 00
22
8843010807 07 8643040807 07 0843040307 07
23
0653310807 10 0653310807 10 0653310807 10
24
0653310807 10 0653310807 10 0653310807 10
25
Non détecté 00 Non détecté 00 Non détecté 00
26
Non détecté 00 Non détecté 00 Non détecté 00
27
847071898 06 847074898 05 047074090 08
28
Non détecté 00 Non détecté 00 Non détecté 00
69
Chapitre 04 Implémentation du système RAPI
29
Non détecté 00 Non détecté 00 Non détecté 00
30
Non détecté 00 Non détecté 00 Non détecté 00
31
6345810107 08 6346810107 08 6346810107 08
32
8340810107 09 0340810107 10 0340810107 10
33
0523210207 10 0523210207 10 0523210207 10
34
68415412070 07 68415412670 06 63415412678 06
35
0496810071067 09 0496810011007 10 0496800073067 08
36
10187 04 10107 05 10107 05
37
0494448907 07 0404443307 05 0404443307 05
38
8491419987 08 0491419987 09 0493439907 08
39
Non détecté 00 Non détecté 00 Non détecté 00
40
0128313307 08 0128343307 07 0423343307 06
41
022431607 09 022431607 09 022431607 09
42
0224311687 09 0224311607 10 0224311607 10
43
8888811487 05 8888814487 04 8806034407 07
70
Chapitre 04 Implémentation du système RAPI
44
8808811407 07 8808034407 06 0806034407 08
45
83382184871 07 83382184871 07 03382104071 10
46
833821848750 07 033821848760 08 033822048760 08
47
0843010807 08 8843040807 06 0843040807 07
48
1046511287 09 3048531207 07 1048531207 08
49
Non détecté 00 Non détecté 00 Non détecté 00
50
Non détecté 00 Non détecté 00 Non détecté 00
51
Non détecté 00 Non détecté 00 Non détecté 00
52
8871831807 06 8874634807 05 0074634807 07
53
8248838886 03 8248830885 05 0240830805 08
54
0882711107 09 0682711107 10 0882711107 09
55
0032711107 07 0682711107 10 0632111107 08
56
4328189877 06 4320139877 07 4320188077 07
57
8432018807 07 2422043907 06 0432048807 07
58
00088838007 07 00038333007 07 70038333007 06
71
Chapitre 04 Implémentation du système RAPI
59
880027210807 10 800027210887 09 880027210807 10
60
0027210807 10 8027218807 08 0027210807 10
61
0547110107 10 8547330307 06 0547330307 07
62
8444818887 06 0444810007 10 0444818087 08
63
Non détecté 00 Non détecté 00 Non détecté 00
64
8395710707 09 8895710707 08 0896710707 09
65
0785440607 08 0785440607 08 0785440807 07
66
8611611187 06 8613531187 05 0633531107 05
67
8511511187 08 8511577787 05 0511517107 09
68
4475614747 07 4476640707 07 4475640707 08
69
0475610707 10 0475640707 09 0475640707 09
70
8558111807 06 8558411007 07 0558434007 06
71
8558111987 06 0558333087 05 0558333007 06
72
015648807 07 045648807 06 045648807 06
73
050607 06 050807 05 050607 06
72
Chapitre 04 Implémentation du système RAPI
74
0437818887 06 0437030807 08 0437010807 09
75
0110518107 09 8110518407 07 0440548407 05
76
Non détecté 00 Non détecté 00 Non détecté 00
77
0841511187 08 0844543487 04 0844543407 05
78
Non détecté 00 Non détecté 00 Non détecté 00
79
4374240407 07 0374340407 09 8374340407 08
80
0484918147 09 8484978787 06 0484918787 08
73
Chapitre 04 Implémentation du système RAPI
Pour les cas des plaques non détectées, nous avons constaté que cela est due à plusieurs
facteurs tel que :
a- Un des chiffres de la plaque est collé juste à la frontière de la plaque : Dans ce cas, et
si le niveau de gris de la couleur juste à côté du chiffre est proche de celui de la voiture
le contour de la plaque ne sera pas fermé, et par la suite ne sera pas détectée (Les cas
A et B).
d- Les dessin ou motifs ajoutés sur la plaque affectent la bonne détection parce qu’ils
changent la forme rectangulaire de la plaque. La technique ne prend en compte que les
contours à quatre côtés (espérant d’être des contours rectangulaires) pour l’évaluation.
(les cas I et J).
e- L’éclairage faible de la scène où la voiture est capturée peut entrainer des fausses
détections de contours, surtout dans les cas des voitures à couleurs sombres. (les cas K
et L).
f- Parmi les cas de fausse détection, est le cas où le premier grand contour fermé répond
aux critères (quatre côtés et facteur largeur/hauteur) sera considéré comme étant une
zone de plaque. (le cas M)
74
Chapitre 04 Implémentation du système RAPI
a- Problèmes de détection des segments représentant les chiffres : Pour ce cas nous
avons constaté qu’il existe plusieurs causes de ce problème tel que :
La forme inclinée de la plaque qui peut conduire à détecter une fausse mesure
de la hauteur de la plaque (les cas 6, 8, 13 et 15 par exemple). Le même cas se
reproduise s’il y’a des zones supplémentaires détectées avec la plaque (les cas
34, 45, 46 et 59 par exemple). La solution consiste à détecter au premier lieu
s’il y-a une capture inclinée de la plaque (en utilisant le transformé de Hough
par exemple) et de faire corriger cette inclinaison pour avoir une partie plaque
rectangulaire.
La taille petite des segments ou la qualité faible des images capturés (flou) peut
entrainer des fausses identifications. Une des solutions est de capturer des
images (vidéos) à haute résolution ce qui va entrainer des coûts
supplémentaires de calcul, ou de faire des captures très proches à la voiture
pour avoir des images de plaques plus grandes.
75
Chapitre 04 Implémentation du système RAPI
5. Conclusion
Nous avons présenté dans ce chapitre la démarche suivie pour implémenter un système
de reconnaissance automatique des plaques d’immatriculation dans leurs côtés ; matériel et
logicielle. Nous avons présenté séparément, par la suite, les résultats obtenus pour les deux
modules ; localisation et reconnaissance. Enfin, nous avons fait une analyse des résultats
obtenues en présentant les problèmes rencontrés et les solutions proposés pour améliorer le
travail.
76
Conclusion générale
Conclusion générale
Le présent travail représente une étude sur les systèmes de reconnaissance automatique
des plaques d’immatriculation suivi d’une conception et une implémentation de tel système
sur un ordinateur à puce « Raspberry Pi » en tant qu’un système embarqué, dans lequel nous
nous sommes intéressés à extraire la zone de la plaque en utilisant les contours et à identifier
par la suite le matricule correspondant en utilisant l’algorithme des k-plus proche voisins.
Premièrement nous avons exposé des généralités sur le domaine de traitement des images
dont on a utilisé plusieurs techniques et concepts de bases dans ce domaine : Conversion en
niveaux de gris, seuillage, détection de contours, … etc. Ensuite nous avons introduit une
étude technique sur « Raspberry Pi », dont on a présenté des généralités suivies d’un
historique sur cet ordinateur à puce. Nous avons donné aussi une idée sur les composants
électroniques du « Raspberry Pi » et aussi quelques projets réalisés qui sont réalisés avec.
Pour tester et évaluer notre système de reconnaissance, nous avons utilisé une base de
données des plaques d’immatriculation algérienne téléchargés depuis internet.
Parmi les systèmes RAPI existants nous avons choisi celui utilisant l’approximation des
contours et les caractéristiques des plaques pour classifier et extraire le contour le plus
approprié à une plaque, du fait que ces techniques nous offrent des temps de calculs un peu
rapide par rapport à d’autres. Pour les systèmes de reconnaissances nous avons utilisé un
algorithme de k-plus proches voisins du fait qu’il est facile à implémenter et à utiliser.
Les résultats obtenus peuvent être jugé comme étant acceptables, pour un système
complexe traitant une multitude de données pour localiser des zones composées sur des
images (La plaque est une zone rectangulaire qui contient plusieurs segments à savoir qu’ils
77
Conclusion générale
soient des chiffres ou non). Malgré les efforts déployés pour améliorer les résultats obtenus on
arrive qu’à détecter que 41 % des plaques des voitures utilisés comme base de teste, et
quelques problèmes pour la reconnaissance des chiffres extraits de chaque plaque.
Comme perspective, et pour arriver à améliorer ce travail nous pouvons citer qu’il est
possible de faire plusieurs autres expériences pour arriver à fixer les bons facteurs et les bons
seuils. De même nous pouvons utiliser une base d’apprentissage plus large pour le moteur des
k-plus proches voisins parce que la base utilisée comporte cinq observations pour chacune des
dix classes des chiffres pour améliorer le taux de reconnaissance. De plus, nous pouvons
tester d’autres techniques de localisation tel que celles qui basent sur les propriétés
chromatiques des plaques et nous pouvons aussi tester d’autres techniques de reconnaissance
des chiffres tel que les réseaux de neurones.
78
Annexe L’algorithme des k-plus proches voisins
Annexe
L’algorithme des k-plus proches voisins (K Nearst Neighbors - kNN)
Pour effectuer une prédiction, l’algorithme K-NN ne va pas calculer un modèle prédictif à
partir d’un Training Set comme c’est le cas pour la régression logistique ou la régression
linéaire. En effet, K-NN n’a pas besoin de construire un modèle prédictif. Ainsi, pour K-
NN il n’existe pas de phase d’apprentissage proprement dite. C’est pour cela qu’on le
catégorise parfois dans le Lazy Learning. Pour pouvoir effectuer une prédiction, K-NN se
base sur le jeu de données pour produire un résultat.
Par ailleurs :
Si K-NN est utilisé pour la régression, c’est la moyenne (ou la médiane) des
variables y des K plus proches observations qui servira pour la prédiction.
Si K-NN est utilisé pour la classification, c’est le mode des variables y des K plus
proches observations qui servira pour la prédiction.
3. Ecriture algorithmique
On peut schématiser le fonctionnement de K-NN en l’écrivant en pseudo-code suivant
[BEZ18]:
79
Annexe L’algorithme des k-plus proches voisins
Début Algorithme
Données en entrée :
un ensemble de données D .
Un nombre entier K
Pour une nouvelle observation X dont on veut prédire sa variable de sortie y Faire :
1. Calculer toutes les distances de cette observation X avec les autres observations du jeu
de données D
4. Retourner la valeur calculée dans l’étape 3 comme étant la valeur qui a été prédite par
K-NN pour l’observation X.
Fin Algorithme
80
Annexe L’algorithme des k-plus proches voisins
Il est inutile de coder, soi-même ces distances, généralement, les librairies de Machine
Learning comme Scikit Learn, effectue ces calculs en interne. Il suffit juste d’indiquer la
mesure de distance qu’on souhaite utiliser.
La distance euclidienne:
Distance qui calcule la racine carrée de la somme des différences carrées entre les
coordonnées de deux points :
(x,y)= ……….Eq 01
Distance Manhattan :
La distance de Manhattan: calcule la somme des valeurs absolues des différences entre
les coordonnées de deux points :
(x,y)= ……………Eq 02
Distance Hamming :
la distance entre deux points données est la différence maximale entre leurs
coordonnées sur une dimension.
(x,y)= ……………...Eq 03
Avec
- x=y ==> D = 0
- x≠y ==> D = 1
Notez bien qu’il existe d’autres distances selon le cas d’utilisation de l’algorithme, mais
la distance euclidienne reste la plus utilisée.
81
Annexe L’algorithme des k-plus proches voisins
voisins avec K=N et N étant le nombre d’observations, on risque d’avoir du overfitting et par
conséquent un modèle qui se généralise mal sur des observations qu’il n’a pas encore vu
[BEZ18].
Sur la figure 1ci-dessus, l’image à gauche représente des points dans un plan 2D avec
trois types d’étiquetages possibles (rouge, vert, bleu). Pour le 5-NN classifieur, les limites
entre chaque région sont assez lisses et régulières. Quant au N-NN Classifier, on remarque
que les limites sont “chaotiques” et irrégulières. Cette dernière provient du fait que
l’algorithme tente de faire rentrer tous les points bleus dans les régions bleues, les rouges avec
les rouges etc… c’est un cas d’overfitting.
Pour cet exemple, on préférera le 5-NN classifier sur le NN-Classifier. Car le 5-NN
classifier se généralise mieux que son opposant.
6. Exemple d’application
Les figures 1 et 2 illustrent comment la méthode des k plus proches voisins résoud une tâche
82
Annexe L’algorithme des k-plus proches voisins
Figure A.2 : Classification d'une nouvelle observation : les 3 plus proches voisins appartiennent à la classe 2.
[GUIW19]
FigureA.3 : Classification d'une nouvelle observation : 2 des 3 plus proches voisins appartiennent à la classe 2.
[GUIW19]
7. Limitations de K-NN
K-NN est un algorithme assez simple à appréhender [BEZ18]. Principalement, grâce au
fait qu’il n’a pas besoin de modèle pour pouvoir effectuer une prédiction. Le contre coût est
qu’il doit garder en mémoire l’ensemble des observations pour pouvoir effectuer sa
prédiction. Ainsi il faut faire attention à la taille du jeu d’entrainement.
83
Bibliographie
Bibliographie
[BAI04] BAI, H LIU C.”A hybrid license plate extraction method based on edge statistics
and morphology in :proceedings of the 17th international conference on pattern
recognition” vol 2, pp, 831 ,23-26Aug 2004
[BEN18] Ben khalfa Ismail, " Réalisation d’un système de contrôleautour de Raspberry Pi
pour ladomotique", Mémoire de Master en électronique (Electronique des systèmes
embarqués), Université Mohamed Khider Biskra, Juin 2018.
[CHE07]. Mohamed cheriet, Nawwaf kharma, Cheng lin liu, Ching y suen, " Character
Rocognition System" 2007
[COP19] Yannick Copin, "Analyse scientifique avec Python", Cours en ligne, Février 2019.
URL : https://buildmedia.readthedocs.org/media/pdf/informatique-
python/m2/informatique-python.pdf
[DAI01] Dai, Y., Ma, H., Liu, J., Li, L.:, “A high performance license plate recognition system based
on the web technique”. In: Proceedings of IEEE Intelligent Transportation Systems, pp.
325–329 (2001)
[DLA02] Dlagnekov, L., “Video-based car surveillance: License plate makes, and model
recognition”. Dissertation, U.C. San Diego. AdaBoost and a detector cascade. In: NIPS,
vol. 14 (2002).
84
Bibliographie
[DUP10] Eve Mathieu-Dupas, "Algorithme des k plus proches voisins pondérés et application
en diagnostic", Article au 42èmes Journées de Statistique, Laboratoire INRIA 2010,
Marseille, France.
[DVA05] David, L., Andres, M., Vicente, P., Juan,V.: “Car license plates extraction and recognition
based on connected components analysis and HMM decoding”. In: IbPRIA, vol. 1, pp.
571–578 (2005)
[ELL90] Elliman, G., Lanxaster, T.: “A review of segmentation and contextual analysis techniques
for text recognition”. In: Pattern Recognition, vol. 23, No. 3337–346 (1990).
[FUC19] Patrick Fuchs et Pierre Poulain, "Cours de Python", Cours de Université Paris
Diderot-Paris 7 – Paris – France, Mai 2019.
URL : https://python.sdv.univ-paris-diderot.fr/cours-python.pdf
[GUIW19] Adrien Guille, ”Méthode des k plus proches voisins”, Cours en ligne, Université
Lyon 2, consulté le : 15-06-019.
U.R.L. : http://mediamining.univ-
lyon2.fr/people/guille/m4101/k_plus_proches_voisins.html
[HEB17] Patrick Hébert et Denis Laurendeau, "Traitement des images (Partie 1: pré-
traitement)", Cours de traitement d’images, Université Laval, Mai 2017.
URL :http://wcours.gel.ulaval.ca/2017/a/GIF4100/default/5notes/A2017TraitementI
magesPartie1PageWeb.pdf
[JSE82] J.Serra, “Image Analysis and Mathematical Morphology”, Academic Press, London, 1982.
[JXI05] JXifan, S., Weizhong, Z., Yonghang, S., “Automatic license plate recognition system based
on color image processing”. ICCSA4, 1159–1168 (2005).
[MAT05] Matas, J., Zimmermann, K., “Unconstrained licence plate Detection”, In: Proceedings of
the 8th International IEEE Conference on Intelligent Transportation Systems.pp. 572–577,
isbn 07803-9216-7, Wien Austria (2005)
[NIJ95] Nijhuis, J., Brugge, M., Helmholt, K., Pluim, J., Spaanenburg, L., Venema,R., Westenberg
M., “Car license plate recognition with neural networks and fuzzy logic”, In: Proceedings
of IEEE Inter-national Conference on Neural Networks, vol. 5, pp. 2232–2236(1995)
85
Bibliographie
[OTS79] Otsu, N.: A threshold selection method from Gray level histograms. In: IEEE Transactions
on Systems, Man, and Cybernetics, vol.SMC-9, pp. 62–66 (1979)
[PAJ17] AshwinPajankar, " Raspberry Pi, Image Processing, Programming", Edition APress,
2017.
[PAM02] P. A. Mlsna and J. J. Rodriguez, ’’Gradient and Laplacian type edge detection’’, In
handbook of Image and Video Processing, Academic Press (2002)).
[PAR96] Parker, J., Federl, P., “An approach to license plate recognition”. In: Computer Science
Technical reports, University of Calgary, Alberta Canada, 591–11, October (1996).
[PAU1] Ian Paul, "8 projets Raspberry Pi vraiment innovants", Article sur web, TOUTE
L'ACTUALITÉ / HARDWARE, publié le 28 Juin 2017.
URL : https://www.lemondeinformatique.fr/actualites/lire-8-projets-raspberry-pi-
vraiment-innovants-68673.html
[SHY04] Shyang-Lih, C., Li-Shien, C., Yun-Chung, C., Sei-Wan, C.Automatic license plate
recognition. In: IEEE Transactions on Intelligent Transportation Systems, vol.5, No.1,
pp.42–53(2004)
[SWI10] Gérard Swinnen, "Apprendre à programmer avec Python 3", Edition Eyrolles
(Paris), 2010.
URL : http://inforef.be/swi/python.htm
86