Search
Close this search box.
IA para detecção e rastreamento facial
detecção e rastreamento facial

Posts Relacionados:

Detecção facial é a tarefa de localizar faces em imagens ou vídeos. Quando combinada com rastreamento, essa tecnologia de IA se torna assustadoramente precisa.

Receba nossa newsletter

IA para Detecção Facial

rastreamento facial

A detecção facial é uma tecnologia de IA desenvolvida para encontrar rostos humanos em imagens ou vídeos. Ela é extremamente importante para a IA porque atua como o primeiro passo para muitas outras tarefas de análise facial. Por exemplo, o reconhecimento facial, tarefa de identificar pessoas específicas, depende da detecção facial para localizar rostos.

A detecção facial tem inúmeras aplicações. Ela pode ajudar a identificar pessoas em imagens de segurança ou áreas públicas. Seu uso também pode ser feito como parte de tarefas de reconhecimento de identidade, emoções, idade e muito mais.

Rastreamento facial com IA

Rastreamento de objetos se refere à tarefa crítica de identificar a localização e a classe de objetos em um quadro de vídeo e manter um ID exclusivo para cada objeto detectado à medida que o vídeo progride. As aplicações dessa técnica são ilimitadas e abrangem desde tarefas de vigilância e segurança até análises esportivas em tempo real.

O rastreamento pode ser realizado com qualquer tipo de objeto como alvo. Para esse post, nos concentraremos no rastreamento facial. Nessa técnica, algoritmos de IA são usados para detectar rostos, atribuir IDs a eles e rastreá-los ao longo do tempo.

Detecção e Rastreamento Facial com YOLO e ByteTrack

YOLO é uma poderosa rede neural do tipo deep learning para visão computacional. Embora YOLO seja popularmente conhecido para detecção e identificação de objetos em imagens e vídeos, ele não se restringe apenas a essas tarefas. YOLO também tem capacidades para realizar tarefas ainda mais avançadas, como o rastreamento de objetos. Para rastreamento, seu algoritmo padrão é combinado com algoritmos adicionais como BoT-SORT (rastreador padrão) e ByteTrack. Neste post, usaremos o ByteTrack.

A saída dos rastreadores YOLO é consistente com a detecção de objetos padrão, mas com a adição de IDs. Isso permite o rastreamento de objetos em fluxos de vídeo em tempo real e a realização de análises subsequentes.

Bibliotecas Python

Para realizar a detecção e rastreamento facial com YOLO, usaremos o YOLOv8 para aproveitarmos o modelo pré-treinado YOLO-face. Ele requer a instalação do PyTorch (acesse esse link se precisar de instruções adicionais).

				
					# Install pytorch for CUDA 11.7 from pip
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
				
			

O modelo YOLO-face pré-treinado precisa ser baixado aqui. Existem vários tamanhos de modelos disponíveis, usaremos o médio.

Para fazer a instalação do YOLO com pip (para mais opções, consulte o site da Ultralytics), o comando é mostrado abaixo:

				
					pip install ultralytics
				
			

Também usaremos OpenCV para ler e anotar vídeos.

				
					pip install opencv-python
				
			

Rastreamento Facial com YOLO em Código

Num código Python, primeiro fazemos as importações necessárias:

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

				
			

Depois selecionamos o modelo do YOLO que usaremos e criamos um objeto de detecção. O modelo baixado precisa estar na mesma pasta do código ou você terá que especificar a localização correta.

				
					model = YOLO("yolov8m-face.pt")
				
			

Rastreamento em Vídeo Quadro a Quadro

Por fim, fazemos um simples while loop que aplica o algoritmo em um vídeo quadro a quadro.

				
					
video_cap = cv2.VideoCapture("SEU_VIDEO_AQUI.mp4")

while True:
    ret, frame = video_cap.read() # leitura do vídeo
    controlkey = cv2.waitKey(1)

    if not ret:
        break
    
    detections = model.track(frame, persist=True, tracker="bytetrack.yaml")[0] # detecta rosto e atribui ID com track

    for r in detections:
        annotator = Annotator(frame) # anota face detectada
        boxes = r.boxes
        for box in boxes:
            b = box.xyxy[0]  # pega as coordenadas do local da face detectada
            c = box.cls
            annotator.box_label(b, model.names[int(c)]) # adiciona caixa delimitadora na face

    cv2.imshow("Frame", frame) # exibe vídeo
    if cv2.waitKey(1) == ord("q"):
        break

video_cap.release()
cv2.destroyAllWindows()
				
			

Pronto! Detecção e rastreamento facial com alta precisão em menos de 30 linhas de código. Veja um exemplo abaixo.

Imagem com IA Generativa – Dia 102

IA generativa img102

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