Ir para o conteúdo

Estimativa de Velocidade usando Ultralytics YOLO26 🚀

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 Ultralytics YOLO26, agora é possível calcular a velocidade de objetos utilizando track de objetos juntamente com dados de distância e tempo, o que é crucial 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 YOLO26

Confira nosso blog

Para insights mais aprofundados sobre estimativa de velocidade, confira nossa publicação no blog: Ultralytics YOLO 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

TransporteTransporte
Estimativa de Velocidade em Estradas usando Ultralytics YOLO26Estimativa de Velocidade em Pontes usando Ultralytics YOLO26
Estimativa de Velocidade em Estradas usando Ultralytics YOLO26Estimativa de Velocidade em Pontes usando Ultralytics YOLO26
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="yolo26n.pt",  # path to the YOLO26 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:

ArgumentoTipoPadrãoDescrição
modelstrNoneCaminho para um arquivo de modelo Ultralytics YOLO.
fpsfloat30.0Frames por segundo usados para cálculos de velocidade.
max_histint5Número máximo de pontos históricos para track por objeto para cálculos de velocidade/direção.
meter_per_pixelfloat0.05Fator de escala usado para converter a distância em pixels para unidades do mundo real.
max_speedint120Limite máximo de velocidade em sobreposições visuais (usado em alertas).

O SpeedEstimator solução permite o uso de 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.

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

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 estimar a velocidade de objetos usando Ultralytics YOLO26?

A estimativa da velocidade de objetos com Ultralytics YOLO26 envolve a combinação de técnicas de detect de objetos e track. Primeiro, é necessário detect objetos em cada quadro usando o modelo YOLO26. Em seguida, track esses objetos entre os quadros para calcular seu movimento ao longo do tempo. Por fim, utilize a distância percorrida pelo objeto entre os quadros e a taxa de quadros 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="yolo26n.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 Ultralytics YOLO26 para estimativa de velocidade na gestão de tráfego?

O uso de Ultralytics YOLO26 para estimativa de velocidade oferece vantagens significativas na gestão 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 detect de objetos em tempo real do YOLO26 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 YOLO26 pode ser integrado com outros frameworks de IA como TensorFlow ou PyTorch?

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

Para exportar um modelo YOLO26 para o formato ONNX:

yolo export model=yolo26n.pt format=onnx

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

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

A precisão da estimativa de velocidade usando Ultralytics YOLO26 depende de vários fatores, incluindo a qualidade do rastreamento de objetos, a resolução e a taxa de quadros do vídeo, e variáveis ambientais. Embora o estimador de velocidade forneça estimativas confiáveis, ele pode não ser 100% preciso devido a variações na velocidade de processamento de quadros e 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á 2 anos ✏️ Atualizado há 5 dias
glenn-jocherRizwanMunawarMatthewNoyceRizwanMunawaraaurelions@gmail.comleonnilUltralyticsAssistantIvorZhu331Burhan-QAyushExel

Comentários