YOLO Vision 2026:

TrackZone con Ultralytics YOLO26#

¿Qué es TrackZone?#

Open TrackZone In Colab

TrackZone se especializa en supervisar objetos dentro de áreas designadas de un fotograma en lugar de en todo el fotograma. Construido sobre Ultralytics YOLO26, integra la detección de objetos y el seguimiento específicamente dentro de zonas para vídeos y fuentes de cámaras en directo. Los avanzados algoritmos de YOLO26 y las tecnologías de aprendizaje profundo lo convierten en la opción perfecta para casos de uso en tiempo real, ya que ofrece un seguimiento de objetos preciso y eficiente en aplicaciones como la supervisión de multitudes y la videovigilancia.



Watch: How to Track Objects in Region using Ultralytics YOLO26 | TrackZone 🚀

Ventajas del seguimiento de objetos en zonas (TrackZone)#

  • Análisis dirigido: El seguimiento de objetos dentro de zonas específicas permite obtener información más centrada, lo que posibilita una supervisión y un análisis precisos de las áreas de interés, como puntos de entrada o zonas restringidas.
  • Carga de trabajo posterior reducida: Al ignorar los objetos fuera de la zona, TrackZone elimina detecciones irrelevantes, por lo que hay menos objetos que contar, registrar o sobre los que recibir alertas en la lógica que construyas sobre ella. La detección todavía se ejecuta en un fotograma enmascarado de tamaño completo en lugar de un recorte ajustado de la zona, por lo que el beneficio es una salida más limpia y enfocada en lugar de una inferencia de modelo más rápida.
  • Seguridad mejorada: El seguimiento zonal mejora la vigilancia mediante la supervisión de áreas críticas, lo que ayuda 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 sea adaptable a diversos escenarios, desde espacios comerciales hasta entornos industriales, garantizando una integración y escalabilidad sin fisuras.

Aplicaciones en el mundo real#

AgriculturaTransporte
Plants Tracking in Field Using Ultralytics YOLO26Vehicles Tracking on Road using Ultralytics YOLO26
Seguimiento de plantas en campo usando Ultralytics YOLO26Seguimiento de vehículos en carretera usando Ultralytics YOLO26
TrackZone usando Ultralytics YOLO
# Run a trackzone example
yolo solutions trackzone show=True

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

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

TrackZone se basa en la lista region para saber qué parte del fotograma debe supervisar. Define el polígono para que coincida con la zona física que te interesa (puertas, cancelas, etc.) y mantén show=True activado durante la configuración para poder comprobar que la superposición coincide con la fuente de vídeo.

Definir la zona de seguimiento
  • Cada entrada de region es una coordenada de píxel (x, y) en el fotograma de vídeo. Enumera los puntos en el orden en que deben conectarse alrededor del perímetro del área que deseas supervisar.
  • Las coordenadas están vinculadas a la resolución del fotograma, por lo que una región dimensionada para una fuente de 1280×720 no coincidirá con una de 640×480. Mantén show=True durante la configuración para poder confirmar que la superposición coincide con tu fuente.
  • TrackZone reduce los puntos a su cierre convexo, por lo que una forma cóncava se simplifica en el polígono convexo más pequeño que contenga todos sus puntos. Para formas no cóncavas o varias áreas separadas, utiliza en su lugar la solución RegionCounter.
  • Si omites por completo region, se utilizará una zona predeterminada de [(75, 75), (565, 75), (565, 285), (75, 285)].

Argumentos de TrackZone#

Aquí tienes una tabla con los argumentos de TrackZone:

ArgumentoTipoPredeterminadoDescripción
modelstrNoneRuta a un archivo de modelo YOLO de Ultralytics.
regionlist o dictNonePuntos que definen la región de interés, ya sea una lista de tuplas (x, y) o un diccionario que mapea nombres de regiones a listas de puntos para múltiples regiones (solo RegionCounter). Cuando es None, las soluciones que requieren una región recurren a un valor predeterminado.
line_widthint2Grosor de línea para las cajas, puntos clave y recuentos que dibuja la solución.
verboseboolTrueHabilita el registro por fotograma de la solución sobre la forma de entrada, los recuentos de clases y la velocidad de procesamiento. La llamada de seguimiento en sí siempre es silenciosa.

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

ArgumentoTipoPredeterminadoDescripción
trackerstr'botsort.yaml'Especifica el algoritmo de seguimiento que se va a utilizar. Opciones integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Establece el umbral de confianza para las detecciones; valores más bajos permiten el seguimiento de más objetos, pero pueden incluir falsos positivos.
ioufloat0.7Establece el umbral de Intersection over Union (IoU) para filtrar detecciones superpuestas.
classeslistNoneFiltra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo realiza el seguimiento de las clases especificadas.
devicestrNoneEspecifica el dispositivo para la inferencia (por ejemplo, cpu, cuda:0 o 0). Permite a los usuarios seleccionar entre CPU, una GPU específica u otros dispositivos de computación para la ejecución del modelo.

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

ArgumentoTipoPredeterminadoDescripción
showboolFalseSi es True, muestra las imágenes o vídeos anotados en una ventana. Es útil para obtener retroalimentación visual inmediata durante el desarrollo o las pruebas.
show_confboolTrueMuestra la puntuación de confianza para cada detección junto a la etiqueta. Proporciona información sobre la certeza del modelo para cada detección.
show_labelsboolTrueMuestra las etiquetas para cada detección en la salida visual. Proporciona una comprensión inmediata de los objetos detectados.

Contar objetos dentro de la zona#

Cada llamada al rastreador devuelve un objeto SolutionResults cuyo atributo total_tracks contiene el número de objetos que se están rastreando actualmente dentro de la zona. Llévelo en cada fotograma para supervisar la ocupación en tiempo real, por ejemplo para registrar el nivel de actividad de un punto de entrada o zona restringida:

import cv2

from ultralytics import solutions

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

region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
trackzone = solutions.TrackZone(show=False, region=region_points, model="yolo26n.pt")

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = trackzone(im0)
    print(f"Objects currently in zone: {results.total_tracks}")  # live zone occupancy

cap.release()

FAQ#

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

    yolo solutions trackzone source="path/to/video.mp4" show=True
  • Con solo unas pocas líneas de código, puedes configurar el seguimiento de objetos en zonas específicas, facilitando su integración en tus 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))
    video_writer = cv2.VideoWriter("trackzone_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
    
    trackzone = solutions.TrackZone(
        show=True, region=[(150, 150), (1130, 150), (1130, 570), (150, 570)], model="yolo26n.pt"
    )
    
    while cap.isOpened():
        success, im0 = cap.read()
        if not success:
            break
        results = trackzone(im0)
        video_writer.write(results.plot_im)
    
    cap.release()
    video_writer.release()
    cv2.destroyAllWindows()
  • Configurar los puntos de zona para el procesamiento de vídeo con Ultralytics TrackZone es sencillo y personalizable. Puedes definir y ajustar directamente las zonas a través de un script de Python, lo que permite un control preciso sobre las áreas que deseas 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
    )

    Recuerda que TrackZone reduce los puntos a su cierre convexo, así que enuméralos en orden alrededor del perímetro del área que quieras supervisar.

  • Las tres soluciones funcionan con regiones, pero responden a preguntas diferentes:

    SoluciónÚsalo paraSalida típica
    TrackZoneRastrear objetos y monitorear la ocupación en vivo dentro de una única zona convexaIDs rastreados y total_tracks para la zona
    ObjectCounterContar objetos que cruzan una línea o entran y salen de una regiónConteos acumulativos de entrada y salida
    RegionCounterContar objetos dentro de una o más regiones arbitrarias (incluidas las no convexas)Conteos de objetos por región

    Elige TrackZone cuando quieras un seguimiento continuo dentro de un área, y RegionCounter cuando necesites varias zonas o una forma no convexa.

Comentarios