Vous êtes sur la page 1sur 76

Chapitre 1 

Localisation des zones


d’intérêt dans l’image

Vision par Ordinateur


2021 - 2022 M. SID AHMED BERRABAH
M2 - MID514
Localisation des zones d’intérêt
(features, primitives)
2

01/10/2021
Localisation des zones d’intérêt
(features, primitives)
3

But : Trouver les features (régions,


points) dans différentes images prises
de différentes positions ou temps pour
une meilleure correspondance.

01/10/2021

Applications
4

Comparaison entre 2 ou plusieurs images


● Panorama
● Alignement d’images
● Reconstruction 3D
● Suivi d’objet
● Reconnaissance d’objets
● Indexation/Recherche sur base de données
● Navigation
01/10/2021
Applications
5

● Panorama

01/10/2021
Applications
6

● Alignement d’images

01/10/2021
Applications
7

Reconstruction 3D

01/10/2021
Applications
8

● Suivi d’objet

01/10/2021

Applications
9

Comparaison entre 2 ou plusieurs images


● Alignement d’images
● Panorama
● Reconstruction 3D
● Suivi d’objet
● Reconnaissance d’objets
● Indexation/Recherche sur base de données
● Navigation
01/10/2021
Correspondance d’images
10

Correspondance
01/10/2021
Difficultés
11

● Différence de prise de vue (orientation, zoom,


résolution de la caméra, …)

● Les propriétés photométriques : la luminosité


et/ou le contraste (variations dues aux moments
différents de la journée, météo, flash…)

● Occlusion : une partie de l'image est cachée

● Background clutter : une partie de l'image se


confond avec les éléments en arrière-plan

01/10/2021
Correspondance d’images
12

Correspondance

la stratégie consiste à trouver les éléments communs aux deux


images. La problématique est alors reformulée ainsi :

Quels sont les éléments caractéristiques de l'image 1 ? Les retrouvet-


on dans l'image 2 ?
01/10/2021
Template (patch) matching
13

Template : est une petite image représentant des motifs particuliers


de l’image.
template matching a pour but de retrouver des templates dans une
image.

01/10/2021
Template matching
14

Template matching utilise une mesure par corrélation notée ⊗ :


Le maximum indique la plus grande ressemblance.

f : image de recherche


h : template

01/10/2021
Template matching
15

En général, on utilise l'opérateur de corrélation normalisée, qui


est peu sensible aux changements locaux d'illumination et de
contraste. Pour cela, on divise h et les régions de f que h superpose
par leurs variances respectives, puis on calcule la corrélation croisée
entre ces nouvelles images de variance 1.

Question : Quoi faire dans le cas des zoom, différence d’orientation,


occlusion, … ?

Solution : utiliser des zones d’intérêt locales appelées features ou


primitives.
01/10/2021
Features
16

Les features (primitives) peuvent correspondre à des contours, des


points ou des régions d'intérêt. A chaque feature détectée est
associé un vecteur, appelé descripteur (feature descriptor ou feature
vector), qui, comme son nom l'indique, décrit la zone concernée.

01/10/2021
Correspondance d’image
17

La résolution du problème de correspondance d’image ( image


matching) se fait alors en deux étapes :

➢ Détecter et décrire les features dans chaque image

➢ Trouver les paires de features qui se correspondent dans


les deux images (features matching)

01/10/2021
Correspondance d’image
18

L'algorithme de correspondance d’images étudie des images


caractérisées par leurs features. Ce qui fait que la qualité du
résultat dépend (entre autres) de la pertinence des features
détectées.

Quelles features faut-il sélectionner ? 

01/10/2021
Features
19

les features sont des zones intéressantes de l'image. Plus précisément, une
zone constitue un bon choix comme feature si elle est :

Répétable : une feature doit se retrouver dans les images représentant la


même scène malgré les différences géométriques et photométriques. Une
feature doit donc présenter des propriétés d'invariance à ces transformations.

Distinctive : une feature  doit être suffisamment unique et non-ambiguë au


sein d'une image pour faciliter la correspondance. Ce sont les informations
contenues dans son descripteur qui doivent mettre en valeur sa particularité.  

Locale : une feature doit correspondre à une zone suffisamment petite, et


elle est décrite selon son voisinage uniquement. Cela permet d'éviter les
difficultés de correspondance dues aux phénomènes d'occlusion et
de background clutter.

De plus, les features détectées doivent être assez nombreuses, 01/10/2021


Coin (corner) comme feature
20

Région plate : aucun bordure : pas de changement coin: changement significatif


changement d’intensité le long de la bordure dans toutes les directions
dans toutes les direction

Les coins (corners) correspondent aux positions où les variations


de l’intensité de l’image sur les deux directions X et Y sont élevées.

01/10/2021
Étapes de détection des
21
corners
1. Pour chaque pixel de l’image d’entrée, l’opérateur de coin est appliqué pour
obtenir une mesure de qualité du pixel comme coin (cornerness du pixel).

2. Seuillage de la carte de qualités pour éliminer les coins avec une qualité faible.

3. Appliquer une suppression non-maximal pour éliminer les points avec une
qualité coin est moins élevée que la valeur de la qualité de tous les point dans une
certaine distance.

01/10/2021
Détecteur de corners : Maths
22

Considérons un déplacement de la fenêtre W par (u,v) :


• Comment changent les pixels dans W ?

• Comparer chaque pixel avant et après par une


erreur quadratique SSD ( sum of squared
differences) : fonction erreur E(u,v) :

• Un coin correspond à une erreur élevée.

• Très lente méthode pour calculer pour chaque pixel et


chaque déplacement (u,v).

01/10/2021
Détecteur de corners : Maths
23

Petits déplacements  ===> Utiliser le développement de Taylor de I :

termes d’ordres supérieurs

Si le déplacement (u,v) est faible, alors l’approximation par le premier ordre est
suffisante :

Remplacer dans l’équation de E(u,v) :


01/10/2021
Détecteur de corners: Maths
24

01/10/2021
Détecteur de corners: Maths
25

Donc, E(u,v) est localement approximée par une fonction d’erreur quadratique.

01/10/2021
Détecteur de corners : Maths
26

Donc, E(u,v) est localement approximée par une fonction d’erreur quadratique.

01/10/2021
Détecteur de corners : Maths
27

Bordure horizontale

01/10/2021
Détecteur de corners : Maths
28

Bordure verticale

01/10/2021
Détecteur de corners: Maths
29

Cas général
On peut visualiser H comme une ellipse avec les longueurs des axes
déterminées par les valeurs propres (eigenvalues) de H et
l’orientation déterminée par les vecteurs propres (eigenvectors) de H

Équation de l’ellipse :
Direction du
changement rapide
Direction du
changement lent

Valeurs propres de H
01/10/2021
Valeurs propres / Vecteurs
propres
30

Les vecteurs propres d’une matrice A sont les vecteurs x tel que :

Le scalaire λ est la valeur propre correspondante à x


• Les valeurs propres sont calculer en résolvant :

• Dans notre cas, A = H est une matrice 2x2, donc nous avons :

• La solution :

Une fois λ connue, x peut être déterminé en résolvant :

01/10/2021
Détecteur de corners: Maths
31

Valeurs et vecteurs propres de H :



Définis les directions du déplacement avec le plus faible et le plus important
changement.

Xmax : direction du plus grande augmentation de E

λmax : l’augmentation dans la direction de xmax

xmin : direction du plus faible augmentation de E

λmin : l’augmentation dans la direction de xmax
01/10/2021
Détecteur de corners: Maths
32

On veut que E(u,v) soit grande pour des petits déplacements dans toutes
les directions :


Le minimum de E(u,v) doit être grand pour tout vecteur unitaire [u,v]


Ce minimum est donné par la plus petites valeurs propre λmin de H

01/10/2021
Détecteur de corners: Maths
33

Classification des points en fonction des valeurs propres

01/10/2021
Détecteur de corners: Algorithme
34

Le résumé de l’algorithme de détection des corners :


Calculer les gradients dans les deux directions à chaque point de l’image


Créer la matrice H à partir des gradients


Calculer les valeurs propres de H


Trouver les points avec une grande réponse (λmin > seuil)


Choisir les point où λmin est un maximum local comme features (coins)

01/10/2021
Opérateur de Harris
35

L’opérateur de Harris pour la détection de coin utilise une variété pour λmin pour
éviter de calculer les valeurs propre :

trace(H) = h11 + h22


determinant(H) = h11 . h22 - h12 + h21

01/10/2021
Opérateur de Harris
36

L’opérateur de Harris utilise une fonction de pondération gaussienne sur les


dérivatives :

01/10/2021
Opérateur de Harris : Algorithme
37

1. calculer les dérivées

2. dérivées au carré

3. Dérivées au carré filtré par une


gaussienne
4. Calculer f pour tous les pixels de l’image

5. Appliquer f > seuil

6. Retenir les maximums locaux seulement 01/10/2021


Propriétés du détecteur de Harris
38


Invariance à la rotation

L’ellipse tourne, mais la longueur de ses axes


(valeurs propres) restent les mêmes

01/10/2021
Propriétés du détecteur de Harris
39


Dépend de la taille de la fenêtre!

01/10/2021
Propriétés du détecteur de Harris
40


Invariance à l’échelle

Calculer réponse sur plusieurs échelles

Réponse est similaire même si on réduit la taille de l’image

01/10/2021
Propriétés du détecteur de Harris
41


Invariance à l’échelle

Comment déterminer la taille de la fenêtre indépendamment
pour chaque image?

Choisir la taille en fonction du “meilleur” coin

01/10/2021
Détecteur Hessien (Beaudet,1978)
42

01/10/2021
Détecteur Hessien (Beaudet,1978)
43

Chercher les points dans l’image où il y a des grands changements


des dérivées secondes dans les deux directions.

Sélectionner les points où det(H) = 0

Fonction objectif :

> seuil
01/10/2021
Détecteurs Harris / Hessien
44

Résumé :
➢ Invariant par rapport au changement d’intensité

➢ Invariant par rapport au déplacement et rotation

➢ Non invariant par rapport à l’échelle

redétection

bordure Coin

Facteur du zoom 01/10/2021


Détecteurs Harris / Hessien
45

01/10/2021
Points d’intérêt : SIFT
46

SIFT : Scale Invariant Feature Transform (Lowe 2004)

C’est une nouvelle approche de détection de points d’intérêt (PIs)


très populaire. Elle assure :

➢ L’invariance par rapport au changement d’éclairage (intensité)

➢ L’invariance par rapport au point de vue (déplacement et rotation)

➢ L’invariance par rapport à l’échelle (zoom)

01/10/2021
Espace d’Échelle
47

L’espace d’échelle essaye de reproduire sur les images numérique le


principe de l’échelle de vision naturelle.

Exemple si on regarde un objet particulier, on ne se concentre pas sur


quelque détail.

L’approche est par un lissage Gaussien.

Pour créer un espace d’échelle, on génère progressivement à partir


de l’image originale des images lissées (floutées).

01/10/2021
Espace d’Échelle
48

Exemple :

01/10/2021
Espace d’Échelle dans SIFT
49

Dans l’algorithme SIFT, l’espace d’échelle se fait comme suite :


- Prendre l’image originale et générer progressivement les images
lissées.
- Réduire la taille de l’image à la moitié de sa taille et générer de
nouveau des images lissées.
- Refaire la procédure.

Les images de la même taille forment un octave. Chaque octave est


constitué de 5 images. Les images d’un octave sont formées par un
lissage progressive (échelle).
01/10/2021
50

quatrième octave

troisième octave

deuxième octave

Premier octave 01/10/2021


Espace d’Échelle dans SIFT
51

Le nombre d’octaves et d’échelle dépend de la taille de l’image


originale. Les auteurs de l’algorithme SIFT montrent que 4 octaves et
5 niveaux de lissage sont idéals pour l’algorithme.
Le lissage est la convolution de l’image par une gaussienne.

L  : image lissée
G  : fonction gaussienne
I  : image originale
σ  : paramètre de l’échelle (le niveau du lissage). Plus il est grand,
plus le lissage est important.
*  : opération de convolution. 01/10/2021
Espace d’Échelle dans SIFT
52

Résumé :
Dans la première étape de l’algorithme de l’opérateur SIFT, on crée
l’espace d’échelle de l’image par :
●générer plusieurs octaves de l’image originale. La taille des
images d’un octave est la moitié de la taille des images de l’octave
précédent.
●Dans l’octave, les images sont lissées progressivement par une
fonction gaussienne. Le coefficient du lissage σ augment par un
facteur constant :

σn = kσn-1 k constant

01/10/2021
Opérateur SIFT : Approximation LoG
53

Dans cette étape de l’algorithme, nous utilisons les images lissées


obtenue à l’étape une pour générer de nouvelles images, les
différences de Gaussiennes (DoG).

Principe: On calcule le Laplacien des gaussiennes (Laplacian of


Gaussian LoG). Le Laplacien (deuxièmes dérivées) d’une image
permet de détecter les contours et les coins dans l’image. Ces
contours et coins constituent un bon choix comme features.

Comme la deuxième dérivée est très sensible aux bruits, l’image est
lissée d’abord par une gaussienne puis le Laplacien est appliqué.

Le problème est que le calcule de la dérivée seconde est très intense


en calcul machine, l’algorithme SIFT procède autrement pour
calculer une approximation.
01/10/2021
Opérateur SIFT : Approximation LoG
54

Pour générer rapidement le Laplacien des images gaussiennes, on


utilise l’espace échelle. On calcule la différence entre deux échelles
consécutives Difference of Gaussians (DoG) :

01/10/2021
Opérateur SIFT : Approximation LoG
55

Les différences de gaussiennes est approximativement équivalent


au Laplacien de gaussienne.

Ces DoG sont aussi « invariant à l’échelle »

01/10/2021
Opérateur SIFT : Trouver les PIs
56

La recherche des PIs dans l’algorithme SIFT se fait en deux étapes :

1. Localiser les maxima / minima dans les images DoG

2. Trouver les sous-pixels maxima / minima.

01/10/2021
Opérateur SIFT : Trouver les PIs
57

1. Localisation des maxima/minima dans les images DoG


La procédure est simple, comparer chaque pixel par rapport à ses
voisins. La comparaison est faite dans l’image courante et les images
de dessus et de dessous :

X marque le pixel courent. Ce qui fait un total de 26 comparaisons. X


est marqué comme un point d’intérêt s’il a la plus grande ou petite
valeur de ses 26 voisins. 01/10/2021
Opérateur SIFT : Trouver les PIs
58

Généralement, un non maxima ou minima ne nécessite pas de


faire toutes les 26 vérifications.

A noter que les PIs ne sont pas détectés dans les niveaux le plus
bas et le plus haut comme ils n’ont pas assez de voisins pour les
comparaisons.

Après cette étape, les points sélectionnés sont des approximations


des maxima et minima comme les maxima / minima sont
généralement situés entre les pixels.

01/10/2021
Opérateur SIFT : Trouver les PIs
59

2. Trouver les sous-pixel maxima/minima

Ceci se fait par des développements de Taylor dans l’image autour


des pixels sélectionnés.

01/10/2021
Opérateur SIFT : éliminer les PIs avec
un faible contraste
60

L’étape précédente génère trop de PIs. Plusieurs d’entre eux sont sur
des contours ou ils n’ont pas assez de contraste. Dans les deux cas,
ils ne sont pas utiles comme des PIs.

L’approche pour les éliminer est similaire à celle utilisée dans


l’algorithme de Harris pour la détection des coins.


Éliminer les point avec un faible contraste : Si l’amplitude de
l’intensité (valeur absolue) au pixel courent dans l’image DoG est
inférieure à une certaine valeur, alors il est éliminé.

01/10/2021
Opérateur SIFT : éliminer les PIs
situés sur les bordures
61


Éliminer les pixels des bordures : L’idée est de calculer le
gradient dans les deux directions autour du pixel :


Si la région est plate, les deux gradients sont faibles


Si un des gradient est grand et l’autre est faible, alors le pixel
correspond à une bordure


Si les deux gradients sont élevés alors c’est un coins.

On laisse juste les points correspondants à des coins. L’algorithme


SIFT utilise pour cette vérification la matrice Hessienne.

01/10/2021
Opérateur SIFT : L’orientation des PIs
62

Jusqu’à maintenant nous avons sélectionné les meilleurs PIs qui sont
invariants par rapport à l’échelle. Nous allons maintenant affecter une
orientation à chaque point pour lui assurer une invariance par rapport
à la rotation.

Approche : Collectionner les directions et les amplitudes du gradient


autour de chaque PI et assigner au point la direction la plus
dominante.

La taille de la région de collection de l’orientation autour du point


dépends de son échelle (l’échelle où il a été détecté). Plus l’échelle
est grande, plus la région de collection est grande. En pratique la
taille de la région est égale à la taille du noyau de la gaussienne du
lissage (1.5*sigma).
01/10/2021
Opérateur SIFT : L’orientation des PIs
63

Les amplitudes et les orientation du gradient sont calculées comme


suite :

01/10/2021
Opérateur SIFT : L’orientation des PIs
64

L’amplitude et l’orientation sont calculées pour chaque pixel autour du


PI. Un histogramme est ensuite construit. Des pas de 10 degrés
d’orientation sont utilisés pour l’histogramme (360 degrés équivalent à
36 entrées (bars) de l’histogramme).

Exemple : une orientation du gradient de 27.78 degrés entre dans


l’entrée 20-29 degrés.

Les valeurs affectées aux entrées de l’histogramme sont


proportionnelles aux amplitudes du gradient.

L’orientation assignée au PI correspond au pique de l’histogramme.

01/10/2021
Opérateur SIFT : L’orientation des PIs
65

Dans l’exemple ci-dessous, le pique d’histogramme correspond à


l’entrée 3 (20-29 degrés), donc l’orientation 3 est assignée au PI.

01/10/2021
Opérateur SIFT : L’orientation des PIs
66

Les piques supérieures à 80% sont converties aussi en PIs. Ces


nouveaux PIs auront les mêmes position et échelle que le point
original. Mais leurs orientations sont égales aux entrées
correspondantes aux piques.

Donc, une orientation peut créer plusieurs PIs partant d’un seul PI.

Chaque PI est à présent défini par 4 composantes (x,y,σ,θ) : ses


coordonnées cartésiennes, son facteur d'échelles et son
orientation, et nous avons normalement une invariance par
rapport à la mise à l'échelle et à la rotation assurée.

01/10/2021
Opérateur SIFT : Vecteur caractéristique
du PI
67

A cette étape, nous allons créer l’empreinte du PI qui va nous


permettre de l’identifier par rapport aux autres PIs. Cette empreinte est
appelée le vecteur caractéristique du PI.

Pour faire, une fenêtre de 16x16 pixels est considérée autour du PI.
Cette fenêtre est répartie en 4x4 fenêtres.

• point-d’intérêt

01/10/2021
Opérateur SIFT : Vecteur caractéristique
du point d’intérêt
68

Dans chaque fenêtre 4x4, les amplitudes et orientations du gradient


sont calculées.
Pour garder l’invariance par rapport à la rotation, l’orientation du PI est
soustraite de chaque orientation.
Les orientations sont mis dans un histogramme de 8 bars (entrées).

01/10/2021
Opérateur SIFT : Vecteur caractéristique
du point d’intérêt
69

Une orientation dans l’intervalle 0-44 est ajoutée à la première entrée,


45-89 à l’entrée suivante, ainsi de suite … La même chose les
montants affectés aux entrées de l’histogramme correspondent à
l’amplitude du gradient multipliée par une gaussienne, pour donner
plus importance aux pixels proches du point d’intérêt. Plus le pixel est
loin plus qu’il ajoute une valeur moins importante à l’histogramme.

01/10/2021
Opérateur SIFT : Vecteur caractéristique
du point d’intérêt
70

Nous obtenons donc pour les fenêtres de 16 pixels (4x4) un total de 8


valeurs. Nous faisons cela pour les 4x4 régions, ce qui donne :
4x4x8 = 128 valeurs.

01/10/2021
Opérateur SIFT : Vecteur caractéristique
du point d’intérêt
71

01/10/2021
Opérateur SIFT : Vecteur caractéristique
du point d’intérêt
72

Le vecteur des 128 valeurs est ensuite normalisé (diviser chaque


valeur par la racine carrée de la somme des carrées des 128 valeurs).

Ce vecteur de 128 valeurs est appelé le vecteur caractéristique du


point d’intérêt. Il permet d’identifier le point par rapport aux autres PIs.

01/10/2021
Opérateur SIFT : Vecteur caractéristique
du point d’intérêt
73

Pour assurer une indépendance par rapport à l’illumination, un seuil


de 0.2 est imposé aux valeurs du vecteur caractéristique : Les
valeurs supérieures à 0.2 sont changées en 0.2. Le nouveau vecteur
est de nouveau normalisé.

01/10/2021
Détecteur des SIFT : Algorithme
74

1. construction de l’espace d’échelle : créer des représentations de l’image


originale.

2. Approximation LoG : Le Laplacien de Gaussienne est approximé par la


différence entre les gaussiennes DoG de l’étape 1.

3.Trouver les points-clés: correspondant aux maxima et minima dans les


image de différence de Gaussien calculer à l’étape 2

4. Éliminer les mauvais points-clés : les bordures et les régions avec faible
contraste représentent de mauvais choix pour les points-clés (même
approche que dans l’algorithme de Harris)

5. Affecter une orientation aux points-clés : Une orientation est calculer pour
chaque point-clé. Pour avoir une invariance au rotation.

6. Générer le descripteur du point-clé SIFT : une représentation (une


empreinte) spécifique du points d’intérêt qui va faciliter son identification par
01/10/2021
rapport aux autres features.
75

01/10/2021
Autres détecteurs de points d’intérêts

76

● Speed-Up Robust Features (SURF)

●Gradient Location and Orientation Histogram (GLOH)

●Binary Robust Independent Elementary Features (BRIEF)

●Oriented Fast and Rotated Brief (ORB)

●...

01/10/2021

Vous aimerez peut-être aussi