前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一种将虚拟物体插入到有透明物体的场景中的方法

一种将虚拟物体插入到有透明物体的场景中的方法

作者头像
用户1324186
发布2022-11-07 14:59:12
3.8K0
发布2022-11-07 14:59:12
举报
文章被收录于专栏:媒矿工厂媒矿工厂

作者:Aijia Zhang, Yan Zhao等 来源:IEEE Conference on Virtual Reality and 3D User Interfaces (VR) 论文题目:An improved augmented-reality method of inserting virtual objects into the scene with transparent objects 论文链接: https://www.computer.org/csdl/proceedings-article/vr/2022/961700a038/1CJbHneMl7W 内容整理:曹靖宜 在增强现实中,将虚拟物体插入到真实场景中需要满足视觉一致性的要求,即增强现实系统渲染的虚拟物体应与真实场景的光照一致。对于复杂的场景,仅仅依靠光照估计无法满足这一要求。当真实场景中存在透明物体时,折射率和粗糙度的差异会影响虚实融合的效果。本文提出了一种新的方法来联合估计照明和透明材料,将虚拟物体插入到真实场景中。作者通过将微平面模型和半球区域照明模型嵌套到逆路径跟踪中来同时求解物体和照明的材料参数。虽然在恢复的几何模型中没有光源的几何模型,但所提出的半球区域照明模型可用于恢复场景外观。实验证明本文所提出算法在主观和客观上都比目前最先进的方法性能更好。

目录

  • 引言
  • 方法
    • 逆路径追踪
    • 不透明物体的光照和材质优化
    • 透明物体的光照和材质优化
    • 方差减少和正则化
  • 实验
    • 合成数据实验
    • 真实数据实验
  • 总结与展望

引言

在增强现实系统中,真实场景和虚拟物体之间的视觉一致性得到了广泛的研究,解决这个问题的关键在于估计真实场景中物体的光照和材质。现有的各种方法只关注在真实场景中只有不透明物体时插入虚拟物体,而没有考虑真实场景中透明物体对虚拟物体的影响。如下图所示,透明物体的不同折射率和粗糙度参数会给周围的物体带来不同的视觉效果。

不同折射率和粗糙度参数的透明物体的比较。第一行比较了粗糙度参数相同、折射率不同的透明茶壶。在第二行中,比较了具有相同折射率和不同粗糙度参数的透明茶壶。可以看出不同参数的透明茶壶会影响插入虚拟叶子的效果。

要将虚拟物体插入到具有透明物体的场景中,要解决的核心在于同时估计透明物体和照明的参数。此前关于光照估计的大多数方法都假设真实场景中的所有物体都是不透明的;现有估计镜面和透明物体的材料以进行虚拟物体插入的方法没有考虑粗糙度,会使得融合结果不够逼真。本文提出的方法将透明物体的模型嵌入到逆渲染中,通过梯度下降优化算法求解透明物体的精确折射率和粗糙度参数。与以往的方法相比,本文可以在复杂材料的透明物体和不透明物体都存在的情况下处理虚拟物体的插入,并实现更逼真的融合效果。

本文主要贡献如下:

  • 开发了一种基于逆路径跟踪的新方法,以联合优化不透明和透明物体的照明和材质,并解决在透明物体周围插入虚拟物体的问题。本文是第一个解决真实场景中透明物体的不同折射率和粗糙度参数对插入虚拟物体影响问题的方法。
  • 设计了一个半球区域照明模型来解决场景重建不完整的问题。
  • 在真实和虚拟场景中的实验证明,本文性能优于现有算法。

方法

本文算法整体框架如下图所示,首先,该方法的输入是多视图图像,通过现有方法重建出几何模型。在这个阶段应该对几何模型进行粗略的分割。由于透明物体与光线相互作用的复杂性,作者在联合优化阶段设计了一种两步优化方法:在第一步((b)和(c))中,使用逆路径跟踪和半球区域照明模型来联合优化场景中不透明物体的照明和材质。梯度下降算法用于更新参数,直到损失函数收敛;当第一步完成时,更新的参数被输入到第二步;在第二步((d)和(e))场景中添加透明物体后,所有的材质和光照都基于第一步的光照和材质结果一起优化。前向路径跟踪和参数更新交替进行,直到损失函数收敛,得到估计结果。最后,在输出阶段,利用估计的光照和材质,将虚拟物体插入到原始场景中,对场景进行渲染,得到最终的结果。

本文算法整体框架

逆路径追踪

逆路径追踪是通过将光传输方程与梯度下降算法相结合来优化参数的过程。光传输方程是一个积分问题,通常通过蒙特卡洛积分来解决。因此本文采用了可谓分蒙特卡洛路径追踪,即如果场景模型、光源和物体的材质参数已知,则路径追踪中渲染的每个像素的值可以表示为:

I_j=\frac{\sum_{i=1}^N h_j\left(u_i, v_i\right) I\left(u_i, v_i\right)}{\sum_{i=1}^N h_j\left(u_i, v_i\right)}

其中

h_j

是像素

j

的滤波函数,

N

是样本数,

I\left(u_i, v_i\right)

(u_i, v_i)

处采样点的渲染强度,计算公式为:

I\left(u_i, v_i\right)=L_e\left(x_0, \overline{x_0 x_1}\right) \prod_{q=1}^k f_s\left(x_q, \overline{x_{q-1} x_q}, \overline{x_q x_{q+1}}\right)

其中

L_e

是从顶点

x_0

沿

x_0 x_1

方向发射的光源的辐射率,

k

是路径追踪的长度,在光路的每个交互顶点

x_q

处定义了一个双向散射分布函数(BSDF)

f_s\left(x_i, \overline{x_{q-1} x_q}, \overline{x_q x_{q+1}}\right)

,它表示透明和不透明物体的材料参数。BSDF可以描述为双向反射率分布函数(BRDF)和双向透射率分布函数(BTDF)的混合,在本文中,BTDF和BRDF被用来模拟基于微面模型的透明和不透明物体的材料。

逆路径追踪的关键是构造待优化的目标函数并计算可微路径追踪过程中参数的导数。目标函数由输入图像像素

S_j

和可微渲染器生成的渲染图像像素

I_j

组成,定义为:

\underset{L, M}{\arg \min } E(L, M)=\underset{L, M}{\arg \min } \sum_{j=1}^H\left|I_j-S_j\right|

其中

L

M

是要估计的照明和材料,

H

是计算中涉及的像素数。建立这个目标函数是为了通过调整光源和材料的参数,使渲染图像尽可能接近输入图像。

为了最小化上述等式,设计了一个迭代过程将路径跟踪嵌入到梯度下降算法中。在每次迭代中,使用当前照明材料和材料参数渲染图像并计算与输入图像之间的误差以及目标函数关于照明和材料参数的导数,通过反向传播更新对应参数。

E(L,M)

关于光照和材料的偏导数计算如下:

\frac{\partial E(L, M)}{\partial L}=\sum_{j=1}^H \operatorname{sgn}\left(I_j-S_j\right) \frac{\partial I_j}{\partial L}
\frac{\partial E(L, M)}{\partial M}=\sum_{j=1}^H \operatorname{sgn}\left(I_j-S_j\right) \frac{\partial I_j}{\partial M}

其中

\operatorname{sgn}

表示符号函数,

\frac{\partial I_j}{\partial L}

表示渲染图像对于照明的导数,

\frac{\partial I_j}{\partial M}

分为对于透明/不透明物体材质的导数。

不透明物体的光照和材质优化

在不透明物体光照与材质联合优化步骤中,首先初始化半球区域光照模型,来自多个方向的面光源均匀分布在包围整个场景的半球上,光线从半球表面发出。该半球模型用于模拟真实场景中不同类型的光源。在这种情况下,光源位置是确定的,未知参数是各个区域光源的强度值。因此,渲染图像关于光照的导数

\frac{\partial I_j}{\partial L}

,计算公式如下:

\frac{\partial I_j}{\partial L}=\nabla_L L_e\left(x_0\right) \prod_{s=1}^k f_r\left(x_i\right)

其中

f_r

表示BRDF,用于模拟不透明物体的表面反射。Microfacet模型由漫反射分布和镜面反射分布两部分组成,定义如下:

f_r\left(K_d, K_s, \sigma\right)=\frac{K_d}{\pi}+\frac{K_s D(\sigma) G(\sigma) F}{4 \cos \theta_l \cos \theta_v}

其中

K_d

K_s

分别控制漫反射和镜面反射的量,

\sigma

表示表面粗糙度确定物体上高光的大小,

D(\sigma)

是与

\sigma

相关的分布函数,

G(\sigma)

是几何衰减因子,

F

是菲涅耳系数,

\theta_l

\theta_v

表示角度相对于表面法线

n

的入射和观察向量。当

f_s

表示不透明物体的材质,可以得到导数相对于

K_d

K_s

\sigma

的渲染图像:

\frac{\partial I_j}{\partial M}=L_e\left(x_0\right) \nabla K_d K_s \sigma \prod_{s=1}^k f_r\left(x_i\right)

透明物体的光照和材质优化

在完成了光照和不透明材质物体的联合估计后,光源已经收敛到了一个相对正确的结果,在已知光源的情况下可以更好地处理更复杂的透明材料估计。选择基于microfacets和斯涅尔定律的BTDF模型,它不仅可以显示透明物体的折射率,还可以显示透明物体的粗糙度,对应的折射方程为:

f_t\left(\eta_o, \alpha\right)=\frac{\left|\mathbf{i} \cdot \mathbf{h}_{\mathbf{t}} \| \mathbf{o} \cdot \mathbf{h}_{\mathbf{t}}\right|}{|\mathbf{i} \cdot \mathbf{n}||\mathbf{o} \cdot \mathbf{n}|} \frac{\eta_o^2 G(\alpha) D(\alpha)(1-F)}{\left(\eta_i\left(\mathbf{i} \cdot \mathbf{h}_{\mathbf{t}}\right)+\eta_o\left(\mathbf{o} \cdot \mathbf{h}_{\mathbf{t}}\right)\right)^2}

其中

\eta_i

\eta_o

分别表示穿入和穿出截止的折射率,

n

是表面法线,

\alpha

表示透明物体的粗糙度,半方向

\mathbf{h}_{\mathbf{t}}

定义为:

\mathbf{h}_{\mathbf{t}}=\mathbf{h}_{\mathrm{t}}(\mathbf{i}, 0)=\frac{\overrightarrow{\mathbf{h}_{\mathrm{t}}}}{\left\|\overrightarrow{\mathbf{h}_{\mathrm{t}}}\right\|}
\overrightarrow{\mathbf{h}_{\mathbf{t}}}=-\left(\eta_i \mathbf{i}+\eta_o \mathbf{0}\right)

这个阶段主要优化透明材质物体参数,因此需要求解BTDF模型的导数参数。通过添加透明物体来共同估计光照和材料,光源的参数也会收敛到更准确的结果。直到目标函数收敛,才能得到正确的光照、透明和不透明物体材质的结果。从而实现虚拟模型可以插入透明物体周围的任何位置,增强现实系统可以产生逼真的融合效果。

方差减少和正则化

蒙特卡洛积分应用于路径跟踪会导致梯度变化,因此在本文所提出的方法中,采用与原始路径跟踪相同的重要性采样策略来减少梯度方差,例如随机选择光源。在光源优化的第一阶段,半球形区域照明模型中所有区域光源的采样概率相同。随着梯度下降的进行,光源不再被均匀采样而是根据光源强度的概率分布进行采样。光源的强度值构成离散分布,它们根据样本值所在的离散分布的累积分布函数的值对进行采样,从而加速梯度下降的收敛。

由于某些噪声的影响,半球上的面光源(虽然现实世界中不存在这种光源)的强度可能是一个超过0的小值。为了解决这个问题,添加光源的L1范数以抑制小强度光源。

实验

合成数据实验

虚拟场景是通过路径追踪渲染获得图像作为输入,本文和最新方法《An Improved Augmented-Reality Framework for Differential Rendering Beyond the Lambertian-World Assumption》进行比较,实验结果如下图所示。前两列是输入图像与本文方法使用估计参数恢复的结果,可以看出物体的材质可以被真实还原,透明物体的不同粗糙度参数可以被准确估计;后三列是插入物体的融合图像,这些图像分别由真实参数、本文方法和对比方法获得的参数生成,可以看出本文方法获得的融合结果在视觉上与真实参数生成的融合结果几乎没有差别,而对比方法需要透明物体产生焦散来估计折射率。

与现有算法对比结果

为了更客观地评价估计结果准确性,不同场景下透明物体的折射率和粗糙度参数如下表所示,可以看出在Scene1和Scene2中,本文方法估计结果与真实值非常接近,Scene3和Scene4中透明物体的几何模型更加复杂,估计值与真实值之间存在一定偏差,但是从上图可以看出,插入虚拟物体的效果并没有受到影响,而对比方法不能处理透明物体的粗糙度,同时本文算法在折射率的估计中有更高的准确率。

不同场景折射率和粗糙度对比

输入图像和渲染图像之间的像素误差如下表所示,可以看出本文方法显著提高了恢复效果。

不同场景像素误差对比

本文方法还可以处理透明物体的颜色衰减,下图展示了彩色透明物体的估计结果。

彩色透明物体结果展示,(a)和(c)为输入图像,(b)和(d)是恢复图像

真实数据实验

真实场景由RGB-D相机捕捉,使用与现有算法类似的方法创建几何场景模型,由三角形网格表示。真实光源与估计光源之间的平均误差角为

9.6^{\circ} \pm 1.8^{\circ}

。将虚拟物体插入真实场景需要在增强现实中使用差分渲染技术,对场景进行没有/有虚拟物体两次渲染,并为了完成融合图像,将两次渲染之间的差异进一步添加到图像中。真实场景测试结果如下图所示。

真实场景中透明物体融合结果比较,从左到右依次为:输入图像、插入真实物体的ground truth图像,本文方法得到的结果和两种对比方法得到的结果。绿色箭头指向的物体是插入的真实物体,红色箭头指向的物体是插入的虚拟物体

总结与展望

本文解决了在增强现实的透明物体周围插入虚拟物体的问题,首先联合估计不透明物体的照明和材料,得到光照参数后对透明物体进行联合估计,保证透明材料估计的准确性。本文方法可以用于在具有复杂透明材料真实物体的增强现实系统中获得更好的融合效果。

本文算法对于实时AR应用方法存在一些局限性,对于静态的AR交互场景,由于光照和材质的迭代优化步骤会影响实时性,本文方法需要在交互操作之前提前计算光照和材质,对于动态增强显示交互场景可能无法满足实时性。

未来作者考虑将这种方法应用到增强现实系统中,将进一步研究如何尽可能减少算法计算时间。例如,可以使用更快的透明物体重建算法进行场景重建;对于材料和光照优化部分由于采样路径数的限制,需要大量的计算时间,未来可以考虑在低采样路径数下的高质量图像渲染算法。同时作者希望拓展该工作以完成透明物体几何结构和材质的联合优化,从而解决视觉外科算法对凹面物体重见效果不理想的问题。

附上演讲视频:

http://mpvideo.qpic.cn/0b2efmadgaaa44anu3j3dfrvak6dgmvqamya.f10004.mp4?

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-10-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 媒矿工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 方法
    • 逆路径追踪
      • 不透明物体的光照和材质优化
        • 透明物体的光照和材质优化
          • 方差减少和正则化
          • 实验
            • 合成数据实验
              • 真实数据实验
              • 总结与展望
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档