Modèle de contour actif - Active contour model

Le modèle de contour actif , également appelé serpents , est un cadre de vision par ordinateur introduit par Michael Kass , Andrew Witkin et Demetri Terzopoulos pour délimiter le contour d'un objet à partir d'une image 2D potentiellement bruyante . Le modèle des serpents est populaire en vision par ordinateur, et les serpents sont largement utilisés dans des applications telles que le suivi d'objets, la reconnaissance de forme, la segmentation , la détection des contours et la correspondance stéréo.

Un serpent est une spline déformable minimisant l'énergie, influencée par les forces de contrainte et d'image qui l'attirent vers les contours de l'objet et les forces internes qui résistent à la déformation. Les serpents peuvent être compris comme un cas particulier de la technique générale consistant à faire correspondre un modèle déformable à une image au moyen d'une minimisation d'énergie. En deux dimensions, le modèle de forme actif représente une version discrète de cette approche, tirant parti du modèle de distribution de points pour restreindre la plage de formes à un domaine explicite appris à partir d'un ensemble d'apprentissage.

Serpents – modèles déformables actifs

Les serpents ne résolvent pas tout le problème de la recherche de contours dans les images, car la méthode nécessite de connaître au préalable la forme de contour souhaitée. Au contraire, ils dépendent d'autres mécanismes tels que l'interaction avec un utilisateur, l'interaction avec un processus de compréhension d'image de niveau supérieur ou des informations provenant de données d'image adjacentes dans le temps ou l'espace.

Motivation

En vision par ordinateur, les modèles de contour décrivent les limites des formes dans une image. Les serpents en particulier sont conçus pour résoudre des problèmes où la forme approximative de la frontière est connue. En étant un modèle déformable, les serpents peuvent s'adapter aux différences et au bruit dans la correspondance stéréo et le suivi de mouvement. De plus, la méthode peut trouver des contours illusoires dans l'image en ignorant les informations de limite manquantes.

Par rapport aux techniques classiques d'extraction de caractéristiques, les serpents présentent de multiples avantages :

  • Ils recherchent de manière autonome et adaptative l'état minimum.
  • Les forces d'image externes agissent sur le serpent de manière intuitive.
  • L'incorporation du lissage gaussien dans la fonction d'énergie de l'image introduit une sensibilité à l'échelle.
  • Ils peuvent être utilisés pour suivre des objets dynamiques.

Les principaux inconvénients des serpents traditionnels sont

  • Ils sont sensibles aux états minima locaux, qui peuvent être contrecarrés par des techniques de recuit simulé.
  • Les caractéristiques minuscules sont souvent ignorées lors de la minimisation de l'énergie sur l'ensemble du contour.
  • Leur précision dépend de la politique de convergence.

Formulation énergétique

Un serpent élastique simple est défini par un ensemble de n points pour , le terme d'énergie élastique interne , et le terme d'énergie externe basé sur les arêtes . Le terme d'énergie interne a pour but de contrôler les déformations apportées au serpent, et le terme d'énergie externe a pour but de contrôler l'ajustement du contour sur l'image. L'énergie externe est généralement une combinaison des forces dues à l'image elle - même et des forces de contrainte introduites par l'utilisateur

La fonction énergétique du serpent est la somme de son énergie externe et de son énergie interne, ou

Énergie interne

L'énergie interne du serpent est composée de la continuité du contour et de la douceur du contour .

Ceci peut être étendu comme

où et sont des poids définis par l'utilisateur ; ceux-ci contrôlent la sensibilité de la fonction d'énergie interne à la quantité d'étirement dans le serpent et à la quantité de courbure dans le serpent, respectivement, et contrôlent ainsi le nombre de contraintes sur la forme du serpent.

En pratique, un poids important pour le terme de continuité pénalise les changements de distances entre les points du contour. Un poids important pour le terme de lissage pénalise les oscillations du contour et fera que le contour agira comme une plaque mince.

Énergie de l'image

L'énergie dans l'image est une fonction des caractéristiques de l'image. C'est l'un des points de modification les plus courants dans les méthodes dérivées. Les caractéristiques des images et les images elles-mêmes peuvent être traitées de nombreuses et diverses manières.

Pour une image , des lignes, des bords et des terminaisons présentes dans l'image, la formulation générale de l'énergie due à l'image est

où , , sont les poids de ces traits saillants. Des poids plus élevés indiquent que la caractéristique saillante aura une plus grande contribution à la force de l'image.

Ligne fonctionnelle

La fonction de ligne est l'intensité de l'image, qui peut être représentée comme

Le signe de déterminera si la ligne sera attirée par des lignes sombres ou des lignes claires.

Un lissage ou une réduction du bruit peut être utilisé sur l'image, qui alors la ligne fonctionnelle apparaît comme

Bord fonctionnel

La fonction de bord est basée sur le gradient de l'image. Une implémentation de ceci est

Un serpent provenant de loin du contour de l'objet souhaité peut converger par erreur vers un minimum local. La continuation de l'espace d'échelle peut être utilisée afin d'éviter ces minima locaux. Ceci est réalisé en utilisant un filtre de flou sur l'image et en réduisant la quantité de flou au fur et à mesure que le calcul progresse pour affiner l'ajustement du serpent. La fonctionnelle de l'énergie utilisant la continuation de l'espace d'échelle est

où est une gaussienne avec écart type . Minima de cette fonction tombe sur les passages à zéro de qui définissent les bords selon Marr-Hildreth théorie.

Résiliation fonctionnelle

La courbure des lignes de niveau dans une image légèrement lissée peut être utilisée pour détecter les coins et les terminaisons d'une image. En utilisant cette méthode, soit l'image lissée par

avec angle de dégradé

vecteurs unitaires le long de la direction du gradient

et vecteurs unitaires perpendiculaires à la direction du gradient

La fonction de terminaison de l'énergie peut être représentée par

Énergie de contrainte

Certains systèmes, y compris la mise en œuvre originale des serpents, permettaient à l'utilisateur d'interagir pour guider les serpents, non seulement lors de leur placement initial, mais également en termes d'énergie. Une telle énergie de contrainte peut être utilisée pour guider de manière interactive les serpents vers ou loin de caractéristiques particulières.

Optimisation par descente de pente

Étant donné une estimation initiale pour un serpent, la fonction énergétique du serpent est minimisée de manière itérative. La minimisation de la descente de gradient est l'une des optimisations les plus simples qui peuvent être utilisées pour minimiser l'énergie du serpent. Chaque itération prend un pas dans le gradient négatif du point avec une taille de pas contrôlée pour trouver les minima locaux. Cette minimisation de la descente de gradient peut être mise en œuvre comme

Où est la force sur le serpent, qui est définie par le négatif du gradient du champ d'énergie.

En supposant que les poids et sont constants par rapport à , cette méthode itérative peut être simplifiée en

Approximation discrète

En pratique, les images ont une résolution finie et ne peuvent être intégrées que sur des pas de temps finis . En tant que tel, des approximations discrètes doivent être faites pour la mise en œuvre pratique des serpents.

La fonction énergétique du serpent peut être approchée en utilisant les points discrets sur le serpent.

Par conséquent, les forces du serpent peuvent être approximées comme

L'approximation du gradient peut être effectuée par n'importe quelle méthode d'approximation finie par rapport à s , telle que la différence finie .

Instabilité numérique due au temps discret

L'introduction d'un temps discret dans l'algorithme peut introduire des mises à jour par lesquelles le serpent est déplacé au-delà des minima auxquels il est attiré ; cela peut en outre provoquer des oscillations autour des minima ou conduire à la découverte de minima différents.

Ceci peut être évité en ajustant le pas de temps de telle sorte que la taille du pas ne soit jamais supérieure à un pixel en raison des forces de l'image. Cependant, dans les régions de faible énergie, les énergies internes domineront la mise à jour.

Alternativement, les forces de l'image peuvent être normalisées pour chaque étape de telle sorte que les forces de l'image ne mettent à jour le serpent que d'un pixel. Cela peut être formulé comme

où est proche de la valeur de la taille du pixel. Cela évite le problème de dominer les énergies internes qui résultent du réglage du pas de temps.

Instabilité numérique due à l'espace discret

Les énergies dans une image continue peuvent avoir un passage par zéro qui n'existe pas en tant que pixel dans l'image. Dans ce cas, un point du serpent oscillerait entre les deux pixels voisins de ce passage par zéro. Cette oscillation peut être évitée en utilisant l'interpolation entre les pixels au lieu du voisin le plus proche.

Mise en œuvre

Le pseudocode suivant implémente la méthode snakes sous une forme générale

function v = snakes (I, v)
  % INPUT: N by M image I, a contour v of n control points
  % OUTPUT: converged contour v of n control points

  E_image = generateImageEnergy (I);

  while not converged
    F_cont = weight.alpha * contourDerivative(v, 2);
    F_curv = weight.beta * contourDerivative(v, 4);
    F_image = interp2 (E_image, v(:,2), v(:,1));
    F_image_norm = weight.k * F_image ./ norm (F_image);
    F_con = inputForces();

    F_internal = F_cont + weight.external * F_curv;
    F_external = weight.external * (F_image + F_con);

    v = updateSnake(v, F_internal, F_external);

    checkConvergence ();
  end

end

generateImageEnergy (I) peut être écrit comme

function E_image = generateImageEnergy (I)
  [C, Cx, Cy, Cxx, Cxy, Cyy] = generateGradients (I);

  E_line = I;
  E_edge = -(Cx.^2 + Cy.^2)^0.5;
  E_term = (Cyy.*Cx.^2 - 2*Cxy.*Cx.*Cy + Cxx.*Cy.^2)./((1 + Cx.^2 + Cy.^2).^(1.5));

  E_image = weight.line * E_line + weight.edge * E_edge + weight.term * E_term;
end

Quelques variantes de serpents

La méthode par défaut des serpents a divers cas de limitation et de coin où la convergence fonctionne mal. Il existe plusieurs alternatives qui résolvent les problèmes de la méthode par défaut, mais avec leurs propres compromis. Quelques-uns sont répertoriés ici.

modèle de serpent GVF

Le modèle de serpent à flux vectoriel à gradient (GVF) résout deux problèmes avec les serpents :

  • mauvaise performance de convergence pour les frontières concaves
  • mauvaise performance de convergence lorsque le serpent est initialisé loin du minimum

En 2D, le champ vectoriel GVF minimise la fonctionnelle énergétique

où est un terme de lissage contrôlable. Ceci peut être résolu en résolvant les équations d'Euler

Cela peut être résolu par itération vers une valeur en régime permanent.

Ce résultat remplace la force externe par défaut.

Le principal problème avec l'utilisation de GVF est que le terme de lissage provoque l'arrondi des bords du contour. La réduction de la valeur de réduit l'arrondi mais affaiblit la quantité de lissage.

Le modèle ballon

Le modèle de bulle résout ces problèmes avec le modèle de contour actif par défaut :

  • Le serpent n'est pas attiré par les bords éloignés.
  • Le serpent rétrécira vers l'intérieur si aucune force d'images substantielle n'agit sur lui.
  • un serpent plus grand que le contour des minima finira par s'y rétrécir, mais un serpent plus petit que le contour des minima ne trouvera pas les minima et continuera à se rétrécir.

Le modèle du ballon introduit un terme d'inflation dans les forces agissant sur le serpent

où est le vecteur unitaire normal de la courbe à et est l'amplitude de la force. doit avoir la même amplitude que le facteur de normalisation de l'image et être plus petite que pour permettre aux forces aux bords de l'image de surmonter la force de gonflage.

L'utilisation du modèle de ballon pose trois problèmes :

  • Au lieu de rétrécir, le serpent se dilate dans les minima et ne trouvera pas de contours de minima plus petits que lui.
  • La force vers l'extérieur fait que le contour est légèrement plus grand que les minima réels. Cela peut être résolu en diminuant la force du ballon après avoir trouvé une solution stable.
  • La force de gonflage peut surpasser les forces des bords faibles, amplifiant le problème avec les serpents ignorant les caractéristiques les plus faibles d'une image.

Modèle de serpents de diffusion

Le modèle du serpent de diffusion traite de la sensibilité des serpents au bruit, à l'encombrement et à l'occlusion. Il implémente une modification de la fonctionnelle de Mumford-Shah et de sa limite de dessin animé et intègre une connaissance statistique des formes. La fonction d'énergie d'image par défaut est remplacée par

où est basé sur une fonctionnelle de Mumford-Shah modifiée

où est le modèle lisse par morceaux de l'image du domaine . Les limites sont définies comme

où sont des fonctions de base quadratiques de B-spline et sont les points de contrôle des splines. La limite de bande dessinée modifiée est obtenue en tant que configuration valide de .

La fonctionnelle est basée sur un apprentissage à partir d'images binaires de contours variés et est contrôlée en force par le paramètre . Pour une distribution gaussienne de vecteurs de points de contrôle avec un vecteur de point de contrôle moyen et une matrice de covariance , l' énergie quadratique qui correspond à la probabilité gaussienne est

La force de cette méthode repose sur la force des données d'entraînement ainsi que sur le réglage de la fonctionnelle de Mumford-Shah modifiée. Différents serpents nécessiteront différents ensembles de données d'entraînement et réglages.

Contours actifs géométriques

Le contour actif géométrique, ou contour actif géodésique (CAG) ou contours actifs conformes, utilise des idées de l' évolution du raccourcissement de la courbe euclidienne . Les contours se divisent et fusionnent en fonction de la détection d'objets dans l'image. Ces modèles sont largement inspirés des ensembles de niveaux et ont été largement utilisés dans l'informatique médicale .

Par exemple, l'équation d'évolution de la courbe de descente de gradient de GAC est

où est une fonction d'arrêt, c est un multiplicateur de Lagrange, est la courbure et est l'unité de la normale vers l'intérieur. Cette forme particulière d'équation d'évolution de courbe ne dépend que de la vitesse dans la direction normale. Il peut donc être réécrit de manière équivalente sous une forme eulérienne en y insérant la fonction level set comme suit

Cette reformation d'ensemble de niveaux simple mais puissante permet aux contours actifs de gérer les changements de topologie pendant l'évolution de la courbe de descente de gradient. Elle a inspiré d'énormes progrès dans les domaines connexes, et l'utilisation de méthodes numériques pour résoudre la reformulation des ensembles de niveaux est maintenant connue sous le nom de méthode des ensembles de niveaux . Bien que la méthode des ensembles de niveaux soit devenue un outil assez populaire pour mettre en œuvre des contours actifs, Wang et Chan ont fait valoir que toutes les équations d'évolution de courbe ne devraient pas être directement résolues par elle.

Des développements plus récents dans les contours actifs concernent la modélisation des propriétés régionales, l'incorporation de formes a priori flexibles et la segmentation entièrement automatique, etc.

Des modèles statistiques combinant des caractéristiques locales et globales ont été formulés par Lankton et Allen Tannenbaum .

Relations avec les coupes de graphe

Graph cuts , ou max-flow/min-cut , est une méthode générique pour minimiser une forme particulière d'énergie appelée énergie de champ aléatoire de Markov (MRF). La méthode des coupes de graphes a également été appliquée à la segmentation d'images, et elle surpasse parfois la méthode des ensembles de niveaux lorsque le modèle est MRF ou peut être approximé par MRF.

Les références

Liens externes

Exemple de code