作者想着本次寒假自己动手做一个简单的人脸识别系统。
环境为tensorflow2.0,python3.9.0,opencv3.4.15。
本人新手一枚,代码如有错误还望各位指教。
总体思路是制作数据集—编写模型—训练模型—调整模型。
第一天首先把人脸数据集做好。思路是用opencv来识别人脸(利用笔记本自带摄像头),将人脸裁剪出来,然后统一大小,最后保存。
第一步
导入opencv
import cv2
利用opencv里面自带的人脸识别框架haarcascade来识别人脸。
face_cascade = cv2.CascadeClassifier("E:\\anaconda\\Lib\\site-packages\\cv2\\data\\haarcascade_frontalface_default.xml")#实例化识别框架
第二步
实例化opencv摄像头
cap=cv2.VideoCapture(0 + cv2.CAP_DSHOW)
0表示摄像头用自带的摄像头(如果是外接摄像头则要改变)。后面的‘+ cv2.CAP_DSHOW’是调试的时候短时间内连续打开摄像头就会报错,我参考了一位老哥的帖子加上的,十分感谢。原帖地址
第三步
采集人脸信息。
while True:
ret,img=cap.read()#将摄像头读取到的图像传给参数
cv2.imshow("img",img)#显示图像
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#将采集到的图片转为灰度图片
faces = face_cascade.detectMultiScale(gray,1.1