使用分类器进行转移学习以进行面部识别

时间:2019-11-09 23:12:17

标签: python tensorflow keras transfer-learning facial-identification

我想知道是否可以使用Inception或ResNet模型来识别面孔。我想知道转学和培训对于我的任务是否足够。

我只想能够识别人脸,但我也很好奇我是否可以为自己的任务重新训练/优化预先训练的模型。

或者我读错了什么;我需要获取专为面部设计的预训练模型吗?

我尝试使用Inception和VGG16玩玩,但我没有训练他们的脸部。我正在研究它,但是我想知道这是否可行或仅仅是浪费时间。如果我在FaceNet上使用转移学习,我想我会过得更好。

1 个答案:

答案 0 :(得分:0)

用于面部检测的转移学习将是前进的好方法。而且,是的,使用Facenet进行转移学习是一个好主意。

此外,为了使迁移学习正常工作,也不必最初仅使用面部表情(例如使用facenet)对模型进行预训练。用imagenet预先训练的模型也很好!这是一个非常热门的话题,所以不要尝试重新发明轮子。已经有许多存储库通过使用从imagenet数据集中的传输学习以及使用resnet50取得了惊人的良好效果,完成了此操作。

这是一个此类存储库的链接:

https://github.com/loheden/face_recognition_with_siamese_network

还请注意,暹罗网络是一种在面部识别用例中特别出色的技术。暹罗的概念非常简单:拍摄两个图像并比较这两个图像的特征。如果特征相似度高于设定的阈值,则两个图像相同(两个脸部相同),否则不相同(无法识别脸部)。

这是关于siamese networks for facial recognition的研究论文。

此外,这是一个分为两部分的教程,介绍了如何使用转移学习来实现用于面部识别的暹罗网络:

http://www.loheden.com/2018/07/face-recognition-with-siamese-network.html

http://www.loheden.com/2018/07/face-recognition-with-siamese-network_29.html

以上教程的代码位于我在此答案开头分享的第一个Github链接中。