如何使用摄像头保存人脸?
基于opencv进行人脸识别数据收集,我对本人自己进行数据收集,具体请看代码注释,写很详细了,按s就保存图片为test.jpg,按q则退出界面:
代码如下:
import cv2
cap = cv2.VideoCapture(0) #摄像头开启,也可以传入mp4
# 相机的默认帧大小在Windows或Ubuntu中将为640x480
# cap.isOpened() 返回 true/false, 检查摄像头初始化是否成功
print(cap.isOpened())
while cap.isOpened():
ret_flag, img_camera = cap.read()
cv2.imshow("camera", img_camera)
# 每帧数据延时 1ms, 延时为0, 读取的是静态帧
k = cv2.waitKey(1)
# 按下 's' 保存截图
if k == ord('s'):
cv2.imwrite("test.jpg", img_camera)
# 按下 'q' 退出
if k == ord('q'):
break
# 释放所有摄像头
cap.release()
# 删除建立的所有窗口
cv2.destroyAllWindows()
演示效果:
人脸注册录入
首先我们是基于
识别模型:基于Dlib的 ResNet预训练模型dlib_face_recognition_resnet_model_v1.dat
识别算法:ResNet 神经网络。
人脸识别需要将 提取到的图像数据 和 已有图像数据 进行比对分析,才能判断出是否为本人,所以这里主要是做更方便的数据收集.
使用方式:
“n” 新录入人脸,新建文件夹 person_X/ 用来存储某人的人脸图像
"s" 开始捕获人脸,将捕获到的人脸放到 person_X/ 路径下
“q” 退出窗口
n创建文件夹后,按几次s收集自己的人脸数据:
可以实现多个人的录入,每一个人单独创建一个文件夹。