深度|Facebook首创全新深度学习移动平台,“视频版”的Prisma是如何实现的?

AI科技评论按:“风格特效转换” 在Prisma出现之后就已被熟知,这是利用神经表征分离再组合图片的内容和风格,最后实现可用来描绘艺术图像。但是,就像我们所体会到的,Prisma依旧存在一些问题,比如使用人数多导致服务器过载、智能软件处理的计算力不足等,AI科技评论编辑曾在发布《深度 | AI修图艺术:Prisma背后的奇妙算法》一文时就曾请教过一些深度学习工程师,为什么没有应用在视频上?得到的答案是,除了Prisma出现的问题,要保持时间上的帧率一致也是非常麻烦的,对技术的要求也就更高。

现在,为了让你在用手机拍摄视频时,有种手持梵高画笔的奇妙感受,Facebook首创了一个全新的深度学习移动平台,利用Caffe2go运行环境和风格转换算法模型,在手机上完成对像素特征的实时提取、分析和处理。本文来自图普科技工程师编译自 Facebook网站博文“Delivering real-time AI in the palm of your hand”,深入解读“视频版”Prisma是如何实现的?

如今,视频通话逐渐成为最受欢迎的沟通方式,在此之际,我们希望给所有人提供一种最先进的、最具创造性的自我表达工具。我们最近开展了对Facebook中一个新的创意特效相机的测试,这个创意特效相机能帮助人们把普普通通的视频即时转换成一份精美的视频艺术作品。

这种技术叫做“风格特效转换”。它会从一份图像中提取出艺术风格和特征,比如梵高画作的艺术风格,然后把它应用到另一份图像或者视频中。这项技术通常来说比较难以实现,以往需要将数据传送至数据中心,以在更高处理能力的服务器上进行处理。但是现在不同了!我们首创了一个全新的深度学习移动平台,它能够在手机上完成对像素特征的实时提取、分析和处理,最先进的技术现在在你手上就能完成。

这是一个成熟的深度学习系统,名字叫做“Caffe2Go”,它的框架现在已经被植入了我们的移动应用程序中。通过把处理图像和视频的AI模型压缩100倍,这个系统能够在苹果和安卓系统中高效地运行不同种类的神经网络。从目前的结果来看,我们已有能力在手机上完成AI进程了,其用时甚至低于二十分之一秒(实际上是50毫秒)——一次眨眼的耗时为每三分之一秒,即300毫秒。

上文提到的风格特效转换工具实际上是两种技术的结合:Caffe2go运行环境和风格转换算法模型。因为我们的AI团队是处理算法和大型系统的,所以他们非常有能力开发对两种技术都适用的新模型,让风格转换功能实现更高速和高质量的转换。这两种技术的结合能够让你在用手机拍摄视频时,有种手持梵高画笔的奇妙感受。

三个月以前,我们就从其他人从未做过的事情入手,开始了这项工作:把这个人工智能风格转换功能视为一个具有创造性的工具进行传递,让它在人们的所有设备中实时运行。一群专研于产品、技术和科研的优秀人才现已加入了这个项目。Facebook的AI研究小组成员之一Justin Johnson是一篇基础性研究论文的作者,论文中描述了这项技术,发展了这个领域先前的一些研究成果。我们的“应用机器学习”小组一直致力于打造一个能够在移动设备上运行的AI引擎。这个“创意相机”团队非常了解用户的需求,在所有人的合作之下,这个团队开发了一个能够实现在移动设备上实时运行高度优化后的神经网络的最佳解决方案。在接下来的内容中,我们将会解释我们是如何思考和开发这项实用技术的。就从Caffe2go开始吧。

| Caffe2go

  • 轻巧又快捷

人工智能已经对计算机科学产生了相当大的影响,但是它仍然受到大数据处理的局限,因为这个大数据处理中心有时距离AI设备使用者十分遥远。因此,所有实时处理的AI模型仍然要受到延时的影响,因为其需要先连通至数据处理中心,之后才能在GPU上运行。我们认为,让人们围着超级计算机跑有点不切实际,所以我们想找到一种方法让AI 能在当今最普遍存在的一种设备——智能手机——的CPU上运行。

有了Caffe2go后,不需连接至远程服务器,智能手机就能实现识别、表达以及理解。尽管如此,智能手机还是有所局限。尽管在最近几年智能手机在计算能力上有了显著的提高,已经能够在一秒钟内执行数十亿的算术计算;但是它仍然存在各种各样的资源局限,比如电量、内存以及专为智能软件设计的计算能力。因此,智能手机对机器学习系统来说既是机遇,又是挑战

为了应对这个挑战,我们的解决方法就是设计出一个特别轻巧的、模块化的框架。为此,我们运用了Unix哲学,在开源的Caffe2项目之上进行建构。它保证了用于显示和连接各种组件的核心框架是足够轻巧的,而且能够实现多个模块的连接,以及包括对移动手机的优化设计。我们保存了一个精巧的算法框架,这个框架能让工程师把抽象计算描述为一个有向无环图(DAG),但是这需要保证输入和输出图中节点是没有约束的才能执行。这就使得我们的工程开发团队能在不同的平台执行和优化模块,同时轻松地实现模块的连接。当这个图像实际运行起来,它会以各种各样的硬件特性对自身进行实例化,已达到最高速的运行效果。

因为速度是计算密集型移动应用程序的核心所在,尤其是图像和视频,轻便的框架设计让我们能够对自定义操作符进行平台的优化。其中一个著名的例子就是一个叫做NNPack的电子图书馆,这是Caffe2在我们手机的运行时内整合而来的。通过利用一个移动CPU功能——NEON,我们能够极大地提高手机的计算速度。在IOS设备上,我们也已经开始着手整理合成计算加速功能,例如“元语言”。这些都是通过一个模块化的设计而来的,无需改变整体模型定义。因此,算法和运行时能够安全地互相支持,不用再担心任何潜在的不兼容风险。

  • “开发者友善”的设计

Caffe2 同时也是我们首个工业化的深度学习平台,它能使用完全相同的代码在CPU、GPU、iOS和安卓四个服务器平台上全速运行。由于其模块化的设计,这个框架在允许各平台使用相同语言的同时进行个性化需求优化。事实上,这是开发人员隐藏起来的执行细节,比如说,这个框架可以选择移动设备(IOS和安卓系统)的NNPacak或者GPU服务器的CUDNN方案。因此,算法开发人员可以专注于研究算法,而不需要分散精力去研究卷积运行(一种线性运算)。

快速的部署设计框架对开发者非常有益。对开发者而言,手机运行时的调试可以说是个挑战,因为手机的工具链组不够台式电脑和服务器的先进。我们通过从硬件中提取出神经网络数学的方法来处理这个问题,用相同的数值输出就能在移动手机或者服务器上执行Caffe2go的一个序列化网络了。所以,我们可以把一大部分工作转移至服务器环境(模型训练、性能检测、用户体验研究),当一切都正常运作之后,就能拥有一个一键部署功能的移动环境了。

  • 风格转换模型的训练测试

“风格转换”这个想法实际上早就存在了,它最初是由一个研究团队在2015年8月发表的一篇题为《艺术风格的神经算法》的开创性论文中。但是,当时这项技术发展缓慢,且需要强大的服务器支撑。在接下来的几个月,这个研究团队提升和完善了这项技术,将运行速度提高了好几个等级,但是它仍然很大程度上依赖服务器上的计算能力。

现在我们已经可以在移动端快速运行人工智能,但为了确保做到高质量、高分辨率的实时图像风格转换体验,还是需要继续进行模型的优化和完善。

  • 高效模型尺寸的优化

传统的风格转换模型(包括前馈变量)不仅参数数值很大,而且转换速度较慢,我们的风格转换应用程序的设计目标就是打造一个全新的、更轻巧、更高效的模型,这个模型可以在iPhone6s上输出每秒20帧以上且不掉帧的高质量视频。

我们采取了三种主要手段来进行模型压缩。

我们优化了卷积层(加工操作中最耗时的部分)的尺寸数值以及每一层的宽度,同时调整了运行过程中的空间分辨率。卷基层的数值和其宽度可以作为单独的杠杆来调整处理时间,通过多角度调整正在处理的图像,或是调整一个单独处理行为的次数。针对空间分辨率,我们可以调整正处于中间处理层的对象的实际大小。通过使用前期联营(缩小正在处理的图像)和后期反褶积(放大处理后的图像),系统不再需要处理过多的信息,处理速度也会加快。并且通过使用这种技术,我们可以在大大降低网络广度和深度的同时,保持相当不错的图像质量。

  • 提高图像质量

图像质量是很主观的,很难进行准确的测量,尤其是像风格转换这类。因此,我们建立了包括A/B测试的可视化工具,用来训练并确保不同的模型能够得到最高质量的图像结果。通过由FBLearner Flow技术支持的大规模GPU集群,我们能够快速地对大范围的超参数(如模型建筑、内容风格大小和降低取样)进行扫描,来找到一个既能达到目标性能,又能保持和提高图像质量的“训练有素”的前馈风格,从而完成以上的检测。

当然还有很多能提高图像质量的方法,比如说,应用单独实例标准化而不是平常使用的成批标准化对很多风格特效都有帮助,避免在卷基层补零,或者将不同的预加工和后加工滤镜应用在风格或图像上都可以减少图像伪影。但是我们在测试中发现,这些方法对部分风格有效,并不是对任何风格都行得通的。

随着风格转化技术的速度和图像质量上的不断优化和完善,相信将一个在Caffe2框架之上运行的实时图像处理系统应用于移动设备中指日可待。

| 接下来还会有什么呢?

Caffe2go与类似Torch的工具链研究是Facebook的机器学习产品的核心,由于它的尺寸、速度和灵活性,caffe2go从Facebook的工具堆中脱颖而出

我们非常乐于在业界社区中分享我们的软件和设计,这样我们可以学到更好地使用多种硬件平台和算法设计的方法,这些对跨平台机器学习系统来说多非常重要。在接下来的几个月里,我们将继续关注这个人工智能框架的开源部分。

随着我们一步步的向前发展,你可以想象下实时运行的人工智能设备是如何为无障碍环境、教育及其他领域的人塑造一个更加开放和联系紧密的世界。我们手中的智能设备将进一步改变我们对人工智能的认知。通过像Caffe2go这么快捷、轻巧的机器学习系统,我们会一直致力于为您提供更多更棒的人工智能和增强现实的体验,比如让你在拍摄视频的时候有像手持梵高画笔一样的奇妙体验。

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-01-03

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏计算机视觉战队

2018年最全的推荐系统干货(ECCV、CVPR、AAAI、ICML)

最近总有几位关注者希望我们可以分享一些“推荐系统”类的干货,最近正好一不小心看到一篇比较好的博主写的推送,在此我通过自己理解和该博主的内容,为大家带来一次推荐系...

3405
来自专栏量子位

两个月入门深度学习,全靠动手实践!一位前端小哥的经验分享

王新民 编译自 Hackernoon 量子位 出品 | 公众号 QbitAI ? 在当前社会,技术日新月异,一个全栈工程师不及时学习新知识,掌握AI技能,再过两...

3767
来自专栏数据派THU

独家 | 一文读懂推荐系统知识体系-下(评估、实战、学习资料)

? 本文主要阐述: 推荐系统的评估(Evaluation) 推荐系统的冷启动问题(Cold Start) 推荐系统实战(Actual Combat) 推荐系统...

1.9K7
来自专栏新智元

机器学习经典 Python Machine Learning 作者:新书计划曝光,分享实战经验

【新智元导读】机器学习入门经典读物 Python Machine Learning 的作者 Sebastian Raschka昨天在Quaro回答提问,分享技术...

3978
来自专栏AI科技评论

深度 | 清华大学博士生涂锋斌:设计神经网络硬件架构时,我们在思考些什么?(下)

基于神经网络的人工智能近年取得了突破性进展,正在深刻改变人类的生产和生活方式,是世界各国争相发展的战略制高点。 神经网络作为实现人工智能任务的有效算法之一,已经...

42710
来自专栏新智元

【盘点】掌握机器学习的5条必由之路(附学习资料推荐)

【新智元导读】作者在本文提出一种5步入门并应用机器学习的方法。它不是传统的方法。传统的机器学习方法提倡从下往上学,先从理论和数学开始,然后是算法实现,最后让你去...

42010
来自专栏新智元

【热门】GitHub 深度学习Top18开源项目,全球进入协同编程时代

【新智元导读】鸡年伊始,万象更新。 随着深度学习的火热,GitHub上涌现了大量的开源项目,除了大家熟知的 TensorFlow 以外,还有哪些项目是最受欢迎的...

37212
来自专栏QQ大数据团队的专栏

手Q游戏中心的个性化推荐实战

自手Q游戏中心V6.0改版以来,产品形态发生了较大的转变,不再是纯粹通过app列表做游戏分发,而是试图通过内容来带游戏分发,全新的产品形态给推荐算法带来了许多的...

7969
来自专栏大数据文摘

数据也会说谎:常见的数据造假三种形态!

19810
来自专栏大数据文摘

5类系统推荐算法,告诉你用户需要什么

3157

扫码关注云+社区