La These
La These
La These
L'œil occupe une place privilégiée chez les êtres vivants. Il n'est pas étonnant que les
scientifiques essaient de le reproduire artificiellement à l'aide de caméras,
d'ordinateurs et d’algorithmes. La vision par ordinateur est un des axes majeurs
utilisés pour la robotique et pour toutes les applications d'analyse et de traitement
d'images.
Le rôle de la vision est d'apporter une perception dynamique de l'environnement
évolutif ou non. Le robot évolue dans un environnement dont il fait partie et doit sans
cesse l'observer et en relater les différents changements. Grâce au progrès de
l'électronique et de l'informatique, la vision artificielle s'est considérablement
améliorée au point de devenir un capteur intelligent.
Le domaine de la vision artificielle est vaste. Bon nombre de corps de métier s'y
intéressent de près comme de loin, cela va des militaires, à la médecine afin d'assister
les chirurgiens dans les opérations de microchirurgie ou de la reconstruction
anatomique du corps et de la robotique mobile.
Quel que soit le domaine d'application, le principe général est identique. A partir d'une
image ou séquence d'images, sont analysées des informations issues des scènes
tridimensionnelles, Afin d'informer le système et de l'aider à la prise de décision dans
le cas d'une intelligence artificielle.
La vision artificielle est aussi beaucoup étudiée et utilisée pour les systèmes artificiels
de navigation, en particulier pour les véhicules dits intelligents, c’est-a-dire présentant
un certain degré d’autonomie. La capacité d’un tel véhicule a se localiser et a se
mouvoir dépend en grande partie de la connaissance de son environnement. La vision
artificielle ou vision par ordinateur s’est avéré un moyen privilégié.
1
L’étude menée dans ce projet, qui a été conduite par notre promoteur est basée sur la
conception et le développement d’un module de reconnaissance des panneaux de
signalisation routières.
Les panneaux routiers sont acquis à partir d'une voiture qui se déplace le plus souvent
sur des routes chaotiques et à des vitesses variables et autorisées pour un cycle urbain.
La principale difficulté rencontrée, est d'essayer de minimiser l'impact des vibrations
sur l'image à analyser.
La nature et le type de panneaux routiers, sans occlusion, sont analysés à partir de leur
couleur.
La méthode de reconnaissance utilisée est celle du k plus proche voisin (KPPV)
appliqué sur les contours des panneaux.
La reconnaissance d’objets est un sujet particulièrement relativement difficile au
problème de la détection, en raison notamment de la variabilité d’apparence, et des
situations possibles.
2
Chapitre I Généralités sur la vision artificielle
I.1. Introduction
C'est, entre autres, discerner et reconnaître les formes, les couleurs et les textures du
monde qui nous entoure.
On pourrait croire, à tort, que nous avons besoin uniquement de nos yeux pour
Cela, mais la réalité est tout autre : nos yeux ne servent qu'à capter le signal contenu
dans les rayons lumineux qui viennent frapper nos rétines, pas à en extraire des
informations. C’est le travail de la zone de notre cerveau que nous appelons le cortex
visuel, cela veut dire que la vision, c'est l'association entre le sens de la vue et un
ensemble de processus cognitifs pour lesquels nous avons besoin d'utiliser notre
cerveau.
Aujourd'hui, cela fait déjà bien longtemps que nous avons donné le sens de la vue aux
ordinateurs (et notamment aux robots) grâce aux caméras numériques, mais si l'on se
fie à la définition que nous venons de formuler, cela ne suffit pas à les doter de vision :
il leur manque encore la capacité à extraire des informations des images et des flux
vidéo, de manière à percevoir, analyser et comprendre le monde qu'ils observent.
C'est ici qu'intervient ce vaste domaine de recherche qu'est la vision par ordinateur, à
la croisée des chemins entre les mathématiques, le traitement du signal et
l'intelligence artificielle.
La vision par ordinateur se base essentiellement sur le traitement d’image pour
effectuer des taches comme la segmentation d'objets, la reconnaissance de formes, la
3
détection du mouvement, le suivi de cibles et autres techniques. Pour pouvoir
effectuer ces taches, on utilise des outils qu’on appelle : outils de traitement d’images,
donc on parlera de quelques notions de base de traitement d’image, plus précisément
les outils qu’on utilise au cours de notre projet (reconnaissance de panneaux routier).
5
Figure I.4 : Reconnaissance des matricules
I.2.2.Image numérique
Le terme image numérique désigne, dans son sens le plus général, toute image qui a
été acquise, traitée et sauvegardée sous une forme codée représentable par des
nombres (valeurs numériques).
La numérisation est le processus qui permet de passer de l’état d’image physique (tel
que l’image optique) qui est caractérisée par l’aspect continu du signal qu’elle
représente (une infinité de valeurs dans l’intensité lumineuse par exemple), à l’état
d’image numérique qui est caractérisée par l’aspect discret (l’intensité lumineuse ne
peut prendre que des valeurs quantifiées en un nombre fini de points distincts). C’est
cette forme numérique qui permet une exploitation ultérieure par des outils logiciels
sur ordinateur [2].
L’image en pixels se présente sous forme d’une grille constituée d’une multitude de
points, comparable à une mosaïque : c’est ce qu’on appelle les pixels.
6
I.2 .3 Les plans de l’image couleur
• le modèle RGB: Dans le modèle RGB, une couleur est définie par la part qu'elle
contient dans chacune des couleurs fondamentales Rouge, Green (vert) et Bleu
. Chaque couleur a donc une valeur pour le rouge, une valeur pour le vert et
une valeur pour le bleu. Chacune des trois valeurs est définie par des nombres
entre 0 et 255. La valeur 0 signifie: aucune part de la couleur fondamentale
concernée, la valeur 255 signifie: la part maximale de la couleur fondamentale
concernée. Un bleu foncé a, d'après ce schéma par exemple, la valeur de
couleur 0, 0,153. ((0 rouge, 0 vert, 153 bleu). D'après ce schéma, jusqu'à 16,7
million de couleurs différentes peuvent être définies. Figure 1.6.
7
L'illustration ci-contre montre une boite de dialogue typique
d'un programme graphique, qui permet de définir les coloris
d'après le modèle HSB.
I.2.4.Types d’image
a- Image à niveau de gris
Le niveau de gris est la valeur de l’intensité lumineuse en un point, celle-ci varie de la
lumière vers l’absence totale de la lumière. Une image en niveau de gris est une image
composée de points gris plus ou moins foncés. Pour chaque point, l’ordinateur
enregistre une valeur de gris entre le noir et le blanc. Par convention la valeur ‘0’
représente le noir (intensité lumineuse nulle) et la valeur 255 le blanc (l’intensité
lumineuse maximale), chaque pixel étant représenté par un octet, (en général on
sauvegarde les images à 256 teintes de gris)[3]
Couleur BLANC GRIS GRIS GRIS GRIS GRIS GRIS GRIS NOIR
12.5% 25% 37.5% 50% 62.5% 75% 87.5%
8
Figure I.8. Image niveau de gris.
b- Image binaire
Parmi les images numériques, les images binaires sont les plus simples. Bichromes (la
plupart du temps noire et blanche) elles sont ontologiquement numériques c'est-à-dire
que leur codage et leur décodage peuvent être faits directement vers la base 2.
c- Image Truecolor
Image Truecolor, ou image RGB, représente directement les valeurs de couleurs, au
lieu d’être exprimée à travers une palette de couleurs ou colormap. Une image
truecolor est un tableau de dimension m*n*3, avec m*n les dimensions de l’image et 3
représente les composantes de couleurs R, V et B. Donc pour chaque pixel (x ,y) de
l’image, la couleur est représentée par le triplet (x, y, 1:3).
9
R V B Couleur
0 0 0 Noir
255 0 0 Rouge
0 255 0 Vert
0 0 255 Bleu
I.3.Traitement d’image
Le traitement d'images désigne 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. Il n'y a pas création
d'informations, mais mise en évidence de l'information pertinente déjà présente.
I.3.1-Histogramme
Un histogramme est un graphique statistique permettant de représenter la
distribution des intensités des pixels d'une image, c'est-à-dire le nombre de pixels pour
chaque intensité lumineuse, il représente le niveau d'intensité en abscisse en allant du
plus foncé au plus clair.
Ainsi, l'histogramme d'une image en 256 niveaux de gris sera représenté par un
graphique possédant 256 valeurs en abscisses, et le nombre de pixels de l'image en
ordonnées.
10
L’histogramme est le premier outil permettant de se rendre compte de la qualité
intrinsèque d’une image, qui permet de voir la qualité d’information en fonction du
niveau de densité et de vérifier si l’image présente des détails dans les ombres et dans
les hautes lumières [4].
Pour les images en couleur plusieurs histogrammes sont nécessaires. Par exemple pour
une image codée en RGB, on a un histogramme représentant la distribution de la
luminance et trois histogrammes représentant respectivement la distribution des
valeurs respectives des composantes rouges, bleues et vertes. [5]
3000
2500
2000
1500
1000
500
a-Egalisation d’histogramme
Elle a pour but d'harmoniser la répartition des niveaux de luminosité de l'image, de
telle manière à tendre vers un même nombre de pixel pour chacun des niveaux de
l'histogramme. Cette opération vise à augmenter les nuances dans l’image [5] voir
Figure I.10.
11
Figure I.10. Image d’un robot a niveau de gris avant et après égalisation
b-Rehaussement de contraste
Ou étirement de l’histogramme, on l’appelle aussi expansion de la dynamique, il
consiste à recadrer l’image en étalant les fréquences d’apparition des pixels sur la
largeur de l’histogramme, afin que la plus faible valeur soit à 0 et la plus haute soit à
255 (maximum).
12
I.3.2- Seuillage
Une image numérique, pour pouvoir être exploitée a généralement besoin d’être
simplifiée, c'est le but du seuillage. Ce dernier consiste à transformer l'image codée sur
6, 8 ou 16 bits, en une image binaire ou les pixels à 1 correspondent aux objets et les
pixels à 0 au fond de l'image. A la différence des autres traitements de l'image
numérique, le seuillage est un passage obligatoire pour toute analyse morphologique
ultérieure. Le seuillage permet de sélectionner les parties de l'image qui intéressent
l'opérateur, par exemple 2 types de grains (blancs et sombres) dans un mélange. On
peut donc, par exemple, attribuer à tous les pixels de l'image numérique qui ont un
niveau de gris compris entre deux valeurs i1 et i2, choisies par l'opérateur, la valeur 1;
à tous les autres pixels est attribuée la valeur 0. Après seuillage, les parties de l'image
sélectionnées seront traduites en noir et blanc. L'image, digitalisée par l'ordinateur (0
et1), est appelée image binaire. Cette dernière, tout comme l'image numérique
contient des informations superfétatoires, qu'il convient d'éviter, ou masquées qu'il
faut révéler [6]
I.3.3- Segmentation
La segmentation, consiste à Identifier et définir des objets dans l’image en divisant
l’image en zones homogènes afin de séparer les divers composants visibles et de les
13
identifier. Deux approches sont nécessaires pour la réalisation de la segmentation,
regroupement des pixels présentant une caractéristique commune, dérivée par
exemple de l’intensité des pixels (région) et mise en place des frontières aux positions
qui rendent localement maximale la variation d’un critère (contour). Ces deux
conceptions sont duales : une région définit son contour, un contour définit une région
[7]
Détection de contours
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.
14
Figure I.14. Image originale binarisé et son contour.
(I-1)
Ou I est l’image qui sera dilatée, S est un ensemble de points de coordonnées connues.
L’effet de base de l’opérateur de dilatation sur une image binaire est d’agrandir
progressivement les limites des régions noires de l’image. Donc les régions blanches de
l’image grandissent en dimensions.
15
• Erosion :
Il s'agit ici d'éliminer les points blancs isolés. La méthode est assez similaire à celle de
la dilatation. L’opération d’érosion est définit par [21]:
(I-2)
L'effet de base de l'operateur de l'érosion est d’éroder les limites des régions de
couleur blanche. Donc les régions d'images élémentaires de couleur blanche
diminuent en dimensions, et les régions élémentaires de couleur noire deviennent plus
grandes. La dilatation et l’érosion peuvent être combinées pour créer d’autres
opérateurs morphologiques plus complexes pouvant résoudre une variété de
problèmes [21].
• L’ouverture est une opération d’érosion suivie d’une dilatation, elle est définie
par [20]:
(I-3)
• La fermeture est une opération de dilatation suivie d’une érosion, elle est
donnée par [20]:
(I-4) [7]
• 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 Sobel : la technique précédente est améliorée en remplaçant le filtre
rectangulaire par un filtre triangulaire.
Filtre dérivées secondes : celles-ci se calculent simplement en différences finies
et c'est maintenant un changement de signe qui correspond à un point d'un
contour. On les utilise généralement à travers leur somme qui est le laplacien.
I.3.5- Filtrage
Le principe du filtrage est de modifier la valeur des pixels d'une image, généralement
dans le but d'améliorer son aspect. En pratique, il s'agit de créer une nouvelle image
en se servant des valeurs des pixels de l'image d'origine. On peut citer quelques types
de filtrage
16
a-Filtres linéaires
Un filtre linéaire transforme un ensemble de données d'entrée en un ensemble de
données de sortie selon une opération mathématique appelée convolution. Lorsqu'il
s'agit de données numérisées comme dans le cas du traitement d'image, la relation
entre les valeurs des pixels de sortie et celle des pixels d'entrée est décrite par un
tableau de nombres, généralement carré, appelé matrice de convolution. Le temps de
calcul est souvent réduit lorsqu'on veut séparer un filtre en deux filtres dont la
convolution mutuelle permet de le reconstituer. Cette remarque est utilisée en
particulier pour créer un filtre à deux dimensions à partir de deux filtres à une seule
dimension (vecteurs) dans le sens horizontal et le sens vertical.
Ils sont conçus pour régler les problèmes des filtres linéaires, sur tout pour ce qui
concerne la mauvaise conservation des contours. Leur principe est le même que celui
des filtres linéaires, il s’agit toujours de remplacer la valeur de chaque pixel par la
valeur d’une fonction calculée dans son voisinage, la seule différence c’est que cette
fonction n’est plus linéaire mais une fonction quelconque (elle peut inclure des
opérateurs de comparaisons).
Filtre médian
Sur un voisinage à huit, le nouveau niveau de gris du pixel centre est choisi comme
étant la valeur médiane de tous les pixels de la fenêtre d’analyse centrée sur ce
dernier. Son avantage est qu’il garde la netteté des éléments qui constituent l’image
sans étaler les transitions.
19 30 12 19 30 12
15 18 11 15 16 11
26 16 14 26 16 14
30 26 19 18 16 15 14 12 11
17
Figure I.15. Principe du filtre médian
Filtre maximum
19 30 12 19 30 12
15 18 11 15 30 11
26 16 14 26 16 14
30 26 19 18 16 15 14 12 11
Filtre minimum
18
19 30 12 19 30 12
15 18 11 15 11 11
26 16 14 26 16 14
30 26 19 18 16 15 14 12 11
c-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.
I.5 Conclusion
Après avoir présenté quelques notions sur la vision par ordinateur, ainsi que quelque
technique de traitement d’image, on détaille au chapitre suivant Une des objectifs de la
vision assisté par ordinateur qui est la reconnaissance des panneaux routier. On fait un
état de l’art des dernières méthodes Utilisée.
20
Chapitre II Reconnaissance de panneaux de
signalisation routière
II.1.Introduction
Parmi les outils les plus difficiles en vision par ordinateur et les plus utilisés pour ces
véhicules, la reconnaissance automatique d’objets. Elle est en même temps une étape
primordiale pour la mise en œuvre de plusieurs applications actuelles qui nécessitent
une interprétation de haut niveau d’images. Par conséquent, il existe un intérêt
croissant sur ce domaine de recherche dans les dernières années et une vaste
littérature.
Les panneaux routiers sont aussi vieux que les routes. Les premiers signes furent ceux
donnant les directions. L'Empire romain a érigé des bornes, en colonnes de pierres, le
long des routes pour indiquer les distances jusqu'à Rome. Au Moyen Âge, les signaux
directionnels devinrent courants, indiquant la direction des villes aux carrefours.
Inscrites sur des colonnes ou des bornes, les indications sont progressivement, à partir
du XVIIIe et auXIXe siècle, placées sur des plaques (en fonte, à partir de 1835),
dites plaques de cocher, fixées sur les murs, les croix ou obélisques des carrefours, ou
sur des poteaux métalliques.
21
La signalisation devint beaucoup plus importante avec le développement de
l'automobile. Les principes de base de la plupart des signalisations furent définis
le 11 octobre 1908 lors du premier congrès international de la route à Rome. [8]
II.2.1.Introduction
La conduite assisté par ordinateur a pour objectif d’aider le conducteur a prendre les
bonnes décisions dans des circonstances difficiles (mauvaise vision, fatigue…) pour
mieux contrôler son véhicule et augmenter sa sécurité et la sécurité des autres
conducteurs, piétons, etc. prenant part a la circulation sur les routes.
II.2.2. Problématique
• Différence La luminance.
• Faux signaux (ressemblance de couleur exemple : feu de stop d’une voiture
avec une plaques rouge).
• L’état et positionnement des plaques en Algérie
• L’environnement (caméra OUTDOOR)
II.2.3.Historique
22
De nombreux groupes de recherches concentrent leurs travaux sur la détection et
reconnaissance des panneaux routiers, nous citons quelques projets en court comme
le projet ARGO de l'Université de Parma [11], le projet VITA II du centre de recherche
de Daimler Benz AG à Ulm ainsi que le projet Européen PROMETHEUS (PROgraM for an
European Traffic with Highest Efficiency and Unprecedented Safety).
De nombreux centres de recherche, comme CMM, INRIA, IRISA, LIFIA, UBP Clermont-
Ferrand, USTL Lille, UTC Compiègne, y consacrent leurs travaux à l'élaboration du
véhicule PROLAB2 en partenariat avec les constructeurs automobiles Renault, PSA
(Peugeot-Citroën), Matra, Jaguar, Fiat et Saab afin de contribuer à l'étude et la
recherche de systèmes de sécurité active par un système temps réel embarqué.
L'EUCAR [12] (European Council for Automotive R&D) regroupe également des projets
dédiés à la sécurité active : CHMAC (coopération homme machine pour l'aide à la
conduite) de l'UTC de compiègne, ARCOS (action de recherche pour une conduite
sécurisée) de Peugeot-Citroën, PAROTO [13] (projet anticollision radar et optronique
pour l'automobile) collectifs Lasmea, Inrets, Team et Sagem, ADASE (advanced driver
assistance systems in Europe) de DaimlerChrysler, ROADSENSE (road awarness for
driving via a strategy that evaluates numerous systems) de Renault et PSA, RADARNET
[14] (Multifonctional Automotive Radar Network) du collectif, DaimlerChrysler, Volvo,
Jaguar, Fiat et Siemens et Infineon. Tous ces laboratoires de recherche ont élaboré de
nombreux algorithmes pour la détection et la reconnaissance des panneaux routiers
basés sur une classification statistique ou neuronale.
Très souvent cité, le système le plus avancé est le TSR développé par le Laboratoire
d'Identification d'Image de l'Université Koblenz Landau. La détection par segmentation
des couleurs a été réalisée à l'aide d'une architecture parallèle en temps réel (PowerPC
et Transputers) pour analyser trois images par seconde. Daimler-Chrysler a développé
le système RSR où la reconnaissance des panneaux est réalisée par un réseau de
neurones.
Le laboratoire de recherche de l'Université de Gênes en Italie a élaboré une méthode
robuste pour la détection et l'identification des panneaux routiers par un processus de
corrélation statistique à l'aide d'un DSP, le TMS320C40. Le groupe de recherche de la
Faculté des Sciences de Transport, CTU Prague développe depuis 1995 le système RS2
23
à base d'architecture parallèle muni du DSP TMS320C80 pour y implémenter un
classificateur statistique.
Le principal obstacle décrit par la majorité des chercheurs est la segmentation des
images couleurs. De nombreux travaux ont été effectués pour essayer de créer des
régions dans une image où chaque région est définie par un ensemble de critères de
connexité, d'homogénéité ou appartenant à une même classe. La segmentation la plus
souvent citée est la segmentation récursive par l'étude des différents histogrammes
associés à chaque région.
Transformée de Fourier
L'idée d'exprimer une fonction de forme compliquée comme une combinaison linéaire de fonction
élémentaire de forme simple est très utile.
Par exemple, dans un intervalle [u1, u2], une fonction (u) peut être représentée par :
θ u = ∑ αiφi u ……………………… (2.1)
Où les fonctions forment un ensemble de fonctions élémentaires de forme simple. Si ces
fonctions sont orthogonales, alors les coefficients sont indépendants les uns des autres on
parle dans ce cas d'un développement en série de fonctions orthogonales.
Parmi les développements en séries orthogonales, la série de Fourier est sans doute celle dont on
fait le plus grand usage en traitement des signaux.
On peut généraliser la notion de série de Fourier pour représenter une fonction dans un intervalle
infini. Cette généralisation aboutit à la transformation intégrale de Fourier
= − ………………………….. (2.2)
= ………………………….. (2.3)
24
La transformée de Fourier des signaux numériques est définie par :
=∑ − ……………………………… (2.4)
Soit f(x) une fonction continue de la variable réelle x. La transformée de Fourier notée
F {f(x)} est définit par l’équation :
! "= = −
∞
……………………….. (2.5)
=| | ∅ ………………………………… (2.8)
Ou
$
| | = *% + ' + ………………………………………… (2.9)
Et
25
Transformée de Fourier discrète
En prenant N unités∆3.
= 7 + ∆ ………………………………………………………………………………. (2.13)
= $⁄; ∑; $
7 *− ⁄;+ = 7, $, , … , ; − $………(2.14)
Et
; $
, I = ∑; 7 ∑H 7
$ J $
,H *− ⁄J + IH⁄;+ ………………. (2.17)
? = K = 0,1,2, … , C − 1
26
Descripteur de Fourier
L'une des techniques les plus promettant de description de forme est basée sur les
descripteurs de Fourier.
Supposons que nous avons N points de la frontière d'une région. Nous pouvons
considérer la région comme placée dans le plan complexe, avec l'axe des ordonnées
comme axe imaginaire et l'axe des abscisses comme l'axe réel. Alors les coordonnées
x, y de chaque point du contour à analyser peuvent être représentées comme des
nombres complexes (x+jy).
Le contour peut être écrit sous la forme de séquence de nombres complexes.
ZM = xM + jyM i = 0,1,2, … , N − 1
R = ∑; 7Q
$
* ⁄;+ = 7, $, , … , ; − $………….…. (2.19)
27
une fraction de periode par laquelle le point de départ a été décalé (S varie de 0 à 2π , le
point de départ traverse le contour une fois).[15]
On normalise les DF en prenant A(0) égal à 0 (pour rendre les DF indépendantes de la
position) et on divise chaque coefficient par l'amplitude de la premier DF A(1) (pour
normaliser leur taille).
R b = b + H b …………………………………….…. (b)
|Q | = i|, | + |e | ………………. . j
k =Q ⁄Q $ = $, … , c − $ … … … … . l
28
Les descripteurs invariants s(k) sont appelés descripteurs de Fourier. Noter que pour L1,
L2< e1< e2 < (L-1) /2 S(1), .... S (e1) sont les basses fréquences de l'image alors que S(e2), ...,
S [(L-1)/2] sont les hautes fréquences, où [(L-1)/2] représente la partie entière de (L-1)/2. La
partie de basses fréquences de S (k) est déterminée par la forme d'un objet, alors que les
hautes fréquences donnent les détails. Puisque les hautes fréquences sont dégradables
par le bruit et ne contribuent pas beaucoup à la reconnaissance de l'objet composé aux
basses fréquences, souvent on les ignore. Cette compression significative de la
donnée est l'une des raisons de l'utilisation des descripteurs de Fourier.
Dans une étude d’une image qui contient plus de 500 points, seulement les 32
premiers composants (S [ 1 ] , ..., S [32]) ont été utilisés comme vecteur de forme
sur plus de 500 coefficients.
29
Figure 2.1 : chaîne code de 8-connectivité
On constate que la chaîne code pour différents chiffres donne différentes longueurs du
code et chaque longueur de chaîne code dépend de la taille de la référence de l’objet.
Dans certain cas la taille de la référence de l’objet est très élève, et pour résoudre se
problème il faut normaliser la chaîne code comme suit :
Supposer que cette chaîne code est généré pour un contour traversant en sens anti
horaire (sens horaire).
V1= [ 1 2 2 2 1 2 1 2 1 1 2 0 1 0 1 0 0 0 0 0 0 7 7 0 0 0 1 0 0 0 0 0 0 0 0 0 7 0 0 7 0
7666766766666766665666566556544545454445444 44344
4 3 4 4 3 4 3 4 4 3 2 3 3 2 3 2 3 2 3 2 2 2 2 2 2 2 2 2]
Calculer la fréquence des codes 0, 1, 2 ..... 7, du vecteur V1 pour obtenir le vecteur
fréquence V2 comme ci-dessous.
V2= [23 8 19 10 20 9 20 8]
La fréquence normalisée représentée par le vecteur V3, calculée par la formule
suivante :
uv
V3 = |V1| = ∑ V2 ……………………. (2.25)
|uw|
30
II.4. Classification
a-Méthode statistique
L’extraction des statistiques produit des valeurs numériques qui sont confrontées aux
modèles statistiques caractérisant chaque classe. [18] voir Figure 2.2.
31
L’écart type de : Classe carrée
Moyenne
L’extraction des primitives produit des valeurs symboliques des relations qui font
l’objet d’une analyse structurelle ou syntaxique.
Distance Euclidienne
x v Vw , Vv = ∑y Vw − Vv v
………..……….... (2.19)
Distance de Manhattan
x Vw , Vv = ∑y |Vw − Vv |v ……………………… (2.20)
Distance de Sebstyen
x v Vw , Vv = Vw − Vv . z. Vw − Vv { …….. (2.21)
z : Matrice diagonal de Pondération
Distance de Mahalanobis
x v Vw , Vv = Vw , Vv | w
Vw , Vv { ……………. (2.22)
| : Matrice de covariance
32
II.4.3 Mesure de distance entre deux classes
II.5.Evaluation et performances
Afin de connaitre précisément les performances des différents algorithmes, des bases
d'images et de vidéo contenant des plaques routières ont été constituées et la position
de chaque plaque annotée manuellement. Ceci permet de juger les performances de
l'algorithme de reconnaissance, par rapport à une « vérité terrain» estimée par un
humain.
Certaines de ces bases ont été rendues publiques, ce qui permet la comparaison entre
plusieurs algorithmes.
La mesure des performances peut se faire par image ou par fenêtre. La mesure par
image consiste à mesurer la performance finale dans l'image.
La mesure par fenêtre est spécifique aux algorithmes fonctionnant par fenêtre
glissante : on mesure les performances dans chaque fenêtre testée, qui est soit
positive ou négative.
33
La reconnaissance des signaux routiers, est une tâche assez difficile, les performances
des différents algorithmes restent assez modestes.
Les performances dépendent toutefois beaucoup de la base de test et de la base
d'apprentissage. Les algorithmes ont des difficultés à gérer les occultations, les faibles
résolutions, les objets de ratio largeur/hauteur non standards. Les méthodes obtenant
les meilleurs résultats sont celles qui utilisent plusieurs types de caractéristiques, avec
des temps de traitement trop élevé
II.6.Conclusion
Après cette modeste étude sur les différents techniques de reconnaissance d’objets;
On a choisi la méthode de KPPV pour l’implémenter et reconnaitre les signaux routier
On détaillera cette méthode ainsi que son implémentation sous C/CC+ builder
34
Chapitre III : Implémentation, test et résultats
III.1 Introduction
L’algorithme est conçu pour reconnaître des signaux rouges triangulaires, rouges
circulaires et bleus circulaires. Faisant ce choix des signaux routiers à reconnaître, on
couvre une grande majorité des signaux routiers usuels en Algérie et aussi les signaux
les plus importantes qui annoncent un danger sur la route, une interdiction (limitation
de la vitesse) ou qui imposent au conducteur un certain comportement (signaux
bleues).
35
III.2. Mise en situation
S’ajoute à ca, la différence de la luminance entre les endroits due a l’ombre par
exemple, le changement climatique, l’heure de reconnaissance.
Ce travail présente une première étape pour la mise en place d’un module de
reconnaissance.
Le matériel utilisé pour les expérimentations de cette application est composé d’un
ordinateur portable et d’une caméra (web Cam).
36
III.3 Environnement de logiciels
37
Figure3.3. C/C++ Builder 6.
• Module
Un module permet d'intégrer les fonctions de traitement sous la forme de services
dans une structure standard, et d'accéder à ces services ainsi qu'aux données
produites par le biais d'interfaces standards. Ces fonctions sont contrôlées au moyen
de requêtes, c’est dans cette partie du module que nos algorithmes sont introduits.
Lorsqu’un service, requis au moyen d'une requête, se termine, une réponse est
retournée au client à la quelle est associé un bilan d'exécution qui caractérise la façon
dont s'est déroulé le service.
On distingue deux types de requête : les requêtes d'exécution démarrent
effectivement un service, alors que les requêtes de contrôle contrôlent leur exécution
Couche fonctionnelle IHM et Couche de contrôle Robot logique (modification de
paramètres, interruption). Ces données peuvent être transmises à la fin de l'exécution
par la réplique, ou durant l'exécution par des posters. Un poster est une structure C
qui est mise à jour par une activité et qui est accessible en lecture par n'importe quel
élément du système (un autre module, un opérateur,…). Toutes les données
transmises par et vers le module (via les
requêtes/répliques et les posters) sont mémorisées dans une base de données interne
dénommée Structure de Données Interne Fonctionnelle ou SDIf.
38
III.3.2 La librairie OpenCV :
Un des objectifs buts d’OpenCV est d’aider les utilisateurs à construire rapidement des
applications sophistiquées de vision à l’aide de simples opérations de
vision par ordinateur.
OpenCV (Open Source Computer Vision) est une bibliothèque proposant un ensemble
de plus de 2500 algorithmes de vision par ordinateur, elle a était écrite en C et C++, puis
des interfaces ont été développées pour Python, Ruby, Matlab et autre langages. Elle est
distribuée sous une licence BSD (libre) pour les plates-formes
Windows, GNU/Linux, Android et MacOS. Cette bibliothèque est orientée vers des
applications en temps réel [19].
Initialement écrite en C il y a 10 ans par des chercheurs de la société Intel,
OpenCV est aujourd'hui développée, maintenue, documentée et utilisée par une
communauté de plus de 40 000 membres actifs. C'est la bibliothèque de référence pour
la vision par ordinateur, aussi bien dans le monde de la recherche que celui de
l'industrie.
39
Début
Lire l’image
Extraction de couleur
Filtrage
Binarisation
Suivi de contour
Descripteur de Fourier
Classification
Décision
Fin
40
III.4.1 Acquisition d’image
Une seule image de taille VGA (640x480) est captée du flux vidéo qui suivra le
traitement illustré par la figure en dessous (figure3.5).
img1=cvLoadImage(OpenDialog->FileName.c_str(),1);
41
Figure.3.6 Image original d’un panneau d’interdiction et son extraction de couleur (rouge).
G= ?R+ ?G+?B.
42
III.4.6 Binarisation
On applique un seuil à l’image de niveau de gris et les pixels qui ont une valeur
supérieure auront la valeur max égale a 255 et ceux qui ont une valeur inferieure
auront la valeur min égale a 0 ou le contraire. Le résultat de l’application du module de
la binarisation est représenté par la figure 3.8.
Méthode d'Otsu
Dans la méthode d'Otsu, le seuil qui minimise la variance inter-classe est recherché à
partir de tous les seuillages possibles :
Les poids ωi représentent la probabilité d'être dans la ‡y‹Œ‹ classe, chacune étant
séparée par un seuil t. Finalement, les •Ž sont les variances de ces classes.
Qui est exprimée en termes des probabilités de classe ωi et des moyennes de classes μi
qui à leur tour peuvent être mises à jour itérativement. Cette idée conduit à un
algorithme efficace.
43
Les étapes de la méthode
a Calcul de l'histogramme
On initialise un tableau hist avec des 0 Généralement, ce tableau est constitué de 256
cases correspondant aux 255 niveaux de gris d'une image.
En suite, si p (i, j) fréquence représente la valeur du pixel au point (i, j), on balaye toute
l'image et on compte le nombre de fois ou un niveau de gris apparait.
La séparation se fait à partir des moments des deux premiers ordres : la moyenne et
l'écart type. Pour que le procédé soit indépendant du nombre de points dans l'image
N, on normaliser l'histogramme : pi = ni/N ou ni représente le nombre de pixels de
niveau i.
μ k = ∑MM wi
“
∗ PM et ω k = ∑MM w PM …………..
“
(3.3)
Et
ω1 = 1 – ω (k*)
44
Si on note de même μ1 et μ0 avec :
Or l'image totale conserve certaines propriétés, d'où on peut tirer les relations :
On calcule donc cette valeur pour les 256 niveaux de gris de l'image. En fait on peut
déjà enlever les valeurs 0 et 255 qui correspondent à affecter tous les pixels à la même
classe.
Il ne reste plus qu'à comparer la valeur de tous les pixels de l’image au seuil ainsi
trouvé.
45
III.4.7 Suivi de contour
Algorithme du suivi de contour
Cette méthode est très rapide car elle ne nécessite que peut de calculs à chaque étape.
Elle présente l’avantage de détecter les pixels frontières suivant toutes les directions.
Tous les pixels seront traités une seule fois [20].
Le programme de suivi ainsi réalisé, permet de détecter les contours d’objet d’images
binaires pouvant être représentées de la façon suivant :
- Les objets sont constitués de pixels « noirs », la valeur « 1 » leur sera attribués,
tandis que l’extérieur (fond) est formé de pixels « blancs » de valeur « 0 ».
• Ceux qui englobent un objet. Ils sont dits extérieurs, c’est la silhouette de
l’objet.
• Ceux qui sont noyés dans un objet, ce sont les contours intérieurs.
- Si cette transition est de nature fond forme (0 – 1), c’est un contour de type
externe.
- Sinon (1 – 0), le contour est de type interne voir
-
- Figure 3.9 Contour d’un panneau.
46
Cette méthode se résumé à balayer l’image jusqu'à trouver une transition. C’est le
premier pixel contour.
Etiqueter les huit voisinages de ce pixel. Tester si ces pixels appartiennent au contour.
a chaque fois qu’un pixel objet est rencontré, on lui étiquette ses huit voisinages et
continuer jusqu'à la rencontre du premier pixel trouvé.
• Implémentation de la méthode
1er étape :
Premier pixel contour à (i1,j1) Le pixel qui le précède est noté par (iD,jD).
2eme étape :
A partir du pixel (iD,jD) en tournant autour du pixel (i1,j1) de façon à balayer ses voisins
dans le sens horaire, on numérote les sept autres voisins du pixel (i1,j1) comme
2 ,……,8.
3eme étape :
Evaluer les coordonnées Lx(k), Ly(k) du kieme voisin de (i1,j1) en utilisant le (Tableau 3.1 )
47
Début
Calculer
H (i,j)
Détection
Pixel noir
K1=jd-j1
K2=id-i1
K =K+1
Calculer
If pixel de contour K=8
est noir Lx(1),Ly(1)
m=Lx(k),Ly(k)=n n=ibeg
Lx(2),Ly(2) W=w+1
m=jbeg
.
F(m,n)=2 Lx(8),Ly(8)
K1 =
i1=m K=1
K2=
j1=n
Lx(1) ;Ly(1)
id=Lx(k-1)
Lx(8) ;Ly(8)
jd=Ly(K-1)
K=1
48
1 Lx(1)=i Ly(1)=j-1
2 Lx(2)=i-1 Ly(2)=j-1
3 Lx(3)=i-1 Ly(3)=j
4 Lx(4)=i-1 Ly(4)=j+1
5 Lx(5)=i Ly(5)=j+1
6 Lx(6)=i+1 Ly(6)=j+1
7 Lx(7)=i+1 Ly(7)=j
8 Lx(8)=i+1 Ly(8)=j+1
K2 = id – i1
49
III.4.8 Descripteur de fourrier
Ce dernier est basé sur les cordonnées X, Y des pixels de suivi de contour de chaque
forme et après une série des formules (voir chapitre2) on aura un vecteur a la fin
correspondant a la forme utilisée. Dans ce projet on a travaillé sur 16 premières
valeurs, vu que c'est suffisant d’après des tests, ce qui est comme avantage de cette
technique pour réduire les calculs et gagner un peu de temps d’exécution.
III.4.9 Classification
Image Extraction de
Prétraitement Classification Décision
d’entré paramètres
Base de données
50
X=[x1,x2………..x16]T et Š–y est donnée par :
w˜
™ š › œ•žŸ› ™
d(X,Š–y )=< Ÿ …………………….(3.1)
Œ ¡ ›
ˆ¢Œ
y
: L’écart type de Wy‹Œ‹ composent de la classe i
Avec la règle du plus proche voisin, la classe i est assigné ou affecté a X si le vecteur
caractéristique dans la classe i a le minimum de distance a partir de X parmi toutes les
formes d’apprentissage (training).
‚
X classe i si d(X,Š–y ) ≤d(X,Š£ )
1 ≤ j ≤ M et 1 ≤ p ≤ K
C a d:
w˜
™ š › œ•žŸ› ™
d(X,Š–̅y )= < Ÿ …………. (3.2)
Œ ¡ ›
Distance Euclidienne
x v Vw , Vv = ∑y Vw − Vv v
………..……….... (voir page33)
51
III.4.9.1 Création de la base d'apprentissage
Tous ces exemples sont placés dans une base appelée ensemble d'apprentissage.
III.5 Implémentation
III.5.1.Description
scription de l’interface
Nous allons découvrir l’interface de notre application (figure 3.14) dans la partie
supérieure nous avons les différents boutons et afficheurs qui nous permettent
d’entamer les différentes procédures de l’analyse de notre image.
52
1- Bouton pour l’acquisition d’image.
2- Bouton pour binariser l’image.
3- Bouton pour extraire le contour.
4- Bouton pour l’apprentissage.
5- Espace pour la classification.
6- Bouton radio pour choisir la méthode Euclidienne de la classification.
7- Bouton radio pour choisir la méthode Kppv de la classification.
8- Bouton pour la reconnaissance.
9- bouton pour quitter l’application.
10- afficheur pour la distance minimale.
11- afficheur pour la décision.
a-L’acquisition d’image
Pour commencer on doit sélectionner l’image a traiter par le bouton démarrer.
(voir figure3.15)
b-Binarisation
On utilise dans notre application la binarisation par seuillage (voir page 44). Le résultat
de binarisation est représenté dans la figure suivante.
53
Figure 3.16. Binarisation..
c-L’extraction de contour
Dans cette étape on applique la conversion RGB/HSV, l’extraction de couleur,
conversion HSV/RGB, conversion en niveau de gris, binarisation, puis extraction de
contour (voir pages 43,44).
54
d-L’apprentissage
On fait l’apprentissage une fois le programme est démarré.
Il s’agit de charger la base de données. Voici la bas de données.
0.36735770 0.35090402 0.65955865 0.33522207 0.19262537 0.36899063
0.09628516 0.05622746 0.10820689 0.31340113 0.09422020 0.08558868
0.10291230 0.26420239 0.04239075 0.09190387 0.06418587 0.14284049
0.03110776 0.12526236 0.11076354 0.09337203 0.01930589 0.06292191
0.11260056 0.03331050 0.03499473 0.03026845 0.07225816 0.03547331
0.03678235 0.05336379 0.38782254 0.44278723 0.19040127 1.09197116
0.02254791 0.16156697 0.12569129 0.33662692 0.94567358 0.19708824
0.03540818 0.10061759 0.20135278 0.09275118 0.10866731 0.05705545
8.45498778e-003 0.28923079 0.18565285 0.04465470 0.04378912
0.01556433 0.14561196 0.03909945 0.02695004 0.01910442 0.01920208
0.21472456 0.02462390 0.01861865 0.02590348 0.02777055 1.66299796
0.68028879 3.60515738 0.09950746 0.96395677 0.28186041 1.10637498
0.09823452 0.24686471 0.13603179 0.39486930 0.26843005 0.05163567
0.08165496 0.52590919 0.10246214 0.04993474 0.23844291 0.39655435
0.07320047 0.10079713 0.07772660 0.39970943 0.16688207 0.12291998
0.09266680 0.34126151 0.07975759 0.14106648 0.11212763 0.25371307
0.02867429 0.44010580 0.39671901 0.73922002 1.55301201 1.46151042
1.50356555 0.33620614 0.43279397 0.23753893 0.26689360 0.09855632
0.81513125 0.35890111 0.05455525 0.06159629 0.07819009 0.10287503
0.21774547 0.25381771 0.05968061 0.02086548 0.20271119 0.06391136
0.03363743 0.34680274 0.01995461 0.21023253 0.02060873 0.02117046
0.03816358 0.12072840 0.18615447 0.14208241 0.55345160 0.65755987
0.08507510 0.28070578 2.23532963 0.42818680 0.07986943 0.12240670
0.15183915 0.01923669 0.14801086 0.66798490 0.30633816 0.06382930
0.10976875 0.10505477 0.04628330 0.08774286 0.31606808 0.19917749
0.04375842 0.08736837 0.07322235 0.05880214 0.10781583 0.20942986
0.15235275 0.05877537 0.06905753 0.01753423 0.02040248 0.66660386
0.58142984 1.54417455 0.09533124 0.23294243 0.30120161 0.37558362
0.08150084 0.11399012 0.22151345 0.05375706 0.03936956 0.06521598
0.27436054 0.05188315 0.07358150 0.08556268 0.10057066 0.02935219
0.06956974 0.13590831 0.03747072 0.01216539 0.02750969 0.14778957
0.01738927 0.04513032 0.04851131 0.10320126 0.02699312 0.04258562
0.08196422 0.44499192 0.37253335 0.44727373 0.44950411 0.27167997
0.08247995 0.11249343 0.10227821 0.02948860 0.07385282 0.11155074
0.06630563 0.03389977 0.02464210 0.04043144 0.04648380 0.06982911
0.04377510 0.02121115 0.02571961 0.02323982 0.02378541 0.03877660
0.03205257 0.02244232 0.01791191 0.02135306 9.86198429e-003
0.02597021 0.03243751 0.01061567 0.01489131</data></mat>
</opencv_storage>
e-La reconnaissance
55
III.5.2.Résultats
a-résultat d’acquisition d’image
56
c-Décision
III.5.3 Tests
On a dévisé les panneaux de signalisation en 3 catégories : Interdiction, obligation,
danger.
• Les graphs de reconnaissance
Apres le test des panneaux de signalisation de la base de données on est arrivé a une
reconnaissance de 100% pour chaque catégorie
57
100%
90%
80%
70%
60%
nonreconnus
50%
reconnus
40%
30%
20%
10%
0%
Interdiction Obligation Danger
100%
90%
80%
70%
60%
non reconnus
50%
reconnus
40%
30%
20%
10%
0%
Interdiction Obligation Danger
58
III.6 Conclusion
59
Conclusion générale
Pour réaliser un tel travaille nous avons été confrontés à des problèmes liés à l’aspect
expérimental. L’environnement étant très complexe, les premiers problèmes
concernaient les occultations, le changement de luminosité, la grande variation de
texture et surtout la grande différence entre les panneaux routiers (couleur, position
par rapport à la caméra, etc.).
Nous avons présenté en premier lieu la vision assistée par ordinateur, sa définition,
domaine d’utilisation puis on a détaillé quelques outils de traitement d’image qu’on a
utilisé dans nos programmes.
En deuxième lieu, nous avons réalisé une étude sur les méthodes de reconnaissance
d’objets, on se focalisant surtout sur celles qui reconnaissent les panneaux routiers. Vu
la difficulté de cette tâches, peu de techniques récentes ont pu donner d’assez bons
résultats. Après cela, nous les avons évalué et choisis quelques unes pour
l’implémentation.
En troisième étape, on a conçu un algorithme et l’implémenté, avec La conception des
bases de données qui était une tache assez importante, ensuite, nous avons tenté
d’améliorer notre application en testant ses performances pour différentes valeurs de
paramètres
Une étape importante est l’évaluation des performances, ou on a testé cette
application sur des bases de tests d’autres conçus sur des images réelles depuis notre
caméra. Les résultats étaient assez satisfaisant, le temps de reconnaissance aussi.
60
Au cours de ce projet et à travers le travail fait, nous avons pu acquérir beaucoup de
connaissances. Premièrement, nous avons utilisé les outils appris au cours de notre
formation, et enrichi nos connaissances dans le domaine du traitement d’image en
apprenant de nouveau outils(OpenCV).On a aussi appris à utiliser le langage de
programmation C/C++.
On est satisfait de notre contribution pour le projet, surtout qu’on a un bon taux de
reconnaissance. Nous estimons que notre module pourra être exploité sur les voiture
roulantes ou encore l’observation et la gestion du trafic.
61
Bibliographie
[4] Daniel Pourcelot, ‘‘Histogramme’’, Club Besançon Déclic image, octobre 2010.
[5] Jeff Schewe, ‘‘traitement d’images’’, comment ça marche.net, octobre 2008.
[6] B. GUY, ‘‘Analyse d’image’’, Axe Génie des Procédés, centre SPIN, Ecole des Mines
de Saint-Etienne, 2010.
[7] Vincent BARRA, Cours de ‘‘traitement d’images’’.
[8] http://fr.wikipedia.org/wiki/Panneau_de_signalisation_routi%C3%A8re
[9] Lalonde, M., Li, Y., 1995. Road Sign Recognition - Survey of the State of the Art for
Sub-Project 2.4,
CRIM Centre de recherche informatique de Montréal
http://www.iro.umontreal.ca/~benallam/crim/roadsign.p
[10] Rozenn Dahyot - Analyse d'images séquentielles de scènes routières par modèles
d'apparence pour
la gestion du réseau routier, Rozenn Dahyot, PhDThesis University of Strasbourg
France,
November 2001
62
[15]suppot de cours ‘’ traitement de signal numérique’’
[16] Freeman, H. (1977). Computer processing of line drawing images. ACM Computer
Survey,6 :57–97.
[17] Markus Enzweiler, Dariu Gavrila, ‘‘Monocular Pedestrian Detection:Survey and
Experiments’’, TPAMI, Vol 31, n° 12, p. 2179-2195, Décembre 2009.
[19] Claire MAHEO, ‘‘Méthodes de suivi d’un objet en mouvement sur une vidéo ’’,
Université Espagne du 15/06/09.
presence of spurious surface reflections,"Canadian Electron. J., vol. 7, no. 4, pp. 29-33,
1982.
63
Annexe
La signalisation routière est aussi vieille que les routes. Les premiers signes furent ceux
donnant les directions. L’empire romain a érigé des bornes, en colonnes de pierres, le
long des routes pour indiquer les distances jusqu'à Rome. Au moyen âge, les signaux
directionnels devinrent courants, indiquant la direction des villes aux carrefours.
Inscrites sur des colonnes ou des bornes, les indications sont progressivement, à partir
du XVIIIe et auX IXe siècle, placées sur des plaques (en fonte, à partir de 1835),
dites plaques de cocher, fixées sur les murs, les croix ou obélisques des carrefours, ou
sur des poteaux métalliques.
64
L'évolution de la nature des panneaux, considérés comme dispositifs sur lesquels sont
implantés des signaux routiers, a quant à elle suivi l'évolution des techniques et des
technologies.
Dimensions :
Les dimensions des panneaux de signalisation doivent être telles que le signal soit
facilement visible de loin et facilement compréhensible quand on s’en approche. Elles
tiennent compte de la vitesse usuelle des véhicules3.
Les signaux de petites dimensions sont employés lorsque les conditions ne permettent
pas l’emploi de signaux de dimensions normales ou lorsque la circulation ne peut se
faire qu’à allure lente. Ils peuvent aussi être employés pour répéter un signal
antérieur. Les signaux de grandes dimensions seront employés sur les routes de
grande largeur à circulation rapide. Les signaux de très grandes dimensions seront
employés sur les routes à circulation très rapide, notamment sur les autoroutes 4.
65
Position
Tout signal placé du côté de la route correspondant au sens de la circulation devra être
répété au-dessus ou de l’autre côté de la chaussée lorsque les conditions locales sont
telles qu’il risquerait de ne pas être aperçu à temps par les conducteurs auxquels il
s’adresse.
Interdiction
Obligation
66
Danger
67