APP下载

交互式室外复杂光照条件下的本征图像分解

2021-06-03邹代宇

现代计算机 2021年9期
关键词:光照矫正阴影

邹代宇

(1.四川大学计算机学院,成都610065;2.四川大学视觉合成图形图像技术国防重点学科实验室,成都610065)

0 引言

随着科技发展和计算机性能的快速发展,增强现实和虚拟现实在现实生活中的应用也越来越广泛。人们对于三维建模的真实性也越来越看重,其中光照的真实性对于虚拟场景而言起着至关重要的作用。当物体的光照与真实光照有着高度的一致性时,用户才会有着更加真实的体验。本征分解将图像或者视频进行分解,从而得到光照图和本征图。因此也为很多传统算法提供了一条全新的道路。如在本征分解的基础上进行去噪[2]、光照迁移,等等。因此针对室外光的本征分解具有实际的研究价值,本文将重心放在室外复杂光照场景下的本征图像分解。

1 相关工作

在介绍我们的方法之前,首先回顾一下相关的一些方法。自1978年Barrow和Tenenbaum等人[1]提出本征分解的概念至今,关于本征图像分解的文章已经很多,所以在在这一小节,我们主要从近期的一些文章中,分下面两个方面进行讨论。

基于深度学习的方法。MIT的数据集,只有少量物体。因此基于该数据集的深度学习算法对于现实世界图像的泛化效果不尽人意。因此很多研究都是基于合成的数据集例如Sintel[15]。文献[20]采用MIT和Sintel数据集进行训练,然后训练网络来产出本征图和光照图。文献[4,6]通过IIW[12]的稀疏标注数据集进行端到端的训练,再合成数据集进行训练,可以得到很好的效果,对于真实场景也只能应用与室内的图像。SFSnet[5]通过合成人脸进行监督学习,再通过真实人脸进行非监督学习改善网络。从而可以再人脸上达到很好的效果。但是对于图像中的非人脸的自然场景部分,往往生成一些意料之外的东西。

2 算法实现

2.1 图像生成模型

根据文献[1]。我们定义如下图像生成函数。其中输入图像为S代表输入的单幅RGB图像,I代表光照图是单通道的灰度图像,R代表本征图。

∘符号代表逐像素相乘。公式(1)所述模型是基于Lambertian模型,其中本征图中的材质往往假设是不包含镜面反射材质的。

在自然界中,一张图像中往往包含由半影I a和本影I d组成。对于本影下的物体,由于其入射光被直接遮挡,因此比半影更加黑暗。因此定义一个缩放系数当A(x)=1是为光照区域是作为本影区域。根据文献[7]光照图像I都可以表示成一个仿射函数。

其中α代表偏移系数。联立公式(1)(3)得到:

I d∘R部分是不带偏移的图像生成模型。(I a-αI d)∘R是图像S(x)的偏移量。下面小节我们将进行偏移矫正,根据交互的草图来获取一个近似的偏移量。定义偏移量D(x)为:

2.2 交互偏移矫正

本文通过设计算法,只需要简单的交互,就可以完成手工交互。交互生成的mask,通过mask与被观察图像逐像素相乘得到mu。

其中t是一个基于color-line的独立变量。p是S(mu)的均值。

先根据交互草图的mu来计算交互部分的偏移量v是使用PCA(主成成份分析)计算mu中的所有像素值得到。由于我们不需要获得一个非常精准的偏移量,相对于一个全局的偏移,所以通过使用PCA算法计算交互产生的mu来快速地获取一个粗略的逐像素的偏移量。

近年来,人行昆明中支持续运用政策工具积极支持小微企业破解“融资难”问题。截至6月末,云南省小微型企业贷款余额达5034.39亿元,比年初新增135.27亿元,同比增长14.27%,快于同期大中型企业贷款增速8.84个百分点,超过同期各项贷款增速5.58个百分点,困扰小微企业最关键、最核心问题的“融资难”问题得到缓解。

偏移矫正后的图像表达式为:

第一步,按照(图1 B)将对显示的图片阴影边界处划一条线,代表这部分区域具有相同的材质。该线条不能跨越多个阴影。交互完毕后,会生成一张偏移矫正掩码(图1 E),一张二进制的单通道图像。下一步,(图1 C)去除上一步留下的标记,要求画两条粗糙的线条。一条完全处于阴影内部,一条完全处于阴影外部。然后使用文献[9]的方法进行阴影检测。

图1 手工交互结果与偏移量可视化

如图1所示,其中A是输入的室外带阴影的原图。B是程序第一次交互。用于指导程序不同光照下具有相同材质的交互。C是指导程序阴影和非阴影区域的交互。E和F分别是B和C交互后产生的对应的掩码。

对于D图,偏移量都是远小于原像素值的。将RGB图像从[0,255]归一化到取值范围为[0,1]。偏移量的取值范围是[-1,1]。D图中最大值为0.0671,最小值为-0.057。也就是说,其最大值的亮度对于肉眼而言,几乎不可见。所以,我们将其放大15倍。用于视觉上的观察。观察图像D,可以知道,偏移矫正本身是不会观测到阴影的。当偏移矫正完成后,就使用文献[9]的方法进行阴影去除操作。将S^(x)去除阴影后的图片为S^f(x)。

2.3 室外场景的本征图像分解

对于本征图,为了保证其材质与原图的一致性。我们引入了图像保真约束。

函数表示取2维平面窗口中的最大值,其中w表示max操作时窗口大小。S(x)表示输入的图像。c表示图像的通道数,彩色图为3,灰度图为1。光照图的约束函数为:

最终的能量方程为:

其中λ为光照系数。

对于非凸函数求解是比较慢的,因此,我们使用块梯度下降[18]算法对上述能量方程进行优化。块梯度算法是一个非梯度的优化方法,计算的过程是沿着某个维度,保持一个方向进行搜索,直到获取该方向的最小值之后,再切换到另一个维度,继续上述步骤。最后在所有维度获取一次更新。然后继续下一次迭代。由于本文中的维度仅有I,R这两个方向。因此每次更新只需要更新2个维度。因此计算速度相对快速。

输入无阴影图像S^f(x),迭代优化后得到初始光照图和本征图I1,R1。然后更新光照图为:

其中a b操作符为逐像素相除。S(x)为被观察的图片,得到最终的光照图I2。

3 实验结果

I与R的迭代过程中,设置ε,当或者时,就终止迭代。这里我们设置ε=0.01。对于光照系数,我们设置λ=0.25。

为了验证算法的有效性和准确性,本文从SBU[11]数据库中选取了3个真实场景:天空广场、石墙、户外泥地。同时将文献[3]的算法与本文算法进行对比。由于不具有ground truth,我们仅从视觉效果上就行对比。其结果如图2所示。

图2 文献[3]分解结果、本文算法分解结果

其中,a.是被观察的图像,b.c.分别是文献[3]的本征图和光照图。d.e.分别是本文的本征图和光照图。

从总体上来看,对于文献[3]的结果,其倾向于保持本征图的光滑。从而导致过多的细节保留在了光照图中。本文通过光照图的亮度约束,将更多纹理信息保留在本征图,从而可以让光照图只发挥其光照的作用,而不携带过多的纹理信息。

并且对于同时有阴影和天空光的图像,文献[3]的算法往往使天空模糊不清(如b1.),阴影下的物体又没有完全分解出来,例如b2,凹陷进去的墙面阴影部分,被直接进行光滑处理,内部纹理信息完全丢失。本文的算法在天空云彩和色彩的保持较好,并且阴影也正确地分离出去,保留在了光照层。

4 结语

本文提出了一种基于单幅RGB图像的室外场景本征分解算法。利用原始输入的图像通过偏移矫正和阴影检测与去除解决阴影下做本征分解的难题,最终得到的显著的结果。针对户外的3个场景(广场、墙壁、乡间泥地)做了分解实验。结果验证了本文算法的有效性。又因为手工交互具有个人主观性,有些阴影边界不明显的,很难界定,哪里是阴影,哪是光照区域,从而导致一张图有不同的生成相同的输出结果。本征图像分解问题的问题还有着长远的道路需要开拓。

猜你喜欢

光照矫正阴影
肉种鸡的光照不应性对养殖生产的不良影响分析
论行为主义视野下幼儿学习行为的矫正
你来了,草就没有了阴影
隐蔽的力量
社区矫正制度的现状与完善
监狱管理创新视角下的循证矫正研究
阴影魔怪
水禽舍的光照及其控制
矫正牙齿,现在开始也不迟