Visión Artificial en Casas Inteligentes
Transcription
Visión Artificial en Casas Inteligentes
Visión Artificial en Casas Inteligentes Carolina Martínez Olmo NIA: 100039089 [email protected] 1. RESUMEN En este documento se describe qué es la visión artificial así como la aplicación de estas en casas inteligentes. Concretamente se desarrollará el reconocimiento y seguimiento de personas. -Aplicaciones comerciales: reconocimiento de matrículas de coches, pruebas de calidad en líneas industriales, identificación de la firma. -Escritura y grafía. -Procesamiento de vídeo y reconocimiento de colores. Términos generales - Medicina Forense: reconocimiento facial, reconstrucción de la escena del crimen. Módulo de visión estéreo, seguimiento de personas, reconocimiento, hardware, software, distancia, posición, recorrido, color, contraste, media, correlación, varianza, píxel, sub-píxel, calibración, contexto. - Análisis de comportamiento humano, reconocimiento de huellas dactilares, identificación según la forma de caminar, análisis postural. Palabras clave - Militar: reconocimiento de aeronaves y vehículos, trayectoria de misiles, mapas. Visión artificial, “depth image”, “blobs”, cámaras estereoscópicas. - Robótica - Seguridad: detección de fuegos y humos, detección de minas antipersona. 1. INTRODUCCIÓN La Visión Artificial es un campo de la inteligencia artificial. El objetivo es que una máquina entienda y procese los datos de una imagen. Esto se consigue a través de la programación y del diseño de ciertos dispositivos que permitan obtener información de su entorno, reconocer imágenes y procesarlas. Los datos de las imágenes pueden tener diferentes formas y procedencia: una secuencia de video, una o varias fotografías. La visión artificial es utilizada en diferentes campos, muchos de ellos en nuestra vida diaria. Sus principales aplicaciones son [1]: • Control de procesos. • Detección de eventos. • Organización de información. • Modelado de objetos o del Medio Ambiente. • Interacción. (Máquina- Hombre) A continuación unos ejemplos de campos dónde se utilizan la visión artificial, clasificados según su uso: - Agricultura y bosques: detección de fuegos, identificación de especies y parásitos. - Mundo animal: clasificación comportamiento de insectos. de peces, análisis del - Arquitectura y construcción: aplicaciones arqueológicas, reconocimiento de edificios. - Científico: catálogos y clasificación de estrellas, reconocimiento de proteínas. -Tráfico: análisis de las estructuras de carreteras, monitorización de puertos y aeropuertos. - Realidad virtual. - Casas inteligentes. Este último punto será el desarrollado. Las casas inteligentes son casas en las que la tecnología está perfectamente integrada. Las casas inteligentes pueden tanto ayudar a personas con discapacidades, como a personas mayores o niños. El objetivo de estas casas es que consigan hacernos la vida más fácil. Si una persona en cualquier casa podría encontrarse con una barrera lo que se pretende en este tipo de casas es eliminarla, o bien hacer más cómoda y sencilla una tarea rutinaria. Con estas casas también se pretende mejorar la seguridad y la calidad de vida. A continuación se desarrolla un proyecto de casa inteligente, centrándonos en el campo de la visión artificial y como esta se utiliza para el seguimiento y reconocimiento de personas dentro de una casa. 2. CASAS INTELIGENTES: EASYLIVING EasyLiving [2] es un proyecto de Microsoft en el que se utiliza la visión artificial integrada en casas inteligentes. El laboratorio EasyLiving es un entorno inteligente decorado como un salón. En toda la casa hay instaladas cámaras conectadas a ordenadores y a otros dispositivos electrónicos, que mediante la interacción y el intercambio de datos, permiten el procesado de la información, la gestión de los datos, y por consiguiente las respuestas pertinentes de los dispositivos integrados en la casa. Lo interesante para el campo que nos ocupa es la parte del esquema “person tracking” (seguimiento de personas) dónde se utiliza la visión artificial para la detección de personas. La funcionalidad se completa con sensores que detectan movimiento y presión. De esta manera se consigue un sistema más robusto. El sistema de seguimiento de personas está formado por múltiples cámaras de tecnología de visión estéreo de color (Triclops), estas cámaras en combinación con un ordenador y el software apropiado proporcionan imágenes en tres dimensiones. Se procesa la detección de personas y su seguimiento. Lo que se pretende con este programa es que se consigan realizar diferentes tareas inteligentes simultáneamente. El programa debe: 1. Mantener la situación e identidad de una persona. Las cámaras miden con un radio de precisión de 10 centímetros y mantiene la identidad de la persona basándose en el color de unos “histogramas” que se generan mientras la persona se mueve. 2. Funcionar a una velocidad razonable. El sistema funciona con tres ordenadores y teniendo en cuenta todos los retardos que se producen en el proceso, es capaza de localizar e identificar a una persona a 3.5 Hertzios (~ 0.3 segundos). 3. Trabajar con varios individuos. 4. Ser capaz de crear nuevas instancias para personas que nunca han estado en la sala o que llevaban mucho tiempo sin visitar el espacio. Y ser capaz de cargar las de aquellas personas que son usuales en el entorno. De hecho, el sistema crea nuevas instancias para nuevas personas en cuanto estas cruzan la puerta para entrar en la sala (Por lo menos durante una ejecución del programa). 5. Trabajar con múltiple cámaras. Puesto que las cámaras no pueden cubrir 360º, hay espacios y esquinas que se quedarían sin cubrir, por eso es necesario trabajar con múltiples cámaras. En este laboratorio se trabajó con dos set de cámaras estereoscópicas, con esto se cubría la totalidad de la habitación. 6. Las cámaras están colocadas a una altura de unos 2.3 metros sobre el nivel del suelo. 7. Trabajar en grandes periodos de tiempo. Ya que en la realidad, en una casa inteligente, es necesario procesar millones de frames de video, tanto por todo el tiempo que el sistema estará activo como porque habrá muchas personas dentro de la vivienda. 8. Trabajar con visión parcial u obstáculos, a veces una persona al caminar es tapada por muebles. El sistema es capaz de seguir trabajando bajo estas circunstancias. Figura1. Esquema del hardware utilizado en EasyLiving Lo que se pretende con este proyecto [4] es que si por ejemplo, una persona está viendo la película en el sofá del salón y abandona la habitación, las cámaras detectarían el movimiento de la persona y que esta ya no está en la sala; y la película quedaría en pausa hasta que el individuo vuelve al salón. También es muy importante que el sistema reconozca que persona está en la sala en cada momento, ya que así las funciones del espacio inteligente podrán ser más completas y más precisas. Los principales servicios o funcionalidades son: • Activación de eventos (como el ejemplo expuesto anteriormente). • Ubicar en el dispositivo correcto un mensaje para una determinada persona. • Invocar un uso particular según la preferencia del usuario, ya sea iluminación o audio. • Entender el comportamiento de una persona para poder atenderla. Figura 2. Esquema del sistema EasyLiving. 3. TECNOLOGÍA DE VISIÓN ESTÉREO 3.1 Hardware La tecnología de visión estéreo [3] permite controlar y visualizar una zona mediante triangulación entre cámaras ligeramente compensadas. El sistema de visión estéreo, es decir, cada cámara; está formado a su vez por tres cámaras colocadas en forma de L, que junto con el software apropiado realiza mediciones del entorno. El módulo de cámaras genera imágenes en tres escalas de grises, o color, y las digitaliza y almacena en la memoria del ordenador. El sistema software analiza la imagen y establece correspondencias entre píxeles en dicha fotografía. Basándose en la geometría de la cámara y esta correspondencia entre píxeles, es posible establecer la distancia entre puntos en la escena. Este sistema permite obtener pleno campo de visión y gran gama de imágenes de la escena a una velocidad de 30Hertzios sin tener que sacrificar precisión. (Hay que tener en cuenta que esta velocidad es sólo en lo que a las cámaras se refiere, ya que el sistema completo introduce retardos y la velocidad global es menor, como hemos visto anteriormente). El resultado es velocidad y exactitud al registrar imágenes píxel a píxel, lo que permite resolución necesaria para trabajar con aplicaciones como seguimiento, reconocimiento de gestos y modelado y reconocimiento de imágenes (Figura 3). Figura 4. Resolución según la distancia y puntos de vista para una imagen de resolución de 640x480. Como podemos apreciar en la figura 5 se han captado simultáneamente tres imágenes de una escena. Aunque las imágenes parecen muy similares, si se observa con detenimiento, se aprecia un cambio entre los objetos cercanos en comparación con los que están lejos. Basándose en esto el sistema es capaz de determinar la distancia entre los objetos de la escena. En esta figura se muestra también la imagen que obtiene (Depth Image) a partir de las otras tres. Los objetos cercanos están representados en una gama de grises clara, mientras que los objetos más alejados son de unos tonos grises mucho más oscuros. El procesado estéreo utiliza tanto la información que se obtiene vertical como horizontalmente, lo que proporciona una “Depth image” más robusta y realista. Figura 3. Ejemplo de reconocimiento de gestos y reconstrucción. El núcleo de estas cámaras está diseñado para procesado en tres dimensiones con velocidad y exactitud. La resolución de estas cámaras es de 320x240 píxeles [5], pero en otros modelos con las mismas funciones, puede llegar a tener 640x480 píxeles. A continuación se muestra una gráfica en la que se muestra la resolución (en metros) en función de la distancia de la cámara. Las imágenes se computan con el algoritmo de enfoque triangular estéreo. Basado en otro algoritmo que llevaron antes a cabo M. Okutonni y T. Kanade [6]. Para cada píxel de la imagen de referencia, los valores de la correlación del otro par de imágenes son sumados para obtener un resultado combinado. La media de la correlación se obtiene usando el método de absolutas diferencias. Que consiste en tomar el valor absoluto de la diferencia entre cada píxel de la imagen original y la o las que se están comparando. Estas diferencias son sumadas para crear un espacio vectorial L1 normal. Con esto se consigue trabajar de una forma sencilla con imágenes y reconstruirlas en tres dimensiones. Una característica de estas cámaras es la gran calidad de calibrado que tienen. La calibración consigue minimizar el error a solo la veinteava parte de un píxel. Esta calibración permite al programa corregir la distorsión de las lentes y la desalineación de las cámaras para producir tres imágenes que encajan luego perfectamente en la reconstrucción. Figura 7. Reconstrucción 3-D a partir de una nube de puntos. Es por todo esto por lo que estas cámaras han sido integradas con éxito además de en el seguimiento y reconocimiento de personas, que es lo que nos ocupa, en procesos industriales, robots móviles, reconocimiento de gestos, minería, industria y actividades aeroespaciales y modelado y reconocimiento de objetos. 3.2 Software La programación del software de la cámara estereoscópica se realiza en Visual C++. Es compatible con Windows Xp. Hay varias formas de calcular u obtener la “Depth Image” o el “Depth Map”, pero hay parámetros que son indispensables como, por ejemplo, la resolución de la imagen o la interpolación de los píxeles. Son los siguientes: Tabla 1. Parámetros más importantes para la programación de las cámaras estereoscópicas. Stereo Parameters Description of the Parameter Image size/resolution The API allows the user to specify the size of the image that is to be used as the initial gray-scale image. Con la imagen final es posible determinar en tres dimensiones (3D) la posición de cada punto de la imagen en relación al módulo de las cámaras. Disparity range Allows the user to specify the range that distance measurements are to be done in. Que estas cámaras utilicen sub-píxeles permite aumentar la exactitud y realidad del rango estimado. Siendo las imágenes muy precisas y de gran calidad, es esto, entre otros factores, lo que nos permite la reconstrucción en tres dimensiones con éxito. A continuación se muestran dos figuras que ilustran lo explicado anteriormente. Mask size Allows the user to specify the coarseness of features that are to be matched between images. Preprocessing Specifies whether matching should be done on gray-scale or pre-processed images, such as edge images. Validation Specifies the methods used for verifying the correctness of matched-between images. Regions Of Interest Specifies the region of the image that processing should be done on. This feature allows processing speedup. Subpixel Interpolation This feature allows establishing correspondences to sub pixel accuracy allowing generation of more precise distance measurements. Figura 5. Procesado estéreo: Obtención de la posición de los objetos a través de las imágenes. Figura 6. Ejemplo de obtención de la depth image Tabla2. Diferentes velocidades según el procesador y memoria del ordenador utilizado. El sistema software permite la especificación de múltiples procesos estéreos que sucederán en el mismo set de imágenes, (al tomar una imagen, se generará un set de imágenes). Para habilitar el procesamiento estéreo de imágenes en un mismo conjunto, debemos introducir el concepto de contextos. Utilizando contextos, es posible encapsular toda la información necesaria para un determinado tipo de procesado. Es más, múltiples contextos permiten compartir y procesar los datos con un mínimo esfuerzo por parte del usuario. El contexto almacena la configuración de la cámara, parámetros de procesamiento estéreo, datos de entrada y resultados. Es contexto se inicializa usando la configuración del módulo de la cámara. Esta configuración contiene información sobre el número de cámaras y la geometría de estas, así como ciertos parámetros que no admiten cambios. Otros, como la resolución del procesado de la imagen, el rango, la validación o la interpolación entre pixeles, deben ser especificados. La velocidad de ejecución depende del procesador y de la memoria del ordenador (Tabla 2), pudiendo así conseguir mejores resultados y ser muy precisos. Para probar el funcionamiento de las cámaras y de EasyLiving, se utilizaron varios programas. Uno de ellos era un juego llamado “Hotter/Colder” (frío/caliente), en el que uno de los investigadores seleccionaba en el ordenador un punto de la habitación, posteriormente entraba una persona en la sala e intentaba localizarlo. La persona era guiada mediante las indicaciones “frío” y “caliente”. De esta manera se comprobaba que las cámaras y el programa eran capaces de seguir a la persona en todo momento. Otro de los programas proyecta unos ojos de dibujo animado en la pared por cada persona que hay dentro de la sala y estos siguen a la persona a medida que esta se mueve por la habitación. Un tercer programa hace que comience o termine automáticamente una película DVD o de video cuando una persona se sienta o se levanta de un sillón. La película es automáticamente derivada a diferentes dispositivos en la sala según dónde se siente el usuario. 4. OBTENCIÓN DE LAS IMÁGENES Cada cámara está conectada a su ordenador. Teniendo en este proyecto dos cámaras con su respectivos ordenadores y un tercero encargado específicamente del seguimiento de personas. Usando los “depth” conseguidos y las imágenes a color proporcionadas por las cámaras y haciendo una sustracción del fondo para localizar un “blob” (masa) en tres dimensiones en el campo de visión de la cámara. Estos “blobs” representan los cuerpos de las personas. El programa que recoge las imágenes de salida y localiza estos “blobs” en el espacio recibe el nombre de “Stereo Module”. Para cada cámara está corriendo un programa en cada ordenador, ambos conectados al tercero encargado del seguimiento propiamente dicho. Un esquema de esta configuración se puede ver en la figura 2. Además a cada “blob” se le asigna un color dependiendo de a qué persona represente, algo muy interesante para diferenciar a dos personas cuando están muy cerca entre sí dentro del salón. Se han utilizado cámaras de visión estéreo en lugar de cámaras de imágenes a color, ya que si las regiones proyectadas sobre la imagen de dos personas se solapan, si estas provienen de una cámara de imágenes a color, es muy difícil separarlas, sin embargo, con “depth images” provenientes de una cámara estéreo, es relativamente sencillo. Aunque no hay que olvidar que las Cámaras utilizadas también recogen imágenes a color, lo que nos permitirá más tarde asignar a cada persona una tonalidad diferente para su diferenciación. Como se ha visto anteriormente, las dos cámaras son necesarias para cubrir todo el espacio del cuarto y poder obtener todas imágenes de cada rincón. Esto requiere un calibrado de la posición relativa y orientación de los dispositivos. Figura 8. Puntos seleccionados en el suelo del laboratorio para establecer la posición de las personas en la sala Además es necesario poder saber a qué distancia están del suelo y la orientación con respecto a este, ya que los “blobs” son situados sobre el plano del suelo, de esta manera sabremos dónde está situada una persona. Para mejorar y probar esto además contamos con dos técnicas. Una es un programa interactivo en el que se permite que el usuario seleccionar puntos en la imagen de cualquiera de las dos cámaras para establecer correspondencia con los puntos marcados en el suelo (figura 8). La otra técnica es grabar de cada cámara el recorrido de una persona, es decir, las localizaciones, en dos dimensiones, sobre los puntos marcados en el suelo (figura 8). De esta manera se obtienen dos recorridos parecidos, pero no iguales, ya que las cámaras están colocadas en lugares diferentes. Esto se precia claramente en la gráfica de la figura 9. Después estos datos son recogidos por un programa que computa la traslación y la rotación y da la mejor superposición entre los dos recorridos grabados previamente, como se muestra en la figura 10. 4 3,5 3 2,5 2 1,5 1 0,5 0 -2 -1 0 1 2 Figura 9. Ruta de una persona sobre el plano del suelo tomada por las dos cámaras antes de la calibración. 4 3,5 3 2,5 2 1,5 1 0,5 0 -2 -1,5 -1 -0,5 0 0,5 1 1,5 2 Figura 10. Ruta de una persona sobre el plano del suelo tomada por las dos cámaras después de la calibración. 5. ELIMINACIÓN DEL FONDO Para conseguir separar las figuras humanas del fondo de la escena se hace una diferenciación en color y contraste, gracias al “depth image” obtenido. Una de las ventajas de usar este último es que es muy sensible a sombras, cambios de iluminación y contraste. El fondo se modela calculando la media y la varianza de cada píxel en las imágenes a color y en las “depth image” en una secuencia de treinta frames con el cuarto vacío (figura 11). Para procesar una imagen de un primer plano se estudia primero la “depth image” obtenida. Todos los píxeles cuyos valores de contraste no son válidos (falta de textura), no son considerados como parte de esta imagen en primer plano o imagen principal. Esto se debe a que las personas tienen suficientes tonos o texturas en su piel o en sus prendas para proporcionar una “depth image” correcta y completa, por lo que estos píxeles restantes no son necesarios tenerlos en cuenta, ya que no proporcionan nuevos datos. Si así lo hiciesen, sí que deberán ser considerados. Esto se explicará con más detenimiento en la siguiente sección. Es muy fácil detectar una persona sobre el fondo cuando está se está moviendo por la sala, ya que se aprecia mucho contraste, sin embargo, es más complicado hacerlo cuando está sentada en un sofá, ya que la imagen de primer plano, se funde con el fondo. En este caso juegan un papel relevante las imágenes a color tomadas por las cámaras, el programa estudia la media y la correlación de los píxeles y consigue hacer la diferenciación. Cuando el individuo se mueve delante de una pantalla de televisión, es muy probable que se produzcan fallos y que esta pantalla sea a veces considerada parte de la persona. En cualquier caso, este movimiento dura muy poco espacio de tiempo, por lo que enseguida el programa vuelve a reconocer la imagen de primer plano, es decir, la persona. Figura 11. Toma de la imagen del fondo de la estancia y reconocimiento de personas. 6. LAS PERSONAS EN LA CASA Cuando reconocemos personas dentro de la casa, el programa las reconoce como “blobs”, masas. Suelen a parecer varias masas para representar a una persona, en lugar de una gran masa unida. Esto se debe a que siempre hay presencia de ruido y que las personas tienen zonas con texturas de difícil reconocimiento y clasificación. Los “blobs” más cercanos se agrupan para estudiar si pertenecen a la misma persona o no. Esto se ilustra en la figura 12. En esta figura se observa que se ha hecho un árbol con las masas, esto se hace para determinar cuáles está más próximas en el espacio y cuáles más alejadas. Las que estén más cerca serán las que formarán el conjunto. Para determinar el peso en las ramas del árbol, se calculan las distancias euclídeas entre los centros de las masas. Como se aprecia en la figura hay una rama que está descartada por estar demasiado separada de todas las demás. Lo que se hace en primer lugar es estudiar si estos conjuntos que se han obtenido pueden según su volumen y altura corresponder con las medidas del cuerpo de una persona. Lo que queda dentro de las líneas de puntos, es lo que será considerado como personas, lo que queda fuera, son masas espurias, que son eliminadas por el programa como se muestra en la figura 13. 7. SEGUIMINETO DE PERSONAS Para completar el seguimiento y localización de las personas a dada una se le asigna un color para que sea más fácil diferenciarla en la casa. El ordenador dónde está instalado el software para el seguimiento de personas almacena además una lista con todas las personas que ha estado en la estancia últimamente o que actualmente están en ella, de esta manera puede consultar esta pequeña base de datos y mejorar la eficiencia y el tiempo de respuesta. La sala tiene algunos puntos de 10 x 10 centímetros, localizados en el suelo de la sala, como se muestra en la figura 8. A medida que una persona avanza por la sala, el ordenador guarda los puntos por los que ha pasado y el punto exacto en el que se encuentra en este momento. 8. CONCLUSIONES Figura 12. Agrupación de masas para determinar si pertenecen al mismo sujeto Las casas inteligentes son el futuro, ya que no solo hacen la vida más cómoda para las personas, si no que en algunas situaciones pueden ayudar a una persona, por ejemplo discapacitada, para eliminar barreras. Actualmente con la tecnología que disponemos no será muy complicado conseguir que estos sistemas estén integrados en las casas y en pleno funcionamiento. Creo que este tema también tiene una importancia y proyección relevantes seguridad, ya que se puede reconocer fácilmente si una persona es habitual en un entorno o si es un extraño. 9. REFERENCIAS [1] Wikipedia Computer Vision http://en.wikipedia.org/wiki/Computer_vision [2] Microsoft EasyLiving http://research.microsoft.com/easyliving/ [3] Triclops (SDK) Stereo Vision System Manual Version 3.1 [4] Multi-Camera Multi-person tracking for EasyLiving. John Krumm, Steve Harris, Brian Meyers, Barry Brumit, Michael Hale, Steve Shafer. Microsoft Research Vision Technology Group. Microsoft Corporation Redmond, WA, USA. [5] Triclops Datasheet. www.ptgrey.com Figura 13. Eliminación de “blobs” espurios. [6] M. Okutonni and T. Kanade. A multiplebaseline stereo. IEEE Transactions on Pattern Analysis and Machine Intelligence, 15(41):353-363, 1993.