Descobre como o modelo Ultralytics YOLOv8 pode ser utilizado para estimar a velocidade nos teus projectos de visão por computador. Experimenta-o com um exemplo simples de codificação.
Provavelmente, todos nós já vimos sinais 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 gestão de tráfego com inteligência artificial (IA) podem assinalar automaticamente as infracções por excesso de velocidade graças à visão por computador. As imagens em tempo real captadas por câmaras nos semáforos e nas auto-estradas são utilizadas para estimar a velocidade e reforçar a segurança rodoviária.
A estimativa da velocidade não se limita apenas à segurança rodoviária. Pode ser utilizada em desportos, veículos autónomos e várias outras aplicações. Neste artigo, discutiremos como podes usar o modeloUltralytics YOLOv8 para estimativa de velocidade nos teus projectos de visão computacional. Também vamos acompanhar passo a passo um exemplo de codificação para que possas experimentar por ti próprio. Vamos começar!
De acordo com a Organização Mundial de Saúde (OMS), cerca de 1,19 milhões de pessoas morrem anualmente em acidentes rodoviários devido ao excesso de velocidade. Além disso, mais 20 a 50 milhões de pessoas sofrem lesões não mortais, muitas das quais resultam em incapacidades. A importância da segurança rodoviária não pode ser exagerada, especialmente quando a estimativa da velocidade ajuda a evitar acidentes, salva vidas e mantém as nossas estradas seguras e eficientes.
A estimativa da velocidade utilizando a visão por computador envolve a deteção e o seguimento de objectos em fotogramas de vídeo para calcular a velocidade a que se movem. Algoritmos como o YOLOv8 podem identificar e seguir objectos, como veículos, em fotogramas consecutivos. O sistema mede a distância que estes objectos percorrem utilizando câmaras calibradas ou pontos de referência para medir as distâncias no mundo real. Ao cronometrar o tempo que os objectos demoram a deslocar-se entre dois pontos, o sistema calcula a sua velocidade utilizando o rácio distância-tempo.
Para além de apanharem os velocistas, os sistemas de estimativa de velocidade integrados na IA podem recolher dados para fazer previsões sobre o tráfego. Estas previsões podem apoiar tarefas de gestão do tráfego, como a otimização dos tempos de sinalização e a atribuição de recursos. As informações sobre os padrões de tráfego e as causas do congestionamento podem ser utilizadas para planear novas estradas para reduzir o congestionamento do tráfego.
As aplicações de estimativa de velocidade vão para além da monitorização de estradas. Também pode ser útil para monitorizar o desempenho dos atletas, ajudar os veículos autónomos a compreender a velocidade dos objectos que se deslocam à sua volta, detetar comportamentos suspeitos, etc. Sempre que uma câmara possa ser utilizada para medir a velocidade de um objeto, pode ser utilizada a estimativa de velocidade utilizando a visão por computador.
Eis alguns exemplos de utilização da estimativa de velocidade:
Os sistemas de estimativa de velocidade baseados na visão estão a substituir os métodos tradicionais baseados em sensores devido à sua maior precisão, rentabilidade e flexibilidade. Ao contrário dos sistemas que dependem de sensores caros como o LiDAR, a visão computacional utiliza câmaras padrão para monitorizar e analisar a velocidade em tempo real. As soluções de visão computacional para estimativa de velocidade podem ser perfeitamente integradas à infraestrutura de tráfego existente. Além disso, esses sistemas podem ser construídos para executar uma série de tarefas complexas, como identificação de tipo de veículo e análise de padrão de tráfego para melhorar o fluxo geral de tráfego e a segurança.
Agora que temos uma compreensão clara da estimativa de velocidade e das suas aplicações, vamos ver mais de perto como podes integrar a estimativa de velocidade nos teus projectos de visão por computador através de código. Vamos detetar veículos em movimento e estimar sua velocidade usando o modelo YOLOv8 .
Este exemplo utiliza um vídeo de carros numa estrada descarregado da Internet. Podes utilizar o mesmo vídeo ou qualquer outro vídeo relevante. O modelo YOLOv8 identifica o centro de cada veículo e calcula a sua velocidade com base na rapidez com que esse centro atravessa 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 calibragem da câmara não é tida em conta e, por isso, a estimativa de velocidade pode não ser totalmente exacta. Além disso, a velocidade estimada pode variar consoante a velocidade do teu GPU.
Passo 1: Começa por instalar o pacote Ultralytics . Abre o teu prompt de comando ou terminal e executa o comando mostrado abaixo.
Dá uma vista de olhos ao nosso guia de instalaçãoUltralytics para obteres instruções passo-a-passo e as melhores práticas no processo de instalação. Se tiveres algum problema durante a instalação dos pacotes necessários para YOLOv8, o nosso guia de Problemas comuns tem soluções e dicas úteis.
Passo 2: Em seguida, importa as bibliotecas necessárias. A biblioteca OpenCV ajudar-nos-á a lidar com o processamento de vídeo.
Passo 3: Em seguida, podemos carregar o modelo YOLOv8 e obter os nomes das classes que o modelo pode detetar.
Consulta todos os modelos que suportamos para perceberes qual o modelo que melhor se adequa ao teu projeto.
Passo 4: Neste passo, vamos abrir o ficheiro de vídeo de entrada utilizando o módulo VideoCapture do OpenCV. Também extrairemos a largura, a altura e os quadros por segundo (fps) do vídeo.
Passo 5: Aqui, vamos inicializar o gravador de vídeo para guardar os nossos resultados finais da estimativa de velocidade. O ficheiro de vídeo de saída será guardado como "speed_estimation.avi".
Passo6: A seguir, podemos definir os pontos da linha para a estimativa da velocidade. Para o nosso vídeo de entrada, esta linha será colocada horizontalmente no meio do fotograma. Podes brincar com os valores para colocar a linha nas posições mais adequadas, dependendo do teu vídeo de entrada.
Passo 7: Agora, podemos inicializar o objeto de estimativa de velocidade utilizando os pontos de linha definidos e os nomes das classes.
Passo 8: O núcleo do script processa o vídeo quadro a quadro. Lê cada fotograma e detecta e segue os objectos. A velocidade dos objectos seguidos é estimada e o fotograma anotado é escrito no vídeo de saída.
Passo 9: Finalmente, liberta os objectos de captura e gravação de vídeo e fecha todas as janelas do OpenCV.
Passo 10: Guarda o teu script. Se estiveres a trabalhar a partir do terminal ou da linha de comandos, executa o script utilizando o seguinte comando:
Se o teu código for executado com êxito, o teu ficheiro de vídeo de saída terá o seguinte aspeto.
Também é importante compreender os desafios envolvidos na implementação da estimativa de velocidade utilizando a visão por computador. Condições climatéricas desfavoráveis, como chuva, nevoeiro ou neve, podem causar problemas ao sistema, uma vez que podem obstruir a visibilidade da estrada. Do mesmo modo, as oclusões causadas por outros veículos ou objectos podem dificultar o seguimento e a estimativa precisa da velocidade de um veículo-alvo por parte destes sistemas. As más condições de iluminação, que causam sombras ou reflexos do sol, também podem complicar ainda mais a tarefa de estimativa da velocidade.
Outro desafio diz respeito à capacidade de computação. Para estimar a velocidade em tempo real, temos de processar uma grande quantidade de dados visuais provenientes 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.
Depois, há a questão da privacidade. Os dados recolhidos por estes sistemas podem incluir os detalhes do veículo de um indivíduo, como a marca, o modelo e a matrícula, que são recolhidos sem o seu consentimento. Algumas câmaras HD modernas podem até captar imagens dos ocupantes dentro do carro. Esta recolha de dados pode levantar sérias questões éticas e jurídicas que devem ser tratadas com o máximo cuidado.
Interessado em IA? Liga-te à nossa comunidade! Explora o nosso repositório GitHub para saberes mais sobre como estamos a utilizar a IA para criar soluções inovadoras em vários sectores, como os cuidados de saúde e a agricultura. Colabora, inova e aprende connosco! 🚀
Começa a tua viagem com o futuro da aprendizagem automática