Ultralytics YOLOv8 para estimativa de velocidade em projetos de visão computacional
Descobre 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 código simples.

Todos nós provavelmente já vimos sinais de limite de velocidade nas estradas. Alguns de nós podem até ter recebido uma notificação automática de excesso de velocidade por correio ou e-mail. Sistemas de gestão de tráfego baseados em 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 estimativa de velocidade e para reforçar a segurança nas estradas.
A Speed estimation não se limita apenas à segurança nas rodovias. Ela pode ser usada em esportes, veículos autônomos e várias outras aplicações. Neste artigo, vamos discutir como podes usar o Ultralytics YOLOv8 model para estimativa de velocidade nos teus projetos de visão computacional. Também vamos ver passo a passo um exemplo de código para que o possas testar por ti mesmo. Vamos começar!
A estimativa de velocidade torna a gestão de tráfego mais fácil#
De acordo com a Organização Mundial da Saúde (OMS), aproximadamente 1.19 million pessoas morrem anualmente devido a acidentes de trânsito causados pelo excesso de velocidade. Além disso, 20 a 50 milhões sofrem lesões não fatais, muitas das quais resultam em incapacidades. A importância da segurança no trânsito não pode ser subestimada, especialmente quando a estimativa de velocidade ajuda a prevenir acidentes, salva vidas e mantém as nossas estradas seguras e eficientes.
A estimativa de velocidade por meio de visão computacional envolve detectar e rastrear objetos em quadros de vídeo para calcular quão rápido eles estão se movendo. Algoritmos como o Ultralytics YOLOv8 podem identificar e rastrear objetos como veículos em quadros consecutivos. O sistema mede a distância que esses objetos percorrem usando câmeras calibradas ou pontos de referência para avaliar distâncias no mundo real. Cronometrando quanto tempo os objetos levam para se mover entre dois pontos, o sistema calcula sua velocidade usando a proporção de distância por tempo.

Fig 1. Estimativa de velocidade usando o modelo Ultralytics YOLOv8.
Além de identificar excesso de velocidade, 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 gestão de tráfego, como otimização de tempos de semáforo e alocação de recursos. Insights sobre padrões de tráfego e causas de congestionamento podem ser usados para planejar novas estradas e reduzir o congestionamento.
Aplicações de estimativa de velocidade em outras indústrias#
As aplicações de estimativa de velocidade vão além da monitorização de estradas. Também pode ser útil para monitorizar o desempenho de atletas, ajudar autonomous vehicles a compreender a velocidade dos objetos que se movem ao seu redor, detetar comportamento suspeito, etc. Onde quer que uma câmara possa ser usada para medir a velocidade de um objeto, a estimativa de velocidade usando visão computacional pode ser aplicada.
Aqui estão alguns exemplos de onde a estimativa de velocidade está sendo usada:
- Os Tesla's autonomous cars usam estimativa de velocidade baseada em visão para evitar colisões.
- A visão computacional e a estimativa de velocidade serão usadas nos 2024 Olympic Games para melhorar a análise de desempenho em eventos de atletismo.
- Cidades inteligentes estão pesquisando a análise da marcha de pedestres para monitorar velocidades de caminhada e aumentar a mobilidade e a segurança urbana. Esses sistemas podem alertar motoristas sobre a presença de pedestres e prevenir acidentes.
- Sistemas de monitoramento de comportamento animal usam estimativa de velocidade para rastrear o movimento dos animais e detectar sinais de estresse 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#
Sistemas de estimativa de velocidade baseados em visão estão substituindo métodos tradicionais baseados em sensores devido à sua maior precisão, custo-benefício e flexibilidade. Ao contrário de sistemas que dependem de sensores caros como LiDAR, a visão computacional usa câmeras padrão para monitorar e analisar a velocidade em tempo real. 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 criados para realizar 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.
Experimenta tu mesmo: Estimativa de velocidade usando o Ultralytics YOLOv8#
Agora que temos uma compreensão clara da estimativa de velocidade e de suas aplicações, vamos dar uma olhada mais de perto em como podes integrar a estimativa de velocidade nos teus projetos de visão computacional através de código. Vamos detectar veículos em movimento e estimar a sua velocidade usando o modelo Ultralytics YOLOv8.
Este exemplo usa um vídeo de carros em uma estrada baixado da internet. Podes usar o mesmo vídeo ou qualquer vídeo relevante. O modelo Ultralytics YOLOv8 identifica o centro de cada veículo e calcula a sua velocidade com base na rapidez com que esse centro cruza uma linha horizontal no quadro do vídeo.
Antes de começarmos, é importante notar 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, 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: Vamos começar instalando o pacote Ultralytics. Abra seu prompt de comando ou terminal e execute o comando mostrado abaixo.
pip install ultralyticsConsulta o nosso Ultralytics Installation guide para obteres instruções passo a passo e as melhores práticas sobre o processo de instalação. Se tiveres algum problema ao instalar os pacotes necessários para o YOLOv8, o nosso Common Issues guide tem soluções e dicas úteis.
Passo 2: Em seguida, vamos importar as bibliotecas necessárias. A biblioteca OpenCV nos ajudará a processar o vídeo.
import cv2
from ultralytics import YOLO, solutionsPasso 3: Em seguida, podemos carregar o modelo Ultralytics YOLOv8 e recuperar os nomes das classes que o modelo pode detectar.
model = YOLO("yolov8n.pt")
names = model.model.namesVê todos os models we support para perceberes qual o modelo que melhor se adapta ao teu projeto.
Passo 4: Nesta etapa, 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 gravador de vídeo para salvar nossos resultados finais da estimativa de velocidade. O arquivo de vídeo de saída será salvo como “speed_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 a estimativa de velocidade. Para nosso vídeo de entrada, essa linha será colocada horizontalmente no meio do quadro. Sinta-se à vontade para ajustar 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 da 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 gravação 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 em seu terminal ou prompt de comando, execute o script usando o seguinte comando:
python your_script_name.pyOs desafios da estimativa de velocidade baseada em visão#
Também é importante entender os desafios envolvidos na implementação da estimativa de velocidade usando visão computacional. Condições climáticas desfavoráveis, como chuva, neblina ou neve, podem causar problemas ao sistema, pois podem obstruir a visibilidade da estrada. Da mesma forma, oclusões causadas por outros veículos ou objetos podem dificultar o rastreamento e a estimativa precisa da velocidade de um veículo alvo. Condições de iluminação precárias que causam sombras ou reflexos do sol também podem complicar ainda mais a tarefa de estimativa de velocidade.
Outro desafio diz respeito à computational power. Para estimar a velocidade em tempo real, temos de processar muitos dados visuais de câmaras de trânsito de alta qualidade. A tua solução pode exigir hardware dispendioso para lidar com tudo isto e garantir que tudo funciona rapidamente e sem atrasos.
Além disso, há a questão da privacidade. Os dados coletados por esses sistemas podem incluir detalhes do veículo do indivíduo, como marca, modelo e informações da placa, que são coletados sem o consentimento deles. Algumas câmeras HD modernas podem até capturar imagens dos ocupantes dentro do carro. Tal coleta de dados pode levantar sérias questões éticas e legais que precisam ser tratadas com o máximo cuidado.
Acelerando em direção ao futuro#
Usar o Ultralytics YOLOv8 model para a estimativa de velocidade fornece uma solução flexível e eficiente para muitos usos. 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 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 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? Conecta-te com a nossa community! Explora o nosso GitHub repository para saberes mais sobre como estamos a usar a IA para criar soluções inovadoras em várias indústrias, como healthcare e agriculture. Colabora, inova e aprende connosco! 🚀






