Ir al contenido

TrackZone con Ultralytics YOLO11

驴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.

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 utilizando YOLO11 Ejemplo

# Run a trackzone example
yolo solutions trackzone show=True

# Pass a source video
yolo solutions trackzone show=True source="path/to/video/file.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/file.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",  # You can use any model that Ultralytics support, i.e. YOLOv9, YOLOv10
    # line_width=2,  # Adjust the line width for bounding boxes and text display
    # classes=[0, 2],  # If you want to count specific classes i.e. person and car with COCO pretrained model.
)

# 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
    im0 = trackzone.trackzone(im0)
    video_writer.write(im0)

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

Argumento TrackZone

Aqu铆 tiene una tabla con los TrackZone argumentos:

Nombre Tipo Por defecto Descripci贸n
model str None Ruta de acceso al archivo del modelo Ultralytics YOLO
region list [(150, 150), (1130, 150), (1130, 570), (150, 570)] Lista de puntos que definen la regi贸n de seguimiento del objeto.
line_width int 2 Grosor de l铆nea de los cuadros delimitadores.
show bool False Indicador para controlar si se muestra el flujo de v铆deo.

Argumentos model.track

Argumento Tipo Por defecto Descripci贸n
source str None Especifica el directorio de origen de las im谩genes o v铆deos. Admite rutas de archivo y URL.
persist bool False Permite el seguimiento persistente de objetos entre fotogramas, manteniendo los ID en todas las secuencias de v铆deo.
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.

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/file.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/file.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
    im0 = trackzone.trackzone(im0)
    video_writer.write(im0)

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)]

# Init TrackZone (Object Tracking in Zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # Display the output
    region=region_points,  # Pass region points
)
Creado hace 8 d铆as 鉁忥笍 Actualizado hace 8 d铆as

Comentarios