Introducción

Para culminar con la asignatura, será necesario crear una herramienta interactiva que desarrolle un proyecto de aula para aplicar los conocimientos adquiridos en solucionar un problema de ingeniería. Así, trataremos de manera concisa la visión y la inteligencia artificial como ejemplo de aplicación.

Reflexionemos en lo siguiente: ¿qué tan importante es el desarrollo tecnológico en las labores o profesiones en donde se aplica el área del análisis de imágenes?


Haga clic aquí para conocer la respuesta.

En esta unidad, también se tratarán las imágenes en los videos y la forma de clasificar los colores y características morfológicas para realizar el seguimiento del color en los diferentes cuadros del video, se introduce este tema porque es útil para el desarrollo de aplicaciones que tengan en su estructura la visión artificial y el aprendizaje profundo, ya que manipula las matrices tridimensionales y aplica diferentes filtros y algoritmos para realizar las aplicaciones.

Le invitamos a conocer algunos de los comandos de Matlab® que le ayudarán en el desarrollo de las actividades planteadas en esta unidad.

Propósitos de aprendizaje

Propósito general

Aplicar los conocimientos adquiridos en el desarrollo de proyectos donde se utilizan los datos procesados para comprobar la transferencia del conocimiento a soluciones de problemas de ingeniería.

Propósitos específicos

  • Experimentar con videos el seguimiento de objetos aplicando los conocimientos adquiridos en la asignatura.
  • Argumentar el uso de los resultados del procesamiento de imágenes en aplicaciones como la visión artificial con redes neuronales convolucionales RNC.

Seguimiento de objetos en video

Continuando con la secuencia para el procesamiento de imágenes se realizarán aplicaciones que aluden al “después de aprender”, en donde buscamos aplicar o transferir el aprendizaje desarrollado en las unidades anteriores a contextos reales. Para realizar el seguimiento de objetos en videos, es necesario aplicar varios de los temas tratados en la asignatura como:

  • Captura videos e imágenes con dispositivos.
  • Cargar y leer imágenes que están archivadas en los medios de almacenamiento.
  • Cambiar el tamaño de las imágenes.
  • Convertir una imagen en color RGB a tonos de grises.
  • Separar las matrices tridimensionales en los componentes R, G y B.
  • Convertir las imágenes en datos binarios.
  • Aplicar filtros.
  • Utilizar los histogramas.
  • Recortar parte de la imagen.
  • Realizar operaciones con pixeles y matrices.
  • Dilatación y erosión con estructuras morfológicas.
  • Calcular centroides de objetos en las imágenes.

Seguimiento de objetos en video

Obtención del video

Un video es la secuencia de cuadros (frame) con imágenes que se muestran a la velocidad apropiada para que el ojo humano tenga la sensación de movimiento. En la unidad temática de Mejoramiento en el espacio y la frecuencia de imágenes, se capturaron videos de objetos en movimiento (conejo, pulgón y conejo-pulgón). De estos videos se extraerán los cuadros o imágenes que se utilizarán en esta sección.

Actividad de aprendizaje

Actividad de Aprendizaje

Le invitamos a llevar a cabo dos actividades: en la primera podrá realizar la extracción de imágenes de un video y en la segunda podrá conocer el algoritmo y el código para poder separar el color rojo de la imagen.

Seguimiento de objetos en video

Procesamiento de imágenes en video

Para realizar el procesamiento de las imágenes del video se necesita definir el objeto o el color a seguir en los diferentes cuadros que posee el video. En los siguientes algoritmos se explica cómo hacerlo, haga clic en cada enlace:


Luego de conocer los algoritmos, es importante que revise el código para procesar imágenes en video y realizar una actividad.


Actividad de aprendizaje

Actividad de Aprendizaje

Para continuar con el estudio de esta unidad, le invitamos a realizar dos actividades: la primera sobre comandos y funciones de Matlab y en la segunda podrá aplicar los conceptos de procesamiento de imágenes en video.

Introducción Visión Artificial con Redes Neuronales Convolucionales RNC

Las redes neuronales están rompiendo la nueva barrera tecnológica y son el soporte para la visión artificial, estas redes han aprendido a clasificar las imágenes en categorías como se muestra en la figura de Red neuronal convolucional en visión artificial.

La interpretación y comprensión de lo que se aprende en las redes neuronales y de aprendizaje automático supervisado es extenso, pero, para simplificar su explicación, se relaciona con la regresión lineal la cual asume una relación de línea recta entre una variable de entrada x y una variable de salida y, x se multiplica por la pendiente de la recta m, y el punto por donde la línea corta al eje y es la constante b. Esta expresión se define como la ecuación de la línea recta:

y = mx + b

Conozca la interpretación de la Red neuronal convolucional en visión artificial en la siguiente animación.


Recuerde que en esta asignatura se utilizarán las redes neuronales convolucionales como ejemplo de aplicación del procesamiento de imágenes, para profundizar en esta temática le sugerimos revisar los siguientes libros: «Inteligencia artificial una nueva síntesis» y «Visión por computador: imágenes digitales y aplicaciones».

Introducción Visión Artificial con Redes Neuronales Convolucionales RNC

La red retropropagación (Backpropagation)

El aprendizaje de las máquinas utiliza diferentes herramientas para identificar las características morfológicas esenciales automáticamente. Para que esta operación sea automática se necesita de algoritmos y configuraciones que permitan aprender a reconocer las características de las imágenes, la propagación hacia atrás o backpropagation (en inglés) ayuda con esta labor.

Para las letras “X” y “O” se necesita identificar con un nombre preferiblemente corto los archivos en donde estarán (rotulado) la mayor cantidad de imágenes que contengan estas letras, cada imagen procesada en la RNC tendrá un voto. La cantidad de errores en la votación y el error indicarán qué tan buenas son las características y los pesos. Es permitido en el entrenamiento adaptar los pesos y el voto para ajustar el error cuando se detectan las características de las imágenes.

El aprendizaje profundo realiza también estos ajustes de forma automática, por esta razón, en el proceso de aprendizaje se generan varias interacciones para que se reduzca el error de detección y seleccionar la base de datos que tenga el mejor desempeño.

El consejo es tener el número suficiente de imágenes de letras, manos o imágenes de interés guardadas en archivos independientes que estén identificados con un nombre, etiqueta o rótulo. Como se indica, es preferible que los nombres de los archivos sean cortos y de fácil reconocimiento para que el aprendizaje deseche los errores y deje las características más representativas y, estas serán las que la RNC utilizará para hacer más preciso la clasificación de las imágenes.

Recuerde que a mayor cantidad de imágenes el proceso de entrenamiento de la red será más demorado porque exigirá a la máquina mayores recursos computacionales, si la computadora tiene microprocesadores de especificaciones bajas, posiblemente el entrenamiento será del orden de horas y paciencia.

Introducción Visión Artificial con Redes Neuronales Convolucionales RNC

Aprendizaje profundo (Deep learning)

El término “profundo” se aplica en las máquinas para hacer referencia al elevado número de procedimientos que deben realizar los microprocesadores para calcular las diferentes capas que están en las redes neuronales y se hacen de forma oculta. Las redes neuronales convolucionales eventualmente utilizan dos o tres capas ocultas, pero las redes profundas multiplican por 100 la cantidad de procesos que debe realizar para obtener el aprendizaje.

En la actualidad existen varios métodos y algoritmos de machinne learning como Navive Nayes, Random Forest, Suppor Vector Machine, K Nearest Neighbours o redes neuronales. En esta asignatura se hace una breve introducción a la visión artificial en donde se utilizan varios de los conceptos vistos que, al estudiarlos con mayor entereza, ayudarán a realizar nuevas aplicaciones del procesamiento de imágenes aplicada al aprendizaje profundo.

En la imagen de pantalla se observa el proceso de aprendizaje profundo que utilizan las redes neuronales convolucionales. Este proceso se puede resumir como la obtención de las imágenes y su filtrado a través de varias capas, de las cuales van obteniendo las características morfológicas más representativas que permiten reconocer y clasificar las matrices de datos bidireccionales para obtener resultados predecibles y útiles.

Material
de apoyo

Capas en redes neuronales

En el tema anterior Introducción Visión Artificial con Redes Neuronales Convolucionales RNC se da un primer paso para estudiar las RNC y se introdujo el concepto de capas en el aprendizaje profundo de las máquinas, en esta sección explicaremos las capas más utilizadas.

Se estudiará la capa de convolución, capa de agrupación, capa conectada completamente y la capa de unidad lineal rectificada, estas son las empleadas en la identificación de imágenes en la visión artificial y serán las que se utilizarán en la aplicación que se propone desarrollar para identificar por medio de una cámara cuándo está abierta o cerrada una mano. La capa que utiliza la función softmax se deja al final de la práctica por sus características con el cálculo del gradiente.

Capas en redes neuronales

Capa convolucional (Convolution layer)

Es la capa inicial en la cual se procesan las imágenes y en donde se detectan las características morfológicas principales para generar nuevas imágenes, con datos que se entregarán a la siguiente capa del procesamiento. Las matrices tridimensionales ingresan de un tamaño específico el cual es reducido en matrices filtradas de menor tamaño, estas matrices se entregan a la siguiente etapa de las RNC.

Observe el siguiente video (en inglés) que explica cómo funcionan las Redes Neuronales Convolucionales.

Revise el siguiente ejemplo sobre las Redes Neuronales Convolucionales, que le permitirá ilustrar los principios detrás de las RNC.

Actividad de aprendizaje

Actividad de Aprendizaje

Le invitamos a realizar una actividad donde podrá implementar el algoritmo para calcular la capa de convolución de las RNC.

Capas en redes neuronales

Capa de agrupación (Pooling layer)

Es otra herramienta que se utiliza en las RNC y es la de agrupación de pequeñas imágenes para formar una de mayor tamaño, después de la capa convolucional, la cual identifica las características morfológicas principales, esta capa recibe las matrices procesadas con información más específica y seleccionada. La agrupación es una forma de tomar imágenes grandes y reducirlas. En la figura del medio principal (izquierda) se ilustra cómo la matriz de 3x3 se reduce en una matriz de 2x2, pero conservando la información más importante en ellas. Las matemáticas detrás de la agrupación permiten identificar las matrices que tengan un mayor valor.

En la grafica se resume lo que hace la capa de agrupación en donde por medio del cálculo matricial se determina el mayor valor “peso” de cada matriz calculada, conserva los mejores ajustes de cada característica dentro de la matriz. Esto significa que no importa mucho dónde coincide la característica identificada siempre que se ajuste al interior de la imagen nueva. El resultado de este proceso es que la RNC puede encontrar la característica morfológica en una imagen sin preocuparse en dónde se encuentre, esta las ubica.

Capas en redes neuronales

Capa de unidad lineal rectificada (Rectified linear unit layer)

Rectified Linear Unit Layer (ReLU) es la capa unidad lineal rectificada que tiene una función sencilla y es siempre que encuentre un número negativo en los pixeles de la imagen lo cambie por el valor cero.

Esto ayuda a las RNC a que se mantenga matemáticamente coherentes para evitar las divisiones por cero y se produzcan cálculos infinitos. Esta capa se podría comparar como el lubricante de las RNC para evitar que se produzcan atascos en los cálculos.

Capas en redes neuronales

Capa conectada completamente (Fully connected layer)

Las capas totalmente conectadas toman las imágenes filtradas que llegan de la capa de agrupación y les asigna un voto. En el ejemplo que se está manejando solo hay que elegir entre la letra “X” y la letra “O”, pero para hacerlo más interesante se agregan dos caracteres “/” y “\”. Las capas totalmente conectadas son los bloques principales de las RNC. En lugar de tratar las entradas como una matriz bidimensional, se tratan como una lista única.

Cada imagen tiene su propio voto que es calculado junto con las otras imágenes, en particular la letra “X” tiene un voto diferente al de la letra “O” y si se agregan dos figuras más como la barra inclinada en las dos direcciones “/” y “\” cada una de ellas también tendrán un valor que depende del filtro que se aplique en esta etapa y logre encontrar el mayor número de coincidencias en las características morfológicas, la que más características encuentre tendrá un mayor voto. Sin embargo, el proceso no es del todo democrático.

En la figura fully connected layer, se obtienen las matrices de la capa de agrupamiento mediante los procesos matemáticos respectivos y después de haber pasado por las capas de convolución, agrupamiento y capa de unidad lineal rectificada, se vota y la ganadora es la que saca el máximo valor, para el ejemplo el máximo valor es el 8 que corresponde a la letra “O”.

Material
de apoyo

Proyecto de Visión Artificial con RNC

Para aplicar algunos de los conceptos de la asignatura, se propone realizar una aplicación en donde se implemente una Red Neuronal Convolucional enfocada en el reconocimiento de dos gestos con las manos: mano abierta y mano cerrada, en entornos dinámicos como los videos.

En el siguiente artículo se traducen las funciones de Matlab empleadas en la visión artificial, aprendizaje profundo e inteligencia artificial.

Material
de apoyo

Proyecto de Visión Artificial con RNC

Etapas del proyecto

Le invitamos a desarrollar el siguiente proyecto que se divide en cuatro etapas. Haga clic en cada una de ellas dentro de la actividad de aprendizaje para realizarlas.

Resumen

En esta unidad se puso a prueba lo aprendido, vimos temas muy interesantes como captura de videos e imágenes con dispositivos, cargar y leer imágenes que están archivadas en los medios de almacenamiento, cambiar el tamaño de las imágenes, convertir una imagen en color RGB a tonos de grises, separar las matrices tridimensionales en los componentes R, G y B, convertir las imágenes en datos binarios, aplicar filtros, utilizar los histogramas, recortar parte de la imagen, realizar operaciones con pixeles y matrices, dilatación y erosión con estructuras morfológicas, calcular centroides de objetos en las imágenes, realizar seguimiento de colores y características seleccionadas en los fotogramas de los videos, la convolución, el cálculo del gradiente descendente y la aplicación de las operaciones matriciales desde las más simples a las más complejas.

Durante el recorrido de la asignatura se utilizaron diferentes aplicaciones para resolver el proyecto final que fue el reconocimiento de imágenes de manos abiertas y cerradas por la computadora de forma automática.

En este proyecto se aplicaron los conocimientos de visión artificial y aprendizaje profundo de las Redes Neuronales Convolucionales (RNC), aunque se hizo referencia a ellas de forma somera, detrás de esta aplicación está el procesamiento de imágenes que permite la manipulación de los datos de las matrices para obtener los resultados esperados.

Bibliografía ()

  • Frankish, K. & Ramsey, W. (2014). The Cambridge Handbook of Artificial Intelligence. Cambridge University Press, UK.
  • Mosterin, J. & Torretti, R. (2010). Diccionario de lógica y filosofía de la ciencia. España: segunda edición.
  • Nils, J. N. (2004). Inteligencia artificial una nueva síntesis. Madrid: Editorial Mc Graw Hill. 
  • Pajares, G. (2004). Visión por computador: imágenes digitales y aplicaciones. Colombia: Editorial Alfaomega.
  • Pinzón Arenas, J. O., Jiménez Moreno, R. & Useche Murillo, P. C. (2017). Hand Gesture Recognition by Means of Region- Based Convolutional Neural Networks. Bogotá, Colombia: Universidad Militar Nueva Granada.
  • Platero, C. (2013). Introducción a la visión artificial.

Referencias Web