¿Cuáles son las limitaciones de un detector Canny Edge?

18

En términos generales, la mayoría de la literatura sobre algoritmos de detección de bordes y aplicaciones que utilizan detección de bordes, hace referencia al detector de bordes de Canny. Tanto es así que parece casi "la solución" para la detección de bordes. Ciertamente, haría el mejor trabajo equilibrando el ruido y preservando los bordes.

Sin embargo, como simple curiosidad, ¿hay un área de preocupación para el detector de bordes de Canny? ¿O hay áreas de aplicaciones donde Canny no será el mejor?

En este contexto, una implementación más rápida no es realmente una preocupación. El enfoque de que el detector de bordes sea bueno o malo debe ser la calidad y la utilidad de los bordes generados.

Además, realmente no me estoy centrando en problemas específicos de implementación. Estoy buscando limitaciones o características más teóricas inherentes al algoritmo.

Dipan Mehta
fuente
Curiosamente esta pregunta aquí ¿La mejor manera de segmentar las venas en las hojas? necesitaba detección de bordes. Uno de los resultados mostrados es Canny y no se ve muy bien. Sin embargo, muchos aspectos podrían ser un problema de implementación frente a una simple limitación de Canny. ¿Alguna opinión sobre eso?
Dipan Mehta
Consulte mi respuesta ( dsp.stackexchange.com/questions/1714/… ), muestra un mejor resultado que el que obtuvo de Canny.
Geerten
Posible engaño (parcial): dsp.stackexchange.com/questions/74/… (o al menos relacionado). La pregunta en sí es más o menos la misma (por una parte), las respuestas son algo diferentes de las respuestas a esta pregunta.
Geerten
1
@DipanMehta: ¿Entonces el detector de bordes Canny no debería usarse para detectar cosas que no son bordes? :)
Endolith

Respuestas:

19

Desde mi experiencia, los siguientes puntos son limitaciones:

  • El resultado es binario. A veces necesita una medida de "cuánto" el borde califica como borde (por ejemplo, imagen de intensidad proveniente de un detector de borde de amplitud Sobel)
  • La cantidad de parámetros conduce a ajustes infinitos para obtener ese pequeño mejor resultado.
  • Aún necesita conectar los bordes resultantes para extraer los bordes completos que parecen tan obvios para el ojo humano + mente.
  • También debido al suavizado gaussiano: la ubicación de los bordes puede estar apagada, dependiendo del tamaño del núcleo gaussiano.

  • El método tiene problemas con esquinas y cruces:

    • El suavizado gaussiano los difumina, haciéndolos más difíciles de detectar (lo mismo ocurre con los bordes)
    • Los píxeles de la esquina se ven en las direcciones incorrectas para sus vecinos, dejando bordes abiertos y uniones faltantes

Este último problema es abordado por el método SUSAN , que conecta mejor los bordes y también da como resultado buenas uniones, como se muestra en estas figuras de ejemplo que figuran en el documento vinculado:

Imagen de entrada de prueba:

Probar imagen de entrada

Resultados SUSAN:

Resultados SUSAN

Resultados Canny:

Resultados Canny

Puedes ver claramente que SUSAN encuentra las esquinas y las uniones en lugar de Canny.

Geerten
fuente
Ok, a lo que te refieres son principalmente problemas relacionados con la implementación. Estoy de acuerdo en que tales problemas pueden existir, pero en mi opinión, muchos otros detectores de bordes y otros algoritmos. Estoy buscando limitaciones o características más teóricas inherentes al algoritmo.
Dipan Mehta
No estoy de acuerdo, el umbral (que conduce a una imagen binaria) y los parámetros son partes del método (como se describe en el artículo de Canny). No veo esto como detalles de implementación.
Geerten
Cada umbral detecta el umbral y, por lo tanto, la salida de cada detector de borde es binaria. Diría su punto de vista sobre la dificultad para ajustar los parámetros y el aspecto de suavizado gaussiano, pero a diferencia del tipo de operador LoG, Canny realmente encuentra la cantidad más óptima de suavizado en presencia de ruido.
Dipan Mehta
2
No todos los detectores de bordes realizan el umbral (por ejemplo, Sobel, como se menciona en mi respuesta). Es un paso de seguimiento común y lógico en muchos casos, pero no es un paso básico de todos los métodos de detección de bordes.
Geerten
6

¿O hay áreas de aplicaciones donde Canny no será el mejor?

Se me ocurren algunos:

  • Si necesita curvas cerradas, un detector que pueda garantizarlas podría ser mejor (por ejemplo, cero cruces de la segmentación laplaciana o de cuenca)
  • Si está tratando de detectar un objeto homogéneo que tiene bajo contraste en algunas áreas, un método de segmentación que utiliza información global (como la segmentación de cuencas hidrográficas) puede dar mejores resultados.
Niki Estner
fuente
1

En mi experiencia, el proceso de detección de bordes con el detector de bordes astuto suaviza los bordes antes de poder detectarlos y la sincronización y la longitud del filtro deben coincidir perfectamente para detectar todos los bordes sin errores.

bugra ergin
fuente
1

Solo quiero mencionar una limitación del detector Canny, que dificulta su aplicación, y es la configuración de parámetros. Creo que la configuración de parámetros no es solo un problema para el detector Canny, sino también un problema para otros métodos de detección de bordes.

sentirse libre
fuente