L. Enrique Sucar Alberto Reyes ITESM Cuernavaca Robótica Inteligente L. Enrique Sucar Alberto Reyes ITESM Cuernavaca
Visión Robótica Introducción Adquisición y representación de imágenes Filtrado Detección de orillas Color Estéreo Aplicaciones en robótica
¿Qué es Visión? “Visión es saber que hay y donde mediante la vista” (Aristóteles) “Visión es recuperar de la información de los sentidos propiedades válidas del mundo exterior” (Gibson) “Visión es un proceso que produce a partir de las imágenes del mundo una descripción que es útil para el observador y que no tiene información irrelevante” (Marr)
Visión Computacional Determinar la identidad y localización de objetos en una imagen, construir una representación tridimensional de un objeto, analizar un objeto para determinar su calidad, descomponer una imagen u objeto en diferentes partes.
Ejemplo visión
Formación de la imagen
Representación Monocromática: I=f(x,y) Color: f(x,y)=[f_{rojo}(x,y),f_{azul}(x,y),f_{verde}(x,y)]
Proyección
Proyección perspectiva y,Y (X,Y,Z) f Z Lente (x,y) Triángulos semejantes: y/f = -Y/(Z - f) = Y/(f-Z) Entonces: y=fY / (f - Z) x=fX / (f - Z)
Digitalización de imágenes 24 38 44 43 45 50 56 59 46
Efectos de Muestreo (resolución)
Dispositivos de captura Cámaras fotográficas, cámaras de televisión, digitalizadores, sensores de rango (láser), sensores de ultrasonido, rayos X, tomografía, resonancia magnética.
Arquitectura sistema de visión
Niveles de análisis Procesamiento de nivel bajo Procesamiento de nivel intermedio Procesamiento de nivel alto óvalo
Mejoramiento de la imagen Previo a obtener características: resaltar aspectos deseados, eliminar ruido, mejorar contraste, etc. Técnicas de pre-procesamiento: operaciones puntuales, filtrado, ecualización por histograma.
Operaciones puntuales Pixel de salida sólo depende de un pixel de entrada S[x,y] = f(E[x,y])
Función de Transformación IS IE
Binarización Transformación lineal en el que la imagen de salida tiene 2 valores - blanco y negro S=blanco, si E > T S=negros, si E < T T es el umbral
Ejemplos de Operaciones Puntuales
Histograma de intensidades Distribución de niveles de intensidad en una imagen Ejemplo: Estimado de probabilidad de ocurrencia de cada nivel de intensidad: p= nr / nt 1 1 2 2 1 2 1 2 2 1 3 1 3 0 1 2 3
Ejemplos de histogramas
Ecualización del histograma Función de transformación:h s(k) = Sk ni / n Para k = 0, 1, 2, 3 …. Número de niveles Esto es, al hacer la transformación se asigna a cada nivel de intensidad de la imagen de salida el valor de la sumatoria de las probabilidades hasta ese valor Da un valor entre 0 y 1 que hay que multiplicar por una constante (255)
Ejemplos de ecualización - antes
Ejemplos de ecualización - después
Filtrado Filtrar una imagen consiste en aplicar una transformación de forma que se acentúen o disminuyan ciertos aspectos g(x,y) = T[f(x,y)]
Filtrado en el Dominio Espacial Operan directamente sobre los pixels de la imagen Se utiliza generalmente una “máscara” que opera sobre una vecindad de pixels, centrándose sobre el pixel de interés Se realiza una convolución (barrido) de la máscara con la imagen
Filtrado en el Dominio Espacial Cada pixel de la nueva imagen se obtiene mediante la sumatoria de la multiplicación de la máscara por la vecindad del pixel: g(x,y) = S S f(i,j) w(i,j) Generalmente se divide sobre cierto valor constante para normalizar
Aplicación de una máscara
Convolución máscara Imagen nueva Imagen original 1 1 1 1 1 1 1 1 1 1 1 1 1 Imagen original 1 1 1
Convolución - paso 1 máscara Imagen nueva Imagen original 1 1 1 1 1 1 1 1 Imagen original 1 1 2 1
Convolución - paso 2 máscara Imagen nueva Imagen original 1 1 1 1 1 1 1 1 Imagen original 1 1 2 5 1
Normalización En esta caso se divide entre “9” (suma de las valores de la máscara) 1 1 1 máscara 1 1 1 1 1 1 Imagen nueva normalizada Imagen nueva 1 2 5
Algunos Filtros Filtros puntuales Filtros de suavizamiento Filtros de acentuamiento Filtros de énfasis de altas frecuencias Cada clase de filtro difiere en los valores utilizados en la máscara
Filtros de suavizamiento Eliminan ruido o detalles pequeños que no sean de interés Filtro pasa-bajos (en frecuencia)
Filtros de suavizamiento Promedio - promedio de pixels vecinos (máscara con unos) Mediana - substituye por mediana de la vecindad Gaussiano - aprox. distribución gaussiana
Ejemplos de aplicación de filtros de suavizamiento
Filtros de acentuamiento Intensifica los detalles y cambios, mientras que atenúa las partes uniformes Filtro pasa-altos (en frecuencia)
Filtros de acentuamiento Ejemplo de filtro pasa-alto Suma de los pesos es cero (se “eliminan” regiones de intensidad uniforme)
Ejemplos de aplicar filtros pasa-altos
Visión de nivel bajo Obtener características útiles para los siguientes niveles de visión: orillas o bordes, color, textura, gradiente, profundidad
Imágenes intrínsecas
¿Qué es una orilla? Parte de la imagen en que hay un cambio brusco o discontinuidad en la intensidad de la imagen- derivada “alta”
Orillas locales Las orillas de una imagen normalmente se detectan como pequeños segmentos o secciones de un borde que se integran en etapas posteriores Orillas locales
Operadores de gradiente Se basan en diferenciar la imagen, es decir, encontrar el gradiente: Df = (df/dx, df/dy) Magnitud del gradiente: |Df| = [ (df/dx)2 + (df/dy)2 ]1/2
Aproximación al gradiente Se puede aproximar el gradiente tomando la diferencia de valores contiguos en la imagen. Para una sección de 2 x 2: df/dx = I 1,2 - I 1,1 df/dy = I 2,1 - I 1,1 1,1 1,2 2,1 2,2
Las aproximaciones anteriores se pueden implementar como filtros espaciales (máscaras) Operadores como el de Roberts, Prewitt y Sobel, se implementan con dos máscaras: una para dx y otra para dy
Operadores de Roberts Corresponden a las diferencias cruzadas de 2 x 2 1 -1 1 -1
Operadores de Prewitt Corresponden a las diferencias en secciones de 3 x 3 -1 -1 -1 -1 1 -1 1 1 1 1 -1 1
Ejemplos con los operadores de Roberts y Prewitt (magnitud)
Operadores de Sobel -1 -2 -1 -1 1 -2 2 1 2 1 -1 1
Ejemplos con operadores de Sobel
Color El color es importante porque: ayuda a la extracción de características, apoya los niveles superiores como segmentación y reconocimiento. El ojo humano distingue miles de colores y en cambio sólo aprox. 20 niveles de gris - el color es importante en el reconocimiento visual.
Espectro El color tiene que ver con la longitud de onda dentro de la luz visible del espectro electromagnético color: violeta azul verde amarillo naranja rojo longitud 400 700 de onda (nm)
Percepción del Color Un objeto se ve de cierto color si refleja las longitudes de onda de dicho color (por ejemplo, verde: 500-570 nm) y absorbe el resto, al ser iluminado por luz “blanca”
Atributos básicos del color Croma o longitud de onda dominante (Hue) Pureza o saturación Brillantez o intensidad
Combinación de colores La identificación del color se hace mediante la combinación de los 3 tipos de sensores - combinación de colores “primarios” (RGB) Combinación aditiva - luz (a) y substractiva - pigmentos (b)
Componentes de una imagen a color
Modelos de Color Diferentes formas de representar el color: modelos sensoriales - orientados a los equipos RGB, CMY, YIQ modelos perceptuales - se asemejan a la percepción humana y se orientan al procesamiento de imágenes y visión HSV, HLS, HSI
Modelo RGB Se basa en los componentes primarios: RGB Se puede representar como un “cubo” con un primario en cada eje
Modelo HSI Transformación del espacio RGB al espacio perceptual Forma de 2 pirámides triangulares unidas en su base
Conversión RGB a HSI I = 1/3 (R + G +B) S = 1 - 3 m / (R + G + B) H = cos -1[ ½ [(R - G) + (R - B) ] ] m = min(R,G,B) [ (R-G)2 + (R-B) (G-B)]1/2
Ejemplo de Imagen en HSI
Procesamiento de imágenes a color Detección de orillas Aplicar en cada componente Ecualización del histograma Aplicar sólo en Intensidad (modelo HSI)
Ejemplo de ecualización en color [González 98]
Ejemplo de detección de orillas con Sobel en RGB
Segmentación en base a color Al ser el color un atributo que ayuda al reconocimiento de objetos, se puede utilizar como una forma inicial de segmentación de imágenes en base a color Por ejemplo, se ha utilizado en: Segmentación de área de piel de personas Identificación de cultivos en imágenes aéreas Idenificación de diferentes tipos de terreno para vehículos autónomos
Clasificación en base a color Se pueden utilizar diferentes técnicas para separar los pixels del color de los objetos de interés, por ejemplo: Determinar una región de interés en el espacio RGB o en otros modelos de color Usar un clasificador bayesiano simple en base a los atributos en algún modelo Utilizar otras técnicas de clasificación o aprendizaje
Clasificación en base a color Región en el espacio RGB Región de “piel” en espacio rg
Clasificación en base a color Ejemplo: detección de regiones de piel
Visión Tridimensional
Introducción El objetivo de visión 3-D es recuperar la información de profundidad o tercera dimensión a partir de imágenes Una imagen es un objeto bidimensional en que se ha “perdido” la 3-D El proceso de proyección de 3-D a 2-D es irreversible - se pierde información
Proyección de 3-D a 2-D Un número infinito de escenas en 3-D pueden generar la misma imagen en 2-D
Técnicas Visión estereoscópica Forma de sombreado Forma de textura
Visión estereoscópica Una forma de recuperar la 3-D es mediante el uso de 2 cámaras o visión estéreo La idea es combinar las imágenes de las 2 cámaras y mediante geometría obtener la profundidad de cada punto en la imagen Las 2 cámaras están en posiciones distintas a una distancia conocida
Estéreo Z = f - 2df / (y’ -y’’)
Algoritmo básico Obtener dos imágenes Identificar puntos correspondientes en ambas imágenes Mediante geometría calcular la profundidad de cada punto - en base a la distancia entre las cámaras, la posición de los puntos correspondientes en las imágenes y la longitud focal de la cámara
Correspondencia (matching) El aspecto clave en el algoritmo es el de correspondencia entre puntos No es fácil identificar los pixels en las imágenes que corresponden a los mismos puntos u objetos en la escena Alternativas: Correlación o template matching Basada en características
Correlación líneas epipolares
Medidas de similaridad Dos comunes: Correlación cruzada: S S T(i,j) I(k,l) Suma de diferencias cuadráticas: S S [T(i,j) – I(k,l)]2
Ejemplo
Forma de Sombreado En general el mundo esta constituido por objetos opacos y relativamente continuos Considerando una iluminación constante y una reflectividad aproximadamente uniforme - los cambios de intensidad dan información de profundidad
Forma de Sombreado
Algoritmos Estereo fotométrico - uso de múltiples fuentes de iluminación Relajación - uso de restricciones entre elementos Algoritmo diferencial - uso de información local
Ejemplo de aplicación del método de forma de sombreado
Visión de Nivel Bajo y Medio orillas textura Imagen Segmen- tada color 3-D
Visión de Nivel Alto Representación del mundo Imagen Segmen- orillas textura Imagen Segmen- tada Descripción simbólica color 3-D
Visión de Alto Nivel Obtiene una interpretación consistente de las características obtenidas en visión de nivel bajo e intermedio Se basa en utilizar conocimiento de los objetos del dominio de interés En base al conocimiento y las características se realiza el reconocimiento
Reconocimiento
Ejemplo HGP 5080
Vector de Características Las características de un objeto se pueden agrupar en un vector de características (feature vector): V = (v1, v2, …, vn) Este vector da una representación compacta del objeto correspondiente
Clasificación La clasificación de objetos consiste en encontrar el tipo (clase) para un objeto desconocido en base al vector de características Para ello podemos considerar el vector como un punto en el espacio n-dimensional de características
Espacio de características (ejemplo con 2) v1 X v2
Vecino más cercano Una forma de clasificación es el método del vecino más cercano: se obtienen las características de objetos conocidos se calcula el “centro de masa” de los vectores de cada clase se obtiene el vector de una imagen se calcula la “distancia” a cada clase se selecciona la clase más cercana
Clasificación con VMC v1 X v2
Reconocimiento Estadístico Descrita la imagen (instancia) y los modelos (clases) en base a una serie de parámetros, se busca la clase más probable Notación: clases: Ci instancia o patrón: Xj P(Ci): probabilidad a priori de cada clase P(Xj | Ci): probabilidad del patrón dada la clase
Reconocimiento Estadístico Se busca maximizar la probabilidad de la clase dado el patrón Probabilidad posterior, por teorema de Bayes: P(Ci | Xj) = P(Ci) P(Xj | Ci) / P(Xj) Se selecciona la clase Ci que maximiza P
Clasificador Bayesiano Simple La estimación de las probabilidades se simplifica si se considera que los atributos son independientes dada la clase: P(Ci | Xj) = k P(Ci) P(Xj | Ci) P(Ci | Xj) = k P(Ci) P(X1j | Ci) … P(XNj | Ci) Por ejemplo (R,G,B = color): P(objetoj | R,G,B)= k P(Oj) P(R|Oj) P(G|Oj) P(B|Oj) Las probabilidades se pueden estimar a partir de ejemplos
Ejemplo de Clasificador Bayesiano Simple Clase - Robot: si/no Atributos Rojo: [0 .. 255] (dividir en intervalos) Verde: [0 .. 255] Azul: [0 .. 255] Estimación de parámetros: P(t), P(R|t), P(V|t), P(A|t), Clasificación P(r|R,V.A) = k P(t) P(R|t) P(V|t) P(A|t)
Aplicaciones en Robótica Navegación en interiores Navegación en exteriores Localización (marcas naturales y artificiales) Reconocimiento de diferentes objetos (p. ej. tipos de terreno) Reconocimiento de personas y ademanes (comunicación humano robot) Identificación y localización de objetos (otros robots, para manipulación, etc.)
Estimación de profundidad con laser Punto láser Cámara Punto láser P(Olaser|Z) Z Z
Reconocimiento de personas y ademanes
Reconocimiento de ademanes
Seguimiento (tracking)
Navegación en endoscopía
Ejemplo de Endoscopía
Robótica Se utiliza para que un robot móvil pueda navegar en pasillos de edificios Se asume que el robot tiene una fuente de iluminación (lámpara) cercana a la cámara
Ejemplo de navegación robótica
Navegación en ambientes exteriores
Referencias L. E. Sucar, Notas de Curso de Visión González y Woods, Digital Image Processing, Addison-Wesley
Actividades Diseño mecánico y sensorial de su robot estructura mecánica (tipo) plataforma: forma del robot, estructura selección y distribución de sensores Reporte (5 – 10 pags.) y presentación (15 min) explicando cada uno de estos puntos (diagramas) con una justificación en base a la categoría Armar y demostrar su robot