72
Plan Modélisation Filtrage Approches continues Post-Traitements Bases du traitement des images Détection de contours Nicolas Thome Dominique Béréziat Octobre 2014 1 / 72 Bases du traitement des images

Contours

Embed Size (px)

DESCRIPTION

traitement d'image

Citation preview

Plan Modlisation Filtrage Approches continues Post-TraitementsBases du traitement des images Dtection de contours Nicolas ThomeDominique BrziatOctobre 20141 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsIntroductionRle primordial de la dtection de contours en vision1 Rduction dinformation Information de toute limage rsume dans le contours des direntsobjets. Contours : parties les plus informatives dune image. On a longtemps cru que lensemble de la tche de vision pouvaittre rsolue uniquement partir des contours.2 Pralable ncessaire lextraction dautres primitives (droites,segments, cercles)3 Les donnes biologiques confortent limportance des contours dansle systme de vision Les premires couches des systmes de vision des mammifreseectuent des traitements de dtection de contours.2 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsIntroductionDtection de contours : applications1 Reconnaissance dobjets, de formes, classications de scnes2 Mise en correspondance : calibration, reconstruction 3D3 Compression3 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsIntroductionapplications : mise en correspondance Reconstruction4 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsIntroductionapplications : mise en correspondance Classication5 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsIntroductionapplications : Description des formes Reconnaissancedobjets6 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsPlan du cours1 Modlisation des contours - formulation du problme de dtection2 Rsolution : Approches bases ltrage (dirences nies) Filtrage du premier ordre Filtrage second ordre3 Rsolution : Approches continues (ltrage optimal)4 Post-traitement : de limage drive aux contours seuillage et chanage.7 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsModle de contourPlusieurs modles de contour8 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsModle de contourModle le plus courant : Marche descalier. En 1D : I (x) fonction de Heaviside (marche descalier) Drive premire : pic de DiracI(x) = (x)I(x) maximale sur le contour Drive seconde :I(x) = (x)(x) : "doublet"I(x) nulle sur le contour9 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsModle de contourImagef (x, y). Contour : lieu des fortes variations defGradient def :f =G=(fxfy)T(1)Module du gradient def :G=

f

=fx2+fy2(2)Direction du gradient def :g =f

f

(3)10 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsModle de contourDnition du contourLieu des maxima du gradient dans la direction g du gradientfgest un extrema et2fg2= 0 (4)avec g=g Lquation obtenue est complexe et non linaire :fxxfx2+fy2+fyyfx2+fy2= 0 (5)11 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsModle de contourDnition du contourLieu des maxima du gradient dans la direction g du gradientg normal la surface dnie parf (x, y)12 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsModle de contourDnition du contourLieu des maxima du gradient dans la direction g du gradientContour vertical13 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsModle de contourDnition du contourLieu des maxima du gradient dans la direction g du gradientContour horizontal14 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsModle de contourDnition du contourLieu des maxima du gradient dans la direction g du gradientContour oblique15 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsPlan du cours1 Modlisation des contours - formulation du problme de dtection2 Rsolution : Approches bases ltrage (dirences nies) Filtrage du premier ordre Filtrage second ordre3 Rsolution : Approches continues (ltrage optimal)4 Post-traitement : de limage drive aux contours seuillage et chanage.16 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsRsolution du problme : Approches basesltrageApproches discrtes : approximations par dirences nies1 Approches du 1erordre approximations du gradient2 Approches du 2ndordre approximations du laplacien17 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproximations discrtes du gradient1 Approximations discrte du gradient par dirences nies ltres de convolution (masques)2 Calcul de la norme L2 :fx2+fy2, L1 : |fx| +|fy|, etc Maxima locaux dans la direction du gradient3 Suppression de non maxima4 Seuillage5 Chanage18 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproximations discrtes du gradientapproximation du gradient f =(xf yf)Txf f (x, y) f (x 1, y) (yf f (x, y) f (x, y 1))xf f (x +1, y) f (x 1, y)Roberts (gradients 4) : 1f f (x +1, y+1) f (x, y)( 2f f (x, y+1) f (x +1, y) )Autre masques : Prewitt, Sobel, etc.+1 1+1 00 1+1 0 1+1 0 1+1 0 1+1 0 1+2 0 2+1 0 1gradient Roberts Prewitt Sobel19 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproximations discrtes du gradientFonctions de transfert des ltres du premier ordreFiltre gradient (noyau et spectres)20 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproximations discrtes du gradientFonctions de transfert des ltres du premier ordreFiltre Roberts (noyau et spectres)21 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproximations discrtes du gradientFonctions de transfert des ltres du premier ordreFiltre Prewitt (noyau et spectres)22 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproximations discrtes du gradientFonctions de transfert des ltres du premier ordreFiltre Sobel (noyau et spectres)23 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproximations discrtes du gradientDe nombreux autres masques : KirschGradient retenu :maxi{|Hi I |},i {0; 7}Orientation retenue :4argmaxi{|Hi I |},i {0; 7}24 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproximations discrtes du gradientSobel : masque le plus couramment utilis1 Gradient avec Sobel2 Gx=1 0 12 0 21 0 1 etGy=1 2 10 0 01 2 13 Module du gradient ||G|| =G2x+G2y4 Orientation du gradient de : = arctan (GyGx)source ||G|| 25 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproximations discrtes du gradientObtention dune carte binaire des contoursCalcul norme L2 :fx2+fy2ou L1 : |fx| +|fy|Post-traitement (voir partie consacre) Maxima locaux dans la direction du gradient Seuillage26 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproximations discrtes du gradientCarte binaire des contours : exemple avec SobelSeuil haut : contours pertinents dtects, mais beaucoup de bruit Contours paisSeuil bas : peu de bruit, mais de nombreuses dtections manquesSolution ?27 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproximations discrtes du gradientCombiner lissage et direntiationLes masques locaux de convolution sont sensibles au bruit, e.g. fauxpositifs dans les zones texturesIde : Lissage puis direntiation variations locales ltres,contours dominants restent Filtres linaire pour les bruits de moyenne nulle (par exemple bruitblanc Gaussien, ltre Gaussien). Filtrage non-linaire pour les bruits impulsionnels (ltre mdian parexemple).28 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproximations discrtes du gradient = 1.0 = 2.0 = 4.0 = 6.029 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproximations discrtes du gradientCombiner lissage et direntiationFort lissage : robustesse au bruit, mais contours pais (mauvaiselocalisation)Faible lissage : sensibilit au bruit, mais bonne localisationSeuil : dicile davoir un seuil optimal pour toute limage variations dillumination, de contraste Lien avec suppression de non-maxima (voir partie consacre)30 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsDigression : la texture dans les imagesQuest-ce que la texture ?Au sens commun (vulgarisation) : Mode dentrecroisement des ls dans un tissu (tissage). Composition, consistance dune substance : La texture dune crmesolaire. Constitution gnrale dun matriau solide : La texture de lacier(structure). Arrangement, disposition des parties dune uvre : La texture dunrcit (trame).31 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsDigression : la texture dans les imagesQuest-ce que la texture ?Un peu plus en lien avec le traitementdimages : Une texture reprsente, une chelledonne, le mme aspect quelle que soitla zone observe.Rptition spatiale dun mme motifdans direntes directions de lespacePlus formellement : On considre limage comme laralisation dun processus stochastiquelocal et stationnaire.Caractrisation du voisinage dechaque pixel identique (mme modlestatistique) pour tous les pixels delimage.32 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsDigression : la texture dans les imagesQuest-ce que la texture ?Des images valent mieux quun long discours fourrure (zbrures, tigrures, poils, ...) murs (briques, marbre, ...) nappe, ponge, vtements, etc33 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsDigression : la texture dans les imagesTexture et dtection de contoursLa texture correspond des variations rapides du signal hautesfrquencesLes ltres passe-haut dtecteur de contours vont rpondre sur latextureEn gnral on cherche le contour dobjets smantiques(gomtriques) : la texture correspond une fausse dtection Combinaison lissage + drivation pour ltrer les hautesfrquences des textures tout en conservant celles des contoursdobjets34 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsPlan du cours1 Modlisation des contours - formulation du problme de dtection2 Rsolution : Approches bases ltrage (dirences nies) Filtrage du premier ordre Filtrage second ordre3 Rsolution : Approches continues (ltrage optimal)4 Post-traitement : de limage drive aux contours seuillage et chanage.35 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsRsolution du problme : Approches dusecond ordreSecond ordre : drives secondes dans la direction du gradient :2f g2Oprateur laplacien :f =2f g2+2f t2=2fx2+2fy22fg2= 0 2fx2 cos2 +2fy2 sin2 +22fxycos sin = 036 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsRsolution du problme : Approches dusecond ordreContour : on cherche les passages par zro de2f g2Laplacien :f =2f g2+2f t2=2fx2+2fy2. Approximation :f 2f g2 2fx2+2fy2 On nglige la composante tangentielle (2f t2= 0) Valide dans les zones de faible courbure37 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches discrtes du second ordreApproximations du laplacien par dirences niesf [f (x +1, y) +f (x 1, y) +f (x, y+1) +f (x, y 1)] 4f (x, y) f disouf [f (x +1, y) +f (x 1, y) +f (x, y+1) +f (x, y 1) +f (x +1, y+1) +f (x 1, y 1) +f (x 1, y+1) +f (x +1, y 1)] 8f (x, y) f disavec :dis=0 1 01 4 10 1 0dis=1 1 11 8 11 1 138 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproximations discrtes du laplacienFonctions de transfert des ltres du second ordreLaplacien 1 (noyau et spectres)39 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproximations discrtes du laplacienFonctions de transfert des ltres du second ordreLaplacien 2 :h(n, m) rect invers,H(f , g) sinus cardinal invers40 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches discrtes du second ordreDu laplacien aux images des drivesDtection des passages par zro du laplacienEn pratique : Prendre une fentre centre 3 3 sur le pixel(i , j ), et calculermax(IL) et min(IL). Le passage parOsera dtect si max(IL) > 0, min(IL) < 0 etmax(IL) min(IL) > S.41 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches discrtes du second ordreLaplacien : exemples dimagessource laplacienImage du laplacien : contours transitions entre valeurs positives(blanc) et ngatives (noir) Avec un seuil sur lamplitude42 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches discrtes du second ordreLaplacien : exemples dimagessource Seuil bas Seuil moyen Seuil hautPassage par zro du laplacien : seuiller lamplitude des variations43 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches discrtes du second ordreComparaison Gradient / laplacienContours fermsUn seul paramtre, pas de seuil sur lamplitudePossibilit dinterpolation subpixelliquePas dorientation des contours v.s invariance en rotationMoins bonne localisation des contours / ltres premier ordreDrives secondes : grande sensibilit au bruit Ncessit de lissage par ltrage passe-bas44 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches discrtes du second ordrePr-traitement : lissage passe-bas :I g1 Convolution de limage avec un masque laplacien :I g 2 Cas dun masque gaussien :g(x, y, ) =12ex2+y222I g = I ( g) = I g (6)Remarque : les oprateurs direntiels linaires commutent avec laconvolution. On peut utiliser directement : g= g=42(x2+y2221)ex2+y222plutt que de discrtiser le gaussien et dappliquer un masquelaplacien.3 On convolue directement I avec le masque dni parg: Laplacianof Gaussian (LoG)45 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches discrtes du second ordreLissage passe-bas + laplacien :I g g= g=42(x2+y2221)ex2+y22246 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches discrtes du second ordreLaplacian of Gaussian (LoG)LoG : ltre du systme de vision humainLoG peut tre approxim par DoG : Dierence of Gaussians(12= 1.6)DoG(x, y, 1, 2) = g(x, y, 1) g(x, y, 2) (7)Utilis dans le cadre de la multi-rsolution (pyramides)47 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches du premier et du second ordrePyramide multi-rsolution : construction (taille image 2k)On part de limage originaleI0quon ltre avec un masque gaussieng:I0= I0 gLimage du second niveauI1est sous-chantillonne (facteur 2) partir deI0:I1= (I0 g) 2processus rcursif :Ik+1est sous-chantillonne (facteur 2) partirdeIk:Ik+1= (Ik g) 2jusqu avoir une image de taille 148 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches du premier et du second ordrePyramide multi-rsolution et dtection de contoursLe ltrage x va dtecter des contours un certain niveau degranularit faible, on dtecte les contours ns (bruit), bonne localisation grand, on dtecte les structures principales de limage, mais onperd les dtailsPyramide : varie, on dtecte les contours direntes chellesFusion multi-chelle : utiliser les contours grande chelle, et anerla localisation en utilisant les rsultats plus faible chelle49 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches du premier et du second ordrePyramide multi-rsolution et dtection de contours50 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches du premier et du second ordrePyramide multi-rsolution et dtection de contours : niveau 051 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches du premier et du second ordrePyramide multi-rsolution et dtection de contours : niveau 152 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches du premier et du second ordrePyramide multi-rsolution et dtection de contours : niveau 253 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches du premier et du second ordrePyramide multi-rsolution et dtection de contours : niveau 354 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsPlan du cours1 Modlisation des contours - formulation du problme de dtection2 Rsolution : Approches bases ltrage (dirences nies) Filtrage du premier ordre Filtrage second ordre3 Rsolution : Approches continues (ltrage optimal)4 Post-traitement : de limage drive aux contours seuillage et chanage.55 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsRsolution du problme : ApprochescontinuesFiltrage optimal : Canny (1986)En 1D : modlisation du contour par une marcheAvec du bruit :C(x) = A(x) +n(x),n bruit blanc gaussien.On cherche le ltref drivateur tel que :f C= (8)56 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsRsolution du problme : ApprochescontinuesCanny : critres doptimalit pour le ltrage1 Bonne dtection : critre2 Bonne localisation : critre3 Unicit de la rponse On cherchef drivateur qui maximise et sous la contraintedunicit de la rponse57 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches continuesCanny : solution du ltrage ltre RIFCanny : solution par ltre Rponse Impulsionnelle Finie (RIF)f (x) = a1exsin(wx)+a2excos(wx)+a3exsin(wx)+a4excos(wx)Peut tre approxim par une drive de Gaussienne :f (x) xex222Passage en 2D : action de 2 ltres croiss :fx(x, y) = xex222ey222etfy(x, y) = yex222ey22258 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches continuesCanny : approaximation par une drive de Gaussienne59 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches continuesCanny : exemple de rsultat60 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches continuesOptimisation du problme de Canny : DericheModle du ltre avec Rponse Impulsionnelle Innie (RII)Forme du ltre RII maximisant et sous la contrainte dunicitde la rponsef (x) = ce|x|sin(wx) (9)avecc= (1 e)2/ePeut simplmenter ecacement de manire rcursive61 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches continuesCanny-Deriche : forme des ltres 2Don dnitk=f , alors le ltre 2D scrit :fx(x, y) = f (x)k(y) etfy(x, y) = f (y)k(x)62 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches continuesCanny-Deriche : rsultatsInuence de facteur dchelleFaible : peu de robustesse au bruit, bonne localisationFort : bonne robustesse au bruit, mauvaise localisationAdapter au rapport Signal/Bruit de limage63 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsApproches continues : conclusionAutres optimisation analytiquesSchma gnral de construction dun ltre :1 produit dune fonction passe-bas, symtrique, paramtre par bruit et taille entre 2 contours2 produit dune fonction passe-haut, anti-symtriqueEx : Canny-Deriche Gaussienne et drive de GaussienneShen-Castanf (x) = c sign(x)e|x|De nombreux autres ltres proposs : Spacek, Petrou, etc64 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsPlan du cours1 Modlisation des contours - formulation du problme de dtection2 Rsolution : Approches bases ltrage (dirences nies) Filtrage du premier ordre Filtrage second ordre3 Rsolution : Approches continues (ltrage optimal)4 Post-traitement : de limage drive aux contours seuillage et chanage.65 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsPost-TraitementsDe limage des drives aux contoursImage des drives : Probabilit/vraissemblance dappartenance aucontour1 premier ordre : valeurs fortes indiquent prsence contour2 second ordre : valeurs proches de 0 indiquent prsence contourPour extraire les contours de limage :1 Suppression de non maxima dans la direction du gradient2 Seuillage3 Chanage des contours66 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsPost-TraitementsSuppression de non-maximaRappel : on recherche les maximas locaux dans la direction dugradient1 Dterminer, pour un pixelpdonn, les valeurs du gradient sur ladroite passantp et de direction celle de son gradient.2 Vrier que le gradient enp est bien localement maximal sur cettedroite.67 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsPost-TraitementsSuppresion de non-maximaRappel : on recherche les maximas locaux dans la direction dugradientP est un maximum local ||G(P)|| > ||G(P1)|| et||G(P)|| > ||G(P2)||68 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsPost-TraitementsSuppresion de non-maxima : application pratique1 Discrtisation de la direction On arrondit la direction 4(8 voisins) on cherche les 2 pixels voisins dans la direction du gradient2 Interpolation On calcule la valeur subpixels des deux voisins On interpole la valeur de la norme du gradient en ces points(1) (2)3 Suppresson de P si ||G(P)|| non maximale69 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsPost-TraitementsSuppresion de non-maxima : application pratiqueAssure davoir des contours dpaisseur 1source ||G || NMS Contours ns70 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsPost-TraitementsSeuillage1 Seuillage simple : on garde les pixels pour lesquels||G(x, y)|| > Seuil Dicile davoir un seuil unique pour toute limage Variations de contraste, dillumination, etc2 Seuillage par hystrsis Seuil haut : slection dun ensemble initial de points de contour Seuil bas : partir de ces points, on chane rcursivement les pointsconnexes tels que ||G(x, y)|| > Seuil _bas71 / 72Bases du traitement des imagesPlan Modlisation Filtrage Approches continues Post-TraitementsPost-TraitementsChanage des contoursNcessaire pour beaucoup dapplications, avoir un ensemble decomposantes connexesPour extraire droites, cercles, formes gomtriques etreprsentations plus complexesDirentes stratgies :1 tiquetage en composantes connexes2 Recherche dans les graphes (programmation dynamique)3 Approches multi-chelles4 Automates5 etcHors du cadre du cours daujourdhui72 / 72Bases du traitement des images