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.yamlpara habilitar este rastreador - ByteTrack - Usa
bytetrack.yamlpara habilitar este rastreador - OC-SORT - Usa
ocsort.yamlpara habilitar este rastreador - Deep OC-SORT - Usa
deepocsort.yamlpara habilitar este rastreador - FastTracker - Usa
fasttrack.yamlpara habilitar este rastreador - TrackTrack - Usa
tracktrack.yamlpara habilitar este rastreador (opción predeterminada)
Uso#
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:
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:
Ejemplofrom 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")