junio 30, 2022 10:00 am

Jesús

La detección de bordes se refiere a un conjunto de técnicas matemáticas para detectar bordes o curvas en una imagen digital cuando el brillo de la imagen cambia bruscamente o, más formalmente, tiene discontinuidades. La detección de pasos es el problema de identificar discontinuidades en señales unidimensionales, mientras que la detección de cambios es el problema de encontrar discontinuidades en la señal a través del tiempo. En el procesamiento de imágenes, la visión artificial y la visión por ordenador, la detección de bordes es una técnica fundamental, especialmente en los campos de la identificación y la extracción de características.

El objetivo de la detección de cambios bruscos en el brillo de la imagen es registrar eventos y cambios significativos en las características del mundo. Se espera que las discontinuidades en el brillo de la imagen se correlacionen con discontinuidades en profundidad, discontinuidades en la orientación de la superficie, cambios en las características del material y fluctuaciones en la luz de la escena, dadas las suposiciones relativamente genéricas para un modelo de generación de imágenes.

En un mundo ideal, la aplicación de un detector de bordes a una imagen daría como resultado una colección de curvas vinculadas que indican los bordes de los objetos, los límites de las marcas de la superficie y las curvas que corresponden a las discontinuidades de la orientación de la superficie. La aplicación de un método de detección de bordes a una imagen puede minimizar la cantidad de datos que hay que procesar y, por tanto, filtrar la información que no es tan vital, conservando las características estructurales cruciales de la imagen. Si la etapa de detección de bordes tiene éxito, el trabajo de comprensión de la información contenida en la imagen original puede agilizarse considerablemente. Sin embargo, no siempre es posible obtener esos bordes perfectos a partir de imágenes reales de modesta complejidad.

Los bordes recuperados a partir de imágenes no triviales se ven con frecuencia obstaculizados por la fragmentación, que da lugar a curvas de borde inconexas, segmentos de borde ausentes y bordes falsos que no se correlacionan con eventos importantes de la imagen, lo que complica el proceso de comprensión de los datos de la imagen. Uno de los procesos más básicos en el procesamiento de imágenes, el análisis de imágenes, el reconocimiento de patrones de imágenes y los enfoques de visión por ordenador es la detección de bordes.

Los bordes dependientes o independientes del punto de vista pueden recuperarse de una imagen bidimensional de una escena tridimensional. Las características intrínsecas de los objetos tridimensionales, como las marcas de la superficie y la forma, suelen reflejarse en un borde independiente de la perspectiva. La geometría de la escena, como los objetos que se ocluyen unos a otros, se refleja generalmente mediante un borde dependiente de la perspectiva, que varía al cambiar el punto de vista.

El borde entre un bloque rojo y un bloque amarillo, por ejemplo, es un borde típico. Una línea, por el contrario, puede ser un número minúsculo de píxeles de un tono variable sobre un fondo que, por lo demás, es constante (como se puede recuperar con un detector de crestas). En consecuencia, en la mayoría de los casos puede haber un borde a cada lado de una línea.

La detección de bordes puede realizarse de diversas maneras, siendo la detección de bordes de Prewitt, la detección de bordes de Sobel, la detección de bordes de Laplaciano y la detección de bordes de Canny algunas de las más populares.


Detección de bordes de Prewitt

Matemáticamente, el operador utiliza dos núcleos de 3×3 que se conviven con la imagen original para calcular las aproximaciones de las derivadas. Fuente: Wikipedia

El operador de Prewitt fue desarrollado por Judith M. S. Prewitt. El operador de Prewitt se utiliza para la detección de bordes en una imagen. El operador de Prewitt detecta ambos tipos de bordes, que son:

  • Bordes horizontales o a lo largo del eje x
  •  Bordes verticales o a lo largo del eje y.

Cuando se produce un cambio brusco en las intensidades de los píxeles, la máscara detecta un borde. Dado que el borde se define como el cambio en las intensidades de los píxeles, puede calcularse utilizando la diferenciación. La máscara de Prewitt es una máscara derivada de primer orden. En la representación gráfica del resultado de la máscara de Prewitt, el borde está representado por los máximos o mínimos locales.

Tanto la máscara de primera como la de segunda derivada siguen estas tres propiedades:

  • Más peso significa más detección de bordes.
  • El signo contrario debe estar presente en la máscara. (+ y -)
  • La suma de los valores de la máscara debe ser igual a cero.

Detección de bordes Sobel

Lleva el nombre de Irwin Sobel y Gary Feldman. Al igual que el operador Prewitt, el operador Sobel también se utiliza para detectar dos tipos de bordes en una imagen:

  • Dirección vertical.
  • Dirección horizontal.

Hace uso de un filtro que enfatiza el centro del mismo. Es uno de los detectores de bordes más utilizados, y reduce el ruido a la vez que proporciona una respuesta de distinción y de borde.

El operador utiliza dos núcleos de 3×3 que se convolucionan con la imagen original para calcular las aproximaciones de las derivadas: una para los cambios horizontales y otra para los verticales. Fuente: Wikipedia

Cuando el peso en los píxeles centrales, para ambas plantillas de Prewitt, se duplica, se obtiene el famoso operador de detección de bordes de Sobel, que consiste en dos máscaras para determinar el borde en forma de vector. El operador de Sobel fue el más popular hasta el desarrollo de técnicas de detección de bordes con base teórica. Su popularidad se debe a que, en general, ofrece un mejor rendimiento que otros operadores de detección de bordes contemporáneos, como el operador Prewitt.

La diferencia entre el operador de Sobel y el de Prewitt es que en el operador de Sobel los coeficientes de las máscaras son ajustables según nuestro requerimiento siempre que sigan todas las propiedades de las máscaras derivadas.


Detección de bordes Laplaciana

Los detectores de bordes laplacianos son diferentes de los detectores de bordes mencionados anteriormente. En esta técnica sólo se utiliza un filtro (también llamado núcleo). La detección de bordes laplaciana ejecuta derivadas de segundo orden en una sola pasada, lo que la hace susceptible al ruido. Antes de utilizar este enfoque, la imagen se suaviza con un suavizado gaussiano para evitar esta susceptibilidad al ruido.

La diferencia entre el Laplaciano y otros operadores es que, a diferencia de otros operadores, el Laplaciano no elimina las aristas en ninguna dirección en particular, sino que elimina las aristas en la siguiente clasificación: 

  • Bordes hacia adentro.
  • Bordes hacia afuera.

El Laplaciano es un operador derivado; sus usos resaltan las discontinuidades del nivel de gris en una imagen e intentan restar importancia a las regiones con niveles de gris que varían lentamente. Esta operación produce como resultado imágenes que tienen líneas de borde grisáceas y otras discontinuidades sobre un fondo oscuro. Esto produce bordes hacia adentro y hacia afuera en una imagen.


Detección de bordes de Canny

Este es el método más utilizado, de gran éxito y complicado en comparación con muchos otros. Es un método de varias etapas para detectar e identificar una variedad de bordes.

La detección de bordes Canny utiliza un filtrado lineal con un núcleo gaussiano para suavizar el ruido y, a continuación, calcula la intensidad y la dirección de los bordes de cada píxel de la imagen suavizada. Los píxeles candidatos a bordes se identifican como los píxeles que sobreviven a un proceso de adelgazamiento denominado supresión no máxima. En este proceso, la intensidad de los bordes de cada píxel candidato se pone a cero si su intensidad de borde no es mayor que la intensidad de borde de los dos píxeles adyacentes en la dirección del gradiente. El umbral se realiza en la imagen de magnitud de borde adelgazada utilizando la histéresis. En la histéresis, se utilizan dos umbrales de intensidad de borde. Todos los píxeles de borde candidatos por debajo del umbral inferior se etiquetan como no bordes y todos los píxeles por encima del umbral bajo que pueden conectarse a cualquier píxel por encima del umbral alto a través de una cadena de píxeles de borde se etiquetan como píxeles de borde.

El detector de bordes Canny requiere que el usuario introduzca tres parámetros. El primero es sigma, la desviación estándar del filtro gaussiano especificada en píxeles. El segundo parámetro es low, el umbral bajo que se especifica como una fracción del umbral alto calculado. El tercer parámetro alto es el umbral alto que se utilizará en la histéresis y se especifica como un punto porcentual en la distribución de los valores de la magnitud del gradiente para los píxeles candidatos al borde.


Resumen

La detección de bordes no es más que un proceso de filtrado. Existen muchos tipos de filtros que implican métodos matemáticos, como los de Sobel, Prewitt y Canny, que se basan en la derivada de primer orden; el laplaciano, por su parte, se basa en la derivada de segundo orden, para encontrar puntos en una imagen donde el brillo de las intensidades de los píxeles cambia claramente. Podemos decir que la detección de bordes es una técnica de procesamiento de imágenes para encontrar los límites de los objetos dentro de de ellas.

Si quieres conocer en profundidad el tratamiento digital de imágenes, no dejes de visitar los siguientes tutoriales:

¡Te espero por allá! 

Sobre el Autor

Jesús Martínez es el creador de DataSmarts, un lugar para los apasionados por computer vision y machine learning. Cuando no se encuentra bloggeando, jugando con algún algoritmo o trabajando en un proyecto (muy) cool, disfruta escuchar a The Beatles, leer o viajar por carretera.