人脸识别技术细节总结
Posted Geek.Fan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了人脸识别技术细节总结相关的知识,希望对你有一定的参考价值。
一、技术背景
近年来,人脸识别在国内外各个领域都开始有了很多应用,人脸识别的研究成为模式识别和人工智能领域的一个研究热点。人脸识别过程受到很多因素的干扰,准确地提取人脸的合适特征是进行正确识别的关键,在人脸识别的各类方法中,对基本特征如眼睛、鼻子和嘴巴等的定位都是必不可少的步骤。当前的主流人脸识别技术方向主要包括从人脸检测、人脸关键点检测、人脸优选、人脸对齐、再到人脸特征提取等五大部分。
二、人脸识别系统部署
对于以上模块,目前都初步做过一些部署,主要使用一些网络结构和方法,大部分部署在嵌入式平台和移动端等设备。所以采用轻量级的网络结构,采用Caffe训练,然后采用腾讯云的NCNN框架部署。过程中也遇到N多问题,比较复杂繁琐,但反而体现出了较高的价值。在这里把相关经验跟大家分享一下,如有不足,敬请斧正。
三、人脸识别模块相关方法资料
1.人脸检测:Face Detection
人脸检测主要用到了MTCNN和MobileNet_SSD做人脸检测生成检测框,为后续的识别做处理。
MTCNN解读: 人脸方向学习(九):Face Detection-MTCNN解读_TheDayIn_csdn的博客-CSDN博客
MTCNN学习总结:深度学习自学(二):人脸检测MTCNN学习总结_TheDayIn_csdn的博客-CSDN博客
MobileNet_SSD解读:人脸方向学习(十):Face Detection-MobileNet_SSD解读_TheDayIn_csdn的博客-CSDN博客
Tiny-DSOD解读:人脸方向学习(十二):Face Detection-Tiny-DSOD解读_TheDayIn_csdn的博客-CSDN博客
2.人脸关键点检测:Face Landmark Detection
人脸关键点检测主要是根据人类视觉特性在人脸识别中的应用,人脸特征的整个几何结构足够用于识别。常用的方法有提取眼、口、鼻、眉等几个特征,利用它们之间的距离比例关系来区别人脸(即常用的三停五眼标准)见图1所示;还有利用可变形模板来精细地描述人脸几何形状。
对于一幅人脸图像,通过定位特征点可以方便地抽取人脸的各部分特征,若以这些特征点为基准对抽取的各个特征值进行归一化,则这些特征值具有平移、旋转和尺度上的不变性,通过这样对人脸进行规范化处理,可以将不同大小、方向和水平旋转等情况的人脸统一起来,扩大人脸库的入库范围,提高人脸识别的速度。
人脸关键特征点的定位方法:选取人脸的9个特征点,这些特征点的分布具有角度不变性,分别为2个眼球中心点、4个眼角点、两鼻孔的中点和2个嘴角点。在此基础上可以容易地获得与识别有关的人脸各器官特征以及扩展的其他特征点位置,用于进一步的识别算法。
关键点检测主要训练过MobileNetv1、MobileNetv2、MobileNetv3,尝试过各种轻量化的网络结构。后面会完善关键点训练过程和总结。
PFLD解读:人脸方向学习(十一):Face Landmark Detection-PFLD解读_TheDayIn_csdn的博客-CSDN博客
3.人脸优选:Face Selection
人脸优选主要是做质量筛选,刚开始是用传统图像处理的方法做边缘检测,图像质量筛选等,但是效果不好;后面又尝试用深度学习的分类的方法做模糊人脸,人脸姿态,人脸遮挡,人脸关照等,训练过单分类和多分类的方法,效果都不是很理想。
人脸质量评估-模糊检测方法总结:人脸方向学习(一):人脸质量评价-模糊检测方法总结一_TheDayIn_csdn的博客-CSDN博客_人脸模糊判断
图像增强方法总结:图像处理自学(六):图像增强算法总结_TheDayIn_csdn的博客-CSDN博客_图像增强算法总结
人脸模糊检测:人脸方向学习(三):人脸质量评价-人脸模糊检测总结二_TheDayIn_csdn的博客-CSDN博客_人脸模糊检测
质量判断总结:人脸方向学习(二):人脸质量评价-质量判断总结_TheDayIn_csdn的博客-CSDN博客_人脸质量判断算法
4.人脸对齐:Face Alignment
人脸对齐主要是在人脸关键点检测的基础上,利用仿射变换、相似变换等对关键点进行处理,将非正面人脸旋转成正脸来进行人脸特征提起,人脸关键点的好坏和对齐的效果影响人脸对齐的结果。
5.人脸识别:Face Recognition
刚开始接触人脸特征提取吗,觉得很高大上,不管是什么论文都想看看,但是发现论文的理论性很强,人脸识别经常会有很多新的loss函数出现,所以越学越吃力,单纯从理论方面有时候很难理解,所以我的做法是边看论文边做实验,训练模型,训练的过程中去理解,然后又回过头去复盘,查看自己的理解程度。其实人脸识别就是一个分类的过程,只不过分的类别是根据人脸ID去分类,不是我们平时做的只有几类的分类任务,总的来说就是一个分类的过程。网络训练的时候有很多技巧,比如先用Softmax训练一个基础版本,然后在用另外的loss函数比如arcface去微调模型。人脸特征提取的知识很多,需要学习的内容也很多,所以需要好好沉下心来。
最初训练的网络模型是SphereFace64和MobileFaceNets,先从基础的模型开始,采用公开数据集,后续慢慢根据场景优化。
Center Loss 解读:人脸方向学习(六):Face Recognition-Center Loss 解读_TheDayIn_csdn的博客-CSDN博客
CosFace 解读:人脸方向学习(七):Face Recognition-CosFace 解读_TheDayIn_csdn的博客-CSDN博客
ArcFace解读:人脸方向学习(五):Face Recognition-ArcFace解读_TheDayIn_csdn的博客-CSDN博客
SphereFace解读:人脸方向学习(四):Face Recognition-SphereFace解读_TheDayIn_csdn的博客-CSDN博客
MobileFaceNets解读:人脸方向学习(八):Face Recognition-MobileFaceNets解读_TheDayIn_csdn的博客-CSDN博客
6.人脸跟踪:Face Tracking
Face Tracking:人脸跟踪KCF解读:人脸方向学习(十三):Face Tracking-人脸跟踪KCF解读_TheDayIn_csdn的博客-CSDN博客
7.人脸活体检测:Face Anti-Spoofing
Face Anti-Spoofing:人脸活体检测 :人脸方向学习(十四):Face Anti-Spoofing-人脸活体检测-双目红外活体检测解读_TheDayIn_csdn的博客-CSDN博客b
参考及引用:
TheDayIn_csdn的博客_CSDN博客-计算机视觉,人脸系列学习,计算机基础领域博主
最后感谢TheDayln的相关文章,部分细节讲的很好。
以上是关于人脸识别技术细节总结的主要内容,如果未能解决你的问题,请参考以下文章