Ultralytics YOLOv8 para estimar velocidade em projetos de visão computacional
Descubra como usar o modelo Ultralytics YOLOv8 para estimar velocidade em seus projetos de visão computacional. Experimente com um exemplo simples de código.
Abirami Vina8 min de leitura
Provavelmente todos já vimos placas de limite de velocidade. Alguns de nós talvez até tenham recebido por correio ou e-mail uma notificação automática de infração por excesso de velocidade. Sistemas de gestão de tráfego com inteligência artificial (IA) podem sinalizar automaticamente infrações por excesso de velocidade graças à visão computacional. Imagens em tempo real capturadas por câmeras em postes de iluminação e rodovias são usadas para estimar a velocidade e reforçar a segurança viária.
A estimativa de velocidade não se limita à segurança rodoviária. Pode ser usada no desporto, em veículos autónomos e em várias outras aplicações. Neste artigo, vamos abordar como podes usar o modelo Ultralytics YOLOv8 para estimar a velocidade nos teus projetos de visão computacional. Também vamos explicar passo a passo um exemplo de código para que possas experimentá-lo.
A estimativa de velocidade facilita a gestão do tráfego#
De acordo com a Organização Mundial da Saúde (WHO), aproximadamente 1,16 milhão de pessoas morrem anualmente em acidentes de trânsito, e o excesso de velocidade é um dos principais fatores. Além disso, de 20 a 50 milhões de pessoas sofrem ferimentos não fatais, muitos dos quais resultam em deficiências. A importância da segurança no trânsito não pode ser subestimada, especialmente porque a estimativa de velocidade ajuda a prevenir acidentes, salvar vidas e manter nossas estradas seguras e eficientes.
A estimativa de velocidade com visão computacional envolve detetar e rastrear objetos em fotogramas de vídeo para calcular a velocidade a que se deslocam. Modelos como o Ultralytics YOLOv8 conseguem identificar e rastrear objetos, como veículos, em fotogramas consecutivos. O sistema mede a distância percorrida por esses objetos usando câmaras calibradas ou pontos de referência para calcular distâncias no mundo real. Ao medir o tempo que os objetos levam a deslocar-se entre dois pontos, o sistema calcula a velocidade através da relação entre distância e tempo.

Fig. 1. Estimativa de velocidade com o modelo Ultralytics YOLOv8.
Além de identificar motoristas em excesso de velocidade, sistemas de estimativa de velocidade integrados à IA podem coletar dados para fazer previsões sobre o tráfego. Essas previsões podem apoiar tarefas de gestão do tráfego, como otimizar os tempos dos semáforos e a alocação de recursos. Informações sobre padrões de tráfego e causas de congestionamentos podem ser usadas para planejar novas vias e reduzir os congestionamentos.
Aplicações da estimativa de velocidade em outros setores#
As aplicações da estimativa de velocidade vão além do monitoramento de vias. Ela também pode ser útil para monitorar o desempenho de atletas, ajudar veículos autônomos a entender a velocidade dos objetos ao redor, detectar comportamentos suspeitos etc. Sempre que uma câmera puder ser usada para medir a velocidade de um objeto, será possível usar a estimativa de velocidade com visão computacional.
Veja alguns exemplos de uso da estimativa de velocidade:
- Os carros autônomos da Tesla usam estimativa de velocidade baseada em visão para evitar colisões.
- As cidades inteligentes estão pesquisando a análise da marcha de pedestres para monitorar a velocidade de caminhada e aumentar a mobilidade e a segurança urbanas. Esses sistemas podem alertar motoristas sobre a presença de pedestres e prevenir acidentes.
- Sistemas de monitoramento do comportamento animal usam a estimativa de velocidade para rastrear o movimento dos animais e detectar sinais de sofrimento ou doença.

Fig. 2. A estimativa de velocidade pode medir a velocidade de caminhada de uma pessoa.
Benefícios da estimativa de velocidade com visão computacional#
Os sistemas de estimativa de velocidade baseados em visão estão a substituir os métodos tradicionais baseados em sensores devido à sua maior precisão, relação custo-benefício e flexibilidade. Ao contrário dos sistemas que dependem de sensores dispendiosos, como o LiDAR, a visão computacional usa câmaras comuns para monitorizar e analisar a velocidade em tempo real. As soluções de visão computacional para estimativa de velocidade podem ser integradas na infraestrutura de trânsito existente. Além disso, estes sistemas podem ser desenvolvidos para realizar várias tarefas complexas, como a identificação do tipo de veículo e a análise de padrões de trânsito, para melhorar o fluxo e a segurança do trânsito em geral.
Experimente: estimativa de velocidade usando Ultralytics YOLOv8#
Agora que entendemos a estimativa de velocidade e suas aplicações, vamos ver mais de perto como você pode integrá-la aos seus projetos de visão computacional por meio de código. Vamos detectar veículos em movimento e estimar a velocidade deles usando o modelo Ultralytics YOLOv8.
Este exemplo usa um vídeo de carros numa estrada, descarregado da Internet. Podes usar o mesmo vídeo ou qualquer outro vídeo relevante. O modelo Ultralytics YOLOv8 deteta e rastreia cada veículo, e o estimador de velocidade converte a distância percorrida por cada veículo rastreado ao longo de vários fotogramas numa velocidade, usando a frequência de fotogramas do vídeo e uma escala de metros por píxel.
Antes de começarmos, é importante notar que, neste caso, o cálculo da distância é aproximado e baseia-se na distância euclidiana em píxeis multiplicada por um valor estimado de metros por píxel. A calibração da câmara não é considerada, pelo que a estimativa de velocidade pode não ser totalmente precisa.
Etapa 1: Vamos começar instalando o pacote Ultralytics. Abra o prompt de comando ou o terminal e execute o comando mostrado abaixo.
pip install ultralyticsConsulte nosso guia de instalação da Ultralytics para ver instruções passo a passo e práticas recomendadas para o processo de instalação. Se você tiver algum problema ao instalar os pacotes necessários para o YOLOv8, nosso guia de problemas comuns traz soluções e dicas úteis.
Etapa 2: Em seguida, vamos importar as bibliotecas necessárias. A biblioteca OpenCV nos ajudará a processar vídeos.
import cv2
from ultralytics import solutionsPasso 3: Neste passo, vamos abrir o ficheiro de vídeo de entrada usando o módulo VideoCapture do OpenCV. Também vamos extrair a largura, a altura e a frequência de fotogramas 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 4: Aqui, vamos inicializar o gravador de vídeo para guardar os resultados finais da estimativa de velocidade. O ficheiro de vídeo de saída será guardado como “speed_estimation.avi”.
video_writer = cv2.VideoWriter("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))Passo 5: Agora, podemos inicializar o objeto de estimativa de velocidade com o modelo Ultralytics YOLOv8 e a frequência de fotogramas do vídeo. O valor meter_per_pixel define a escala do cenário no mundo real, por isso ajusta-o à configuração da tua câmara, se necessário.
speed_obj = solutions.SpeedEstimator(
model="yolov8n.pt",
fps=fps,
meter_per_pixel=0.05,
show=True,
)Confira todos os modelos compatíveis para descobrir qual deles é mais adequado ao seu projeto.
Passo 6: A parte principal do script processa o vídeo fotograma a fotograma. Lemos cada fotograma, e o estimador de velocidade deteta e rastreia objetos, estima a respetiva velocidade e devolve o fotograma anotado, que é 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
results = speed_obj(im0)
video_writer.write(results.plot_im)Passo 7: Por fim, libertamos os objetos de captura e gravação de vídeo e fechamos quaisquer janelas do OpenCV.
cap.release()
video_writer.release()
cv2.destroyAllWindows()Passo 8: Guarda o teu script. Se estiveres a trabalhar no terminal ou na linha de comandos, executa o script com o seguinte comando:
python your_script_name.pyOs desafios da estimativa de velocidade baseada em visão#
Também é importante compreender os desafios envolvidos na implementação da estimativa de velocidade com visão computacional. Condições meteorológicas desfavoráveis, como chuva, nevoeiro ou neve, podem causar problemas ao sistema, pois podem obstruir a visibilidade da estrada. Da mesma forma, as oclusões causadas por outros veículos ou objetos podem dificultar o rastreio e a estimativa precisa da velocidade de um veículo-alvo. Más condições de iluminação que provoquem sombras ou encandeamento do sol também podem complicar ainda mais a tarefa de estimar a velocidade.
Outro desafio diz respeito à capacidade computacional. Para estimar a velocidade em tempo real, precisamos processar muitos dados visuais de câmeras de trânsito de alta qualidade. Sua solução pode exigir hardware caro para lidar com tudo isso e garantir que tudo funcione rapidamente, sem atrasos.
Depois, há a questão da privacidade. Os dados recolhidos por estes sistemas podem incluir informações sobre o veículo de uma pessoa, como a marca, o modelo e a matrícula, que podem ser obtidas sem o consentimento dessa pessoa. Algumas câmaras HD modernas podem até captar imagens dos ocupantes dentro do carro. Esta recolha de dados pode levantar questões éticas e legais graves, que têm de ser tratadas com o máximo cuidado.
Acelerando rumo ao futuro#
Usar o modelo Ultralytics YOLOv8 para estimar a velocidade oferece uma solução flexível e eficiente para muitas aplicações. Embora existam desafios, como a precisão em condições difíceis e a resolução de questões de privacidade, as vantagens são significativas. Em comparação com os métodos antigos, a estimativa de velocidade com visão computacional é mais económica, adaptável e precisa. É útil em vários setores, como transportes, desporto, vigilância e veículos autónomos. Com todas as suas vantagens e aplicações, é provável que se torne uma parte essencial dos futuros sistemas inteligentes.
Tens interesse em IA? Liga-te à nossa comunidade! Explora o nosso repositório do GitHub para saberes mais sobre como usamos a IA para criar soluções inovadoras em vários setores, como os cuidados de saúde e a agricultura. Colabora, inova e aprende connosco!
Escrito por
Comentários
Faça uma pergunta, compartilhe seus resultados ou ajude alguém.










