提取面部嵌入 - 面部识别

时间:2017-07-02 11:59:57

标签: machine-learning face-recognition

我想训练神经网络从图像中提取多个(128)面部特征。

这些特征是衡量眼睛中间距离或左眼中间距离与中间点之间距离的数字。

我需要这样才能找到两个面孔之间的差异:给定一个带有用户的数据库,通过分析照片,我将能够判断它是否是Jhon的照片。

我开始使用this链接开始我的研究,该链接指出:研究人员发现,最准确的方法是让计算机找出测量值来收集自己。

好的,所以网络的输出是128个数字的数组,我会用一些公式调整权重,使输出数字尽可能准确。

我应该使用什么作为输入?我的输入节点是三张照片,例如this文章,我会根据照片之间的比较提取功能吗?< / p>

1 个答案:

答案 0 :(得分:1)

我的第一个想法是让你使用一个库Openface,它已经训练了很多面孔并且有很好的面部表示(你需要相同的128维)。

但是,你提到你想自己训练它。我建议你开始看一下Siamese Neural Networks。连体神经网络接收一对图像(真实配对 - 例如来自同一个人的图像;冒名顶替者对 - 例如来自不同人的图像)并尝试学习相似性/不相似性度量(也称为度量学习)。这对于学习面部嵌入非常有用,因为您的目标似乎与此相关。他们基本上学习了一种将输入图像映射到“有益于比较”的表示的方法。其他实现(如OpenFace)使用Triplet Embeddings进行训练,而不是一对图像,而是一对三(两个相似,一个不相似)。

以下是一些从Siamese Networks开始的参考资料:

请记住,培训这些架构非常困难,因为选择最佳配对是问题中非常重要且具有挑战性的部分。一篇论文提到了创建图像对但与面孔无关的一些挑战是one

希望有所帮助!