Saltar para o conteúdo

Estimativa da velocidade utilizando Ultralytics YOLO11 🚀

O que é a estimativa de velocidade?

A estimativa da velocidade é o processo de cálculo da taxa de movimento de um objeto num determinado contexto, frequentemente utilizado em aplicações de visão por computador. Utilizando Ultralytics YOLO11 é agora possível calcular a velocidade dos objectos utilizando o seguimento de objectos juntamente com dados de distância e tempo, o que é crucial para tarefas como a monitorização e vigilância do tráfego. A precisão da estimativa da velocidade influencia diretamente a eficiência e a fiabilidade de várias aplicações, tornando-a um componente essencial para o avanço dos sistemas inteligentes e dos processos de tomada de decisões em tempo real.



Ver: Estimativa de velocidade utilizando Ultralytics YOLO11

Ver o nosso blogue

Para obter informações mais aprofundadas sobre a estimativa de velocidade, consulte a nossa publicação no blogue: Ultralytics YOLO11 para estimativa de velocidade em projectos de visão computacional

Vantagens da estimativa de velocidade

  • Controlo eficiente do tráfego: A estimativa exacta da velocidade ajuda a gerir o fluxo de tráfego, a aumentar a segurança e a reduzir o congestionamento nas estradas.
  • Navegação autónoma precisa: Em sistemas autónomos, como os automóveis autónomos, uma estimativa fiável da velocidade garante uma navegação segura e precisa do veículo.
  • Segurança de vigilância melhorada: A estimativa de velocidade na análise de vigilância ajuda a identificar comportamentos invulgares ou potenciais ameaças, melhorando a eficácia das medidas de segurança.

Aplicações no mundo real

Transporte Transporte
Estimativa da velocidade na estrada utilizando Ultralytics YOLO11 Estimativa da velocidade numa ponte utilizando Ultralytics YOLO11
Estimativa da velocidade na estrada utilizando Ultralytics YOLO11 Estimativa da velocidade numa ponte utilizando Ultralytics YOLO11
A velocidade é uma estimativa

A velocidade será uma estimativa e pode não ser totalmente exacta. Além disso, a estimativa pode variar dependendo da velocidade GPU e de factores ambientais.

Estimativa de velocidade utilizando Ultralytics YOLO

# Run a speed example
yolo solutions speed show=True

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

# Pass region coordinates
yolo solutions speed region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"
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))

# speed region points
speed_region = [(20, 400), (1080, 400), (1080, 360), (20, 360)]

# Initialize speed estimation object
speedestimator = solutions.SpeedEstimator(
    show=True,  # display the output
    model="yolo11n.pt",  # path to the YOLO11 model file.
    region=speed_region,  # pass region points
    # 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 os SpeedEstimator argumentos:

Argumento Tipo Predefinição Descrição
model str None Caminho para o ficheiro do modelo Ultralytics YOLO .
region list [(20, 400), (1260, 400)] Lista de pontos que definem a região de contagem.

O SpeedEstimator permite a utilização de track parâmetros:

Argumento Tipo Predefinição Descrição
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.
device str None Especifica o dispositivo para inferência (por exemplo, cpu, cuda:0 ou 0). Permite aos utilizadores selecionar entre CPU, um GPU específico, ou outros dispositivos de computação para a execução do modelo.

Além disso, são suportadas as seguintes opções de visualização:

Argumento Tipo Predefinição Descrição
show bool False Se Trueapresenta as imagens ou vídeos anotados numa 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 NoneA largura da linha é ajustada automaticamente com base no tamanho da imagem. Proporciona uma personalização visual para maior clareza.

FAQ

Como posso estimar a velocidade de um objeto utilizando Ultralytics YOLO11 ?

Estimar a velocidade do objeto com Ultralytics YOLO11 envolve a combinação de técnicas de deteção e seguimento de objectos. Primeiro, é necessário detetar objectos em cada fotograma utilizando o modelo YOLO11 . Em seguida, rastreie esses objectos através dos fotogramas para calcular o seu movimento ao longo do tempo. Por fim, utilize a distância percorrida pelo objeto entre fotogramas e a taxa de fotogramas para estimar a 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(
    region=[(0, 360), (1280, 360)],
    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 informações, consulte a nossa publicação oficial no blogue.

Quais são as vantagens da utilização do Ultralytics YOLO11 para a estimativa da velocidade na gestão do tráfego?

A utilização de Ultralytics YOLO11 para a estimativa da velocidade oferece vantagens significativas na gestão do tráfego:

  • Segurança melhorada: Estimativa exacta das velocidades dos veículos para detetar o excesso de velocidade e melhorar a segurança rodoviária.
  • Monitorização em tempo real: Beneficie da capacidade de deteção de objectos em tempo real do YOLO11 para monitorizar eficazmente o fluxo de tráfego e o congestionamento.
  • Escalabilidade: Implementar o modelo em várias configurações de hardware, desde dispositivos de ponta a servidores, garantindo soluções flexíveis e escaláveis para implementações em grande escala.

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

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

Sim, YOLO11 pode ser integrado noutras estruturas de IA como o TensorFlow e PyTorch. Ultralytics oferece suporte para exportar modelos YOLO11 para vários formatos, como ONNX, TensorRTe CoreMLgarantindo uma interoperabilidade harmoniosa com outros quadros de ML.

Para exportar um modelo YOLO11 para o formato ONNX :

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

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

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

A precisão da estimativa de velocidade utilizando Ultralytics YOLO11 depende de vários factores, incluindo a qualidade do seguimento de objectos, a resolução e a taxa de fotogramas do vídeo e as variáveis ambientais. Embora o estimador de velocidade forneça estimativas fiáveis, pode não ser 100% exato devido a variações na velocidade de processamento dos fotogramas e à oclusão de objectos.

Nota: Ter sempre em conta a margem de erro e validar as estimativas com dados verídicos no terreno, sempre que possível.

Para mais sugestões de melhoria da precisão, consulte o Argumentos SpeedEstimator secção.

📅C riado há 1 ano ✏️ Atualizado há 6 dias

Comentários