欢迎大家来到本次课程,本次课程所分享的内容为人脸识别算法。
我们看一下本次课程的目录
接下来我们开始吧,看一下主要的挑战。
人脸识别所面临的一个挑战就是你需要解决一次学习问题,这意味着在大多数人脸识别应用中,你需要通过单单一张图片或者单单一个人脸样例就能去识别这个人。
DeepFace是FaceBook提出来的,后续有DeepID和FaceNet出现。而且在DeepID和FaceNet中都能体现DeepFace的身影,所以DeepFace可谓是CNN在人脸识别的奠基之作,目前深度学习在人脸识别中也取得了非常好的效果。DeepFace在进行人脸识别的过程中采用的是人脸检测——3D对齐——CNN提取特征——分类的过程。
C1:卷积层,卷积核尺寸11*11,共32个卷积核
M2:池化层,最大池化3*3,即stride = 2
C3:卷积层,卷积核尺寸9*9 ,共16个卷积核
L4: 卷积层,卷积核尺寸9*9 ,共16个卷积核。L表示local,意思是卷积核的参数不共享
L5: 卷积层,卷积核尺寸7*7 ,共16个卷积核。L表示local,意思是卷积核的参数不共享
L6: 卷积层,卷积核尺寸5*5 ,共16个卷积核。L表示local,意思是卷积核的参数不共享
F7: 全连接,4096个神经元
F8: 全连接,4030个神经元
FaceNet算法的提出:由Google工程师Florian Schroff,Dmitry Kalenichenko,James Philbin提出的人脸识别模型,发表于CVPR 2015。
FaceNet的特点:没有用传统的softmax的方式去进行分类学习,而是抽取其中某一层作为特征,学习一个从图像到欧式空间的编码方法,然后基于这个编码再做人脸识别、人脸验证和人脸聚类等。
1.通过MTCNN人脸检测模型,从照片中提取人脸图像。
2.把人脸图像输入到FaceNet,计算Embedding的特征向量。
3.比较特征向量间的欧式距离,判断是否为同一人,例如当特征距离小于1的时候认为是同一个人,特征距离大于1的时候认为是不同人。
网络结构1
网络结构2