Categorías
Articulos Inteligencia artificial

Reconocimiento de imágenes con Machine Learning

Redes neuronales para el reconocimiento de imágenes

El reconocimiento de imágenes ha entrado en la corriente principal y es utilizado por miles de empresas y millones de consumidores todos los días. Bajo el capó, el reconocimiento de imágenes es impulsado por el aprendizaje profundo, específicamente las Redes Neuronales Convolucionales (CNN), una arquitectura de red neuronal que emula cómo la corteza visual se descompone y analiza los datos de la imagen.

Siguenos en INSTAGRAM La comunidad de los verdaderos programadores.

CNN y el reconocimiento de imágenes de redes neuronales es un componente central del aprendizaje profundo para la visión por computadora , que tiene muchas aplicaciones que incluyen comercio electrónico, juegos, automoción, fabricación y educación.

¿Qué es el reconocimiento de imagen?

El reconocimiento de imágenes utiliza tecnología de inteligencia artificial para identificar automáticamente objetos, personas, lugares y acciones en imágenes.

El reconocimiento de imágenes se utiliza para realizar tareas como etiquetar imágenes con etiquetas descriptivas, buscar contenido en imágenes y guiar robots, vehículos autónomos y sistemas de asistencia al conductor.

El reconocimiento de imágenes es natural para humanos y animales, pero es una tarea extremadamente difícil para las computadoras. En las últimas dos décadas, ha surgido el campo de la visión por computadora, y se han desarrollado herramientas y tecnologías que pueden enfrentar el desafío.

La herramienta más eficaz que se encuentra para la tarea de reconocimiento de imágenes es una red neuronal profunda (consulte nuestra guía sobre conceptos de redes neuronales artificiales  ), específicamente una red neuronal convolucional   (CNN).

CNN es una arquitectura diseñada para procesar, correlacionar y comprender eficientemente la gran cantidad de datos en imágenes de alta resolución.

¿Cómo funciona el reconocimiento de imágenes?

El ojo humano ve una imagen como un conjunto de señales, interpretadas por la corteza visual del cerebro. El resultado es una experiencia de una escena, vinculada a objetos y conceptos que se retienen en la memoria.

El reconocimiento de imagen imita este proceso. Las computadoras ‘ven’ una imagen como un conjunto de vectores (polígonos con anotaciones de color) o un ráster (un lienzo de píxeles con valores numéricos discretos para los colores).

En el proceso de reconocimiento de la imagen de la red neuronal, la codificación vectorial o ráster de la imagen se convierte en construcciones que representan objetos y características físicas.

Los sistemas de visión por computadora pueden analizar lógicamente estas construcciones, primero simplificando las imágenes y extrayendo la información más importante, luego organizando los datos a través de la extracción y clasificación de características.

Finalmente, los sistemas de visión por computadora usan clasificación u otros algoritmos para tomar una decisión sobre la imagen o parte de ella, a qué categoría pertenecen o cómo se pueden describir mejor.

Algoritmos de reconocimiento de imagen

Un tipo de algoritmo de reconocimiento de imágenes es un clasificador de imágenes. Toma una imagen (o parte de una imagen) como entrada y predice lo que contiene la imagen.

El resultado es una etiqueta de clase, como perro, gato o mesa. El algoritmo necesita ser entrenado para aprender y distinguir entre clases.

En un caso simple, para crear un algoritmo de clasificación que pueda identificar imágenes con perros, entrenará una red neuronal con miles de imágenes de perros y miles de imágenes de fondos sin perros.

El algoritmo aprenderá a extraer las características que identifican un objeto «perro» y clasificar correctamente las imágenes que contienen perros.

Si bien la mayoría de los algoritmos de reconocimiento de imágenes son clasificadores, se pueden usar otros algoritmos para realizar actividades más complejas.

Por ejemplo, una red neuronal recurrente se puede utilizar para escribir automáticamente subtítulos que describan el contenido de una imagen.

Pasos de preprocesamiento de datos de imagen para redes neuronales

Los algoritmos de reconocimiento de imágenes de redes neuronales se basan en la calidad del conjunto de datos: las imágenes utilizadas para entrenar y probar el modelo. Aquí hay algunos parámetros y consideraciones importantes para la preparación de datos de imágenes.

Tamaño de imagen: una imagen de mayor calidad le da al modelo más información, pero requiere más nodos de red neuronal y más potencia informática para procesar.

La cantidad de imágenes: cuantos más datos alimente a un modelo, más precisa será, pero asegúrese de que el conjunto de entrenamiento represente a la población real.

El número de canales: la imagen en escala de grises tiene 2 canales (blanco y negro) y las imágenes en color suelen tener 3 canales de color (rojo, verde, azul / RGB), con colores representados en el rango [0,255].

Relación de aspecto: asegúrese de que las imágenes tengan la misma relación de aspecto y tamaño. Típicamente, los modelos de redes neuronales asumen una imagen de entrada de forma cuadrada.

Escalado de imagen: una vez que todas las imágenes están al cuadrado, puede escalar cada imagen. Existen muchas técnicas de aumento y reducción de escala, que están disponibles como funciones en las bibliotecas de aprendizaje profundo.

Media, desviación estándar de los datos de entrada: puede ver la ‘imagen media’ calculando los valores medios para cada píxel, en todos los ejemplos de entrenamiento, para obtener información sobre la estructura subyacente en las imágenes.

Normalizar las entradas de imagen: garantiza que todos los parámetros de entrada (píxeles en este caso) tengan una distribución de datos uniforme.

Esto hace que la convergencia sea más rápida cuando entrena la red. Puede llevar a cabo la normalización de datos restando la media de cada píxel y luego dividiendo el resultado por la desviación estándar.

Reducción de dimensionalidad: puede decidir contraer los canales RGB en un canal de escala de grises.

Es posible que desee reducir otras dimensiones si tiene la intención de hacer que la red neuronal sea invariable a esa dimensión o hacer que la capacitación sea menos computacionalmente intensiva.

Aumento de datos: implica aumentar el conjunto de datos existente, con tipos perturbados de imágenes actuales, incluidas la escala y la rotación.

Hace esto para exponer la red neuronal a una variedad de variaciones. De esta manera, es menos probable que esta red neuronal identifique características no deseadas en el conjunto de datos.

Construcción de un modelo predictivo para imágenes con redes neuronales

Una vez que se preparan las imágenes de entrenamiento, necesitará un sistema que pueda procesarlas y usarlas para hacer una predicción sobre imágenes nuevas y desconocidas.

Ese sistema es una red neuronal artificial. Los algoritmos de reconocimiento de imágenes de redes neuronales pueden clasificar casi cualquier cosa, desde texto a imágenes, archivos de audio y videos (consulte nuestro artículo detallado sobre clasificación y redes neuronales ).

Las redes neuronales son una colección interconectada de nodos llamados neuronas o perceptrones .

Cada neurona toma una parte de los datos de entrada, generalmente un píxel de la imagen, y aplica un cálculo simple, llamado función de activaciónpara generar un resultado. Cada neurona tiene un peso numérico que afecta su resultado.

Ese resultado se alimenta a capas neurales adicionales hasta que al final del proceso la red neuronal genera una predicción para cada entrada o píxel.

imágenes con redes neuronales

Se repite para una gran cantidad de imágenes, y la red aprende los pesos más apropiados para cada neurona que proporcionan predicciones precisas, en un proceso llamado retropropagación .

Una vez que se entrena un modelo, se aplica a un nuevo conjunto de imágenes que no participaron en el entrenamiento (un conjunto de prueba o validación), para probar su precisión. Después de algunos ajustes, el modelo puede usarse para clasificar imágenes del mundo real.

Limitaciones de las redes neuronales regulares para el reconocimiento de imágenes

Las redes neuronales tradicionales usan una arquitectura completamente conectada, como se ilustra a continuación, donde cada neurona en una capa se conecta a todas las neuronas en la capa siguiente.

redes neuronales regulares para el reconocimiento de imágenes

Arquitectura totalmente conectada es ineficiente cuando se trata de procesar datos de imagen:

  • Para una imagen promedio con cientos de píxeles y tres canales, una red neuronal tradicional generará millones de parámetros, lo que puede conducir a un sobreajuste.
  • El modelo sería muy computacionalmente intensivo.
  • Puede ser difícil interpretar resultados, depurar y ajustar el modelo para mejorar su rendimiento.

Redes neuronales convolucionales y su papel en el reconocimiento de imágenes

A diferencia de una red neuronal completamente conectada, en una red neuronal convolucional (CNN) las neuronas en una capa no se conectan a todas las neuronas en la capa siguiente.

Por el contrario, una red neuronal convolucional utiliza una estructura tridimensional, donde cada conjunto de neuronas analiza una región específica o «característica» de la imagen.

Los CNN filtran las conexiones por proximidad (los píxeles solo se analizan en relación con los píxeles cercanos), lo que hace que el proceso de capacitación sea computacionalmente alcanzable. En una CNN, cada grupo de neuronas se enfoca en una parte de la imagen.

Por ejemplo, en una imagen de gato, un grupo de neuronas puede identificar la cabeza, otro el cuerpo, otro la cola, etc. Puede haber varias etapas de segmentación en las que el reconocimiento de imágenes de la red neuronal.

El algoritmo analiza partes más pequeñas de las imágenes, por ejemplo, dentro de la cabeza, la nariz del gato, bigotes, orejas, etc.

El resultado final es un vector de probabilidades, que predice, para cada característica de la imagen, qué tan probable es que pertenezca a una clase o categoría.

Redes neuronales convolucionales y su papel en el reconocimiento de imágenes

Efectividad y limitaciones de las redes neuronales convolucionales

Una arquitectura CNN hace posible predecir objetos y caras en imágenes utilizando conjuntos de datos de referencia de la industria con una precisión de hasta el 95%, mayor que las capacidades humanas que alcanzan una precisión del 94%. Aun así, las redes neuronales convolucionales tienen sus limitaciones:

Requiere un alto poder de procesamiento. Los modelos suelen estar entrenados en máquinas de alto costo con unidades de procesamiento gráfico (GPU) especializadas.

Puede fallar cuando las imágenes se giran o inclinan , o cuando una imagen tiene las características del objeto deseado, pero no en el orden o posición correctos, por ejemplo, una cara con la nariz y la boca cambiadas.

Ha surgido una nueva arquitectura llamada CAPSNet para abordar esta limitación.

Aplicaciones de reconocimiento de imagen

Las implementaciones de reconocimiento de imágenes incluyen seguridad y vigilancia, reconocimiento facial, geolocalización visual, reconocimiento de gestos, reconocimiento de objetos, análisis de imágenes médicas, asistencia al conductor y etiquetado y organización de imágenes en sitios web o grandes bases de datos.

El reconocimiento de imágenes ha entrado en la corriente principal. Facebook, Google, Youtube y muchas otras aplicaciones de consumo de alto perfil utilizan el reconocimiento de fotogramas faciales, fotográficos y de video.

Han surgido kits de herramientas y servicios en la nube que pueden ayudar a los jugadores más pequeños a integrar el reconocimiento de imágenes en sus sitios web o aplicaciones.

Uso del reconocimiento de imágenes en todas las industrias

Industria del comercio electrónico: el reconocimiento de imágenes se utiliza para procesar, categorizar y etiquetar automáticamente las imágenes de los productos, y permite una potente búsqueda de imágenes.

Por ejemplo, los consumidores pueden buscar una silla con un apoyabrazos particular y recibir resultados relevantes.

Industria del juego: el reconocimiento de imágenes se puede utilizar para transponer una capa digital sobre imágenes del mundo real. La realidad aumentada agrega detalles al entorno existente. Pokemon Go es un juego popular que se basa en la tecnología de reconocimiento de imágenes.

Industria automotriz: los vehículos autónomos se encuentran en fases de prueba en los Estados Unidos y se utilizan para el transporte público en muchas ciudades europeas.

Para facilitar la conducción autónoma, se enseña el reconocimiento de imágenes para identificar objetos en la carretera, incluidos objetos en movimiento, vehículos, personas y caminos, así como reconocer semáforos y señales de tráfico.

Fabricación: el reconocimiento de imágenes se emplea en diferentes etapas del ciclo de fabricación. Se utiliza para reducir defectos en el proceso de fabricación, por ejemplo, almacenando imágenes de componentes con metadatos relacionados e identificando defectos automáticamente.

Educación: el reconocimiento de imágenes puede ayudar a los estudiantes con dificultades de aprendizaje y discapacidades.

Por ejemplo, las aplicaciones que funcionan con visión por computadora proporcionan funciones de imagen a voz y texto a voz, que pueden leer materiales para estudiantes con dislexia o problemas de visión.

Entradas relacionadas

Deja un comentario

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

quince − uno =