Link to this sectionTrackZone con Ultralytics YOLO26#
Link to this section¿Qué es TrackZone?#
TrackZone se especializa en monitorear objetos dentro de áreas designadas de un fotograma en lugar del fotograma completo. Construido sobre Ultralytics YOLO26, integra la detección de objetos y el seguimiento específicamente dentro de zonas para vídeos y transmisiones de cámaras en directo. Los algoritmos avanzados y las tecnologías de deep learning de YOLO26 lo convierten en una opción perfecta para casos de uso en tiempo real, ofreciendo un seguimiento de objetos preciso y eficiente en aplicaciones como el monitoreo de multitudes y la vigilancia.
Watch: How to Track Objects in Region using Ultralytics YOLO26 | TrackZone 🚀
Link to this sectionVentajas 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.
Link to this sectionAplicaciones en el mundo real#
| Agricultura | Transporte |
|---|---|
| Seguimiento de plantas en campo usando Ultralytics YOLO26 | Seguimiento de vehículos en carretera usando Ultralytics YOLO26 |
# 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 depende de la lista region para saber qué parte del fotograma supervisar. Define el polígono para que coincida con la zona física que te interesa (puertas, entradas, etc.) y mantén show=True habilitado mientras configuras para poder verificar que la superposición se alinea con el vídeo.
- Cada entrada en
regiones 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 monitorear. - Las coordenadas están vinculadas a la resolución del fotograma, por lo que una región dimensionada para una transmisión de 1280×720 no se alineará con una de 640×480. Mantén
show=Truemientras configuras para que puedas confirmar que la superposición coincide con tu transmisión. TrackZonereduce los puntos a su convex hull, por lo que una forma cóncava se simplifica al polígono convexo más pequeño que contiene todos sus puntos. Para formas no convexas o varias áreas separadas, utiliza la solución RegionCounter en su lugar.- Si omites
regionpor completo, se utiliza una zona predeterminada de[(75, 75), (565, 75), (565, 285), (75, 285)].
Link to this sectionArgumentos de TrackZone#
Aquí tienes una tabla con los argumentos de TrackZone:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
model | str | None | Ruta a un archivo de modelo YOLO de Ultralytics. |
region | list o dict | None | Puntos que definen la región de interés, ya sea una lista de tuplas (x, y) o un diccionario que asocia nombres de regiones con listas de puntos para múltiples regiones (solo RegionCounter). Cuando es None, las soluciones que requieren una región recurren a un valor predeterminado. |
La solución TrackZone incluye soporte para parámetros de track:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Especifica el algoritmo de seguimiento a utilizar. Opciones integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | Establece el umbral de confianza para las detecciones; valores más bajos permiten el seguimiento de más objetos, pero pueden incluir falsos positivos. |
iou | float | 0.7 | Establece el umbral de Intersection over Union (IoU) para filtrar detecciones superpuestas. |
classes | list | None | Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo rastrea las clases especificadas. |
verbose | bool | True | Controla la visualización de los resultados de seguimiento, proporcionando una salida visual de los objetos rastreados. |
device | str | None | Especifica el dispositivo para la inferencia (p. ej., 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:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
show | bool | False | Si es True, muestra las imágenes o vídeos anotados en una ventana. Útil para una retroalimentación visual inmediata durante el desarrollo o las pruebas. |
line_width | int or None | None | Especifica el ancho de línea de los cuadros delimitadores. Si es None, el ancho de línea se ajusta automáticamente según el tamaño de la imagen. Proporciona personalización visual para mayor claridad. |
show_conf | bool | True | Muestra 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_labels | bool | True | Muestra las etiquetas para cada detección en la salida visual. Proporciona una comprensión inmediata de los objetos detectados. |
Link to this sectionContar objetos dentro de la zona#
Cada llamada al tracker devuelve un objeto SolutionResults cuyo atributo total_tracks contiene el número de objetos rastreados actualmente dentro de la zona. Lléelo en cada fotograma para monitorear la ocupación en vivo, por ejemplo, para registrar qué tan ocupado está un punto de entrada o un área 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()Link to this sectionFAQ#
Link to this section¿Cómo realizo el seguimiento de objetos en un área o zona específica de un fotograma de vídeo usando Ultralytics YOLO26?#
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=TrueLink to this section¿Cómo puedo usar TrackZone en Python con Ultralytics YOLO26?#
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()Link to this section¿Cómo configuro los puntos de zona para el procesamiento de vídeo usando Ultralytics TrackZone?#
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 convex hull, así que enuméralos en orden alrededor del perímetro del área que deseas monitorear.
Link to this section¿Cuándo debería usar TrackZone en lugar de ObjectCounter o RegionCounter?#
Las tres soluciones funcionan con regiones, pero responden a preguntas diferentes:
| Solución | Úsalo para | Salida típica |
|---|---|---|
| TrackZone | Rastrear objetos y monitorear la ocupación en vivo dentro de una única zona convexa | IDs rastreados y total_tracks para la zona |
| ObjectCounter | Contar objetos que cruzan una línea o entran y salen de una región | Conteos acumulativos de entrada y salida |
| RegionCounter | Contar objetos dentro de una o más regiones arbitrarias (incluidas las no convexas) | Conteos de objetos por región |
Elige TrackZone cuando desees un seguimiento continuo dentro de un área, y RegionCounter cuando necesites múltiples zonas o una forma no convexa.