UE Traitement d’Images Master Recherche Notes du cours...

14
Master Recherche Notes du cours 4 1 Christophe Cudel, Bruno Colicchio, Alain Dieterlen Groupe LAB.EL, Laboratoire MIPS Université de Haute Alsace, Mulhouse, France UE Traitement d’Images

Transcript of UE Traitement d’Images Master Recherche Notes du cours...

Page 1: UE Traitement d’Images Master Recherche Notes du cours 4elynxsdk.free.fr/ext-docs/Demosaicing/more/news1/Cours4_Christop… · C’est un contour actif, « snake » en Anglais –

Master RechercheNotes du cours 4

1

Christophe Cudel, Bruno Colicchio, Alain Dieterlen

Groupe LAB.EL, Laboratoire MIPSUniversité de Haute Alsace,

Mulhouse, France

UE Traitement d’Images

Page 2: UE Traitement d’Images Master Recherche Notes du cours 4elynxsdk.free.fr/ext-docs/Demosaicing/more/news1/Cours4_Christop… · C’est un contour actif, « snake » en Anglais –

2

Extraction dans les images

1. Détection de droites et courbes : – Transformée de Hough

– Transformée de Hough généralisée

2. Introduction aux contours déformables (snakes)

3. Détection de points d’intérêts

Page 3: UE Traitement d’Images Master Recherche Notes du cours 4elynxsdk.free.fr/ext-docs/Demosaicing/more/news1/Cours4_Christop… · C’est un contour actif, « snake » en Anglais –

3

1. Détection de droites et courbes

Détection de droites : Transformée de Hough– Comment détecter une droite ??

Corrélation ??? Bcp de masque… taille des masques

– ☺Méthode robuste : transformée de Hough

– Équation droite :

• y = ax + b coordonnées cartésiennes

• ρ = x cos(θ) + y sin (θ) coordonnées polaires

x

y

a0b

++

++

++

a

b0

Page 4: UE Traitement d’Images Master Recherche Notes du cours 4elynxsdk.free.fr/ext-docs/Demosaicing/more/news1/Cours4_Christop… · C’est un contour actif, « snake » en Anglais –

4

1. Détection de droites et courbes

xy

Détection de droites : Transformée de Hough– Inconvénients des coordonnées cartésiennes :

• Conditionnement de a et b. Pente variant de –infini à + infini

– On préfère le passage vers l’espace des coordonnées polaires

ρ = x cos(θ) + y sin (θ) coordonnées polaires

ρθ

Page 5: UE Traitement d’Images Master Recherche Notes du cours 4elynxsdk.free.fr/ext-docs/Demosaicing/more/news1/Cours4_Christop… · C’est un contour actif, « snake » en Anglais –

5

1. Détection de droites et courbes

Transformée de Hough : Algorithme

– 1. Choisir une espace discret (ρ,θ)

– 2. Initialiser un accumulateur A(dim(ρ), dim(θ)) à zéro

– 3. Pour chaque pixel :

• Si I(u, v) = 1– Calculer θ = u*cos(θ) + v*sin(θ)

– Incrémenter A(round(ρ), round(θ))

– 4. Recherche le ou les maximum dans la matrice A.

– 5. Les couples (ρ,θ) sélectionnés caractérisent les lignes de l’image

Page 6: UE Traitement d’Images Master Recherche Notes du cours 4elynxsdk.free.fr/ext-docs/Demosaicing/more/news1/Cours4_Christop… · C’est un contour actif, « snake » en Anglais –

6

1. Détection de droites et courbes

Transformée de Hough généralisée– A partir de ce principe on peut imaginer généraliser avec d’autres types de

courbes :

• Quelconques : y=f(x,a,b,c…)

• Cercles : (x-x0)2 + (y-y0)2 = r2 (3 paramètres)

• Ellipses : [(x-x0)2 /a2]+ [(y-y0)2 /b2] = 1(4 paramètres + éventuellement orientation)

– La taille de l’espace des paramètres n’est pas limitée à 2. Attention néanmoins aux calculs !

Page 7: UE Traitement d’Images Master Recherche Notes du cours 4elynxsdk.free.fr/ext-docs/Demosaicing/more/news1/Cours4_Christop… · C’est un contour actif, « snake » en Anglais –

7

1. Détection de droites et courbes

Transformée de Hough généralisée (suite)– La TH peut s’étendre directement à des formes discrètes. Ceci présente

l’avantage de ne pas nécessiter l’expression analytique de la forme.

– Dans ce cas l’accumulateur de Hough est une image des positions possibles de l’objet à détecter. Pour chaque pixel de contours, on ajoute un vote dans l’accumulateur pour toutes les positions de l’objet à détecter qui pourraient expliquer la présence de ce pixel de contours.

– Exemple :

Page 8: UE Traitement d’Images Master Recherche Notes du cours 4elynxsdk.free.fr/ext-docs/Demosaicing/more/news1/Cours4_Christop… · C’est un contour actif, « snake » en Anglais –

8

1. Détection de droites et courbes

– Suite

On extrait les minima locaux :

Un seuillage avec le nombre dePoints de contours est effectué :

Remarque : Possibilité de rajouter la rotation dans l’espace des paramètres

Page 9: UE Traitement d’Images Master Recherche Notes du cours 4elynxsdk.free.fr/ext-docs/Demosaicing/more/news1/Cours4_Christop… · C’est un contour actif, « snake » en Anglais –

9

2. Introduction aux contours actifs

Introduction – Certaines situations demandent de rechercher une forme dans une image

(échographie, tracking)…. La forme est difficile à segmenter (bruit) mais est approximativement localisée dans l’image.

– On peut placer un contour qui va déformer pour superposer à la forme recherchée…. C’est un contour actif, « snake » en Anglais

– Idée initiale : courbe ayant des propriétés « élastiques » :

• Capable de se déformer localement et d’épouser une forme

Principe– On cherche à minimiser l’énergie d’une courbe soumise à une énergie

‘interne’ et ‘externe’

Page 10: UE Traitement d’Images Master Recherche Notes du cours 4elynxsdk.free.fr/ext-docs/Demosaicing/more/news1/Cours4_Christop… · C’est un contour actif, « snake » en Anglais –

10

2. Introduction aux contours déformables

Le contour actif : courbe paramétrique v(s) = f(x(s), y(s))Généralement s appartient à [0,1]

On peut écrire EGlogal(v) = Eint(v)+ Eext(v)

Énergie interne :– Eint(v) = a(s).||vs(s)|| + b(s).||vss(s)||

vs(s) : valeur de l’élongation au point s, contrôlée par a(s) qui règle l’élasticité. C’est la dérivée première de la courbe au point s, par exemples : vs(s) = ||v(s) – v(s-1)||2

Vss(s) : courbure du snake. On évite les courbes avec des « cassures », c’est un terme de rigidité de la contour actif. Souvent, on prend :

vss(s) = || v(s-1) -2v(s) + v(s+1)|| , c.a.d la dérivée seconde (voir chapitre gradients…)

Page 11: UE Traitement d’Images Master Recherche Notes du cours 4elynxsdk.free.fr/ext-docs/Demosaicing/more/news1/Cours4_Christop… · C’est un contour actif, « snake » en Anglais –

11

2. Introduction aux contours déformables

Énergie externe :– C’est le terme qui va attirer la courbe en fonction de l’énergie associée à

l’image. Suivant la nature de l’image, c’est constitué par :

Eext = Image ou Eext = - || Image||

En résumé– Mettre en œuvre un contour actif revient à optimiser un fonction

numérique de plusieurs variables

Algorithme– N : nombre de nœuds qui constituent le contour

– U(s) : le voisinage local du pixel de coordonnées x(s), y(s)

– pj = noeud j du contour actif v(s)

Page 12: UE Traitement d’Images Master Recherche Notes du cours 4elynxsdk.free.fr/ext-docs/Demosaicing/more/news1/Cours4_Christop… · C’est un contour actif, « snake » en Anglais –

12

2. Introduction aux contours déformables

Algorithme (suite)– Initialisation :

• Pour chaque nœud Ejmin = MAXIMUM

– Pour j=1 à N

• Calculer pour tous les points du voisinage de pj : Ej = Eint(j) + Eext(U(j))

– Si Ej < Ejmin

Ejmin = Ej

Déplacer la position du contour vers le points du voisinage offrant une énergie minimum

– Sinon : ne rien faire

A partir de cet algorithme les variantes sont très nombreuses :

• ‘split’/’fusion’ de contours actifs

• Insertion / suppression automatique de nœuds

• etc

Page 13: UE Traitement d’Images Master Recherche Notes du cours 4elynxsdk.free.fr/ext-docs/Demosaicing/more/news1/Cours4_Christop… · C’est un contour actif, « snake » en Anglais –

13

3. Détection de points d’intérêts

Introduction : Un certains nombre d’applications nécessitent de trouver des points d’intérêts (calibration, reconstruction 3D, etc…)

Principe :– Des points caractéristiques dans une image sont des coins. Dans une

première approche, on peut considérer que les coins sont caractérisés par des gradients importants suivant 2 directions perpendiculaires.

– Détecteur de Harris :

• Calcul des dérivées premières dans l’image Gx et Gy

• Lissage des gradients avec filtre moyenneur : Gmx et Gmy

• Construction de la matrice C :

⎟⎟⎠

⎞⎜⎜⎝

⎛= 2

2

..

GmyGmyGmxGmyGmxGmx

C

Page 14: UE Traitement d’Images Master Recherche Notes du cours 4elynxsdk.free.fr/ext-docs/Demosaicing/more/news1/Cours4_Christop… · C’est un contour actif, « snake » en Anglais –

14

3. Détection de points d’intérêts

• (suite): A partir de la matrice C, on peut extraire un critère pour tester la présence de coins :

Critère = Det(C) - k.Trace2(C) avec k=0.04

Critère = (Gmx2.Gmy2 – (GmxGmy)2)-( k (Gmx2 + Gmy2)2)

Variante :

Critère = (Gmx2.Gmy2 – (GmxGmy)2)/(Gmx2 + Gmy2 + eps)

• La recherche de max locaux sur l’image ‘critère’ permet de détecter des ‘coins’. Voir exemple.