人脸识别课堂疲劳检测项目草记与资料汇总
一、python实现人脸识别
https://github.com/ageitgey/face_recognition
face recognition 人脸识别项目,兼容树莓派系统
Seeta Face 人脸识别引擎,基于 cpp实现,开源协议BSD-2、可供学术界和工业界免费使用。
主要软件 API/SDK:
I. face ++.Face++.com 免费提供人脸检测,人脸识别,人脸属性分析等服务的云端服务平台
2、 sky biome try。主要包含 face detection. face recognition face grouping
主要人脸识别图库: LFW.YFW
人脸识别过程
人脸定位 人脸校准人脸确认人脸鉴别
python 模块
通过引入 face_recognition 实现
API 文档: https://face-recognition.readthedocs.io.
在图片中自动识别所有人脸 参照此案例this example:
https://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_picture.py识别图片中的人脸并告知姓名 参照此案例this example:
https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_pictures.pyPython代码案例
https://github.com/ageitgey/face_recognition/tree/master/examples
·找到照片中的人脸Find faces in a photograph
https://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_picture.py· 识别照片中的面部特征Identify specific facial features in a photograph
https://github.com/ageitgey/face_recognition/blob/master/examples/find_facial_features_in_picture.py· 使用数字美颜Apply (horribly ugly) digital make-up
https://github.com/ageitgey/face_recognition/blob/master/examples/digital_makeup.py·基于已知人名找到并识别出照片中的未知人脸Find and recognize unknown faces in a photograph
based on photographs of known people
https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_pictures.pypython
//人脸识别算法主要种类
ASM(Active Shape Model)早期的基于统计学习的人脸配准算法
AAM (active appearance model)是ASM的改进算法
CLM constrained local model
CR级联回归
LBF (local binary feature)局部二元模式
ERT (ensemble of regression tree)集成回归树梯度提升的学习方法,并提出了提取有效像素差特征的距离先验。
ESR:提出了两阶段的学习策略和像素差特征,并通过随机蒛来回归人脸关键点的位置;
LBP:在ESR的基础上提出了稀疏的局部二值化特征,并用随机回归森林进行学习。
FDG(first derivative of Gaussian operator)是一种多方向的梯度算子,在指定方向角θ后,其计算公式为
FDG具有很强的抗噪声能力,能够很好的保留图像的边缘信息。相比较Gabor等其他梯度特征,更适合人脸配准实时性的要求。@a微风掠过 https://www.jianshu.com/p/2c53b2d508fa
二、项目草拟
项目第一步:基于视觉的疲劳检测
基于视觉的疲劳检测可以认为大致分为三个部分,点头,哈欠,闭眼,趴在桌子上。分别为面部姿态、嘴部特征、眼部特征、行为特征。
哈欠
参考材料:陈博士《基于可拓学与面部视觉。。。》
基于特征点曲线拟合的嘴唇内轮廓检测方法,先对嘴巴进行粗定位,然后对嘴巴区域进行Harris角点检测,利用检测到的角点坐标拟合出嘴巴内轮廓曲线。【角点检测+二次曲线拟合】
内轮廓具有的优点为:准确的张口度;头部较大旋转仍能计算张口度。
角点:角点没有明确的数学定义,普遍认为角点是二维图像亮度变化剧烈的点或图像边缘曲线上曲率极大值的点。
参考文章
https://www.jianshu.com/p/f0a38cafd2a1
闭眼
通过landmark点的标号直接定位眼睛位置
参考文献
https://blog.csdn.net/zhulong1984/article/details/100864374
参考试例
https://www.pyimagesearch.com/2017/04/24/eye-blink-detection-opencv-python-dlib/
点头:利用姿态估计结果(Pitch的读数)判断是否点头及点头幅度,或用鼻尖的前后移动值(或是方差,方差表示一个单位时间数据的偏离程度,程度越大,则表示发生点头动作的概率越大、点头幅度越大)
参考文献
https://blog.csdn.net/zhulong1984/article/details/100864374
趴桌
行为识别——骨架提取/人体关键点估计
参考文献https://blog.csdn.net/weixin_41809530/article/details/107644477
项目第二步:基于面部识别确定同学身份
将疲劳数据绑定到人员
在图片中自动识别所有人脸
试例
https://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_picture.py
识别图片中的人脸并告知姓名
试例
https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_pictures.py
项目第三步:将数据记录在数据库
项目第四步:数据分析
项目第五步:管理员界面