前言
这几天卡在模型再训练的问题上,趁跑训练的时候记录一下。来看看第二个任务,对mtcnn剪出的图片做识别。也就是认出他/她是谁。
正文内容
其实这个也简单,利用一下作者提供的facenet预训练模型,通过对欧美国家人口的学习,已经可以很好的提取人脸的某种特征,也就是前面所说的嵌入的特征向量,模型里用的是512维的。然后计算欧式距离或者使用分类器对其进行分类。
预训练模型20180402
https://download.csdn.net/download/bing1zhi2/10782048
对于简单的实现一下如何识别我自己,当然直接计算下欧式距离了。
1)找一张我的模版照片,这张照片最好清晰,光亮程度刚好,这样提取的特征就比较接近真实
2)通过上一节里面的第5步,获取嵌入的512维的向量
3)将该特征向量保存下来
4)接下来就可以做识别了,拿到任何一张照片,通过mtcnn拿到人脸部位,再通过facenet获取嵌入,最后跟预先保存的特征计算欧式距离。或者利用预先训练的分类器做分类。
5)调用摄像头捕获图像进行识别
这个其实下载下来的代码中就已经有了real_time_face_recognition.py中已经实现。最后在识别的时候它用了svm分类器,这里可以换成自己的代码。
小结
都是别人的代码,这里就没啥好贴了。任务内容在利用他人模型的基础上还是很简单的。接下来就是第三个任务,提升模型的识别率,也是目前在做的事情,比较头疼。遇到很多问题,比如gpu起不动,原模型调用不了,OOM等各种问题,等下一步完全整清楚了再接着写。