文章目录
摘要
提出一种从阴影中恢复深度信息的方法。
在均匀反射率和郎伯模型的假设下,提出一种估计光照方向和表面反照率的方法。对于所有的局部估计值取平均,得到光源的方位角;光源的高度和表面反照率从图像的统计知识?可以得到。在表面光滑的约束下,利用估计的反射图参数,计算表面的形状;其中表面光滑约束即强制重建后的亮度梯度和输入图像的亮度梯度相近。
1.引言
Shape from Shading 是从2维亮度图片中恢复三维形状的算法。在计算机视觉中,SFS算法首先将图像亮度模型作为表面几何的函数,然后利用求得的图像模型重建表面,要求重建后的表面生成的图片和原始图片越接近越好。
本文使用了一种最常见的Lambertian 成像模型
其中
η
\eta
η 是复合反照率,包括关照强度和表面反射等因素。对于一个均匀的照明,如果表面是关照均匀的,
η
\eta
η是一个常数。
N
⃗
=
(
−
p
,
−
q
,
−
1
)
/
1
+
p
2
+
q
2
\vec N=(-p,-q,-1)/ \sqrt{1+p^2+q^2}
N=(−p,−q,−1)/1+p2+q2是
(
x
,
y
,
z
(
x
,
y
)
)
(x,y,z(x,y))
(x,y,z(x,y))点的表面法向量。
L
⃗
=
(
c
o
s
τ
s
i
n
γ
,
s
i
n
τ
s
i
n
γ
,
c
o
s
γ
)
\vec L=(cos\tau sin\gamma,sin\tau sin\gamma,cos\gamma)
L=(cosτsinγ,sinτsinγ,cosγ)是光源方向的单位向量,其中
τ
和
γ
\tau 和\gamma
τ和γ分别是偏角和倾角。对于平行的入射光,
L
⃗
\vec L
L是一个固定值。
σ
0
\sigma_0
σ0是由于背景光照、数字校准等产生的亮度偏差。现有的估计
(
τ
,
γ
,
η
)
(\tau,\gamma,\eta)
(τ,γ,η)的方法,对于复杂的场景或者当倾角
γ
\gamma
γ较大时都不太适用,原因是这些算法的表面模型都不够准确并且物体的阴影没有考虑在内。在本文中,我们提出了一种新的反射图参数估计方法。在该方法中,
τ
\tau
τ通过局部估计的平均得到,
γ
和
η
\gamma和\eta
γ和η从图像统计模型获得,同时,物体的阴影问题也得到了解决。
求解SFS问题的一般方法转化为受约束的框架进行优化,其中一种典型的代价函数如下:
其中第二项是正则项,经常用于确保迭代过程的收敛,该项确保的重建后的表面是一个光滑表面;尽管可以确保最小化过程,但容易边界过平滑,解决这个问题的方法是使用自适应拉格朗日乘子?另一种方法是随着迭代的进行,逐渐减小权重
λ
\lambda
λ。
在这篇文章中,我们引入了一个新的代价函数,它没有常用的二次正则化项。相反,我们强迫重建图像的梯度接近输入图像的梯度。利用变分法和反射图的线性近似,提出了一种同时更新斜率和高度图的迭代方案。
文章的剩余部分安排如下:第二部分讨论我们估计反射图参数的方法;第三部分介绍了SFS算法;第四部分是实验结果;第五部分总结
2. 参数估计
2.1成像模型
表面梯度表示为:
N
⃗
=
(
c
o
s
α
s
i
n
β
,
s
i
n
α
s
i
n
β
,
c
o
s
β
)
(
3
)
\vec N=(cos\alpha sin\beta,sin\alpha sin\beta,cos\beta) \qquad (3)
N=(cosαsinβ,sinαsinβ,cosβ)(3)
其中
α
=
α
(
x
,
y
)
和
β
=
β
(
x
,
y
)
\alpha= \alpha(x,y)和\beta=\beta(x,y)
α=α(x,y)和β=β(x,y)分别是表面法向在
(
x
,
y
z
(
x
,
y
)
)
(x,yz(x,y))
(x,yz(x,y))偏角和倾角
将(3)代入(1)后,反射图可以重新表示为得到:
2.2 τ \tau τ的估计
假设对于任意点 ( x 0 , y 0 , z ( x 0 , y 0 ) ) (x_0,y_0,z(x_0,y_0)) (x0,y0,z(x0,y0)),它的邻域可以近似为球面片
其中
(
a
(
x
0
,
y
0
)
,
b
(
x
0
,
y
0
)
,
c
(
x
0
,
y
0
)
(a(x_0,y_0),b(x_0,y_0),c(x_0,y_0)
(a(x0,y0),b(x0,y0),c(x0,y0)是球的中心,
r
(
x
0
,
y
0
)
r(x_0,y_0)
r(x0,y0)是球的半径。对于沿
s
⃗
=
(
δ
x
,
δ
y
)
\vec s=(\delta x,\delta y)
s=(δx,δy),
(
α
,
β
)
(\alpha,\beta)
(α,β)的相应增量为
(
δ
α
s
,
δ
β
s
)
(\delta \alpha_s,\delta \beta_s)
(δαs,δβs),并且保持以下关系:
使用(6)到(8),可以得到(4)对于
(
δ
α
s
,
δ
β
s
)
(\delta \alpha_s,\delta \beta_s)
(δαs,δβs)的增量形式:
当
s
⃗
\vec s
s朝向不同的方向时,有:
d
I
⃗
=
B
X
⃗
d \vec I=B\vec X
dI=BX
其中:
N
N
N是
s
⃗
\vec s
s的测量方向的数量,
x
ˉ
L
和
y
ˉ
L
\bar x_L 和 \bar y_L
xˉL和yˉL分别是x和y方向的局部估计值
X
⃗
\vec X
X可以表示为
可以证明:
光源方位角可以估计为:
2.3估计 γ 和 η \gamma 和 \eta γ和η
使用
α
和
β
的
统
计
特
性
估
计
γ
和
η
\alpha 和\beta的统计特性估计\gamma和\eta
α和β的统计特性估计γ和η。对于一般场景,
α
\alpha
α的取值范围是
[
0
,
2
π
)
[0,2\pi)
[0,2π)。关于
α
\alpha
α的分布可以假设为:
p
α
=
1
2
π
p_{\alpha}=\frac{1}{2\pi}
pα=2π1
另一方面,对于
β
\beta
β的分布,应考虑自遮挡和透视缩短效应的影响。在三维空间中,一般的表面的倾角
β
\beta
β范围为0到
π
\pi
π;但是由于自遮挡,只有面的相机的那部分表面才可见,所以
β
\beta
β的取值范围是
[
0
,
π
/
2
]
[0,\pi /2]
[0,π/2]。考虑到投影效应后,
β
\beta
β在图像平面的分布可以表示为:
p
β
=
c
o
s
β
p_{\beta}=cos \beta
pβ=cosβ
对于一般图像,我们可以假设
α
\alpha
α和
β
\beta
β是独立分布的。表面法向方向的统计模型可以表示为:
p
α
β
=
p
α
⋅
p
β
=
c
o
s
β
2
π
(
12
)
p_{\alpha \beta}=p_\alpha \cdot p_\beta =\frac{cos \beta}{2 \pi} \qquad (12)
pαβ=pα⋅pβ=2πcosβ(12)
利用(12)我们可以得到图像亮度的统计分量。在有阴影的地区要特别小心。这里我们只考虑自阴影的情况对于一个像素,如果入射角大于
π
/
2
\pi /2
π/2,像素将不会被照亮,其亮度为零。所以实际的图像强度是
The first two moments of image intensities are
对应的曲线
是一个椭圆,由于对称性可知,
I
ˉ
和
I
2
ˉ
\bar I和 \bar{I^2}
Iˉ和I2ˉ可以表示为
γ
和
η
\gamma 和\eta
γ和η的函数:
用一种数值的方法计算
f
1
(
γ
)
,
f
2
(
γ
)
和
f
3
(
γ
)
=
f
1
(
γ
)
/
f
2
(
γ
)
f_1(\gamma),f_2(\gamma)和f_3(\gamma)=f_1(\gamma)/ \sqrt{f_2(\gamma)}
f1(γ),f2(γ)和f3(γ)=f1(γ)/f2(γ) ,用
c
o
s
γ
cos \gamma
cosγ 的七阶多项式来对结果进行近似:
其中,系数为
由于
f
3
(
γ
)
f_3(\gamma)
f3(γ)是
γ
\gamma
γ 的单调递减函数,下式可以求得
γ
\gamma
γ的唯一解:
实际运用该方法时,当 I ˉ I 2 ˉ > f 3 ( 0 ) = 0.96191 \frac{\bar I}{\sqrt{\bar{I^2}}}>f_3(0)=0.96191 I2ˉIˉ>f3(0)=0.96191时,我们让 γ = 0 ∘ \gamma =0^\circ γ=0∘
3.Shape from Shading
3.1公式
一旦估计好了反射参数,一个可能的表面可以通过图片亮度信息求得。传统上,重建表面与观测图像一致的要求是通过辐照度方程来实现的:
似乎(13)已经使用了输入图像中包含的所有信息,但是在迭代SFS算法中,p和q在每个像素处分别更新。强制相邻像素之间没有关系。因此,在(2)中使用二次光滑项来强制重构曲面平滑连接。不幸的是,二次平滑项均匀地抑制了表面形状的变化,而不考虑亮度的变化。在图像强度变化很快的区域,相应的表面部分可能不平滑,应减少该区域的平滑度。这种自适应平滑的思想可以通过要求重建图像的强度梯度等于输入图像的梯度来有效地实现。通过合并这些约束,从阴影计算形状可以被表示为最小化的优化问题
其中
最后一项来自可积性约束,
μ
\mu
μ是一个权重因子。注意,其他文章中普遍使用的二次平滑项被去掉了。使用变分微积分,上述最小化问题可以等价为下面的欧拉公式:
从(15)中,用一阶项的泰勒级数展开逼近反射图R(p,q),经过一些代数运算,我们得到
3.2 算法的实现
下面给出SFS算法的分层实现
第一步:估计反射图参数
(
τ
,
γ
,
η
,
σ
0
)
(\tau, \gamma, \eta, \sigma_0)
(τ,γ,η,σ0)
第二步:正规化输入图像:
第三步: 更新当前重建的形状
第四步:如果当前图片已经是最高的分辨率,结束算法;否则将当前层的结果插入到下一层更高的图像分辨率,执行第三步。
4.实验结果
为了说明我们估计反射图方法的可用性,我们首先在一些合成图上做了实验。测试的合成图像包括:(1)球体,(2)长轴(平行于x轴)与短轴的比值为2的椭圆,(3)具有附加高斯噪声的球体,(4)由激光测距数据合成的莫扎特雕像图像。对于每种情况,使用
η
=
200
,
σ
0
=
0
\eta =200, \sigma _0=0
η=200,σ0=0和
τ
和
γ
\tau 和 \gamma
τ和γ的各种组合生成测试图像。Pentland的方法以及Lee和Rosenfeld的方法被实现,并在相同的合成图像集上进行了测试。基于仿真结果我们得出结论:与其他方法相比,用我们的方法对于椭圆和莫扎特图像的
τ
\tau
τ的估计更准确,对噪声和边界干扰更为鲁棒。当
真实
γ
\gamma
γ相对较大时,我们的
γ
和
η
\gamma 和\eta
γ和η估计对于莫扎特图像更准确。对于测试的合成图像,我们的方法是稳定的,并对于所有情况给出了相当好的结果。这些估计对于SFS的应用是足够好的。
接着我们在一些真实图像中进行了测试,测试结果见表1。其中"r",“g”,"b"和"w"分别代表红色,绿色,蓝色以及黑/白。我们发现用我们的方法估计的
τ
和
γ
\tau和\gamma
τ和γ是从同一图像的不同色带、不同分辨率的图像、大场景的子图像和立体图像对得到的结果之间的一致性最好的。在表1给出的结果中,我们通过找到图像强度阵列的最小值来检测强度偏差
σ
0
\sigma _0
σ0,并通过减去该偏差来调整图像强度。因为对于大多数图像都有阴影像素,因此会有有偏差值,所以这种简单的方法非常有效。
图1和图2显示了真实图像上的SFS示例。在这些实验中,我们让
μ
=
1
\mu =1
μ=1,并且最高分辨率层的
N
m
a
x
N_{max}
Nmax为500。我们观察到,
μ
和
N
m
a
x
\mu和 N_{max}
μ和Nmax值越高,得到的结果越一致。用数值方法计算反射图的偏导数
R
p
和
R
q
R_p和R_q
Rp和Rq
图1(a)展示了输入的面部图片。我们的算法估计的反射图参数为
(
τ
=
7.7
4
∘
,
γ
=
59.5
2
∘
,
η
=
192.01
,
σ
∘
=
3
)
(\tau =7.74^{\circ},\gamma =59.52^{\circ}, \eta=192.01, \sigma ^{\circ}=3)
(τ=7.74∘,γ=59.52∘,η=192.01,σ∘=3),图1(b)是SFS获得的高度图图1(c)显示了1(b)的三维图。
图2(a)展示了输入的甜椒图。我们的算法估计的反射图参数为
(
τ
=
15.9
2
∘
,
γ
=
58.2
0
∘
,
η
=
255.96
,
σ
∘
=
0
)
(\tau =15.92^{\circ},\gamma =58.20^{\circ}, \eta=255.96, \sigma ^{\circ}=0)
(τ=15.92∘,γ=58.20∘,η=255.96,σ∘=0),图2(b)是SFS获得的高度图图2(c)显示了2(b)的三维图。
我们在超过10个真实图像上测试了我们的SFS算法,并使用不同的光源方向检查SFS结果。由于空间限制,仅给出了两个实例,并且,不同光源方向的SFS 算法生成的图片的比较这里省略了。
5. 总结
(SFS)的算法步骤应包括估计光源方向、表面反照率和使用估计的反射图参数重建表面形状。在本文中,我们提出了一种在朗伯成像模型中估算反射图参数的方法。测试
无论是合成图像还是真实图像,我们的估计器都比现有的方法更加健壮和准确。我们还介绍了一种新的SFS算法,通过强制重建后强度的梯度和原图像梯度接近,实现平滑度假设。在这个公式中,删掉了通常使用的二次平滑项,并且斜率和高度图
同时更新。提出了SFS算法的层级化实现。最后给出了实际图像的处理结果。