我想知道是否可以使用Inception或ResNet模型来识别面孔。我想知道转学和培训对于我的任务是否足够。
我只想能够识别人脸,但我也很好奇我是否可以为自己的任务重新训练/优化预先训练的模型。
或者我读错了什么;我需要获取专为面部设计的预训练模型吗?
我尝试使用Inception和VGG16玩玩,但我没有训练他们的脸部。我正在研究它,但是我想知道这是否可行或仅仅是浪费时间。如果我在FaceNet上使用转移学习,我想我会过得更好。
答案 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链接中。