Taller Vision Computacional

72
Universidad de Guanajuato DICIS LaViRIA Dr. Víctor Ayala Ramírez M. en I. José Antonio Gasca Martínez Ing. Sergio Alejandro Mota Gutiérrez Dr. Raúl Enrique SánchezYáñez {ayalav, pepeg,samota, sanchezy}@laviria.org

Transcript of Taller Vision Computacional

Page 1: Taller Vision Computacional

Universidad de Guanajuato DICIS LaViRIA Dr. Víctor Ayala Ramírez M. en I. José Antonio Gasca Martínez Ing. Sergio Alejandro Mota Gutiérrez Dr. Raúl Enrique Sánchez Yáñez {ayalav, pepeg,samota, sanchezy}@laviria.org 

Page 2: Taller Vision Computacional

Objetivos 

  Los participantes irán adquiriendo conocimientos sobre la materia de visión en color para luego aplicarlos en una competencia. Irán aprendiendo cómo hacer que sus robots sean capaces de desenvolverse en espacios con marcas de colores. 

Preparado para Campus Party México 2009  2 

Page 3: Taller Vision Computacional

Metas 

  Que el participante utilice eficazmente la teoría de la visión computacional para el desarrollo de aplicaciones en problemas reales. 

Preparado para Campus Party México 2009  3 

Page 4: Taller Vision Computacional

Programa del Taller 

  Procesamiento y análisis de imágenes.   Desarrollo de aplicaciones en tiempo real OpenCV. 

  Reto de Visión. 

Preparado para Campus Party México 2009  4 

Page 5: Taller Vision Computacional

Visión Computacional (1/2) 

  Es la ciencia y la tecnología de las máquinas que ven. 

  Como una disciplina científica, la visión por computadora trata con la teoría de construir sistemas artificiales que obtienen información a partir de imágenes. 

Preparado para Campus Party México 2009  5 

Page 6: Taller Vision Computacional

Visión Computacional (2/2) 

  Los datos de imágenes pueden tomar muchas formas, como imágenes capturadas, secuencias de video, vistas de múltiples cámaras, o datos multidimensionales de fuentes diversas. 

  La visión por computadora estudia y describe los sistemas de visión artificial que son implementados en software y/o hardware. 

Preparado para Campus Party México 2009  6 

Page 7: Taller Vision Computacional

Áreas de Trabajo en Visión 

Procesamiento de Imágenes 

Análisis de Imágenes 

Visión por Computadora 

Detección de Formas 

Análisis por Color 

Reconocimiento de Patrones  Segmentación  Entendimiento 

de Escenas 

Detección de Movimiento 

Seguimiento de Objetos 

Servo‐control Visual 

Reconstrucción 3D 

 Navegación Basada en Visión 

…  

Preparado para Campus Party México 2009  7 

Page 8: Taller Vision Computacional

Cámaras Digitales 

  Dispositivos que permiten el registro de un aspecto 2D del mundo en el que vivimos. 

  Pueden registrar el mundo en diferentes calidades (resoluciones y fidelidades) .   Más resolución implica un mayor detalle, pero no necesariamente más calidad. 

  Pueden registrar el mundo según diferentes aspectos.   Capturan de manera típica imágenes de intensidad luminosa, pero pueden proporcionarnos también otros tipos de imágenes, como profundidad, etc.  

Preparado para Campus Party México 2009  8 

Page 9: Taller Vision Computacional

Imágenes Digitales 

  Ejemplos de imágenes 

Preparado para Campus Party México 2009  9 

Page 10: Taller Vision Computacional

La Imagen Digital 

R. E. Sánchez Yáñez / Universidad de Guanajuato FIMEE 

f (x, y) =

f (0,0) f (0,1) … f (0,N −1)f (1,0) f (1,1) … f (1,N −1)

f (M −1,0) f (M −1,1) f (M −1,N −1)

⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥

Una imagen continua                 es aproximada por un arreglo discreto de valores. f (x, y)

A esta matriz se le conoce como imagen digital y a cada uno de los  MxN valores se le denomina píxel ( contracción de picture element) o pel.  

Cada uno de los valores refleja una intensidad de la variable registrada por el dispositivo de captura asociado con un objeto dentro de la escena. 

Preparado para Campus Party México 2009  10 

Page 11: Taller Vision Computacional

158 156 159 163 149 103 89 91 98 95 96 102 104 103 100 97 97 86 75 78 69 57 47 55 128 102 79 67 76 89 154 157 161 135 102 102 102 102 107 107 112 113 106 103 102 97 89 78 70 74 87 88 95 78 76 105 111 123 142 153 164 163 159 160 162 162 160 160 163 165 166 165 166 165 166 166 168 167 163 164 165 168 164 161 157 161 159 155 151 151 138 136 135 136 134 132 134 133 139 141 142 143 144 147 147 149 151 154 152 154 156 158 156 157 162 163 162 164 158 15 97 95 93 90 85 86 86 82 85 87 85 84 81 83 86 85 90 92 94 93 92 101 88 91 80 64 59 63 68 56 105 103 102 100 99 99 98 98 99 97 97 97 96 99 101 98 99 120 105 91 92 78 65 61 60 51 49 53 49 56 111 110 110 111 106 106 107 105 104 100 96 97 101 106 107 116 124 82 86 82 65 70 76 64 73 68 66 57 57 57 125 123 121 120 116 117 121 140 146 158 172 158 119 109 121 143 100 84 96 97 85 103 106 97 79 61 50 51 49 68 129 128 125 124 121 119 113 104 105 124 143 148 167 151 118 83 66 62 50 70 97 104 110 116 88 82 67 74 67 70 129 129 126 127 119 112 112 115 112 111 121 120 121 118 100 76 87 83 64 69 104 153 111 105 119 124 117 83 103 91 131 130 128 129 118 116 124 125 122 133 130 126 122 90 58 65 61 77 101 64 130 87 51 62 89 96 101 84 52 44 132 130 127 134 128 128 135 127 140 139 133 128 98 56 57 60 50 51 85 132 68 50 52 54 53 53 69 51 44 58 132 127 127 147 136 137 131 154 155 147 141 112 68 59 56 51 79 149 107 47 52 56 55 50 53 53 53 65 96 91 130 128 132 167 158 151 157 174 172 160 129 80 61 77 69 133 173 112 91 100 103 80 60 57 64 76 105 113 86 118 130 129 130 179 181 178 188 183 173 167 130 81 57 73 149 170 133 141 136 131 130 119 86 78 86 91 101 111 132 134 130 130 126 175 191 196 194 189 177 166 133 80 88 148 173 92 104 166 160 149 140 138 128 116 126 132 136 140 139 139 128 127 126 135 194 204 201 195 185 169 1291 80 163 178 146 93 153 168 164 154 144 122 142 138 138 139 136 137 140 143 127 126 125 122 152 210 204 199 185 177 133 163 179 165 165 112 124 142 134 127 147 128 155 153 151 151 145 141 137 140 120 123 122 117 106 141 211 203 192 172 178 187 176 187 188 175 177 169 155 141 178 141 134 155 181 169 161 154 147 142 117 110 111 108 104 92 130 196 192 176 192 189 190 202 199 146 118 164 170 159 136 85 50 97 197 188 182 172 163 155 154 148 139 137 141 141 138 138 178 192 194 177 116 145 169 80 93 114 108 79 54 51 54 54 158 208 204 198 189 178 154 159 155 147 142 144 146 144 174 197 201 144 122 89 61 53 53 54 55 59 68 70 78 83 70 120 189 212 209 202 153 156 153 149 135 80 57 83 197 199 190 130 114 68 84 99 105 103 105 105 90 93 97 104 103 103 111 128 144 179 153 152 153 145 144 141 107 184 202 181 132 118 50 57 56 53 50 60 85 110 140 151 153 127 142 145 142 124 90 98 186 153 147 140 142 143 156 215 213 162 105 50 50 48 67 96 128 146 154 153 150 151 151 126 132 138 136 135 64 97 163 206 172 141 144 138 76 70 63 46 49 52 81 118 147 153 153 151 150 148 146 147 147 130 113 128 135 140 147 134 117 123 179 205 128 54 52 50 48 57 98 138 153 154 159 153 151 148 144 143 140 138 132 125 118 169 210 191 173 89 120 120 114 92 47 50 50 51 88 142 155 161 162 157 157 154 150 142 139 159 173 187 196 206 208 206 165 124 75 85 122 125 78 48 49 49 60 120 153 158 155 158 160 159 148 152 143 151 187 198 205 210 213 206 145 100 100 90 90 81 123 81 50 50 52 83 137 156 156 157 154 154 157 157 145 148 143 190 199 206 208 210 208 133 81 100 98 94 94 97

Una imagen digital 

Preparado para Campus Party México 2009  11 

Page 12: Taller Vision Computacional

Imagen Digital: De Superficie a Imagen 

Preparado para Campus Party México 2009  12 

Page 13: Taller Vision Computacional

Muestreo 

Preparado para Campus Party México 2009  13 

Page 14: Taller Vision Computacional

Cuantificación 

Preparado para Campus Party México 2009  14 

Page 15: Taller Vision Computacional

Herramientas para Visión Computacional   Fuera de línea 

  Software de creación sintética de imágenes.   Software de procesamiento y análisis de imagen. 

  En línea   Manejadores de dispositivos de captura.   Librerías de manejo de imágenes.   Entornos personalizados de programación. 

Preparado para Campus Party México 2009  15 

Page 16: Taller Vision Computacional

Procesamiento de Imágenes 

Preparado para Campus Party México 2009  16 

Page 17: Taller Vision Computacional

Procesamiento de Imágenes 

  En la mayoría de las aplicaciones de visión por computadora, el fin último es extraer importantes características a partir de datos de imágenes; características de las cuales, a su vez una computadora puede proporcionar ya sea una descripción, una interpretación o el entendimiento de la escena. En las operaciones de procesamiento de imágenes generalmente se tiene como salida otra imagen, realizando tareas como restauración, mejoramiento o codificación.  

Preparado para Campus Party México 2009  17 

Page 18: Taller Vision Computacional

Ejemplo de aplicación 

Aplicación en Metalografía 

Preparado para Campus Party México 2009  18 

Page 19: Taller Vision Computacional

Procesamiento de Imágenes 

  Procesos puntuales   Operaciones que modifican cada píxel de una imagen según un proceso que considera únicamente el píxel correspondiente en la imagen de entrada. 

  Procesos de área   Operaciones que calculan propiedades de un píxel a partir de una cierta vecindad.   

Preparado para Campus Party México 2009  19 

Page 20: Taller Vision Computacional

Procesos Puntuales 

  Operaciones que modifican cada píxel de una imagen según un proceso que considera únicamente el píxel correspondiente en la imagen de entrada. 

  Ejemplos de procesos puntuales   Negativo de una imagen.   Cambio de espacio de color de una imagen.   Umbralización. 

Preparado para Campus Party México 2009  20 

Page 21: Taller Vision Computacional

Negativo de Imágenes (1/2) 

  Simplicidad para entender lo que se hace cuando se procesa una imagen. 

  Familiaridad de los usuarios (al menos los que todavía usamos cámara con película) del aspecto de la imagen invertida. 

Preparado para Campus Party México 2009  21 

Page 22: Taller Vision Computacional

Negativo de Imágenes (2/2) 

Si f (x, y) es la imagen original y F(x, y) el negativo de la imagen:∀x, y ∈{0,M −1} × {0,N −1}

F(x, y) = Imax− f (x, y)El valor de Imax es el máximo valor de la

intensidad capturado por el dispositivo de entrada. Típicamente 255.

Preparado para Campus Party México 2009  22 

Page 23: Taller Vision Computacional

Ejemplos de Negativo de Imágenes 

Preparado para Campus Party México 2009  23 

Page 24: Taller Vision Computacional

Umbralización  

  Esta es una operación que tiene como objetivo separar el fondo de una imagen de la figura u objeto de interés a partir de la utilización de dos niveles de intensidad. Uno para el fondo y otro para el objeto. 

Preparado para Campus Party México 2009  24 

Page 25: Taller Vision Computacional

Umbralización  

Si r = f (x, y) es la imagen original, s = g(x, y) es la imagen procesada

y t es un umbral de separación:

r =0 Si 0 < r ≤ t

L −1 Si t < r ≤ L −1

⎧⎨⎪

⎩⎪

Donde L -1 es la intensidad máxima del formato imagen.

Preparado para Campus Party México 2009  25 

Page 26: Taller Vision Computacional

Umbralización 

  Extracción de un objeto del fondo 

Preparado para Campus Party México 2009  26 

Page 27: Taller Vision Computacional

Unbralización Multinivel 

Preparado para Campus Party México 2009  27 

Page 28: Taller Vision Computacional

Histograma de una imagen 

  Un histograma se define como una gráfica de distribución de frecuencia de ocurrencia de cada color en la imagen y es un indicativo de la concentración de pixeles contra la brillantez. 

  El histograma se usa generalmente de forma normalizada (esto es como una función de probabilidad). El histograma es una función discreta de una imagen. 

Preparado para Campus Party México 2009  28 

Page 29: Taller Vision Computacional

Histograma de una imagen 

h(k) = nkM × N

Preparado para Campus Party México 2009  29 

Page 30: Taller Vision Computacional

Ecualización de Histograma 

Preparado para Campus Party México 2009  30 

Page 31: Taller Vision Computacional

Procesos de área  

  Operaciones que modifican cada píxel utilizando la información contenida en una vecindad centrada en el píxel de interés de una imagen según un proceso determinado. 

  Ejemplos de procesos puntuales   Filtrado de mediana.   Filtrado espacial.   Detección de bordes. 

Preparado para Campus Party México 2009  31 

Page 32: Taller Vision Computacional

Media de una Vecindad 

  Es un método de suavizado empleado para eliminar ruido aditivo de una imagen. 

  Generalmente se usa una ventana V de NxN píxeles alrededor del píxel central (x,y). 

  El valor de intensidad del píxel en la imagen procesada es  el promedio de los píxeles en V. 

Preparado para Campus Party México 2009  32 

Page 33: Taller Vision Computacional

Media de una Vecindad 

Preparado para Campus Party México 2009  33 

Page 34: Taller Vision Computacional

Mediana de una Vecindad 

  Se usa para preservar la información de los bordes de la imagen. 

  En este procesamiento, los valores de intensidad de los píxeles de una vecindad V alrededor del punto (x,y) son ordenados y la mediana (el valor central de los datos) es tomada como resultado en la imagen de salida. 

Preparado para Campus Party México 2009  34 

Page 35: Taller Vision Computacional

Mediana de una Vecindad 

Preparado para Campus Party México 2009  35 

Page 36: Taller Vision Computacional

Filtrado Espacial 

Preparado para Campus Party México 2009  36 

Page 37: Taller Vision Computacional

Frecuencia Espacial (1/2) 

•  La frecuencia espacial se define como la tasa de cambio de la brillantez de los pixeles (la intensidad) dividida por la distancia sobre la cual ocurre el cambio, teniendo componentes en ambas direcciones de la imagen. 

•  Una imagen con frecuencia espacial alta contiene grandes cambios de intensidad en pixeles cercanos; mientras que una con baja frecuencia espacial, tiene áreas extensas con intensidad constante. 

Preparado para Campus Party México 2009  37 

Page 38: Taller Vision Computacional

Frecuencia Espacial (2/2) 

•  La frecuencia espacial nos indica qué tan cerca (en ambas direcciones) se repiten patrones de intensidad en la imagen.  

•  Considerando la información de frecuencia espacial, los procesos de área pueden operar como filtros para remover o resaltar componentes de frecuencia específicos.  

Preparado para Campus Party México 2009  38 

Page 39: Taller Vision Computacional

Convolución Discreta en 2D 

Preparado para Campus Party México 2009  39 

Page 40: Taller Vision Computacional

Filtros Pasa‐Bajas (Ejemplo 1)  

Preparado para Campus Party México 2009  40 

Page 41: Taller Vision Computacional

Filtros Pasa‐Bajas (Ejemplo 2)  

Preparado para Campus Party México 2009  41 

Page 42: Taller Vision Computacional

Filtros Pasa‐Altas (Ejemplo 1) 

Preparado para Campus Party México 2009  42 

Page 43: Taller Vision Computacional

Filtros Pasa‐Altas (Ejemplo 2) 

Preparado para Campus Party México 2009  43 

Page 44: Taller Vision Computacional

Detección de Bordes 

  Convolución de una imagen con máscaras específicas que implementan el gradiente de una señal y un post‐procesamiento (magnitud, umbralización, …) 

Preparado para Campus Party México 2009  44 

Page 45: Taller Vision Computacional

Detección de Bordes 

R. E. Sánchez Yáñez / Universidad de Guanajuato FIMEE Preparado para Campus Party México 2009  45 

Page 46: Taller Vision Computacional

Análisis de Imágenes 

Preparado para Campus Party México 2009  46 

Page 47: Taller Vision Computacional

Análisis de Imágenes 

  Extracción de Características, 

  Análisis de Textura, 

  Análisis de Bordes, 

  Reconocimiento de Formas, 

  Clasificación, 

  Segmentación, 

  Concordancia de Escenas, 

  Entendimiento de Escenas 

Preparado para Campus Party México 2009  47 

Page 48: Taller Vision Computacional

Características 

Área,

Perimetetro,

Medidas de simetría. Color, Textura.

Preparado para Campus Party México 2009  48 

Page 49: Taller Vision Computacional

Vectores de Características 

Definiendo un conjunto de características (mediciones de atributos) como

x1 = área x2 = perímetro : xd = atributo d-ésimo

podemos pensar en nuestro conjunto de atributos (patrón) como un vector de características (feature vector) x, en donde x es un vector columna d-dimensional.

Preparado para Campus Party México 2009  49 

Page 50: Taller Vision Computacional

Vectores como Puntos 

De la misma forma, podemos considerar este patrón como un punto en un espacio de características d-dimensional.

Esta representación abstracta puede hacerse para un objeto o para un evento.

Preparado para Campus Party México 2009  50 

Page 51: Taller Vision Computacional

Análisis por Color 

Preparado para Campus Party México 2009  51 

Page 52: Taller Vision Computacional

¿Imágenes en Color o en Niveles de gris? 

Preparado para Campus Party México 2009  52 

Page 53: Taller Vision Computacional

Componentes R, G, B y Y 

Preparado para Campus Party México 2009  53 

Page 54: Taller Vision Computacional

Componentes R, G, B y Y 

Preparado para Campus Party México 2009  54 

Page 55: Taller Vision Computacional

Espacios (Modelos) de Color

  Espacios de Color   RGB   CIELab   CIELuv   HSI   …

  Generalmente 3 componentes.   Utilidad dependiente de la 

aplicación específica. 

Otro espacio de color Componentes R,G,B Una transformación simple 

Preparado para Campus Party México 2009  55 

Page 56: Taller Vision Computacional

Análisis por Textura 

Preparado para Campus Party México 2009  56 

Page 57: Taller Vision Computacional

Textura 

Preparado para Campus Party México 2009  57 

Page 58: Taller Vision Computacional

Detección de textura 

Preparado para Campus Party México 2009  58 

Page 59: Taller Vision Computacional

Detección del tamaño del texel 

Preparado para Campus Party México 2009  59 

Page 60: Taller Vision Computacional

Clasificación por Textura 

¿A cuál de las 8 clases de arriba pertenece esta imagen?

Preparado para Campus Party México 2009  60 

Page 61: Taller Vision Computacional

Segmentación de Imágenes 

Preparado para Campus Party México 2009  61 

Page 62: Taller Vision Computacional

Determinación de Regiones 

Preparado para Campus Party México 2009  62 

Page 63: Taller Vision Computacional

Contornos de Regiones 

Preparado para Campus Party México 2009  63 

Page 64: Taller Vision Computacional

Unbralización Multinivel 

Preparado para Campus Party México 2009  64 

Page 65: Taller Vision Computacional

Segmentación Basada en Color 

Preparado para Campus Party México 2009  65 

Page 66: Taller Vision Computacional

Segmentación Basada en Textura 

Preparado para Campus Party México 2009  66 

Page 67: Taller Vision Computacional

Segmentación de Imágenes Naturales (por Color/Textura) 

Preparado para Campus Party México 2009  67 

Page 68: Taller Vision Computacional

Entendimiento de Escena 

Preparado para Campus Party México 2009  68 

Page 69: Taller Vision Computacional

Requisitos para el Entendimiento de Escena 

  El reconocimiento de Propiedades Físicas   ...usando el análisis de imágenes. 

  Un Proceso de Reconocimiento Semántico   ...usando aproximaciones diversas para la inferencia. 

Preparado para Campus Party México 2009  69 

Page 70: Taller Vision Computacional

Entendimiento de una Escena 

Cielo 

Camino 

Tierra 

¿   ? 

Árbol 

“Paisaje Rural: un camino, un árbol” 

Preparado para Campus Party México 2009  70 

Page 71: Taller Vision Computacional

Entendimiento de Escena 

SKY         GRASS 1   GRASS 2          PATH         GROUND   INDETERMINATE 

Preparado para Campus Party México 2009  71 

Page 72: Taller Vision Computacional

Herramienta Didáctica 

  www.laviria.org/eventos/TallerVision.html 

Preparado para Campus Party México 2009  72