Índice:
- Etapa 1: Detectando o rosto em um vídeo em tempo real
- Etapa 2: treinar suas imagens de amostra
- Etapa 3: reconhecendo rostos
Vídeo: Detecção, treinamento e reconhecimento de rosto Opencv: 3 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
OpenCV é uma biblioteca de visão de computador de código aberto muito popular para realizar tarefas básicas de processamento de imagem, como desfoque, mistura de imagem, aprimoramento de imagem, bem como qualidade de vídeo, limite etc. Além de processamento de imagem, fornece vários aprendizado profundo pré-treinado modelos que podem ser usados diretamente para resolver tarefas simples à mão.
para instalação opencv use este link
www.instructables.com/id/Opencv-and-Python…
Etapa 1: Detectando o rosto em um vídeo em tempo real
você pode pesquisar no Google por muitos programas de detecção de rosto e os rostos detectados devem ser salvos em uma pasta para outras coisas de processamento de imagem, como treinamento e etiquetagem. vamos coletar 30 amostras
import cv2
importar numpy como np
import os import sys
camera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml") #add seu caminho de arquivo harcascade
name = raw_input ("Qual é o nome dele / dela?")
#todos os arquivos serão salvos na pasta Usuários / prasad / Documentos / imagens
dirName = "/ Usuários / prasad / Documentos / imagens /" + nome
print (dirName) se não os.path.exists (dirName): os.makedirs (dirName) print ("Diretório criado") else: print ("Nome já existe") sys.exit ()
contagem = 1
# vamos coletar 30 amostras
enquanto a contagem 30: break # frame = frame.array gray = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) faces = faceCascade.detectMultiScale (grey, 1.5, 5) for (x, y, w, h) em faces: roiGray = cinza [y: y + h, x: x + w] fileName = dirName + "/" + name + str (count) + ".jpg" cv2.imwrite (fileName, roiGray) cv2.imshow ("face", roiGray) cv2.rectangle (frame, (x, y), (x + w, y + h), (0, 255, 0), 2) count + = 1 cv2.imshow ('frame', frame) key = cv2.waitKey (1)
se chave == 27:
pausa
# camera.release ()
cv2.destroyAllWindows ()
Etapa 2: treinar suas imagens de amostra
Depois que a detecção de rosto for concluída, podemos ir para o treinamento das imagens
import osimport numpy como np de PIL import Image import cv2 import pickle #import serial
#ser = serial. Serial ('/ dev / ttyACM0', 9600, tempo limite = 1)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
reconhecedor = cv2.face. LBPHFaceRecognizer_create ()
baseDir = os.path.dirname (os.path.abspath (_ file_))
# treinar as imagens na pasta de imagens
imageDir = os.path.join (baseDir, "imagens")
currentId = 1
labelIds = {} yLabels = xTrain = # ser.write ("Treinamento…..". encode ())
para root, dirs, arquivos em os.walk (imageDir):
print (root, dirs, files) para arquivo em arquivos: print (file) if file.endswith ("png") ou file.endswith ("jpg"): path = os.path.join (root, file) label = os.path.basename (root) print (label)
se não, rótulo em labelIds:
labelIds [label] = currentId imprimir (labelIds) currentId + = 1
id_ = labelIds [rótulo]
pilImage = Image.open (path).convert ("L") imageArray = np.array (pilImage, "uint8") faces = faceCascade.detectMultiScale (imageArray, scaleFactor = 1.1, minNeighbors = 5)
para (x, y, w, h) nas faces:
roi = imageArray [y: y + h, x: x + w] xTrain.append (roi) yLabels.append (id_)
com aberto ("rótulos", "wb") como f:
pickle.dump (labelIds, f) f.close ()
reconhecedor.train (xTrain, np.array (yLabels))
reconhecizer.save ("trainer.yml") print (labelIds)
Etapa 3: reconhecendo rostos
após o término do treinamento, você pode executar o código abaixo para que ele comece a reconhecer seus rostos treinados
import osos.environ ['PYTHONINSPECT'] = 'on' import cv2 import numpy como np import pickle #import RPi. GPIO como GPIO from time import sleep
com open ('labels', 'rb') como f:
dicti = pickle.load (f) f.close ()
camera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
reconhecizer = cv2.face. LBPHFaceRecognizer_create () reconhecizer.read ("trainer.yml")
font = cv2. FONT_HERSHEY_SIMPLEX
last = ''
#for frame in camera.capture_continuous (rawCapture, format = "bgr", use_video_port = True):
enquanto True: ret, frame = camera.read () gray = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) faces = faceCascade.detectMultiScale (grey, scaleFactor = 1.5, minNeighbors = 5) para (x, y, w, h) nas faces: roiGray = cinza [y: y + h, x: x + w]
id_, conf = reconhecizer.predict (roiGray)
para nome, valor em dicti.items ():
if value == id_: print (name) cv2.putText (frame, name, (x, y), font, 2, (0, 0, 255), 2, cv2. LINE_AA) if name! = last: last = nome se conf <= 70: cv2.rectangle (quadro, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.imshow ('frame', frame)
key = cv2.waitKey (1)
se chave == 27:
quebrar cv2.destroyAllWindows ()
Recomendado:
Detecção de rosto no Raspberry Pi 4B em 3 etapas: 3 etapas
Detecção de rosto no Raspberry Pi 4B em 3 etapas: Neste Instructable, vamos realizar a detecção de rosto no Raspberry Pi 4 com Shunya O / S usando a Biblioteca Shunyaface. Shunyaface é uma biblioteca de reconhecimento / detecção de rosto. O projeto visa alcançar a detecção mais rápida e velocidade de reconhecimento com
Câmera IP com detecção de rosto usando a placa ESP32-CAM: 5 etapas
Câmera IP com detecção de rosto usando a placa ESP32-CAM: Esta postagem é diferente das outras e damos uma olhada na placa ESP32-CAM muito interessante que é surpreendentemente barata (menos de US $ 9) e fácil de usar. Criamos uma câmera IP simples que pode ser usada para transmitir um feed de vídeo ao vivo usando o 2
Robôs de rastreamento de rosto e detecção de sorriso para Halloween: 8 etapas (com fotos)
Rastreamento de Rosto e Detecção de Sorriso Robôs de Halloween: O Halloween está chegando! Decidimos construir algo legal. Conheça os robôs Ghosty e Skully. Eles podem seguir seu rosto e saber quando você está sorrindo para rir com você! Este projeto é outro exemplo de uso do aplicativo iRobbie que converte o iPhone int
Detecção de rosto + reconhecimento: 8 etapas (com imagens)
Detecção de rosto + reconhecimento: Este é um exemplo simples de detecção e reconhecimento de rosto com OpenCV de uma câmera. NOTA: FIZ ESTE PROJETO PARA CONCURSO DE SENSORES E USEI A CÂMERA COMO SENSOR PARA RASTREAR E RECONHECER FACES. Portanto, nosso objetivo nesta sessão, 1. Instale o Anaconda
Detecção de rosto e olhos com Raspberry Pi Zero e Opencv: 3 etapas
Detecção de rosto e olhos com Raspberry Pi Zero e Opencv: Neste instrutível, vou mostrar como você pode detectar rosto e olhos usando raspberry pi e opencv. Este é o meu primeiro instrutível no opencv. Eu segui muitos tutoriais para configurar o cv aberto no framboesa, mas todas as vezes encontrei alguns erros. De qualquer forma eu