我们继续用 Python 编写人脸识别程序,在本节中,我们现在将进入代码部分。你可以先阅读第 1 部分
首先,让我们编写添加新用户的代码。
在这里,我们从相机中拍摄了 30 张照片,并保存在我们的文件夹中。我们将使用这些图像来训练我们的模型。我们正在创建一个小数据集。
# gerekli kütüphaneleri import ediyoruz
import cv2
import numpy as np
import os
import sys
path = os.path.dirname(os.path.abspath(__file__))
detector=cv2.CascadeClassifier(path+r'/home/pi/Desktop/y2tube/haarcascade_frontalface_default.xml') #cascade classifierı kaydettiğimiz
#dosya yolunu ekliyoruz
#Kameradan fotoğraf çekeceğiz, kamera için ayarlama yapıyoruz
camera = cv2.VideoCapture(0)
camera.set(3,640)
camera.set(4,480)
minW = 0.1*camera.get(3)
minH = 0.1*camera.get(4)
faceCascade = cv2.CascadeClassifier("/home/pi/Desktop/y2tube/haarcascade_frontalface_default.xml")
#İnput olarak ad/soyad sorulacak,kullanıcı adı kayıtlıysa yeni klasör oluşturmaz,
#kayıtlı değilse kullanıcı adının yazdığı bir klasör oluşturur.
name = input("AD/SOYAD? ")
dirName = "/home/pi/Desktop/y2tube/dataset" + name
print(dirName)
if not os.path.exists(dirName):
os.makedirs(dirName)
print("Klasör oluştruldu")
else:
print("İsim önceden kullanılmış")
sys.exit()
count = 1
while True:
if count > 30: #30 adet fotoğrafı çekip oluşturulan klasöre kaydedecek
break
ret, im =camera.read()
gray=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(gray, scaleFactor = 1.5, minNeighbors = 5)
for (x, y, w, h) in faces:
roiGray = gray[y:y+h, x:x+w]
fileName = dirName + "/" + name + str(count) + ".jpg"
cv2.imwrite(fileName, roiGr