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

    +

Empezamos esta semana hablando de bordes. Luego pasamos de los bordes a las tetas a las esquinas, y luego hablamos de unas cuantas variedades de detectores de esquina y hablamos de un detector de esquina importante llamado sift, habló sobre el descriptor de características de cómo describiría su esquina como un vector. Y luego en la última conferencia, también hablamos de segmentación de imágenes. Ahora, también vamos a hablar de otros tipos de espacios de características en los que la gente trabajó en la visión de la computadora, antes de que el aprendizaje profundo llegara a la imagen. Ese va a ser el foco de esta conferencia. Una de las otras representaciones de características importantes que se desarrolló se conocía como contexto de forma. El contexto de la forma consistía en tomar un pixel y colocar y obtener una representación log-polar del vecindario alrededor del píxel usando este tipo de representación. Este tipo de representación. Así que definimos un sistema de coordenadas en dos dimensiones, que está parametrizado por la distancia logarítmica desde el origen, que es el píxel en el que se está tratando de obtener la representación, así como el ángulo. Por lo tanto, para cada punto que considere, contaría el número de puntos en cada bandeja de log-polar alrededor de ese píxel en particular. Así que si esta representación de log-polar se puede ver que tal vez hay algo como una, dos, tres y cuatro regiones en términos de distancia angular en términos de distancia de registro y luego 12 contenedores en términos de los ángeles mismos. Así que, como se puede ver, hay más precisión para los puntos cercanos, muy similares al núcleo gaussiano, donde se da más peso a los puntos cercanos, y luego más flexibilidad para puntos más lejanos en ese píxel donde estamos considerando la representación. En cierta medida, este método, esta representación es la traducción y la escala invariante, dependiendo del tamaño del vecindario que usted toma. (2:53) Estudiemos esto en un poco más de detalle. Así que consideremos dos imágenes diferentes. Así que, ahora, si consideras este pixel, hay si ahora puedes ver con cuidado, esto es un círculo, este es un triángulo y este es un rombo. Así que, si puedes ver aquí puedes encontrar el primero es la representación del círculo, el segundo es la representación del rombo y el tercero es la representación del triángulo. ¿Cómo llegaron estas representaciones? Hay cinco contenedores en términos de log R de la distancia radial log y 12 bins en términos de su θ o sus ángulos alrededor del centro. Entonces, podemos ver aquí que el círculo y el rombo tienen representaciones muy similares por lo que uno podría considerar estos dos puntos como puntos de correspondencia entre estas dos representaciones o estas dos imágenes de A. Y cuando decimos dos puntos están en la correspondencia? Decimos que dos puntos están en correspondencia si minimizan un valor de Cij donde Cij, i y j siendo dos pixeles que estás tratando de medir y Cij = 2 1 ∑ K k= 1 h (k) + h (k) i j (h (k) −h (k)) i j 2 y h (k) y son las ubicaciones de histograma en el ith, alrededor del pixel de ith y en la representación de i h (k) j alrededor del jth pixel, h es el histograma del número de pixeles en cada uno de los contenedores alrededor del pixel de ith y h de manera similar para el jth pixel. corresponderían a j h (k) i el recuento en una de esas papeleras y lo que es pequeño k o capital K, capital K es el número total de papeleras, derecha. Así que para h (k) sería el recuento en una de esas papeleras. i Así que, cuando Cij se minimizaría cuando el numerador es cero o los histogramas exactamente coinciden o cuando los histogramas están bastante cerca uno del otro, usted se asegurará de que estos valores serán bajos. El denominador asegura que también se está considerando el número de píxeles considerados mientras se evalúa esto, muy similar a cómo hablamos de un corte normalizado y corte min el denominador ayuda en la normalización en función del número de píxeles que está considerando para sus estudios. (5:31) Así que una vez que obtenga estos puntos de correspondencia entre dos imágenes basadas en la representación, entonces podría hacer uno a uno que coincida secuencialmente entre estos puntos entre estos puntos de correspondencia y cuando una distancia es menor que un umbral este tipo de enfoque se utilizó para comprobar una coincidencia de forma, no sólo un punto de coincidencia, sino formas de coincidencia entre dos imágenes diferentes. Esa es la razón por la que se le llamó contexto de forma. (5:58) Otro espacio de características o método importante que se propuso se conoce como el MSER o las regiones extremas máximas estables. Este fue un método para la detección de blob basado en la segmentación de cuencas. Por lo tanto, sólo vimos la segmentación de la imagen en la conferencia anterior utilizando uno de esos métodos, que es la segmentación simple de la cuenca que el método se utiliza para llegar a un método para MSER o regiones externas máximas estables. ¿Y cómo funciona este trabajo? Las regiones se identifican en una imagen que permanece casi igual a medida que se sigue variando un umbral. (6:42) Tratemos de describir esto. Así que lo ideal sería barrer el umbral de una intensidad que va de blanco a negro, o de negro a blanco, y en cada paso, simplemente es trilla basada en ese valor de intensidad en particular. Así que si tienes una intensidad de 75, todo lo anterior que es blanco y todo por debajo de eso es negro una operación de trilla simple. A continuación, extrae los componentes conectados dentro de esa imagen de umbral, y los descriptores de región finales sirven como características. (7:12) Vamos a ver esto más claramente con algunas ilustraciones. Así que digamos que empezamos la trilla de las imágenes sobre un nivel de intensidad particular g, por lo que significa que se considera un umbral g, y todo lo anterior que se considera que es blanco, y todo por debajo de eso se considera que es negro. Por lo tanto, el umbral de enlace de umbral, la imagen, se basa en el umbral g. Claramente, cuando usted umbral, usted va a ver un montón de blobs o colecciones de píxeles aparecen. Van a ser regiones cohesionadas que aparecen juntas cuando se alcanza el umbral. Así y a medida que aumenta el valor o disminuye el valor de g lo que sea. En este caso, si usted dice que disminuye el valor de g, las regiones más nuevas empezarían a aparecer. Si disminuye el valor de g ahora está dando un umbral más bajo para considerar que las regiones son blancas y el resto de ellas son negras, por lo que habría más regiones que empiezan a aparecer con valores de píxeles blancos en la imagen de umbral. Y si aumentas g, las cosas comenzarían a coalectar, y estas regiones que se desarrollan a medida que sigues cambiando los valores g se pueden representar en una estructura de árbol. Es muy similar a la fusión de regiones y la división de regiones, a medida que reduce g algunas regiones pueden fusionarse a medida que aumentan las regiones g pueden dividirse en función de sus valores de intensidad. (8:36) Así que ahora, ¿qué haces con esto? Así que las regiones a un nivel determinado se denotan como R1 a g Rn, digamos que hay pequeñas en las regiones, cada una correspondiente a un umbral determinado g. g Cuando la cardinalidad de R indica el número total de píxeles en una de esas regiones, i g Ri g entonces definimos una cantidad, que es dada por. Rj y Rk son padres y | R | i g | R | − | R | j g−Δ k g + Δ hijos de Ri de esa región correspondiente a umbrales ligeramente diferentes, g menos delta y g más delta. Tratemos de estudiar esto un poco más cuidadosamente. Recuerde, de nuevo, que R es una de las regiones i g que usted está considerando en el valor umbral g. Ahora, si usted resta un poco de valor g menos delta, entonces conseguiría una región padre que es quizás más grande que Ri. Recuerde que cuando usted resta el umbral, la región se conseguiría, la región blanca probablemente se haría más grande. Por lo tanto, podría tener una región padre Rk, que se define en g menos delta. Y en g más delta cuando aumenta el umbral la región puede ser más pequeña, la región blanca puede ser más pequeña, usted va a definir eso como un niño y eso es definido por Rk. Y si esta cantidad, que es la diferencia entre Rj y Rk está por debajo de un umbral definido por el usuario, se podría llamar a esas regiones para que sean regiones extremas y máximas estables. Recuerde, si es más pequeño que un umbral, simplemente significa que no hay casi ningún cambio entre el padre y el niño. Si hay mucho cambio, entonces es probable que tenga que ampliar un poco más antes de llamarlo una región estable o una región extremo. (11:02) Aquí hay una ilustración visual. Por lo tanto, esta es la imagen de entrada, ya que se puede ver que tiene algunos personajes en ella. Y cuando se establece el umbral para ser 75, suponiendo de nuevo que se utilizan 8 bits para representar pixel por lo que el valor es entre 0 y 255 se ven las regiones no muy claramente definidas, pero cuando se va a g es igual a 105, se ven regiones que se están volviendo ligeramente más bien definidas. Y se puede ver que a las 135 hay unos pocos cambios, pero no mucho a los 165 cambios muy menores no mucho más, a los 195, casi ningún cambio, a las 225 cosas vuelve a empezar a ir a negro porque el umbral es muy alto. Así que ahora podría representar que como árbol, donde se inicia con una región, esa región se convierte en dos regiones en el nivel g es igual a 105 y la región 2 se convierte en la región 4 y la región 8, en el nivel g es igual a 135, y así sucesivamente y así sucesivamente para construir el resto del árbol. Así que finalmente, como puedes ver a nivel g es igual a 195 tienes dos regiones, una con la k, y la otra con una r, que es lo que estás buscando originalmente. Así que esto le da una manera de separar las diferentes regiones. Así que esto no es exactamente un detector de esquina, sino otro método para separar regiones. (12:29) Así que otra manera, dijimos que también podría ser usado como un detector de sangre, y aquí es un ejemplo para hacer la detección de la blob usando las regiones únicas máximas estables. Así que dada esta imagen de entrada si vas de blanco a negro o negro a blanco las dos primeras filas representan cuando vas de blanco a negro, y las dos últimas filas representan cuando vas de negro a blanco. Si va de blanco a negro, se inicia con un umbral alto y luego disminuye el umbral más regiones en el inicio negro que aparece, se disminuye el umbral más regiones en el inicio negro se muestra y la región comienza a fusionarse y finalmente se deja con, ya que cambia el umbral cuando las regiones no cambian, usted sabe que eso es en realidad un estable blob representación de su imagen original. Recuerda, cuando lo veas de negro a blanco, lo vas a mirar en términos de fusión. Así que usted va a decir que cuando es negro, básicamente, no hay región y usted aumenta ligeramente ciertas regiones comienzan a aparecer, y como usted sigue aumentando el umbral de esta manera, y luego subir a la tercera fila, usted puede ver regiones más estables mostrando a medida que va hacia adelante. Así que este es otro enfoque para encontrar blobs o regiones en una imagen llamada imágenes extremis máximas estables. (13:48) Otro método famoso probablemente ya ha sido expuesto a esto cuando hablamos de tamizar, pero este método también fue desarrollado independientemente para ser capaz de detectar a los humanos en la imagen es conocido como histogramas de gradientes orientados o popularmente conocidos como el cerdo o HOG. Así que esto originalmente fue propuesto en un papel que fue usado para la detección humana en diferentes tipos de imágenes. Por lo tanto, digamos que tenía una parte de una imagen o una imagen que contenía un humano, por lo que en cada lugar donde se le aplica la ventana se computan gradientes. Recuerde, los gradientes de computación es simplemente un detector de borde lo que sea detector y usted quiere elegir. Y luego divide toda la imagen de gradiente en una rejilla uniformemente espaciada. Y luego por cada bloque de 2 cruz 2 en esta rejilla usted computa sus orientaciones de los gradientes, muy similar a cómo hablamos de él para el tamizón usted tendría que decir múltiples orientaciones. Digamos que usted define 8 orientaciones diferentes usted ve cuántos píxeles en ese bloque tenía orientaciones de gradientes en ciertas papeleras y usted los bin para conseguir un histograma para cada bloque 2 cruz 2. Y usted hace este solapamiento de 2 bloques de 2 cruces, lo que le da los histogramas que ve en esta imagen en cada centro de la red. Así que puedes ver aquí que cada uno de estos, cada uno de estos es sólo una manera diferente de dibujar un histograma. Recuerda, de nuevo, si recuerdas, algo así era solo otra forma de dibujar un histograma con 8 papeleras en 8 direcciones donde la longitud de la flecha denota el recuento de frecuencia en cada una de esas papeleras. Esta es sólo otra forma de representar que o esto podría ser otra forma de representar una orientación de gradiente en la obtención del histograma. Así que el histograma de gradientes orientados fue demostrado ser muy efectivo para detectar humanos en una imagen a mediados de la década de 2000. (16:00) Y esto también fue mejorado para dar lo que se conoce como HOG piramidal, un hog de PHOG, donde en cada, en cada paso, usted dividió la imagen en partes y construyó una representación de HOG para cada parte individualmente, y luego concatenada, todas ellas para formar una representación. ¿Cómo se hace esto? Divide una imagen en 2 x celdas en cada nivel de permiso l. Así, si l era l 2 l 1, lo dividiría en dos cruz, la imagen entera en 2 x 2 células, 4 células, o si l era 2 lo dividiría en 4 cruz 4 cruz así sucesivamente y así sucesivamente. Ahora para cada una de estas células se extraen los descriptores HOG de la forma en que hablamos en la diapositiva anterior y luego concatenan los HOG en diferentes niveles de pirámide para dar un histograma completo de la representación de gradientes orientados. Así que como se puede ver, esto se puede hacer de varias maneras, se obtiene un histograma de gradientes orientados para cada célula y concatenar todos ellos y luego se obtiene un histograma de gradientes orientados en l es igual a 0, l es igual a 1, y se puede concatenar todo esto también para obtener su representación final. Así que este método fue mostrado para capturar relaciones espaciales entre los objetos de ejemplo un poco mejor que HOG, que no hace esto a nivel de pirámide. (17:33) Otro método popular, que fue ampliamente utilizado para imágenes de cara en particular rostros humanos, era conocido como patrones binarios locales. Los patrones binarios locales tenían una idea interesante donde se les daba una imagen por cada píxel que tomas, por ejemplo, un barrio 3 cross 3 alrededor de un pixel, por lo que este es el logo de IIT Hyderabad. Así que consideras un pixel y un barrio 3 cross 3 alrededor del pixel anota los valores de intensidad de esos pixeles. Ahora, con respecto al píxel central usted decide si cada uno de los otros píxeles alrededor de él eran más bajos o más altos. Si fuera menor, se establecería un 0, si es igual o superior, se puede establecer en 1, que ahora le da un patrón binario alrededor del pixel central. Una vez que usted define una representación canónica, lo que significa que usted dice que voy a empezar en la parte superior izquierda, y luego ir de una manera circular, usted puede definir una representación binaria para este píxel en particular. Así que, una vez más, lo repetiré. Por lo tanto, define una representación binaria basada en cómo cada píxel está relacionado con los píxeles centrales en densidad. Así que ahora, este valor es ahora de 15 en decimal y se sustituye el valor de ese píxel con 15, otros valores alrededor de él se obtendrán de forma similar haciendo una LBP posicionada en ese píxel en particular y así sucesivamente y así sucesivamente. Ahora, ¿qué hace con esta nueva representación de la LBP? (19:14) Antes de ir allí, también se pueden definir barrios de múltiples maneras. Dijimos que tomarías un barrio 3 por 3 y tomarías los 8 píxeles a su alrededor que puede que no sea siempre el caso, puedes variar dos parámetros diferentes aquí, puedes definir tu radio r también puedes definir el número de vecinos P. Así puedes tener un radio particular donde quieras computar tu patrón binario local con ese puede no ser el vecino inmediato. Puede ser un radio de cuatro, cinco píxeles alrededor del píxel central. Y también puedes definir cuántos vecinos quieres en ese radio. Así que podrías definir p es igual a 8, el número de vecinos es 8 y r es igual a 2, como puedes ver, ese es el ejemplo que ves en esta imagen en particular. Del mismo modo, se podría tener un barrio más cercano, r es igual a 1, pero el número de vecinos a ser igual p es igual a 8. Del mismo modo, se podría tener una r es igual a 2, se podría aumentar el número de vecinos y hacerlo p es igual a 12 y en r es igual a 3 más, aún se podría tener 12 vecinos. Una vez que defina a los vecinos, si estos vecinos se encuentran entre dos píxeles, puede utilizar la interpolación bilinear para obtener esos valores. Por lo tanto, una vez que defina R y P, basándose en esos valores, obtendrá un patrón binario alrededor del píxel central. Escribes eso de manera circular como un número binario, lo convierte en decimal y reemplaza el pixel central por ese valor en particular. ¿Qué haces con eso? (20:51) Así que una vez que obtenga un resultado de LBP, que es su intensidad de LBP para cada píxel, recuerde que el proceso anterior del que hablamos en la diapositiva anterior le da un decimal por cada píxel alrededor del cual usted consideraba el barrio. Así que ahora podría construir tal imagen para cada píxel, podría repetir lo mismo y construir tal imagen de LBP. Una vez que se hace esto, se divide el resultado de LBP en regiones o cuadrículas y una vez más, se puede obtener un histograma de cada región, el número de píxeles en cada región en este caso en particular, y concatenar todos ellos para poder obtener una representación única para la región o una imagen completa. En este caso, no estamos considerando los gradientes que es simplemente el histograma, pero también podría mejorar la LBP para considerar gradientes en cada célula, así sucesivamente y así sucesivamente. Ha habido varias mejoras de LBP o patrones binarios locales que han considerado este tipo de variaciones. (21:54) Así que aquí hay un resumen rápido de varios detectores de características. Hemos visto algunos de ellos. Es posible que no tengamos el alcance para ver todos ellos, pero usted es bienvenido a mirar la fuente de esta tabla en particular para entender más características, pero usted puede ver todas las características en términos de si son detectores de esquina, detectores de blob o ayudan en la búsqueda de regiones si son invariante de rotación, invariante de escala, invariante de affine. Lo repetible que recuerdan, la repetibilidad consiste en asegurar que si encontraste un pixel en particular para ser un rincón, en una imagen particular, si tienes la misma imagen tomada desde un ángulo diferente, en otra imagen o misma escena tomada como una imagen en otro ángulo ese rincón también debe ser detectado como un rincón en la segunda imagen. Esto se conoce como repetibilidad. ¿Qué tan buena es la precisión de la localización? Recuerde, hablamos de precisión de localización incluso para el detector de borde de canny donde dijimos, es el punto exactamente donde debe ser o está a unos pocos píxeles de distancia de la esquina real que conocemos. ¿Qué tan robusto es el método de ruido y qué tan rápido es el método? Por lo tanto, estos son varios parámetros en los cuales, usando los cuales usted puede evaluar la bondad de los métodos que hemos discutido hasta ahora. Así que el detector de la esquina de Harris, vamos a tomar algunos de ellos y simplemente vamos por encima de ellos. El Harris es un detector de esquina, es invariante de rotación, como hemos visto no necesariamente escala o invariante affine, como ya vimos. Es bastante repetible, es razonablemente bueno con localización, precisión, robustez, así como eficiencia. Tomemos otra cosa. Consideremos SURF, que es una mejora sobre SIFT que vimos un par de conferencias atrás, que es un detector de esquina o un detector de blob, puede ser utilizado de cualquier manera. Es invariante de rotación, y escala invariante que es el propósito de tamizar y SURF para ser invariante de escala. Es en el nombre de la propia sift. Y también es bastante repetible bastante preciso en términos de localización, robustez y es extremadamente eficiente. Sabemos que vimos que el SURF es casi tres veces más rápido que el tamiz. Así que también se puede mirar a decir MSER, que es el que acabamos de ver hace unas diapositivas es un detector de la región, que es razonablemente rotación invariante, invariante de escala y afine invariante y también es repetible, preciso en términos de localización, robustez y eficiencia. Más detalles de otros detectores de características por favor mire esto en las referencias, y usted puede mirar el papel para obtener una encuesta más detallada de otros extractores de características. (24:43) ¿Por qué no estamos discutiendo cada uno de estos es de lo que vamos a hablar a continuación, que es una gran cantidad de representaciones de imágenes que se utilizan para ser utilizados en la era de aprendizaje pre-profundo tienen, ya no es relevante debido al éxito de profundo lganancias en la extracción de características que son extremadamente buenas para las diversas tareas de la visión de la computadora. Recuerden cuando hablamos de la historia del aprendizaje profundo, dijimos que a mediados de la década de 1960, Marvin Minsky comenzó con un proyecto de verano para poder resolver el problema de la visión de la computadora, pero muchas décadas después el aprendizaje profundo ha sido capaz de hacer significativamente ese progreso en este momento.