Ultralytics YOLO27:
Get Started

Descripción general de los conjuntos de datos de seguimiento de múltiples objetos#

El seguimiento de múltiples objetos es un componente fundamental del análisis de vídeo: identifica objetos y mantiene un ID único para cada objeto detectado a lo largo de los fotogramas del vídeo. Ultralytics YOLO ofrece potentes capacidades de seguimiento que pueden aplicarse a diversos ámbitos, como la vigilancia, el análisis deportivo y la monitorización del tráfico.

Formato del conjunto de datos#

El modo de seguimiento no entrena un rastreador ni requiere un conjunto de datos específico para rastreadores. Entrena un modelo de detección, segmentación, pose u OBB con el formato estándar del conjunto de datos correspondiente a esa tarea y, después, usa los pesos resultantes con model.track() o yolo track. El rastreador seleccionado asocia las predicciones del modelo entre fotogramas durante la inferencia.

Rastreadores disponibles#

Ultralytics YOLO es compatible con los siguientes algoritmos de seguimiento:

  • BoT-SORT - Usa botsort.yaml para habilitar este rastreador
  • ByteTrack - Usa bytetrack.yaml para habilitar este rastreador
  • OC-SORT - Usa ocsort.yaml para habilitar este rastreador
  • Deep OC-SORT - Usa deepocsort.yaml para habilitar este rastreador
  • FastTracker - Usa fasttrack.yaml para habilitar este rastreador
  • TrackTrack - Usa tracktrack.yaml para habilitar este rastreador (opción predeterminada)

Uso#

Ejemplo
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.1, iou=0.7, show=True)

Mantener las trayectorias entre fotogramas#

Para realizar un seguimiento continuo entre fotogramas de vídeo, puedes usar el parámetro persist=True:

Ejemplo
import cv2

from ultralytics import YOLO

# Cargar el modelo YOLO
model = YOLO("yolo26n.pt")

# Abre el archivo de vídeo
cap = cv2.VideoCapture("path/to/video.mp4")

while cap.isOpened():
    success, frame = cap.read()
    if success:
        # Ejecuta el seguimiento manteniendo la continuidad entre fotogramas
        results = model.track(frame, persist=True)

        # Visualizar los resultados
        annotated_frame = results[0].plot()
        cv2.imshow("Tracking", annotated_frame)

        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
    else:
        break

cap.release()
cv2.destroyAllWindows()

Preguntas frecuentes#

  • Para usar el seguimiento de múltiples objetos con Ultralytics YOLO, puedes empezar con los ejemplos de Python o CLI proporcionados. Así puedes empezar:

    Ejemplo
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")  # Carga el modelo YOLO26
    results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.1, iou=0.7, show=True)

    Estos comandos cargan el modelo YOLO26 y lo utilizan para seguir objetos en la fuente de vídeo indicada, con umbrales específicos de confianza (conf) y de intersección sobre unión (iou). Para obtener más información, consulta la documentación del modo de seguimiento.

  • Ultralytics YOLO es un modelo de detección de objetos de última generación, conocido por su rendimiento en tiempo real y su precisión. Usar YOLO para el seguimiento de múltiples objetos ofrece varias ventajas:

    • Seguimiento en tiempo real: Consigue un seguimiento rápido y eficiente, ideal para entornos dinámicos.
    • Flexibilidad con modelos preentrenados: No hace falta entrenar desde cero; basta con usar modelos preentrenados de detección, segmentación, pose u OBB.
    • Facilidad de uso: La sencilla integración de la API con Python y CLI facilita la configuración de flujos de seguimiento.
    • Documentación exhaustiva y apoyo de la comunidad: Ultralytics ofrece documentación completa y un foro comunitario activo para resolver problemas y mejorar tus modelos de seguimiento.

    Para obtener más información sobre cómo configurar y usar YOLO para el seguimiento, consulta nuestra guía de uso del seguimiento.

  • Sí. Entrena un modelo de detección, segmentación, pose u OBB con tu conjunto de datos personalizado y, después, pasa sus pesos a model.track(). El rastreador se ejecuta durante la inferencia y no requiere datos de entrenamiento independientes.

  • Después de ejecutar una tarea de seguimiento con Ultralytics YOLO, los resultados incluyen varios datos, como los ID de los objetos seguidos, sus cajas delimitadoras y las puntuaciones de confianza. Aquí tienes una breve descripción de cómo interpretar estos resultados:

    • ID de seguimiento: Cada objeto recibe un ID único que permite seguirlo a lo largo de los fotogramas.
    • Cajas delimitadoras: Indican la ubicación de los objetos seguidos dentro del fotograma.
    • Puntuaciones de confianza: Reflejan la confianza del modelo al detectar el objeto seguido.

    Para obtener instrucciones detalladas sobre cómo interpretar y visualizar estos resultados, consulta la guía de gestión de resultados.

  • Puedes personalizar el rastreador creando una versión modificada del archivo de configuración del rastreador. Copia un archivo de configuración existente de ultralytics/cfg/trackers, modifica los parámetros según sea necesario e indica este archivo al ejecutar el rastreador:

    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    results = model.track(source="video.mp4", tracker="custom_tracker.yaml")

Comentarios