Loading

Alison's New App is now available on iOS and Android! Download Now

Study Reminders
Support
Text Version

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Pasando del conjunto anterior de conferencias, que le introdujo a lo básico del procesamiento de imágenes, ahora vamos a pasar al siguiente segmento, que es en la comprensión y la extracción de las características de nivel superior de las imágenes. Así que empezaremos esto con nuestra primera conferencia sobre la Detección de Edge. La idea de detectar bordes en una imagen se trata de mapear la imagen de una matriz 2D a un conjunto de líneas o curvas en la imagen. En un sentido, estas curvas o líneas o lo que llamamos bordes son una representación más compacta de la imagen. ¿Por qué es importante esta representación? Si ves estas tres imágenes y te hice la pregunta, ¿cuáles son los objetos en la imagen? ¿Puedes adivinar? No es difícil para ti decir, la primera imagen es de una persona, la imagen media parece una de un caballo y la última imagen parece una de una aeronave. Esto es un poco sorprendente porque si usted da una imagen como la entrada al algoritmo de aprendizaje automático o a una red neuronal, no va a ser trivial para que el modelo pueda hacer estas clasificaciones de la manera que usted y yo podemos hacer. Así que el sistema visual humano, los bordes son extremadamente importantes para completar la imagen y para todo el proceso de percepción. De hecho, si ves estas imágenes, incluso si los bordes se quitan hasta cierto punto, podemos rellenar con el resto de los bordes y aún así poder decir qué objetos están presentes en estas imágenes. Así es como los bordes importantes están en una imagen. Así que vamos a hacer la pregunta. Hemos sido introducidos a algunos conceptos con los bordes, hemos sido introducidos a la convolución, hemos entendido la representación de frecuencia de las imágenes en cierta medida, el muestreo y la interpolación. Así que usando las ideas que has estudiado hasta ahora, ¿cómo vas a ir y encontrar bordes en las imágenes? (2:50) La idea clave es buscar gradientes fuertes y luego hacer algún tipo de post-procesamiento para obtener bordes estables de buen aspecto. Entonces, ¿por qué vemos gradientes? Tratemos de entender que sobre las próximas diapositivas. (3:09) En primer lugar, antes de tratar matemáticamente de entender cómo vamos a detectar los bordes en las imágenes, intentemos entender cómo se forman los bordes en primer lugar. Puede haber muchos factores. Dada una imagen como lo que se ve en la pantalla en este momento, los bordes son fundamentalmente alguna forma de discontinuidad en la imagen. La discontinuidad podría ser debido a las normales de la superficie. Por ejemplo, usted ve en este polo en particular que es cilíndrico y a medida que va alrededor de la cilíndrica, la dirección normal de la superficie está cambiando y más allá de un punto, hay una discontinuidad en la dirección normal de la superficie, que aparece como un borde para el ojo humano. Otra opción es simplemente un color o una discontinuidad de apariencia. Como puedes ver aquí, que hay alguna discontinuidad en el color o apariencia de la superficie, tal vez mientras que esta es una imagen en blanco y negro, puedes imaginar un bloque rojo por debajo del cual hay un bloque azul. Sólo esa diferencia de color va a llevar a una discontinuidad. También podría haber discontinuidades basadas en la profundidad. Si usted observó esta torre en la parte posterior, usted puede ver que esa es una porción aquí, que está sobresaliendo fuera del edificio y entonces obviamente, el edificio está detrás de la protuberancia. Así que esa brecha en profundidad entre estos dos artefactos en su imagen también conduce a una discontinuidad y por lo tanto un borde. Y por último, usted tiene una discontinuidad de la iluminación, que es causada debido a los cambios en la luz, tales como las sombras. Por ejemplo, usted verá aquí, que hay un pequeño artefacto que donde una porción de una sombra cae en esa región y usted ve un borde en ese lugar en particular. Estos no son el único tipo de discontinuidades que pueden causar bordes, pero estos son ejemplos de discontinuidades que pueden causar bordes. (5:07) Si usted mira más localmente en estas regiones, usted ve que donde no hay borde, la imagen se ve bastante suave, pero donde hay un borde, hay algún tipo de transición, quiero decir en los píxeles de la imagen en una dirección particular, los bordes pueden estar en diferentes direcciones en una imagen, y usted ve que hay una dirección en particular en la que, hay un cambio en las intensidades. O si usted tomó otra región de la imagen, usted puede ver que en esa región, hay muchos tipos de bordes en diferentes orientaciones. Así que lo ideal es que queramos poder detectar todo esto en una imagen. (5:47) ¿Por qué son importantes los bordes? Hablamos de esto unas pocas diapositivas atrás, donde dijimos que es muy importante cómo el sistema visual humano percibe el entorno que nos rodea. Pero incluso si no el sistema visual humano, si usted quería ejecutar un sistema de inteligencia de la máquina. Hablamos de esto hace unas diapositivas que los bordes son importantes para el sistema visual humano, pero no es sólo el sistema visual humano, los bordes también son importantes para un sistema de inteligencia basado en la máquina. ¿Dónde se utilizan los bordes? Puede utilizar bordes para agrupar píxeles en los objetos o partes. Por ejemplo, los bordes le indican que toda la región dentro de un área determinada pertenece a un objeto común. También puede ayudarnos a realizar un seguimiento de las características importantes a través de las imágenes. Puede ser señales para la forma 3D o también podría ayudarle a hacer una edición interactiva de la imagen. ¿Qué queremos decir? Digamos que quería tomar este edificio. Se trata de un edificio del campus IIT Hyderabad. Digamos que quiero tomar este edificio y quiero poner nieve en el fondo o montañas de fondo. Así que idealmente necesito información de borde para aislar el edificio del fondo y luego ser capaz de cambiar el fondo en consecuencia, por lo que los bordes son importantes para ese tipo de aplicaciones. (7:14) Así que hablamos de imágenes que están siendo representadas de múltiples maneras. Las imágenes se pueden considerar como matrices, las imágenes también se pueden considerar como funciones. Así que cuando se habla de imágenes como funciones, los bordes se ven como acantilados muy empinados. ¿Qué significa eso? Así que si tuvieras una imagen como lo que ves a la izquierda. Nuestro trabajo ahora es averiguar dónde existen estos escarpados acantilados en las imágenes. (7:46) Así que eso nos lleva a los derivados (gradientes), porque si usted necesita encontrar acantilados empinados, eso significa en un cambio de unidad muy pequeño en los píxeles, que va de un píxel al siguiente píxel o a dos píxeles de distancia, hay un cambio enorme en la intensidad. Así que en cierto sentido, estamos diciendo que un borde es un lugar de cambio rápido en la función de la intensidad de la imagen, o puede ser medido efectivamente usando un derivado o un gradiente. ¿Cómo? Veamos un ejemplo. Así que si esta era tu imagen, así que donde tienes un parche blanco seguido de un parche negro, entonces un parche blanco de nuevo. Así que si usted tomó una fila particular de esta imagen, incluso en esa fila, usted tiene el mismo patrón un conjunto de píxeles blancos entonces un conjunto de píxeles negros y luego un conjunto de píxeles blancos, su función de intensidad se ve algo así. Recuerda de nuevo, que el blanco tiene mayor intensidad, el negro tiene menor intensidad, por lo que tu imagen en realidad se ve algo así en el espacio de intensidad de imagen, esa particular fila de píxeles que se indica en rojo en el lado izquierdo. Así que si tomaste un derivado de todos estos valores en la función de intensidad, así se vería la derivada, la tercera columna. Así que hay un punto inicial en el que tienes un derivado negativo porque el valor está cayendo y luego hay un punto posterior donde tienes un igual en magnitud del gradiente, pero en la dirección opuesta, porque la intensidad aumenta en ese punto en particular. Así que aquí es sólo otro ejemplo de la misma configuración, pero aquí también estamos mostrándole cómo el segundo derivado se ve en este entorno en particular. Así que el segundo derivado recuerda, parece que mientras el primer gradiente siga subiendo, sube hasta cierto punto y luego se cae y luego vuelve para la segunda mitad del gradiente, el segundo gráfico de derivados se vería algo así. Veremos más ejemplos del segundo derivado sobre las próximas diapositivas. (10:01) Ahora nuestro desafío es acerca de cómo obtener estos derivados? Así que entendemos que los bordes son importantes y que los bordes se pueden obtener utilizando derivados o gradientes. Pero la pregunta que tenemos ahora es ¿cómo lograr esto usando la convolución? Para ello, veamos primero la definición de los principios de un derivado. Así que si tuvieras x, y direcciones entre píxeles en una imagen, y consideremos la función de intensidad de una imagen como f (x, y) Así que en d (f (x, y)) /d (x), estamos tratando de medir el derivado con respecto a x .. Para datos discretos, definirá d (f (x, y)) /d (x) para ser (f (x + 1, y)-f (x, y))/1, que sería su definición discreta para el derivado. (11:08) Ahora mirando estas definiciones, ¿qué crees que sería la máscara o el núcleo o filtro asociados para asegurar que obtengamos este gradiente en particular? ¿Puede adivinar cuál sería el filtro? (11:23) Una simple respuesta es lo que ves a la derecha. Es exactamente lo que es esta definición. Simplemente dice que si usted está en un píxel en particular (x, y) usted puede decir f (x + 1, y)-f (x, y), colocando este píxel en este valor del filtro en ese píxel en particular, esta es la salida que usted conseguiría aplicando este filtro en esa ubicación en particular. Del mismo modo, puede obtener un efecto muy similar utilizando la exploración de un filtro vertical, que le dará el gradiente a lo largo de la dirección y. ¿Es esta la única manera de obtener el gradiente? No necesariamente. Hay otras maneras de definir el gradiente también. Recuerde aquí, en la diapositiva anterior, cuando dijimos que para datos discretos, obtenemos el gradiente utilizando esta fórmula en particular, recuerde que este es un tipo de una aproximación. Podría haber varias otras maneras en las que se podría aproximar el gradiente. Por ejemplo, se puede decir que un gradiente también se puede escribir como (f (x + 1, y) + f (x-1, y)-2 f (x, y))/2, que también es una aproximación válida del gradiente. Así que hay múltiples maneras de definir el gradiente, dependiendo de hasta dónde quieres ir en tu vecindario alrededor del punto en el que estás completando el gradiente. (12:53) Aquí hay otro ejemplo de un filtro de 3 x 3. Voy a dejar que usted piense cuidadosamente acerca de lo que sería la expansión derivada aquí, no es demasiado difficult. Recuerda de nuevo, si este era un f (x, y) recuerda que esto va a ser f (x + 1, y), esto va a ser f (x-1, y) y esto va a ser f (x, y + 1) y así sucesivamente y así sucesivamente. Puede definir las ubicaciones de coordenadas para cada uno de esos valores, y simplemente ahora escribe lo que esto significaría como un derivado. En este caso, puede ver que el derivado se define como 2f (x-1, y) + f (x-1, y-1). Este valor viene aquí, este valor viene aquí más f (x-1, y + 1) que corresponde a este. Entonces usted tendrá un menos para todas estas ubicaciones aquí y finalmente se divide por el número total de ubicaciones, que en este caso será 9 para obtener su gradiente final. Este tipo de filtro se llama filtro de Sobel Edge y una vez más, esta es otra aproximación del gradiente para obtener los bordes en este ajuste. Pero claramente, usted ve aquí, que usted está en este caso, tratando de encontrar el gradiente a lo largo sólo de la dirección vertical. Recuerde que usted está tratando de dar algunos valores a la izquierda y a la derecha, lo que significa que realmente encontrará lo que son los bordes en la dirección vertical. Así que lo que ves en el lado derecho es un valor absoluto del gradiente y por eso no estamos viendo negativo o positivo porque no nos importa. Dondequiera que haya un cambio brusco es un borde, si la intensidad se cae o se cae, sigue siendo un borde. Así que realmente no nos importa lo que es la señal del gradiente y la magnitud del gradiente del valor absoluto es lo que nos importa aquí. (15:20) Aquí está el filtro de cortesía para encontrar los bordes horizontales para el filtro de Sobel. Son estos los dos únicos filtros, no necesariamente así. (15:31) Así que hay más filtros de este tipo, hay algo llamado el filtro Prewitt, hay algo llamado el Sobel, que acabamos de ver. También está el filtro de Roberts, que encuentra bordes en direcciones diagonales. Así que claramente, se puede elaborar a mano varios tipos de filtros para poder encontrar los bordes en diferentes direcciones. Y la pregunta obvia de seguimiento para nosotros ahora aquí es, entonces, ¿cómo encontramos los bordes en cualquier dirección? ¿Hay que convolver con muchos filtros diferentes para poder encontrar bordes en diferentes direcciones? Veamos eso en un momento. (16:08) Antes de llegar, veremos un filtro de bordes completos a medida que vayamos hacia adelante. Definamos formalmente algunas cantidades que vamos a utilizar para el resto de esta conferencia. Recuerde que el gradiente de una imagen grad (f), donde f es la imagen, se da por una tupla: (d (f)/d (x), d (f)/d (y)). (16:32) Y el gradiente siempre apunta en la dirección de la intensidad de cambio más rápida. Así, por ejemplo, si usted tiene el gradiente a ser (d (f)/d (x), 0), esto le dice que no hay cambio en la dirección y todo el cambio es sólo a lo largo de la dirección x, que el borde en la imagen se vería algo así. Si usted tenía el gradiente a ser (0, d (f)/d (y)), entonces no hay cambio a lo largo de la dirección x y el borde es sólo a lo largo de la dirección vertical y así es como tal borde se verá como una imagen. Por otro lado, si se agrega un borde en una dirección al azar completamente diferente, como una dirección diagonal, no alineado a lo largo del eje vertical o el eje horizontal, entonces usted tendría un gradiente, que es simplemente dado por (d (f)/d (x), d (f)/d (y)). En ambas direcciones hay un gradiente no cero, que le da un borde en una dirección diferente. (17:36) ¿Cómo encuentra la orientación del borde? Dijimos que los bordes tienen orientaciones diferentes. Sus principios de cálculo simple, la orientación del gradiente es simplemente dado por tan inverso de gradiente a lo largo de y dividido por gradiente a lo largo de x, estos son resultados de cálculo de la escuela secundaria. (17:55) Y finalmente la fuerza del borde se da por la magnitud del gradiente. Es decir ((d (f)/d (x)) ^ 2, (d (f)/d (y) ^ 2) debajo de la raíz le da la magnitud del borde en esa ubicación en particular. Así que tan fuerte es el borde, es lo que esto te da en esa ubicación en particular. (18:17) Tomemos de nuevo este ejemplo de una sola fila en una imagen. Así que supongamos ahora que la imagen es probablemente cambiada. Tenemos un parche negro seguido de un parche blanco, eso es lo que tenemos aquí. Y ahora vamos a tomar una fila en particular, estamos tomando una fila en particular, sólo por la simplicidad de la comprensión. Usted podría haber tomado la imagen completa a sólo que las figuras de la derecha se habrían visto más complejas. Así que vamos a tomar una fila en particular en la imagen. Claramente, incluso en esa fila en particular, hay el primer conjunto de píxeles que son negro entonces el siguiente conjunto de píxeles que son blancos. Más bien en esa fila en particular, la función de intensidad de imagen se vería algo así, primer juego de píxeles que son negro el siguiente conjunto de píxeles, que son blancos. Si usted tomó hacer el gradiente de tal función, sabemos que el derivado se vería algo así. El derivado es plano en todas estas ubicaciones y todas estas ubicaciones y hay un pico justo en el medio cuando hay un cambio en la intensidad. Así que si le hice la pregunta, ¿dónde está el borde? Es simple, simplemente dices dondequiera que el degradado tenga un valor alto, es decir, donde el borde está presente en la imagen y claramente habría sido correcto en este entorno en particular. Desafortunadamente, las imágenes del mundo real no vienen tan bien pulidas como lo que ves en este entorno en particular. (19:43) Las imágenes del mundo real tienen muchos artefactos, especialmente artefactos ruidosos. Así que tomamos la misma imagen, pero esta vez la imagen tiene mucho ruido. Lo podemos ver de cerca. Hay mucho ruido de sal y pimienta en esta imagen en particular. Ahora bien, si intentamos trazar la imagen, intensidad, tu intensidad de imagen se vería algo así, donde tienes mucho ruido y en el medio, hay un gran cambio en la intensidad, que es donde está tu borde y luego tienes mucho ruido de nuevo en la región blanca. Si ahora tomaste el degradado, observarías que el degradado se ve algo así. Recuerde que el gradiente está midiendo el cambio infinitesimal. Así que en todas estas regiones, el cambio infinitesimal se haría representado por el gradiente como este. E incluso aquí, si usted tomó pequeños pasos pequeños, el gradiente hay más o menos el mismo tipo de un degradado que en las regiones ruidosas de la misma imagen. Ahora, ¿cómo encontrarías el borde? Recuerda que así se ven las imágenes del mundo real, ¿qué opinas? Así que si simplemente tomaste el degradado, te vas a confundir porque incluso las partes ruidosas de la imagen se verán como que son un borde también, pero claramente del ojo humano, puedes ver que el borde está justo en el medio. Entonces, ¿cómo resolver este problema? La respuesta es algo que ustedes ya han visto. Primero alisa la imagen y luego la detección de bordes. (21:11) Veamos esto como un ejemplo concreto. Así que lo que hacemos ahora es que vamos a limar. Ya viendo cosas como filtro de caja, filtro gaussiano así sucesivamente y así sucesivamente. Vamos a utilizar un filtro Gaussiano, esta es la fila original de esa imagen que acabamos de ver en la diapositiva anterior. Usted toma el filtro Gaussiano, convolve la fila original y la imagen o la imagen con el filtro Gaussiano, una vez recuerde que la fila en una imagen es una señal unidimensional. Así que estamos usando un filtro Gaussiano unidimensional aquí. Si lo haces en la imagen, este sería un filtro gaussiano bidimensional, recuerda que ya hemos visto cómo se ve un filtro Gaussiano de dos dimensiones. Lo hemos visto como 4, 2, 2, 2, 1 así sucesivamente y así sucesivamente, justo, hemos visto que como un filtro Gaussiano antes. Así que en este caso en esta imagen, va a ser un filtro Gaussiano de 1D Gaussiano, unidimensional. Así que convolvemos la imagen con ese filtro Gaussiano unidimensional y la salida sería entonces algo así. Así que toda la fila en la imagen se suaviza, todo el ruido se vuelve plano e incluso el borde se suaviza ligeramente hacia fuera, recuerda que era un borde agudo y se consigue un poco suavizado y eso es lo que logran los filtros gaussianos. Si bien eliminan el ruido también desdibujan porciones de la imagen, eso es lo que sucedería aquí para esa región media donde está el borde. Y entonces usted tiene el resto de la región para ser plana también. Ahora en esta imagen suavizada gaussiana, se puede ejecutar un detector de borde mediante la ejecución de un gradiente y se encuentra que un borde se puede encontrar en el centro de la misma. Hay más que lo que acabamos de ver. (22:49) Recuerda de nuevo, que hemos dicho que la convolución tiene unas buenas propiedades matemáticas que la correlación no satisface y que vamos a utilizar una de ellas para hacer nuestra vida más fácil. Así que recuerda que la convolución es asociativa. Así que si suponemos una función de gradiente de f convolution g, y si te dije que este degradado también se puede implementar como una convolución, que acabamos de ver un par de diapositivas de vuelta con esos filtros de Sobel y otros filtros. Por lo tanto, debido a la propiedad asociativa, podemos escribir esto como f convolución con gradiente de g o gradiente de f convolución g, todos ellos son equivalentes debido a las propiedades de la convolución. Lo que significa lo que puedo hacer ahora es que puedo tomar el filtro Gaussiano, calcular el gradiente del filtro Gaussiano precalculo y almacenarlo conmigo. Así que ya sabes cómo se ve un filtro Gaussiano, sabes cómo se ve un filtro derivado, has visto ejemplos de ambos hasta ahora. Ahora convolve los dos y obtendrá un filtro de salida. Almacénelo con usted y ese filtro se verá algo así. Este es el derivado del filtro Gaussiano. Dado que este es el derivado del filtro Gaussiano, lo que significa que ya se ha cuidado, supongamos que g era el filtro Gaussiano y f era la función original. Así que automáticamente se está calculando, precomputando por d/dx (g) y almacenándolo como una señal y ahora, todo lo que necesita hacer es convolve directamente esta función en la señal original y llegará a la salida directamente para poder encontrar el borde. Así que ahora se convierte en un proceso de un paso en lugar de un proceso de dos pasos, que puede ahorrar mucho de tiempo y esfuerzo para que usted compute el borde en una imagen ruidosa. Y recuerde, esto fue posible debido a la propiedad asociativa de la convolución, que podríamos aprovechar para hacer las cosas más fáciles. (24:52) Y la pregunta obvia de seguimiento es ¿qué pasa con el segundo derivado? Hemos estado insistiendo en que los gradientes son buenos estimadores de los bordes. ¿Qué pasa con el segundo derivado? Puedes usar el segundo derivado también para calcular los bordes y así se vería. Así que si usted agrega su señal original f otra vez aquí así que el segundo derivado de Gaussiano, así que recuerde en la diapositiva anterior, tomamos el primer derivado de Gaussiano aquí. Así que si usted tomó el segundo derivado de Gaussiano, así será como se verá. El segundo derivado de Gaussiano se llama Laplacian de Gaussiano, veremos eso con más detalle muy pronto. Así que el Laplacian de Gaussiano también se puede utilizar para convolve directamente en la imagen y ahora se obtiene una salida algo así. Y esta vez, el borde se encuentra aquí. Recuerde, en el caso anterior, cuando usamos el gradiente del filtro de Gaussiano, encontramos que el borde estaba en alguna parte, el borde estaba llegando a su punto máximo aquí en el millar de la lectura, allí es donde el borde estaba llegando a su punto máximo. Pero si usted aplica el Laplacian de Gaussiano, usted encuentra que en mil, usted realmente consigue que el valor sea cero. Así que, ¿qué significa si utilizas el Laplaciano de Gaussiano, por lo que una pregunta obvia que podría estar ahí en tu mente es cómo sería el filtro? Todos sabemos cómo se ve el Gaussiano 4, 2, 2, 2, 2, 1, 1, al menos una instancia de un filtro gaussiano, puedes tener esa instancia si te gusta, dependiendo del tamaño o dependiendo de tu amplitud del Gaussiano. Y vimos que la derivada del Gaussiano lo sabemos hacer. Podemos tomar un filtro de Sobel, podemos tomar el filtro Gaussiano, podemos convolverlos. ¿Cómo se hace esto para Laplacian de Gaussiano? Vamos a hablar de que en algún tiempo, en realidad tendremos un tangible tres tres de la cruz Laplacian del filtro de Gaussiano y mostrar cómo se obtiene en unas pocas diapositivas de ahora. Así que ahora si se aplica el Laplacian del filtro Gaussiano, encontramos que los bordes ahora se convierten en cero cruces. Cuando tomamos el primer derivado llano, se encontraron bordes donde el gradiente era alto, pero si se va al segundo derivado del Gaussiano, se encuentran los bordes donde se tiene un paso cero. Entonces, lo que significa que hay algún valor que es positivo y usted está haciendo la transición a un valor negativo y el cruce de cero es donde un borde puede ser localizado. Eso es lo que habla aquí el Laplacian de los filtros gaussianos. (27:16) Así que aquí está una ilustración visual de estos diferentes filtros. Este es tu filtro Gaussiano, este es tu derivado del filtro Gaussiano. Espero que entiendas esto incluso geométricamente que si diferencias el Gaussiano, esto es lo que conseguirías en términos de la derivada de Gaussiano. Y también puedes hacer ejercicio y comprobar que si diferencias esto, conseguiría el Laplacian de Gaussiano, que se ve algo así. El Laplacian de Gaussiano se escribe como o el operador de Laplacian en general se escribe como el cuadrado de Nabla f. Así que si ahora pones la derivada del Gaussiano, recuerda de nuevo, el derivado puede estar en dos direcciones. Usted puede tener el derivado del Gaussiano a lo largo de la dirección x, derivado del Gaussiano a lo largo de la dirección y, por lo que el derivado de Gaussiano a lo largo de la dirección x se vería así, espero que usted pueda conectar la superficie a la superficie. Rojo significa alto valor, azul significa valor bajo, es simplemente un mapa de superficie o un mapa de calor. Y la derivada de Gaussiano a lo largo de la dirección y se vería algo así. O desde una perspectiva de imagen, así es como se vería un derivado de Gaussiano a lo largo de una dirección y así se vería el derivado de Gaussiano a lo largo de la otra dirección. Así que ahora, si le hago la pregunta, ¿cuál de estos encuentra bordes horizontales y cuál de estos encuentra bordes verticales? ¿Qué te parece? Si no tienes la respuesta ya, la segunda imagen encuentra bordes horizontales y la primera imagen encuentra bordes verticales, en realidad es bastante evidente cuando ves las imágenes en sí. La segunda imagen encuentra bordes aquí, que separan esta región blanca de la región negra y la primera imagen encuentra bordes como este, separando la región blanca de la región negra. Así que uno de ellos encuentra el eje horizontal, uno de ellos encuentra el eje vertical. Una quita que también tienes aquí es que la imagen o el filtro, recuerda que este es solo el filtro que vas a utilizar. Estas imágenes que viste en la última fila son simplemente máscaras o kernels. Así que en cierta medida cómo el filtro visualmente mira a usted es lo que es el artefacto que en realidad tratar de buscar en la imagen de modo que es lo que vemos aquí también en estas imágenes. (29:57) Así que si ahora computas gradientes, puedes ver que puedes calcular el derivado de x del Gaussiano, puedes ver que puedes calcular el derivado y del Gaussiano, ahora simplemente puedes tomar la magnitud del gradiente, que es la raíz de x cuadrado derivado más y un cuadrado derivado y encontrarás que la magnitud del gradiente te da un conjunto de bordes algo así. Hay una imagen muy popular llamada la imagen Lina, que la gente usa para dar ejemplos de procesamiento de imágenes. Eso te da un primer nivel de aristas, ¿pero es que todo ello? No necesariamente así. (30:28) Veamos ahora más de cerca uno de estos bordes en la imagen que acabamos de ver en la diapositiva anterior. Así que en realidad se ve algo así. Así que ahora podría hacer la pregunta, ¿dónde está realmente el borde? Parece que hay tantos píxeles que son blancos aquí, que un borde podría estar en cualquier lugar en esos píxeles. Pero claramente cuando decimos que queremos un borde, esperamos que se cumplan ciertas propiedades. Tenemos ciertas expectativas de cómo debería ser ese borde. ¿Cómo se ven? Vamos a definirlas por primera vez. (31:04) Así que las propiedades de un buen detector de borde son, en primer lugar, hacer una buena detección. ¿Qué significa eso? Debe encontrar todos los bordes reales en la imagen e ignorar el ruido u otros artefactos. Como si hubiera un borde en la imagen, debería detectarlo. Así que eso es lo que la buena detección es lo que estamos buscando desde el método para la detección de bordes. Recuerda que si no tienes una buena detección, vas a mirar todos los puntos de ruido en la imagen y luego seguir detectándolos como bordes, no quieres hacer eso, esa es una propiedad que quieres. Lo segundo que desea es una buena localización, lo que significa que si el borde está en esta ubicación, también desea detectar el borde en la misma ubicación. Si usted va a detectar los bordes en la vecindad en el vecindario y no exactamente donde está el borde, que se llamará la localización deficiente, pero lo que queremos es buena localización. Dondequiera que el borde estaba es exactamente en ese píxel es donde usted quiere detectar un borde. No desea ir dos píxeles a la izquierda o dos píxeles a la derecha, lo que sería una mala localización. Y por último, sólo queremos una respuesta única. Sólo queremos devolver un punto por un verdadero punto de ventaja y no una región entera. Una vez más, si este fuera el verdadero borde, este tipo de una detección, que se extiende hacia fuera no es muy útil y queremos ser exactamente en esta ubicación para un buen método de detección de bordes. Pero hasta ahora, solo sabemos utilizar el degradado para detectar los bordes. ¿Cómo resolver problemas como la buena localización, la respuesta única, así sucesivamente y así sucesivamente y eso es lo que vamos a ver ahora. (32:48) Entonces, ¿cuáles son las cosas que podemos hacer para asegurar que obtener una sola respuesta en una región en particular es hacer lo que se conoce como Supresión no Máxima y la idea es muy literal, es una supresión no máxima. Así que si algo no es un máximo suprimirlo. ¿Cómo lo hacemos? Si tuvieras una ventaja como esta. Supongamos que había un tipo circular de un borde en una imagen, así es como se veía el borde. Así que claramente, puedes ver aquí que cada píxel blanco se detectaría como un borde, como acabamos de ver, todos ellos podrían tener respuestas altas dependiendo de qué barrio uses para calcular tu degradado. Así que podemos terminar teniendo muchos pixels correspondientes al borde, que no quieres. Quieres que se aísle. ¿Qué hace usted? Usted toma un píxel en particular, calcula la orientación del gradiente en ese píxel en particular, ¿cómo calcula la orientación del gradiente? Acabamos de ver unas pocas diapositivas atrás, tan inversa de gradiente a lo largo de la dirección y por gradiente a lo largo de la dirección x, que le da la orientación del gradiente en ese píxel en particular. Así que en este caso en particular, la orientación del degradado sería así. Recuerde que la orientación del gradiente sería siempre normal a la superficie, así es como sería la orientación del gradiente. Por lo tanto, lo que significa que si usted está en un pixel q y la orientación del gradiente es a lo largo de una dirección en particular, entonces lo que hace es ir a lo largo de la dirección del gradiente y luego tratar de ver si este pixel es un máximo en esa dirección o no. Por ejemplo, si va por la dirección del degradado en esta imagen, desea retener sólo el píxel que tiene el gradiente más alto en valor y hacer cualquier otro píxel que no sea el máximo en cero. Así que sólo tienes que comprobar si el píxel es un máximo local a lo largo de la dirección del degradado, si es un máximo, conserva su valor, el valor de la magnitud del borde que obtienes, si no es un máximo, hace que la magnitud del borde sea cero y no lo trate como un borde. Así que en este proceso, una cosa que usted puede tener que recordar es, usted puede necesitar, cuando usted va a lo largo de la dirección de la orientación del gradiente, usted puede terminar yendo a una ubicación que no está definida en la imagen. Podría estar entre dos píxeles. En esos casos, es posible que tenga que interpolar, puede utilizar la interpolación lineal simple o cualquier método de interpolación simple para poder obtener lo que el valor del píxel del gradiente está en esa ubicación y luego puede continuar haciendo más supresión máxima. Así que aquí hay un ejemplo de la misma imagen después de aplicar la supresión no máxima.