【paper reading】Multiview Shape and Reflectance from Natural Illumination
这篇文章是CVPR’ 14上的,虽然有点老,但是它的做法很有借鉴性,对于基于光度信息进行重建方法怎么融合多个视角下的信息生成更加精确的法向量很有意思。
1.简介
通过RGB图像的光度反射信息恢复物体的表面一直是一个不断在研究的方向,很多方法都试图构建反射模型来处理这个问题,从最初的朗伯体和平行光假设到Phone和点光源。这些方法严重依赖于反射模型的精确性,随着反射模型越来越复杂,优化也越来越困难。而在本论文的方法中并不致力于提出精细的反射模型,而是将问题通过基于概率的几何估计方法进行解决。在每个观察方向下物体表面点显现出来的颜色都提供了部分且不可靠的法向量方向信息,论文中通过将每个观察方向中的这些法向线索统一起来以重建物体表面。整个方法对于物体材质以及光源的要求能适应各种真实环境。
在图像中,每个像素的外观都提供了法向取向的分布,并与物体所处的照明环境和物体表面的反射特性有关。反射场景中独特的部件(如太阳)的那些像素会提供对法向很强的约束,而反射独特性较少的部件的那些像素提供的约束会弱一些。但是将多个观察方向上的约束进行整合时,这种弱约束也能够变强。论文中的整体方法是通过固定一个值来优化另一个值来共同优化反射和形状。为了模拟反射率,论文使用的是Directional Statistics BRDF模型,而形状则使用视觉外壳作为起始值。
2. 贝叶斯形状与反射估计
物体在图像上的RGB值实际上取决于照明、观察方向、物体形状以及物体表面的反射属性。在论文中假设照明是已知但不受控制的自然照明
L
L
L,物体对象具有各向同性的反射并且已经从背景中分割出来。另外还假设图像集
I
\mathcal I
I中每个视角下的相机位姿已经被标定出来了。
论文的主要贡献是提出了用于估计形状
G
G
G和反射
Ψ
\Psi
Ψ的概率估计框架。作者将其表示为一个最大后验估计问题,即
p
(
G
,
Ψ
∣
I
)
∝
p
(
I
∣
G
,
Ψ
)
p
(
G
)
p
(
Ψ
)
p(G,\Psi|\mathcal I)\propto p(\mathcal I|G,\Psi)p(G)p(\Psi)
p(G,Ψ∣I)∝p(I∣G,Ψ)p(G)p(Ψ)
其中
p
(
I
∣
G
,
Ψ
)
p(\mathcal I|G,\Psi)
p(I∣G,Ψ)表示形状与反射对观察图像
I
\mathcal I
I的契合度。而
p
(
G
)
p(G)
p(G)和
p
(
Ψ
)
p(\Psi)
p(Ψ)分别是形状和反射的先验约束条件。
2.1 固定反射,估计形状
2.1.1 每张图像中对法向的约束
对于图像中的单个像素点
I
x
I_x
Ix,例如上图c中的橙色圈住的点,它的RGB值是由反射参数
Ψ
\Psi
Ψ,自然照明
L
L
L和表面点的法向方向
N
x
N_x
Nx决定的,同时还受到一定的高斯噪声的影响:
I
x
=
E
(
Ψ
,
L
,
N
x
)
+
N
(
0
,
σ
2
)
I_x=E(\Psi, L, N_x)+\mathcal N(0,\sigma^2)
Ix=E(Ψ,L,Nx)+N(0,σ2)
在论文中,作者使用对数强度来保持对细节和高光的敏感度:
p
(
I
x
∣
N
x
)
=
N
(
ln
(
I
x
)
∣
ln
(
E
x
)
,
σ
2
)
p(I_x|N_x)=\mathcal N(\ln(I_x)|\ln(E_x),\sigma^2)
p(Ix∣Nx)=N(ln(Ix)∣ln(Ex),σ2)
在其他因素都已知并且固定了反射属性后,表面法向量成了唯一的自由变量,它确定着RGB值的大小,如图1b所示物体的反射图其实已经确定了(图中只显示了面向摄像机的半球面的反射图)。而反过来RGB值也对表面法向有一个约束即像素点的RGB值与反射图中的点的RGB值越接近,那它们法向方向一致的概率也就越大。图1d对三个点法向的概率分布进行了可视化,可以看到由于兰色点反射了场景中独特性很强的灯光,它的概率分布很集中,即RGB值对法向方向的约束很强。其他两个点并没有明确的最大值。
2.1.2 整合多个视角下的约束
每次观察都作为对可能的法向分布提供了单独约束。 然而,为了比较来自不同图像的观察,我们必须首先提供将来自不同图像的像素链接到物体表面上的相同物理位置的手段。
如图2中所示,由黑色点线段连接成的是物体的初始形状,即视觉外壳。如果点在视觉外壳上,如点p,我们就能将其重投影到原始图像中,然后将单独观察的似然密度的乘积作为该点p的似然密度:
p
(
I
p
∣
N
p
)
=
∏
m
∈
Ω
p
p
(
I
p
m
∣
N
p
)
p(\mathcal I_p|N_p)=\prod_{m\in \Omega_p}p(I_p^m|N_p)
p(Ip∣Np)=m∈Ωp∏p(Ipm∣Np)
其中
I
p
m
I_p^m
Ipm是点p在图像m中的投影像素,
Ω
p
\Omega_p
Ωp是可以看到点p的图像集合。
对于处于原始形状上的点p,在图像
I
1
I^1
I1和
I
4
I^4
I4上重投影后得到的那些像素确实对应着同一个三维点。因此这两个观测值的法向分布能很好的重叠在一起,即如图2a中所示,有一个明显的小的最大值区域。而对于未处于原始形状上的点q,
I
2
I^2
I2和
I
3
I^3
I3两个图像上的重投影像素实际上对应着不同的三维点,因此他们的法向分布不太可能重叠,即如图2c中一样,最后没有明显的最大值区域。
2.1.3 形状重建
现在已经知道了如何整合多个视图下的信息得到每个像素点的法向,我们还需要通过这些法向信息重新生成三维网格模型。
对于原始三维模型中的每个面片
f
∈
G
f\in G
f∈G,在能看见面片f的图像m中,在面片上取J个均匀分布的样本点,对它们的法向方向求均值来得到面片新的法向方向:
p
(
I
f
m
∣
N
f
)
=
c
∑
j
=
1
J
ω
j
⋅
p
(
I
f
,
j
m
∣
N
f
)
p(I_f^m|N_f)=c\sum_{j=1}^J\omega_j\cdot p(I_{f,j}^m|N_f)
p(Ifm∣Nf)=cj=1∑Jωj⋅p(If,jm∣Nf)
其中的
ω
j
\omega_j
ωj是每个采样点的权重,越靠近面片重心的点权重越高,c是为了确保最终结果的积分是1。
最终面片法向的似然是每个观察下分布的乘积:
p
(
I
∣
N
f
)
=
∏
m
∈
Ω
f
p
(
I
f
m
∣
N
f
)
p(\mathcal I|N_f)=\prod_{m\in \Omega_f}p(I_f^m|N_f)
p(I∣Nf)=m∈Ωf∏p(Ifm∣Nf)
而整体形状的似然则是每个面片似然概率的乘积:
p
(
I
∣
G
)
=
∏
f
∈
G
p
(
I
∣
N
f
)
p(\mathcal I|G)=\prod_{f\in G}p(\mathcal I|N_f)
p(I∣G)=f∈G∏p(I∣Nf)
除此之外,在第2节中还提到对于形状
G
G
G还有一些先验约束
p
(
G
)
p(G)
p(G)。在这里作者对形状设置了三个先验约束,
p
(
G
)
=
p
c
(
G
)
p
a
(
G
)
p
e
(
G
)
p(G)=p_c(G)p_a(G)p_e(G)
p(G)=pc(G)pa(G)pe(G)。第一个先验约束是基于物体表面平滑的假设,为了将正确预测的区域的形状传播到原理实际表面的区域(如图2的q点),要求物体表面的局部曲率尽量保持不变,可以表示为每个小面片的法线方向与一定距离之外的面片的法线方向余弦距离的方差。
p
c
(
G
)
∝
∏
f
∈
G
exp
{
β
c
V
a
r
[
a
r
c
c
o
s
(
N
f
⋅
N
f
,
n
)
]
}
p_c(G)\propto \prod_{f\in G}\exp\{\beta_c \mathrm {Var}[\mathrm {arccos(N_f\cdot N_{f,n})}]\}
pc(G)∝f∈G∏exp{βcVar[arccos(Nf⋅Nf,n)]}
其中
β
c
\beta_c
βc控制着先验约束的强度。集合
{
N
f
,
n
}
\{N_{f,n}\}
{Nf,n}包含与面片f相距一定距离的面片,可以是共享一个点,也可以是共享一条边的面片,也可以扩展到后续环上的小平面。
其余两个先验约束是基于对网格三角形的隐性假设。通过比较面片面积
A
(
f
)
A(f)
A(f)与原始平均值
a
a
a和方差
σ
a
2
\sigma_a^2
σa2,先验约束
p
a
(
G
)
p_a(G)
pa(G)使得所有的三角面片尽量保持相同的面积大小:
p
a
(
G
)
=
∏
f
∈
G
N
(
A
(
f
)
∣
a
,
β
a
σ
a
2
)
p_a(G)=\prod_{f\in G}\mathcal N(A(f)|a,\beta_a\sigma_a^2)
pa(G)=f∈G∏N(A(f)∣a,βaσa2)
最后一个先验约束则是为了使得最终得到的网格模型中每个三角形都是接近等边的:
p
e
(
G
)
∝
∏
f
∈
G
e
x
p
{
β
e
V
a
r
[
f
e
]
}
p_e(G)\propto \prod_{f\in G}\mathrm {exp}\{\beta_e \mathrm{Var}[f_e]\}
pe(G)∝f∈G∏exp{βeVar[fe]}
其中
f
e
f_e
fe是面片f上的一条边e。
2.2 固定形状,估计反射
2.2.1 directional statistics BRDF模型
Directional Statistics Bidirectional Reflectance Distribution Function (DSBRF) 模型是一个数据驱动的反射模型来表示各向同性BRDF函数。辐照度的计算公式是
E
x
=
∫
ϱ
(
t
(
ω
i
,
ω
o
)
;
Ψ
)
L
(
ω
i
)
max
(
0
,
N
x
⋅
ω
i
)
d
ω
i
E_x=\int\varrho(t(\omega_i,\omega_o);\Psi)L(\omega_i)\max(0,N_x\cdot\omega_i)d\omega_i
Ex=∫ϱ(t(ωi,ωo);Ψ)L(ωi)max(0,Nx⋅ωi)dωi
t
(
ω
i
,
ω
o
)
t(\omega_i,\omega_o)
t(ωi,ωo)表示物体表面点对从
ω
i
\omega_i
ωi方向射入且从
ω
o
\omega_o
ωo方向射出的光线的反射率。L表示光源亮度,max项是为了应对法向背离光源方向时的情况。反射率函数
ϱ
\varrho
ϱ表示为各个方向上入射光线产生影响的总和:
ϱ
(
λ
)
(
θ
d
,
θ
h
;
κ
(
λ
)
,
γ
(
λ
)
)
=
∑
r
e
x
p
{
κ
(
r
,
λ
)
(
θ
d
)
cos
γ
(
r
,
λ
)
(
θ
d
)
(
θ
h
)
}
−
1
\varrho^{(\lambda)}(\theta_d,\theta_h;\kappa^{(\lambda)},\gamma^{(\lambda)})=\sum_{r}\mathrm{exp}\{\kappa^{(r,\lambda)}(\theta_d)\cos^{\gamma^{(r,\lambda)}(\theta_d)}(\theta_h) \}-1
ϱ(λ)(θd,θh;κ(λ),γ(λ))=r∑exp{κ(r,λ)(θd)cosγ(r,λ)(θd)(θh)}−1
κ
(
r
,
λ
)
(
θ
d
)
=
e
x
p
{
b
μ
(
θ
d
;
κ
,
r
,
λ
)
+
∑
i
ψ
i
b
i
(
θ
d
;
κ
,
r
,
λ
)
}
\kappa^{(r,\lambda)}(\theta_d)=\mathrm{exp}\{b_{\mu}(\theta_d;\kappa,r,\lambda)+\sum_i\psi_ib_i(\theta_d;\kappa,r,\lambda)\}
κ(r,λ)(θd)=exp{bμ(θd;κ,r,λ)+i∑ψibi(θd;κ,r,λ)}
γ
(
r
,
λ
)
(
θ
d
)
=
e
x
p
{
b
μ
(
θ
d
;
γ
,
r
,
λ
)
+
∑
i
ψ
i
b
i
(
θ
d
;
γ
,
r
,
λ
)
}
\gamma^{(r,\lambda)}(\theta_d)=\mathrm{exp}\{b_{\mu}(\theta_d;\gamma,r,\lambda)+\sum_i\psi_ib_i(\theta_d;\gamma,r,\lambda)\}
γ(r,λ)(θd)=exp{bμ(θd;γ,r,λ)+i∑ψibi(θd;γ,r,λ)}
b
μ
b_{\mu}
bμ是平均值,
b
i
b_i
bi是基函数,这些参数是通过FPCA计算出来的。(这个模型很复杂,原始论文我还没有看,这里没怎么搞懂,大意就是通过几个基函数的系数就能表示物体的反射属性)
2.2.2 反射估计
这里的似然函数和2.1节的类似:
p
(
I
∣
Ψ
)
=
∏
f
∈
G
∏
m
∈
Ω
f
N
(
ln
(
I
f
m
)
∣
ln
(
E
f
m
)
,
σ
2
)
p(\mathcal I|\Psi)=\prod_{f \in G}\prod_{m\in\Omega_f}\mathcal N(\ln(I_f^m)|\ln(E_f^m),\sigma^2)
p(I∣Ψ)=f∈G∏m∈Ωf∏N(ln(Ifm)∣ln(Efm),σ2)
其中
Ω
f
\Omega_f
Ωf是面片f出现的图像集,而
I
f
m
I_f^m
Ifm指的是图像m中面片f中心的外观,而
E
f
m
E_f^m
Efm指的是其预测的辐照度。
同样这里对物体反射属性也有先验,即物体的反射属性应尽量符合MERL数据集,即
p
(
Ψ
)
∼
N
(
0
,
β
Ψ
Σ
Ψ
)
p(\Psi)\sim \mathcal N(0,\beta_{\Psi}\Sigma_{\Psi})
p(Ψ)∼N(0,βΨΣΨ)
这里的
Σ
Ψ
\Sigma_{\Psi}
ΣΨ是从MERL数据集中计算出的协方差矩阵,
β
Ψ
\beta_{\Psi}
βΨ是用来控制先验约束的强度。
2.3 优化过程
整体的优化方案在计算高斯噪声方差 σ 2 \sigma^2 σ2和估计反射参数 Ψ \Psi Ψ和几何形状 G G G的最大后验估计之间交替。在这个三步优化框架中迭代直到收敛,通常大约6次迭代。对于初始的形状,使用的是视觉外壳(Visual Hull),然后进行泊松重建来进行三角化。
3.实验结果
3.1 合成数据
作者在5中真实的照明环境下使用7个MERL数据集中的BRDFs函数渲染了10个物体,
最终的几何误差和反射误差如下
其中注意到在反射误差方面,Alum-Bronze(A)和Nickel(N)这两种金属材质的误差尤其的高,但是相对来讲,塑料以及其他颜料材质能较好的处理。在几何误差方面,最后显示的误差是平均误差距离与物体大小尺度的比值,如物体是一个对角线1m的正方体,误差是1cm,那么几何误差就是1%。作为基准,最初的视觉外壳的平均几何误差为1.19%。
3.2 真实数据
为了定量评估在真实世界物体上方法的表现,作者自己拍摄了一个新的数据集,其中包含四个物体,这些物体在三个不同的室内和室外环境中使用三个不同高度的三脚架从多个角度(大约18个)成像。 数据集中不光包含高动态范围(HDR)图像,还有使用金属球从多个图像获取的HDR照明图,以及使用激光条纹测距仪获取并手动校正的Ground-Truth 3D模型。
对于每个结果,图示出了一个或两个新的视点渲染的结果。牛奶瓶和小马是在大厅内进行拍摄的,整体的照明主要来自顶部的自然光以及零零星星的一些灯光。对于牛奶瓶,它的形状简单,初始的视觉外壳就已经能很好的刻画物体形状,主要的挑战来自于牛奶瓶釉面的高镜面反射,初始的几何误差是0.92%,最后结果的几何误差是0.76%,降低了17%。而对于小马,初始的几何误差是1.66%,最终误差是1.20%,降低了28%。
第二个照明环境是在家中,这里主要的光源是窗户的自然光,但还有几个额外的灯光光源。对于海螺,它的表面有很多突起,引起了很多物体自己表面间的反射,并且由于这些突起使得原始的视觉外壳不能很好的描述物体,初始结果的几何误差是0.77%,最终的几何误差是0.73%,只下降了5%,但是可以注意到对于海螺的尖端,在RGB图像中可以看到有一些细小的一圈一圈的纹路,这些在使用激光扫描的结果中没有被很好的捕捉到,但是这个方法的最终结果却显现出了这些细节,这也是基于光度方法的威力所在。而对于小猪储钱罐,它的反射很强烈,并且形状基本是凸的而且形状简单,是比较理想的重建物体,并且自身没有什么颜色,因此也不会过滤环境照明中的颜色。它的初始几何误差是1.60%,最终的几何误差是0.81%,误差下降了一半。