Introducción a YOLO

YOLO – You Only Look Once ( Solo mira una vez )


Introducción: Por qué es importante YOLO

Imagina que caminas por una calle muy transitada en la que decenas de personas y vehículos se mueven en todas direcciones. De repente, un coche autónomo se acerca y debe decidir rápidamente cómo navegar entre todos los objetos que le rodean, como peatones, ciclistas y otros vehículos. La capacidad de reconocer y clasificar estos objetos en tiempo real es esencial para evitar accidentes y garantizar la seguridad. Aquí es donde entra en juego YOLO (You Only Look Once), uno de los algoritmos de visión por ordenador más potentes para el reconocimiento de objetos. YOLO permite a un sistema reconocer múltiples objetos en una sola imagen con extrema rapidez, una tarea crucial en escenarios dinámicos y complejos.

Por qué elegir YOLO

YOLO es una de las opciones más potentes y eficaces para el reconocimiento de objetos, y lo es por varias razones. A diferencia de otros algoritmos que dividen la tarea en varios pasos, YOLO examina toda la imagen en una sola pasada, prediciendo simultáneamente las coordenadas del cuadro delimitador y las clases de objetos. Este enfoque lo hace mucho más rápido que otros métodos.

  • Velocidad y precisión: YOLO es extremadamente rápido y puede procesar cientos de imágenes por segundo, lo que lo hace ideal para aplicaciones que requieren respuestas en tiempo real, como la detección de obstáculos para coches autónomos o la vigilancia en entornos abarrotados.
  • Un solo paso: mientras que otros algoritmos pueden requerir varios pasos (como el reconocimiento de objetos y su posterior clasificación), YOLO lo realiza todo en un solo paso, lo que reduce enormemente el tiempo de procesamiento.
  • Escalabilidad: YOLO es altamente escalable, adaptable a una amplia gama de objetos y contextos, desde la clasificación de objetos en una tienda hasta el reconocimiento de personas en entornos públicos. Se puede entrenar fácilmente con nuevos conjuntos de datos, lo que lo convierte en una opción versátil para muchas aplicaciones prácticas.

En comparación con las soluciones de la competencia, como SSD (Single Shot Multibox Detector) o Faster R-CNN, YOLO es más rápido pero mantiene una buena precisión, lo que lo convierte en la opción preferida en muchas aplicaciones en tiempo real en las que el equilibrio entre velocidad y precisión es crucial.

 

¿Cómo funciona YOLO?

El algoritmo YOLO divide la imagen en una cuadrícula. Cada celda de la cuadrícula es responsable de detectar los objetos que caen dentro de ella. Cada celda predice:

  • La probabilidad de que la celda contenga un objeto.
  • Las coordenadas de la posición del objeto (en términos de la caja delimitadora).
  • La probabilidad de cada clase de objeto para esa celda.

A continuación, el modelo utiliza estas predicciones para identificar objetos en la imagen. El proceso puede dividirse en los siguientes pasos:

  1. División de la imagen: La imagen de entrada se divide en una cuadrícula de un tamaño determinado (por ejemplo, 7×7, 13×13, etc.).
  2. Predicción por celda: Cada celda de la cuadrícula predice un número fijo de cajas delimitadoras. Cada caja tiene:
  3. Filtrado de predicciones: Una vez que el modelo ha realizado predicciones para todas las celdas de la cuadrícula, se filtran las predicciones menos fiables, dejando sólo las que tienen una alta probabilidad.
  4. Supresión No Máxima (NMS): Una vez seleccionados los recuadros delimitadores, se ejecuta un proceso denominado Supresión No Máxima (NMS), que elimina los recuadros redundantes, manteniendo sólo el de mayor probabilidad para cada objeto.


Detalles del modelo de cajas delimitadoras y puertos deformables

Cajas delimitadoras en YOLO

En el contexto de YOLO, las cajas delimitadoras se utilizan para representar la posición de un objeto dentro de una imagen. Cada caja está representada por 4 coordenadas:

  1. Centro de la caja: las coordenadas (x, y) indican el centro de la caja delimitadora.
  2. Anchura y altura: El tamaño de la caja, dado por w (anchura) y h (altura).
  3. Confianza: La probabilidad de que la caja contenga un objeto, calculada como el producto de la probabilidad del objeto y el área de la caja.
  4. Clase de objeto: probabilidad de que un objeto perteneciente a una clase determinada (por ejemplo, una persona, un coche, etc.) se encuentre dentro de la caja.

Cada cuadrícula YOLO predice esta información para cada celda. La predicción del cuadro delimitador se basa en el concepto de umbral de confianza. Cuando una celda de la cuadrícula detecta un objeto, calcula una predicción de las coordenadas de la caja y la probabilidad de que el objeto esté realmente presente, junto con la probabilidad de cada clase.

 

 

Deformable Ports Model (DPM)

El Modelo de Puertos Deformables (DPM) es una extensión del modelo de detección que permite una mayor flexibilidad en la adaptación de las posiciones de los objetos. En YOLO, la idea principal de los Puertos Deformables es hacer que los recuadros delimitadores se adapten mejor a los cambios en las formas de los objetos, en contraposición a una rigidez fija en las predicciones. Esto ayuda a YOLO a manejar objetos que pueden estar deformados o tener posiciones inusuales.
*** Translated with www.DeepL.com/Translator (free version) ***

En la práctica, el modelo DPM introduce “puertos deformables” para cada cuadro delimitador, lo que permite una alineación dinámica de los objetos durante la fase de detección, mejorando el manejo de objetos deformables o de formas variables.

Este enfoque puede ser especialmente útil en contextos como:

  • Detección de objetos deformables: como telas, cortinas u otros objetos que cambian de forma.
  • Escenas complejas: en las que los objetos pueden superponerse o tener orientaciones poco convencionales.

El modelo DPM permite una mejor alineación del cuadro delimitador con los objetos reales, lo que reduce los errores en las predicciones de localización.


Arquitectura de YOLO

YOLO utiliza una red neuronal convolucional (CNN) para hacer predicciones. La arquitectura de la red suele constar de tres partes principales:

  • Extracción de características: una serie de capas convolucionales que extraen características relevantes de la imagen de entrada.
  • Capas totalmente conectadas: capas totalmente conectadas que asignan las características extraídas a las predicciones finales (cuadro delimitador y probabilidades de clase).
  • Capa de salida: La capa final que proporciona predicciones de cajas, probabilidades de objetos y probabilidades de clases.

Pasos de YOLO: de la entrada a la predicción

  1. Entrada de imagen:
    La imagen se recibe del modelo y se pre-procesa para ajustarla a las dimensiones especificadas, por ejemplo, 416×416 o 608×608. El modelo trabaja con imágenes de un tamaño fijo para estandarizar el proceso de entrenamiento e inferencia.
  2. División en cuadrícula SxS:
    La imagen pre-procesada se divide en una cuadrícula de tamaño SxS. Cada celda de la cuadrícula es responsable de predecir un número fijo de cuadros delimitadores.
  3. Predicción de cuadros delimitadores por celda:
    Cada celda de la cuadrícula predice:

    • Coordenadas (x, y, anchura, altura) para el centro de la caja, y (w, h) para la anchura y la altura
    • Un valor de confianza: la probabilidad de que la celda contenga un objeto.
    • Probabilidad para cada clase de objeto: Una probabilidad para cada clase de objeto (por ejemplo, persona, coche, etc.).
  4. Detección de objetos:
    • Cada celda predice varias cajas delimitadoras (por ejemplo, 5) para los objetos que pueden estar dentro de ella.
    • Para cada casilla, se calcula una confianza, que representa la probabilidad de que un objeto esté presente en la casilla.
    • La confianza se combina con la probabilidad de cada clase para determinar qué objeto es más probable que esté presente en esa casilla.
  5. Filtrado de predicciones:
    • Umbralización: celdas con baja probabilidad de contener un objeto (por debajo de un umbral predefinido)
    • Así, cada casilla que supera el umbral predice una de las posibles clases de objetos con mayor probabilidad.
  6. Supresión no máxima (NMS):
    • El último paso consiste en aplicar la Supresión No Máxima para eliminar las predicciones redundantes. Si varias casillas predicen el mismo objeto, sólo se conserva la casilla con mayor confianza.
    • Este paso es esencial para reducir la duplicación de la detección y afinar la localización del objeto.

Red SxS y posibilidades

La red SxS determina el número de celdas en que se divide la imagen. El valor de S afecta directamente al número de predicciones que puede realizar el modelo. Por ejemplo:

  • Una cuadrícula de 7×7 producirá 49 celdas, cada una de las cuales predice un número fijo de cuadros delimitadores.
  • Aumentar el valor de S conduce a una cuadrícula más fina y, por tanto, a más celdas y potencialmente más predicciones para objetos pequeños. Sin embargo, también puede aumentar los falsos positivos si el modelo no está bien entrenado.

El tamaño de la cuadrícula se equilibra con la resolución de la imagen y la capacidad de detectar objetos de distintos tamaños. Una cuadrícula demasiado pequeña puede no ser capaz de captar pequeños detalles, mientras que una demasiado grande puede no ser eficiente para objetos más grandes.

 


Conclusión

YOLO es una potente herramienta de detección de objetos que equilibra velocidad y precisión. Su capacidad para funcionar en tiempo real la hace ideal para aplicaciones en las que la rapidez de respuesta es crucial. A medida que el modelo evoluciona, YOLO sigue siendo uno de los métodos de detección más utilizados en el campo de la visión artificial.