A2017 Traitement Images Partie 2 Page Web
A2017 Traitement Images Partie 2 Page Web
A2017 Traitement Images Partie 2 Page Web
Références utiles:
1
Introduction
2
Cette partie du cours aborde les éléments suivants :
3
Les caractéristiques d’intérêt
dans les images
4
Définition 1:
Définition 2:
5
Exemples
6
Détection de coins
7
Segmentation en régions
de couleurs indentiques
8
La détection des arêtes :
approches par dérivée première
9
Les étapes classiques de détection des pixels d’arêtes sont les suivantes:
10
Les opérations de détection et de localisation des arêtes sont
antagonistes et il faut trouver un compromis entre les deux pour obtenir
des performances satisfaisantes:
11
• Les arêtes d’illuminance résident généralement sur le contour des
“objets” dans l’image.
12
Types d’arêtes
Toit (roof)
Echelon (step)
Tiré de Pratt
13
Exemples
14
Rehaussement (détection) des arêtes
15
En pratique, comme l’image est discrète (E(i,j)), on utilise des
opérateurs de gradient discrets (horizontal (colonnes) et vertical
(lignes)) convolués avec l’image
[ ]
−1
Dérivée “verticale” 𝐷𝑦= 0 (3)
1
16
On peut tirer profit du fait que la convolution est une opération
linéaire (que ce soit pour le filtrage gaussien ou pour la dérivation)
pour écrire que:
17
Exemple
𝐺∗𝐸 ¿ ¿
Une fois 𝐸 𝑥et 𝐸 𝑦 calculés, on s’intéresse au module et à l’orientation du gradient à
chaque pixel:
Orientation 𝐸 𝜃=arctan
[ ]
𝐸𝑦
𝐸𝑥
(6)
19
Exemple avec l’échiquier
¿ ¿ 𝐸 𝑠= √ 𝐸 +𝐸
2
𝑥
2
𝑦
Amplitude du gradient
20
Pour détecter les pixels d’arête, il suffit d’appliquer un seuil sur
l’amplitude du gradient et de ne conserver que les pixels au-dessus de ce
seuil. Le seuil peut être choisi automatiquement en construisant un
histogramme de l’amplitude du gradient.
pixels dont
l’amplitude du
gradient dépasse
un seuil
21
La détection des arêtes :
approches par dérivée seconde
22
Il est aussi possible de détecter les pixels d’arête en calculant la dérivée
seconde de l’image.
2
𝛻 𝐸 (𝑥 , 𝑦 )=¿¿ (7)
23
Le Laplacien étant une dérivée seconde, son calcul est encore plus affecté par
le bruit que le gradient.
Comme dans le cas du gradient, on peut tirer profit du fait que le filtrage
gaussien et le Laplacien sont des opérations linéaires. On peut écrire:
24
En tirant profit de l’associativité, on a que:
Version discrète 3 x 3
[ ]
0 1 0
𝐿= 1 −4 1 (9)
0 1 0
25
Propriétés importantes du Laplacien de Gaussienne LoG) :
26
Illustration de la détection des pixels d’arête avec l’opérateur LoG
pixel d’arête
Tiré de Nixon
27
On peut approximer le LoG en prenant la différence de deux gaussiennes
(DoG) de valeurs d’écart-type s différentes
𝐺𝜎2
𝐺𝜎1
𝐺 𝜎 1 − 𝐺𝜎 2
28
Exemple de résultats
29
Pour des raisons non-évidentes et non reliées à la discrétisation de l’opérateur, le
LoG cause l’apparition d’artéfacts indésirables comme des boucles le long de
certaines arêtes et des petites bosses près des coins
Tiré de Forsyth
30
La détection des arêtes
par dérivée première : quelques
autres opérateurs discrets
31
Opérateur de Roberts (peu utilisé, mais
célèbre sur le plan historique)
𝑅 𝑥= [ 1
0
0
−1 ] 𝑅𝑦 =
[ 0
−1
1
0 ] (10)
[ ] [ ]
−1 0 1 −1 −1 −1
Opérateur de Prewitt (très utilisé à cause de 𝑃 𝑥= − 1 0 1 𝑃 𝑦= 0 0 0 (11)
−1 0 1 1 1 1
sa simplicité)
[ ] [ ]
Opérateur de Sobel (donne plus −1 0 1 −1 −2 −1
d’importance aux pixels sur le 4-voisins du 𝑆 𝑥= − 2 0 2 𝑆𝑦 = 0 0 0
(12)
−1 0 1 1 2 1
pixel central du masque de convolution)
32
La détection des arêtes par dérivée première :
opérateur optimal de Canny
33
L’un des opérateurs de détection d’arêtes les plus célèbres est l’opérateur de
Canny (Canny edge détector)
34
Critères de performance définis par Canny :
1. détection des pixels d’arête : le but est d’obtenir peu de fausses alarmes
et peu de fausses détections
[ ] [ ]
−1 0 1 0 −1 −1
𝐸 𝑠 −0 ∘ = −1 0 1 𝐸 𝑠 −45 ∘ = 1 0 −1
Convolution avec des opérateurs −1 0 1 1 1 0
directionnels (0°, 45°, 90°, 135°)
[ ] [ ]
−1 −1 −1 −1 −1 0
𝐸 𝑠 −90 ∘ = 0 0 0 𝐸 𝑠 −135 = − 1 ∘ 0 1
1 1 1 0 1 1
36
Détecteur de Canny – Etape 2
Élimination des non-maximums:
37
Détecteur de Canny – Etape 3
Seuillage d’amplitude
38
Détecteur de Canny – Etape 3
Seuillage d’amplitude
39
Exemple et analyse
En pratique:
• il y a des pixels d’arête (“edgels”) Tiré de Efford
superflus causés par le bruit
• il y a des pixels d’arête non détectés à
cause du choix arbitraire des seuils
• il y a des erreurs dans la position et
l’orientation des edgels (notamment à
cause de la discrétisation)
• pour compenser ces faiblesses,il faut (a) seuil de 50 (b) seuil de 150
concevoir des algorithmes de suivi
d’arêtes de haut niveau (raisonnement
à un niveau supérieur au pixel)
40
En complément
• traitement multi-échelles
• traitement spécifique pour les jonctions entre arêtes (jonctions en “L”, jonctions
en “T”, jonctions en “Y”
41
Détection des coins et points isolés
“stables” et invariants
42
Constat sur les pixels d’arête: les détecteurs se comportent moins bien près
des coins car le gradient est mal défini (ou discontinu) en ces endroits de
l’image.
• détecteur de Harris
• détecteur de Förstner
43
Détection de coins de Harris
44
Etapes de la méthode de Harris
45
La fonction d’autocorrélation de l’image en (x,y) est donnée par:
𝐶 ( 𝑥 , 𝑦 )= ∑ ¿ ¿ ¿ (13)
𝑤
( 𝑥𝑖 , 𝑦 𝑖 ¿ 𝑠𝑜𝑛𝑡 𝑙𝑒𝑠 𝑝𝑖𝑥𝑒𝑙𝑠 𝑑𝑎𝑛𝑠 𝑤
46
En replaçant (14) dans (13), on a:
𝐶 ( 𝑥 , 𝑦 )= ∑ ¿ ¿ ¿ (15)
𝑤
[ ∑𝑥 ∑ 𝐼𝑥 𝐼𝑦
]
2
[ ]
𝐼 𝛥𝑥
𝐶(𝑥, 𝑦)= [ 𝛥 𝑥 𝛥 𝑦 ] 𝑤 𝑤 (16)
𝛥𝑦
∑ 𝐼 𝑦 𝐼𝑥 ∑ 𝐼𝑦 2
𝑤 𝑤
47
La matrice:
[ ∑𝑥 ∑ 𝐼𝑥 𝐼𝑦
]
2
𝐼
𝑤 𝑤 (17)
∑ 𝐼𝑦 𝐼𝑥 ∑ 𝐼𝑦 2
𝑤 𝑤
Ses valeurs propres 𝜆1 et 𝜆2 décrivent l’étalement des valeurs du gradient dans deux
directions orthogonales (et peuvent être associées aux “courbures” principales de la
fonction d’autocorrélation).
48
On calcule la valeur R (la réponse de l’opérateur) définie comme:
𝑅=𝑑𝑒𝑡 (𝐶 ( 𝑥 , 𝑦 )) −𝑘 ¿ (18)
2
𝑅=𝜆1 𝜆2 −𝑘 ( 𝜆1 + 𝜆2 ) (19)
49
L’analyse des iso-contours de R fournit l’interprétation suivante.
Tiré de “A COMBINED CORNER AND EDGE DETECTOR”, Chris Harris & Mike Stephens, Plessey Research, 1988
50
Pour repérer les coins significatifs dans l’image, on procède
comme suit:
51
Résultats
Tiré de Trucco
52
Détection de points isolés stables
Détecteur SIFT
(Scale-Invariant Feature Transform)
53
Objectif de l’algorithme SIFT
54
Exemple
Dessin
55
La stratégie consiste à trouver un descripteur (le descripteur SIFT)
pour des pixels qui soit stable en fonction de l’échelle de l’image
56
Cette approche a été proposée par David Lowe (professeur à UBC) dans l’article suivant:
David G. Lowe, "Distinctive Image Features from Scale-Invariant Keypoints", International Journal of
Computer Vision, November 2004, Volume 60, Issue 2, pp 91–110
Cette méthode a connu plusieurs variantes et améliorations. Elle demeure un fondement de la vision
artificielle.
57
Les étapes de la méthode SIFT sont les suivantes:
58
ETAPE 1 : Construction de la pyramide d’images filtrées par des gaussiennes.
• Plus l’échelle augmente, plus les détails fins (plus petits que s) s’estompent
¿ (20)
59
On construit une pyramide en soustrayant
les images de deux échelles voisines
(différences de gaussiennes DoG D(x,y,s))
60
Les paramètres utilisés pour construire la pyramide sont les suivants:
1. octave : multiplication par un facteur 2 de l’écart type d’une échelle. On a donc les
octaves s, 2s, 4s, 8s
2. s : nombre d’intervalles dans un octave
3. ne : nombre d’échelles dans un octave
4. k : facteur multiplicatif de l’écart-type d’une échelle pour obtenir l’écart-type de l’échelle
suivante
D’après les analyses expérimentales menées par Lowe, les paramètres optimaux de l’approche
pyramidale sont les suivants:
1. nombre d’octaves : 4
2. nombre d’échelles par octave ne = 5
3. nombre d’intervalles dans un octave s = 2
4. nombre d’images par octave ni = s + 3 = 5
5. facteur multiplicatif de l’écart-type d’une échelle k = 2 1/s, donc 𝑘= √2
Les diagrammes qui suivent illustrent comment l’espace d’échelles est construit.
61
Diagramme illustrant la construction de l’espace d’échelles et le calcul des DoG
À l’octave 1, 5 images filtrées
L(x,y,s) sont générées avec le s
de l’échelle 2 = k s, etc.
À l’octave 2, on récupère
l’image “au centre” de l’octave
1, on la décime par 2 sur les
lignes et les colonnes et on
filtre.
Octave 3
Octave 2
Octave 1
Tiré de : http://aishack.in/tutorials/sift-scale-invariant-feature-transform-scale-space/ 63
ETAPE 2 : Détection des extrémums de différences de gaussiennes dans l’espace
des échelles
64
Exemple de résultat de pixels d’intérêt potentiels
65
Approche d’interpolation de la position des pixels d’intérêt potentiels:
𝛿 𝐷𝑇 1 𝑇 𝜕2 𝐷
𝐷(𝑥)=𝐷+ 𝑥+ 𝑥 2
𝑥 (22)
𝛿𝑥 2 𝜕𝑥
Les dérivées sont estimées numériquement
66
La position interpolée ^𝑥 de l’extrémum est calculée en égalant la dérivée de (22)
à zéro
¿¿ (23)
qui donne:
𝜕2 𝐷 −1 𝛿 𝐷
^𝑥 =− 2 (24)
𝜕𝑥 𝛿𝑥
67
Preuve de (24) en 1 dimension
′ 1 ″ 2
𝑓 ( 𝑥)= 𝑓 + 𝑓 𝑥+ 𝑓 𝑥 (25)
2
𝛿𝑓 ″ ′ 1 ‴ 2 2 ″
=0+ 𝑓 𝑥+ 𝑓 + 𝑓 𝑥 + 𝑓 𝑥 (26)
𝛿𝑥 2 2
En simplifiant et en négligeant f’’’ on obtient:
2 𝑓 ″ 𝑥+ 𝑓 ′ =0 (27)
69
ETAPE 3 : Élimination des pixels d’intérêt de faible contraste
Un seuillage absolu appliqué sur les pixels d’intérêt candidats pour lesquels
¿ 𝐷 ( ^𝑥 ) ∨¿ 0.03 (29)
permet d’éliminer ceux qui sont instable et situés dans les zones de faible
contraste
Les pixels d’intérêt situés près des arêtes d’illuminance sont instables car
leur apparence dépend beaucoup du point de vue. Il sont aussi instables
car ils peuvent disparaître selon selon certaines conditions d’éclairage.
Pour éliminer ces pixels d’intérêt près des arêtes, on procède de façon
similaire à l’approche de détection de coins de Harris, soit par l’analyse
d’une matrice construite dans le voisinage de ces pixels.
71
La matrice Hessienne H au pixel d’intérêt (x,y,s) est définie comme suit:
𝐻=
[ 𝐷 𝑥𝑥
𝐷 𝑦𝑥
𝐷 𝑥𝑦
𝐷 𝑦𝑦 ] (30)
Nous porterons attention au rapport des courbures (ou des valeurs propres) de H
𝑟 < 𝑠𝑒𝑢𝑖𝑙 𝑂𝐾
(31)
𝑟 > 𝑠𝑒𝑢𝑖𝑙 𝑎𝑟 ê 𝑡𝑒
72
Soit a la plus grande valeur propre de H et b la plus petite. On peut calculer la
trace de H notée Tr(H) et le déterminant de H noté Det(H) :
𝛼 (34)
𝑟=
𝛽
73
En utilisant (34) et en calculant le rapport entre Tr2(H) et Det(h) on a:
𝑇𝑟 ( 𝐻 ) 2 (35)
¿ ¿
2
On remarque que le rapport 𝑇𝑟 ( 𝐻 ) ne dépend que du rapport des valeurs
propres de H ¿¿
(r+1)^2/r
25
2
(𝑟 +1 ) est minimum pour r = 1. 20
𝑟 15
(r+1)^2/r
10
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
r
74
Les analyses sur un grand nombre d’images de natures diverses ont permis de
choisir r = 10 comme seuil. Par conséquent, si
2
𝑇𝑟 ( 𝐻 ) (36)
¿¿
on choisit de conserver le pixel d’intérêt.
Pour
𝑇𝑟 ( 𝐻 )2 (37)
¿¿
75
Résultat
Certains pixels ont la vie dure
Pixels d’intérêt Pixels d’intérêt après l’élimination Pixels d’intérêt après l’élimination
des pixels à faible contraste des pixels à faible contraste et des
pixels d’arête
76
ETAPE 5 : Assignation d’orientation privilégiée aux pixels d’intérêt
Pour un pixel d’intérêt localisé en (x,y,sp), on choisit l’image filtrée L(s) d’échelle
s la plus près de sp de manière à rendre les traitements subséquents invariants à
l’échelle.
77
ETAPE 5 : Assignation d’orientation privilégiée aux pixels d’intérêt
Pour un pixel d’intérêt localisé en (x,y,sp), on choisit l’image filtrée L(s) d’échelle
s la plus près de sp de manière à rendre les traitements subséquents invariants à
l’échelle.
78
Pour chaque pixel (x,y) de L(x,y,s), on calcule l’amplitude m(x,y) du gradient:
𝑚 ( 𝑥 , 𝑦 )= √ ¿ ¿ (38)
−1
𝜃 ( 𝑥 , 𝑦 )=tan ¿ (39)
79
Un histogramme d’orientations est construit à partir des orientations du
gradient des pixels voisins d’un pixel d’intérêt.
80
Les maximums de l’histogramme correspondent à des orientations
dominantes au point d’intérêt. Le maximum absolu de
l’histogramme est détecté. L’orientation de ce maximum est
assignée au pixel d’intérêt.
Ces points d’intérêt décrivent une région de l’image (dans l’espace des échelles) de
manière stable et invariante par rapport aux paramètres de localisation, d’échelle et
d’orientation.
82
Le descripteur du point d’intérêt est construit avec des sous-régions 4 x 4 du
voisinage 16 x 16 du point d’intérêt.
83
De plus, pour réduire les effets de changement d’éclairage, le vecteur de 128
éléments est normalisé pour le rendre unitaire (i.e. module de 1).
84