你好,游客 登录
背景:
阅读新闻

深度学习“摘眼镜”,用集成数据训练神经网络识别抽象物体

[日期:2016-11-28] 来源:新智元  作者: [字体: ]

【新智元导读】Saleforce Einstein 的机器学习工程师 Melissa Runfeldt 开发了一款可以摘除眼镜的深度学习应用方法——iSee,效果非常自然。深度学习的应用非常广泛,这个有趣的应用证明集成数据可以用于训练神经网络,识别并去除图像中的抽象物体。

2016 夏季硅谷数据科学大会上,就职于 Saleforce Einstein 的机器学习工程师 Melissa Runfeldt 展出了自己的研究成果,她开发了一款可以摘除眼镜的深度学习应用方法——iSee。

戴眼镜的朋友们应该都不陌生,到眼镜店挑眼镜要花多少时间。10分钟甚至30分钟,都很正常,不着急的话,甚至挑上一个小时也是有可能的。过程无非是,戴上一个之后,侧头、微笑、左看看右看看,再拿下一副试试。挑上一副好眼镜非常重要,有科学研究表明,带什么样的眼镜会影响别人对自己的看法,包括一个人的学识、事业、魅力。

2016年是创新的一年,急需一种技术去解决挑选眼镜这样的问题。DITTO开发的虚拟镜像(virtual mirror),让用户在家里就可以完成挑选眼镜的繁琐过程,将人脸对准方框,左看右看,选择出最适合自己风格和性格的眼镜。当然,这个技术还有一个小问题,使用产品时需要将眼镜取下,而对于近视的人来说,取下眼镜之后可能根本看不清这个方框。

如果有一种软件可以帮我们自动试眼镜,那该多好!可以想象,到一个眼镜店里用虚拟镜像实时换试眼镜是多么棒的一种体验。

技术背景

其实目前市场上实现去除人脸图像眼镜并不是一个新鲜的话题。大量科学文献记载了各种图像处理算法的研究,这些研究的目的通常是改进人脸识别技术。这些技术一般都采用严格的数学方法,如对照、切边、叠合等(contrast, edges, and congruency)进行图像处理,简单地说,识别并分散眼镜图像的像素,再对模糊了的部分进行光滑处理,修复人脸图像。这种算法虽然还不错,但在眼镜识别和人脸修复的方面还有待改善。还需要增加适应不同肤色的应用,提高阴影修复、放大修复、和镜框镜片反光修复功能。

最近,算法、开源代码和开源工具、GPU计算方面的突破发展,给深度学习在更多领域的应用打开了大门。深度学习的强大之处在于,不需要基于你的任务的重要特性对算法进行设计和优化,只需提供样本,神经网络就能识别相关特征并加权。也就是说,不需要设计一个算法来识别眼镜,再设计一个来将眼镜摘除,还要设计一个来进行面部修复。只需简单地训练一个神经网络,让它来完成上述所有过程。

iSee——镜中镜 ( the mirror within the mirror)

深度学习最重要的就是需要大量的准确数据,以及可以处理这些数据的硬件设备。我们使用Nvidia Tesla K40显卡的计算机。在数据方面,DITTO 提供了一个非常独特的数据集:上千张戴眼镜的人的照片(需要指出的是,这些照片都是 DITTO 雇员的,而非他们的用户)。通过接入 DITTO 的 API,以及他们 20000 多用户的 ID,我使用它们的技术将眼镜投影到每个人的脸上,建成了一个非常大的标记数据集。接下来只需训练一个神经网络来摘除这些眼镜。

虽然我知道卷积神经网络是识别诸如眼镜之类的抽象物体的最佳选择,而且卷积神经网络对空间变化较为鲁棒。但我不清楚它对摘除眼镜,尤其是修复面容的效果。我的灵感来源于使用卷积神经网络作为自动编码器的概念。

自动编码器是训练来重构输入的网络,在我们的情况下即是重构图像,网络将输入的相关特征压缩到较低维的空间(下图标示的“z”)。用于反向传播的代价函数(cost function)是输入图像和输出的重建图像之间的均方误差(MSE)。该方法的图示如下:

提供足够的训练数据,自动编码器最终能学习重建原始图像。我需要这个网络完成的任务是,将戴着眼镜的图像作为输入,然后输出摘除了眼镜的图像。我使用了 TensorFlow 里一个卷积神经网络自动编码器的代码,作者是 Parag K. Mital,并且重新定义了期望输出(摘除眼镜的图像)和重构图像之间的差异的代价函数,但仍然将戴着眼镜的图像作为输入,训练该网络以执行这些计算。这样做意味着这个网络已经不再是自动编码器,而只是一个具有对称拓扑结构和线性层的卷积神经网络。

利用这种方法,我们做出了“iSee”应用,效果很好,当然,这是在对超参数进行仔细的调整后的效果。下图展示了该模型对三位 DITTO 员工的照片进行摘除眼镜测试的效果,这些照片没有包含在训练集中。可以看到,网络在摘除他们的眼镜后,能够修复他们脸上原本被眼镜遮盖的区域。网络也能去除在图像上的大小、位置等不同的眼镜。与前人研究的方法相比,iSee 的方法可以用于不同脸部结构、不同肤色的人脸,只要训练数据中提供有相似的面孔即可。

iSee 摘除眼镜测试,超参数优化后的效果

预处理和超参数优化

超参数优化前的效果

最初处理后的图像并不是很清晰,这是由于参数和权重的限制造成的,需要对图像进行预处理和超参数优化,对卷积层和滤波器的要求也相应提高。超参数优化是一个相当耗时的过程,将卷积滤波器从2*2提高到3*3就可以极大地提高眼镜摘除效果。这里 Runfeldt 采用的方法是,降低取样、减少批处理量、手动调节参数。采用仅识别眼镜部分图像的方法进行图像预处理,这就避免了对整个图像和背景处理的繁琐程序。

结论

iSee 在会上展出时,在场的专家都非常震惊,一个业界新手竟能将深度学习应用到如此境地。我们知道深度学习其实是一门应用科学,iSee 的发明就证明了这一点,也是受了相应的启发:集成数据可以用于训练神经网络,识别并去除图像中的抽象物体。深度学习的应用还很广泛,我们期待 iSee 可以应用到更多的应用中。科技的大门是敞开的,而工具就在那里,等着未来的数据科学家、工程师们去创造更多的奇迹。

编译来源:https://blog.insightdatascience.com/isee-removing-eyeglasses-from-faces-using-deep-learning-d4e7d935376f#.yj2qlzo5k

收藏 推荐 打印 | 录入:admin | 阅读:
相关新闻      
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款