YOLO (You Only Look Once) es una familia de sistemas de detección de objetos en tiempo real basados en redes neuronales convolucionales. Introducido por primera vez por Joseph Redmon y sus colegas en 2015, YOLO ha pasado por múltiples iteraciones y se ha convertido en uno de los marcos de detección de objetos más utilizados. El nombre refleja el diseño central del algoritmo: solo requiere una pasada de propagación hacia adelante a través de la red neuronal para hacer predicciones, en contraste con técnicas anteriores basadas en propuestas de regiones como R-CNN, que requerían miles de pasadas para una sola imagen.
A diferencia de los métodos anteriores que aplicaban modelos a una imagen en múltiples ubicaciones y escalas, YOLO aplica una única red neuronal a toda la imagen. La red divide la imagen en una cuadrícula de regiones y predice cajas delimitadoras y probabilidades de clase para cada región. Estas predicciones se ponderan con puntuaciones de confianza, lo que permite una detección rápida y precisa en una sola evaluación.
Descripción general
La arquitectura de YOLO se basa en una red neuronal convolucional que procesa la imagen completa en una sola pasada. La imagen se divide en una cuadrícula de S × S, donde cada celda es responsable de predecir cajas delimitadoras y puntuaciones de confianza. Si el centro de la caja delimitadora de un objeto cae dentro de una celda, se considera que esa celda "contiene" el objeto. Cada celda predice B cajas delimitadoras, junto con puntuaciones de confianza que reflejan tanto la probabilidad de que haya un objeto presente como la precisión de la caja predicha.
La salida de la red para cada celda incluye probabilidades de clase condicionales (la probabilidad de que la celda contenga un objeto de una clase dada, dado que contiene al menos un objeto) y parámetros de la caja delimitadora (coordenadas del centro, ancho y alto). Múltiples cajas delimitadoras por celda permiten que el modelo se especialice en diferentes formas de objetos, como objetos esbeltos versus robustos. La arquitectura original de YOLO consistía en 24 capas convolucionales seguidas de 2 capas completamente conectadas.
Durante el entrenamiento, para cada celda que contiene una caja delimitadora de verdad fundamental, solo se usa la caja predicha con la mayor intersección sobre unión (IoU) con la verdad fundamental para el descenso de gradiente. La función de pérdida alienta al modelo a alinear las coordenadas de la caja predicha con la verdad fundamental, establecer las probabilidades de clase correctas y suprimir falsos positivos.
Predecesores y contexto
Antes de YOLO, los sistemas de detección de objetos como R-CNN y OverFeat dependían de enfoques de propuesta de regiones o escaneo multiescala. OverFeat, un modelo influyente temprano, entrenó una red neuronal para clasificación y luego agregó una red de regresión para predecir las esquinas de las cajas delimitadoras. En la inferencia, ejecutaba la red de clasificación sobre muchos niveles de zoom y recortes, generando miles de cajas candidatas que luego se fusionaban. Este proceso era computacionalmente costoso y lento.
YOLO abordó estas ineficiencias reformulando la detección como un problema de regresión único. En lugar de escanear la imagen múltiples veces, YOLO procesa toda la imagen en una sola pasada hacia adelante, lo que lo hace significativamente más rápido mientras mantiene una precisión competitiva. Este cambio permitió aplicaciones en tiempo real en análisis de video, robótica y conducción autónoma.
Versiones
La serie YOLO se puede dividir en dos partes. La parte original, mantenida por Joseph Redmon, incluye YOLOv1, YOLOv2 y YOLOv3. Estas versiones se publicaron en un sitio web dedicado y se adoptaron ampliamente tanto en investigación como en la industria.
YOLOv1
YOLOv1, introducido en 2015, estableció el marco central. Dividía la imagen en una cuadrícula de S × S, con cada celda prediciendo B cajas delimitadoras y puntuaciones de confianza. La salida de la red para cada celda incluía probabilidades de clase y coordenadas de caja. La implementación original usaba S = 7 y B = 2, lo que resultaba en 98 cajas delimitadoras por imagen. A pesar de su velocidad, YOLOv1 tenía limitaciones para detectar objetos pequeños y manejar objetos superpuestos, que las versiones posteriores abordaron.
YOLOv2 y YOLOv3
YOLOv2, también conocido como YOLO9000, introdujo mejoras como normalización por lotes, cajas ancla y entrenamiento multiescala. Podía detectar más de 9,000 categorías de objetos aprovechando la clasificación jerárquica. YOLOv3 mejoró aún más la precisión mediante una arquitectura más profunda con conexiones residuales y predicciones multiescala, lo que permitió una mejor detección de objetos pequeños. Estas versiones consolidaron la reputación de YOLO como un detector en tiempo real de última generación.
Impacto y aplicaciones
La velocidad y eficiencia de YOLO lo han convertido en una opción popular para aplicaciones en tiempo real, incluida la vigilancia por video, vehículos autónomos y robótica. Su diseño de una sola pasada es particularmente adecuado para dispositivos periféricos y sistemas integrados, donde los recursos computacionales son limitados. El marco también ha influido en investigaciones posteriores sobre detección de objetos, inspirando muchas variantes y adaptaciones.
A principios de la década de 2020, YOLO continúa siendo desarrollado activamente por la comunidad de investigación, con versiones más nuevas como YOLOv4, YOLOv5 e iteraciones posteriores que introducen optimizaciones adicionales. Estas versiones a menudo incorporan técnicas de la investigación en aprendizaje profundo y redes neuronales, como mecanismos de atención y estrategias de entrenamiento mejoradas. El legado de YOLO radica en su demostración de que la detección en tiempo real es alcanzable sin sacrificar la precisión, lo que lo convierte en una piedra angular de la visión por computadora moderna.