1 Environnement

Download Report

Transcript 1 Environnement

Polytech Paris Sud 5

ème

année Electronique et Systèmes Embarqués : Traitement des Images, 2014-2015.

Enseignants : S. Le Hégarat & M. Gouiffès.

Mini-projet : Détection et reconnaissance de panneaux routiers.

Ces deux séances de miniprojet ont pour objet la mise en œuvre de méthodes de traitement des images vues durant le cours “Traitement des images : concepts avancés” en 5 ème année du cycle ingénieur au département Electronique, Energie, Systèmes.

Après la dernière séance du mini-projet, vous aurez deux semaines pour rendre un rapport écrit, où vous justifierez votre implémentation des algorithmes, ana lyserez l’influence de leurs paramètres, et commenterez les résultats obtenus. Ces commentaires porteront notamment sur la qualité des solutions implémentées et leur comparaison avec d’autres méthodes ou algorithmes alternatifs. Cette partie d’analyse est essentielle.

1 Environnement

1.1

Projet Visual

Les codes ont été développés en C++ (Visual 2005) selon l’architecture suivante.

La classe imasites gère la grille des pixels de l’image. Toutes les autres classes représentant différents types d’images héritent de cette classe imadata imasites . La classe est construite à partir d’un patron de classe (template) afin de travailler sur des images de différents types ( D’autres classes comme imabin , T , genéralement imalabels , T est le type imacontours BYTE ou float ).

etc., représentent des images issues d’une interprétation partielle d’une image de données. Aussi certains constructeurs de ces classes prennent-ils en argument en entrée une image de données (objet de la classe imadata ). Par ailleurs, pour chacune de ces classes, il existe des méthodes spécifiques à la manipulation ou l’interprétation du type d’image étudié.

La version des codes C++ est fournie avec un environnement graphique incluant un menu permettant de sélectionner les commandes et les paramètres associés. Vous pourrez avoir à compléter certaines parties de codes pour développer les fonctions demandées, et/ou à appeler certaines méthodes (commandes du menu) via l’inter face graphique afin de comparer les résultats de différents algorithmes ou approches.

Après avoir récupéré les fichiers de code (le répertoire vous sera indiqué en dé but de séance), vous lancerez TDI_GUI.vcproj

sous Visual 2005. L’annexe de ce document décrit les commandes disponibles sous l’interface graphique. Les fichiers params.h

(programme principal de l’application graphique) et params.cpp

(des cription des commandes et de leurs paramètres) permettent d’ajouter de nouvelles commandes.

1.2

Format des images

Une image est un tableau 3 D où les dimensions sont des membre-données de la classe imasite de colonnes représentant respectivement le nombre de lignes nbcol et le nombre de canaux nbcanaux ( 1 nblig , le nombre pour les images à niveaux de gris, .pgm

3 pour les images couleurs, etc.). Les images manipulées sont au format pour les images à niveaux de gris et .ppm

pour les images couleur (RGB).

L’accès à une valeur de l’image se fait via l’opérateur accède à la k ième ( ) composante du vecteur-pixel de coordonnées : (*this)(i,j,k) (i,j) dans l’image (*this) et (*this)(i,j) accède à la valeur scalaire du pixel de coordonnées (i,j) .

1

2 Projet : Détection et reconnaissance de panneaux routiers.

2.1

Objectif

L’objectif est de distinguer de manière automatique les six types de panneaux suivants : STOP, SENS INTERDIT, panneaux d’INTERDICTION (divers et va riés), DANGER (triangulaires), panneaux informatifs BLEUS rectangulaires, pan neaux informatifs BLEUS circulaires.

Pour cela, nous vous conseillons de procéder selon les étapes suivantes : 1.

Analyse de la couleur : Détection des objets possédant les couleurs recher chées (bleu, rouge). L’idée dans cette première étape est d’extraire au mieux l’ensemble des panneaux, et seulement ceux-ci. Il vous faudra donc éventuel lement filtrer l’image, procéder à un étiquetage en composantes connexes, etc.

2.

Distinction des formes : Une fois que les panneaux routiers sont détectés dans la plupart des images fournies, il s’agira de distinguer quatre formes : circulaires, hexagonales, rectangulaire, triangulaires.

3. Pour une même forme, distinction des catégories : les deux types de panneaux d’interdiction.

Enfin, vous séparerez Quelques unes des images à votre disposition sont montrées sur la figure 1.

Figure 1 – Exemples de panneaux routiers à détecter et distinguer.

2.2

Définition de la solution et validation

Dans la bibliothèque de traitement d’images fournie, vous disposez d’un en semble important de méthodes ou fonctions (voir la liste), pour vous aider à ré pondre au problème posé. Cependant, si nécessaire, vous êtes invités à programmer les fonctions qui vous manqueraient.

Pour vous aider dans votre définition de l’algorithme, vous regarderez les articles ou rapports fournis.

Commencez par tester les fonctions qui vous paraissent pertinentes. Puis, dès que vous avez défini une chaîne de traitements, intégrerez l’ensemble des appels aux fonctions dans une même procédure via les fichiers plus amples explications seront données en séance.

params.h

et params.cpp

. De Pour valider votre algorithme, vous le testerez sur l’ensemble des images fournies et même sur d’autres si vous le pouvez. Cette partie validation diffère d’un simple ’débuggage’ de votre code et est essentielle pour porter à regard critique sur votre algorithme. Là encore inspirez-vous des documents fournis.

2

2.3

Compte-rendu

Un compte-rendu de miniprojet vous est demandé.

Veillez à bien le structurer et à y intégrerer : – les explications et justifications sur le choix des traitements, et l’organigramme de la méthode retenue, – les résultats que vous jugez pertinents, soigneusement commentés, – une conclusion, qui précise les améliorations possibles et perspectives, – une annexe avec le code développé.

3 Annexe : commandes disponibles

3.1

Catégorie

0

de gris : Opérations de base sur les images à niveaux

+ ou − entre images niveaux de gris : Addition ou soustraction ou valeur absolue de la différence entre valeurs des pixels de + ou ∗ avec 1 scalaire : 2 images à niveaux de gris.

Addition ou multiplication des valeurs des pixels par un scalaire.

Inversion de niveaux de gris : Etirement de la dynamique : Inversion de l’échelle des niveaux de gris.

Création de l’image de dynamique étirée entre 0 et 255 .

Egalisation d’histogramme : Création de l’image d’histogramme égalisé avec ré-étirement de la dynamique.

Application d’un masque : im. en entrée) ayant la valeur 0 Mise à 0 des pixels de l’image à niv. de gris (1ère sur l’image binaire ‘masque’ (2ème im. en entrée).

Supérieur au seuil : Création d’1 image binaire des valeurs supérieures au seuil.

Inférieur au seuil : Création d’1 image binaire des valeurs inférieures au seuil.

Seuillage à hystérésis : Création d’1 image bin. des valeurs sup. au seuil haut ou sup. au seuil bas ET dont la composante connexe a au moins 1 pixel de valeur sup.

au seuil haut.

Seuillage entre deux valeurs : entre le seuil haut et le seuil bas.

Création d’1 image bin. des valeurs comprises Percentile supérieur : plus élevées.

Création d’1 image binaire des p% pixels de valeurs les Percentile inférieur : Création d’1 image binaire des p% pixels de valeurs les plus faibles.

Max : Création d’1 image binaire des valeurs maximales d’1 image à niveaux de gris.

Max Réginaux : Création d’1 image binaire des maxima régionaux d’1 image à niveaux de gris.

Ajout bruit gaussien : Ajout bruit impulsif : pixels.

Ajout d’1 bruit gaussien centré sur les valeurs des pixels.

Ajout d’1 bruit impulsif poivre et sel sur les valeurs des

3.2

Catégorie 1 : Opérateurs de filtrage passe-bas

Filtre Gaussien : Filtrage linéaire à noyau gaussien.

Filtre moyenne : Filtrage linéaire à noyau identité.

Filtre médian : Filtrage de rang correspondant à la valeur médiane.

Filtre Nagao : Filtrage multi-noyaux de Nagao.

Filtre SNN : Filtrage par filtre ‘Symetric Nearest Neighbour’.

Filtre FAS : Filtrage par Filtre Alterné Séquentiel (en morphologie mathématique fonctionnelle).

3

Pic Signal Noise Ratio : Mesure de rapport signal à bruit. La premièère image en entrée est l’image reconstruite et la seconde l’image ‘vérité’.

3.3

Catégorie 2 : Opérations de base sur les images binaires et Opérateurs de morphologie mathématique binaire

AND : XOR : ET entre valeurs des pixels de 2 images binaires.

OU exclusif entre valeurs des pixels de 2 images binaires.

OR : OU non exclusif entre valeurs des pixels de 2 images binaires.

NOT : Complémentaire des valeurs d’1 image binaire.

Transformée en distance : tances du fond aux objets.

Création d’une image des niveaux de gris des dis Erosion binaire : binaire.

Application de l’opérateur d’érosion morphologique à 1 image Dilatation binaire : image binaire.

Ouverture binaire : Application de l’opérateur de dilatation morphologique à 1 Application de l’opérateur d’ouverture morphologique à 1 image binaire.

Fermeture binaire : Application de l’opérateur de fermeture morphologique à 1 image binaire.

Tophat binaire : Application de l’opérateur dit ‘chapeau haute forme’ de mor phologie mathématique à 1 image binaire.

Reconstruction géodésique : Reconstruction géodésique d’1 image binaire (1ère image en entrée) à partir d’1 image de marqueurs (2nde image en entrée).

Etiquetage en composantes connexes : Etiquetage en composantes connexes d’1 image binaire.

Décomposition en rectangles : Erosion ultime : Décomposition en rectangles d’1 image binaire.

Création de l’image des érodés ultimes des objets d’1 image bi naire.

Détection de coins : Détection des coins carrés UL (Upper left), UR (Upper right), LL (Lower left) et LR (Lower right) des objets d’1 image binaire.

Enveloppe convexe : Création de l’image des enveloppes convexes des objets d’une image binaire.

Squelette : Création de l’image des squelettes des objets d’une image binaire.

Elagage/ébardage : Application de la transformation en tout ou rien réalisant l’élagage ou ébardage notamment de squelettes.

Zones d’influence géodésique : Création de l’image binaire des zones d’influence géodésique des objets d’1 image binaire.

Elimination objets du bord : Elimination des objets touchant le bord de l’image binaire.

Bouchage de trous : Bouchage des trous sur l’image binaire.

3.4

Catégorie 3 : Opérateurs de morphologie mathématique fonctionnelle

Erosion fonctionnelle : image de niveaux de gris.

Application de l’opérateur d’érosion morphologique à 1 Dilatation fonctionnelle : Application de l’opérateur de dilatation morpholo gique à 1 image de niveaux de gris.

Rehaussement de contraste : Opérateur de rehaussement de contraste de mor phologie mathématique de paramètre ‘alpha’.

Ouverture fonctionnelle : Appli cation de l’opérateur d’ouverture morphologique à 1 image de niveaux de gris.

4

Fermeture fonctionnelle : Application de l’opérateur de fermeture morpholo gique à 1 image de niveaux de gris.

Reconstruction géodésique fonctionnelle : Reconstruction géodésique d’1 image de niveaux de gris (1ère image en entrée) à partir d’1 image de marqueurs (2nde image en entrée).

3.5

Catégorie 4 : Opérateurs de classification

Classification aveugle aux plus proches voisins : Classification supervisée non paramétrique, dite ‘k-ppv’. Le 1er fichier en entrée est l’image à classifier, le 2nd est le fichier texte des échantillons d’apprentissage (format : lig., col., label).

Classification aveugle des c-moyennes : Classification non supervisée avec en entrée l’image des données, en sortie l’image des labels. Les caractéristiques des classes sont affichées à la console.

Classification aveugle des c-moyennes sur ROI : En entrée : l’image des données et l’image binaire des pixels à considérer, en sortie : l’image des labels et les caractéristiques des classes affichées à la console.

Classification supervisée MRF : Classification basée sur un modèle markovien de l’image des labels. Le 1er fichier en entrée est l’image à classifier, le 2nd est le fichier texte des classes.

Classification supervisée MRF avec processus lignes : Classification basée sur un modèle markovien de l’image des labels. Le 1er fichier en entrée est l’image à classifier, le 2nd est le fichier texte des classes.

3.6

Catégorie 5 : Opérateurs de détection de et sur les contours

Gradient de l’image : Création de l’image de la norme du gradient par filtrage linéaire passehaut (Prewitt, Sobel ou MDIF).

Détection de contours par gradient : Création de l’image des contours par seuillage de la norme du gradient (obtenu par filtrage linéaire Prewitt, Sobel ou MDIF).

Détection de contours par laplacien : Création de l’image des contours par dé tection des passages par zéro du Laplacien (obtenu par filtrage linéaire) et seuillage de la norme du gradient.

Détection de contours par filtrage optimal : Création de l’image des contours par seuillage de optimal selon soit le filtre de Canny-Deriche soit celui de Shen Castan.

Gradient morphologique : Application de l’opérateur de gradient morphologique (différence entre les résultats de la dilatation et de l’érosion fonctionnelles) en 4 ou 8 connexité.

Laplacien morphologique : Application de l’opérateur de laplacien morpholo gique en 4 ou 8 connexité.

Affinement de contours : Sélection des maxima locaux dans la direction du gra dient. La 1ère image en entrée est image de contours et la 2nde l’image de données initiale.

Prolongation de contours : Prolongation des contours sur une distance de N pixels. La 1ère image en entrée est 1 image de contours et la 2nde est 1 image de la norme du gradient.

Transformée de Hough : Création de l’image de la transformée de Hough pour la recherche de droites dans l’espace des coordonnées polaires (rho,theta).

Reconstruction à partir de la transformée de Hough : Création de l’image reconstruite à partir des maxima de la transformée de Hough. La deuxième image en entrée est l’image qui sert à donner les dimensions de l’image reconstruite.

Profil en ligne ou en colonne : Intégrale sur la direction orthogonale à celle du 5

profil (ligne ou colonne) d’une image en entrée binaire.

Détection de points d’intérêt : Création de l’image des points d’intérêt par dé tecteur de Harris.

Mise en correspondance de points d’intérêt : Les deux images en entrée sont des images binaires des points d’intérêt.

Rectification d’1 image : Rectification pour qu’elle soit carrée d’1 image couleur avec fond vert.

3.7

Catégorie 6 : Opérateurs de segmentation

Segmentation à partir d’1 classification : Création de l’image des régions cor respondant à l’image des labels en entrée.

Segmentation par croissance de régions : Création de l’image des régions par croissance de régions à partir de germes (aléatoirement ou déduits de l’histogramme) et jusqu’à invalidation du critère d’homogénéité.

Segmentation contrainte quadtree : Création de l’image des régions correspon dant à une représentation de type quadtree.

Ligne de partage des eaux : Segmentation par l’algorithme de la ligne de partage des eaux en morphologie mathématique fonctionnelle. Le fichier en entrée est une image de la norme du gradient.

Segmentation selon graphe : Segmentation par fusion de régions dans un graphe avec sélection des arêtes de moindre coût par accord mutuel.

Segmentation selon Mumford&Shah : Segmentation selon la résolution hiérar chique de Koepfler de la fonctionnelle de Mumford et Shah.

3.8

Catégorie 7 : Estimateurs d’objets

Détection de disques : Détection des disques dans 1 image de régions (d’objets) avec en entrée les paramètres seuils sur les attributs de forme.

Paramètres de base des objets : Barycentre, surface et boite englobante des objets. L’image des objets est en entrée, les résultats sont affichés à la console.

3.9

Catégorie 8 : Couleur et texture

Conversion couleur : Conversion d’1 image RGB sous format ppm dans 1 espace couleur IST, LAB, I1I2I3 ou rgb (norme L1).

Composantes : Enregistre dans 3 images pgm chaque plan image couleur (e.g.

pour des traitements marginaux).

Conversion en fausses couleurs : ppm en fausses couleurs.

Conversion d’1 image niv. gris sous format Image de texture ordre 1 : Création d’1 image du paramètre de texture sélec tionné (contraste, énergie, entropie) à partir d’1 image à niveaux de gris.

Image de moment d’ordre k : Création d’1 image du moment centré d’ordre k à partir d’1 image à niveaux de gris.

Image de cooccurrence (sur image binaire) : entrée).

A partir d’1 image binaire en entrée, création d’1 image à niveaux de gris du paramètre calculé sur la matrice de cooccurrence (2x2, orientation 0( − ), 1( \ ), 2( | ), ou 3( / ) et distance sélectionnées en

3.10

Catégorie 9 : Mouvement

Image de flot optique : A partir de 2 images à niveaux de gris en entrée, création d’1 image 2 canaux du flot optique (composantes H et V).

6