Was sind die Einschränkungen eines Canny Edge Detectors?

18

Ein Großteil der Literatur zu Kantenerkennungsalgorithmen und -anwendungen, die die Kantenerkennung verwenden, bezieht sich auf Cannys Kantendetektor. So sehr, dass es fast wie "die Lösung" für die Kantenerkennung aussieht. Sicherlich würde es die beste Arbeit leisten, um Rauschen auszugleichen und Kanten zu erhalten.

Gibt es jedoch aus reiner Neugierde ein Problem mit Cannys Kantendetektor? oder gibt es anwendungsbereiche, in denen canny nicht am besten ist?

In diesem Zusammenhang ist eine schnellere Implementierung nicht wirklich wichtig. Der Fokus des Kantenerkenners, ob er gut oder schlecht ist, sollte auf der Qualität und dem Nutzen der erzeugten Kanten liegen.

Außerdem konzentriere ich mich nicht wirklich auf umsetzungsspezifische Themen. Ich suche nach theoretischeren Einschränkungen oder Merkmalen, die dem Algorithmus innewohnen.

Dipan Mehta
quelle
Interessanterweise hier diese Frage Bester Weg, um Venen in Blätter zu segmentieren? benötigte Kantenerkennung. Eines der gezeigten Ergebnisse ist Canny und sieht nicht gut aus. Viele Aspekte könnten jedoch ein Implementierungsproblem sein, im Gegensatz zu einer deutlichen Einschränkung von Canny! Irgendwelche Ansichten dazu?
Dipan Mehta
Bitte sehen Sie meine Antwort ( dsp.stackexchange.com/questions/1714/… ), es zeigt ein besseres Ergebnis als das, was er von Canny erhalten hat.
Geerten
Möglicher (teilweiser) Betrug: dsp.stackexchange.com/questions/74/… (oder zumindest verwandt). Die Frage selbst ist (für einen Teil) ziemlich gleich, die Antworten unterscheiden sich etwas von den Antworten auf diese Frage.
Geerten
1
@ DipanMehta: Der Canny-Kantendetektor sollte also nicht zum Erkennen von Dingen verwendet werden, die keine Kanten sind? :)
Endolith

Antworten:

19

Aus meiner Erfahrung sind die folgenden Punkte Einschränkungen:

  • Das Ergebnis ist binär. Manchmal benötigen Sie ein Maß dafür, wie viel die Kante als Kante qualifiziert (z. B. ein Intensitätsbild, das von einem Sobel-Amplitudenkantendetektor stammt).
  • Die Menge der Parameter führt zu einer stufenlosen Optimierung, um genau das etwas bessere Ergebnis zu erzielen .
  • Sie müssen die resultierenden Kanten noch verbinden, um die vollständigen Kanten zu extrahieren, die für das menschliche Auge und den Verstand so offensichtlich erscheinen.
  • Auch aufgrund der Gaußschen Glättung: Abhängig von der Größe des Gaußschen Kernels ist die Position der Kanten möglicherweise nicht korrekt.

  • Die Methode hat Probleme mit Ecken und Übergängen:

    • Die Gaußsche Glättung verwischt sie und macht sie schwerer zu erkennen (dasselbe gilt für die Kanten selbst).
    • Die Eckpixel suchen nach ihren Nachbarn in die falsche Richtung, lassen offene Kanten und fehlende Übergänge zurück

Dieses letzte Problem wird durch die SUSAN-Methode behoben , die Kanten besser verbindet und auch zu schönen Übergängen führt, wie die folgenden Beispielfiguren im verlinkten Artikel zeigen:

Eingabebild testen:

Eingabebild testen

Ergebnisse SUSAN:

Ergebnisse SUSAN

Ergebnisse Canny:

Ergebnisse Canny

Sie können deutlich sehen, dass SUSAN die Ecken und Abzweigungen anstelle von Canny findet.

Geerten
quelle
Ok, auf was Sie sich beziehen, sind hauptsächlich implementierungsbezogene Probleme. Ich bin damit einverstanden, dass solche Probleme existieren könnten, aber meiner Meinung nach gibt es viele andere Kantenerkennungs- und andere Algorithmen. Ich suche nach theoretischeren Einschränkungen oder Merkmalen, die dem Algorithmus innewohnen.
Dipan Mehta
Ich bin nicht einverstanden, der Schwellenwert (der zu einem binären Bild führt) und die Parameter sind Teile der Methode (wie in Cannys Artikel beschrieben). Ich sehe dies nicht als Implementierungsdetails.
Geerten
Schwellwertbildung wird von jedem Flankendetektor erfolgt und somit Ausgang jeden Kantendetektors ist binär. Ich möchte Sie auf Schwierigkeiten beim Einstellen der Parameter und des Gaußschen Glättungsaspekts hinweisen, aber im Gegensatz zu einem Operator vom Typ LoG findet Canny die optimale Glättung bei Vorhandensein von Rauschen.
Dipan Mehta
2
Die Schwellenwertbildung wird nicht von jedem Kantendetektor durchgeführt (z. B. Sobel, wie in meiner Antwort erwähnt). In vielen Fällen ist dies ein üblicher und logischer Folgeschritt, jedoch kein grundlegender Schritt jeder Kantenerkennungsmethode.
Geerten
6

oder gibt es anwendungsbereiche, in denen canny nicht am besten ist?

Ich kann mir einige vorstellen:

  • Wenn Sie geschlossene Kurven benötigen, ist ein Detektor, der diese garantiert, möglicherweise besser (z. B. Nulldurchgänge der Laplace- oder Wasserscheidensegmentierung).
  • Wenn Sie versuchen, ein homogenes Objekt zu erkennen, das in einigen Bereichen einen geringen Kontrast aufweist, können Sie mit einer Segmentierungsmethode, die globale Informationen verwendet (z. B. Wasserscheidensegmentierung), bessere Ergebnisse erzielen
Niki Estner
quelle
1

Nach meiner Erfahrung glättet die Kantenerkennung mit dem Canny Edge Detector die Kanten, bevor sie erkannt werden können, und das Timing und die Länge des Filters müssen perfekt übereinstimmen, um alle Kanten fehlerfrei zu erkennen.

Bugra Ergin
quelle
1

Ich möchte nur eine Einschränkung des Canny-Detektors erwähnen, die seine Anwendung behindert, nämlich die Parametereinstellung. Ich denke, die Parametereinstellung ist nicht nur ein Problem für den Canny-Detektor, sondern auch für andere Kantenerkennungsmethoden.

unbeschwert
quelle