深度|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 条评论
登录 后参与评论

相关文章

来自专栏大数据挖掘DT机器学习

想做数据分析师,该如何学习?

? 作者:Chiffon 来源:七风阁 http://chiffon.gitcafe.io/2015/01/10/MLE.html 经常有人问我怎么才能成一...

3307
来自专栏AI科技大本营的专栏

AI 技术讲座精选: 数学不好,也可以学习人工智能(二)

【AI100 导读】本系列文章将陆续向大家推荐一些数学用书,今天这篇文章有针对性的介绍了数学不好的人,究竟该怎样学习人工智能。 ? 如果你已经看过本系列的第一篇...

3416
来自专栏绿巨人专栏

读书笔记: 博弈论导论 - 03 - 完整信息的静态博弈 预备知识

3229
来自专栏大数据文摘

AI应从神经科学中借鉴想法和思路

2526
来自专栏CreateAMind

动作CycleGAN好奇心探索 代码开源

771
来自专栏知晓程序

沪江英语做了款小程序,让你一个人也能练口语 | 晓组织 #8

每周,我们都会邀请优秀的小程序开发者,从产品/开发/运营等角度,分享他的小程序实战经验。如果你想成为「晓组织」的一员,请发送邮件至 bigbang@ifanr....

962
来自专栏目标检测和深度学习

挑战赛 | ECCV 2018 Person in Contex (PIC) 图像关系分割挑战赛

992
来自专栏司想君

项目管理碎碎念系列之一:干系人管理

初次见到“项目干系人”这个词,我是有点蒙圈的,因为这不太符合中文平时的表达。 其实所谓“项目干系人”,英文称作“Project Stakeholder”,翻译成...

33910
来自专栏ATYUN订阅号

AI算法可以通过脑电图读数检测睡眠障碍模式

脑电图(EEG)使用放置在头皮上的电极测量大脑中的电活动。睡眠专家可利用它来诊断和评估神经系统疾病,这可能是一项繁琐的工作,需要在数小时记录的大脑活动中注释峰值...

793
来自专栏互联网数据官iCDO

用数据讲故事的诀窍 ——创建有说服力图表的5个步骤

用数据说话是当今社会的一个特别流行的词,它反映了当今人类面对这个信息爆炸时代所需要做出的必然的改变。 有预测截至2020年,整个数字世界的数据量将达到44ZB,...

3739

扫码关注云+社区