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 |
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.