SO Development

Cómo utilizar YOLOv11 para la detección de objetos

La detección de objetos es fundamental en la visión artificial, ya que permite a las máquinas identificar y localizar objetos en imágenes y vídeos. Impulsa aplicaciones que abarcan desde vehículos autónomos y sistemas de vigilancia hasta análisis de comercio minorista e imágenes médicas. A lo largo de los años, se han desarrollado numerosos algoritmos y modelos, pero ninguno ha tenido un impacto tan significativo como la familia de modelos YOLO (You Only Look Once).

La serie YOLO es reconocida por su velocidad y precisión, ofreciendo capacidades de detección de objetos en tiempo real que han marcado un hito en el campo. YOLOv11, la última versión, se basa en sus predecesores con avances revolucionarios en arquitectura, precisión y eficiencia. Presenta características innovadoras que abordan las limitaciones previas y amplían los límites de lo posible en la detección de objetos.

Esta serie es una guía completa sobre el uso de YOLOv11 para la detección de objetos. Tanto si eres principiante que busca comprender los conceptos básicos como si eres un experto que busca dominar sus funcionalidades avanzadas, este tutorial cubre todo lo que necesitas saber. Al finalizar, estarás capacitado para configurar, entrenar e implementar YOLOv11 en diversos casos de uso, desde proyectos sencillos hasta implementaciones a gran escala.

Entendiendo YOLOv11

Evolución de los modelos YOLO

La trayectoria de YOLO comenzó con YOLOv1, presentado en 2016 por Joseph Redmon. Su principal innovación fue tratar la detección de objetos como un problema de regresión, prediciendo cuadros delimitadores y probabilidades de clase directamente a partir de imágenes en una sola pasada. Con el tiempo, las versiones posteriores (YOLOv2, YOLOv3, etc.) mejoraron la precisión, ampliaron la compatibilidad con múltiples escalas y optimizaron las capacidades de extracción de características.

YOLOv11 representa la culminación de esta evolución. Integra técnicas avanzadas como redes troncales basadas en transformadores, redes piramidales de características mejoradas y mecanismos sin anclajes mejorados. Estas mejoras hacen que YOLOv11 no solo sea más rápido, sino también más robusto en el manejo de conjuntos de datos complejos y entornos diversos.

Avances clave en YOLOv11
  • Arquitectura de red troncal mejorada: YOLOv11 emplea una estructura híbrida que combina capas convolucionales y de transformación, lo que proporciona una representación de características superior.
  • Diseño de cabezal dinámico: El cabezal de detección se adapta dinámicamente a diferentes escalas de objetos, mejorando la precisión para objetos pequeños y superpuestos.
  • Mejor anclaje: La detección sin ancla reduce la necesidad de ajuste manual, agilizando el entrenamiento y la inferencia.
  • Optimización para dispositivos perimetrales: YOLOv11 está optimizado para su implementación en dispositivos con recursos limitados, lo que permite una computación perimetral eficiente.
Aplicaciones de YOLOv11
  • Conducción Autónoma: Detección en tiempo real de peatones, vehículos y señales de tráfico.
  • Cuidado de la salud: Identificación de anomalías en imágenes médicas.
  • Análisis minorista: Monitoreo del comportamiento del cliente y seguimiento del inventario.
  • Vigilancia: Mejora de la seguridad mediante la detección de objetos en las transmisiones de vídeo.
detección de objetos

Configuración de YOLOv11

Requisitos del sistema

Para lograr un rendimiento óptimo con YOLOv11, asegúrese de que su sistema cumpla con los siguientes requisitos:

  • hardware:

    • GPU con al menos 8 GB de VRAM (recomendado NVIDIA).
    • CPU con múltiples núcleos para tareas de preprocesamiento.
    • Mínimo 16 GB de RAM.
  • Software:

Proceso de instalación
  1. Clonar el repositorio:

git clone https://github.com/your-repo/yolov11.git
cd yolov11

2. Instalar dependencias:

Cree un entorno virtual e instale los paquetes necesarios:

pip install -r requirements.txt

3. Verificar la instalación:
Ejecute un script de prueba para asegurarse de que YOLOv11 esté instalado correctamente:

python test_installation.py
Prerrequisitos y dependencias

Familiaridad con la programación Python, conceptos básicos de aprendizaje automático y experiencia con herramientas como PyTorch or TensorFlow Le ayudará a aprovechar al máximo esta guía.

Configurar modelos

Introducción a YOLOv11

Descarga de modelos preentrenados

Los modelos YOLOv11 preentrenados están disponibles para su descarga desde repositorios oficiales o colaboradores de la comunidad. Elija la variante del modelo (p. ej., pequeña, mediana, grande) según su caso de uso y recursos computacionales.

wget https://path-to-yolov11-model/yolov11-large.pt
Comprensión de los archivos de configuración de YOLOv11

Los archivos de configuración determinan la arquitectura del modelo, las rutas de los conjuntos de datos y los parámetros de entrenamiento. Las secciones clave incluyen:

  • Arquitectura modelo: Define las capas y conexiones.
  • Rutas del conjunto de datos: Especifica las ubicaciones de los conjuntos de datos de entrenamiento y validación.
  • Hiperparámetros: Establece tasas de aprendizaje, tamaños de lotes y configuraciones del optimizador.
Preparación del conjunto de datos

YOLOv11 admite formatos como COCO y Pascal VOC. Anote sus imágenes con herramientas como LabelImg o Roboflow y asegúrese de que las anotaciones se guarden en el formato correcto.

Entrenamiento YOLOv11

Configuración de hiperparámetros

Personalice los siguientes parámetros en el archivo de configuración:

  • Tamaño del lote: Ajuste según la memoria de la GPU.
  • Tasa de aprendizaje: Utilice un programador para realizar ajustes dinámicos.
  • Épocas: Conjunto basado en el tamaño y la complejidad del conjunto de datos.
Capacitación sobre conjuntos de datos personalizados

Ejecute el script de entrenamiento con su conjunto de datos:

python train.py --cfg yolov11.yaml --data my_dataset.yaml --epochs 50
Uso del aprendizaje por transferencia

Aproveche los pesos previamente entrenados para ajustar YOLOv11 en su conjunto de datos, reduciendo el tiempo de entrenamiento:

python train.py --weights yolov11-pretrained.pt --data my_dataset.yaml
modelos de entrenamiento

Inferencia con YOLOv11

Una vez que su modelo YOLOv11 esté entrenado, es hora de ponerlo a trabajar ejecutando inferencias en imágenes, videos o transmisiones de cámaras en vivo.

Ejecución de inferencias en imágenes

Para realizar inferencias en una sola imagen, utilice el script de inferencia proporcionado en el repositorio YOLOv11:

python detect.py --weights yolov11.pt --img 640 --source path/to/image.jpg
  • --weights: Ruta hacia los pesos YOLOv11 entrenados.
  • --img: Tamaño de la imagen de entrada (por ejemplo, 640×640).
  • --source: Ruta al archivo de imagen.
Ejecución de inferencias en vídeos

Para procesar archivos de vídeo, especifique la ruta del vídeo como fuente:

python detect.py --weights yolov11.pt --img 640 --source path/to/video.mp4

El resultado mostrará los objetos detectados con cuadros delimitadores, etiquetas de clase y puntuaciones de confianza. Los resultados se pueden guardar añadiendo el --save-txt y --save-img banderas.

Inferencia en tiempo real

Para transmisiones de video en vivo, como las de una cámara web:

python detect.py --weights yolov11.pt --source 0

Aquí, --source 0 Especifica la cámara predeterminada. La inferencia en tiempo real requiere una alta eficiencia computacional, y la arquitectura de YOLOv11 garantiza un rendimiento fluido en hardware compatible.

Optimización de la velocidad de inferencia

Si la velocidad de inferencia es una prioridad, considere estas optimizaciones:

  • Utilice un modelo más pequeño: Elija una variante ligera de YOLOv11 (por ejemplo, YOLOv11-tiny).
  • Precisión FP16: Habilite la inferencia de precisión mixta para realizar cálculos más rápidos.
python detect.py --weights yolov11.pt --img 640 --source path/to/image.jpg --half
  • Conversión ONNX: Convierta YOLOv11 a ONNX o TensorRT para su implementación en hardware especializado.
modelos de inferencia

Temas avanzados

Ajuste fino y optimización del modelo

El ajuste de YOLOv11 implica el reentrenamiento con conjuntos de datos específicos del dominio para mejorar la precisión. Ajustar hiperparámetros como la disminución de la tasa de aprendizaje y las tasas de abandono puede mejorar la generalización del modelo.

Además, las técnicas de poda y cuantificación reducen el tamaño del modelo y mejoran la velocidad de inferencia sin una pérdida significativa de precisión.

Implementación en dispositivos perimetrales

YOLOv11 está optimizado para su implementación en dispositivos periféricos como NVIDIA Jetson Nano, Frambuesa Pi o TPU coralPara implementar:

  1. Convertir el modelo entrenado a ONNX:

python export.py --weights yolov11.pt --img 640 --batch 1

Optimice el modelo ONNX con TensorRT:

trtexec --onnx=model.onnx --saveEngine=model.engine
  1. Cargue el modelo en el dispositivo de borde y ejecute la inferencia.

Integración de YOLOv11 en sistemas más grandes

YOLOv11 se puede integrar en sistemas integrales mediante API como Flask, FastAPI o Django. Por ejemplo:

  1. Créar un REST API punto final para la inferencia.
  2. Cargue los pesos del modelo YOLOv11 en el script del servidor.
  3. Procesa las imágenes entrantes y devuelve los resultados de detección en formato JSON.

Desafíos comunes y resolución de problemas

Overfitting y Underfitting
  • Sobreajuste: Utilice técnicas de aumento de datos (por ejemplo, inversión, escalamiento) y aplique regularización.
  • Adecuado: Aumente la complejidad del modelo o la duración del entrenamiento y asegúrese de que el conjunto de datos represente escenarios del mundo real.
Depuración de errores de entrenamiento
  1. El entrenamiento diverge: Verifique las tasas de aprendizaje y reduzca el tamaño del lote.
  2. Sin detecciones: Verificar las anotaciones y etiquetas del conjunto de datos.
  3. Baja exactitud: Ajuste los anclajes o habilite el entrenamiento multiescala.
La optimización del rendimiento
  • Utilice la acumulación de gradiente para conjuntos de datos grandes.
  • Aproveche el entrenamiento distribuido en múltiples GPU.
Los principales desafíos de la IA

YOLOv11 en la práctica

Casos Prácticos

1. Drones Autónomos:
Una empresa de drones utilizó YOLOv11 para identificar objetos en vuelo, lo que permitió evitar colisiones y entregarlos. La capacidad de detección en tiempo real del modelo permitió un funcionamiento fluido en entornos dinámicos.

2. Análisis minorista:
YOLOv11 se integró en una plataforma de análisis minorista para monitorear el movimiento de los clientes y los niveles de inventario, ofreciendo información valiosa a los gerentes de tiendas.

Implementaciones de código abierto

Explora proyectos en GitHub que amplían las funcionalidades de YOLOv11, como el seguimiento de múltiples cámaras o el conteo de objetos.

El futuro de la detección de objetos y YOLO

A medida que la visión artificial evoluciona, tendencias como el aprendizaje autosupervisado, las arquitecturas basadas en transformadores y la integración multimodal (que combina la visión con el lenguaje) moldearán el campo. Las innovaciones de YOLOv11 lo posicionan como un actor clave en esta trayectoria, sentando una base sólida para futuros avances.

Las posibles mejoras incluyen:

  • Modelos más eficientes energéticamente.
  • Mejor manejo de casos extremos, como oclusiones o ataques adversarios.
  • Integración con sistemas de realidad aumentada y virtual.
Aplicaciones de detección de objetos en el mundo real: mejoradas

Conclusión

YOLOv11 representa un avance significativo en la tecnología de detección de objetos, combinando precisión de vanguardia con una velocidad inigualable. Su versatilidad lo hace ideal para una amplia gama de aplicaciones, desde vigilancia en tiempo real hasta sistemas integrados.

Esta guía le ha guiado a través de cada aspecto del uso de YOLOv11, desde la configuración y la capacitación hasta la implementación y la optimización. A medida que implemente YOLOv11 en sus proyectos, experimente con sus funciones avanzadas y explore los límites de lo posible en visión artificial.

El futuro es prometedor para la detección de objetos, y con YOLOv11, estás bien preparado para formar parte de este emocionante viaje. ¡Feliz programación!

Visite nuestro servicio de anotación de datos


Esto cerrará en 20 segundos