Link to this sectionTrackZone usando Ultralytics YOLO26#
Link to this sectionO que é o TrackZone?#
O TrackZone especializa-se em monitorizar objetos dentro de áreas designadas de um frame em vez do frame inteiro. Construído sobre o Ultralytics YOLO26, integra deteção de objetos e tracking especificamente dentro de zonas para vídeos e feeds de câmaras em direto. Os algoritmos avançados e tecnologias de deep learning do YOLO26 tornam-no na escolha perfeita para casos de uso em tempo real, oferecendo um rastreio de objetos preciso e eficiente em aplicações como monitorização de multidões e vigilância.
Watch: How to Track Objects in Region using Ultralytics YOLO26 | TrackZone 🚀
Link to this sectionVantagens do Rastreio de Objetos em Zonas (TrackZone)#
- Análise Direcionada: Rastrear objetos dentro de zonas específicas permite obter insights mais focados, permitindo uma monitorização e análise precisas de áreas de interesse, como pontos de entrada ou zonas restritas.
- Carga de trabalho a jusante reduzida: Ao ignorar objetos fora da zona, o TrackZone remove deteções irrelevantes, pelo que há menos objetos para contar, registar ou sobre os quais emitir alertas na lógica que construíres sobre ele. A deteção continua a ser executada num frame mascarado de tamanho completo em vez de um recorte estreito da zona, pelo que o benefício é uma saída mais limpa e focada, em vez de uma inferência de modelo mais rápida.
- Segurança Reforçada: O rastreio zonal melhora a vigilância ao monitorizar áreas críticas, ajudando na deteção precoce de atividades invulgares ou brechas 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 retalho a ambientes industriais, garantindo uma integração perfeita e escalabilidade.
Link to this sectionAplicações no mundo real#
| Agricultura | Transporte |
|---|---|
| Rastreio de Plantas no Campo Usando Ultralytics YOLO26 | Rastreio de Veículos na Estrada 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)]"O TrackZone depende da lista region para saber que parte do frame monitorizar. Define o polígono para corresponder à zona física que te interessa (portas, portões, etc.), e mantém show=True ativado durante a configuração para poderes verificar se a sobreposição se alinha com o feed de vídeo.
- Cada entrada em
regioné uma coordenada de píxel(x, y)no frame de vídeo. Lista os pontos na ordem em que devem ser conectados ao redor do perímetro da área que desejas monitorizar. - As coordenadas estão ligadas à resolução do frame, pelo que uma região dimensionada para um feed de 1280×720 não se alinhará com um de 640×480. Mantém
show=Trueenquanto configuras para poderes confirmar que a sobreposição coincide com o teu feed. - O
TrackZonereduz os pontos ao seu convex hull, por isso uma forma côncava é simplificada para o menor polígono convexo que contém todos os seus pontos. Para formas não convexas ou várias áreas separadas, utiliza a solução RegionCounter. - Se omitires
regiontotalmente, é utilizada uma zona predefinida de[(75, 75), (565, 75), (565, 285), (75, 285)].
Link to this sectionArgumentos do TrackZone#
Aqui está uma tabela com os argumentos do TrackZone:
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
model | str | None | Caminho para um ficheiro de modelo YOLO da Ultralytics. |
region | list ou dict | None | Pontos que definem a região de interesse, seja uma lista de tuplas (x, y) ou um dicionário que mapeia nomes de regiões para listas de pontos para múltiplas regiões (apenas RegionCounter). Quando None, soluções que exigem uma região retornam a um padrão predefinido. |
A solução TrackZone inclui suporte para parâmetros de track:
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Especifica o algoritmo de rastreamento a ser usado. As opções integradas são: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | Define o limiar de confiança para as deteções; valores mais baixos permitem que mais objetos sejam rastreados, mas podem incluir falsos positivos. |
iou | float | 0.7 | Define o limiar de Intersection over Union (IoU) para filtrar deteções sobrepostas. |
classes | list | None | Filtra 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 rastreio, fornecendo uma saída visual dos objetos rastreados. |
device | str | None | Especifica o dispositivo para inferência (p. ex., cpu, cuda:0 ou 0). Permite aos utilizadores selecionar entre CPU, uma GPU específica 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, exibe as imagens ou vídeos anotados numa janela. Útil para feedback visual imediato durante o desenvolvimento ou teste. |
line_width | int or None | None | Especifica a largura da linha das caixas delimitadoras. Se None, a largura da linha é ajustada automaticamente com base no tamanho da imagem. Proporciona personalização visual para maior clareza. |
show_conf | bool | True | Exibe a pontuação de confiança para cada detecção ao lado do rótulo. Fornece uma visão sobre a certeza do modelo para cada detecção. |
show_labels | bool | True | Exibe rótulos para cada detecção na saída visual. Fornece compreensão imediata dos objetos detectados. |
Link to this sectionContar objetos dentro da zona#
Cada chamada ao tracker devolve um objeto SolutionResults, cujo atributo total_tracks contém o número de objetos atualmente rastreados dentro da zona. Lê-o em cada frame para monitorizar a ocupação em tempo real, por exemplo, para registar o quão movimentado está um ponto de entrada ou área restrita:
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 sectionComo posso rastrear objetos numa área ou zona específica de um frame de vídeo usando Ultralytics YOLO26?#
Rastrear objetos numa área ou zona definida de um frame de vídeo é simples com o Ultralytics YOLO26. Basta usar o comando fornecido abaixo para iniciar o rastreio. Esta abordagem garante uma análise eficiente e resultados precisos, tornando-a ideal para aplicações como vigilância, gestão de multidões ou qualquer cenário que exija rastreio zonal.
yolo solutions trackzone source="path/to/video.mp4" show=TrueLink to this sectionComo posso usar o TrackZone em Python com Ultralytics YOLO26?#
Com apenas algumas linhas de código, podes configurar o rastreio de objetos em zonas específicas, facilitando a sua integração nos teus 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))
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 sectionComo configuro os pontos da zona para processamento de vídeo usando o Ultralytics TrackZone?#
Configurar pontos de zona para processamento de vídeo com o Ultralytics TrackZone é simples e personalizável. Podes definir e ajustar diretamente as zonas através de um script Python, permitindo um controlo preciso sobre as áreas que pretendes monitorizar.
# 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
)Lembra-te de que o TrackZone reduz os pontos ao seu convex hull, por isso lista-os por ordem ao redor do perímetro da área que queres monitorizar.
Link to this sectionQuando devo utilizar o TrackZone em vez do ObjectCounter ou do RegionCounter?#
Todas as três soluções funcionam com regiões, mas respondem a perguntas diferentes:
| Solução | Utiliza-o para | Resultado típico |
|---|---|---|
| TrackZone | Rastrear objetos e monitorizar a ocupação em tempo real dentro de uma única zona convexa | IDs rastreados e total_tracks para a zona |
| ObjectCounter | Contar objetos que cruzam uma linha ou entram e saem de uma região | Contagens cumulativas de entrada e saída |
| RegionCounter | Contar objetos dentro de uma ou mais regiões arbitrárias (incluindo não convexas) | Contagens de objetos por região |
Escolhe o TrackZone quando queres um rastreio contínuo dentro de uma área, e o RegionCounter quando precisas de múltiplas zonas ou de uma forma não convexa.