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 |
TrackZone utilizando YOLO11 Ejemplo
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.
驴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
)