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 pode agora calcular a velocidade de um objeto utilizando o seguimento de objectos juntamente com dados de distância e tempo, cruciais para tarefas como o tráfego e a vigilância. 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: Nos 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

Estimativa de velocidade utilizando YOLO11 Exemplo

# Run a speed example
yolo solutions speed show=True

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

# Video writer
video_writer = cv2.VideoWriter("speed_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

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

speed = solutions.SpeedEstimator(
    show=True,  # Display the output
    model="yolo11n-pose.pt",  # Path to the YOLO11 model file.
    region=speed_region,  # Pass region points
    # classes=[0, 2],  # If you want to estimate speed of specific classes.
    # line_width=2,  # Adjust the line width for bounding boxes and text display
)

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

    if success:
        out = speed.estimate_speed(im0)
        video_writer.write(im0)
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
        continue

    print("Video frame is empty or video processing has been successfully completed.")
    break

cap.release()
cv2.destroyAllWindows()
A velocidade é estimada

A velocidade será uma estimativa e poderá não ser totalmente exacta. Além disso, a estimativa pode variar consoante a velocidade do GPU .

Argumentos SpeedEstimator

Nome Tipo Predefinição Descrição
model str None Caminho para Ultralytics YOLO Modelo de ficheiro
region list [(20, 400), (1260, 400)] Lista de pontos que definem a região de contagem.
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 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/file.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
speed_obj = solutions.SpeedEstimator(
    region=[(0, 360), (1280, 360)],
    model="yolo11n.pt",
    show=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    im0 = speed_obj.estimate_speed(im0)
    video_writer.write(im0)

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 TensorFlow e PyTorch. Ultralytics suporta a exportação de modelos YOLO11 para vários formatos, como ONNX, TensorRT e CoreML, assegurando uma interoperabilidade harmoniosa com outras estruturas 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.

Porquê escolher Ultralytics YOLO11 em vez de outros modelos de deteção de objectos como TensorFlow Object Detection API?

Ultralytics YOLO11 oferece várias vantagens em relação a outros modelos de deteção de objectos, como a API de deteção de objectos TensorFlow :

  • Desempenho em tempo real: YOLO11 está optimizado para deteção em tempo real, proporcionando elevada velocidade e precisão.
  • Facilidade de utilização: Concebido com uma interface fácil de utilizar, o YOLO11 simplifica a formação e a implementação do modelo.
  • Versatilidade: Suporta múltiplas tarefas, incluindo deteção de objectos, segmentação e estimativa de pose.
  • Comunidade e suporte: YOLO11 é apoiado por uma comunidade ativa e uma extensa documentação, garantindo que os programadores têm os recursos de que necessitam.

Para mais informações sobre as vantagens de YOLO11, explore a nossa página de modelos pormenorizados.

📅 Created 11 months ago ✏️ Updated 17 days ago

Comentários