Quelles sont les limites d'un détecteur Canny Edge?

18

Une grande partie de la littérature sur les algorithmes de détection des contours et les applications utilisant la détection des contours fait référence au détecteur de contours de Canny. À tel point qu'il ressemble presque à "la solution" à la détection des contours. Certes, il ferait le meilleur travail en équilibrant le bruit et en préservant les bords.

Cependant, par simple curiosité, y a-t-il un sujet de préoccupation pour le détecteur de bord de Canny? ou y a-t-il des domaines d'applications où Canny ne sera pas le meilleur?

Dans ce contexte, une mise en œuvre plus rapide n'est pas vraiment une préoccupation. Le fait que le détecteur de bord soit bon ou mauvais devrait être axé sur la qualité et l'utilité des bords générés.

De plus, je ne me concentre vraiment pas sur les problèmes spécifiques de mise en œuvre. Je recherche des limitations ou caractéristiques plus théoriques inhérentes à l'algorithme.

Dipan Mehta
la source
Fait intéressant cette question ici Meilleure façon de segmenter les veines dans les feuilles? détection de bord nécessaire. Un des résultats affichés est Canny et ne semble pas trop bon. Cependant, de nombreux aspects pourraient être un problème d'implémentation par rapport à la simple limitation de Canny! Des opinions à ce sujet?
Dipan Mehta
Veuillez voir ma réponse ( dsp.stackexchange.com/questions/1714/… ), elle montre un meilleur résultat que ce qu'il a obtenu de Canny.
Geerten
Dupe (partielle) possible: dsp.stackexchange.com/questions/74/… (ou au moins lié). La question elle-même est à peu près la même (pour une partie), les réponses sont quelque peu différentes des réponses à cette question.
Geerten
1
@DipanMehta: Donc, le détecteur de bord Canny ne devrait pas être utilisé pour détecter des choses qui ne sont pas des bords? :)
endolith

Réponses:

19

D'après mon expérience, les points suivants sont des limitations:

  • Le résultat est binaire. Vous avez parfois besoin d'une mesure de «combien» le bord peut être qualifié de bord (par exemple, l'image d'intensité provenant d'un détecteur de bord d'amplitude Sobel)
  • La quantité de paramètres conduit à des ajustements à l'infini pour obtenir ce petit meilleur résultat.
  • Vous devez toujours connecter les bords résultants pour extraire les bords complets qui semblent si évidents pour l'œil + l'esprit humain.
  • En raison également du lissage gaussien: l'emplacement des bords peut être décalé, en fonction de la taille du noyau gaussien.

  • La méthode a des problèmes avec les coins et les jonctions:

    • Le lissage gaussien les brouille, les rendant plus difficiles à détecter (il en va de même pour les bords eux-mêmes)
    • Les pixels d'angle regardent dans les mauvaises directions pour leurs voisins, laissant des bords ouverts et des jonctions manquantes

Ce dernier problème est résolu par la méthode SUSAN , qui connecte mieux les bords et donne également de jolies jonctions, comme le montrent ces exemples de chiffres donnés dans le document lié:

Image d'entrée de test:

Tester l'image d'entrée

Résultats SUSAN:

Résultats SUSAN

Résultats Canny:

Résultats Canny

Vous pouvez clairement voir que SUSAN trouve les coins et les jonctions au lieu de Canny.

Geerten
la source
Ok, ce à quoi vous faites référence sont principalement des problèmes liés à la mise en œuvre. Je suis d'accord que de tels problèmes pourraient exister, mais à mon avis, beaucoup d'autres détections de bords et autres algorithmes. Je recherche des limitations ou caractéristiques plus théoriques inhérentes à l'algorithme.
Dipan Mehta
Je ne suis pas d'accord, le seuillage (conduisant à une image binaire) et les paramètres font partie de la méthode (comme décrit dans l'article de Canny). Je ne vois pas cela comme des détails d'implémentation.
Geerten
Le seuillage est effectué par chaque détecteur de bord et donc la sortie de chaque détecteur de bord est binaire. Je prendrais votre point sur la difficulté de modifier les paramètres et l'aspect de lissage gaussien, mais contrairement au type d'opérateur LoG, Canny trouve en fait la quantité optimale de lissage en présence de bruit.
Dipan Mehta
2
Le seuillage n'est pas effectué par tous les détecteurs de bord (par exemple Sobel, comme mentionné dans ma réponse). C'est une étape de suivi commune et logique dans de nombreux cas, mais pas une étape de base de chaque méthode de détection de bord.
Geerten
6

ou y a-t-il des domaines d'applications où Canny ne sera pas le meilleur?

Je peux penser à quelques-uns:

  • si vous avez besoin de courbes fermées, un détecteur qui peut garantir celles-ci pourrait être meilleur (par exemple, aucun franchissement du laplacien ou segmentation du bassin versant)
  • si vous essayez de détecter un objet homogène qui a un faible contraste dans certaines zones, une méthode de segmentation qui utilise des informations globales (comme la segmentation des bassins versants) peut donner de meilleurs résultats
Niki Estner
la source
1

d'après mon expérience, le processus de détection des bords avec un détecteur de bords intelligent adoucit les bords avant de pouvoir les détecter et le timing et la longueur du filtre doivent être parfaitement adaptés pour détecter tous les bords sans erreur.

bugra ergin
la source
1

Je veux juste mentionner une limitation du détecteur Canny, qui entrave son application, et c'est le paramétrage. Je pense que le paramétrage n'est pas seulement un problème pour le détecteur Canny mais aussi un problème pour d'autres méthodes de détection de bord.

N'hésitez pas
la source