Ir para o conteúdo

Estimativa de Velocidade usando Ultralytics YOLO11 🚀

O que é Estimativa de Velocidade?

Estimativa de velocidade é o processo de calcular a taxa de movimento de um objeto dentro de um determinado contexto, frequentemente empregado em aplicações de visão computacional. Usando o Ultralytics YOLO11, agora você pode calcular a velocidade de objetos usando rastreamento de objetos juntamente com dados de distância e tempo, cruciais para tarefas como monitoramento de tráfego e vigilância. A precisão da estimativa de velocidade influencia diretamente a eficiência e a confiabilidade de várias aplicações, tornando-a um componente-chave no avanço de sistemas inteligentes e processos de tomada de decisão em tempo real.



Assista: Estimativa de Velocidade usando Ultralytics YOLO11

Confira nosso blog

Para obter informações mais detalhadas sobre a estimativa de velocidade, confira nossa postagem no blog: Ultralytics YOLO11 para Estimativa de Velocidade em Projetos de Visão Computacional

Vantagens da Estimativa de Velocidade

  • Controle de Tráfego Eficiente: A estimativa precisa da velocidade auxilia no gerenciamento do fluxo de tráfego, aumentando a segurança e reduzindo o congestionamento nas estradas.
  • Navegação Autônoma Precisa: Em sistemas autônomos, como carros autônomos, a estimativa de velocidade confiável garante uma navegação veicular segura e precisa.
  • Segurança de Vigilância Aprimorada: A estimativa de velocidade na análise de vigilância ajuda a identificar comportamentos incomuns ou ameaças potenciais, melhorando a eficácia das medidas de segurança.

Aplicações no Mundo Real

Transporte Transporte
Estimativa de Velocidade em Estrada usando Ultralytics YOLO11 Estimativa de Velocidade em Ponte usando Ultralytics YOLO11
Estimativa de Velocidade em Estrada usando Ultralytics YOLO11 Estimativa de Velocidade em Ponte usando Ultralytics YOLO11
A velocidade é uma estimativa

A velocidade será uma estimativa e pode não ser completamente precisa. Além disso, a estimativa pode variar nas especificações da câmera e fatores relacionados.

Estimativa de Velocidade usando Ultralytics YOLO

# Run a speed example
yolo solutions speed show=True

# Pass a source video
yolo solutions speed source="path/to/video.mp4"

# Adjust meter per pixel value based on camera configuration
yolo solutions speed meter_per_pixel=0.05
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# 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("speed_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize speed estimation object
speedestimator = solutions.SpeedEstimator(
    show=True,  # display the output
    model="yolo11n.pt",  # path to the YOLO11 model file.
    fps=fps,  # adjust speed based on frame per second
    # max_speed=120,  # cap speed to a max value (km/h) to avoid outliers
    # max_hist=5,  # minimum frames object tracked before computing speed
    # meter_per_pixel=0.05,  # highly depends on the camera configuration
    # classes=[0, 2],  # estimate speed of specific classes.
    # line_width=2,  # adjust the line width for bounding boxes
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = speedestimator(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

SpeedEstimator Argumentos

Aqui está uma tabela com o SpeedEstimator argumentos:

Argumento Tipo Padrão Descrição
model str None Caminho para o arquivo do modelo Ultralytics YOLO.
fps float 30.0 Frames por segundo usados para cálculos de velocidade.
max_hist int 5 Número máximo de pontos históricos para rastrear por objeto para cálculos de velocidade/direção.
meter_per_pixel float 0.05 Fator de escala usado para converter a distância em pixels para unidades do mundo real.
max_speed int 120 Limite máximo de velocidade em sobreposições visuais (usado em alertas).

O SpeedEstimator solução permite o uso de track parâmetros:

Argumento Tipo Padrã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 que os usuários selecionem entre CPU, uma GPU específica ou outros dispositivos de computação para a execução do modelo.

Adicionalmente, as seguintes opções de visualização são suportadas:

Argumento Tipo Padrão Descrição
show bool False Se True, exibe as imagens ou vídeos anotados em uma 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. Fornece personalização visual para clareza.
show_conf bool True Exibe 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_labels bool True Exibe rótulos para cada detecção na saída visual. Fornece compreensão imediata dos objetos detectados.

FAQ

Como estimo a velocidade do objeto usando o Ultralytics YOLO11?

Estimar a velocidade de um objeto com Ultralytics YOLO11 envolve combinar técnicas de detecção de objetos e rastreamento. Primeiro, você precisa detectar objetos em cada frame usando o modelo YOLO11. Em seguida, rastreie esses objetos através dos frames para calcular seu movimento ao longo do tempo. Finalmente, use a distância percorrida pelo objeto entre os frames e a taxa de frames para estimar sua velocidade.

Exemplo:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
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("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize SpeedEstimator
speedestimator = solutions.SpeedEstimator(
    model="yolo11n.pt",
    show=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = speedestimator(im0)
    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Para mais detalhes, consulte nossa postagem oficial no blog.

Quais são os benefícios de usar o Ultralytics YOLO11 para estimativa de velocidade no gerenciamento de tráfego?

Usar o Ultralytics YOLO11 para estimativa de velocidade oferece vantagens significativas no gerenciamento de tráfego:

  • Segurança Aprimorada: Estime com precisão a velocidade dos veículos para detectar excesso de velocidade e melhorar a segurança rodoviária.
  • Monitoramento em Tempo Real: Beneficie-se da capacidade de detecção de objetos em tempo real do YOLO11 para monitorar o fluxo de tráfego e o congestionamento de forma eficaz.
  • Escalabilidade: Implante o modelo em várias configurações de hardware, desde dispositivos de borda até servidores, garantindo soluções flexíveis e escaláveis para implementações em larga escala.

Para mais aplicações, veja as vantagens da estimativa de velocidade.

O YOLO11 pode ser integrado com outras estruturas de IA como TensorFlow ou PyTorch?

Sim, o YOLO11 pode ser integrado com outras frameworks de IA como TensorFlow e PyTorch. A Ultralytics oferece suporte para exportar modelos YOLO11 para vários formatos como ONNX, TensorRT e CoreML, garantindo uma interoperabilidade suave com outras frameworks de ML.

Para exportar um modelo YOLO11 para o formato ONNX:

yolo export --weights yolo11n.pt --include onnx

Saiba mais sobre como exportar modelos no nosso guia de exportação.

Qual a precisão da estimativa de velocidade usando Ultralytics YOLO11?

A precisão da estimativa de velocidade usando Ultralytics YOLO11 depende de vários fatores, incluindo a qualidade do rastreamento de objetos, a resolução e a taxa de quadros do vídeo e as variáveis ambientais. Embora o estimador de velocidade forneça estimativas confiáveis, pode não ser 100% preciso devido a variações na velocidade de processamento de quadros e na oclusão de objetos.

Nota: Sempre considere a margem de erro e valide as estimativas com dados de verdade fundamental quando possível.

Para obter mais dicas sobre como melhorar a precisão, consulte o Argumentos SpeedEstimator seção.



📅 Criado há 1 ano ✏️ Atualizado há 2 meses

Comentários