390 likes | 531 Views
PIF-6003 Sujets spéciaux en informatique I. Sujets Détection des droites Transformée de Hough (espace paramétré) avec la pente et l’ordonnée à l’origine avec la normale et l’angle Détection des droites dans l’espace transformé Détection des cercles/ellipses Lectures: Notes de cours.
E N D
PIF-6003Sujets spéciaux en informatique I • Sujets • Détection des droites • Transformée de Hough (espace paramétré) • avec la pente et l’ordonnée à l’origine • avec la normale et l’angle • Détection des droites dans l’espace transformé • Détection des cercles/ellipses • Lectures: Notes de cours
Détection des droites • Si nous avons une image binaire dont les pixels avec une valeur de niveau de gris à PIXMAX font partis de segments de droites • La détection des droites pourrait être effectuée en: • Déterminant l’ensemble des droites potentielles • Chercher les points proches de chaque droite potentielle • => n3 comparaisons
Transformée de Hough (avec la pente et l’ordonnée à l’origine) Figure 7.15 [rf. GONZALEZ, p. 434]
Représentation discrète d’un espace paramétré : transformée de Hough Tableau de compteurs de points colinéaires Figure 7.16 [rf. GONZALEZ, p. 435]
Représentation discrète d’un espace paramétré : transformée de Hough (a) (b) Figure 7.16 [rf. GONZALEZ, p. 435] Image contenant deux segments de droite Représentation du tableau de compteurs
Transformée de Hough (avec la pente et l’ordonnée à l’origine) • Faiblesse • Pour a -> => droite verticale b -> • Difficile à représenter dans l’espace paramétré
Transformée de Hough (avec la normale et l’angle) Figure 7.17 [rf. GONZALEZ, p. 436]
Transformée de Hough (avec la normale et l’angle) • Forme normale de la droite = x cos + y sin • L’espace paramétré est borné par: -(H2+L2)1/2, (H2+L2)1/2 H: Hauteur de l’image L: Largeur de l’image -/2,/2
A B Transformée de Hough (exemples) Espace paramétré rq ( Arelie les pts 1, 3 et 5 et B les pts 2, 3 et 4) Espace paramétré rq ( inversion des signes de ret qà ± 90°) Espace paramétré rq {où qs’étend de ± 90° et rde ± Ö2D} Image avec 5 points spécifiques Figure 7.18 [rf. GONZALEZ, p. 437]
Transformée de Hough (avec la normale et l’angle) • Algorithme général • Effectuer la transformée de Hough • Pour chaque pixel à PIXMAX • Calculer les droites chacune paramétrées , pouvant passer par ce pixel • Faire la mise à jour des compteurs de points colinéaires (espace paramétré) aux positions , • Détecter les droites • Parcourir l’espace paramétré et déterminer si le nombre de points colinéaires dépasse un seuil fixé par l’usager
Détection des droites dans l’espace transformé (exemples) Figure 7.14 [rf. GONZALEZ, p. 433]
Détection des droites dans l’espace transformé (exemple OpenCV: houghlines.c)
Détection des droites dans l’espace transformé (exemple OpenCV: houghlines.c)
Détection des droites dans l’espace transformé (exemple OpenCV: houghlines.c)
Détection des droites dans l’espace transformé (exemple OpenCV: houghlines.c)
Détection des droites dans l’espace transformé (exemple OpenCV: houghlines.c)
Détection des droites dans l’espace transformé (exemple OpenCV: houghlines.c)
Détection des cercles • Expression du cercle en coordonnées polaires • L’espace projeté est paramétré par xc et yc donnés par
Détection des cercles • Algorithme général • Effectuer la transformée de Hough (cercle de rayon r) • Pour chaque pixel à PIXMAX • Calculer les centres des cercles donnés par xc,yc pouvant contenir ce pixel • Faire la mise à jour des compteurs des centres de cercle (espace paramétré) aux positions xc,yc • Détecter les cercles • Parcourir l’espace paramétré et déterminer si le nombre de points cocirculaires dépasse un seuil fixé par l’usager
Détection des cercles (Exemple) • Image monnaie
Détection des ellipses (Exemple) (ex: findThresholdFaceNIR.c)
Détection des ellipses (Exemple) (ex: findThresholdFaceNIR.c)
Détection des ellipses (Exemple) (ex: findThresholdFaceNIR.c) //
Détection des ellipses (Exemple) Extraction des contours à partir de l’image seuillée
Détection des ellipses (Exemple) (ex: findThresholdFaceNIR.c)
Détection des ellipses (Exemple) Extraction des contours et ellipses à partir de l’image seuillée
Détection des ellipses (Exemple) • Si nous avons N points d’un contour p1 …. pN dans une images et pi = [xi, yi]T. Posons x = [x2, xy, y2, x, y, 1]Tet p = [x, y]T, alors nous pouvons écrire: • Cette forme générale d’une ellipse est caractérisée par le vecteur de • paramètres a = [a, b, c, d, e, f]T. L’approximation d’un contour par une • ellipse revient à trouver un vecteur a0 qui approxime le mieux les points pi • d’un contour au sens des moindres carrés, et qui est la sol’n de: D() est une fonction distance
Détection des ellipses (Exemple) • En utilisant la distance algébrique le problème de minimisation de moindre carré précédent devient linéaire et peut être résolu de façon directe sous la forme: • Pour éviter la sol’n triviale a = 0 nous devons imposer une contrainte sur • a avec la matrice C (constraint matrix):
Détection des ellipses (Exemple) • Ensuite, nous pouvons réécrire la fonction de minimisation basée sur la distance algébrique sous la forme: • Avec X la matrice (design matrix) de la forme suivante et S = XTX • (scattering matrix):
Détection des ellipses (Exemple) • Le vecteur a0 optimal correspond au vecteur propre associé à la seule valeur propre négative découlant du système suivant : • Algorithme: • Créer la matrice X à partir des point pi = [xi, yi] d’un contour • Calculer la matrice S = XTX • Créer la matrice C • Calculer les valeurs propres du système précédent et trouver la • valeur propre négative n à laquelle est associée le vecteur propre • optimal a0
Détection des ellipses (Exemple) • Exemples d’approximation découlant de l’application de l’algorithme précédent: Bruit de contour gaussien croissant
Détection des ellipses (Exemple) • Exemple de programme OpenCV (RTGazeTracking.c): Création de la matrice de contraintes C
Détection des ellipses (Exemple) • Exemple de programme OpenCV (RTGazeTracking.c) (suite ….): Création de la matrice X
Détection des ellipses (Exemple) • Exemple de programme OpenCV (RTGazeTracking.c) (suite ….):
Détection des ellipses (Exemple) • Exemple de programme OpenCV (RTGazeTracking.c) (suite ….):
Détection des ellipses (Exemple) • Exemple de programme OpenCV (RTGazeTracking.c) (suite ….):
Résumé • Segmentation des images par détection des droites • Détection des droites • Transformée de Hough • Détection des droites dans l’espace transformé • Détection des cercles/ellipses