Traitement d’images Détection de contours Introduction Rôle de la détection de contours en vision 1- Réduction d’information • Information de toute l’image résumée dans le contours des différents objets. • Contours : parties les plus informatives d’une image. 2- Etape souvent nécessaire à l’extraction d’autres primitives notamment géométriques : droites, segments, cercles Détection de contours : applications 1- Reconnaissance d’objets, de formes, classifications de scènes 2- Mise en correspondance stéréoscopique: calibration, reconstruction 3D 3- Compression d’images 2 Introduction La détection de contours est une technique de réduction d'information dans les images, qui consiste à transformer l'image en un ensemble de courbes, pas forcément fermées, formant les frontières significatives de l'image. 3 Plan du cours 1. Modélisation des contours • Notion de contour • Caractérisation des points contours • Rappel sur le gradient (dérivée première) • Utilisation des dérivées secondes 2. Approches basées filtrage • Filtrage du premier ordre • Filtrage du second ordre 3. De l’image dérivée aux contours • Seuillage 4 Notion de contour Contour : frontière qui sépare deux objets (ou un objet du fond) dans une image Caractérisation des zones de contours variation brusque d’intensité de l’image discontinuité de l’image 5 Notion de contour Remarques: • Toute discontinuité n’est pas nécessairement située à la frontière entre deux objets • Toute zone de discontinuité ne caractérise pas forcément un contour. Exemples de discontinuités: • d’orientation de surface et d’illumination • de réflectance • de profondeur • … 6 Modèle de contour • Plusieurs modèles de contour 7 Modèle de contour • Plusieurs modèles de contour 8 Caractérisation des points contours • Mise en évidence des zones de contours: dérivées première et seconde • Détection des points contours : utilisation d'un critère de décision 9 Caractérisation des points contours Principe de la détection de contours: Etude des dérivées de la fonction d’intensité dans l’image les maxima locaux de la dérivée première les passages par zéro de la dérivée seconde difficulté : la présence de bruit dans les images 10 Caractérisation des points contours Etude d’une ligne de l’image La dérivée première 11 Gradient : Dérivée première de l’image 12 Rappel sur le gradient L’image est une fonction 2D f(x,y). . On calcule une dérivée partielle de f dans chaque direction principale. Le vecteur Gradient de f est alors : 13 Rappel sur le gradient • En chaque point (x,y), le vecteur gradient est caractérisé par Sa norme ou module Sa direction • Relation entre gradient et contour • Contour = forte variation locale des niveaux de gris ≡ • élevé est un vecteur perpendiculaire au contour 14 Rappel sur le gradient • Le gradient définit l’orientation d’un contour au pixel considéré (x,y): dirigé selon la direction de plus fort changement d’intensité (perpendiculaire au contour). • Module du gradient = force du contour • Argument du gradient= orientation 15 Approximation discrètes du gradient • On approche les dérivées directionnelles par différences finies = convolution avec un filtre dérivateur : 16 Approximation discrètes du gradient • Un filtre est composé de deux masques : • hx détecte les contours verticaux • hy détecte les contours horizontaux • Dans le domaine spatial : convolution linéaire de l’image avec les filtres • Image des contours verticaux, ou gradient vertical : Gx = f * hx • Image des contours horizontaux, ou gradient horizontal : Gy = f * hy • Filtres courants : Roberts, Prewitt, Sobel, 17 Approximation discrètes du gradient • Roberts (1965) fournit une première approximation de la première dérivée d’une image discrète • Le calcul se fait avec deux masques de convolution pour les deux directions de la dérivée • Cette approximation fait appel aux différences croisées et elle apporte une amélioration dans la détection de contour. 18 Approximation discrètes du gradient • Opérateurs de Sobel (c=2) et Prewitt (c=1) • Ces masques opèrent tout d’abord un lissage de l’image, suivi d’une opération de dérivation : ils sont dits séparables • Le lissage permet d’atténuer le bruit dans l’image, pouvant être interprété comme un contour : • Prewitt : filtre moyenneur • Sobel : filtre gaussien 19 Approximation discrètes du gradient Filtre de Sobel 20 Du gradient au contour 21 Du gradient au contour • Pour détecter les contours d’une image, il faut procéder de la sorte : 1. Mesure en chaque point de l’image de l’amplitude et de la direction du gradient 2. Détermination des seuils d’amplitude 3. Suppression directionnelle des non-maxima locaux 4. Extraction des éléments essentiels 5. Reconstruction des contours par hystéresis 22 Du gradient au contour Détermination des seuils d’amplitude: • Seuillage basé sur la validation de deux seuils, un seuil bas Sb et un seuil haut Sh, avec Sb < Sh, de la manière suivante : • si G(x, y) < Sb alors on est sur que (x, y) n’est pas un point de contour • si G(x, y) > Sh alors on est sur que (x, y) est un point de contour • si Sb < G(x, y) < Sh alors l’appartenance à un contour dépend du contexte 23 Du gradient au contour Suppression directionnelle des non maxima locaux: • Extraction des maxima locaux dans la direction du gradient • Opération sur un voisinage de l’image de la norme du gradient • On compare le gradient d’un point avec celui de ses deux voisins M1 et M2 dans la direction perpendiculaire au contour • Un point M est un maximum local si : 24 Du gradient au contour Suppression directionnelle des non maxima locaux: •Les modules de gradient en M1 et M2 doivent être interpolés 25 Du gradient au contour Extraction des éléments essentiels •Points pour lesquels on est sûr de l’appartenance à un contour •(x, y) : G(x, y) > Sh •Points de départ pour l’étape de reconstitution des contours Reconstitution des points par hystérésis •On part des points M(x, y) déterminés éléments essentiels • On utilise deux seuils Sb et Sh, avec Sb < Sh, et pour chaque point M, il est considéré contour s'il est connecté à un autre pixel déjà accepté comme contour •On répète la procédure pour tous les nouveaux points validés 26 Approches du second ordre • Un changement linéaire d’amplitude d’une fonction f correspond au passage par zéro de sa dérivée seconde • Dans le cas d’une image, il n’existe pas une dérivée seconde unique, mais 4 dérivées partielles (selon x2, y2, xy et yx) • En pratique, on a recours au laplacien faisant la somme des deux dérivées partielles principales • Un passage par zéro est caractérisé par une pente positive dans le cas d’une frontière ayant une amplitude augmentant de gauche à droite ou de bas en haut dans l’image 27 Approches du second ordre • On approche le laplacien par différences finies • Dans le domaine spatial, on calcule le laplacien par convolution entre l’image et un masque, dont les deux plus courants sont : 28 Approches du second ordre • • Laplacien : exemple d’images Dérivées secondes : grande sensibilité au bruit Nécessité de lissage par filtrage passe-bas 29 Approches du second ordre • L’estimation de la dérivée seconde étant par nature très sensible au bruit, il convient d’effectuer un filtrage fort de l’image, conduisant pour un filtre passe – bas ϕ à • ϕ gaussien filtre LOG (Laplacian Of Guassian) • D’autres variantes existent, dont DOG (Difference Of Guassian) qui procède par différence de deux gaussiennes dont les écarts types sont dans un rapport de 1.6 ( simulation du système visuel) 30 Approches du second ordre • Pré-traitement: lissage passe_bas 31 Filtrage optimal: Canny • Filtre optimal pour la détection des contours • Filtre en plusieurs étapes (pas seulement une convolution) • Etant donnés • un modèle de contour (marche) • un modèle de bruit (blanc gaussien) • Objectifs tous les contours doivent être trouvés (détection) Les contours correctement localisés (localisation) Il doit y avoir un minimum de réponses parasites (réponse unique) L’épaisseur des contours détectés doit être de 1 pixel Canny a exprimé ces objectifs sous forme mathématique et a proposé des 32 solutions optimales vérifiant ces objectifs. Détecteur de Canny 1 – Appliquer un filtre Gaussien sur l’image Convolution de l’image f par un noyau gaussien 2 – Calculer l’intensité du gradient dans l’image Calcul de la norme |G|= |Gx|+ |Gy| 3 – Calculer les directions du gradient dans l’image Direction du gradient θ = arctan (Gy / Gx) Arrondi des directions par multiples de 45° 33 Détecteur de Canny 4. Suppression des non-maxima sur les amplitudes Si la norme du gradient en un pixel (x,y) est inférieure à la norme du gradient d’un de ses 2 voisins le long de la direction du gradient, alors mettre la norme pour le pixel (x,y) à zéro L’objectif est de réduire les contours trop larges fournis par le calcul du gradient. 34 Détecteur de Canny 5. Seuillage des contours ( hystérésis) L’objectif est d’éliminer les faux contours Définition de deux seuils : un seuil haut (Sh) et un seuil bas (Sb) Pour chaque pixel (x,y) du gradient : Si norme(x,y) < Sb, alors (x,y) n’est pas un point contour Si norme(x,y) > Sh, alors (x,y) est un point de contour Si Sb < norme(x,y) < Sh, alors (x,y) est un point de contour si et seulement si il est voisin d’un autre pixel déjà accepté comme contour 35 Détecteur de Canny 36 Conclusion La détection des points contours est basée sur les dérivées premières (gradient) ou secondes de l'image (Laplacien). Le calcul de ces dérivées est approché au moyen de filtres de convolution. • Avantages : grande rapidité de calcul, aspect local. • Inconvénients : ces filtres sont très sensibles au bruit. Ils nécessitent donc l'emploi de filtres de lissage, souvent intégrés aux filtres de dérivation. Les filtres de lissage/dérivation sont moins précis que le filtre de dérivation «pur», mais plus robustes. Ils privilégient donc la détection des points contours par rapport à leur localisation. 37