Saltar para o conteúdo

TrackZone utilizando Ultralytics YOLO11

O que é o TrackZone?

O TrackZone é especializado na monitorização de objectos dentro de áreas designadas de um quadro em vez de todo o quadro. Construído em Ultralytics YOLO11integra a deteção e o seguimento de objectos especificamente em zonas para vídeos e imagens de câmaras em direto. YOLO11 Os algoritmos avançados e as tecnologias de aprendizagem profunda da TrackZone fazem dela a escolha perfeita para casos de utilização em tempo real, oferecendo um seguimento de objectos preciso e eficiente em aplicações como a monitorização e vigilância de multidões.

Vantagens do Seguimento de Objectos em Zonas (TrackZone)

  • Análise direcionada: O rastreio de objectos dentro de zonas específicas permite obter informações mais específicas, possibilitando uma monitorização e análise precisas de áreas de interesse, tais como pontos de entrada ou zonas restritas.
  • Eficiência melhorada: Ao limitar o âmbito do rastreio a zonas definidas, o TrackZone reduz a sobrecarga computacional, assegurando um processamento mais rápido e um desempenho ótimo.
  • Segurança melhorada: O seguimento por zonas melhora a vigilância através da monitorização de áreas críticas, ajudando na deteção precoce de atividade invulgar ou de violações de segurança.
  • Soluções escaláveis: A capacidade de se concentrar 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 e escalabilidade perfeitas.

Aplicações no mundo real

Agricultura Transporte
Rastreio de plantas no campo utilizando Ultralytics YOLO11 Localização de veículos na estrada utilizando Ultralytics YOLO11
Rastreio de plantas no campo utilizando Ultralytics YOLO11 Localização de veículos na estrada utilizando Ultralytics YOLO11

TrackZone utilizando YOLO11 Exemplo

# Run a trackzone example
yolo solutions trackzone show=True

# Pass a source video
yolo solutions trackzone show=True source="path/to/video/file.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/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

Aqui está uma tabela com os TrackZone argumentos:

Nome Tipo Predefinição Descrição
model str None Caminho para Ultralytics YOLO Modelo de ficheiro
region list [(150, 150), (1130, 150), (1130, 570), (150, 570)] Lista de pontos que definem a região de seguimento de objectos.
line_width int 2 Espessura da linha para caixas delimitadoras.
show bool False Sinalizador para controlar se o fluxo de vídeo deve ser apresentado.

Argumentos model.track

Argumento Tipo Predefinição Descrição
source str None Especifica o diretório de origem para imagens ou vídeos. Suporta caminhos de ficheiros e URLs.
persist bool False Permite o rastreio persistente de objectos entre fotogramas, mantendo as IDs nas sequências de vídeo.
tracker str botsort.yaml Especifica o algoritmo de seguimento a utilizar, por exemplo, bytetrack.yaml ou botsort.yaml.
conf float 0.3 Define o limiar de confiança para as detecções; valores mais baixos permitem o seguimento de mais objectos, mas podem incluir falsos positivos.
iou float 0.5 Define o limiar 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] só rastreia as classes especificadas.
verbose bool True Controla a apresentação dos resultados do seguimento, fornecendo uma saída visual dos objectos seguidos.

FAQ

Como posso localizar objectos numa área ou zona específica de um fotograma de vídeo utilizando Ultralytics YOLO11 ?

O seguimento de objectos numa área ou zona definida de um fotograma de vídeo é simples com Ultralytics YOLO11 . Basta usar o comando fornecido abaixo para iniciar o rastreamento. Esta abordagem assegura 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 o seguimento zonal.

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

Como posso utilizar o TrackZone em Python com Ultralytics YOLO11 ?

Com apenas algumas linhas de código, pode configurar o seguimento de objectos em zonas específicas, facilitando a sua integração nos seus projectos.

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()

Como configurar os pontos de zona para processamento de vídeo utilizando Ultralytics TrackZone?

A configuração de pontos de zona para processamento de vídeo com o Ultralytics TrackZone é simples e personalizável. Pode definir e ajustar diretamente as zonas através de um script Python , permitindo um controlo preciso das áreas que pretende monitorizar.

# 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
)
📅C riado há 8 dias ✏️ Atualizado há 8 dias

Comentários