专栏首页相约机器人基于面部照片的亲属关系预测的深度神经网络

基于面部照片的亲属关系预测的深度神经网络

能否仅仅根据他们的脸部照片来预测两个人是否有血缘关系?

这是本文将尝试通过使用野外家庭:以Kaggle共享格式的亲属识别基准数据集:

https://www.kaggle.com/c/recognizing-faces-in-the-wild/data

将探索有效的深度神经网络和转移学习技术来训练一个神经网络,该神经网络将预测两个人是否与血液相关或者没有给出他们的脸部图片。

数据集:

将使用在kaggle上共享的Families in the Wild数据集。它是同类中最大规模的数据集,其中面部照片按人分组,然后人们按家庭分组。

FIW数据集中的图像组织

除了图像文件夹之外,还有一个文件,列出了一个家庭中两个人血缘相关的所有情况,而不是所有家庭成员的情况。

模型:

为了解决这个问题,将使用一个连体网络,该网络拍摄一对图像并预测1如果照片中的人是相关的,否则为0。

暹罗网络

图像编码器应用于每个输入图像并将它们中的每一个编码为固定长度矢量。两个图像矢量之间的差的平方被馈送到完全连接的层,然后该层预测亲属的二元标签。

输入/输出示例

迁移学习:

将使用两种不同的设置将解决方案基于预训练图像编码器:

在ImageNet上进行预训练:包含1400万个手动标记图像的数据集,用于分类为狗,猫,飞机,草莓......

在VGGFACE2上进行预训练:包含各种不同种族,口音,职业和年龄的330万张面部图像和9000多种身份的数据集。

https://github.com/rcmalli/keras-vggface

预训练技术很有用,因为它们允许将在源任务(这里是图像分类或回归)上学习的表示迁移到目标任务中,在这种情况下是目标任务。

这有助于减少过度拟合并实现更快的收敛速度,尤其是在源任务和目标任务稍微接近的情况下。

结果:

将使用准确度和AUC分数来评估每个模型的结果。

Resnet50 Imagenet test ROC AUC : 0.70

通过kaggle提交评估测试集

Resnet50 VGGFACE2 test ROC AUC : 0.81

通过kaggle提交评估测试集

验证准确性比较

可以看到,即使两个不同设置中的体系结构相同,结果在VGGFace2上预训练的模型上要好得多,因为它的源任务与Imagenet相比更接近亲属预测的目标任务。

结论:

展示了训练一个暹罗网络来预测两个人是否有血缘关系。通过使用迁移学习,能够在AUC ROC中获得0.81的令人鼓舞的结果,特别是考虑到亲属预测的任务对于人类而言相当困难。

有关重现结果的代码请访问:

https://github.com/CVxTz/kinship_prediction

本文分享自微信公众号 - 相约机器人(xiangyuejiqiren),作者:代码医生

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ECCV 2020 | 这个模型的脑补能力比GAN更强,ETH提出新型超分辨率模型SRFlow

    超分辨率是一个不适定问题(ill-posed problem),它允许对给定的低分辨率图像做出多种预测。这一基础事实很大程度上被很多当前最优的深度学习方法所忽略...

    代码医生工作室
  • 机器学习的十大图像分类数据集

    为了帮助构建对象识别模型,场景识别模型等,编制了最佳图像分类数据集的列表。这些数据集的范围和大小各不相同,可以适应各种用例。此外数据集已分为以下几类:医学成像,...

    代码医生工作室
  • P图美颜1秒识破,Adobe伯克利联手打造“反PS”神器

    虚假视频和图片的泛滥传播已经让整个世界越来越焦虑,连PS的老东家Adobe都坐不住了!

    代码医生工作室
  • Understanding Convolution in Deep Learning(一)

    卷积可能是目前深度学习中最重要的概念了。卷积和卷积网络是引发深度学习去完成几乎任何机器学习任务的最前沿地概念。但是什么使卷积这么强大?它是如何工作的?在这篇博客...

    哒呵呵
  • R语言系列第六期: ④R语言高级绘图(下)

    上一节我们重点介绍了plot()和matplot()两个绘图函数的几个重点参数,他们可以根据使用者的需要进行修改,绘制出自己需要的图形。当需要添加其他元素或者对...

    百味科研芝士
  • Mathematica 在高考数学与高等数学等学习中的简单应用与思考

    一年一度的高考落下了帷幕,和往年[1][2][3]一样,我们又能看到不少讨论如何“使用某某工具快速解决高考难题的”,例如[4](更加侧重对于教师的效果演示)和[...

    WolframChina
  • 手把手教你用Python给小姐姐美个颜

    彩色图像比灰度图像拥有更丰富的信息,它的每个像素通常是由红(R)、绿(G)、蓝(B)3个分量来表示的,每个分量介于0~255之间。

    华章科技
  • 「R」简单理解lapply,sapply,vapply

    在我之前转载的文章《apply,lapply,sapply用法探索》中已经对R中apply家族函数进行了比较详细地说明,这篇文章基于我在data campus中...

    王诗翔呀
  • 用深度学习解决Bongard问题

    原文链接:https://k10v.github.io/2018/02/25/Solving-Bongard-problems-with-deep-learni...

    DeepValley
  • Catalyst2层交换的3层通信

      当核心交换机配置第二IP,汇聚交换机的通过trunk连接到核心交换机,并且配置的接口IP和第二IP一个网段,当汇聚交换机没有启用3层路由功能的时候,它们之间...

    py3study

扫码关注云+社区

领取腾讯云代金券