【平价数据】Creatism:Google的自动风光摄影师

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shenxiaolu1984/article/details/78933466

Fang, Hui, and M. Zhang. “Creatism: A deep-learning photographer capable of creating professional work.” (2017).

这篇论文借助有限的无标定数据,用深度网络在虚拟自然环境中完成“取景-调色-打光”的摄影过程。所涉及的理论并不复杂,但给出的过程详细,对解决实际问题很有启发
这里可以看到一些好的结果。

概述

问题

本文的起点非常简单,绝对算得上“平价数据”:

  • 15000张500px.com上的风景类专业摄影作品,不含有任何标定。用于训练。
  • AVA美感图像数据库1,包含250K图像,带有美感评分。
  • Google自己的街景数据库,集中在几大国家公园。作为测试。

希望能实现一个自动系统:从街景中生成具有专业水平的摄影作品。

一个不好使的点子

我们很自然地想到,用AVA直接训练一个“图像-评分”的回归网络:好看的照片评分高,不好看的评分低。之后在街景数据库中采样,输出评分高的结果。

还真不行。

  • 美感包含着许多方面。需要指数级别的训练样本。
  • 即使构造出这样的网络,其梯度可能也毫无意义。
  • 在样本不足的情况下,很可能学出跑偏的判别标准。e.g.饱和度越高越好!
  • 网络可能复杂得无法优化。

本文的做法

本文的思路非常朴素:让算法像人一样分步骤处理拍照问题。
这里写图片描述

  • 取景:实现一个【构图】评分网络,对各种可能取景进行采样,选择评分最高的一个截图。
  • 调色:实现一个【饱和度/HDR】评分网络,遍历饱和度/HDR操作的强度,选择评分最高的施加到输入图像上。
  • 打光:实现一个“图像-图像”的【局部提亮】网络。
  • 选片:实现一个【整体效果】评分网络,从经过处理的候选图像中,选择较好的输出。

评分包括:1分(随手乱拍),2分(老百姓拍的正常照片),3分(颇有品味票友),4分最高(专家级)。

当然,这种做法只单独考察了美感的三个方面,不过胜在可行性强。

实现

构图评分网络

从500px数据集中,随机从原图裁剪,按照如下参数产生等量的两批数据作为样本的输入:

  • 宽度为原图90%~100%,长宽比为0.5~2
  • 宽度为原图50%~90%,长宽比同上

将裁剪结果占原图比例作为样本的标定值。

使用的Inception v32作为回归网络。输出结果记为 Φcrop

需要特别说明的是,构图对摄影作品的影响是决定性的。第一步选了一个乌漆墨黑的地方,后面无论怎么调也救回不来了。所以在取景步骤中,要结合整体效果的得分来进行。

饱和度评分网络

对于500px数据集的每一个样本,生成如下两类样本作为样本的输入:

  • 1张原图
  • 6张扰动,随机调整图像饱和度为原图0%~80%

将样本与原图的平均像素值之差作为样本的标定值。0%对应1,大于等于6%对应0,中间线性插值。

使用的Inception v33作为回归网络。输出结果记为 Φsaturation

HDR评分网络

对于500px数据集的每一个样本,生成如下两类样本作为样本的输入:

  • 6张欠HDR样本,分布为(-max, -0.5max)
  • 3张过HDR样本,分布为(0.5max, 0.5max)

将样本与原图的平均像素值之差作为样本的标定值。0%对应1,大于等于20%对应0,中间线性插值。

使用的Inception v34作为回归网络。输出结果记为 ΦHDR

整体效果评分网络

使用AVA数据库进行训练。

将一部分AVA图像给专业摄影师评分,可以将AVA评分通过一个线性映射,归一化的本文的1到4分体系中。

网络采用Inception v35。输出结果记为 Φglobal

等等,你不是刚说,不能直接训一个评分网络吗?

此处评分网络在本文中只作为最后的补充步骤使用,所以其缺陷并不致命。

局部提亮网络

受限于样本数量和问题的复杂性,我们不去直接训练一个给图片打光的网络,而是将GAN中的Generator作为图像的refiner,和Discriminator一起训练。

为了更进一步约束问题,我们假设:图像的打光由 8×8 的mask决定

于是,有了如下的网络结构:
这里写图片描述
其中M为500px数据库中的原始图片。

M’为原始图片经过如下随机扰动之后的结果:
这里写图片描述

M”为经过Generator修正后的结果。

多模型

GAN以训练困难著称。本文不去等待GAN收敛,而是采用了多模型的策略。

  • 使用37套随机初始化参数,分别训练2000K步
  • 对于每套参数,每隔100K步保留一个snapshot
  • 在测试集上,保留最优的50个模型
  • 人工剔除下次瑕疵较大的,保留30个模型(此处未详述)

联合升采样

Apply mask这步,使用了joint bilateral upsamling方法6。简单来说,就是在对mask升采样的同时,参考原始图像(左)的信息,使得大尺寸mask(中)和原图细节更为匹配。

这里写图片描述

使用

各步骤如下进行

  • 取景
    • 在街景的每一处位置,选取6个方向,视野90°生成原始照片 P0
    • P0 中截取生成 P1 ,令 c={0,0.5,1} 计算该截图的复合得分:
      Φcrop=c×Φcrop+(1c)×Φglobal
    • 保留所有 P1 中, Φcrop 得分最高的3个。
  • 调色
    • 遍历HDR强度,选择 ΦHDR 最高的取值,生成 P2
    • 遍历饱和度,选择 Φsaturation 最高的取值,生成 P3
  • 打光
    • 用所有局部提亮模型,从 P3 生成 P4
    • 所有模型结果中,保留 Φglobal 最大的一个
  • 出片
    • 在一个 P0 的所有结果中,保留 Φglobal 的一个
    • 在所有地点的所有结果中,按照 Φglobal 排序,获得最终结果

结果与启发

经过上述处理,在街景数据库中获取了173张评分超过2.9的照片。这些照片经过6位专业摄影师大人,有41.4%获得了超过3.0的得分。

本文的效果并不特别惊艳,也有很多手工挑选的痕迹。和时下许多“end-to-end”系统比起来,很有图像处理年代精打细作的风范。这种思路虽然讲起来炫酷程度不足,但在解决实际问题时,往往比复杂的、高端的系统开发周期更短,更加鲁棒,值得我们借鉴。

毕竟,连Google都这么搞了,咱们还有啥不好意思的呢。


  1. Murray, N., Marchesotti, L., and Perronnin, F. (2012). Ava: A large-scale database for aesthetic visual analysis. In 2012 IEEE Conference on Computer Vision and Pattern Recognition, pages 2408–2415.
  2. Szegedy, C., Vanhoucke, V., Ioffe, S., Shlens, J., and Wojna, Z. (2015). Rethinking the inception architecture for computer vision. CoRR, abs/1512.00567
  3. Szegedy, C., Vanhoucke, V., Ioffe, S., Shlens, J., and Wojna, Z. (2015). Rethinking the inception architecture for computer vision. CoRR, abs/1512.00567
  4. Szegedy, C., Vanhoucke, V., Ioffe, S., Shlens, J., and Wojna, Z. (2015). Rethinking the inception architecture for computer vision. CoRR, abs/1512.00567
  5. Szegedy, C., Vanhoucke, V., Ioffe, S., Shlens, J., and Wojna, Z. (2015). Rethinking the inception architecture for computer vision. CoRR, abs/1512.00567
  6. Kopf, J., Cohen, M. F., Lischinski, D., and Uyttendaele, M. (2007). Joint bilateral upsampling. ACM Transactions on Graphics (Proceedings of SIGGRAPH 2007), 26(3):to appear.

猜你喜欢

转载自blog.csdn.net/shenxiaolu1984/article/details/78933466