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.