Mochis NoticiasTecnologíaun algoritmo ultrarrápido de código abierto para visión por computadora en tiempo real – Nonteek
Mochis NoticiasTecnologíaun algoritmo ultrarrápido de código abierto para visión por computadora en tiempo real – Nonteek
Tecnología

un algoritmo ultrarrápido de código abierto para visión por computadora en tiempo real – Nonteek

Del reconocimiento procesal al YOLO. Con los decodificadores de un solo paso, la visión por computadora da un salto generacional; mira dentro de él.

La visión por computadora es una de las áreas donde la Inteligencia Artificial se está expandiendo. Basta pensar en los coches autónomos y sin conductor, donde Tesla ha estado liderando el camino y donde ahora se están metiendo todos los demás fabricantes de automóviles.

Durante años, el reconocimiento y la categorización han sido un problema, especialmente considerando la dificultad de un algoritmo tradicional para reconocer el mismo objeto en diferentes posiciones y ángulos. Teniendo en cuenta lo fácil y espontánea que nos parece esta tarea, no es tan obvio darse cuenta de los problemas que surgen en el reconocimiento automático.

Problemas

Debemos distinguir dos clases de problemas: categorización y localización. El primero, relativamente más sencillo, presenta ya algunas dificultades no triviales.

yolo-perro-gato

Para nosotros, por ejemplo, es fácil reconocer una silla, pero ¿serías capaz de describirla de forma inequívoca? Podemos definirlo como un mueble para sentarse con cuatro patas, barandillas y respaldo. Sin embargo, cuando miramos las imágenes a continuación, ya notamos problemas: algunos tienen solo 3 patas, otros incluso solo dos, el rojo en realidad solo tiene una, el de oficina tiene ruedas, etc.

Sin embargo, para nosotros es sencillo identificarlos a todos como sillas. Enseñar a una máquina a reconocerlos presentando todas las excepciones posibles es obviamente imposible. En consecuencia, el reconocimiento basado en reglas está condenado a producir, en el mejor de los casos, resultados insatisfactorios, llenos de falsos positivos (reconocimiento de escaños donde no los hay) y negativos (escaños no reconocidos como tales). El problema se vuelve aún más complicado si los objetos se presentan con diferentes orientaciones o con partes faltantes (ver más abajo).

Enfoques clásicos

Sin profundizar demasiado en la historia del reconocimiento automático de objetos, podemos decir que antes de la era del aprendizaje profundo, uno de los intentos más exitosos de reconocimiento facial fue Viola-Jones. Este algoritmo era relativamente simple: primero, un tipo de mapa que representaba Se generaron las características de una cara, a través de miles de clasificadores binarios simples utilizando Haar Features. Luego, este mapa se «conectó» al algoritmo usándolo para entrenar un SVM como clasificador para ubicar la cara misma dentro de la escena. Este algoritmo era tan simple y rápido que todavía se usa hoy en día en algunas cámaras de apuntar y disparar de gama baja. Sin embargo, esto presentó exactamente el tipo de problemas descritos anteriormente, es decir, no fueron lo suficientemente flexibles como para generalizar los elementos presentados con pequeñas variaciones al conjunto de aprendizaje.

Algoritmo de viola-jones

Más precisos fueron algoritmos como Dalal y Triggsque ella usó CERDO (histogramas con gradientes orientados). Esto, además de los bordes, tiene en cuenta la orientación de los gradientes en cada porción de la imagen y SVM para la clasificación.

cerdo
Extracción de histograma a partir de gradientes y reconocimiento.

Sin embargo, aunque logró resultados mucho más precisos que el anterior, fue sustancialmente más lento. Además, el principal problema seguía siendo la falta de robustez y la consiguiente dificultad para reconocer imágenes con cierta cantidad de «ruido» o distracciones de fondo.

Identificar y descomponer dichas imágenes fue un problema difícil para los algoritmos de primera generación.

Otro problema con esos algoritmos era la capacidad de reconocer solo una imagen y no eran buenos para generalizar. Es decir, sólo se podían «configurar» en un tipo de imagen (caras, perros, etc), tenían grandes dificultades en los problemas enumerados anteriormente y el formato de imagen con el que podían trabajar era muy limitado.

Aprendizaje profundo al rescate

De hecho, para que sea realmente útil, el reconocimiento de objetos debe poder funcionar en escenas complejas, como las escenas que enfrentamos en la vida cotidiana (abajo).

Una escena con diferentes tipos de objetos, en diferentes proporciones, colores y ángulos.

La expansión del uso de Redes neuronales En la era del Big Data, y la consiguiente popularidad del Deep Learning, realmente ha cambiado las reglas del juego, especialmente gracias al desarrollo de las redes neuronales convolucionales (CNN).

Un enfoque común a casi todos los algoritmos (incluidos los anteriores) era el de la «ventana deslizante», es decir, escanear toda el área de la imagen área por área, analizando una porción (la ventana) a la vez.

En el caso de CNN, la idea es repetir el proceso con diferentes tamaños de ventanas, obteniendo para cada una de ellas una predicción del contenido, con un grado de confianza. Finalmente, se descartan las predicciones con menor grado de confianza.

Calificación con CNN

YOLO, el pionero de los decodificadores de disparo único

Hoy en día, necesitamos mucho más que una simple clasificación o localización en imágenes estáticas, lo que necesitamos es análisis en tiempo real: ¡nadie quiere sentarse en un coche autónomo que tarda varios minutos (o incluso segundos) en reconocer las imágenes!

La solución al problema es utilizar redes convolucionales de un solo paso, es decir, el análisis de todas las partes de la imagen en paralelo, al mismo tiempo, evitando la necesidad de ventanas deslizantes.

Yolo fue desarrollado por Redmon y Farhadi en 2015, durante su doctorado. El concepto es dividir la imagen nuevamente para obtener una cuadrícula de celdas cuadradas. En v3 (más reciente), YOLO hace predicciones en 3 escalas diferentes, reduciendo la imagen 32, 16 y 8 veces respectivamente, para seguir siendo preciso incluso en escalas más pequeñas (las versiones anteriores tenían problemas con imágenes pequeñas). Para cada una de las 3 escalas, cada celda es responsable de predecir 3 cuadros delimitadores, utilizando 3 cuadros de anclaje (un cuadro de anclaje no es más que un rectángulo de proporciones predefinidas. Se utilizan para tener una mayor correspondencia entre los límites predichos y esperados. Aquí puedes seguir la excelente explicación de Andrew Ng).

Yolo v3 puede trabajar con 80 clases diferentes. Al final del procesamiento, solo se conservan los cuadros delimitadores con mayor confianza, mientras que los demás se descartan.

Arquitectura Yolo v3 (Fuente: Ayoosh Kathuria)

YOLO v3 es mucho más preciso que las versiones anteriores y, aunque es un poco más lento, sigue siendo uno de los algoritmos más rápidos que existen. La v3 utiliza como variante una arquitectura de Darknet, con 106 capas convolucionales. Interesante también pequeño yoloque se ejecuta en Tiny Darknet y es capaz de ejecutarse en dispositivos limitados, como teléfonos inteligentes.

A continuación puede ver imágenes en tiempo real de YOLO v3 en funcionamiento.

Notas

P. Viola y M. Jones: Detección rápida de objetos mediante una cascada mejorada de funciones simplesCVPR 2001.

N. Dalal, B. Triggs: Histogramas de gradientes orientados para la detección humana.CVPR 2005.

Un cuadro de anclaje no es más que un rectángulo con proporciones predefinidas. Se utilizan para conseguir un mejor ajuste entre el suelo y el cuadro delimitador esperado (aquí puedes seguir la excelente explicación proporcionada por Andrea Ng).

ENLACES

Detección de objetos: una visión general en la era del Deep Learning

Evolución de los algoritmos de detección y localización de objetos

Sitio web de Yolo

Redmon J, Farhadi A. – Una sola mirada: Detección unificada de objetos en tiempo real (arXiv:1506.02640v5)

Redmon J, Farhadi A. – YOLOv3: Mejoras incrementales (arXiv:1804.02767v1)

Wei Liu et al. – SSD: Detector MultiBox de disparo único (arXiv:1512.02325v5)

¿Qué hay de nuevo en YOLO v3?

Compensación entre velocidad y precisión para los detectores de objetos convolucionales modernos

Detectores de disparo único

Charla YOLO de Andrew NG en Coursera

YOLO: Detección de objetos en tiempo real

Histograma de gradientes orientados

RNN en la Darknet

Tutorial: Implementar el reconocimiento de objetos en una transmisión en vivo

YOLO — Mira solo una vez, explicó la detección de objetos en tiempo real

INVESTIGACIÓN DE PRIORIDADES HUMANAS PARA LA REPRODUCCIÓN DE VIDEO

JUEGOS

COCO – Objetos comunes en CONTEXTO

Source link

Hi, I’m Corina Guzman

Deja una respuesta

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