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.

Documents pareils