Meet YOLO26: next-gen vision AI.

Link to this sectionTrackZone usando Ultralytics YOLO26#

Link to this sectionO que é o TrackZone?#

Abrir TrackZone no Colab

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#

AgriculturaTransporte
Rastreio de Plantas no Campo Usando Ultralytics YOLO26Rastreio de Veículos na Estrada usando Ultralytics YOLO26
Rastreio de Plantas no Campo Usando Ultralytics YOLO26Rastreio de Veículos na Estrada 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)]"

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.

Definir a zona de rastreio
  • 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=True enquanto configuras para poderes confirmar que a sobreposição coincide com o teu feed.
  • O TrackZone reduz 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 region totalmente, é 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:

ArgumentoTipoPredefiniçãoDescrição
modelstrNoneCaminho para um ficheiro de modelo YOLO da Ultralytics.
regionlist ou dictNonePontos 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:

ArgumentoTipoPredefiniçãoDescrição
trackerstr'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.
conffloat0.1Define o limiar de confiança para as deteções; valores mais baixos permitem que mais objetos sejam rastreados, mas podem incluir falsos positivos.
ioufloat0.7Define o limiar de Intersection over Union (IoU) para filtrar deteções sobrepostas.
classeslistNoneFiltra resultados por índice de classe. Por exemplo, classes=[0, 2, 3] rastreia apenas as classes especificadas.
verboseboolTrueControla a exibição dos resultados de rastreio, fornecendo uma saída visual dos objetos rastreados.
devicestrNoneEspecifica 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:

ArgumentoTipoPredefiniçãoDescrição
showboolFalseSe True, exibe as imagens ou vídeos anotados numa janela. Útil para feedback visual imediato durante o desenvolvimento ou teste.
line_widthint or NoneNoneEspecifica 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_confboolTrueExibe 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_labelsboolTrueExibe 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=True

Link 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çãoUtiliza-o paraResultado típico
TrackZoneRastrear objetos e monitorizar a ocupação em tempo real dentro de uma única zona convexaIDs rastreados e total_tracks para a zona
ObjectCounterContar objetos que cruzam uma linha ou entram e saem de uma regiãoContagens cumulativas de entrada e saída
RegionCounterContar 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.

Comentários