6
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 imasites. La classe imadata est construite à partir d’un patron de classe (template) afin de travailler sur des images de différents types (T, genéralement T est le type BYTE ou float). D’autres classes comme imabin, imalabels, imacontours 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 3D où les dimensions sont des membre-données de la classe imasite représentant respectivement le nombre de lignes nblig, le nombre de colonnes nbcol et le nombre de canaux nbcanaux (1 pour les images à niveaux de gris, 3 pour les images couleurs, etc.). Les images manipulées sont au format .pgm 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 () : (*this)(i,j,k) accède à la k ième composante du vecteur-pixel de coordonnées (i,j) dans l’image (*this) et (*this)(i,j) accède à la valeur scalaire du pixel de coordonnées (i,j). 1

1 Environnement - Université Paris-Saclayhebergement.u-psud.fr/hegarat-mascle/enseignement/tpTdI... · 2014. 10. 29. · classe imasite représentant respectivement le nombre de

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1 Environnement - Université Paris-Saclayhebergement.u-psud.fr/hegarat-mascle/enseignement/tpTdI... · 2014. 10. 29. · classe imasite représentant respectivement le nombre de

Polytech Paris Sud 5ème année Electronique et SystèmesEmbarqué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éthodesde traitement des images vues durant le cours “Traitement des images : conceptsavancé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 rendreun rapport écrit, où vous justifierez votre implémentation des algorithmes, ana-lyserez l’influence de leurs paramètres, et commenterez les résultats obtenus. Cescommentaires porteront notamment sur la qualité des solutions implémentées etleur comparaison avec d’autres méthodes ou algorithmes alternatifs. Cette partied’analyse est essentielle.

1 Environnement

1.1 Projet VisualLes 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 classesreprésentant différents types d’images héritent de cette classe imasites. La classeimadata est construite à partir d’un patron de classe (template) afin de travaillersur des images de différents types (T, genéralement T est le type BYTE ou float).D’autres classes comme imabin, imalabels, imacontours etc., représentent desimages issues d’une interprétation partielle d’une image de données. Aussi certainsconstructeurs 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 desmé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 incluantun menu permettant de sélectionner les commandes et les paramètres associés. Vouspourrez avoir à compléter certaines parties de codes pour développer les fonctionsdemandé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 cedocument décrit les commandes disponibles sous l’interface graphique. Les fichiersparams.h (programme principal de l’application graphique) et params.cpp (des-cription des commandes et de leurs paramètres) permettent d’ajouter de nouvellescommandes.

1.2 Format des imagesUne image est un tableau 3D où les dimensions sont des membre-données de la

classe imasite représentant respectivement le nombre de lignes nblig, le nombrede colonnes nbcol et le nombre de canaux nbcanaux (1 pour les images à niveauxde gris, 3 pour les images couleurs, etc.). Les images manipulées sont au format.pgm 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 ( ) : (*this)(i,j,k)accède à la kième composante du vecteur-pixel de coordonnées (i,j) dans l’image(*this) et (*this)(i,j) accède à la valeur scalaire du pixel de coordonnées (i,j).

1

Page 2: 1 Environnement - Université Paris-Saclayhebergement.u-psud.fr/hegarat-mascle/enseignement/tpTdI... · 2014. 10. 29. · classe imasite représentant respectivement le nombre de

2 Projet : Détection et reconnaissance de panneauxroutiers.

2.1 ObjectifL’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 mieuxl’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ésdans 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 : Enfin, vous séparerezles deux types de panneaux d’interdiction.

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 validationDans 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 à programmerles fonctions qui vous manqueraient.

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

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

Pour valider votre algorithme, vous le testerez sur l’ensemble des images fournieset 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 votrealgorithme. Là encore inspirez-vous des documents fournis.

2

Page 3: 1 Environnement - Université Paris-Saclayhebergement.u-psud.fr/hegarat-mascle/enseignement/tpTdI... · 2014. 10. 29. · classe imasite représentant respectivement le nombre de

2.3 Compte-renduUn 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 : Opérations de base sur les images à niveauxde gris

+ ou − entre images niveaux de gris : Addition ou soustraction ou valeurabsolue de la différence entre valeurs des pixels de 2 images à niveaux de gris.+ ou ∗ avec 1 scalaire : Addition ou multiplication des valeurs des pixels par unscalaire.Inversion de niveaux de gris : Inversion de l’échelle des niveaux de gris.Etirement de la dynamique : Création de l’image de dynamique étirée entre 0et 255.Egalisation d’histogramme : Création de l’image d’histogramme égalisé avecré-étirement de la dynamique.Application d’un masque : Mise à 0 des pixels de l’image à niv. de gris (1èreim. en entrée) ayant la valeur 0 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 ousup. au seuil bas ET dont la composante connexe a au moins 1 pixel de valeur sup.au seuil haut.Seuillage entre deux valeurs : Création d’1 image bin. des valeurs comprisesentre le seuil haut et le seuil bas.Percentile supérieur : Création d’1 image binaire des p% pixels de valeurs lesplus élevées.Percentile inférieur : Création d’1 image binaire des p% pixels de valeurs les plusfaibles.Max : Création d’1 image binaire des valeurs maximales d’1 image à niveaux degris.Max Réginaux : Création d’1 image binaire des maxima régionaux d’1 image àniveaux de gris.Ajout bruit gaussien : Ajout d’1 bruit gaussien centré sur les valeurs des pixels.Ajout bruit impulsif : Ajout d’1 bruit impulsif poivre et sel sur les valeurs despixels.

3.2 Catégorie 1 : Opérateurs de filtrage passe-basFiltre 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ématiquefonctionnelle).

3

Page 4: 1 Environnement - Université Paris-Saclayhebergement.u-psud.fr/hegarat-mascle/enseignement/tpTdI... · 2014. 10. 29. · classe imasite représentant respectivement le nombre de

Pic Signal Noise Ratio : Mesure de rapport signal à bruit. La premièère imageen 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 binaireset Opérateurs de morphologie mathématique binaire

AND : ET entre valeurs des pixels de 2 images binaires.XOR : 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 : Création d’une image des niveaux de gris des dis-tances du fond aux objets.Erosion binaire : Application de l’opérateur d’érosion morphologique à 1 imagebinaire.Dilatation binaire : Application de l’opérateur de dilatation morphologique à 1image binaire.Ouverture binaire : Application de l’opérateur d’ouverture morphologique à 1image binaire.Fermeture binaire : Application de l’opérateur de fermeture morphologique à 1image 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èreimage en entrée) à partir d’1 image de marqueurs (2nde image en entrée).Etiquetage en composantes connexes : Etiquetage en composantes connexesd’1 image binaire.Décomposition en rectangles : Décomposition en rectangles d’1 image binaire.Erosion ultime : 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 (Upperright), LL (Lower left) et LR (Lower right) des objets d’1 image binaire.Enveloppe convexe : Création de l’image des enveloppes convexes des objetsd’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éalisantl’élagage ou ébardage notamment de squelettes.Zones d’influence géodésique : Création de l’image binaire des zones d’influencegéodésique des objets d’1 image binaire.Elimination objets du bord : Elimination des objets touchant le bord de l’imagebinaire.Bouchage de trous : Bouchage des trous sur l’image binaire.

3.4 Catégorie 3 : Opérateurs de morphologie mathématiquefonctionnelle

Erosion fonctionnelle : Application de l’opérateur d’érosion morphologique à 1image de niveaux de gris.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

Page 5: 1 Environnement - Université Paris-Saclayhebergement.u-psud.fr/hegarat-mascle/enseignement/tpTdI... · 2014. 10. 29. · classe imasite représentant respectivement le nombre de

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 imagede niveaux de gris (1ère image en entrée) à partir d’1 image de marqueurs (2ndeimage en entrée).

3.5 Catégorie 4 : Opérateurs de classificationClassification aveugle aux plus proches voisins : Classification supervisée nonparamétrique, dite ‘k-ppv’. Le 1er fichier en entrée est l’image à classifier, le 2nd estle fichier texte des échantillons d’apprentissage (format : lig., col., label).Classification aveugle des c-moyennes : Classification non supervisée avec enentrée l’image des données, en sortie l’image des labels. Les caractéristiques desclasses sont affichées à la console.Classification aveugle des c-moyennes sur ROI : En entrée : l’image desdonnées et l’image binaire des pixels à considérer, en sortie : l’image des labels etles caractéristiques des classes affichées à la console.Classification supervisée MRF : Classification basée sur un modèle markoviende l’image des labels. Le 1er fichier en entrée est l’image à classifier, le 2nd est lefichier texte des classes.Classification supervisée MRF avec processus lignes : Classification baséesur 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 contoursGradient de l’image : Création de l’image de la norme du gradient par filtragelinéaire passehaut (Prewitt, Sobel ou MDIF).Détection de contours par gradient : Création de l’image des contours parseuillage de la norme du gradient (obtenu par filtrage linéaire Prewitt, Sobel ouMDIF).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 seuillagede la norme du gradient.Détection de contours par filtrage optimal : Création de l’image des contourspar 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 ou8 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éesinitiale.Prolongation de contours : Prolongation des contours sur une distance de Npixels. La 1ère image en entrée est 1 image de contours et la 2nde est 1 image de lanorme du gradient.Transformée de Hough : Création de l’image de la transformée de Hough pourla recherche de droites dans l’espace des coordonnées polaires (rho,theta).Reconstruction à partir de la transformée de Hough : Création de l’imagereconstruite à partir des maxima de la transformée de Hough. La deuxième imageen 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

Page 6: 1 Environnement - Université Paris-Saclayhebergement.u-psud.fr/hegarat-mascle/enseignement/tpTdI... · 2014. 10. 29. · classe imasite représentant respectivement le nombre de

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 sontdes images binaires des points d’intérêt.Rectification d’1 image : Rectification pour qu’elle soit carrée d’1 image couleuravec fond vert.

3.7 Catégorie 6 : Opérateurs de segmentationSegmentation à 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 parcroissance 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 partagedes eaux en morphologie mathématique fonctionnelle. Le fichier en entrée est uneimage de la norme du gradient.Segmentation selon graphe : Segmentation par fusion de régions dans un grapheavec 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’objetsDé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 desobjets. L’image des objets est en entrée, les résultats sont affichés à la console.

3.9 Catégorie 8 : Couleur et textureConversion couleur : Conversion d’1 image RGB sous format ppm dans 1 espacecouleur 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 : Conversion d’1 image niv. gris sous formatppm en fausses couleurs.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) : A partir d’1 image binaire enentrée, création d’1 image à niveaux de gris du paramètre calculé sur la matrice decooccurrence (2x2, orientation 0(−), 1(\), 2(|), ou 3(/) et distance sélectionnées enentrée).

3.10 Catégorie 9 : MouvementImage de flot optique : A partir de 2 images à niveaux de gris en entrée, créationd’1 image 2 canaux du flot optique (composantes H et V).

6