向AI转型的程序员都关注了这个号👇👇👇
人脸任务在计算机视觉领域中十分重要,本项目主要使用了两类技术:人脸检测+人脸识别。
代码分为两部分内容:人脸注册 和 人脸识别。
人脸注册:将人脸特征存储进数据库,这里用feature.csv代替。
人脸识别:将人脸特征与CSV文件中人脸特征进行比较,如果成功匹配则写入考勤文件attendance.csv
文章前半部分为一步步实现流程介绍,最后会有整理过后的完整项目代码。
一、项目实现
A. 注册:
导入相关包
设计注册功能
注册过程我们需要完成的事:
-
打开摄像头获取画面图片
-
在图片中检测并获取人脸位置
-
根据人脸位置获取68个关键点
-
根据68个关键点生成特征描述符
-
保存
-
(优化)展示界面,加入注册时成功提示等
1、基本步骤
我们首先进行前三步:
此时一张帅脸如下:
2、描述符的采集
之后,我们根据参数,即faceCount 和 Interval 进行描述符的生成和采集。
(这里我默认是faceCount=3,Interval=3,即每3秒采集一次,共3次)
等待进行下一次采集
...
成功采集1次
等待进行下一次采集
...
成功采集2次
等待进行下一次采集
...
成功采集3次
采集完毕
3、完整的注册
最后就是写入csv文件
这里加入了注册成功等的提示,且把一些变量放到了全局,因为后面人脸识别打卡时也会用到。
此时执行:
faceRegiser(3,"用户B")
人脸注册成功 1/3,faceId:3,userName:用户B
人脸注册成功 2/3,faceId:3,userName:用户B
人脸注册成功 3/3,faceId:3,userName:用户B
人脸注册完毕
其features文件:
B. 识别、打卡
识别步骤如下:
-
打开摄像头获取画面
-
根据画面中的图片获取里面的人脸特征描述符
-
根据特征描述符将其与feature.csv文件里特征做距离判断
-
获取ID、NAME
-
考勤记录写入attendance.csv里
这里与上面流程相似,不过是加了一个对比功能,距离小于阈值,则表示匹配成功。就加快速度不一步步来了,代码如下:
然后效果就和我们宿舍楼下差不多了~
我年轻的时候,我大概比现在帅个几百倍吧,哎。
上文其实把登录和注册最后一部分代码放在一起就是了,这里就不再复制粘贴了,相关权重文件下载链接:
https://github.com/opencv/opencv/tree/master/data
当然本项目还有很多需要优化的地方,比如设置用户不能重复、考勤打卡每天只能一次、把csv改为链接成数据库等等。
原文地址
https://blog.csdn.net/suic009/article/details/127382811
机器学习算法AI大数据技术
搜索公众号添加: datanlp
长按图片,识别二维码
阅读过本文的人还看了以下文章:
基于40万表格数据集TableBank,用MaskRCNN做表格检测
《深度学习入门:基于Python的理论与实现》高清中文PDF+源码
2019最新《PyTorch自然语言处理》英、中文版PDF+源码
《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码
PyTorch深度学习快速实战入门《pytorch-handbook》
【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》
李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材
【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类
如何利用全新的决策树集成级联结构gcForest做特征工程并打分?
Machine Learning Yearning 中文翻译稿
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx
