贡献
- 论述说明体渲染积分和基于某一个点(零集)的SDF优化之间是存在gap的。进而给出建议,表示需要直接监督SDF网络,从而提升神经隐式表面的学习;
- 基于理论分析,可以直接定位到SDF网络的零集合,并且应用多视图几何一致性来显式地监督SDF网络的训练。这样做的好处是,可以使得SDF专注于优化真正的表面;
- 效果:
号称是能够在复杂的细物体以及大型的平滑区域上都获得好效果。论文中给出的定性与定量结果有:
方法
给定某一个目标物体有位姿的多视图影像,Geo-Neus可以实现没有mask监督的表面重建。在体渲染的过程中,目标是直接优化SDF。
在这一节中,首先分析了颜色渲染的内在偏差,这种内在偏差会导致渲染颜色和内在几何之间的不一致性。
然后,将引入显式的SDF优化,实现几何一致性。
理论分析:有偏的颜色渲染
所谓颜色渲染中的有偏是指,物体表面的真实颜色和渲染颜色之间的有偏性。
对于一个不透明的固体 Ω ∈ R 3 \Omega \in \mathbb{R}^{3} Ω∈R3而言, 其不透明度可以由一个指示函数 O ( p ) \mathcal{O}(p) O(p)来进行表达:
O ( p ) = { 1 , p ∈ Ω 0 , p ∉ Ω \mathcal{O}(p)=\left\{\begin{array}{l} 1, p \in \Omega \\ 0, p \notin \Omega \end{array}\right. O(p)={1,p∈Ω0,p∈/Ω
我们不妨设 c c c为物体与光线相交处的颜色, C C C为影像上的颜色,设 o o o为相机位置,则有:
C
(
o
,
v
)
=
c
(
o
+
t
∗
v
)
C(\boldsymbol{o}, \boldsymbol{v})=c\left(\boldsymbol{o}+t^{*} \boldsymbol{v}\right)
C(o,v)=c(o+t∗v)
其中,
t
∗
=
argmin
{
t
∣
o
+
t
v
=
p
,
p
∈
∂
Ω
,
t
∈
(
0
,
∞
)
}
t^{*}=\operatorname{argmin}\{t \mid \boldsymbol{o}+t \boldsymbol{v}=\boldsymbol{p}, \boldsymbol{p} \in \partial \Omega, t \in(0, \infty)\}
t∗=argmin{t∣o+tv=p,p∈∂Ω,t∈(0,∞)},
∂
Ω
\partial \Omega
∂Ω表示几何表面。
现在,再用sdf来表示物体表面,有:
∂ Ω = { p ∣ s d f ( p ) = 0 } \partial \Omega=\{p \mid s d f(p)=0\} ∂Ω={p∣sdf(p)=0}
对于神经体渲染而言,我们往往通过MLP网络
F
Θ
F_{\Theta}
FΘ来推理得到sdf,通过另一个MLP网络
G
Φ
G_{\Phi}
GΦ来得到颜色场
c
^
\hat{c}
c^,可以用数学表示为:
s
d
^
f
(
p
)
=
F
Θ
(
p
)
c
^
(
o
,
v
,
t
)
=
G
Φ
(
o
,
v
,
t
)
.
\begin{array}{c} s \hat{d} f(p)=F_{\Theta}(p) \\ \hat{c}(\boldsymbol{o}, \boldsymbol{v}, t)=G_{\Phi}(\boldsymbol{o}, v, t) . \end{array}
sd^f(p)=FΘ(p)c^(o,v,t)=GΦ(o,v,t).
同时,影像上的颜色也可以以这种形式进行表达:
C
^
=
∫
0
+
∞
w
(
t
)
c
^
(
t
)
d
t
\hat{C}=\int_{0}^{+\infty} w(t) \hat{c}(t) d t
C^=∫0+∞w(t)c^(t)dt
写成离散的形式,有:
C
^
=
∑
i
=
1
n
w
(
t
i
)
c
^
(
t
i
)
\hat{C}=\sum_{i=1}^n w\left(t_i\right) \hat{c}\left(t_i\right)
C^=i=1∑nw(ti)c^(ti)
对于新视图合成任务来说,我们的目标是只要使得合成视图的颜色与目标颜色一致就可以了,但是,在表面重建任务中,我们更关心的是物体表面的几何,而不是它的颜色,因此,我们有:
C
=
∑
i
=
1
j
−
1
w
(
t
i
)
c
^
(
t
i
)
+
w
(
t
j
)
c
^
(
t
∗
^
)
+
w
(
t
j
)
(
c
^
(
t
j
)
−
c
^
(
t
∗
^
)
)
+
∑
i
=
j
+
1
n
w
(
t
i
)
c
^
(
t
i
)
=
w
(
t
j
)
c
^
(
t
∗
^
)
+
ε
sample
+
∑
i
=
1
i
≠
j
n
w
(
t
i
)
c
^
(
t
i
)
=
w
(
t
j
)
c
^
(
t
^
∗
)
+
ε
sample
+
ε
weight
,
\begin{aligned} C &=\sum_{i=1}^{j-1} w\left(t_i\right) \hat{c}\left(t_i\right)+w\left(t_j\right) \hat{c}\left(\hat{t^*}\right)+w\left(t_j\right)\left(\hat{c}\left(t_j\right)-\hat{c}\left(\hat{t^*}\right)\right)+\sum_{i=j+1}^n w\left(t_i\right) \hat{c}\left(t_i\right) \\ &=w\left(t_j\right) \hat{c}\left(\hat{t^*}\right)+\varepsilon_{\text {sample }}+\sum_{\substack{i=1 \\ i \neq j}}^n w\left(t_i\right) \hat{c}\left(t_i\right) \\ &=w\left(t_j\right) \hat{c}\left(\hat{t}^*\right)+\varepsilon_{\text {sample }}+\varepsilon_{\text {weight }}, \end{aligned}
C=i=1∑j−1w(ti)c^(ti)+w(tj)c^(t∗^)+w(tj)(c^(tj)−c^(t∗^))+i=j+1∑nw(ti)c^(ti)=w(tj)c^(t∗^)+εsample +i=1i=j∑nw(ti)c^(ti)=w(tj)c^(t^∗)+εsample +εweight ,
其中,
s
d
f
^
(
t
∗
^
)
=
0
\hat{sdf}(\hat{t^*}) = 0
sdf^(t∗^)=0,
t
j
t_j
tj表示距离
t
∗
^
\hat{t^*}
t∗^最近的采样点
t
j
t_j
tj,
ε
s
a
m
p
l
e
\varepsilon_{sample}
εsample表示由于采样操作所导致的偏差,而
ε
w
e
i
g
h
t
\varepsilon_{weight}
εweight表示由体渲染加权所导致的偏差。
进一步地,我们将上式改写为:
此时,可以得到物体表面颜色和估计表面颜色之间的差别为:
其相对的偏差为:
SDF网络的显式监督
已知,我们有一些确切正确的三维点是可以利用的,那么有:
遮挡处理
我们的目标重建物体是不透明物体,物体的部分对于特定的相机视角来说是不可见的。一次你,对于每一个视角来说,可能只有有限的稀疏点是可见的。
对于某一张影像
I
i
I_i
Ii,设其相机位置为
o
i
o_i
oi,其可见点集
P
I
P_I
PI理应与
I
i
I_i
Ii中的特征点
X
i
X_i
Xi存在一致性,即:
视角感知的SDF损失
稀疏点往往位于纹理丰富、几何复杂的区域。这使得网络优化可以更好的对复杂几何区域进行合适的处理。
带有多视约束的几何一致性监督
对于表面的某一个小部分
s
s
s而言,其在影像上的投影是一小部分的像素patch
q
q
q。自然,不同影像上对应表面
s
s
s的图像块理应是几何一致的(除去遮挡区域)。
为了简便起见,我们直接使用参考影像
I
r
I_r
Ir的相机坐标系来表示
s
s
s的平面方程,有:
此时,参考影像中图像块的某一个影像点 x x x就可以通过单应矩阵 H \mathbf{H} H与其他影像中对应图像块的对应点 x ′ x' x′联系起来:
为了集中关注几何信息,将彩色图像变换为灰度图像。
遮挡感知的隐式表面抓取
首先要找到隐式表面:
就需要先找到使得sdf变号的点,即:
根据这些点,我们可以内插出表面点,为:
考虑到遮挡问题,我们取真正的表面
t
t
t为:
这样做的好处有,
- 使得点尽可能多视图一致;
- 监督过程与颜色渲染的过程尽可能一致。
几何一致性损失
使用NCC对光度一致性进行评估,有:
损失函数
总体的损失函数为:
第一项和第二项都是老生常谈,不多做解释。
在实验中,三个系数的数值为: