Aunque Computer Vision (CV) ha explotado recientemente (el momento decisivo ocurrió en 2012 cuando AlexNet ganó ImageNet ), ciertamente no es un campo científico nuevo.
Los científicos informáticos de todo el mundo han estado tratando de encontrar formas de hacer que las máquinas extraigan el significado de los datos visuales durante aproximadamente 60 años, y la historia de la visión artificial, de la que la mayoría de la gente no sabe mucho, es profundamente fascinante.
En este artículo, intentaré arrojar algo de luz sobre cómo surgieron los sistemas CV modernos, alimentados principalmente por redes neuronales convolucionales.
Comenzaré con un trabajo que salió a fines de la década de 1950 y no tiene nada que ver con la ingeniería de software o las pruebas de software .
Uno de los artículos más influyentes en Computer Vision fue publicado por dos neurofisiólogos, David Hubel y Torsten Wiesel, en 1959. Su publicación, titulada " Campos receptivos de neuronas individuales en la corteza estriada del gato ", describió las propiedades de respuesta central de las neuronas corticales visuales como bien cómo la experiencia visual de un gato da forma a su arquitectura cortical.
El dúo realizó algunos experimentos bastante elaborados. Colocaron electrodos en el área de la corteza visual primaria del cerebro de un gato anestesiado y observaron, o al menos intentaron, la actividad neuronal en esa región mientras mostraban al animal varias imágenes. Sus primeros esfuerzos fueron infructuosos; no pudieron hacer que las células nerviosas respondieran a nada.
Sin embargo, unos meses después de la investigación, notaron, de forma bastante accidental, que una neurona se disparó mientras deslizaban una nueva diapositiva en el proyector. ¡Este fue un accidente afortunado! Después de cierta confusión inicial, Hubel y Wiesel se dieron cuenta de que lo que excitaba a la neurona era el movimiento de la línea creada por la sombra del borde afilado del portaobjetos de vidrio.
Los investigadores establecieron, a través de su experimentación, que existen neuronas simples y complejas en la corteza visual primaria y que el procesamiento visual siempre comienza con estructuras simples como los bordes orientados.
¿Suena familiar? Bueno, sí, este es esencialmente el principio básico detrás del aprendizaje profundo.
El siguiente hito en la historia de CV fue la invención del primer escáner de imágenes digitales.
En 1959, Russell Kirsch y sus colegas desarrollaron un aparato que permitía transformar imágenes en cuadrículas de números, el lenguaje binario que las máquinas podían entender. Y es gracias a su trabajo que ahora podemos procesar imágenes digitales de varias maneras.
Una de las primeras fotos escaneadas digitalmente fue la imagen del hijo pequeño de Russell . Era solo una foto granulada de 5 cm por 5 cm capturada como 30,976 píxeles (matriz de 176x176), pero se ha vuelto tan increíblemente famosa que la imagen original ahora está almacenada en el Museo de Arte de Portland.
A continuación, hablemos de " Percepción mecánica de sólidos tridimensionales" de Lawrence Roberts, que se publicó en 1963 y es ampliamente considerado como uno de los precursores de la visión artificial moderna.
En ese Ph.D. tesis, Larry describió el proceso de obtener información 3D sobre objetos sólidos a partir de fotografías 2D. Básicamente, redujo el mundo visual a formas geométricas simples.
El objetivo del programa que desarrolló y describió en el documento era procesar fotografías 2D en dibujos lineales, luego construir representaciones 3D a partir de esas líneas y, finalmente, mostrar estructuras 3D de objetos con todas las líneas ocultas eliminadas.
Larry escribió que los procesos de construcción de 2D a 3D, seguidos de la visualización de 3D a 2D, eran un buen punto de partida para futuras investigaciones de sistemas 3D asistidos por computadora. Tenía enfáticamente razón.
Cabe señalar que Lawrence no se quedó en Computer Vision por mucho tiempo. En cambio, pasó a unirse a DARPA y ahora es conocido como uno de los inventores de Internet.
La década de 1960 fue cuando la IA se convirtió en una disciplina académica y algunos de los investigadores, extremadamente optimistas sobre el futuro del campo, creían que no tomaría más de 25 años crear una computadora tan inteligente como un ser humano. Este fue el período en el que Seymour Papert, profesor del laboratorio de IA del MIT, decidió lanzar el Proyecto Summer Vision y resolver, en pocos meses, el problema de la visión artificial.
Él era de la opinión de que un pequeño grupo de estudiantes del MIT tenía la capacidad de desarrollar una parte significativa de un sistema visual en un verano. Los estudiantes, coordinados por el mismo Seymour y Gerald Sussman, debían diseñar una plataforma que pudiera realizar, automáticamente, la segmentación de fondo/primer plano y extraer objetos no superpuestos de imágenes del mundo real.
El proyecto no fue un éxito. Cincuenta años después, aún no estamos cerca de resolver la visión artificial. Sin embargo, ese proyecto fue, según muchos, el nacimiento oficial de CV como campo científico.
En 1982, David Marr, un neurocientífico británico, publicó otro artículo influyente: " Visión: una investigación computacional sobre la representación humana y el procesamiento de la información visual ".
Sobre la base de las ideas de Hubel y Wiesel (quienes descubrieron que el procesamiento de la visión no comienza con objetos holísticos), David nos dio la siguiente idea importante: estableció que la visión es jerárquica. La función principal del sistema de visión, argumentó, es crear representaciones en 3D del entorno para que podamos interactuar con él.
Introdujo un marco para la visión donde los algoritmos de bajo nivel que detectan bordes, curvas, esquinas, etc., se utilizan como peldaños hacia una comprensión de alto nivel de los datos visuales.
El marco representacional de David Marr para la visión incluye:
El trabajo de David Marr fue innovador en ese momento, pero era muy abstracto y de alto nivel. No contenía ninguna información sobre los tipos de modelos matemáticos que podrían usarse en un sistema visual artificial, ni mencionaba ningún tipo de proceso de aprendizaje.
Casi al mismo tiempo, un científico informático japonés, Kunihiko Fukushima, también profundamente inspirado por Hubel y Wiesel, construyó una red artificial autoorganizada de células simples y complejas que podían reconocer patrones y no se veía afectada por los cambios de posición. La red, Neocognitron , incluía varias capas convolucionales cuyos campos receptivos (típicamente rectangulares) tenían vectores de peso (conocidos como filtros).
La función de estos filtros era deslizarse a través de conjuntos 2D de valores de entrada (como píxeles de imagen) y, después de realizar ciertos cálculos, producir eventos de activación (conjuntos 2D) que se utilizarían como entradas para capas posteriores de la red.
Podría decirse que el Neocognitron de Fukushima es la primera red neuronal que merece el apodo profundo; es un abuelo de los convenios de hoy.
Unos años más tarde, en 1989, un joven científico francés, Yann LeCun, aplicó un algoritmo de aprendizaje de estilo backprop a la arquitectura de red neuronal convolucional de Fukushima. Después de trabajar en el proyecto durante algunos años, LeCun lanzó LeNet-5 , la primera convnet moderna que introdujo algunos de los ingredientes esenciales que todavía usamos en las CNN en la actualidad.
Como Fukushima antes que él, LeCun decidió aplicar su invento al reconocimiento de caracteres e incluso lanzó un producto comercial para leer códigos postales .
Además de eso, su trabajo resultó en la creación del conjunto de datos MNIST de dígitos escritos a mano, quizás el conjunto de datos de referencia más famoso en el aprendizaje automático.
En 1997, un profesor de Berkeley llamado Jitendra Malik (junto con su alumno Jianbo Shi) publicó un artículo en el que describía sus intentos de abordar la agrupación perceptiva .
Los investigadores intentaron hacer que las máquinas dividieran las imágenes en partes sensibles (para determinar automáticamente qué píxeles de una imagen pertenecen juntos y distinguir los objetos de su entorno) utilizando un algoritmo de teoría de grafos.
No llegaron muy lejos; el problema de la agrupación perceptiva sigue siendo algo con lo que luchan los expertos en CV.
A fines de la década de 1990, Computer Vision, como campo, cambió en gran medida su enfoque.
Alrededor de 1999, muchos investigadores dejaron de intentar reconstruir objetos mediante la creación de modelos 3D de ellos (el camino propuesto por Marr) y, en cambio, dirigieron sus esfuerzos hacia el reconocimiento de objetos basado en características. El trabajo de David Lowe " Reconocimiento de objetos a partir de características locales invariantes a escala " fue particularmente indicativo de esto.
El artículo describe un sistema de reconocimiento visual que usa características locales que son invariantes a la rotación, ubicación y, parcialmente, cambios en la iluminación. Estas características, según Lowe, son algo similares a las propiedades de las neuronas que se encuentran en la corteza temporal inferior que están involucradas en los procesos de detección de objetos en la visión de los primates.
Poco después, en 2001, Paul Viola y Michael Jones introdujeron el primer marco de detección de rostros que funcionaba en tiempo real. Aunque no se basa en el aprendizaje profundo, el algoritmo todavía tenía un sabor de aprendizaje profundo, ya que, mientras procesaba imágenes, aprendió qué características (características muy simples, similares a las de Haar ) podrían ayudar a localizar rostros.
El detector de rostros Viola/Jones todavía se usa ampliamente. Es un clasificador binario fuerte que se construye a partir de varios clasificadores débiles; durante la fase de aprendizaje, que requiere bastante tiempo en este caso, la cascada de clasificadores débiles se entrena utilizando Adaboost .
Para encontrar un objeto de interés (cara), el modelo divide las imágenes de entrada en parches rectangulares y las envía todas a la cascada de detectores débiles. Si un parche supera todas las etapas de la cascada, se clasifica como positivo; de lo contrario, el algoritmo lo rechaza de inmediato. Este proceso se repite muchas veces a varias escalas.
Cinco años después de la publicación del artículo, Fujitsu lanzó una cámara con una función de detección de rostros en tiempo real que se basaba en el algoritmo Viola/Jones.
A medida que el campo de la visión por computadora seguía avanzando, la comunidad sintió una gran necesidad de un conjunto de datos de imágenes de referencia y métricas de evaluación estándar para comparar el rendimiento de sus modelos.
En 2006, se lanzó el proyecto Pascal VOC. Proporcionó un conjunto de datos estandarizados para la clasificación de objetos, así como un conjunto de herramientas para acceder a dicho conjunto de datos y anotaciones. Los fundadores también realizaron una competencia anual, de 2006 a 2012, que permitió evaluar el desempeño de diferentes métodos para el reconocimiento de clases de objetos.
En 2009, Pedro Felzenszwalb, David McAllester y Deva Ramanan desarrollaron otro importante modelo basado en características: el modelo de piezas deformables .
Esencialmente, descompuso objetos en colecciones de partes (basado en modelos pictóricos introducidos por Fischler y Elschlager en la década de 1970), impuso un conjunto de restricciones geométricas entre ellos y modeló centros de objetos potenciales que se tomaron como variables latentes.
DPM mostró un gran rendimiento en tareas de detección de objetos (donde se usaban cuadros delimitadores para localizar objetos) y superó la comparación de plantillas y otros métodos de detección de objetos que eran populares en ese momento.
La competencia de reconocimiento visual a gran escala de ImageNet (ILSVRC), de la que probablemente haya oído hablar, comenzó en 2010. Siguiendo los pasos de PASCAL VOC, también se lleva a cabo anualmente e incluye un taller posterior a la competencia donde los participantes discuten lo que han aprendido de la entradas más innovadoras.
A diferencia de Pascal VOC que solo tenía 20 categorías de objetos, el conjunto de datos de ImageNet contiene más de un millón de imágenes, limpiadas manualmente, en 1k de clases de objetos.
Desde su inicio, el desafío ImageNet se ha convertido en un punto de referencia en la clasificación de categorías de objetos y la detección de objetos en una gran cantidad de categorías de objetos.
En 2010 y 2011, la tasa de error del ILSVRC en la clasificación de imágenes rondaba el 26 %. Pero en 2012, un equipo de la Universidad de Toronto ingresó a la competencia un modelo de red neuronal convolucional (AlexNet) y eso lo cambió todo. El modelo, similar en su arquitectura a LeNet-5 de Yann LeCun, logró una tasa de error del 16,4%.
Este fue un momento decisivo para las CNN.
En los años siguientes, las tasas de error en la clasificación de imágenes en ILSVRC se redujeron a un pequeño porcentaje y las ganadoras, desde 2012, siempre han sido las redes neuronales convolucionales.
Como mencioné anteriormente, las redes neuronales convolucionales existen desde la década de 1980. Entonces, ¿por qué les llevó tanto tiempo volverse populares?
Bueno, hay tres factores a los que debemos la actual explosión de CNN:
Conclusión
A pesar del progreso reciente, que ha sido impresionante, todavía no estamos ni siquiera cerca de resolver la visión artificial . Sin embargo, ya existen varias instituciones y empresas de atención médica que han encontrado formas de aplicar sistemas CV, impulsados por CNN, a problemas del mundo real. Y es probable que esta tendencia no se detenga pronto.