You Only Look Once (YOLO) es una serie de sistemas de detección de objetos en tiempo real basados en redes neuronales convolucionales. Introducido por primera vez por Joseph Redmon et al. en 2015, YOLO ha pasado por varias iteraciones y mejoras, convirtiéndose en uno de los marcos de detección de objetos más populares. El nombre "You Only Look Once" se refiere al hecho de que el algoritmo requiere solo una pasada de propagación hacia adelante a través de la red neuronal para hacer predicciones, a diferencia de técnicas anteriores basadas en propuestas de regiones como R-CNN que requieren miles para una sola imagen.
YOLO enmarca la detección de objetos como un problema de regresión único, prediciendo directamente las coordenadas de las cajas delimitadoras y las probabilidades de clase a partir de los píxeles de la imagen. Esta arquitectura unificada permite velocidades de procesamiento en tiempo real mientras mantiene una precisión competitiva, lo que la hace adecuada para aplicaciones como vigilancia por video, conducción autónoma y robótica.
Descripción general
En comparación con métodos anteriores como R-CNN y OverFeat, en lugar de aplicar el modelo a una imagen en múltiples ubicaciones y escalas, YOLO aplica una única red neuronal a la imagen completa. Esta red divide la imagen en regiones y predice cajas delimitadoras y probabilidades para cada región. Estas cajas delimitadoras se ponderan según las probabilidades predichas.
El enfoque se basa en ideas de aprendizaje profundo y redes neuronales, particularmente arquitecturas convolucionales que han demostrado ser efectivas en tareas de visión por computadora. El diseño de YOLO prioriza la velocidad y la simplicidad, sacrificando algo de precisión de localización por una eficiencia computacional significativa.
OverFeat
OverFeat fue un modelo influyente temprano para la clasificación y localización simultánea de objetos. Su arquitectura es la siguiente:
- Entrenar una red neuronal solo para clasificación de imágenes ("red entrenada para clasificación"), como AlexNet.
- Eliminar la última capa de la red entrenada y, para cada clase de objeto posible, inicializar un módulo de red en la última capa ("red de regresión"). La red base tiene sus parámetros congelados. La red de regresión se entrena para predecir las coordenadas (x, y) de dos esquinas de la caja delimitadora del objeto.
- Durante la inferencia, ejecutar la red entrenada para clasificación sobre la misma imagen en muchos niveles de zoom y recortes diferentes. Para cada uno, genera una etiqueta de clase y una probabilidad. Cada salida se procesa luego por la red de regresión de la clase correspondiente, resultando en miles de cajas delimitadoras con etiquetas de clase y probabilidades. Estas cajas se fusionan hasta que solo queda una única caja con una única etiqueta de clase.
OverFeat demostró la viabilidad del aprendizaje de extremo a extremo para la detección, pero seguía siendo computacionalmente costoso debido a su procedimiento de inferencia multiescala. YOLO simplificó esto realizando la detección en una sola pasada.
Versiones
Hay dos partes en la serie YOLO. La parte original contenía YOLOv1, v2 y v3, todas publicadas en un sitio web mantenido por Joseph Redmon. Las versiones posteriores (v4 y más allá) fueron desarrolladas por otros investigadores y mantenidas por separado.
YOLOv1
El algoritmo YOLO original, introducido en 2015, divide la imagen en una cuadrícula de S x S celdas. Si el centro de la caja delimitadora de un objeto cae en una celda de la cuadrícula, se dice que esa celda "contiene" ese objeto. Cada celda de la cuadrícula predice B cajas delimitadoras y puntuaciones de confianza para esas cajas. Estas puntuaciones de confianza reflejan cuán seguro está el modelo de que la caja contiene un objeto y cuán precisa cree que es la caja que predice.
En más detalle, la red realiza la misma operación convolucional sobre cada uno de los S^2 parches. La salida de la red en cada parche es una tupla (p_1, ..., p_C, c_1, x_1, y_1, w_1, h_1, ..., c_B, x_B, y_B, w_B, h_B), donde p_i es la probabilidad condicional de que la celda contenga un objeto de clase i, condicionada a que la celda contenga al menos un objeto. Los términos x_j, y_j, w_j, h_j son las coordenadas del centro, ancho y alto de la j-ésima caja delimitadora predicha centrada en la celda. Se predicen múltiples cajas delimitadoras para permitir que cada predicción se especialice en un tipo de caja delimitadora. El término c_j es la intersección sobre unión (IoU) predicha de cada caja delimitadora con su verdad fundamental correspondiente.
La arquitectura de la red tiene 24 capas convolucionales seguidas de 2 capas completamente conectadas. Durante el entrenamiento, para cada celda que contiene una caja delimitadora de verdad fundamental, solo la caja delimitadora predicha con la mayor IoU con la verdad fundamental se usa para el descenso de gradiente. Las coordenadas de la caja seleccionada se entrenan para acercarse a la verdad fundamental, la probabilidad de clase para la clase correcta se entrena hacia 1, y otras probabilidades de clase se entrenan hacia cero. Las celdas sin objetos de verdad fundamental contribuyen solo a la pérdida de puntuación de confianza, empujando la confianza hacia cero.
YOLOv2 y YOLOv3
YOLOv2, lanzado en 2016, introdujo la normalización por lotes, cajas ancla y una estrategia de entrenamiento multiescala, mejorando el recuerdo y la precisión de localización. También utilizó una arquitectura personalizada darknet-19 y podía ejecutarse a hasta 67 fotogramas por segundo en una GPU. YOLOv3, lanzado en 2018, añadió una red de pirámide de características con tres escalas de detección, permitiendo un mejor manejo de objetos pequeños. Utilizó un backbone darknet-53 más profundo y regresión logística para la predicción de clases.
Versiones posteriores
YOLOv4, lanzado en 2020 por Alexey Bochkovskiy y colegas, incorporó CSPDarknet53, PANet y aumento de datos de mosaico, logrando compensaciones de velocidad y precisión de última generación. YOLOv5, YOLOv6, YOLOv7 y YOLOv8 siguieron, con mejoras en eficiencia, despliegue en dispositivos de borde y soporte para tareas más allá de la detección, como segmentación de instancias y estimación de pose. Estas versiones posteriores son mantenidas por diferentes grupos, incluido Ultralytics para YOLOv5 y YOLOv8.
Aplicaciones e impacto
YOLO ha sido ampliamente adoptado en la industria y la academia debido a sus capacidades en tiempo real. Se utiliza en Tesla Autopilot para la detección de objetos en conducción autónoma, en los vehículos autónomos de Waymo y en la flota de robotaxis de Cruise. También impulsa aplicaciones en Amazon Web Services Rekognition y Google Cloud Vision para análisis de imágenes. En la investigación de inteligencia artificial, YOLO sirve como línea base para comparar nuevos métodos de detección y ha inspirado numerosas variantes y extensiones.
La eficiencia del marco lo ha hecho popular para despliegues integrados y móviles, incluidos dispositivos de Apple, Samsung Electronics y Qualcomm. Sus implementaciones de código abierto, particularmente las versiones de darknet y PyTorch, han contribuido a su uso generalizado en la educación y creación de prototipos de aprendizaje automático.
Limitaciones y direcciones futuras
A pesar de sus fortalezas, YOLO tiene limitaciones. Puede tener dificultades con objetos pequeños e instancias superpuestas en comparación con detectores de dos etapas como Faster R-CNN. Su naturaleza de una sola pasada también lo hace menos flexible para tareas que requieren refinamiento iterativo. Los investigadores han abordado estos problemas mediante cambios arquitectónicos, como mecanismos de atención y backbones basados en transformadores, alineándose con las tendencias en transformadores y modelos de lenguaje grandes para tareas de visión.
El trabajo futuro continúa enfocándose en mejorar las compensaciones entre precisión y velocidad, la robustez al cambio de dominio y la integración con otras modalidades como profundidad y lidar. A medida que mejora el hardware, incluidos aceleradores especializados como AWS Trainium y sistemas Cerebras, se espera que los modelos basados en YOLO sigan siendo relevantes para la percepción en tiempo real en tuberías de IA generativa y más allá.