En este post contamos con la opinión de dos expertos sobre la temática que nos expondrán su punto de vista sobre la cuestión que planteamos.

Introducción

Ya lo fuimos comentando en anteriores posts, en los últimos tiempos la aplicación de Inteligencia artificial y Deep Learning ha irrumpido con fuerza, aunque desde hace décadas que ya se trabajaba en modelos matemáticos centrados en IA. Sin embargo, es ahora, con la ingente cantidad de datos existente y con la tecnología adecuada cuando se puede poner en práctica.

Estado actual

En este sentido, debido al enorme repositorio de imágenes que es internet, la facilidad que tenemos actualmente de capturar imágenes y la posibilidad de analizar todos estos datos gracias a la potencia de cálculo y procesamiento en los últimos años, ha hecho que el uso del machine learning y específicamente del Deep Learning aplicado al análisis de imágenes, se haya visto multiplicado exponencialmente.

Toda esta cantidad de fotos es necesaria para poner en práctica estas ramas de la inteligencia artificial, algo de lo que antiguamente se carecía.

Este avance se sustenta sobre los digamos, algoritmos «clásicos» de visión artificial, entre los que podríamos mencionar las operaciones de thresholding o umbralización, transformaciones morfológicas como la diltación o erosionado, detección de bordes…. los cuales parece que ya no tienen cabida actualmente en los desarrollos industriales. Sin embargo, yo opino lo contrario, ya que cada caso o cada proyecto de visión artificial es diferente y tiene su propia solución. No siempre lo más caro o lo más moderno es la solución óptima que buscamos.

Desarrollo de un proyecto industrial de visión artificial

Como hemos comentado brevemente, alguno de los problemas de la IA, y más en el caso del Deep Learning, es la necesidad de una enorme cantidad de datos para que el sistema funcione correctamente. Y es algo que no siempre es posible dentro de un proyecto a escala industrial. Por otro lado, es necesario un etiquetado de algún modo, un entrenamiento del modelo por parte de los trabajadores… Pero aunque tengamos todas estas posibilidades, quizás con unas líneas de código seamos capaces de analizar las imágenes en un tiempo mínimo de procesado o tener una adecuada elección de la iluminación que nos permita ahorrar tiempo en el procesado posterior.

Si nuestro objetivo es la detección de cualquier tipo de defecto dentro de un abanico muy amplio de posibilidades que abarquen colores, formas o tamaños, la aplicación de IA será lo más adecuado, si por el contrario, nuestro objetivo (simplificando mucho) es la detección de manchas oscuras sobre un elemento de color claro… ¿es necesario todo un sistema basado en Deep Learning?

Como resumen, mi punto de vista es que todavía hay muchos casos en la aplicación de la visión artificial en la industria en donde no tiene excesivo sentido usar Inteligencia Artificial en cualquiera de sus formas, pero quizás esté equivocado.

Autor Manuel Álvarez

Deep Learning

El Deep Learning es un término dentro del que se enmarcan diversas técnicas de aprendizaje automático (Machine Learning) basados en redes neuronales. Es decir, el Deep Learning es una parte del Machine Learning que, a su vez, está incluido en el ámbito de la inteligencia artificial.

Origen del Deep Learning

Las redes neuronales las conocí hace más de 30 años cuando estaba realizando mi tesis doctoral en el laboratorio de Inteligencia Artificial de la Escuela Técnica Superior de Ingenieros de Telecomunicación en la Universidad Politécnica de Madrid. Aunque la idea de una red neuronal no era nueva (Fank Rosenblattt ya había construido el Perceptron, un prototipo de red neuronal, en 1958) las bases de funcionamiento de las redes neuronales utilizadas hoy en día en Deep Learning no se establecieron hasta finales de los 80. Por aquel entonces se hablaba de sus posibilidades desde un punto de vista más teórico que práctico, ya que en esa época los ordenadores no tenían la capacidad de procesamiento que necesitaba para su empleo en entornos reales.

Por entonces, la inteligencia artificial (IA) estaba más enfocada a temas de carácter metafísico como la forma de representar el conocimiento humano mediante estructuras de datos, o cómo dividir un problema complejo en partes que pudieran resolverse por agentes capaces de cooperar con un objetivo común. Estaba todo por hacer y había que echarle mucha imaginación debido a las limitaciones técnicas del momento. Así, surgió un amplio ecosistema de algoritmos y técnicas de todo tipo, como la lógica difusa, los algoritmos de búsqueda o los genéticos, las redes bayesianas, los modelos causales, los sistemas basados en conocimiento, etc.

Sin embargo, y aunque todas estas técnicas de IA históricamente han estado conviviendo (aunque cada una sobresalía dentro de su campo de especialización), desde hace unos años las redes neuronales parecen haber eclipsado a la mayoría. ¿El motivo? En mi modesta opinión, porque para resolver un problema no se requiere especificar al sistema cómo hacerlo, lo que hace que se obtengan resultados de forma más rápida. Lo único que hay que preocuparse es de disponer una red neuronal adecuada y, sobre todo, de miles y miles de ejemplos de aprendizaje. De esa formal la red ajusta los pesos de las conexiones entre neuronas para que la probabilidad de realizar una deducción correcta sea la más alta. Esa es la diferencia con las técnicas de inteligencia artificial clásicas, que utilizan razonamientos lógicos o matemáticos específicos a un dominio de aplicación y se pueden traducir en reglas o algoritmos que nosotros entendemos y una máquina puede ejecutar para obtener los resultados esperados. En las redes neuronales sabemos cómo funciona la red pero no podemos explicar de una manera racional por qué es capaz de identificar, por ejemplo, un determinado objeto en una imagen. Simplemente, a base de fuerza bruta (miles de ejemplos) el algoritmo de aprendizaje ha encontrado la combinación más adecuada de pesos entre las conexiones de las neuronas que dan los mejores resultados.

Redes neuronales en aplicaciones de visión artificial

La visión artificial es una de las áreas más afectadas por la “tiranía” de las redes neuronales, donde su uso parece que ha hecho desaparecer a ese otro tipo de técnicas basadas en modelos matemáticos que, de forma razonada y en escenarios concretos, podrían hacer lo mismo, incluso de forma más eficiente. Sin embargo, las técnicas tradicionales todavía siguen siendo de gran utilidad durante las labores de procesamiento de imágenes previas al análisis que se haga posteriormente utilizando Deep Learning. Sin ellas, las redes neuronales no podrían realizar correctamente su trabajo, por lo que ambas tecnologías están abocadas a convivir. Así, por ejemplo, las siguientes técnicas tradicionales siguen estando plenamente vigentes:

  • Operaciones básicas de manejo de imágenes, como las que filtran rangos de colores que ocultan todo aquello que no sea de interés; o las de recorte, que extraen la parte de la imagen sobre la que se deben aplicar técnicas como, por ejemplo, la de reconocimiento de sonrisas, que se aplica una vez recortada la cara de la imagen.
  • Los filtros basados en umbral, los lineales y los morfológicos también son muy útiles para enfatizan aquellas áreas en la que posteriormente se tenga que hacer uso de otras técnicas más específicas (ya sean tradicionales, o no). Creo recordar que la iluminación fue uno de los temas en los que se enfocaron las preguntas posteriores a la presentación. Precisamente, dentro del primer grupo de filtros están los de umbral adaptativo, que permiten paliar los problemas provocados por iluminaciones que no sean homogéneas, en las que haya zonas de sombras o alto contraste que impida un correcto análisis de la imagen.
  • Las técnicas de identificación de contornos o esquinas son muy prácticos en entornos industriales en los que se trabaja con piezas con formas geométricas.
  • Las técnicas de uso de plantillas o patrones (solas o en combinación con las básicas de sustracción de imágenes) permiten la realización de controles de calidad mediante la comparación del producto obtenido en el proceso de fabricación con un modelo.

Estas técnicas son solo algunas de las muchas que existen, la mayoría de las cuales están ya implementadas en librerías como OpenCV que ocultan toda su complejidad. Por ejemplo, y como curiosidad, para el reconocimiento de caras esta librería no utiliza redes neuronales sino un modelo de clasificadores en cascada basados en características de Haar, donde la labor de aprendizaje corre a cargo de un algoritmo estadístico (AdaBoost).

Como veis, la convivencia de las técnicas tradicionales y el Deep Learning no solo es posible sino necesario para obtener los mejores resultados. Únicamente hay que saber en qué ámbito de aplicación y/o en qué parte del proceso de visión artificial hay que emplearlas.

Autor : Tomás Domínguez