Robótica y visión artificial Miguel Cazorla http://www.dccia.ua.es/~miguel Grupo de Visión Robótica Universidad de Alicante Introducción ● Percepción biológica vs. computacional ● ¿Qué es una imagen? ● Procesamiento de una imagen ● Visión estéreo ● Casos prácticos La vista nos engaña Cómo vemos ● Sistema biológico “simplificado” – Captura de imágenes – Procesamiento Visión biológica vs. computacional ● ● Captura de imagen: cámara – Cámaras más veloces: humana 30fps (no se procesan frames), computacional 6mill.fps – Mayor resolución: humana 576Mpíxeles, computacional 50Mpíxeles Procesamiento: métodos para procesar imágenes – Computador más rápido, cerebro más paralelo Computacional vs. biologica ● ● ● La óptica de una cámara puede ser fácilmente modificada (zoom, campo de visión, etc.) Cámaras con un mayor espectro (infrarrojos, ultravioleta) Capturan más rápido que el ojo humano Partes de una cámara ● Óptica ● Sensor ● Perdemos la profundidad en el proceso ¿Qué es una imagen? Visión en robótica ● ● ● Una cámara proporciona una gran cantidad de información sensorial Debemos procesar la imagen que captura la cámara para proporcionar información “útil” al robot Problema principal: velocidad de procesamiento Tareas de la visión ● ● ● Reconocimiento de objetos para evitar obstáculos estáticos y móviles Construcción de modelos de objetos y lugares para reconocerlos y localizarlos Caracterizar su propia posición y movimiento y la de los objetos que le rodean Procesamiento de imágenes ● ● ● Una imagen es una matriz donde cada punto (píxel) contiene un valor Existen métodos que permiten procesar la imagen para obtener información del entorno alrededor del robot Estos métodos usan la información de los píxeles y aplican fórmulas y algoritmos matemáticos Ejemplo: binarizado ● ● ● Imaginad que nos dicen que tenemos que buscar un determinado color Dicho color se corresponde con un determinado valor de píxel Simplemente, cambiamos el valor del píxel a 1, si su valor inicial se corresponde con el color buscado, a 0 en otro caso Ejemplo: binarizado Ejemplo de binarizado para tarea robótica Seguimiento con colores Visión en futbol robótico ● ● Entorno muy estructurado y no cambiante Simplifica el problema al tener colores para identificar los objetos Ejemplos de visión en robótica: TeamChaos Extracción de características ● ● Técnicas que permiten “extraer” ciertos elementos (características) de la imagen para luego ser usados en otras tareas Estos elementos sirven de base para otros métodos que realizan tareas más complejas (reconocimiento, localización, etc.) Extracción de características Aplicación: orientación del robot Conducción sin conductor ● En 1995, Ernst Dickmanns construyó el primer vehículo completamente autónomo y guiado por visión (alcanzó más de 120Km/h) Diagrama: procesamiento y tareas Visión estéreo ● ● ● Al tomar una imagen perdemos la profundidad Con dos cámaras podemos recuperar la profundidad (símil biológico) Existen otros métodos (mono con cabeceo), pero el estéreo actualmente es muy eficiente Obtención de la profundidad ● A partir de la diferencia en la posición de un objeto en una y otra imagen, se puede obtener la profundidad Correspondencia Izq. d1 Disparidad d2 Der. 25 Ejemplo: nube de puntos 26 Cómo usar esta información ● Evitación de obstáculos ● Reconocimiento de objetos ● Localización ● Mapeado 27 Seguir objeto más cercano 28 Aplicación: construir mapa 3D ● ● ● El robot captura una nube de puntos 3D conforme se mueve Podemos calcular la transformación 3D entre cada par de tomas (egomovimiento) A partir de las transformaciones podemos reconstruir el entorno por el que se ha movido el robot 29 Ejemplo de mapa 30 Ejemplo de mapa 31 Vídeo 3D 32 Mapa desde arriba 33 Reflexión ● ● ● Una cámara proporciona una gran cantidad de información (comparado con otros sensores) Esta gran cantidad de información a veces no es tan útil (mucho tiempo para cálculos) Debemos guiarnos por la tarea: reconocer colores, obtener profundidad, 34 etc. Finalizando ● Comparación visión biológica vs. Computacional ● ¿Qué es una imagen? ● Procesamiento de una imagen ● Visión estéreo ● Casos prácticos ¿Preguntas?