Deep Context-Aware Descreening and Rescreening of Halftone Images

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

这篇论文是Intel公司在SIGGRAPH 2018发表的论文,主要讲的是用深度学习来进行半色调(Halftoning)和逆半色调(Inverse Halfoning)。

原文链接:https://dl.acm.org/citation.cfm?id=3201377


1. 论文贡献

直接借用论文中作者的话:

  • 提出了一种基于深度学习的Descreening(去网)方法。模型分为两阶段:第一阶段先生成粗糙的重构图像和一些特征,然后第二阶段将第一阶段得到的粗糙图像和特征进行融合,最终得到精细的图像结果;
  • 提出用边缘信息作为条件生成对抗网络及其目标函数的指导;
  • 介绍了一种基于Rescreening的图像编辑应用,并阐述了它的实用性;
  • 为了合成规律的半色调纹理,提出了局部空间可变(locally space-variant)卷积神经网络。
  论文做的工作还是很好理解的,如上图所示。(a)是原始的半色调图片,论文作者提出一个网络,可以将半色调图片恢复成灰度图形式(b),并且很好的恢复了细节特征(这一点很重要)。然后根据(b),如果给定另外一种半色调方式的图片,可以将(b)转化成相应的半色调图片(c),这个和风格迁移比较相似。最后,算是这个方法的一种应用吧,如果在(b)上进行编辑(将男人换了另一张脸),再半色调回去,就有了对半色调图片进行编辑的效果了。

2. 论文动机

  emmmm,关于动机(motivation)作者并没有讨论太多,主要就是因为以前印刷技术的限制,老报纸、杂志上面的图片都是半色调图像,会有很明显的半色调纹理。经过半色调印刷,图像的质量会大大降低,而且因为时间久远,想要从胶卷中恢复图像也不现实,所以作者认为有必要有为以前的老照片带去一丝生机。这里我个人感觉也没啥有特色的地方。emmmm,关于动机(motivation)作者并没有讨论太多,主要就是因为以前印刷技术的限制,老报纸、杂志上面的图片都是半色调图像,会有很明显的半色调纹理。经过半色调印刷,图像的质量会大大降低,而且因为时间久远,想要从胶卷中恢复图像也不现实,所以作者认为有必要有为以前的老照片带去一丝生机。这里我个人感觉也没啥有特色的地方。

3. 论文模型(Descreening)

  Descreening模型的整个流程框架如下图所示。整个模型按照功能可以分为两个阶段:第一阶段有3个子网络CoarseNet,ObjectNet和EdgeNet,该阶段主要就是根据输入的半色调图片 I h I_h 先生成一个粗略的结果 I a I_a 和一些辅助特征 I c I_c (语义图), I e I_e (边缘图)。第一阶段得到的 I a I_a 已经基本去掉了半色调图片中的那些,但是细节特征不好。第二阶段做的事就是利用条件GAN将第一阶段得到的语义信息和边缘信息融合到 I a I_a 中去,最终生成细节丰富的结果 I d I_d 。整个流程走下来还是挺简单的,下面来看看这两个阶段的实现细节。

  第一阶段 D 1 \mathcal{D}_1 包含3个子网络:CoarseNet、ObjectNet和EdgeNet:

CoarseNet
  CoarseNet的任务是低频图像的重构,恢复出图像的颜色,色调、形状等全局特征。网络就是一个U-Net,具体参数如下表所示,其中 C C 代表卷积层, B B 代表BatchNorm, L L 代表LeakyReLU ( α = 0.2 ) (\alpha=0.2) E E 代表ELU ( α = 1.0 ) (\alpha=1.0)

  CoarseNet的Loss函数由两部分组成, I o I_o 表示Ground Truth: (1) L 1 = w 1 L P ( I o , I a ) + w 2 L T ( I o , I a ) \mathcal{L}_1=w_1\mathcal{L}_P(I_o,I_a)+w_2\mathcal{L}_T(I_o,I_a)\tag{1} 其中 L P \mathcal{L}_P 用来衡量输出图像 I a I_a 和原图 I o I_o 的差别: (2) L P ( I o , I a ) = I o I a 1 \mathcal{L}_P(I_o,I_a)=\|I_o-I_a\|_1\tag{2} 这里使用 L 1 L_1 损失而不用 L 2 L_2 损失是因为 L 1 L_1 相比 L 2 L_2 能生成模糊程度更低的图像。 但是如果只用 L 1 L_1 损失,最后恢复的图像中仍会有半色调纹理,受风格迁移网络的启发,这里引入全局级别的纹理损失 L T \mathcal{L}_T (论文选择的是VGG16): (3) L T ( I o , I a ) = l w l G l ( I a ) G l ( I o ) 2 2 \mathcal{L}_T(I_o,I_a)=\sum_lw_l\|G_l(I_a)-G_l(I_o)\|_2^2\tag{3} 其中 G l ( ) G_l(\cdot) 表示VGG16中第 l l 层feature map的Gram Matrix。 L T \mathcal{L}_T 可以指导网络生成和 I o I_o 具有相似纹理结构 I a I_a ,从而去除半色调纹理。

ObjectNet
  ObjectNet的任务是从CoarseNet生成的低频图像中获取语义信息,这将会为之后的特征融合阶段提供非常重要的先验信息。语义+大感受野的方式能够很好的重构图像细节特征。 论文直接用的现成的预训练好的场景分割网络(Zhou et al. 2017b),并将原来的150个语义标签融合为25类。最后ObjectNet为 I a I_a 的每个像素输出一个25维的one-hot向量。这25类语义标签如下表所示。

  语义信息的引入能指导细节生成得更真实,下图是一个例子,将语义信息加入训练之后,头发明显生成得更真实了。

EdgeNet
  边缘和轮廓则是图像合成另一个很重要的约束。论文使用Canny算子得到的二值图像作为Ground Truth训练EdgeNet(输入是半色调图像)。网络参数如下:

  加入边缘先验信息有助于进一步提升细节表达。

由于Canny生成的是二值图像,EdgeNet的损失函数是输出 I e I_e 和真值 I e g t I_e^{gt} 的交叉熵: (4) L E ( I e ) = 1 N x , y I e g t ( x , y ) log ( I e ( x , y ) ) + ( 1 I e g t ( x , y ) ) log ( 1 I e ( x , y ) ) \mathcal{L}_E(I_e)=-\frac{1}{N}\sum_{x,y}I_e^{gt}(x,y)\log (I_e(x,y))+(1-I_e^{gt}(x,y))\log (1- I_e(x,y))\tag{4} 其中 N N 为图像中像素的总数。
  
  第二阶段 D 2 \mathcal{D}_2 也包括3个子网络:DetailsNet、Discriminator-1、Discriminator-2:

DetailsNet
  半色调图像 I h I_h 经过第一阶段 D 1 \mathcal{D}_1 得到3个输出 I a , I c , I e I_a,I_c,I_e ,将它们4个concat到一起得到DetailsNet的输入: I f ( x , y ) = [ I h ( x , y ) I a ( x , y ) I c ( x , y ) I e ( x , y ) ] R 3 + 3 + 25 + 1 = R 32 I_f(x,y)=\left[ \begin{matrix} I_h(x,y) \\ I_a(x,y) \\ I_c(x,y) \\ I_e(x,y)\end{matrix} \right] \in \mathbb{R}^{3+3+25+1}=\mathbb{R}^{32} DetailsNet的任务是通过CNN将特征融合到 I a I_a 上,并去除残留的半色调纹理,获得细节特征良好的结果 I d I_d (5) I d = D 2 ( D 1 ( I h ) ) = I a + F ( I f ) \begin{aligned}I_d&=\mathcal{D}_2(\mathcal{D}_1(I_h))\\&=I_a+\mathcal{F}(I_f)\tag{5}\end{aligned} 其中 F \mathcal{F} 是残差表示,这个是借鉴了ResNet。
  然后使用GAN框架来训练 F \mathcal{F} F \mathcal{F} 就是GAN中的生成器,判别器有两个:一个用来监督整张图像,另一个用来监督图像的局部区域(直接应用PatchGAN的结构[Isola et al. 2017])。生成器和判别器的网络参数如下表所示。

DetailsNet的损失函数由4部分组成:3个内容损失,1个对抗损失: (6) L 2 = w 1 L P ( I o , I d ) + w 2 L E ( I e d ) + w 3 L T l o c a l ( I o , I d ) + w 4 L G \mathcal{L}_2=w_1\mathcal{L}_P(I_o,I_d)+w_2\mathcal{L}_E(I_e^d)+w_3\mathcal{L}_{T_{local}}(I_o,I_d)+w_4\mathcal{L}_G\tag{6} 关于 I e d I_e^d ,论文中说是用 I d I_d 喂到EdgeNet中得到的,但是EdgeNet是根据Halftone图片训练得到的,这显然不会得到正常的边缘,不知道是论文作者写错了还是什么,我认为 I e d I_e^d 就是直接对 I d I_d 进行Canny边缘检测得到的结果。 L T l o c a l \mathcal{L}_{T_{local}} 是局部区域匹配损失,patch大小为 16 × 16 16\times 16 ,使用局部损失的目的是为了产生更真实的纹理。 L G \mathcal{L}_G 是GAN的对抗损失,论文中不是用的原始生成对抗网络的交叉熵损失函数,而是用的Least Squares GAN的损失,即 L 2 L_2 损失。
  在DetailsNet的训练过程中,对于生成器 F \mathcal{F} ,除了输入融合特征 I f I_f ,还加上了一个小的随机噪声 z z (这样更有利于GAN训练),即 F ( I f , z ) \mathcal{F}(I_f,z) 。对于判别器Discriminator-1,它的训练目标是区分Ground Truth的残差 ( I o I a ) (I_o-I_a) 和生成的残差 F ( I f , z ) \mathcal{F}(I_f,z) 。对于判别器Discriminator-2,是一个条件生成对抗网络,输入条件有2个,原始半色调图片 I h I_h 和语义标签图 I c I_c ,训练目标是判断生成的细节是否符合给定的半色调图片和语义标签图。Discriminator-2训练的patch大小为 94 × 94 94\times 94

模型训练
  Descreening这部分模型训练使用的是Places-365数据集,总共包括2,168,461张图片,训练图片为1,803,460。将图片缩放到 256 × 256 256 \times 256 ,并在CMYK颜色空间下对图片进行Halftone预处理。为了保证Halftone方式的多样性,作者为每张图片随机选择dot shapes, screen angle, screen resolutions,而且也考虑了基于dithering的Halftone方式(但是在后续实验中并没有看到相关的实验数据),最终得到了12,624,220个训练图像对 ( I h , I o ) (I_h,I_o)
  训练过程中,每个epoch从整个训练集中随机选择500,000张图片进行训练。为了鲁棒性,进行了数据集增强:随机crop,旋转,缩放,水平\竖直翻转,增加小的高斯噪声。使用ADAM优化器最小化损失函数,初始学习率为0.0001,每个epoch学习率下降为原来的0.9。
  由于难以一次性训练这么多网络,所以整个训练过程也是分阶段的。ObjectNet和EdgeNet是提前预训练好的,在此基础上,陆续加入其它子网络进行训练。前5个epoch训练CoarseNet,然后将CoarseNet,DetailsNet,EdgeNet加在一起训练。10个epoch后,激活Discriminator-2来对DetailsNet进行微调,此时其它网络的参数不参与训练

4. 论文模型(Rescreening)

  前面Descreening模型是进行逆半色调,即将半色调图片还原成灰度图。论文还提出了Rescreening,给定一张参考Halftone图像,该模型能够将输图片按照参考图像的Halftone方式进行半色调,这个工作目前做的人比较少,我想这篇论文被SIGGRAPH接收这一点应该起很大作用。现在首先来看看整个RescreenNet模型。

  Rescreening模型 R \mathcal{R} I d I_d I h I_h 及其Descreening结果 I s I_s 为输入,合成 I d I_d 的一张新的半色调图片 I h I_h' (7) I h = R ( I d , I s , I h ) I_h'=\mathcal{R}(I_d,I_s,I_h)\tag{7} 网络参数如下表所示:

  RescreenNet也是可以分为两个阶段,在第一阶段,Style Encoder从 I h , I s I_h,I_s 中提取出一个描述半色调风格的全局特征向量 S S (32维),然后第二阶段利用条件生成对抗网络,以 S S I d I_d 为输入,生成新的半色调图像 I h I_h' 。但是直接用卷积没有办法生成position-dependent的性质(比如半色调图片上有规则的图案),所以作者又为图像中每个位置 ( x , y ) (x,y) 对16取模,并编码成16维的one-hot特征向量。最后第二阶段的输入是一个67通道(32+16×2+3)的张量。
  RescreenNet的损失函数由 L 1 L_1 损失和全局特征匹配损失 L T \mathcal{L}_T 两部分组成。判别器Discriminator-3同样是基于patch的,patch大小为 64 × 64 64 \times 64

5. 实验结果

猜你喜欢

转载自blog.csdn.net/qq_16137569/article/details/82737267