Sintonize na YOLO Vision 2025!
25 de setembro de 2025
10:00 — 18:00 BST
Evento híbrido
Yolo Vision 2024

Ultralytics YOLOv8 para estimativa de velocidade em projetos de visão computacional

Abirami Vina

Leitura de 5 minutos

23 de maio de 2024

Descubra como o modelo Ultralytics YOLOv8 pode ser usado para estimativa de velocidade em seus projetos de visão computacional. Experimente você mesmo com um exemplo de codificação simples.

Provavelmente todos já vimos placas de limite de velocidade nas estradas. Alguns de nós podem até ter recebido uma notificação automática de violação do limite de velocidade por correio ou e-mail. Os sistemas de gerenciamento de tráfego de inteligência artificial (IA) podem sinalizar violações de velocidade automaticamente graças à visão computacional. Imagens em tempo real capturadas por câmeras em semáforos e rodovias são usadas para estimar a velocidade e reforçar a segurança rodoviária.

A estimativa de velocidade não se limita apenas à segurança rodoviária. Pode ser usada em esportes, veículos autônomos e várias outras aplicações. Neste artigo, discutiremos como você pode usar o modelo Ultralytics YOLOv8 para estimativa de velocidade em seus projetos de visão computacional. Também vamos percorrer passo a passo um exemplo de codificação para que você possa experimentar você mesmo. Vamos começar!

A estimativa de velocidade facilita o gerenciamento do tráfego

De acordo com a Organização Mundial da Saúde (OMS), aproximadamente 1,19 milhão de pessoas morrem anualmente em acidentes de trânsito devido ao excesso de velocidade. Além disso, mais 20 a 50 milhões sofrem lesões não fatais, muitas das quais resultam em deficiências. A importância da segurança no trânsito não pode ser exagerada, especialmente quando a estimativa de velocidade ajuda a prevenir acidentes, salva vidas e mantém nossas estradas seguras e eficientes. 

A estimativa de velocidade usando visão computacional envolve detectar e rastrear objetos em frames de vídeo para calcular a rapidez com que eles estão se movendo. Algoritmos como o YOLOv8 podem identificar e rastrear objetos, como veículos, em frames consecutivos. O sistema mede a distância que esses objetos percorrem usando câmeras calibradas ou pontos de referência para avaliar as distâncias do mundo real. Ao cronometrar quanto tempo leva para os objetos se moverem entre dois pontos, o sistema calcula sua velocidade usando a relação distância-tempo.

Fig 1. Estimativa de Velocidade Usando o Modelo Ultralytics YOLOv8

Além de flagrar infratores de velocidade, os sistemas de estimativa de velocidade integrados com IA podem coletar dados para fazer previsões sobre o tráfego. Essas previsões podem apoiar tarefas de gerenciamento de tráfego, como otimizar os tempos dos sinais e a alocação de recursos. Insights sobre padrões de tráfego e causas de congestionamento podem ser usados para planejar novas estradas para reduzir o congestionamento do tráfego.

Aplicações da estimativa de velocidade em outros setores

As aplicações de estimativa de velocidade vão além do monitoramento de estradas. Também pode ser útil para monitorar o desempenho de atletas, ajudar veículos autônomos a entender a velocidade de objetos que se movem ao seu redor, detectar comportamentos suspeitos, etc. Em qualquer lugar onde uma câmera possa ser usada para medir a velocidade de um objeto, a estimativa de velocidade usando visão computacional pode ser usada. 

Aqui estão alguns exemplos de onde a estimativa de velocidade está sendo usada:

  • Os carros autônomos da Tesla usam a estimativa de velocidade baseada em visão para evitar colisões.
  • A visão computacional e a estimativa de velocidade serão usadas nos Jogos Olímpicos de 2024 para melhorar a análise de desempenho em eventos de atletismo.
  • As cidades inteligentes estão a investigar a análise da marcha de pedestres para monitorizar as velocidades de caminhada e aumentar a mobilidade e a segurança urbanas. Estes sistemas podem alertar os motoristas para a presença de pedestres e evitar acidentes.
  • Os sistemas de monitorização do comportamento animal usam a estimativa de velocidade para rastrear o movimento dos animais e detetar sinais de angústia ou doença.
Fig 2. A estimativa de velocidade pode medir a velocidade de caminhada de uma pessoa.

Os benefícios de estimar a velocidade usando visão computacional

Os sistemas de estimativa de velocidade baseados em visão estão substituindo os métodos tradicionais baseados em sensores devido à sua maior precisão, custo-benefício e flexibilidade. Ao contrário dos sistemas que dependem de sensores caros como o LiDAR, a visão computacional usa câmeras padrão para monitorar e analisar a velocidade em tempo real. As soluções de visão computacional para estimativa de velocidade podem ser integradas perfeitamente à infraestrutura de tráfego existente. Além disso, esses sistemas podem ser construídos para executar várias tarefas complexas, como identificação do tipo de veículo e análise de padrões de tráfego para melhorar o fluxo e a segurança geral do tráfego.

Experimente você mesmo: Estimativa de velocidade usando YOLOv8

Agora que temos uma compreensão clara da estimativa de velocidade e suas aplicações, vamos dar uma olhada mais de perto em como você pode integrar a estimativa de velocidade em seus projetos de visão computacional por meio de código. Detectaremos veículos em movimento e estimaremos sua velocidade usando o modelo YOLOv8.

Este exemplo usa um vídeo de carros em uma estrada baixado da internet. Você pode usar o mesmo vídeo ou qualquer vídeo relevante. O modelo YOLOv8 identifica o centro de cada veículo e calcula sua velocidade com base na rapidez com que esse centro cruza uma linha horizontal no quadro do vídeo. 

Antes de nos aprofundarmos, é importante observar que, neste caso, o cálculo da distância é aproximado e baseado na Distância Euclidiana. A calibração da câmera não é levada em consideração e, portanto, a estimativa de velocidade pode não ser totalmente precisa. Além disso, a velocidade estimada pode variar dependendo da velocidade da sua GPU.

Passo 1: Começaremos instalando o pacote Ultralytics. Abra seu prompt de comando ou terminal e execute o comando mostrado abaixo.

pip install ultralytics 

Consulte nosso guia de instalação do Ultralytics para obter instruções passo a passo e as melhores práticas sobre o processo de instalação. Se você tiver algum problema ao instalar os pacotes necessários para o YOLOv8, nosso guia de problemas comuns tem soluções e dicas úteis.

Passo 2: Em seguida, importaremos as bibliotecas necessárias. A biblioteca OpenCV nos ajudará a lidar com o processamento de vídeo.

import cv2
from ultralytics import YOLO, solutions

Passo 3: Então, podemos carregar o modelo YOLOv8 e recuperar os nomes das classes que o modelo pode detectar.

model = YOLO("yolov8n.pt")
names = model.model.names

Confira todos os modelos que suportamos para entender qual modelo se adapta melhor ao seu projeto.

Passo 4: Neste passo, abriremos o arquivo de vídeo de entrada usando o módulo VideoCapture do OpenCV. Também extrairemos a largura, a altura e os quadros por segundo (fps) do vídeo.

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

Passo 5: Aqui, inicializaremos o escritor de vídeo para salvar nossos resultados finais de estimativa de velocidade. O arquivo de vídeo de saída será salvo como “espeed_estimation.avi”.

video_writer = cv2.VideoWriter("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

Passo 6: Em seguida, podemos definir os pontos da linha para estimar a velocidade. Para o nosso vídeo de entrada, esta linha será colocada horizontalmente no meio do frame. Sinta-se à vontade para experimentar os valores para colocar a linha nas posições mais adequadas, dependendo do seu vídeo de entrada.

line_pts = [(0, 360), (1280, 360)]

Passo 7: Agora, podemos inicializar o objeto de estimativa de velocidade usando os pontos de linha definidos e os nomes das classes.

speed_obj = solutions.SpeedEstimator(
    reg_pts=line_pts,
    names=names,
    view_img=True,
)

Passo 8: O núcleo do script processa o vídeo quadro a quadro. Lemos cada quadro e detectamos e rastreamos objetos. A velocidade dos objetos rastreados é estimada, e o quadro anotado é escrito no vídeo de saída.

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    tracks = model.track(im0, persist=True, show=False)

    im0 = speed_obj.estimate_speed(im0, tracks)
    video_writer.write(im0)
  

Passo 9: Finalmente, liberamos os objetos de captura e escritor de vídeo e fechamos quaisquer janelas do OpenCV.

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

Passo 10: Salve seu script. Se você estiver trabalhando a partir do seu terminal ou prompt de comando, execute o script usando o seguinte comando:

python your_script_name.py


Os desafios da estimativa de velocidade baseada em visão

É também importante compreender os desafios envolvidos na implementação da estimativa de velocidade utilizando a visão computacional. Condições meteorológicas desfavoráveis, como chuva, nevoeiro ou neve, podem causar problemas ao sistema, uma vez que podem obstruir a visibilidade da estrada. Da mesma forma, as oclusões causadas por outros veículos ou objetos podem dificultar a capacidade destes sistemas de rastrear e estimar com precisão a velocidade de um veículo alvo. Condições de iluminação deficientes que causam sombras ou o brilho do sol também podem complicar ainda mais a tarefa de estimativa de velocidade.

Outro desafio diz respeito ao poder computacional. Para estimar a velocidade em tempo real, temos de processar muitos dados visuais de câmaras de trânsito de alta qualidade. A sua solução pode exigir hardware dispendioso para lidar com tudo isto e garantir que tudo funciona rapidamente, sem atrasos.

Então, há a questão da privacidade. Os dados coletados por esses sistemas podem incluir detalhes do veículo de um indivíduo, como marca, modelo e informações da placa, que são coletados sem o seu consentimento. Algumas câmeras HD modernas podem até capturar imagens dos ocupantes dentro do carro. Essa coleta de dados pode levantar sérias questões éticas e legais que precisam ser tratadas com o máximo de cuidado.

A acelerar em direção ao futuro

Utilizar o modelo YOLOv8 da Ultralytics para estimativa de velocidade oferece uma solução flexível e eficiente para muitos usos. Embora existam desafios, como a precisão em condições difíceis e a abordagem de questões de privacidade, as vantagens são múltiplas. A estimativa de velocidade habilitada por visão computacional é mais económica, adaptável e precisa em comparação com os métodos mais antigos. É útil em vários setores, como transportes, desporto, vigilância e carros autónomos. Com todos os benefícios e aplicações, está destinada a ser uma parte fundamental dos futuros sistemas inteligentes.

Interessado em IA? Conecte-se com a nossa comunidade! Explore o nosso repositório do GitHub para saber mais sobre como estamos usando a IA para criar soluções inovadoras em vários setores, como saúde e agricultura. Colabore, inove e aprenda conosco! 🚀

Vamos construir o futuro
da IA juntos!

Comece sua jornada com o futuro do aprendizado de máquina

Comece gratuitamente
Link copiado para a área de transferência