Descripción general de los datasets de seguimiento multiobjeto#
El seguimiento multiobjeto es un componente fundamental en el análisis de vídeo que identifica objetos y mantiene identificadores únicos para cada objeto detectado a través 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 de dataset#
El modo track no entrena un tracker ni requiere un dataset específico para trackers. Entrena un modelo de detección, segmentación, pose u OBB con el formato de dataset estándar de dicha tarea, y luego usa los pesos resultantes con model.track() o yolo track. El tracker seleccionado asocia las predicciones del modelo entre fotogramas en el momento de 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 (por defecto)
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)Persistencia de seguimientos entre fotogramas#
Para un seguimiento continuo a través de los fotogramas de vídeo, puedes utilizar el parámetro persist=True:
import cv2
from ultralytics import YOLO
# Load the YOLO model
model = YOLO("yolo26n.pt")
# Open the video file
cap = cv2.VideoCapture("path/to/video.mp4")
while cap.isOpened():
success, frame = cap.read()
if success:
# Run tracking with persistence between frames
results = model.track(frame, persist=True)
# Visualize the results
annotated_frame = results[0].plot()
cv2.imshow("Tracking", annotated_frame)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
else:
break
cap.release()
cv2.destroyAllWindows()FAQ#
Para utilizar el seguimiento multiobjeto con Ultralytics YOLO, puedes empezar empleando los ejemplos de Python o CLI proporcionados. Así es como puedes empezar:
Ejemplofrom ultralytics import YOLO model = YOLO("yolo26n.pt") # Load the YOLO26 model 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 realizar el seguimiento de objetos en la fuente de vídeo proporcionada con umbrales específicos de confianza (
conf) y Intersection over Union (iou). Para más detalles, consulta la documentación del modo track.Ultralytics YOLO es un modelo de object detection de última generación conocido por su rendimiento en tiempo real y su alta accuracy. El uso de YOLO para el seguimiento de múltiples objetos ofrece varias ventajas:
- Seguimiento en tiempo real: Consigue un seguimiento eficiente y de alta velocidad, ideal para entornos dinámicos.
- Flexibilidad con modelos preentrenados: No es necesario entrenar desde cero; simplemente utiliza modelos preentrenados de detección, segmentación, pose u OBB.
- Facilidad de uso: La integración sencilla de la API tanto con Python como con la CLI hace que la configuración de los pipelines de seguimiento sea directa.
- Documentación extensa y apoyo de la comunidad: Ultralytics proporciona una documentación exhaustiva y un foro comunitario activo para solucionar problemas y mejorar tus modelos de seguimiento.
Para obtener más detalles sobre cómo configurar y utilizar YOLO para el seguimiento, visita nuestra guía de uso del modo track.
Sí. Entrena un modelo de detección, segmentación, pose u OBB con tu dataset personalizado y luego pasa sus pesos a
model.track(). El tracker en sí se ejecuta durante la inferencia y no requiere datos de entrenamiento independientes.Tras ejecutar una tarea de seguimiento con Ultralytics YOLO, los resultados incluyen varios puntos de datos, como los identificadores de los objetos rastreados, sus cuadros delimitadores (bounding boxes) y las puntuaciones de confianza. Aquí tienes una breve descripción de cómo interpretar estos resultados:
- Identificadores rastreados (Tracked IDs): A cada objeto se le asigna un identificador único, lo que ayuda a realizar su seguimiento a través de los fotogramas.
- Cuadros delimitadores (Bounding boxes): Indican la ubicación de los objetos rastreados dentro del fotograma.
- Puntuaciones de confianza (Confidence scores): Reflejan la confianza del modelo en la detección del objeto rastreado.
Para obtener una guía detallada 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 de rastreador existente desde ultralytics/cfg/trackers, modifica los parámetros según sea necesario y especifica este archivo al ejecutar el rastreador:
from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model.track(source="video.mp4", tracker="custom_tracker.yaml")