专栏名称: MacTalk
MacTalk 开通于2012年末,内容起于 Mac 而不止 Mac,内容覆盖了技术、创业、产品和人文思考。文风有趣,又有一点力量。相关图书《MacTalk·人生元编程》《MacTalk·跨越边界》
目录
相关文章推荐
正观新闻  ·  破145亿!《哪吒2》冲刺全球影史票房第六 ·  12 小时前  
正观新闻  ·  破145亿!《哪吒2》冲刺全球影史票房第六 ·  12 小时前  
极目新闻  ·  赵丽颖官宣! ·  18 小时前  
极目新闻  ·  赵丽颖官宣! ·  18 小时前  
网信内蒙古  ·  这一芯片已研发,世界首款! ·  3 天前  
网信内蒙古  ·  这一芯片已研发,世界首款! ·  3 天前  
51好读  ›  专栏  ›  MacTalk

你也可以像 Prisma 一样渲染图像

MacTalk  · 公众号  · 科技自媒体  · 2016-11-13 19:54

正文

这篇文章首发在「卖桃者说」上,修订后。卖桃者说是我提供的个人付费邮件订阅服务,所以不要怀疑这篇文章的原创性。

卖桃者说 11 月开放订阅 ,具体内容请参考今天的附文,据说快涨价了。

最近 Prisma 吸引了很多人的注意力,这个 App 的功能就是用户选择一种油画风格(现在增加了一些其他画风),上传一张自己拍摄的照片,然后你会得到一张类似油画风格的照片。软件做起来挺复杂,原理就容易一些。Prisma 利用了深度学习和神经网络技术,计算机通过对海量图片的学习,把你提供的图片渲染成你选择的油画风格。早期 Prisma 的风格渲染需要到服务器端实现,目前基于神经网络的预处理技术和算法的优化,一些简单的图像已经可以在本地进行了,渲染时间大概是几秒钟(复杂的画风依然需要服务器端支持)。

为什么要对海量图片进行学习?你把一张精心设计过的自拍交给一个只会用美图秀秀的人,说:来,给哥来一副梵高风格的自画像,这时候对方的内心肯定是崩溃的。你得交给一个画家,人家作画千张,阅尽天下山水和世间名画,自然可以帮你画出类似风格的画像。计算机、深度学习和神经网络做的就是画家这个工作,当然了,计算机目前的自我创作能力比画家差了何止几百个街区,但照猫画虎,勉强可行。

深度学习(deep learning)是机器学习的一个分支。从理论上来说,学习模型的参数越多,容量越大,意味着它能够完成的学习任务越复杂。但是一般情况下,复杂模型的训练效率低,容易陷入过拟合(overfitting),因此早期人们很少采用。随着云计算和大数据技术的出现,机器的计算能力有了大幅度的提升,可以有效提升训练效率,训练数据的大幅度增加可以降低拟合风险,所以深度学习开始得到计算机科技人员的青睐。而神经网络是典型的深度学习模型。

神经网络方面的研究很早就出现了,到今天形成了一个非常大的、多学科交叉的领域。简单的定义一下,神经网络是有具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物升级系统对真实世界物体所做出的交互反应。正是这种特性让神经网络技术可以通过学习和训练模拟绘制名画风格的照片。

深度学习和神经网络技术繁复庞杂,相关的资料和图书汗牛充栋,还需要学习人员具备很多数学和计算机知识,比如统计学和线性代数,比如算法和编程语言,如果你现在抱着一本机器学习仔细研读,等开年立春了,差不多能入门,离图片的渲染还有两万里的路要走。那怎么办?

事实上前人已经在这个领域发表了很多论文,做了不少工作,甚至,他们把这些成果和技术开放出来,供工程师们使用、改进和提升。比如 chainer-fast-neuralstyle:

[ https://github.com/yusuketomoto/chainer-fast-neuralstyle ]

这个项目是基于「Chainer」实现的快速神经网络渲染功能。

Chainer 是一套基于深度学习的柔性神经网络计算框架,用 Python 写的。

「Chainer fast neuralstyle」提供了一种非常巧妙的计算方式,可以快速得到渲染结果。首先建立一个巨大的图片库,然后把不同风格的画扔进去学习,经过几十个小时的运算,最后形成一个模型。用户在使用的时候,选择了某个画风,其实是选择了那个对应的模型,根据训练好的模型,计算机就可以对用户的图片进行快速渲染了。

渲染示例,照猫画虎:


相关参数:

输入图片的大小:1024x768(推荐,图片特别大时,会导致程序占用过多内存,延长处理时间,建议把图片的面积预先缩小到1024*768)

process time(CPU): 17.78sec (Core i7-5930K)(仅基于 CPU 计算)
process time(GPU): 0.994sec (GPU TitanX)(基于 CPU 和 GPU 计算)

数据显示,使用 GPU 资源计算,会大大提升计算速度。由于目前顶级的移动手机,比如 iPhone 7P,Smartisan M1L 的 CPU 和 GPU 的配置已经非常高了,所以把这样的计算挪到本地进行也是可能的。当然,如果你想做成一个成形的软件产品,要做的设计和技术工作还有很多,这只是万里长征的第一步。







请到「今天看啥」查看全文