COMPTE-RENDU PROJET S8 2010-2011 SALWA DEBBAGH VÉRONIQUE BRUNO MARIEME TOURE IRIS LAVAYSSIERE JONAS...

Preview:

Citation preview

C O M P T E - R E N D U P R O J E T S 8 2 0 1 0 - 2 0 11

S A L W A D E B B A G H

V É R O N I Q U E B R U N O

M A R I E M E T O U R E

I R I S L A V A Y S S I E R E

J O N A S P I C H A T

L U C A S S E R D I C

Segmentation d’Images par Contours Actifs Tensoriels

Organigramme projet

Segmentation par contours actifs

tensotiels

Tenseurs(Véro, Iris, Jonas)

Décomposition image en champ de

tenseur + représentation

ellipses(Véro)

Opérations sur les tenseurs

(Iris, Jonas)

Segmentation (Salwa, Marieme,

Lucas)

Level-set(Salwa, Jonas)

Noyaux gaussiens (Marieme, Lucas)

Chronologie Projet

Évolution dynamique du

contour

Sélection d’un contour initial

[1]qui évoluera au cours du temps.

Les calculs [2] se font d’abord sur

scalaires puis sur tenseurs.

Image quelconque en entrée

Image couleur

Sélection contour [1]

Calcul densité de probabilités

[2]Évolution du

contourDéfinition champs de tenseurs

Opérations sur les tenseurs

Chronologie finale du projet

Image couleur

Calcul du champ de tenseur

Sélection d’un

contour « grossier 

»

Calcul de densité de probabilité

s

Evolution du contour

Décomposition d’une image en champ de tenseurs

A partir d’une image RGB Obtention d’un champs de tenseur

Avec :

Modèle RGB Modèle HSL Champs de tenseurs

Décomposition d’une image en champ de tenseurs

Obtention des composantes du tenseur :

Composante de la matrice L

Composante de la matrice S

Composante de la matrice H

Représentation du champ de tenseurs

détermine :

La teinte (variation de )

La saturation (variation de l’excentricité : )

La luminance(variation de la taille : )

Représentation tensorielle d’une image couleur

tenseur.m

ellipse.m

Calculs sur les tenseurs

Comment?

3 espaces différents Euclidien – Riemannien – log-Euclidien

1ère projection pour utiliser la bonne métrique dans le calcul de la distance.2ème projection pour revenir dans l’espace de départ (projection inverse) et calculer la moyenne intrinsèque d’un champ de tenseur

Pourquoi projeter?

Pour que le résultat d’une opération sur des tenseurs soit un tenseur. Ici, pour que la moyenne intrinsèque associée aux différentes métriques soit bien un tenseur.

Calculs sur les tenseurs θ suit une distribution gaussienne

On fixe et (valeurs propres du tenseur pour un θ donné)

On fait varier θ selon une distribution gaussienne.

On a: et

On obtient alors les composantes des différents tenseurs T (=pour différents θ) avec:

On moyenne ces tenseurs suivant les 3 métriques: euclidienne, Rao et log-euclidienne.

Calculs sur les tenseurs θ suit une distribution gaussienne

22.2

2.42.6

2.83

-0.5-0.4-0.3-0.2-0.100.10.20.30.40.52

2.1

2.2

2.3

2.4

2.5

2.6

2.7

2.8

2.9

3

premier element

Nuage de tenseurs avec theta gaussien

deuxieme element

trois

iem

e ele

men

t

Champ de tenseurs

Moyenne de RaoMoyenne Euclidienne

Moyenne Log-euclidienne

Calculs sur les tenseurs θ suit une distribution gaussienne

-1.5 -1 -0.5 0 0.5 1 1.50

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1x 10

-3

Theta theorique

Erreurs pour theta gaussien

Rao

EuclidienneLog-euclidienne

Calculs sur les tenseurs λ2/λ1 suit une distribution gaussienne

On fixe θ et λ1 (inclinaison et une des deux valeurs propres)

On fait varier λ2/λ1 selon une distribution gaussienne.

On déduit la 2ème valeur propre λ2 à partir de λ1 et λ2/λ1 .

On obtient comme précédemment Vx et Vy à partir de θ.

On obtient alors les composantes des différents tenseurs T (=pour différents λ2/λ1) avec:

On moyenne ces tenseurs suivant les 3 métriques: euclidienne, Rao et log-euclidienne.

Calculs sur les tenseurs λ2/λ1 suit une distribution gaussienne

00.5

11.5

22.5

33.5

44.5

5

-2.5

-2

-1.5

-1

-0.5

0

0.5

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

premier element

Nuage de tenseurs avec rapport des lambda gaussien

deuxieme element

trois

iem

e e

lem

ent

Champ de tenseurs

Moyenne de RaoMoyenne Euclidienne

Moyenne Log-euclidienne

Calculs sur les tenseurs λ2/λ1 suit une distribution gaussienne

0.5 1 1.5 2 2.5 3 3.5 4 4.5 50

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

Rapport theorique

Erreurs pour rapport gaussien

Rao

EuclidienneLog-euclidienne

Calculs sur les tenseurs √(λ2*λ1) suit une distribution gaussienne

On fixe θ et λ1 (inclinaison et une des deux valeurs propres)

On fait varier √(λ2*λ1) selon une distribution gaussienne.

On déduit la 2ème valeur propre λ2 à partir de λ1 et √(λ2*λ1) .

On obtient comme précédemment Vx et Vy à partir de θ.

On obtient alors les composantes des différents tenseurs T (=pour différents λ2/λ1) avec:

On moyenne ces tenseurs suivant les 3 métriques: euclidienne, Rao et log-euclidienne.

Calculs sur les tenseurs √(λ2*λ1) suit une distribution gaussienne

0.40.5

0.60.7

0.80.9

11.1

1.21.3

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.30.5

0.55

0.6

0.65

0.7

0.75

0.8

0.85

0.9

premier element

Nuage de tenseurs avec produit des lambda gaussien

deuxieme element

trois

iem

e e

lem

ent

Champ de tenseurs

Moyenne de Rao

Moyenne Euclidienne

Moyenne Log-euclidienne

Calculs sur les tenseurs √(λ2*λ1) suit une distribution gaussienne

0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.51

2

3

4

5

6

7

8x 10

-3

Produit theorique

Erreurs pour produit gaussien

Rao

EuclidienneLog-euclidienne

Calcul d’un noyau Gaussien

Qu’est ce qu’un noyau?

il s’agit d’une technique d’estimation de densité de probabilité dans laquelle une fonction de densité connue (le noyau) est moyennée le long des données observées pour créer une approximation lisse.

Expression : où y est |C| est le déterminant de la matrice de covariance du noyau et n la

dimension de y.

Notre programme permet pour le moment de calculer la valeur du noyau gaussien pour un vecteur qui contient les coordonnées spatiales d’un point quelconque.

Calcul d’un noyau Gaussien

Il nous reste à l’adapter pour un tenseur. Mais aussi à créer notre propre fonction de calcul de la matrice de covariance, car la fonction matlab cov n’utilise pas la même moyenne que celle que nous utilisons.

De plus, il nous faut valider cette étape car lorsque nous traçons l’histogramme des valeurs de notre noyau, celui-ci ne suit pas une loi de probabilité gaussienne alors que notre distribution est gaussienne.

Estimation de la densité de probabilité

L’expression de la densité de probabilité est la suivante :

où K représente le noyau gaussien, z et x représentent des points, et n le nombre de points.

Cette expression de la densité de probabilité nous sert à vérifier l’homogénéité de notre image en un point z donné :

on calcule P(z) en prenant les xi à l’intérieur de contour pour estimer Pin, puis on calcule P(z) en prenant les xi à l’extérieur du contour pour estimer Pout. Si les 2 valeurs sont assez proches, alors nous sommes dans une zone homogène et il nous faut faire évoluer le contour.

Principe Level-Set

L'idée consiste à remplacer une courbe plane fermée par une surface fixe dans un espace où le temps représente la troisième dimension.

La méthode des Level Set est généralement utilisée pour suivre des interfaces à deux dimensions

Description

La figure de droite illustre plusieurs idées importantes sur la méthode. En haut à gauche nous voyons une courbe, c'est-à-dire une région bornée par une frontière régulière. Au-dessous, la surface rouge représente une fonction phi qui détermine cette forme, le plan bleu étant le plan (x,y). Le bord de cette forme est alors la courbe de niveau de phi tandis que la forme proprement dite est l'ensemble des points pour lesquels phi est positif ou nul.

Dans la rangée supérieure nous voyons la modification de la topologie par une scission. Il serait extrêmement difficile de décrire numériquement cette transformation en paramétrant la frontière et en suivant son évolution.

Technique

L'idée de base de la méthode des courbes de niveau est simple. Une interface Γ qui borne une région ouverte Ω peut être définie à l'instant t au point x comme le niveau zéro d'une fonction lisse phi(x,t)L'interface variable est alors définie par

Γ(t) = {(x,t)/phi(x,t)=0}

Phi est négatif à l'intérieur de Ω, positif à l'extérieur et nul sur Γ(t).

La position initiale de l'interface étant donnée, il s'agit de calculer son mouvement ultérieur dans un champ de vitesses donné V. Ces vitesses peuvent être fonction de la position, du temps, de la géométrie de l'interface (par exemple sa normale ou sa courbure moyenne) …

L'idée consiste simplement à définir une fonction lisse phi(x,t) qui représente l'interface comme l'ensemble tel que phi(x,t)=0. La fonction phi qui s'annule sur l'interface est positive à l'extérieur et négative à l'intérieur. Ainsi l'interface sera capturée à tous les instants ultérieurs en localisant simplement l'ensemble Γ(t) pour lequel phi s'annule. Les modifications de la topologie comme une séparation ou un regroupement sont alors bien définies sans ambiguïté.

Le mouvement s'analyse en faisant transporter les valeurs des niveaux φ par le champ de vitesse V. L'équation exprime qu'en chaque point la variation du niveau est portée par la normale à l'interface, c'est-à-dire par le gradient:

En réalité, seule la composante normale de V est nécessaire :de sorte que l'équation devient

où la fonction module représente la norme euclidienne et t le temps. C'est une équation aux dérivées partielles.

Où nous en sommes

On arrive pour l’instant à faire évoluer un cercle, donc à afficher les différents levelset de l’équation phi(x,y)=x^2+y^2.Pour cela c’est la valeur c des différentes courbes de niveaux phi(x,y)=c que l’on fait varier.

Or ce que l’on veut faire plus tard au moment de fusionner le travail de tous les membres du groupe, c’est de faire évoluer l’équation du contour, et toujours tracer le niveau 0 de chaque nouvelle courbe.L’outil matlab principal que l’on va utiliser est la fonction “contour” qui nous permet de tracer des lignes de niveau.

Pour le moment il nous faut déterminer le contour initial, et le tracer avec les contraintes que les pixels soient positifs à l’extérieur, nuls sur le contour et négatifs à l’intérieur, c’est seulement comme cela que l’on pourra faire évoluer notre contour phi(x,y).

Recommended