完井缓蚀剂厂家
免费服务热线

Free service

hotline

010-00000000
完井缓蚀剂厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

用数据说话把自拍照变成毕加索名画哪种算法最高效_[#第一枪]

发布时间:2021-06-07 18:56:58 阅读: 来源:完井缓蚀剂厂家

提起前段时间红遍朋友圈的 Prisma,可能许多朋友都还记忆犹新:输入一张自己的照片,再选一个 Prisma 内置的名画滤镜,几秒之后就能得到一张名画风的新照片。

绝大部分用户可能只是通过 Prisma 过了一把当画家的瘾,但对于程序猿们来说,仅仅得到一张风格迥异的新照片似乎还远远不够。

近日,有位外国开发者根据 fast.ai 平台开设的深度学习代码实践课程,亲手实现了一个照片风格转换器,并对几种常见的优化算法的性能进行了综合对比,最终以图表加博客的方式记录下来。

下面就让我们跟随作者的脚步,一起看看究竟哪种算法最高效(程序猿是怎么玩坏 Prisma 的)。原文来自 medium.com ,编译。文中相关的代码开源地址和原博客地址见文末。

什么是照片风格转换器?它是怎么工作的?

问题1:什么是风格转换器(style transfer)?

所谓照片风格转换器,就是类似 Prisma 的,转换照片风格的软件 App。他们抽取 A 照片的风格特征(一般都是一张名画),然后将这种特征应用到 B 照片的内容上,从而生成了全新的照片 C。

问题2:怎样分隔一张照片的风格和内容?

使用卷积神经网络(CNN)。由于 AlexNet 已经成功地将 CNN 应用于目标识别(即确定图像中的主体内容),并且在 2012 年主导了最流行的计算机视觉竞赛,因此 CNN 是目前用于图像目标识别的最流行和有效的方法。

简单说,CNN 是通过学习构建在先前图层上的各个过滤器层来识别对象的。例如,第一层通常用来学习识别简单的图案,例如物体的边缘和棱角。中间层可能用来识别更复杂的图案,例如人物的眼镜、汽车的轮胎等。Jason Yosinski 大神曾在下面这个视频中详细介绍了 CNN 的相关内容。

https://www.youtube.com/watch?v=AgkfIQ4IGaM

事实证明,CNN 第一层中的过滤器对应于一张照片的风格,包括画笔描边、纹理等。靠后的图层中的过滤器对应于识别图像中的主体,例如狗,建筑物或一座山等。

例如,将一幅毕加索的画作输入 CNN,并分析第一层(样式层)有多少过滤器被激活,就可以得到该画作的样式表示。同样,通过最后一层(内容层)的分析,我们也可以得到画作内容的表示。

问题3:怎样将风格和内容融合在一起?

这一步很有意思。由于两张照片的风格大不相同,因此它们的样式层中激活的过滤器也就不同,通过分析两个样式层中的过滤器,就能获得两张照片的样式之间的差别。同样,对内容层中过滤器的分析,也能得到两张照片内容的差别。

例如,如图所示,我们想把一张自拍照和毕加索的画作融合。融合后的图像首先以图示中的噪声图像为起点,然后将这张图像输入 CNN ,它会激活样式层和内容层中的一些特定的过滤器。按照上述的方法,通过对比融合照片和毕加索画作的风格层,就可以得到风格损失(style loss);通过对比融合照片和自拍照的内容层,就可以得到内容损失(content loss),将两种损失相加,就得到了总损失。

下面的任务就很清楚了:通过优化算法的介入,我们想办法将这个总损失最小化,最终就得到了一张毕加索风格的自拍照了。

问题4:有哪些常见的优化算法?

到目前为止,我遇到了两种类型的优化算法:一阶的和二阶的。

一阶方法通过梯度(gradient)将目标函数最小化(或者最大化)。应用最广泛的就是梯度下降法(Gradient Descent)及其各种变体,详情见如下

管道除铁器价格

气缸润滑油批发

照明加工价格