【16小时登顶黑客马拉松】加州理工大二学生开发“狗脸计算器”


【新智元导读】美国西部最大黑客马拉松LA Hacks 2018上周落下帷幕,36小时的比赛时间里,加州理工学院大二学生、美籍华人Eric Zhao仅用16小时,完成了一个“狗脸计算器”并获得优胜。借用词嵌入的思想提出了图像嵌入,这款计算器不仅能计算宠物狗面部相似度,还能计算两只不同的狗“加起来”是什么狗。

狗是人类的好朋友,狗伴随了人类文明演化的历程。虽然关于人类是什么时候把狼驯化成了狗,科学家至今没有达成统一的意见。但毫无疑问,狗的物种多样,是人类驯化史上的一个奇观。

有大的狗,有小的狗。

有高的狗,有矮的狗。

有萌的狗,有萌的狗,有萌的狗。

除了品种多样,不同品种的狗交配产下的后代,造成外观五花八门。

如今,狗已经成了我们生活中再熟悉不过的一部分。

你有没有想过,两只狗之间的相似度是多少?有没有办法快速区分这只汪和那只汪呢?

比如快速区分上面这几只

现在,我们有了一个好方法。

还能在手机上运行。

在前不久落下帷幕的LAHacks 2018上,加州理工学院大二学生、美籍华人Eric Zhao,提交了一个“狗脸计算器”,不仅能计算两只宠物狗的面部相似度,还能进行“狗狗加减”——输入两只狗的图片,看看它们加起来会得出一只怎样的狗

这个创意不仅有趣,而且Eric在仅仅16个小时的时间里,就完成了从项目提出到最终demo的全过程。

仅16小时完成黑客马拉松并获优胜,百度开源机器学习框架PaddlePaddle是秘密武器

LA Hacks(洛杉矶黑客马拉松),是美国西部地区最大的Hacks活动。

黑客马拉松(hackathon)是开发者的狂欢。在一场黑客马拉松里,一众开发者聚在一起,在为期几天到一周的时间里,从零开始编写一款应用程序。

2018年的LA Hack在UCLA(加州大学洛杉矶分校)举行,吸引了上千名来自当地名校的顶尖黑客,比赛时间是连续36小时。

今年的优胜者,就是上面提到的,加州理工学院大二学生、美籍华人Eric Zhao提出的“狗脸计算器”。36个小时的比赛,Eric仅用16小时便成功登顶。

如何如此快速做到这一点?

Erci将他成功的一大原因,归功于使用的平台——来自中国的分布式机器学习框架、由百度在2016年8月底开源的PaddlePaddle。“我使用Nvidia-Docker和PaddlePaddle自动部署和训练模型。这让我可以专注于编码而不是设置服务器。”Eric在接受新智元采访时表示:“PaddlePaddle直观的Python framework让我能够在几分钟内实现新的神经网络设计。”

Eric Zhao 同学

Eric告诉新智元,据他所知,在美国最常用或者说最受欢迎的框架是Torch,Tensorflow和Theano(虽然Theano已经停止更新),相比这些竞争对手,Eric认为PaddlePaddle的优势在于易学、易上手。

“我在其他机器学习框架中使用的几乎所有内容,都以某种形式在PaddlePaddle上提供。从速度上说,PaddlePaddle很快,虽然不是我用过最快的。

“从功能上说,PaddlePaddle挺标准,但我个人认为其框架设计比我用过的大多数框架都更直观。”不大懂中文的Eric不得不将大部分PaddlePaddle的中文文档翻译成英文,但他仍然能够很快地学习,“我认为这证明了PaddlePaddle设计的质量。”Eric说。

“PaddlePaddle易学易上手,虽然结构简单,但保留的功能是核心技术,极大地提高了使用者的效率。我在使用PaddlePaddle的过程中发现,它是在云上搭建GPU集群最方便的方法,能在较短的时间内对复杂模型进行逐层调优可视化,使我的作品更具竞争力。”

视频内容

Eric认为百度开源机器学习框架PaddlePaddle的设计,比他用过的大多数框架都更直观

狗脸计算器:吉娃娃 + 马尔济斯 = ?

Eric的“狗脸计算器”,基于词嵌入(word embeddings)的方法,通过为犬类图像嵌入允许相似度识别和其他语义操作的模型,成功实现了“计算宠物狗面部相似度”的想法。

宠物狗图像嵌入

在Eric的模型中,他在SqueezeNet上堆叠了一个Siamese Network(孪生网络)来生成宠物狗图像嵌入。这些嵌入表示两张狗图片的相似程度。你还可以添加和减去这些嵌入来查找与其相似或不相似的狗。

其中,SqueezeNet[1]模型由伯克利和斯坦福的研究人员提出,其设计目标不是为了得到最佳的CNN识别精度,而是希望在满足基本识别精度的前提下,尽可能简化网络复杂度。孪生网络[2]架构则能够判断两张图片属于同一个类别的概率。不仅如此,孪生网络还能实现少样本学习——具体可以看新智元之前的文章:深度神经网络 One-shot Learning:孪生网络少样本精准分类——这在一定程度上解决了图像识别/分类任务中,需要大量训练图像的问题。

Eric使用斯坦福的一个宠物狗图像数据集训练SqueezeNet,然后在这个预训练模型的基础上,冻结前几层,并将最后几层替换为一个Siamese Network。

Eric Zhao演示狗脸计算器网络架构:SqueezeNet+Siamese网络

“因为我使用了一个非常紧凑的SqueezeNet模型,所以我的神经网络很小,可以在手机上运行。此外,我的Siamese结构使图像嵌入具有良好的几何特性,可以添加/减少宠物狗图像。”Eric介绍说。

最终得到的“狗脸计算器”,能用来计算两只狗的相似度,也能计算两只狗加起来能得到什么种类的狗,或者更准确地说,与现有哪个品种的狗最相似。

例如:

“吉娃娃1”与“吉娃娃2”距离为0.724,而“马尔济斯1”与“吉娃娃2”距离为0.898,后者比前者距离大,因为显然吉娃娃之间相似度更高。

第一种狗与第二种狗加起来,会得到什么狗呢?答案是等号右边的狗,相似度为96%。这很好理解,第三种狗综合了前面两只各自的特征。

你还能使用Eric的狗脸计算器实现别的有趣的玩法,他将完整的项目包括代码,都公布在了Github。

Eric狗脸计算器完整项目:

github.com/ericzhao28/puppy_image_embeddings

参考资料

[1] https://arxiv.org/pdf/1602.07360.pdf

[2] http://www.cs.cmu.edu/~rsalakhu/papers/oneshot1.pdf


本文分享自微信公众号 - 新智元(AI_era)

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

原始发表时间:2018-04-11

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法与理论

Dlib库landmark算法解析

      landmark是一种人脸部特征点提取的技术,Dlib库中为人脸68点标记,在《调用Dlib库进行人脸关键点标记》一文中有效果和标定点序号的示意图。...

62050
来自专栏机器学习算法与理论

基于landmark的疲劳检测

        经查阅相关文献,疲劳在人体面部表情中表现出大致三个类型:打哈欠(嘴巴张大且相对较长时间保持这一状态)、眨眼(或眼睛微闭,此时眨眼次数增多,且眨眼...

51050
来自专栏机器学习算法与理论

基于TP-GAN的侧脸人像恢复

中科院自动化所(CASIA),中科院大学和南昌大学的一项合作研究,提出了双路径 GAN(TP-GAN),通过单一侧面照片合成正面人脸图像,取得了当前较好的结果。...

42780
来自专栏机器学习算法与理论

使用开源人脸特征提取器进行脸部颜值评分

本文仅为模型应用实战,而非颜值研究,所得结果仅供娱乐,仅供参考。 方法也仅供参考。 一般而言,数据量越大,结果越接近正常人审美。由于本次数据量较小,故仅为实验。...

90490
来自专栏机器学习算法与理论

【Face recognition】人脸识别实战

图片发自简书App 深度神经网络一般使用CNN,而CNN的改进又有Resnet残差网络,引入shortcut connection,以避免梯度弥散和爆炸,当前层...

39370
来自专栏机器学习算法与理论

调用Dlib库进行人脸关键点标记

       昨天调试了人脸识别(classifier_webcam)这个程序,效果不错,响应速度也挺快。按照http://blog.csdn.net/u011...

53590
来自专栏机器学习算法与理论

基于LDA KNN的人脸识别详解

人脸识别(LDA+KNN方法): dataTrain=creatData(TrainDatabasePath); dataTest=creatData(Tes...

95040
来自专栏机器学习算法与理论

与人脸有关的模型总结

ASM(Active Shape Model)早期的基于统计学习的人脸配准算法 AAM (active appearance model)是ASM的改进算法 C...

30680
来自专栏机器学习算法与理论

基于Triplet loss函数训练人脸识别深度网络(Open Face)

Git:  http://cmusatyalab.github.io/openface/ FaceNet’s innovation comes from fo...

66760
来自专栏机器学习算法与理论

Openface人脸识别的原理与过程

Openface人脸识别的原理与过程: https://zhuanlan.zhihu.com/p/24567586 原理可参考如下论文: 《OpenFace:...

1K100

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励