这篇文章的核心idea主要是纹理细化,同时优化geometry,texures,camera pose,这方法是基于SfS和SVSH。
原文链接
Introducting
1.体积融合方法能够有效的减少传感器噪声的影响,但因此重建的表面更偏向平滑,缺少细节。
2.很多RGB-D重建框架只是简单地将深度像素的RGB值映射到几何图形上,在对应体素上加权平均,这也会导致表面模糊。
为了解决上述两个问题,于是有了两种独立的解决方法:
- 首先通过迭代求解位姿对齐,然后颜色平均,对于错误的几何对齐,通过非刚性变化来优化,最后也可以得到高质量的表面纹理。
- 基于阴影的细化技术,通过阴影约束来增强深度帧。这种技术一般是一个顺序管道,首先对齐RGB-D帧,然后融合RGB和depth到体积网格中,最后细化重建。但是这管道下,如果先前有错误,那么后面的纹理细化也会跟着出错。
在作者的工作中,结合这两种方向去解决上述两个问题,计算精确的表面几何,再重构纹理。作者的思路如下:
- 表面几何由SDF来表示,通过输入的深度信息,阴影,RGB来约束。
- 通过全局光度和几何一致性,矫正相机位姿和内参。
- 细化表面纹理。
- 空间变化的照明和表面反照率值受到RGB测量和表面几何的限制。
主要是为了参数化3D模型。
-
我们通过联合优化三维几何、表面材料(反照率)、摄像机姿态、摄像机内部(包括镜头畸变)以及使用球谐基函数精确的场景照明,重构了一个体符号距离函数。
-
不只是估计一个单一的全局场景照明,我们估计空间变化的球形谐波来检索准确的场景照明。
-
我们利用时间视图采样和过滤技术来减轻运动模糊的影响,从而有效地处理来自低成本消费级的数据RGB-D传感器设备
SfS旨在从单张RGB图像中提取3D结构,当光源和相机位置都是已知时,理论已经是很成熟了。因此阴影(我理解的阴影就亮度,灰度)和反射估计已经成为细化几何的重要上下文的线索。参考文献[20]使用SDF重建方法有两个缺点,第一,假设了一个单一的全局照明设置;第二优化是一个顺序管道,意味着位姿和表面颜色只进行一次优化。
在我们的方法中,系统的解决这些缺点通过联合优化策略,以及空间变化照明参数化。
Overview
- 通过输入带有初始位姿的RGB-D图像序列,首先估计一个SDF模型。为了减少运动模糊的试图的影响,根据模糊度量自动选择视图来建立颜色约束。
- 分层的SDF模型,RGB帧,使用金字塔分层优化。
- 在每次迭代的内部,通过将SDF体积分割成具有独立球形谐波(SH)参数的固定大小的子体积。在估计过程中联合求解所有SH参数,通过在给定体积中三线性插值获得子体积。
- 在框架的主阶段中,利用估计的光照来联合细化SDF的表面和反射率,图像位姿,内参。最后通过Marching Cubes来提取模型。
Signed Distance Field
每个体素包含SDF值 D ( v ) D(v) D(v),颜色 C ( v ) C(v) C(v),权重 W ( v ) W(v) W(v),反射率 a ( v ) a(v) a(v),优化后的SDF值 D ~ ( v ) \widetilde{D}(v) D (v)。使用加权平均融合 D ( v ) D(v) D(v), W ( v ) W(v) W(v),在融合完所有的RGB-D图像,用融合好的SDF模型 D D D,初始化一个优化的 D ~ \widetilde{D} D ,通过向前差分,直接计算每个体素的法向量。
Image Formation Model and Sampling
RGB-D Data && Camera Model 说明图像数据的一些符号定义,旋转平移的位姿参数,内参,投影模型。
Keyframe Selection 为了减少运动模糊的影响,使用参考文献[6]的模糊度测量来选择视图,具体的说,在连续 t K F t_{KF} tKF帧中选择最不模糊的帧进行处理,但这里,他又选择所有的帧。
Observations Sampling and Colorization 通过关键帧,重新计算等值面的体素的颜色值,首先判断体素是否在某个相机视野,最后这个体素的所有颜色和权重观测存放在 O v \mathcal{O}_v Ov中。然后通过权重对 O v \mathcal{O} _v Ov排序,只保留最好的观测,体素的颜色是这些观测的加权平均。
Lighting Estimation using Spatially-varying Spherical Harmonics
Lighting Model 为了表示场景的照明,对每个表面点的阴影参数化表示。通过体素的法向量,反照率,照明参数计算体素的阴影B。
B
(
v
)
=
a
(
v
)
∑
m
=
1
b
2
l
m
H
m
(
n
(
v
)
)
\mathbf{B}(\boldsymbol{v})=\mathbf{a}(\boldsymbol{v}) \sum_{m=1}^{b^{2}} l_{m} H_{m}(\mathbf{n}(\boldsymbol{v}))
B(v)=a(v)m=1∑b2lmHm(n(v))
Spherical Harmonics 为了估计体素的阴影B,使用b=3的SH基函数
H
m
H_m
Hm来参数化表示光照。然而一个单一的SH基不能如实地同时表示所有表面点的照明。
Subbolume Partitioning 为了解决一个单一SH基的缺点,我们扩展了传统的公式。将重建好的体积转换到一个固定大小的K个子体积中,每个子体积都分配一个SH基。
Spatially-varying Spherical Harmonics 我们现在有
K
×
b
2
K × b^2
K×b2个未知参数,这在场景照明模型中提供了更多的可表达性,直觉上,我们试图用不同的局部光照模型来近似复杂的全局光照。通过最小化以下目标函数来估计子体积的照明
E
lighting
(
ℓ
1
,
…
,
ℓ
K
)
=
E
appearance
+
λ
diffuse
E
diffuse
E_{\text {lighting }}\left(\ell_{1}, \ldots, \ell_{K}\right)=E_{\text {appearance }}+\lambda_{\text {diffuse }} E_{\text {diffuse }}
Elighting (ℓ1,…,ℓK)=Eappearance +λdiffuse Ediffuse
其中,
E
appearance
=
∑
v
∈
D
~
0
(
B
(
v
)
−
I
(
v
)
)
2
E_{\text {appearance }}=\sum_{\boldsymbol{v} \in \tilde{\mathbf{D}}_{0}}(\mathbf{B}(\boldsymbol{v})-\mathbf{I}(\boldsymbol{v}))^{2}
Eappearance =v∈D~0∑(B(v)−I(v))2
E d i f f u s e = ∑ s ∈ S ∑ r ∈ N s ( ℓ s − ℓ r ) 2 E_{\mathrm{diffuse}}=\sum_{s \in \mathcal{S}} \sum_{r \in \mathcal{N}_{s}}\left(\ell_{s}-\ell_{r}\right)^{2} Ediffuse=s∈S∑r∈Ns∑(ℓs−ℓr)2
Joint Optimization of Geometry, Albedo, and Image Formation Model
同时优化相机位姿,体素sdf值,反照率,相机内参。
E
scene
(
X
)
=
∑
v
∈
D
~
0
λ
g
E
g
+
λ
v
E
v
+
λ
s
E
s
+
λ
a
E
a
E_{\text {scene }}(\mathcal{X})=\sum_{\boldsymbol{v} \in \tilde{\mathbf{D}}_{0}} \lambda_{g} E_{g}+\lambda_{v} E_{v}+\lambda_{s} E_{s}+\lambda_{a} E_{a}
Escene (X)=v∈D~0∑λgEg+λvEv+λsEs+λaEa
其中,
E
g
E_g
Eg为体素v的当前亮度 与 体素v在各个观测中的亮度 的梯度差。
E
g
(
v
)
=
∑
I
i
∈
V
best
w
i
v
∥
∇
B
(
v
)
−
∇
I
i
(
π
(
v
i
)
)
∥
2
2
E_{g}(\boldsymbol{v})=\sum_{\mathcal{I}_{i} \in \mathcal{V}_{\text {best }}} w_{i}^{v}\left\|\nabla \mathbf{B}(\boldsymbol{v})-\nabla \mathcal{I}_{i}\left(\pi\left(v_{i}\right)\right)\right\|_{2}^{2}
Eg(v)=Ii∈Vbest ∑wiv∥∇B(v)−∇Ii(π(vi))∥22
E
v
(
v
)
E_v(v)
Ev(v)是拉普拉斯平滑项,正则化我们的符号距离域,增强了相邻体素之间的距离值的平滑性。
E
v
(
v
)
=
(
△
D
~
(
v
)
)
2
E_v(v) = (\bigtriangleup \widetilde{D}(v) )^2
Ev(v)=(△D
(v))2
E
s
(
v
)
E_s(v)
Es(v)是用来约束表面优化范围。
E
s
(
v
)
=
(
D
~
(
v
)
−
D
(
v
)
)
2
E_s(v) = (\widetilde{D}(v) - D(v))^2
Es(v)=(D
(v)−D(v))2
E
a
(
v
)
E_a(v)
Ea(v)是用来约束当前体素v与邻居体素v的颜色,反照率的平滑度。
E
a
(
v
)
=
∑
u
∈
N
v
ϕ
(
Γ
(
v
)
−
Γ
(
u
)
)
⋅
(
a
(
v
)
−
a
(
u
)
)
2
E_{a}(\boldsymbol{v})=\sum_{\boldsymbol{u} \in \mathcal{N}_{\boldsymbol{v}}} \phi(\boldsymbol{\Gamma}(\boldsymbol{v})-\boldsymbol{\Gamma}(\boldsymbol{u})) \cdot(\mathbf{a}(\boldsymbol{v})-\mathbf{a}(\boldsymbol{u}))^{2}
Ea(v)=u∈Nv∑ϕ(Γ(v)−Γ(u))⋅(a(v)−a(u))2