OpenCV深度学习人脸识别示例——看大佬如何秀恩爱
PyImageSearch博主Adrian Rosebrock昨日发表博文,展示如何使用OpenCV的深度学习工具在小库上进行人脸识别。昨天是我们中国人的传统佳节——中秋节,
Adrian推送博文时也喜不胜收,不过原因是他结婚啦!而且这篇博文使用的人脸数据正是来自他与新娘Trisha。
赶紧看看他们的秀恩爱照~
恭喜Adrian!原来秋天也是收获爱情的季节~
言归正传,在这篇博文中,Adrian展示了如何使用OpenCV现有深度学习工具进行人脸识别,主要流程包括:
1.人脸检测,OpenCV使用Caffe训练好的SSD检测模型检测人脸;
2.提取人脸嵌入特征,OpenCV使用OpenFace工程中的FaceNet模型提取深度学习人脸嵌入特征;
3.训练人脸识别模型,使用scikit-learn中的SVM算法在人脸嵌入特征上训练分类器;
4.使用步骤3中训练的模型在图像和视频中识别人脸。
作者收集的数据库就是他们夫妻两个人的照片,并增加了“unknown”类来自电影侏罗纪公园的部分剧照。每类只有6幅图片。
看看效果
虽然库很小,但还是能将这甜蜜小两口认出来的。
不过也出现了一些看起来不太理想的情况。毕竟数据库太小了。
作者又探讨了下如何提高人脸识别系统的识别率:
1.收集更多的数据,作者推荐最少每人10-20张人脸图像;
2.增加人脸对齐预处理,相当于包含旋转、尺度、平移的人脸几何归一化;
3.调整超参数;
4.使用dlib的深度学习嵌入特征提取,嗯,dlib开源的人脸识别模型比较强大。
参见:
http://blog.dlib.net/2017/02/high-quality-face-recognition-with-deep.html
为什么要在使用SVM分类器而不是end-to-end训练?
因为数据库太小没法训练,通常的做法就是使用在大库上训练的人脸模型提取特征,使用传统的分类算法识别人脸。
Adrian在博文中说“As I mentioned in the introduction to today’s face recognition post, I was just married over the weekend, so this post is a “gift” to my new wife .“
不知道作为程序员的妻子Trisha,收到这样的礼物是不是很惊喜^_^
原博文地址:
https://www.pyimagesearch.com/2018/09/24/opencv-face-recognition/