Computer Vision Le GRAAL du traitement d image / Rêve de Google Préambule:. CPE Lyon damien.rohmer@cpe.fr 17 Novembre 010 1 Segmentation Analyse de forme Segmentation Rappel : Image Segmentation Detection de contours. Detection de contours Détection de variations de l image. Image I à niveaux de gris est une fonction D scalaire { D R R I = (x,y) I(x,y)
Rappel : = (. x,. y ). = dérivée partielle de la fonction de niveau de gris ( I)(x,y) = ( x I y I ) = I x (x,y) I y (x,y) Le gradient est un filtre derivateur = passe haut! x I détails suivant x, y I détails suivant y. I détails de l image. I > threshold extrait les contours des objets. Numériquement I = Norme du gradient ( I(x + 1,y) I(x,y) I(x,y + 1) I(x,y) I (x,y) = ( x I(x,y)) +( y I(x,y)) ) Cas des images bruités Passe haut = sensible au bruit. On filtre l image au préalable : (G I) > threshold, G passe-bas.
: Snakes. Application à la segmentation d images. CPE Lyon damien.rohmer@cpe.fr 17 Novembre 010 1 3 Terminologie 1 Contours deformables. Contours Actifs. Snakes. Active contours. Deformables Models. 3
Problématiques Cas d exemple Méthodes de segmentations automatiques : Histogramme Régions Contours Problèmes Détails locaux Image bruitée Niveaux de gris non homogènes Même sur une image simple Constatations : Plusieurs solutions possibles Notre cerveau cherche à fermer les contours (Il y arrive facilement) Principe 1 3 Constat : 1 Il est facile de définir une forme globale manuellement. Longer localement les contours manuellement est fastitieux et moins aisé. Idee 1 Intégrer des informations a-priori de l utilisateur sur la forme globale du contour. On ajuste cette forme automatiquement d après l image.
Principe Origine Publication Originale [M. Kass, A. Witkin, D. Terzopoulos. Snakes : Active Contour Models. International Journal of Computer Vision, 1988] Depuis, beaucoups d améliorations + généralisation en 3D. Classique en imagerie médicale. Demetri Terzopoulos : Doctorat du MIT (1994) Professeur à UCLA Le premier à intégrer les méthodes physiques en informatique graphique. 1 1 3 3
Principe Mise en equation On considère une courbe initiale γ 0 approximant la forme souhaitée. On recherche à déformer la courbe en γ tel que 1 γ soit une courbe lisse. γ se place sur les contours de la forme. γ est une courbe D paramétrée par s. { [a,b] R D R γ : s γ(s) = (γ x (s),γ y (s)) γ est une courbe fermée : γ(a) = γ(b). Mise en Equation Mise en Equation γ est une courbe lisse γ minimise ses dérivées premières et secondes. b E d1 (γ) = γ = γ s (s) ds E d (γ) = γ = s=a b s=a Energie interne de la courbe : γ s (s) ds E inter (γ) = λ 1 E d1 (γ)+λ E d (γ) γ se place sur les contours de la forme. γ passe par les maximums du gradient de l image I. E image (γ) = γ minimise l energie externe dépendant de l image E exter = λ 3 E image b I (γ) = I (γ(s)) ds s=a
Mise en Equation Mise en Equation γ optimal minimize la somme pondérée de ces energies γ optimal = argmin γ (E) avec E = E inter +E exter En rassemblant les termes E(γ) = λ 1 γ +λ γ λ 3 I (γ) Ou plus précisément, il faut trouver γ : s γ(s) = (γ x,γ y )(s) tel que E(γ) soit minimal E(γ) = b s=a [ γ λ 1 s γ (s)+λ s ] (s) λ 3 I (γ(s)) ds (Rappel :) 1 3 En dimension finie : Pour trouver x opt = argmin x R NF(x) On sait que si F(x) = 0 alors on est sur un extrema. On part de x 0 et on itère suivant le gradient (direction de plus grande pente) x k+1 = x k t F(x k )
(Rappel :) Resolution En dimension infinie : Pour trouver γ opt = argmin γ F E(γ), avec { [a,b] R R γ : s γ(s) On s interesse aux methodes variationnelles (calculus of variations). Euler-Lagrange nous dit que pour minimiser G(s,γ,γ,γ G )ds, il faut γ G s γ + G s γ = 0 Pour le résoudre, on transforme cela en équation d évolution temporelle en considérant γ(s,t) avec : ( γ G t (s,t) = γ ) G s γ + G s γ (s,t) Equation à minimiser E(γ) = λ 1 γ +λ γ λ 3 I (γ) On considère une courbe γ de paramètre s évoluante au cours du temps t : γ(s,t) = (γ x (s,t),γ y (s,t)). Système à resoudre γ = λ 1 γ λ γ +λ 3 ( I )(γ) t γ(t = 0) = γ 0 Resolution Ou plus précisément, equations scalaires sur γ(s,t) = (γ x (s,t),γ y (s,t). γ x t (s,t) = λ γ x 1 s (s,t) λ 4 γ x s 4 (s,t) +λ 3 x ( I )(γ(s,t)) 1 γ y t (s,t) = λ γ y 1 s (s,t) λ 4 γ y s 4 (s,t) +λ 3 y ( I )(γ(s,t)) 3
Discretisation spatiale Discretisation spatiale Discretisation spatiale suivant s k = a+k sk [1,N]. γ x/y (s k ) = [v 1 x/y,v x/y,,vn x/y ] Ex. Syntaxe type Matlab v x = v 1 x v x. v N x v y = v 1 y v y. v N y N=0; s=[0:n-1]/(n-1); =cos(*pi*s);vy=sin(*pi*s); Discretisation spatiale Discretisation spatiale Rappel : Matrice de dérivée seconde pour une courbe fermée γ x s γ x(s k +1) γ x (s k )+γ x (s k 1) D v x 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0................ 0 0 0 0 1 1 1 0 0 0 0 1 1. 3 N 1 N Rappel : Matrice de dérivée 4ième pour une courbe fermée 4 γ x s 4 γ x(s k +) 4γ x (s k +1)+6γ x (s k ) 4γ x (s k 1)+γ x (s k ) 6 4 1 0 0 1 4 4 6 4 1 0 0 1 1 4 6 4 0 0 0................ 1 0 0 0 4 6 4 4 1 0 0 1 4 6 1. 3 N 1 N D 4 v x
Discretisation spatiale Discretisation temporelle γ x/y (s,t) v x/y = [v 1 x/y,v x/y,...,vn x/y ] γ x/y s (s,t) D v x/y 4 γ x/y s 4 (s,t) D 4v x/y ( I )(γ(s,t)) (P x (v x,v y ),P y (v x,v y )) Equation discrète en espace : v x t (t) = (λ 0D λ 1 D 4 )v x (t)+λ 3 P x (v(t)) Discrétisation en temps suivant t k = k t. v x,k v x,k 1 t v x (t k ) = v x,k = (λ 1 D λ D 4 )v x,k +λ 3 P(v x,k 1,v y,k 1 ) (Id + t( λ 1 D +λ D 4 )) v }{{} x,k = (v x,k 1 + t P(v x,k 1,v y,k 1 )) }{{} A b x,k v y t (t) = (λ 0D λ 1 D 4 )v y (t)+λ 3 P y (v(t)) v x,k = A 1 b x,k Système linéaire Snakes in a nutshell Algorithme Equation à minimiser E(γ) = λ 1 γ +λ γ λ 3 I(γ) Système à resoudre γ t = λ 0 γ λ 1 γ +λ 3 x ( I(γ) ) avec γ(t = 0) = γ 0 Solution numérique A = Id + t( λ 1 D +λ D 4 ) P k = ( I )(v k 1 ) {,k = A 1 (v x,k 1 + t P x,k ) v y,k = A 1 (v y,k 1 + t P y,k ) Initialise [,vy]=[gamma0_x,gamma0_y]; Construit A=Id+dt (-lambda_1 D_+lambda_ D_4); Construit [Px,Py]=gradient(norm(gradient(I)).ˆ); Precalcul A_inv=inv(A); Tant que (non convergence) new_x=a_inv*(+dt Px(,vy)) new_y=a_inv*(vy+dt Py(,vy)) =new_x;vy=new_y; fin tant que gamma=[cx,cy];
Extensions : Image bruitée Nécessite une initialisation manuelle. Nécessite d être proche de la forme finale. Topologie fixe. Courbe se contracte uniquement. Ne suit pas les concavitées. Images bruitées energie externe modifiée. I (G I) avec G : noyaux Gaussien. Detection de contours evolués (Canny). Extensions : Courbes paramétriques Extensions : Pondérations variables Possiblité d utilisation de courbes paramétriques (ex. Splines, NURBS,...) : Evaluation des derivées de γ exactes. Courbes plus lisses Préservation d arêtes vives : λ 1 (s),λ (s),λ 3 (s) fonctions de s. λ 1 (s 0 ) = λ (s 0 ) = 0 sur l arête.
Extensions : Non contraction de la courbe Extensions : Dilatation de la courbe On choisi γ0 a l inte rieur de la forme On rajoute une force de dilatation dans l equation d evolution Fdilate = κn Courbe de me me longueur que γ0. n : Normale a la courbe. On conside re Ed1 = Z Snakes Balloon. kγ (s) γ0 (s)k ds Article [L. Cohen. On Active Contour Models and Balloons. Computer Vision, Graphics, and Image Processing : Image Understanding. 1991] Contours de formables Contours de formables Extensions : Contours concaves Extensions : Topologie variable Courbes concaves Modification de la force externe par un champs vectoriel a divergence nulle Topologie variable Voir cours Level Set. Gradient Vector Flow (GVF). Article [C. Xu, J. Prince. Gradient Vector FLow, A New External Force for Snakes. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 1997.] Contours de formables Article [T. McInerney, D. Terzopoulos Topologically Adaptable Snakes. International Conference on Computer Vision (ICCV), 1995.] Contours de formables