Una de las líneas de investigación en Google es el de la visión por computadora. Es claro que sería sensacional poder hacer búsquedas de fotos por tópicos, u objetos que se encuentren en las imágenes. Actualmente cuando buscamos una imagen, Google presenta las que tiene en su indexador por nombre o características, cosa que tuvo que alimentar un ser humano. Nos llega la noticia de que Google Research ha dado detalles de una nueva técnica de visión automatizada que podría traer avances de reconocimiento visual a las computadoras caseras e incluso, a los dispositivos móviles. Dicen ya reconocer 100 mil diferentes objetos en una foto en un par de minutos, y no se habla de que trabaje todo esto usando una red neuronal profunda (DNN por sus siglas en inglés).
En muchos temas de investigación hay un enfoque ingenieril para resolver los problemas, que es el tratar de detectar una señal usando técnicas conocidas. Hay un enfoque más, el de software, que trata de hallar las soluciones construyendo sistemas que se parecen más a como los seres humanos hacen las cosas. Recientemente parece ser que el enfoque humano está a la alta, usando DNN para aprender a reconocer las características importantes de un video.
En este caso, las mejoras parecen hallarse en técnicas tradicionales de procesamiento digital de imágenes, aplicando filtros de convolución a una imagen para tratar de hallar los objetos de interés. Un filtro de convolución es una matriz de 3×3, 5×5, 7×7 (en general impar) en donde se van poniendo los valores de los pixeles y se les aplican sumas o restas a dichos pixeles en la matriz. En ocasiones se saca el promedio, etcétera. Depende de lo que queremos que haga el filtro, son las operaciones sobre la matrix de pixeles, que se aplica en toda la imagen.
El problema con los filtros de convolución, para ser usados en reconocimiento de imágenes, es que requieren al menos un objeto reconocible a priori, es decir, si buscamos perros en una foto, debe haber un perro en la imagen. Dado que el tiempo para aplicar un filtro de convolución puede ser costos en términos de procesamiento, muchos enfoques han dedidido usar este tipo de métodos solamente para un pequeño número de categorías de objetos.
Este año, en un certamen sobre visión por computadora, el primer lugar al mejor artículo científico fue para los trabajadores de Google, Tom Dean, Mark Ruzon, Mark Segal, Jonathon Shlens, Sudheendra Vijayanarasimhan yJay Yagnik, quienes han descrito la tecnología para acelerar las cosas usando miles de categorías de objetos y en donde los resultados se pueden dar en un par de minutos.
La técnica usada es complicada, pero en esencia hace uso de tablas de hash para evitar tener que calcular todo a cada momento. Algo que llaman locality sensitive hashing se utiliza en cada resultado de la convolución, esto es, en lugar de aplicar la matriz y hacer los cálculos (en general sumas), los pixeles pasan por la tabla de hash y se comparan con una tabla de resultados. Usan además un sistema de jerarquías, de ranking, que indica cuál es el filtro para la mejor evaluación del objeto que se trata de percibir. Se usa convolución ordinal en lugar de lineal y esto además, parece dar mejores resultados.
De acuerdo a los investigadores, la aceleración lograda es de 20 mil veces con respecto a las técnicas tradicionales, lo cual es poco menos que sorprendente. El método se probó con detectores de 100 mil objetos, basados en un modelo de partes deformables, en donde se usó un millón de filtros, utilizando escalamiento de múltiple resolución. La imagen analizada tardó menos de 20 segundos en una máquina con 20 GB de RAM. Sin duda asombroso. El artículo indica que un ser humano, en promedio, puede reconocer cerca de 10 mil objetos categorizados. Así pues, podría ser que el reconocimiento de objetos de manera visual esté pronto en nuestras computadoras caseras.
Referencias:
Artículo sobre los avances en visión por computadora y reconocimiento