Proceso cognitivo de imágenes y visión artificial

Recientemente los resultados de los avances en visión artificial o computer visión se están haciendo más patentes debido a la constante evolución de las aplicaciones que están teniendo las TICs en nuestra vida cotidiana. Conceptos de aplicación como Industria 4.0 o Internet de las Cosas, donde la integración del mundo virtual con el físico es un objetivo en sí mismo, y en los servicios que habitualmente utilizamos en Internet (Banca, comercio electrónico, redes sociales, eLearning, etc.) están acrecentando, aún más si cabe, el grado de aplicación que las tecnologías relacionadas pueden tener en el desarrollo de los mismos. En todos estos ámbitos, la visión artificial, no sólo tiene un futuro prometedor sino un campo de aplicación exponencial a medida que surjan nuevos servicios donde aplicarla.

Ejemplos como la conducción autónoma, reconocimiento, clasificación y control de calidad mediante drones, las cámaras de tráfico que reconocen diversos patrones de conducción, la realidad virtual o la reciente noticia sobre la intención de Amazon de patentar el pago a través de un selfie[1], muestran el amplio abanico de aplicación de la visión artificial.

Los distintos enfoques con los que se ha tratado el problema han ido desde la detección de objetos, la extracción de ciertas características visuales y su posterior asociación, el uso de clasificadores junto con técnicas de aprendizaje automático para la toma de decisiones, hasta la anotación automática de imágenes y la recomendación de etiquetas.

Este esfuerzo en el avance en visión artificial está, no sólo está centrado en la adquisición, procesado y análisis de imágenes (reconocimiento de objetos y toma de decisiones), sino que está avanzando hacía el entendimiento de imágenes, lo que supone un salto cualitativo en cuanto al enfoque del problema. El entendimiento de imágenes integra un proceso cognitivo[2] que abarca tareas que involucran, no solo reconocimiento, sino razonamiento sobre la imagen o el conjunto de imágenes tratadas y para poder conseguir esto los modelos necesitan comprender las interacciones y las relaciones entre los objetos que conforman dichas imágenes.

Para avanzar en este “entendimiento” de imágenes es necesario construir sistemas complejos que traten el problema en diferentes fases y para ello, entre otros, últimamente se está utilizando el concepto de Deep Learning que es una rama del aprendizaje automático e inteligencia artificial que intenta modelar abstracciones a alto nivel utilizando algoritmos que se procesan en varias capas estructuradas, a su vez, en arquitecturas compuestas de funciones sigmoides (no lineales) donde, con carácter general, se utiliza el entrenamiento no supervisado (fase I) junto con el entrenamiento supervisado (fase II). Mediante esta aproximación se busca el aprendizaje en distintos niveles de abstracción, de tal manera que en su conjunto proporcionen el entendimiento. El uso de funciones sigmoides permite resolver problemas más complejos no lineales. Las técnicas de Deep Learning se están estudiando desde hace tiempo y tiene entre sus orígenes en el Neocognitron[3] que es un modelo neuronal jerárquico multicapa propuesto por Kunihiko Fukushima en los años 80 del siglo XX. Es un modelo que se ha adaptado muy bien al reconocimiento de patrones y que actualmente con las mejoras en la computación y el incremento exponencial en los casos de uso para el entrenamiento de las redes, se sigue investigando sobre su uso en procesos cognitivos.

Existen distintas arquitecturas[4] para la implantación de una solución Deep Learning, entre las que podemos destacar, como la más común, las redes neuronales y, como primera aproximación, se utilizan las multicapa que modelan el proceso de aprendizaje mediante diversas funciones sigmoides en diferentes capas, donde la capa K calcula y genera la salida del vector hk utilizando la salida hk-1 de la capa anterior, comenzando con la entrada x = h0. En todas las capas, excepto en la de entrada, se realiza una operación denominada función de activación que tiene como uno de sus objetivos mantener el resultado del procesamiento de dicha capa en el rango estimado. Otras alternativas a las redes neuronales multicapa son los denominados autoencoders[5] que son redes neuronales, o mejor algoritmos de aprendizaje no supervisados, que poseen muy pocas capas, normalmente dos o tres. El proceso de aprendizaje de un autoencoder permite codificar una entrada x en alguna representación c(x) de tal manera que la entrada pueda ser reconstruida a partir de la representación, es decir, aplica Backpropagation.

Ilustración 1. Autoencoder

Ilustración 1. Autoencoder

El uso secuencial de autoencoders genera la arquitectura denominada Stacked Autoenconders donde al resultado obtenido en la capa oculta se le aplica otro autoencoder para autoaprendizaje y así sucesivamente, de tal manera que, aunque la arquitectura se complica, tiene como resultado un aprendizaje con características más complejas. Para el autoaprendizaje se suelen utilizar algoritmos voraces (greedy) que aplican heurísticas para elegir la opciones más óptimas en cada capa con el objetivo de obtener una solución global óptima (estos algoritmos también han obtenidos muy buenos resultados en secuenciación genómica donde se aplica teoría de grafos para volver a ensamblar (y secuenciar) las cadenas de ADN a partir de secuencias o trozos pequeños generados mediante procesos químicos[6]).

Otras arquitecturas son las denominadas Restricted Boltzman Machines[7] que son redes neuronales generativas cuyo aprendizaje incluye distribuciones de probabilidad a partir de un conjunto de entradas. Relacionadas con estas últimas están las Deep Belief Networks que son redes neuronales que también utilizan autoencoders, son generativas probabilísticas y están compuestas de múltiples cuyos pesos de las neuronas de las capas ocultas se inicializan de manera casual por patrones binarios.

Pero para que todas estas arquitecturas puedan ser probadas y conseguir sistemas de aprendizaje cognitivo sobre imágenes, se hace cada vez más necesario disponer de mecanismos robustos y consolidados de grandes conjuntos de datos para el aprendizaje supervisado. Un ejemplo de este tipo de sistemas es Visual Genome[8].

Visual Genome

Ilustración 2. Visual Genome

Visual Genoma es un conjunto de datos para el modelado de relaciones entre diversos objetos de imágenes. Almacena anotaciones de objetos, atributos y relaciones existentes en una imagen, para aprender estos modelos. Cada imagen posee alrededor de 21 objetos, 18 atributos y 18 relaciones de objetos.

La comprensión de escenas permitirá el desarrollo de aplicaciones tales como la búsqueda de imágenes, la respuesta a preguntas y las interacciones robóticas.

Visual Genoma consiste un conjunto de datos, una base de conocimientos y un esfuerzo continuo para conectar conceptos de imagen estructuradas con el lenguaje. Permite un estudio multi-perspectiva de una imagen, desde la información a nivel de píxeles como objetos, a las relaciones que requieren una inferencia y aún más, tareas cognitivas profundas como las respuestas a preguntas. Se trata de un amplio conjunto de datos para el entrenamiento y la evaluación comparativa de la nueva generación de modelos de visión por ordenador. Con Visual Genoma se espera que estos modelos permitan desarrollar una comprensión más amplia del mundo visual, complementando las capacidades de la computación para detectar objetos con habilidades para describir aquellos objetos y explicar sus interacciones y relaciones. Visual Genome es una gran representación formal del conocimiento para la comprensión visual y un conjunto de descriptores para trasladar conceptos visuales al lenguaje.

El conjunto de datos (dataset) de Visual Genome está formado por siete componentes principales: descripciones de región, objetos, atributos, relaciones, grafos de regiones, grafos de escenas y pares de preguntas-respuestas. Para avanzar en la investigación sobre la comprensión completa de imágenes, el primer paso es la recolección de descripciones y preguntas-respuestas que son textos sin ninguna restricción en cuanto a longitud o vocabularios. Posteriormente, se extraen objetos, atributos y relaciones de las descripciones. Relacionando los objetos, los atributos y las relaciones, se construyen grafos de escenas que representan una descripción formal de una imagen. Este trabajo se realiza a través de una plataforma de crowdsourcing diseñada para alimentar la base de datos. La plataforma escogida para esto es Amazon Mechanical Turk[9] (AMT) que es un sistema comercial orientada a trabajos simples con precio unitario que requieren de intervención humana donde hay solicitantes o trabajadores y proveedores o vendedores, en este caso Visual Genome. De esta manera, se está alimentando de manera continua su base de datos, completando la información de cada imagen.

Visual Genome II.jpg

Ilustración 3. Visual Genome ayudará a desarrollar sistemas de aprendizaje cognitivo

Visual Genome es una evolución de un primer proyecto denominado ImageNet[10] que es una gran base de datos jerárquica de imágenes (más de un millón actualmente) etiquetadas acorde a su contenido, de tal manera que cada nodo de la jerarquía está representado por cientos o miles de imágenes. Con esta base de datos se celebra cada año un concurso sobre reconocimiento visual de imágenes a gran escala y los concursantes suelen utilizar, como ya podemos deducir, redes neuronales en Deep Learning[11].

Entre los sistemas similares a Visual Genome encontramos a Microsoft Common Objects in Contex[12] (COCO) que es una base de datos para reconocimiento de objetos dentro de imágenes. Google[13][14], Facebook[15] y otros también disponen de iniciativas similares, tal es el caso de MetaMind[16] que trabaja en el reconocimiento automático de imágenes utilizando machine learning y Big Data para conseguir descripciones mediante lenguaje natural del mundo físico. Otro ejemplo, posiblemente más cercano, es el caso de Snapchat que utiliza Deep Learning[17] con un carácter más lúdico. Todo esto da una idea de la importancia de estas tecnologías en la capacidad para generar los productos y servicios que están por venir.

 

Links relacionados

[1] http://www.techtimes.com/articles/141001/20160315/smile-amazon-wants-patent-for-pay-by-selfie-technology.htm

[2] Proceso cognitivo: acción mental o proceso de adquirir conocimiento y entendimiento a través del pensamiento, la experiencia y los sentidos. Abarca procesos tales como el conocimiento, la atención, la memoria, el juicio y la evaluación, el razonamiento, la resolución de problemas y la toma de decisiones, la comprensión y producción del lenguaje, etc. Los procesos cognitivos utilizan el conocimiento existente y generan nuevos conocimientos.

[3] http://vision.stanford.edu/teaching/cs131_fall1415/lectures/Fukushima1988.pdf

[4] http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf

[5] http://ufldl.stanford.edu/tutorial/unsupervised/Autoencoders/

[6] http://dspace.unia.es/handle/10334/1683

[7] http://blog.echen.me/2011/07/18/introduction-to-restricted-boltzmann-machines/

[8] https://visualgenome.org

[9] https://www.mturk.com

[10] http://image-net.org/

[11] http://www.cs.toronto.edu/~hinton/

[12] http://mscoco.org/

[13] http://googleresearch.blogspot.com.es/2014/11/a-picture-is-worth-thousand-coherent.html

[14] https://www.youtube.com/watch?v=QSaZGT4-6EY

[15] https://www.technologyreview.com/s/543131/facebook-app-can-answer-basic-questions-about-whats-in-photos/

[16] http://metamind.io/

[17] http://venturebeat.com/2015/04/08/snapchat-research/

Autor: Miguel Hormigo Ruiz

Las opiniones vertidas por el autor son enteramente suyas y no siempre representan la opinión de GMV
The author’s views are entirely his own and may not reflect the views of GMV
Share

    4 opiniones en “Proceso cognitivo de imágenes y visión artificial

    1. Rubén

      Yo creo que a los sistemas de visión artificial todavía les queda mucho camino por avanzar, muchas más profesiones que se pueden beneficiar de una herramienta cuyo sensor y memoria permite hacer un seguimiento exhaustivo.

    2. Eva

      Me dedico al sector de la construcción y me planteo utilizar sistemas de visión artificial. Sí es cierto que queda mucho por llegar Rubén, pero también hemos avanzado muchísimo si ponemos la vista atrás. El software de visión me apasiona, gran post!

    3. Laura

      ¡Sí! Como decís los software de visión artificial hoy día se utilizan en muchos campos de trabajo. Conozco que se utilizan para el reconocimiento óptico de caracteres, para la seguridad vial, procesos de producción, detectar conducciones agresivas a velocidad que exceden el límite permitido, y muchos más ámbitos muy interesantes. Si necesitáis más información al respecto o de alguien que necesite algún producto relacionado con la visión artificial recomiendo Infaimon. Son muy profesionales. Gracias por el post y un saludo para todos.

    Deja un comentario

    Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

      I accept the privacy policy Acepto la Política de Privacidad

    Basic Data-Protection information:

    Data-protection supervisor: GMV Innovating Solutions SL
    Purpose: Answer questions, respond to user complaints and recommendations, receive job applicants resumes and career information.
    Legitimation: Consent of data subject
    Addresses: Grupo GMV companies
    Rights: Access, rectify and cancel data plus other rights, as explained in additional information
    Additional information: You can check out the additional and detailed data-protection information on our website:Privacy Policy

    Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

    WP-SpamFree by Pole Position Marketing

    11.370 Total Views