影生成领域的研究,提出的数据库、代码和模型都已开源。本文是上海交通大学在物体阴
图像合成 (image composition) 是指把一张图片的前景剪切下来,粘贴到另外一张背景图片上,得到一张合成图。广义来讲,把来自不同图片的多个视觉元素嫁接到同一张图片上,都属于图像合成的范畴。图像合成有着广泛的应用场景,比如人像换背景、虚拟社交、艺术创作、自动广告等等。下图展示了得到一张合成图的过程。
通过剪切复制得到的合成图可能会有诸多问题,影响合成图的真实程度和图片质量。这些问题可以归结为合成图中前景和背景之间的不一致性,进一步可分成几何不一致性和外观不一致性。几何不一致性包括前景物体的大小、位置、透视角度不合理。外观不一致性包括前景和背景的颜色光照信息不匹配, 或者前景的阴影缺失或不合理。
为了解决外观不一致性,图像和谐化任务 (image harmonization) 旨在调整前景的颜色光照信息,使其和背景看起来更和谐。物体阴影生成 (object shadow generation) 任务旨在根据前景和背景信息为前景物体生成合理的阴影。
本文是上海交通大学人工智能教育部重点实验室(MoE Key Lab of Artificial Intellegence)在物体阴影生成领域的工作,论文发表在了 AAAI 2022,并且数据库、代码和模型已开源。
- 论文链接:https://arxiv.org/pdf/2104.10338.pdf
- 代码链接:https://github.com/bcmi/Object-Shadow-Generation-Dataset-DESOBA
引言
物体阴影生成任务旨在给定一张合成图和前景物体掩码,为前景物体生成合理的阴影,可以视为图像到图像翻译 (image-to-image translation) 的任务。为该任务训练深度学习网络需要大量成对的训练数据:没有前景物体阴影的合成图和有前景物体阴影的目标图。然而,这种成对数据在现实世界中极难获取。
之前有工作 [1] 用渲染的方式构造成对的训练数据,具体来说,把 3D 模型插入到 3D 场景中,先得到没有前景物体阴影的合成图,然后用渲染软件为插入的 3D 模型生成阴影,得到带有前景物体阴影的目标图。但是,该数据库 [1] 前景数量有限,背景简单,和真实图片相距甚远。研究者尝试把基于该数据库训练得到的模型用于真实合成图,效果很差。
为了解决现实世界中难以收集数据,渲染图片和真实图片又有偏差的问题,研究者设计了一种笨拙的方法,推出了首个真实复杂场景下物体阴影生成数据集 DESOBA。他们构建数据库的方式和图像和谐化数据集 iHarmony4[2]类似,都是对真实图片做调整得到伪造的合成图。
具体来说,iHarmony4 为了构建成对的和谐图片与不和谐图片,把真实图片作为目标图片,对前景用颜色迁移方法调整颜色和光照,使其和背景不和谐,获得伪造合成图,通过这种方式得到成对的合成图和目标图。该方法也可套用到物体阴影生成任务中,研究者把真实图片作为目标图片,为前景去阴影,把去阴影之后的图片当做伪造合成图,用这种方式获取成对的合成图和目标图。
他们还尝试了一些最先进的去阴影算法,可能是因为复杂场景的原因和数据集之间的差异,去阴影效果很差。迫于无奈,研究者雇佣 photoshop 专家手动为图片去阴影,这个过程非常费时费力,编辑一张图片花费半个小时到几个小时不等。为了保证去阴影图片的质量,他们尝试了一些量化指标,但这些指标不能很好地反映图片质量。
因此,研究者决定人工确保图片的质量,保证每一张图片去阴影之后原阴影区域的纹理特征尽可能保留,原阴影边界区域的过渡尽可能平滑,原阴影区域难以被识别出来。经过多轮检查,尽可能地保证数据库的质量。虽然人工检查不可能完全保证数据库的准确性,但是研究者发现该数据库能够用来比较不同方法的优劣,并且对真实合成图也有一定的效果。
数据集和生成网络
研究者基于 Shadow-OBject Association (SOBA)数据集 [3] 构建自己的数据集。SOBA 数据集有 840 张训练图片(包含 2999 对物体和阴影)和 160 张测试图片(包含 624 对物体和阴影)。他们沿用 SOBA 的训练测试集划分,将数据集命名为 DEshadowed SOBA (DESOBA)。因为数据量有限,在训练的时候采用了一种数据增广的方式,随机选择图片中的若干物体打包成一个前景物体,增加前景物体的丰富程度。实验证明了这种数据增广方式的有效性。
下图展示了 DESOBA 数据库的制作过程 (上面一行) 和物体阴影生成任务(下面一行)。给定真实图片,去除图片上的所有阴影得到,然后选定一个前景物体,把它的阴影区域替换为对应的区域,得到一张伪造合成图,通过这种方式获得成对的合成图和目标图。物体阴影生成任务是指给定合成图和前景物体掩码, 能够重建目标图。
DESOBA 数据库里面的样图如下图所示。根据合成图背景中有没有成对的物体和阴影,他们把图片分为 BOS (Background Object-Shadow) 图片(背景中有成对的物体和阴影)和 BOS-free 图片(背景中没有成对的物体和阴影)。对于 BOS 图片,成对的物体和阴影可以为推测光照信息提供强有力的线索。对于 BOS-free 图片,他们期望模型能够根据天空、地面、物体的明暗变化推测出光照信息。下图左半边是 BOS 图片,从左到右依次是合成图、前景物体掩码、背景物体掩码、背景阴影掩码、目标图。右半边是 BOS-free 图片,从左到右依次是合成图、前景物体掩码、目标图。
基于 DESOBA 数据集,研究者设计了一个两阶段的物体阴影生成网络,这是首个两阶段的物体阴影生成网络。整个网络的结构如下图所示,第一阶段负责生成物体阴影的掩码,第二阶段负责填充物体阴影区域。
在第一阶段,研究者用两个编码器分别提取背景和前景的特征。前景编码器的输入是合成图和前景物体掩码,背景编码器的输入是合成图、背景物体掩码、背景阴影掩码。提取前景和背景的特征之后,他们设计了一个交互注意力聚集 (cross-attention integration) 层完成前景特征和背景特征之间的信息交互。在此过程中,前景特征从背景特征中获取了相关有用的光照信息,得到增强的前景特征。增强的前景特征通过解码器预测出前景阴影掩码。虽然交互注意力机制在其他计算机视觉任务中已经广泛使用,但这是首次将交互注意力机制用于阴影生成任务。
在第二阶段,获取前景阴影掩码之后,需要对阴影区域进行填充,其中最重要的信息是阴影的深浅。根据现有的光照模型[4],研究者假设阴影像素值可以由它对应的无阴影像素值通过线性变换获得:,其中 k 表示第 k 个颜色通道(RGB),i 表示第 i 个像素。他们把合成图和生成的前景阴影掩码拼起来,用于预测阴影参数。阴影参数的真值可以基于训练图片回归得到。根据阴影参数和合成图,用下图中的公式得到暗图(darkened image)。同时会对前景阴影掩码进行修正,得到更精确的阴影蒙版(shadow matte),通过阴影蒙版把合成图和暗图混合得到目标图。除了重构损失,研究者也使用条件判别器迫使生成的前景阴影掩码和生成的目标图更加真实。
实验结果
研究者首先在 DESOBA 测试集上验证模型的性能。关于量化指标,他们采用了 RMSE 和 SSIM,分别对全图计算(global RMSE/SSIM) 和阴影区域计算(local RMSE/SSIM)。
如下展示了不同方法的阴影生成图片。从左到右依次是: (a)输入合成图; (b)前景物体掩码;(c)Pix2Pix 的结果; (d)Pix2Pix-Res 的结果; (e)ShadowGAN 的结果; (f)Mask-ShadowGAN 的结果; (g)ARShadowGAN 的结果; (h)本文方法 SGRNet 的结果; (i)真值目标图。从图片结果可以看出对比方法生成的阴影残缺不全,甚至没有生成阴影。而文中方法的生成结果明显优于对比方法的结果。
由于 DESOBA 数据集是伪造合成图,为了验证在真实合成图上的效果,研究者制作了 100 张真实合成图并测试不同的方法。不同方法的结果如下图所示,从左到右依次是: (a)输入合成图; (b)前景物体掩码; (c)Pix2Pix 的结果; (d)Pix2Pix-Res 的结果; (e)ShadowGAN 的结果; (f)Mask-ShadowGAN 的结果; (g)ARShadowGAN 的结果; (h)文中方法的结果。注意,真实合成图没有真值目标图。在真实合成图上,文中方法的生成结果也明显优于对比方法的结果。可见 DESOBA 数据集和设计的模型在真实合成图上也有一定的效果。DESOBA 测试集上的更多结果和真实合成图上的更多结果请参见论文和附录。
最后,研究者展示模型输出的一些中间结果,以便于理解模型。从左到右依次是:(a)输入合成图; (b)前景物体掩码; (c)生成的前景阴影掩码; (d)生成的前景阴影蒙版; (e) 生成的前景阴影掩码和阴影蒙版之间的差异; (f)生成的暗图; (g)生成的目标图片; (h)真值前景阴影掩码; (i)真值目标图。
总结
研究者推出了首个真实复杂场景下的物体阴影生成数据集 DESOBA, 用于合成图中的物体阴影生成。另外,它们设计了两阶段的物体阴影生成网络,第一阶段生成前景阴影掩码,第二阶段填充前景阴影区域。物体阴影生成这个任务很有挑战性,任重而道远。
研究者表示,虽然他们在正文和附录里展示了一些效果较好的图片,但是实际上大多数测试图片的效果并不理想,甚至惨不忍睹,所以可提升的空间很大。他们的工作实属抛砖引玉,欢迎大家尝试文中的数据集,尝试物体阴影生成任务。
参考文献:
[1] Liu, D.; Long, C.; Zhang, H.; Yu, H.; Dong, X.; and Xiao, C. 2020. Arshadowgan: Shadow generative adversarial network for augmented reality in single light scenes. In CVPR.[2] Cong, W.; Zhang, J.; Niu, L.; Liu, L.; Ling, Z.; Li, W.; and Zhang, L. 2020. Dovenet: Deep image harmonization via domain verification. In CVPR.[3] Wang, T.; Hu, X.; Wang, Q.; Heng, P.-A.; and Fu, C.-W. 2020. Instance shadow detection. In CVPR.[4] Shor, Y.; and Lischinski, D. 2008. The shadow meets the mask: Pyramid-based shadow removal. In Computer Graphics Forum, 577–586.