Objetivo
- Comprenda qué es la detección de bordes y cómo puede ser útil en la clasificación de imágenes.
- Aprenda cómo se utilizan los núcleos para identificar los bordes en una imagen determinada.
Nota: Si está más interesado en aprender conceptos en un formato audiovisual, tenemos este artículo completo explicado en el video a continuación. Si no es así, puede seguir leyendo.
Introducción
Comencemos con un ejemplo. Suponga que le hemos asignado una tarea para clasificar un conjunto de imágenes en Automóviles, Animales y Humanos. Aquí hay un montón de imágenes. ¿Puedes diferenciar entre los objetos? Bastante simple, ¿verdad?
Sí, podemos identificar fácilmente los autos, los animales y el ser humano en las imágenes de arriba. Ahora consideremos otro conjunto de imágenes como se muestra a continuación.
¿Todavía puedes clasificar fácilmente las imágenes? Creo que sí, podemos ver claramente que hay dos autos, dos animales y una persona.
Pero, ¿cuál es la diferencia entre estos dos conjuntos de imágenes? bueno, en el segundo caso eliminamos el color, el fondo y los demás detalles minuciosos de las imágenes. Solo tenemos los bordes y aún puedes identificar los objetos en la imagen.
Entonces, para cualquier imagen dada, si podemos extraer solo los bordes y eliminar el ruido de la imagen, aún podríamos clasificar la imagen.
¿Qué es la detección de bordes?
Como sabemos, la computadora ve las imágenes en forma de matrices. Como se muestra aquí.
En este caso, podemos identificar claramente los bordes mirando los números o los valores de los píxeles. Entonces, si observa de cerca la matriz de los números, hay una diferencia significativa entre los valores de píxeles alrededor del borde. El área negra en la imagen de la izquierda está representada por valores bajos como se muestra en la segunda imagen. De manera similar, el área blanca está representada por los números más grandes.
La detección de bordes es una técnica de procesamiento de imágenes para encontrar los límites de un objeto en la imagen dada.
Entonces, para resumir, los bordes son la parte de la imagen que representa el límite o la forma del objeto en la imagen. Además, los valores de los píxeles alrededor del borde muestran una diferencia significativa o un cambio repentino en los valores de los píxeles.
Basándonos en este hecho, podemos identificar qué píxeles representan el borde o qué píxel se encuentran en el borde.
¿Cómo extraer los bordes de una imagen?
Una vez que tenemos la idea de los bordes, ahora entendamos cómo podemos extraer los bordes de una imagen. Digamos, tomamos una pequeña parte de la imagen. Podemos comparar los valores de los píxeles con los píxeles circundantes para averiguar si un píxel en particular se encuentra en el borde.
Por ejemplo, si tomo el píxel de destino 16 y comparo los valores a su izquierda y derecha. Aquí los valores son 10 y 119 respectivamente. Claramente, hay un cambio significativo en los valores de los píxeles. Entonces, podemos decir que el píxel está en el borde.
Considerando que, si miras los píxeles en la siguiente imagen. Los valores de píxel a la izquierda y a la derecha del píxel seleccionado no tienen una diferencia significativa. Por tanto, podemos decir que este píxel no está en el borde.
Ahora la pregunta es si tenemos que sentarnos y comparar manualmente estos valores para encontrar los bordes. Bueno, obviamente no. Para la tarea, podemos usar una matriz conocida como el kernel y realizar la multiplicación por elementos.
Digamos que, en la parte seleccionada de la imagen, multiplico todos los números de la izquierda con -1, todos los números de la derecha con 1. También todos los números de la fila central con 0. En términos simples, estoy tratando de encontrar la diferencia entre los píxeles izquierdo y derecho. Cuando esta diferencia es mayor que un umbral, podemos concluir que es una ventaja.
En el caso anterior, el número es 31, que no es un número grande. Por lo tanto, este píxel no se encuentra en el borde.
Tomemos otro caso, aquí el píxel resaltado es mi objetivo.
En este ejemplo, el resultado es 354, que es significativamente alto. Por lo tanto, podemos decir que el píxel dado está en el borde.
Filtro / kernel
Esta matriz, que usamos para calcular la diferencia, se conoce como filtro o kernel. Este filtro se desliza a través de la imagen para generar una nueva matriz llamada mapa de características. Los valores del mapa de características indican si el píxel en particular se encuentra en el borde o no.
El kernel que usamos en el ejemplo anterior se llama kernel Prewitt en la dirección X. Dado que compara los valores en el eje horizontal. De manera similar, tenga un kernel Prewitt en la dirección Y. Además, tenemos el kernel de Sobel en las direcciones X e Y.
En el caso de los kernels de Sobel, se da mayor importancia a los valores de píxel justo al lado del píxel de destino.
Notas finales
En resumen, los píxeles en el borde tienen una diferencia significativa en los valores. Podemos comparar los valores de los píxeles vecinos para encontrar el borde. Además, se utiliza una matriz o un núcleo para comparar los valores. Cuanto mayor sea la diferencia entre los píxeles derecho e izquierdo, el objetivo está más cerca del borde. De manera similar, Reduzca la diferencia: el píxel no está en el borde.
Si está buscando comenzar su viaje de ciencia de datos y desea todos los temas bajo un mismo techo, su búsqueda se detiene aquí. Eche un vistazo a la IA y ML BlackBelt certificadas de DataPeaker Más Programa
Háganos saber si tiene alguna pregunta en los comentarios a continuación con respecto a la detección de bordes.