0
点赞
收藏
分享

微信扫一扫

Python人脸检测与人脸数据集的生成

我是芄兰 2022-04-02 阅读 85

最近想做个人脸识别的测试,主要是来识别自己的脸,那么在这之前就必须准备我自己的人脸数据集。自己一张一张拍照片肯定是不好的,直接让电脑自己来生成数据集。

现在网上已经有很多检测人脸的代码了,并不复杂,基本上都是固定动作,我们直接拿这些代码稍加修改就可以了。

# -*- coding: utf-8 -*-
"""
Created on Sat Apr  2 00:30:30 2022

@author: 2540817538(有问题请联系此QQ)
"""
import cv2
#调用分类器,都是一些现成的,如果实在找不到路径可以直接用下面的网盘链接下载
face_cascade = cv2.CascadeClassifier("C:/Users/25408/anaconda3/pkgs/libopencv-4.0.1-hbb9e17c_0/Library/etc/haarcascades/haarcascade_frontalface_default.xml")
cap=cv2.VideoCapture(0)
count=0
num=int(input('想要多少张人脸照片'))
while True:
    ret,img=cap.read()
    gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray,1.3,5)
    for faceRect in faces:
         #x,y是左上角的坐标,w是宽,h是高
         x,y,w,h = faceRect
         #绘制矩形框框住人脸
         cv2.rectangle(img, (x, y), (x+w, y+w), (255, 0, 0))
         count=count+1 
         if (count<num):
             #将人脸截取下来并保存,自己设置保存地址
            cv2.imwrite("E:\\sptp\\"+str('face')+'.'+str(count)+'.jpg',gray[y:y+h,x:x+w]) 
    cv2.imshow("img",img)
    if cv2.waitKey(1) & 0xFF == ord('q') :
        #键盘输入q退出
       break
cap.release()
cv2.destroyAllWindows()

分类器文件链接:https://pan.baidu.com/s/1Q6cQipb7QWb3f2_vQgGWEQ 
提取码:xbxt

人脸检测效果:

 数据集制作情况:

 有了人脸数据集,就可以进行后面的步骤了。

举报

相关推荐

0 条评论