Vous êtes sur la page 1sur 27

Segmentation dImages par Contours Actifs Tensoriels

COMPTE-RENDU PROJET S8 2 0 1 0 - 2 0 11

SALWA DEBBAGH VRONIQUE BRUNO MARIEME TOURE IRIS LAVAYSSIERE JONAS PICHAT LUCAS SERDIC

Organigramme projet

Segmentation par contours actifs tensotiels

Tenseurs (Vro, Iris, Jonas)

Segmentation (Salwa, Marieme, Lucas)

Dcomposition image en champ de tenseur + reprsentation ellipses (Vro)

Oprations sur les tenseurs (Iris, Jonas)

Level-set (Salwa, Jonas)

Noyaux gaussiens (Marieme, Lucas)

Chronologie Projet

Image quelconque en entre

Slection dun contour initial [1]qui voluera au cours du temps. Les calculs [2] se font dabord sur scalaires puis sur tenseurs. Slection contour [1] Calcul densit de probabilits

volution dynamique du contour

[2]
Image couleur Dfinition champs de tenseurs

volution du contour

Oprations sur les tenseurs

Chronologie finale du projet

Image couleur

Calcul du champ de tenseur

Slection dun contour grossier

Calcul de densit de probabilits

Evolution du contour

Dcomposition dune image en champ de tenseurs

A partir dune image RGB

Obtention dun champs de tenseur

Modle RGB

Modle HSL

Champs de tenseurs

Avec :

Dcomposition dune 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

Reprsentation du champ de tenseurs

dtermine : La teinte (variation de ) La saturation (variation de lexcentricit : La luminance (variation de la taille : ) )

Reprsentation tensorielle dune image couleur

tenseur.m

ellipse.m

Calculs sur les tenseurs

Comment?

3 espaces diffrents

Euclidien Riemannien log-Euclidien

1re projection pour utiliser la bonne mtrique dans le calcul de la distance. 2me projection pour revenir dans lespace de dpart (projection inverse) et calculer la moyenne intrinsque dun champ de tenseur

Pourquoi projeter? Pour que le rsultat dune opration sur des tenseurs soit un tenseur. Ici, pour que la moyenne intrinsque associe aux diffrentes mtriques 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 diffrents tenseurs T (=pour diffrents ) avec:

On moyenne ces tenseurs suivant les 3 mtriques: euclidienne, Rao et logeuclidienne.

Calculs sur les tenseurs suit une distribution gaussienne

Nuage de tenseurs avec theta gaussien Champ de tenseurs Moyenne de Rao Moyenne Euclidienne Moyenne Log-euclidienne

2.9

2.8

2.7

troisieme element

2.6

2.5

2.4

2.3

2.2

2.1 3 2.8 2 0.5 2.6 0.4 0.3 2.4 0.2 0.1 0 -0.1 -0.2 2.2 -0.3 -0.4 -0.5 2

deuxieme element

premier element

Calculs sur les tenseurs suit une distribution gaussienne


-3

x 10

Erreurs pour theta gaussien

0.9

Rao Euclidienne Log-euclidienne

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0 -1.5

-1

-0.5

0 Theta theorique

0.5

1.5

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 dduit la 2me valeur propre 2 partir de 1 et 2/1 . On obtient comme prcdemment Vx et Vy partir de . On obtient alors les composantes des diffrents tenseurs T (=pour diffrents 2/1) avec:

On moyenne ces tenseurs suivant les 3 mtriques: euclidienne, Rao et logeuclidienne.

Calculs sur les tenseurs 2/1 suit une distribution gaussienne


Nuage de tenseurs avec rapport des lambda gaussien

Champ de tenseurs Moyenne de Rao Moyenne Euclidienne Moyenne Log-euclidienne 2

1.8

1.6

troisieme element

1.4

1.2

0.8

0.6

0.4 0.5 0 5 -0.5 -1 -1.5 -2 -2.5 deuxieme element 0.5 0 premier element 1.5 1 2.5 2 3.5 3 4.5 4

Calculs sur les tenseurs 2/1 suit une distribution gaussienne


Erreurs pour rapport gaussien 0.8 Rao Euclidienne Log-euclidienne 0.7

0.6

0.5

0.4

0.3

0.2

0.1

0 0.5

1.5

2.5 Rapport theorique

3.5

4.5

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 dduit la 2me valeur propre 2 partir de 1 et (2*1) . On obtient comme prcdemment Vx et Vy partir de . On obtient alors les composantes des diffrents tenseurs T (=pour diffrents 2/1) avec:

On moyenne ces tenseurs suivant les 3 mtriques: euclidienne, Rao et logeuclidienne.

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

Nuage de tenseurs avec produit des lambda gaussien

0.9

Champ de tenseurs Moyenne de Rao Moyenne Euclidienne Moyenne Log-euclidienne

0.85

0.8

troisieme element

0.75

0.7

0.65

0.6

0.55

0.5 0.3 0.2 0.1 0 -0.1 -0.2 -0.3 -0.4 deuxieme element 0.4 premier element 0.5 0.7 0.6 0.8 0.9 1.1 1 1.3 1.2

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


-3

x 10

Erreurs pour produit gaussien Rao Euclidienne Log-euclidienne

1 0.1

0.15

0.2

0.25

0.3 Produit theorique

0.35

0.4

0.45

0.5

Calcul dun noyau Gaussien

Quest ce quun noyau?

il sagit dune technique destimation de densit de probabilit dans laquelle une fonction de densit connue (le noyau) est moyenne le long des donnes observes pour crer une approximation lisse.

Expression : o y est |C| est le dterminant 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 coordonnes spatiales dun point quelconque.

Calcul dun noyau Gaussien

Il nous reste ladapter pour un tenseur. Mais aussi crer notre propre fonction de calcul de la matrice de covariance, car la fonction matlab cov nutilise pas la mme moyenne que celle que nous utilisons. De plus, il nous faut valider cette tape car lorsque nous traons lhistogramme 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

Lexpression de la densit de probabilit est la suivante : o K reprsente le noyau gaussien, z et x reprsentent des points, et n le nombre de points.

Cette expression de la densit de probabilit nous sert vrifier lhomognit de notre image en un point z donn : on calcule P(z) en prenant les xi lintrieur de contour pour estimer Pin, puis on calcule P(z) en prenant les xi lextrieur du contour pour estimer Pout. Si les 2 valeurs sont assez proches, alors nous sommes dans une zone homogne et il nous faut faire voluer le contour.

Principe Level-Set

L'ide consiste remplacer une courbe plane ferme par une surface fixe dans un espace o le temps reprsente la troisime dimension.

La mthode des Level Set est gnralement utilise pour suivre des interfaces deux dimensions

Description

La figure de droite illustre plusieurs ides importantes sur la mthode. En haut gauche nous voyons une courbe, c'est--dire une rgion borne par une frontire rgulire. Au-dessous, la surface rouge reprsente une fonction phi qui dtermine 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 range suprieure nous voyons la modification de la topologie par une scission. Il serait extrmement difficile de dcrire numriquement cette transformation en paramtrant la frontire et en suivant son volution.

Technique
L'ide de base de la mthode des courbes de niveau est simple. Une interface qui borne une rgion ouverte peut tre dfinie l'instant t au point x comme le niveau zro d'une fonction lisse phi(x,t) L'interface variable est alors dfinie par (t) = {(x,t)/phi(x,t)=0} Phi est ngatif l'intrieur de , positif l'extrieur et nul sur (t).

La position initiale de l'interface tant donne, il s'agit de calculer son mouvement ultrieur dans un champ de vitesses donn V. Ces vitesses peuvent tre fonction de la position, du temps, de la gomtrie de l'interface (par exemple sa normale ou sa courbure moyenne) L'ide consiste simplement dfinir une fonction lisse phi(x,t) qui reprsente l'interface comme l'ensemble tel que phi(x,t)=0. La fonction phi qui s'annule sur l'interface est positive l'extrieur et ngative l'intrieur. Ainsi l'interface sera capture tous les instants ultrieurs en localisant simplement l'ensemble (t) pour lequel phi s'annule. Les modifications de la topologie comme une sparation ou un regroupement sont alors bien dfinies sans ambigut.

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 porte par la normale l'interface, c'est--dire par le gradient:

En ralit, seule la composante normale de V est ncessaire : de sorte que l'quation devient

o la fonction module reprsente la norme euclidienne et t le temps. C'est une quation aux drives partielles.

O nous en sommes
On arrive pour linstant faire voluer un cercle, donc afficher les diffrents levelset de lquation phi(x,y)=x^2+y^2. Pour cela cest la valeur c des diffrentes courbes de niveaux phi(x,y)=c que lon fait varier.

Or ce que lon veut faire plus tard au moment de fusionner le travail de tous les membres du groupe, cest de faire voluer lquation du contour, et toujours tracer le niveau 0 de chaque nouvelle courbe. Loutil matlab principal que lon va utiliser est la fonction contour qui nous permet de tracer des lignes de niveau. Pour le moment il nous faut dterminer le contour initial, et le tracer avec les contraintes que les pixels soient positifs lextrieur, nuls sur le contour et ngatifs lintrieur, cest seulement comme cela que lon pourra faire voluer notre contour phi(x,y).

Vous aimerez peut-être aussi