Ir para o conteúdo

TrackZone com Ultralytics YOLO26

Abrir TrackZone no Colab

O que é TrackZone?

O TrackZone é especializado em monitorar objetos dentro de áreas designadas de um quadro, em vez do quadro inteiro. Construído sobre Ultralytics YOLO26, ele integra detecção e tracking de objetos especificamente dentro de zonas para vídeos e feeds de câmeras ao vivo. Os algoritmos avançados e as tecnologias de deep learning do YOLO26 o tornam uma escolha perfeita para casos de uso em tempo real, oferecendo tracking de objetos preciso e eficiente em aplicações como monitoramento de multidões e vigilância.



Assista: Como Rastrear Objetos em Região usando Ultralytics YOLO26 | 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

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

TrackZone depende do region liste para saber qual parte do frame monitorar. Defina o polígono para corresponder à zona física que lhe interessa (portas, portões, etc.) e mantenha show=True ativado durante a configuração para que você possa verificar se a sobreposição está alinhada com o feed de vídeo.

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="yolo26n.pt",  # use any model that Ultralytics supports, e.g., 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:

ArgumentoTipoPadrãoDescrição
modelstrNoneCaminho para um arquivo de modelo Ultralytics YOLO.
regionlist'[(20, 400), (1260, 400)]'Lista de pontos que definem a região de contagem.

A solução TrackZone inclui suporte para track parâmetros:

ArgumentoTipoPadrãoDescrição
trackerstr'botsort.yaml'Especifica o algoritmo de rastreamento a ser usado, por exemplo, bytetrack.yaml ou botsort.yaml.
conffloat0.1Define o limite de confiança para detecções; valores mais baixos permitem que mais objetos sejam rastreados, mas podem incluir falsos positivos.
ioufloat0.7Define o limite de Intersecção sobre União (IoU) para filtrar detecções sobrepostas.
classeslistNoneFiltra os resultados por índice de classe. Por exemplo, classes=[0, 2, 3] rastreia apenas as classes especificadas.
verboseboolTrueControla a exibição dos resultados de rastreamento, fornecendo uma saída visual dos objetos rastreados.
devicestrNoneEspecifica o dispositivo para inferência (por exemplo, cpu, cuda:0 ou 0). Permite que os usuários selecionem 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:

ArgumentoTipoPadrãoDescrição
showboolFalseSe True, exibe as imagens ou vídeos anotados em uma 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. Fornece personalização visual para clareza.
show_confboolTrueExibe o score de confiança para cada detecção junto com o rótulo. Dá uma ideia da 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.

FAQ

Como faço para rastrear objetos em uma área ou zona específica de um quadro de vídeo usando Ultralytics YOLO26?

Rastrear objetos em uma área ou zona definida de um quadro de vídeo é simples com Ultralytics YOLO26. Basta usar o comando fornecido abaixo para iniciar o tracking. Essa abordagem garante análise eficiente e resultados precisos, tornando-a ideal para aplicações como vigilância, gerenciamento de multidões ou qualquer cenário que exija tracking zonal.

yolo solutions trackzone source="path/to/video.mp4" show=True

Como posso usar o TrackZone em python com Ultralytics YOLO26?

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="yolo26n.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
)


📅 Criado há 1 ano ✏️ Atualizado há 2 dias
RizwanMunawarglenn-jocherpderrenger

Comentários