Search
Close this search box.
Rastreamento de veículos com IA
Rastreamento de veículos

Posts Relacionados:

Rastreamento de veículos pode parecer complicado, mas não com a ajuda da IA. Aprenda como é simples realizar o monitoramento de veículos em poucas linhas de código com Python e YOLO.

Receba nossa newsletter

Rastreamento de veículos

Visão computacional é uma das áreas mais promissoras e interessantes da IA. Ela conta com inúmeras aplicações extremamente úteis em segurança, controle de estoque, monitoramento, esportes entre muitas outras.

O rastreamento de veículos é uma das principais aplicações de visão computacional. Além de ser importante no planejamento urbano, ele também tem aplicações comerciais.

À primeira vista, um algoritmo de rastreamento pode parecer com um classificador. No entanto, algoritmos de rastreamento operam em vários quadros de um vídeo para seguir os objetos ao longo do tempo. Já os classificadores normalmente funcionam em imagens únicas.

Os rastreadores incorporam modelos de movimento para prever o deslocamento dos objetos entre os quadros de um vídeo. Consequentemente, eles têm velocidades de processamento mais rápidas para vídeos, especialmente para aplicativos em tempo real. Enquanto os classificadores simplesmente detectam classes de objetos em cada imagem, os rastreadores costumam atribuir identidades aos objetos. Isso permite a realização de operações como contagem e verificações de comportamentos complexos.

Neste post, faremos um rastreador de veículos com YOLOv8. Por ser um algoritmo extremamente eficiente do ponto de vista computacional, o YOLO serve para aplicações em tempo real. Portanto, o código mostrado aqui pode ser usado com alimentação diretamente de uma câmera acoplada a um computador.

tracking YOLO

Rastreamento de veículos em código

Usaremos YOLOv8 da Ultralytics. Antes de instalar o pacote, é necessário instalar PyTorch. Consulte o link para obter as instruções para seu sistema operacional aqui. Para instalar o YOLO/ultralytics com pip, o comando é mostrado abaixo:

				
					pip install ultralytics
				
			

Também é preciso instalar OpenCV.

				
					pip install opencv-python
				
			

Após as instalações, em um código Python, fazemos as importações necessárias:

				
					import cv2
from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator
				
			

Em seguida, abrimos um vídeo:

				
					video_cap = cv2.VideoCapture("SEU_VIDEO_AQUI") # abre um video

				
			

Para usar a câmera, basta trocar a linha acima por cap = cv2.VideoCapture(0). Depois, definimos o modelo do YOLO que usaremos. Usaremos o YOLOv8m, mas você pode utilizar outra versão se preferir. Isso não altera o código. Não é preciso baixar o modelo. Se você não o possui, ele será baixado na primeira vez em que o código for executado.

				
					model = YOLO("yolov8m.pt") # modelo YOLO 
				
			

Loop para executar rastreamento de vídeos

Depois, como é usual para processamento de vídeos, fazemos um loop para aplicar o algoritmo em cada quadro.

				
					while True:
    ret, frame = video_cap.read() # leitura do video
    controlkey = cv2.waitKey(1)  
    if not ret: # termina loop se nao houver quadro
        break
    tracker = model.track(frame, persist=True, classes=[1, 2, 3, 5, 6, 7]) # aplica algoritmo buscando as classes indicadas
    for r in tracker: # anota todos os objetos rastreados
        annotator = Annotator(frame)
        boxes = r.boxes # caixas delimitadoras dos objetos rastreados
        for box in boxes:
            b = box.xyxy[0]  # coordenadas de cada caixa delimitadora
            c = box.cls # classes identificadas
            annotator.box_label(b, model.names[int(c)]) # anota quadro com caixa e classe
    cv2.imshow("Frame", frame) # mostra quadro anotado
    if cv2.waitKey(1) == ord("q"): # comando para sair do loop
        break
video_cap.release() 
cv2.destroyAllWindows()
				
			

Dentro do loop, primeiro lemos um quadro do vídeo. Em seguida, criamos um break caso não haja quadros para serem lidos.

O YOLO é implementado na sequência. Na linha 6, definimos a tarefa que o modelo deve fazer: rastreamento (track) e aplicamos o algoritmo. O modelo do YOLO é pré-treinado no conjunto de dados COCO que possui cerca de 80 classes. Como desejamos rastrear apenas veículos, selecionamos especificamente os números correspondentes a suas classes (clique aqui para ver as classes disponíveis e seus índices). Portanto, o YOLO irá ignorar objetos pertencentes a outras classes.

Como o YOLO pode reconhecer vários objetos em um mesmo quadro, precisamos fazer um for loop para marcar cada item localizado. Para isso, usamos o Annotator da Ultralytics. Ele é utilizado para desenhar as caixas delimitadoras e anotar a classe em cada objeto rastreado.

Pronto! Rastreador de veículos concluído em cerca de 20 linhas de código. Veja um exemplo dele em ação abaixo:

Imagem com IA Generativa – Dia 199

IA generativa img 199

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial