Quels facteurs dois-je prendre en compte dans le choix d'un algorithme de détection de bord?


33

J'ai découvert un certain nombre d'algorithmes de détection des contours, notamment des algorithmes tels que les méthodes Sobel, Laplacian et Canny. Il me semble que le détecteur de bord le plus populaire est un détecteur de bord de Canny, mais existe-t-il des cas où ce n'est pas l'algorithme optimal à utiliser? Comment puis-je décider quel algorithme utiliser? Merci!


7
Que détectez-vous?
endolith

Réponses:


29

Il existe de nombreuses possibilités de détection des contours, mais les 3 exemples que vous avez mentionnés tombent dans 3 catégories distinctes.

Sobel

Ceci se rapproche d'une dérivée du premier ordre. Donne des extrema aux positions du gradient, 0 ou aucun gradient n'est présent. En 1D, c'est = [101]

  • bord lisse => minimum ou maximum local, en fonction du signal montant ou descendant.
  • 1 ligne de pixels => 0 sur la ligne elle-même, avec des extrema locaux (de signe différent) juste à côté. En 1D, c'est = [121]

Il y a d'autres alternatives à Sobel, qui ont +/- les mêmes caractéristiques. Sur la page Roberts Cross sur Wikipedia, vous pouvez trouver une comparaison de quelques-uns d’entre eux.

Laplace

Ceci se rapproche d'une dérivée de second ordre. Donne 0 aux positions du dégradé et aussi 0 en l'absence de dégradé. Il donne des extrema où un dégradé (plus long) commence ou s’arrête.

  • bord lisse => 0 le long du bord, extrema locaux au début / à la fin du bord.
  • 1 ligne de pixels => un "double" extremum à la ligne, avec des extrema "normaux" avec un signe différent juste à côté

L'effet de ces 2 sur différents types d'arêtes peut être visualisé de manière optimale:

Comparaison de Sobel contre Laplace

Prudent

Ce n'est pas un simple opérateur, mais une approche en plusieurs étapes, qui utilise Sobel comme l'une des étapes. Lorsque Sobel et Laplace vous donnent un résultat en niveaux de gris / virgule flottante, que vous devez définir vous-même, l'algorithme de Canny utilise le seuillage intelligent comme l'une de ses étapes. Vous obtenez donc simplement un résultat binaire oui / non. De plus, sur un bord lisse, vous ne trouverez probablement qu’une seule ligne quelque part au milieu du dégradé.


18

Alors que Sobel et Laplacian ne sont que des filtres, Canny va plus loin que cela de deux manières.

Tout d'abord, il effectue une suppression non maximale qui supprime le bruit produit par toutes sortes d'objets et de dégradés de couleurs dans une image. Deuxièmement, il comprend en fait une étape qui vous permet de distinguer différentes directions d'arête et de remplir les points manquants d'une ligne.

Autrement dit, le détecteur de bord Canny appartient à une classe complètement différente de Sobel et de Laplacian. Il est beaucoup plus intelligent dans la mesure où il inclut tout un ensemble de post-traitement, tandis que Sobel et Laplacian sont simplement des sorties de filtres passe-haut suivies d'un seuillage binaire linéaire.


existe-t-il une version 1-D de canny à cet égard? S'agirait-il simplement d'une application simple de la version 2-D?
Spacey

9

Les deux décisions les plus importantes lorsqu’on essaie de détecter des arêtes sont, pour moi en général:

  1. Puis-je segmenter les objets à la place, puis utiliser un opérateur morphologique pour rechercher le bord de l'image binaire (segmentée)? Avec des données bruitées, cela a tendance à être plus robuste.

  2. Quel filtre de lissage préservant les bords dois-je utiliser pour réduire le bruit de l'image? Les filtres de bord sont basés sur la différenciation, qui souffrira des données bruitées. Le choix le plus simple est le filtre médian, mais les filtres à diffusion anisotrope ou à moyens non locaux offriront de meilleures performances au prix d'avoir plus de paramètres à ajuster.

Pour la détection des contours elle-même, je ne peux pas penser pour une bonne raison de ne pas utiliser Canny.


7

Approche SUSAN

Une autre approche de la détection des contours et des angles est l’approche SUSAN .

Dans cette approche, plutôt que des approximations dérivées, une approche d' approximation intégrale est utilisée. Cela présente l'avantage non seulement de détecter les contours, mais également de détecter les "caractéristiques bidimensionnelles" (c'est-à-dire les angles).

Un autre avantage de l’approximation intégrale est que le bruit a moins d’effet sur les résultats.


6

Canny donne une image binaire et dépend de seuils donnés en externe (qui dépendent de l’image / de l’application).
Les filtres basés sur la convolution produisent une image "d'intensité de bord". Ceci est utile si le poids ou la force du bord est important (par exemple, dans la transformation de Hough pondérée).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.