TrackZone usando Ultralytics YOLO11
O que é TrackZone?
O TrackZone é especializado em monitorar objetos dentro de áreas designadas de um frame, em vez do frame inteiro. Construído sobre o Ultralytics YOLO11, ele integra detecção e rastreamento de objetos especificamente dentro de zonas para vídeos e feeds de câmeras ao vivo. Os algoritmos avançados do YOLO11 e as tecnologias de aprendizado profundo o tornam a escolha perfeita para casos de uso em tempo real, oferecendo rastreamento de objetos preciso e eficiente em aplicações como monitoramento de multidões e vigilância.
Ver: Como Rastrear Objetos na Região usando Ultralytics YOLO11 | TrackZone 🚀
Vantagens do Rastreamento de Objetos em Zonas (TrackZone)?
- Análise Direcionada: Rastrear objetos dentro de zonas específicas permite insights mais focados, possibilitando o monitoramento e análise precisos de áreas de interesse, como pontos de entrada ou zonas restritas.
- Eficiência Aprimorada: Ao restringir o escopo de rastreamento a zonas definidas, o TrackZone reduz a sobrecarga computacional, garantindo um processamento mais rápido e um desempenho ideal.
- Segurança Aprimorada: O rastreamento zonal melhora a vigilância monitorando áreas críticas, auxiliando na detecção precoce de atividades incomuns ou violações de segurança.
- Soluções Escaláveis: A capacidade de focar em zonas específicas torna o TrackZone adaptável a vários cenários, desde espaços de varejo até ambientes industriais, garantindo integração e escalabilidade perfeitas.
Aplicações no Mundo Real
Agricultura | Transporte |
---|---|
![]() |
![]() |
Rastreamento de Plantas no Campo Usando Ultralytics YOLO11 | Rastreamento de Veículos na Estrada usando Ultralytics YOLO11 |
TrackZone usando 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
Aqui está uma tabela com o TrackZone
argumentos:
Argumento | Tipo | Predefinição | Descrição |
---|---|---|---|
model |
str |
None |
Caminho para o arquivo do modelo Ultralytics YOLO. |
region |
list |
'[(20, 400), (1260, 400)]' |
Lista de pontos que definem a região de contagem. |
A solução TrackZone inclui suporte para track
parâmetros:
Argumento | Tipo | Predefinição | Descrição |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
Especifica o algoritmo de rastreamento a ser usado, por exemplo, bytetrack.yaml ou botsort.yaml . |
conf |
float |
0.3 |
Define o limite de confiança para detecções; valores mais baixos permitem que mais objetos sejam rastreados, mas podem incluir falsos positivos. |
iou |
float |
0.5 |
Define o limite de Intersecção sobre União (IoU) para filtrar detecções sobrepostas. |
classes |
list |
None |
Filtra os resultados por índice de classe. Por exemplo, classes=[0, 2, 3] rastreia apenas as classes especificadas. |
verbose |
bool |
True |
Controla a exibição dos resultados de rastreamento, fornecendo uma saída visual dos objetos rastreados. |
device |
str |
None |
Especifica o dispositivo para inferência (por exemplo, cpu , cuda:0 ou 0 ). Permite aos utilizadores selecionar entre CPU, um GPU específico, ou outros dispositivos de computação para a execução do modelo. |
Além disso, as seguintes opções de visualização estão disponíveis:
Argumento | Tipo | Predefinição | Descrição |
---|---|---|---|
show |
bool |
False |
Se True apresenta as imagens ou vídeos anotados numa janela. Útil para feedback visual imediato durante o desenvolvimento ou teste. |
line_width |
None or int |
None |
Especifica a largura da linha das caixas delimitadoras. Se None A largura da linha é ajustada automaticamente com base no tamanho da imagem. Proporciona uma personalização visual para maior clareza. |
show_conf |
bool |
True |
Apresenta a pontuação de confiança para cada deteção ao lado da etiqueta. Dá uma ideia do grau de certeza do modelo para cada deteção. |
show_labels |
bool |
True |
Apresenta etiquetas para cada deteção na saída visual. Proporciona uma compreensão imediata dos objectos detectados. |
FAQ
Como rastrear objetos em uma área ou zona específica de um frame de vídeo usando Ultralytics YOLO11?
Rastrear objetos em uma área ou zona definida de um frame de vídeo é simples com o Ultralytics YOLO11. Basta usar o comando fornecido abaixo para iniciar o rastreamento. Esta abordagem garante uma análise eficiente e resultados precisos, tornando-o ideal para aplicações como vigilância, gestão de multidões ou qualquer cenário que exija rastreamento zonal.
yolo solutions trackzone source="path/to/video.mp4" show=True
Como posso usar o TrackZone em Python com Ultralytics YOLO11?
Com apenas algumas linhas de código, você pode configurar o rastreamento de objetos em zonas específicas, facilitando a integração em seus projetos.
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()
Como configuro os pontos de zona para processamento de vídeo usando o Ultralytics TrackZone?
Configurar pontos de zona para processamento de vídeo com Ultralytics TrackZone é simples e personalizável. Você pode definir e ajustar diretamente as zonas através de um script Python, permitindo um controle preciso sobre as áreas que você deseja monitorar.
# 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
)