martes, 2 de diciembre de 2014

¡¡El rosa no existe!!

El rosa no existe. Parece una afirmación atrevida, y hasta cierto punto lo es, pero es así, en realidad no existe.

Cuando vemos un objeto y decimos que es de un cierto color, lo que estamos viendo realmente es la luz que refleja ese objeto. Un objeto iluminado con una luz blanca, realmente está iluminado por un gran número de colores, de hecho estará iluminado por todo el espectro visible (teóricamente), ya que la luz blanca es eso,  la luz de todos los colores mezclada. Cuando esa luz llega al objeto, parte de la luz es absorbida por el propio objeto y parte reflejada. Esa luz reflejada es la que vemos, y la que nos hace ver los objetos de un cierto color.

Ejemplo de reflexión de la luz en un objeto
Ejemplo de reflexión de la luz en un objeto.

Generalmente esa luz reflejada corresponde con una longitud de onda o con una pequeña parte de todo el espectro visible, pero con el rosa es distinto. Con el rosa lo que realmente vemos es dos partes muy alejadas de ese espectro. Vemos una parte del rojo y otra del violeta, es decir, vemos cada uno de los extremos del espectro visible. Esto es posible gracias a la capacidad que tiene el ojo para detectar varias longitudes de onda a la vez, y a la del cerebro que es capaz de fusionar  esa información en una sola.
Espectro electromagnético visible.
Espectro electromagnético visible.

Todo el proceso comienza en la retina, que es donde va a parar la luz que entra por nuestro ojo. En la retina existen dos tipos de células fotosensibles que convierten la luz en impulsos nerviosos, los llamados bastones y conos. Los bastones se activan en condiciones de poca luminosidad (lugares oscuros) y los conos en condiciones de luminosidad normal o alta. A su vez los conos se dividen en tres tipos, los que detectan el color rojo, los que detectan el color verde y los que detectan el color azul. Por lo tanto cada uno es sensible a una parte del espectro, es decir hacen un filtrado de la luz que nos llega. La respuesta de estas células depende de la cercanía de la luz al color que filtran, e decir si llega al ojo una luz entre el verde y el azul, pero que se acerca más al verde, se activarán las células del verde y del azul, pero las del verde con más intensidad. 


Gráfico de respuesta de las células fotorreceptoras
Gráfico de respuesta de las células fotosensibles.

Después de este filtrado, la información de los tres colores se manda al cerebro, donde se fusiona en una sola respuesta. Por ejemplo, cuando el cerebro recibe una mezcla de verde y rojo, como resultado vemos el color amarillo, es decir busca un color "intermedio", o lo que es lo mismo, el cerebro interpola la respuesta de las células para dar un nuevo color.

Cuando el cerebro recibe una mezcla de violeta y rojo, fusiona esa información y busca un color "intermedio" igual que hace con otros colores. El problema es que el color intermedio en el espectro es el verde, que no sería una respuesta válida porque no sería fiel ya que veríamos igual dos cosas totalmente distintas y porque se encuentra muy alejado de los colores originales. Para arreglar este problema, el cerebro interpreta el espectro como algo circular en vez de lineal, y se inventa el color rosa como unión del rojo y el violeta.


Dibujo de la interpretación del cerebro del espectro
Dibujo de la interpretación del cerebro del espectro.

Por lo tanto el rosa no existe, es un color inventado por el cerebro para sustentar su interpretación del espectro, que utiliza para no mezclar colores. No existe en la realidad, o mejor dicho, no tiene un fenómeno físico que lo sostenga ya que simplemente no tiene una longitud de onda asociada.

domingo, 19 de octubre de 2014

Visual SLAM

Cuando empecé a meterme en el mundillo de la visión artificial descubrí una serie de técnicas, muy utilizadas en robótica, que me han estado obsesionando desde entonces. Estas técnicas se llaman Visual SLAM (Simultaneous Localization And Mapping) y permiten que un robot móvil construya un mapa del entorno (desconocido) en el que se encuentra, a la vez que estima la trayectoria de su propio desplazamiento dentro de ese entorno. Existen multitud de técnicas SLAM y pueden utilizar sensores muy variados, pero en este caso hablaré de las que utilizan cámaras, es decir de los Visual SLAM.



En las técnicas de Visual SLAM se pueden utilizar distintos tipos de cámaras: monoculares, binoculares o RGBD (Tipo Kinect). Según el tipo de cámara se utilizan unos algoritmos u otros, pero todos están enfocados a descubrir cuál es la relación de movimiento que hay entre un frame y el anterior, es decir, descubir cuánto y en qué sentido se ha movido la cámara.


Este tipo de técnicas, además de ayudar a los robots móviles a conocer su entorno, se pueden utilizar para otro tipo de aplicaciones. Un claro ejemplo es el de la realidad aumentada, donde se necesita saber la posición de la cámara para poder mostrar los objetos virtuales correctamente. Antes de las técnicas de Visual SLAM, para poder calcular esa posición se utilizaban una serie de dibujos que servían como referencia y que llamamos marcas o marcadores.


Realidad aumentada con marcadores
Ejemplo de realidad aumentada con marcador.

Hoy en día, con estas nuevas técnicas, no hace falta tener ninguna referencia previa, o la referencia se coge del propio entorno, lo que nos da mucha más flexibilidad a la hora de mostrar esos objetos virtuales, haciendo que el resultado sea mucho más atractivo.




domingo, 21 de septiembre de 2014

Cámaras de altos vuelos

Hace unos meses tuve que elegir una cámara que iría instalada en un UAV o drone de gran tamaño. Nunca había trabajado con este tipo de sistemas por lo que intenté buscar información sobre el tema, pero me di cuenta de que no hay mucha abierta al público, ya que la mayoría son sistemas militares. Así que he decidido hacer un post sobre este tipo de cámaras ya que es algo curioso y que puede ayudar a alguien que se vea en la misma tesitura que yo.

Generalmente las cámaras de este tipo se venden ya encapsuladas, y además de la cámara RGB, suelen contener una cámara infrarroja o térmica y un puntero láser para marcar objetivos (aquí sale a relucir el tema militar). Suelen ser del tipo PTZ (pan, tilt y zoom), lo que quiere decir que se pueden mover en horizontal y vertical y además hacer zoom. Normalmente los rangos tanto de movimiento como los del zoom suelen ser muy grandes, pudiendo llegar a girar en torno a 360º en ambas direcciones y tener un zoom de hasta 200x.

Cámara UAV UAS Drone
Ejemplo de cámara para Drones (Cámara STAR SAFIRE 380 HD)

A la hora de elegir un sistema, lo primero que hay que tener en cuenta es la altura a la que volará el drone y la resolución con la que se quiere ver los objetos, ya que ésto determinará la óptica. Generalmente se trabaja con unidades del tipo GRD, NIRS o IFOV, que relacionan el tamaño de un objeto en píxeles con el tamaño real del objeto, es decir, es la relación entre el tamaño de la imagen y el tamaño real de lo que se ve en esa imagen. Lógicamente estas unidades dependen de la altura a la que se encuentra la cámara y del zoom empleado, ya que al acercarse la cámara al suelo o al aumentar el zoom, los objetos en la imagen se ven más grandes, es decir ocupan más píxeles, y viceversa, por lo que cambia la relación entre tamaño en píxeles y tamaño real.

Ejemplo de cómo se ve una misma imagen al variar la relación entre tamaño real y tamaño en píxeles. Las relaciones son de 10cm 25cm 50cm y 100cm por píxel.
Por lo tanto para poder reconocer objetos muy pequeños a gran altura, parece que lo mejor es tener una óptica con mucho zoom e imágenes con mucha resolución. Sin embargo, una gran óptica significa más peso y volumen, que son variables muy críticas en este mundo de los drones. Por lo que nos queda aumentar el tamaño de la imágen (resolución en píxeles), pero teniendo en cuenta que las imágenes tomadas por la cámara generalmente se suelen mandar vía radio a una estación de tierra, hay que tener cuidado en este aspecto. Las imágenes suelen ocupar mucho espacio, y los anchos de banda destinados a este fin suelen ser limitados, por lo que generalmente se opta por imágenes pequeñas y muy comprimidas para poder enviarlas. Así que la elección de una cámara para un drone es un compromiso entre la calidad de las imágenes, las capacidades técnicas del drone (peso y volumen que puede llevar) y los sistemas de comunicación que emplea.

Además de la óptica, un factor a tener en cuenta para obtener una imagen de calidad es la de la estabilización. Hay que tener en cuenta que un UAV se mueve mucho por lo que para que las imágenes no se vean borrosas o movidas hace falta un sistema que minimice ese movimiento. Los sistemas de estabilización de imagen de estos equipos suelen estar compuestos por una parte mecánica que corrige los movimientos más grandes o bruscos, y otra software que hace la corrección más fina.

Otro aspecto que puede marcar la diferencia en este tipo de sistemas es el de los modos de funcionamiento. Además de sacar fotos y vídeo como casi cualquier cámara, estos sistemas pueden tener otros modos de funcionamiento, que aunque son más típicos en los SAR (synthetic aperture radar), también  pueden estar incluidos en estas cámaras y permiten hacer cosas como seguimiento de objetivos, barrido de áreas grandes para crear una gran imagen o panorámica, seguimiento de trazas de calor... etc. En estos modos, las cámaras incluso pueden llegar a comunicarse directamente con el drone para indicarle un rumbo que permita no perder un objetivo marcado o para darle instrucciones que permitan realizar el barrido de un área extensa.

Además de las funcionalidades que la cámara realiza en el aire, hay otras que pueden ampliar su valor y que se realizan en la estación de tierra mediante software especializado (algoritmos de visión artificial), como reconocimiento de vehículos y personas, lectura de una matrícula de coche o identificación de un objetivo.

En general elegir una cámara para un drone es una tarea complicada, ya que no hay mucha información al respecto y hay que tener muchas variables en cuenta a la hora de elegir un sistema. Las claves para decidirse por uno u otro, además de las especificaciones propias de las cámaras, son el objetivo final del drone, sus especificaciones, sobre todo en cuanto a peso y volumen que puede transportar y los sistemas de comunicación empleados.

jueves, 21 de agosto de 2014

Vehículos Autónomos

Desde hace ya algún tiempo se habla mucho de los vehículos autónomos, especialmente de los coches que vendrán en el futuro, pero también de aviones (UAVs), submarinos (AUVs), barcos... etc. Este tipo de sistemas prometen traer grandes mejoras en seguridad, reducción de costes y optimización de recursos, eliminando el factor humano por supuesto.

Para conseguir todo esto se utilizan una gran cantidad de sensores, como GPS, LIDAR, radares o cámaras, y una multitud de técnicas procedentes de disciplinas tan diversas como son la ingeniería de control, la inteligencia artificial, la automatización, y como no podía ser de otra forma, la visión artificial.

Una de las principales necesidades de este tipo de vehículos es la de capturar una gran cantidad de información en sólo un instante de tiempo, por lo que la visión artificial es perfecta, ya que una cámara puede capturar muchos datos del entorno en centésimas de segundo. Por eso hoy quiero hablaros sobre lo que pueden aportar las técnicas de visión artificial a este tipo de vehículos, que pronto estarán presentes en nuestro día a día.

He de decir que hay grupos de investigación que llevan mucho tiempo investigando en en este campo de la visión, sobre todo en coches y camiones, y que han conseguido desarrollar sistemas con una gran capacidad de autonomía. Un ejemplo claro es el grupo VisLab de Parma (Italia), que con más de veinte años de investigaciones se ha convertido en uno de los grupos más importantes, llegando incluso a acabar el DARPA Grand Challenge (carrera de vehículos autónomos fundada por el DARPA para fomentar la investigación en estos campos), con un vehículo que únicamente utilizaba un GPS y visión artificial. Otro ejemplo claro es el archiconocidísimo coche de Google que ya se pasea por las calles de Mountain View y que es un referente en cuanto a fusión de datos procedentes de una gran variedad de sensores.

VisLab Braive coche vehiculo autonomo
El coche de VisLab BRAiVE

Después de tantos años de investigaciones y prototipos se han desarrollado muchas tecnologias basadas en visión y enfocadas sobre todo a la seguridad. Algunos de estos sistemas ya podemos verlos en los coches comerciales de hoy en día, como pueden ser los sistemas de aparcado automático, la detección de coches y peatones, el reconocimiento de la señalización o las alarmas de cambio involuntario de carril. Aunque algunas de estas tecnologías son más o menos maduras, aún queda mucho camino por recorrer, ya que suelen tener fallos (no son fiables al 100%) y los sistemas más avanzados de momento son sólo prototipos. Sin embargo estos prototipos auguran un futuro muy prometedor ya que demuestran que los vehículos autónomos son algo alcanzable en un futuro no tan lejano como podríamos pensar.

Algunas tecnologías basadas en visión que se encuentran en fase de prototipo son el reconocimiento del terreno mediante cámaras estereoscópicas, navegación basada en visión en vez de gps y cálculo de trayectorias de objetos en movimiento (coches, motos, personas...) , para saber dónde se encontrarán en el siguiente instante de tiempo y poder reaccionar con antelación.

Aquí os dejo un vídeo de prototipo de camiones del grupo VisLab para que veáis el alcance de estas tecnologías que espero que veamos dentro de poco circulando por las calles.



En cuanto al futuro, los investigadores se tendrán que enfrentar a un sin fin de retos. Algunos de ellos son hacer que los sistemas sean más fiables, encontrar la manera de que los vehículos se enfrenten a ambientes desconocidos de una forma eficaz e integrar todos los sistemas necesarios en el vehículo de forma que sean imperceptibles (en el caso de los vehículos comerciales). Además de los retos tecnológicos hay otros que tienen que ver con la legislación, el alto coste de estas tecnologías o la seguridad que transmite al usuario que el vehículo se conduzca sólo, por comentar algunos.

En los próximos años iremos viendo como evolucionan y se van integrando en nuestro día a día estos sistemas que son sin ninguna duda el futuro en cuanto a transporte se refiere y que traerá muchas ventajas respecto de los sistemas convencionales.

sábado, 19 de julio de 2014

Reflexión sobre la información en imágenes

Desde que empecé con esto de la visión artificial, he podido trabajar con muchos tipos de imagen. La mayoría de la gente cree que sólo las cámaras digitales pueden captar imágenes digitales pero no es cierto, existen multitud de sistemas que nos dan imágenes.

Desde imágenes térmicas o de profundidad, hasta imágenes de radar o sonar, pasando por imágenes médicas tomadas con rayos X, resonancia magnética o ultrasonido. Todas ellas representan cosas bien distintas, y sin embargo, se representan de la misma forma, con una matriz de puntos, que es lo que viene siendo una imagen digital.

termografía imagen térmica
Ejemplo de imagen termográfica

No es raro que haya tantos tipos de imagen. El sentido que más utilizamos y que más información nos da es la vista. Por ello siempre hemos tratado de llevar cualquier fenómeno físico de nuestro alrededor a este terreno. Por eso y porque es realmente fácil hacerlo, y me explico.

Una imagen es básicamente una matriz de puntos o píxeles, donde cada punto tiene un valor. ¿Y cómo se asigna a cada punto un valor? te estarás preguntando. Las imágenes tienen dos dimensiones fundamentales, ancho y alto que se suelen relacionar con dos dimensiones del mundo real. Puede ser ancho y alto, como en una imagen normal (procedente de una cámara de fotos), o no, dependiendo del fenómeno físico que se quiera medir. Así, cada posición o píxel dentro de la imagen corresponde con dos dimensiones y el valor del píxel con una magnitud. En el caso de las imágenes convencionales, la cantidad de luz que procede del mundo real. Pero puede ser cualquier magnitud física como temperatura, intensidad de sonido, o incluso otra dimensión como en el caso de las imágenes de profundidad, donde la magnitud representada es la distancia de la cámara a los objetos que percibe (con lo que se representan las tres dimensiones del espacio).

Imagen profundidad disparidad kinect
Ejemplo de una imagen de profundidad

Es muy fácil encontrar fenómenos físicos que varíen según nos movemos por el espacio. De ahí que sea sencillo convertirlos en imágenes, porque realmente sólo se están capturando un montón de datos de forma ordenada. Y es que debido a este orden que mantienen las imagenes, no sólo es más fácil para nosotros percibirlos, sino que también es más fácil procesarlos.

Cuando se trabaja con imágenes, hay que tener muy claro de donde proceden, qué están representando y los fenómenos físicos que se ven involucrados en ello. No es lo mismo una imagen térmica que una de resonancia magnética, y a la hora de tratarlas y procesarlas puede que las técnicas que se usan en unas no sean compatibles con las otras.

Por lo tanto, existen muchos tipos de imagen, porque existen muchos tipos de fenómenos físicos y las imágenes son herramientas muy cómodas para poder percibirlos y procesarlos. Cada tipo de imagen tiene sus características, y es importante tenerlas en cuenta cuando se trabaja con ellas.

sábado, 12 de julio de 2014

Biometría Informática

Hay mucha gente que no lo sabe, pero la biometría informática está estrechamente ligada con la visión artificial. Y es que hay una gran diversidad de rasgos físicos que pueden ser utilizados para identificar a una persona, y la mayoría necesitan de algún tipo de procesado de imagen. Cara, huella dactilar, iris, retina, firma manuscrita... Son algunos ejemplos de rasgos físicos utilizados hoy en día para la identificación de personas que necesitan de estas técnicas. Algunos parecen más de ciencia ficción, o de película de acción, otros están más extendidos en nuestro día a día, como por ejemplo la identificación de huella dactilar, que ya es posible encontrarla en un sin fin de dispositivos. Aunque la mayoría de estas técnicas parezcan futuristas, el estado del arte en estos temas está bastante avanzado, y cada vez se ven más productos comerciales que nos ofrecen sistemas de identificación.

Biometria huella dactilar
Sistema biométrico comercial de huella dactilar

Como he dicho, muchos de estos sistemas se basan en visión artificial. Es decir, en el procesado de imágenes para obtener la información necesaria que identifique a nuestro usuario. Las imágenes se pueden capturar de muchas formas, no necesariamente con una cámara convencional, sin embargo, el proceso que se sigue a partir de estas imágenes siempre es parecido. Primero se extraen una serie de características o descriptores que diferencian a cada persona. Por ejemplo, en huellas dactilares, se descompone el dibujo en distintas figuras que se ha observado que son muy comunes y se guarda su posición y orientación, ya que estas sí son únicas de cada individuo. Para que os quede más claro echadle un vistazo a la siguiente imagen.

Huella dactilar cresta figuras identificación
Ejemplo de la descomposición de una huella dactilar


A la hora de elegir un sistema biométrico, para por ejemplo restringir el acceso a una zona  o para acceder a unos documentos informáticos, hay que tener en cuenta una serie de aspectos. Para empezar hay que tener claras las características del rasgo físico elegido. Que todo el mundo lo tenga (universalidad), que no existan dos personas con un rasgo idéntido (unicidad), el período de tiempo en el que el rasgo no cambia (permanencia) y por su puesto que sea medible de alguna forma (cuantificable), son las principales a tener en cuenta. La elección dependerá de lo que queramos proteger y de quién lo queramos proteger.

Aparte de las características del rasgo físico hay que tener en cuenta otros aspectos relacionados con el sistema que se va a implantar. El primero es la fiabilidad del método, o cómo de bueno es distinguiendo a una persona de otra. Se pueden medir con una serie de parámetros como FAR, FRR... No entraré en detalle porque podría dedicar un post entero a este tema. Después hay que tener en cuenta aspectos relacionados con la usabilidad. Si es cómdoo de usar y el grado de aceptación de la gente hacia el sistema. No es lo mismo poner un dedo en una superficie para que el sistema te lea la huella dactilar a tener que someterse a un lector de retina, que suelen ser mucho más intrusivos ya que se necesita que el sensor mire dentro del ojo.

Otro tema muy importante a tener en cuenta es el de la seguridad. Para que un sistema biométrico funcione necesita una base de datos con los usuarios registrados. Esto supone tener información sensible de un grupo más o menos grande de gente (nombres, los datos biométricos, quizás edad, sexo...), por lo que hay que implementar sistemas de seguridad para que estos datos no sean robados o manipulados sin nuestro consentimiento.

Resumiendo, a la hora de elegir un sistema biométrico, hay que tener presentes una serie de aspectos. Desde las características de los rasgos físico con los que se puede identificar a una persona, hasta la seguridad de los datos que se almacenarán , pasando lógicamente por las características del propio sistema.

martes, 8 de julio de 2014

Smart Cameras

Hace unos meses tuve la suerte de ser invitado a un curso de Smart Cameras impartido por la gente de la empresa Visión Online. La verdad es que al principio era un poco escéptico con esta tecnología, pero al final quedé gratamente sorprendido.

Si no conocéis este tipo de cámaras probablemente os estaréis preguntando qué tienen de especial, qué hacen que no haga el resto. Pues bien, además de poder capturar imágenes como cualquier otra cámara, son capaces de procesarlas en tiempo real gracias al procesador que traen en su interior. A simple vista puede no parecer una gran ventaja, pero esto nos permite ahorrarnos los ordenadores una vez que el sistema está instalado, lo que puede conllevar un gran ahorro de dinero y de espacio ya que estas cámaras puede llegar a entrar en la palma de la mano.

Smart Camera
Smart Cemera de la marca VC

Sí, lo sé, se os habrá encendido una gran alarma roja. ¿Es comparable la capacidad de procesamiento de un aparato que cabe en la palma de la mano con un ordenador? Yo en su día me preguntaba lo mismo, hasta que probé una, concretamente una como la de la foto y quedé como ya he dicho, muy satisfecho. Mirando un poco las especificaciones de esta cámara, que se encuentra en un punto intermedio en potencia, se puede ver que tiene una capacidad de procesamiento de 5.600 MIPS (Millones de instrucciones por segundo). Para que os hagáis una idea, un procesador ARM Cortex A8, muy utilizado en móviles y tablets, tiene 2.000 MIPS y un ordenador de hoy en día puede tener unos 20.000 MIPS por núcleo. Con este dato podríamos decir que en cuanto al procesamiento se encuentra a medio camino entre un móvil y un ordenador. Pero aquí no termina la cosa, hay que tener en cuenta que las instrucciones del procesador y las librerías de programación, que por lo gueneral son propias, están optimizadas para el procesamiento de imágenes (se trata en realidad de un DSP), lo que nos da una capacidad más que suficiente para la mayoría de aplicaciones industriales.

Pero no todo son ventajas. Al necesitar de librería propias para ser programadas, puede resultar un tanto engorroso el trabajar con ellas. Sin embargo los fabricantes cada vez intentan ponérnoslo más fácil, y suelen tener herramientas para facilitar el proceso. Algunos fabricantes incluso se han lanzado a la programación gráfica haciendo que el proceso se mucho más sencillo aunque menos optimizado como es lógico.

Otro tema a tener en cuenta de este tipo de cámaras, y que es muy importante, es que además de un puerto para enviar y recibir datos, suelen contar con entradas y salidas para señales digitales, ideales para procesos industriales. Se pueden conectar a un PLC o a un robot industrial de una forma muy sencilla, lo que simplifica mucho los sistemas de este tipo. La cámara que yo utilicé usaba un puerto ethernet para la comunicación de datos y dos entradas y 4 salidas a 24 VDC. 

Todo esto hace que las samart cameras sean perfectas para la industria, donde no se suele necesitar una gran capacidad de cómputo y las entradas y salidas son esenciales. Además existen multitud de configuraciones posibles. Distintas resoluciones, tipos de sensores, ópticas y procesadores. La gama es muy amplia, aunque de momento sólo las he visto en RGB y escala de grises, seguramente dentro de poco saldrán también en otros formatos como infrarrojas o térmicas.

sábado, 21 de junio de 2014

Bienvenidos a Mundo Visión Artificial

Hola a tod@s.
Lo primero de todo me voy a presentar. Hasta hace cuatro días era un estudiante de ingeniería de telecomunicaciones como tantos otros. Cuando acabé la carrera, me llamó el mundillo de la robótica y la visión artificial y decidí especializarme en este ámbito. Ahora tengo la suerte de trabajar en ello y rodearme a diario de cacharros electrónicos de última generación esperando ser programados.
En este pequeño espacio quiero aportar mi granito de arena para que se conozca este mundo de la visión artificial. Contar las últimas noticias, avances y curiosidades, además de algún que otro consejo para los que quieran seguir el mismo camino que yo. Espero que os guste y disfrutéis leyéndolo tanto como yo escribiéndolo. Me gustaría que esto fuese interactivo, así que no dudés en comentar.

Por si alguno no sabe todavía de qué va esto, os pongo un par de links y un video que espero os resuelvan vuestras dudas:

1. Wikipedia
2. JASVISIO


 


Bienvenidos!!