Ir al contenido

TrackZone con Ultralytics YOLO11

Abrir TrackZone en Colab

¿Qué es TrackZone?

TrackZone se especializa en el seguimiento de objetos dentro de áreas designadas de un marco en lugar de todo el marco. Basado en Ultralytics YOLO11integra la detección y el seguimiento de objetos específicamente dentro de zonas para vídeos y secuencias de cámaras en directo. YOLO11 Los algoritmos avanzados y las tecnologías de aprendizaje profundo de TrackZone lo convierten en la opción perfecta para casos de uso en tiempo real, ya que ofrece un seguimiento de objetos preciso y eficaz en aplicaciones como la vigilancia y el control de multitudes.



Observa: Cómo rastrear objetos en una región usando Ultralytics YOLO11 | Zona de seguimiento 🚀

Ventajas del seguimiento de objetos por zonas (TrackZone)

  • Análisis específicos: El seguimiento de objetos dentro de zonas específicas permite obtener información más específica, lo que posibilita la supervisión y el análisis precisos de áreas de interés, como puntos de entrada o zonas restringidas.
  • Mayor eficacia: Al limitar el alcance del seguimiento a zonas definidas, TrackZone reduce la sobrecarga computacional, lo que garantiza un procesamiento más rápido y un rendimiento óptimo.
  • Mayor seguridad: El seguimiento zonal mejora la vigilancia mediante la supervisión de áreas críticas, ayudando a la detección temprana de actividades inusuales o brechas de seguridad.
  • Soluciones escalables: La capacidad de centrarse en zonas específicas hace que TrackZone se adapte a diversos escenarios, desde espacios comerciales hasta entornos industriales, garantizando una integración y escalabilidad perfectas.

Aplicaciones en el mundo real

Agricultura Transporte
Seguimiento de plantas sobre el terreno Ultralytics YOLO11 Seguimiento de vehículos en carretera mediante Ultralytics YOLO11
Seguimiento de plantas sobre el terreno Ultralytics YOLO11 Seguimiento de vehículos en carretera mediante Ultralytics YOLO11

TrackZone con Ultralytics YOLO

# Run a trackzone example
yolo solutions trackzone show=True

# Pass a source video
yolo solutions trackzone show=True source="path/to/video.mp4"

# Pass region coordinates
yolo solutions trackzone show=True region="[(150, 150), (1130, 150), (1130, 570), (150, 570)]"
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("trackzone_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init trackzone (object tracking in zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
    model="yolo11n.pt",  # use any model that Ultralytics support, i.e. YOLOv9, YOLOv10
    # line_width=2,  # adjust the line width for bounding boxes and text display
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = trackzone(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the video file

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

TrackZone Argumentos

Aquí tiene una tabla con los TrackZone argumentos:

Argumento Tipo Por defecto Descripción
model str None Ruta al archivo del modeloYOLO Ultralytics .
region list [(20, 400), (1260, 400)] Lista de puntos que definen la región de recuento.

La solución TrackZone incluye compatibilidad con track parámetros:

Argumento Tipo Por defecto Descripción
tracker str 'botsort.yaml' Especifica el algoritmo de seguimiento a utilizar, por ejemplo, bytetrack.yaml o botsort.yaml.
conf float 0.3 Establece el umbral de confianza para las detecciones; los valores más bajos permiten rastrear más objetos pero pueden incluir falsos positivos.
iou float 0.5 Establece el umbral de intersección sobre unión (IoU) para filtrar las detecciones solapadas.
classes list None Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] sólo rastrea las clases especificadas.
verbose bool True Controla la visualización de los resultados del rastreo, proporcionando una salida visual de los objetos rastreados.
device str None Especifica el dispositivo para la inferencia (por ejemplo, cpu, cuda:0 o 0). Permite a los usuarios seleccionar entre CPU, un GPU específico u otros dispositivos de cálculo para la ejecución del modelo.

Además, dispone de las siguientes opciones de visualización:

Argumento Tipo Por defecto Descripción
show bool False Si Truemuestra las imágenes o vídeos anotados en una ventana. Resulta útil para obtener información visual inmediata durante el desarrollo o las pruebas.
line_width None or int None Especifica el ancho de línea de los cuadros delimitadores. Si NoneEl ancho de línea se ajusta automáticamente en función del tamaño de la imagen. Proporciona personalización visual para mayor claridad.

PREGUNTAS FRECUENTES

¿Cómo puedo rastrear objetos en un área o zona específica de un fotograma de vídeo utilizando Ultralytics YOLO11 ?

El seguimiento de objetos en un área o zona definida de un fotograma de vídeo es sencillo con Ultralytics YOLO11 . Basta con utilizar el comando que se proporciona a continuación para iniciar el seguimiento. Este enfoque garantiza un análisis eficaz y unos resultados precisos, por lo que resulta ideal para aplicaciones como la vigilancia, la gestión de multitudes o cualquier escenario que requiera un seguimiento zonal.

yolo solutions trackzone source="path/to/video.mp4" show=True

¿Cómo puedo utilizar TrackZone en Python con Ultralytics YOLO11 ?

Con unas pocas líneas de código, puede configurar el seguimiento de objetos en zonas específicas, lo que facilita la integración en sus proyectos.

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Video writer
video_writer = cv2.VideoWriter("object_counting_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init trackzone (object tracking in zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
    model="yolo11n.pt",
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break
    results = trackzone(im0)
    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

¿Cómo configuro los puntos de zona para el procesamiento de vídeo mediante Ultralytics TrackZone?

La configuración de puntos de zona para el procesamiento de vídeo con Ultralytics TrackZone es sencilla y personalizable. Puede definir y ajustar directamente las zonas a través de un script Python , lo que permite un control preciso de las áreas que desea supervisar.

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Initialize trackzone
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
)
Creado hace 3 meses ✏️ Actualizado hace 5 días

Comentarios