Shape Estimation in Natural Illumination

Shape Estimation in Natural Illumination

摘要

传统的单一光源和Lambertian反射的shape from shading 算法有一个明显的弊端,约束不足以指明局部方向,也就是需要自己增加额外的约束;而 Photometric stereo 算法作为sfs的变体,通过控制光源来增加额外的约束从而简化问题。

在本文中,我们证明许多自然光环境已经具有足够的可变性来约束局部形状。我们描述了一种新的优化方案,利用这种可变性从自然光照下漫反射物体的单个图像估计表面法线。我们在合成图像和真实图像上进行了实验。

引言

Shape from Shading和光度立体最明显的区别是:前者是单一光源,后者是多个光源。

Sfs在简单图像上表现良好,在复杂输入上表现不佳,原因就是歧义性的存在:不同的表面方向会生成相同的图像亮度。

Woodham发现通过改变连续图像之间的光源方向可以消除歧义,这种方法叫做光度立体。

实际上,自然光的颜色变化也可以看作是一种光度立体,我们应用这种技术来优化单一图像的表面法向估计。

我们的技术假设一个已知的反射图,这意味着在实践中,我们必须根据一个具有相同BRDF和相同照明度的球体来校准感兴趣的物体。在sfs算法中,光源假设是单一的并且来自一个已知的方向;在PS算法中,光源是设计好的并且受到控制的;而我们的方法使用的是自然光,其复杂且不可控。

2.相关工作

通常,sfs算法存在不唯一解,同一个图片可能会对应多个不同的表面。

我们的shape from shading 利用光源变化来减少歧义,从某种程度上看,也是一种光度立体的方法,唯一的不同是我们的方法使用的是自然光,而PS算法使用的是受控制的光。

我们使用简单的数学框架,展示了我们的方法可以从不可控的,标定的光源环境中的单一图片恢复物体的形状。

3.方法

将图像亮度和表面方向的关系表示成下面的亮度方程:

其中,有如下假设:远距离光源、空间不变反射、常量反射率、没有局部光照(例如投射阴影和内部反射)的影响和固定的观察点

非正式地,Lambertian反射函数在照明环境中充当低通滤波器,因此只有低频照明组件才有助于外观。

在这些假设下,对于Lambertian的阴影函数s可以表示为表面法向的二次函数:

注意,二次项和模型附加阴影有关,利用这个模型进行渲染的物体如图2(a)所示:

3.1 局部歧义

只考虑局部信息,问题可以标为下面误差函数的最小化问题:

一般的,光度立体的方法要考虑L个而不是一个光源的情况;数学上,阴影函数s可以表示为向量值函数:

在自然光环境下,(4)式中L的值为3,因为有三个颜色通道,自然光环境的变化为形状估计提供了额外的约束条件。

3.2 非线性优化

假设在第n次迭代,最小化Eqn.3的表面法向量为ni。利用高斯-牛顿法计算的更新向量h满足下面的式子:

满足上式的h可以用于更新:

然而使用标准的高斯-牛顿迭代优化Eqn.3存在两个问题:

当曲面法线n在R3中表示时,它们实际上是约束到球体曲面的单位向量

更新向量h可以将当前估计移离球体的表面,并且在下一次迭代之前需要校正该偏差。因此增加了迭代的次数。

我们通过在初始曲面法向估计n0周围定义一个局部框架来解决这个问题。框架由坐标u和v参数化,这样n0附近的曲面法线由以下函数定义:

在局部框架内,Eqn.2中的阴影函数可以表示为坐标u和v的方程。关于u和v的Jacobian式可以通过链式法则求得:

请注意,特定坐标系仅定义为关于原始曲面法向估计值0的半球。

当u2+v2>=1时,Jacobian未定义。因此,当u2+v2>=1/2时,因此,我们根据当前曲面法向估计重置框架一次。

另外,当不同颜色通道的光变化减少时,Jacobian会呈现病态性,这样会导致牛顿-高斯迭代过程变满甚至不收敛。为了解决此问题,我们使用一种牛顿-高斯的变体,该方案对Jacobian矩阵J的状况没有那么敏感。

3.3 局部优化

原因:存在噪声和局部歧义。

局部增强阶段是对前一节中描述的迭代技术的修改;我们没有优化单一的表面法向,而时优化连续的表面法向n1到nk,优化后的误差函数为:

其中c1、c2是表面法向的两个不同的约束:可积性约束和平滑约束。

可积性约束:

我们通过对斑块内旋度的惩罚来增强可积性;在局部坐标系中,在面片坐标(i,j)处,旋度可近似为cy-cx:

平滑约束:

平滑约束来自于一般的视点原则[8]:当在图像中的某个区域没有观察到变化时,我们假设下垫面没有变化。换言之,我们认为表面和照明不太可能以相反的方式改变,以至于强度变化不可见。

假设该方法将θ作为该面片的着色的局部方向。我们通过应用高斯滤波器的二阶导数G2θ来限制表面变化,该二阶导数的方向为θ。

高斯滤波器的二阶导数对沿θ方向的变化比沿正交方向的变化响应更强烈。我们使用这个属性作为补丁的约束

局部优化阶段一般运行比较少的迭代次数,通常5到10次对于每一个patch。

在下一节中,我们将描述如何将每个面片的局部估计传播到相邻的面片,然后跨尺度传播。

3.4 多尺度传播

传播阶段使用相邻patch的表面法向估计值初始化当前patch的估计值。

我们借鉴了一下基于patch的图像处理过程,并将他们运用到连续优化框架中。

我们利用输入图像构建了一个金字塔,并且从最小的分辨率开始迭代,(从左上角的像素一直到右下角)。对于每一个像素,我们考虑表面法向周围的patch,然后在patch上执行局部refinement,如3.3中所示。

接下来,我们认为patch以左边的一个像素作为中心,然后用它作为当前位置refinement的初始状态。我们重复第三次,从当前位置上方一个像素的patch开始。在这个点,我们有三个优化的patch来解释图像数据。为了选择最好的patch,我们考虑一个patch周围称为“局部上下文”的区域。

局部上下文P是包围当前patch的更大区域。我们定义了上下文错误为:

离散表面的法线通常具有较小但非零的旋度,对这些值施加惩罚可以阻止法线获得正确的形状。与之相对地,我们将旋度约束放在一个光滑的step函数(sigmoid)中,它只惩罚较大的值。因此,上下文误差的可积性约束项E1可以表示为:

平滑约束使用Gaussian滤波的二阶导数,其大小可以覆盖本地上下文。由于上下文误差不需要可微,我们选择L1范式保证对于大的尺度更加鲁棒:

其中,nk是表面法向的单个分量。

选择可以使Eqn.13最小化的patch作为局部的估计值,然后在处理下一个patch。

在奇次迭代中,我们向后遍历图像。

在固定迭代次数的最后,我们将当前的估计值进行上采样,然后处理下一个尺度,接着执行算法,直到达到最优解。由于我们是在图像金字塔内进行处理,因此我们也可以利用多重网格技术来加快收敛速度:我们发现w循环,即从各个尺度开始的粗到细的过程,特别有效。

我们迭代的初始条件是单位长度向量的随机数组,z分量固定为正的。

对于两个约束E1和E2,这个初始条件的值非常大,如果参数ω1和ω2太大,优化会很快陷入局部极小值。但在高图像噪声的情况下,我们希望参数较大,以防止不必要的表面变化。我们发现,每次迭代将ω1和ω2从0增加到它们的指定值可以有效地解决这两个问题。

3.5 局部方向

我们用结构张量测量强度变化的局部方向。结构张量可以由三分量图像计算得到:

最佳尺度处的图像的梯度对噪声比较敏感,因此很难估计局部方向,特别是平坦的区域

为了提高估计精度,我们将分量图像进行混合,Eqn。16,经过上采样组件和之前的尺度进行混合:

通过这个过程,最后一个比例尺从所有以前的比例尺中获得汇总估计。

4.结果

同时在合成图像和真实图像上进行了实验,算法的参数在所有实验中都保持不变。

我们使用33的patch在一个55的上下文环境中,3级金字塔,每层5次迭代,local refinement weights λ1 = 1.0 and λ2 = 0.01, context error
weights ω1
= 1.0 and ω2
= 0.1.。

我们的优化算法假设照明环境的模型是已知的。对于真实图像和合成图像,我们使用一个漫反射校准球体来确定模型。因为阴影函数Eqn。2在光照环境系数为线性的情况下,我们使用最小二乘法,用已知的球面法向来求解系数,

4.1合成图像

为了帮助我们开发和测试我们的算法,我们发现使用一组合成图像很有用。我们的测试集由100个图像组成,这些图像是通过使用基于物理的渲染器pbrt在10个不同的照明环境中渲染10个形状而生成的。这10个形状显示在图3的顶行。我们的复杂程度形状各不相同,包括大的光滑区域、凹面区域、自闭塞、大的深度不连续、折痕和突起

在图3的底部通过渲染每个照明环境中的一个形状来表示10个照明环境。我们使用了以下照明环境:Grace Cathedral,
Eucalyptus Grove, Uffizi Gallery, Galileo’s Tomb, Ennis-Brown Dining
Room, Pisa Courtyard, Doge’s Palace, Inside Tunnel Machine,At the
Window, and Distant Evening Su。

为确保渲染模型完全符合我们的假设(即无投射阴影或内部反射),我们绘制了校准球体,并将照明环境模型绘制到球体上。在进行优化之前,我们加了标准差为0.001的高斯噪声来避免精确数值解的存在;合成图像(256像素)的噪声量相当于实际图像在下采样前的2%。

对于每一百张渲染的图像,我们有图像mask以及表面法向的ground-truth(旋转到相机坐标系)。图像遮罩用于识别背景像素,这些背景像素在优化或评估中不予考虑。为了评估性能,我们计算了ground-truth的法向和估计表面法向之间的角度误差。在所有100个图像的所有曲面法线中,90%的角度误差小于10度。

为了和之前的工作进行比较,我们在两个标准曲面上测试了我们的算法:莫扎特半身像和解析“花瓶”:我们在所有10个照明环境中以256×256像素的图像大小渲染这些曲面。在所有的10个莫扎特图像中,86%的表面法向角度误差小于10度;对于花瓶图片,94%的法向与ground-truth之差小于10度。

我们还通过积分曲面法线来重建深度。我们使用L1泊松方法,通过迭代加权最小二乘法来最小化噪声估计的影响。由于我们使用Neumann边界约束(即,我们没有指定任何已知的深度值),重建的曲面将具有整体深度歧义性。我们通过计算一个补偿量δ来解决歧义性,该补偿量δ使深度估计值与ground-truth最佳对齐:

在图4 和图5中,我们展示了两种不同光源环境(遥远的夕阳和隧道内的机器。)的重建结果。对于花瓶图像,上下结果的均方根误差分别为0.55和0.62像素。对于莫扎特图像,上下结果的均方根误差分别为2.7和1.1像素。

4.4 真实图像

我们采集了一些自然光下的真实图像。由于我们的算法不考虑反射变化,所以物体和校准目标被涂上了漫反射涂料,我们使用了1800万像素佳能EOS 550D相机,配备了100毫米镜头。相机安装在三脚架上,设置为在原始模式下拍摄,场景的照明没有以任何方式进行修改(即,没有额外的灯光)。使用Adobe Photoshop将原始图像转换为16位格式。对于每个图像,我们还通过跟踪图像中对象的边界来创建二值图像mask。

在图7中,我们展示了对同一场景中三个对象的优化结果。这些物体是在一个办公室里用来自窗户的自然光和头顶的荧光灯拍摄的。真实图像的插入图显示校准目标,而法线贴图中的插入图显示球体上的曲面法线的可视化。在图6中,我们展示了图7中每个物体的表面法向y分量的特写视图。我们的优化实现了从单个图像的高细节水平。

图8显示了校准目标和青蛙的图像。这些物体是在一个走廊里拍摄的,走廊上方有凹进的灯光,墙上有油漆。我们建立了一个光环境模型,并用该模型对标定目标进行了算法估计。我们使用L1泊松解算器对法线进行积分以获得深度估计。为了提高可视化效果,我们将深度值剪裁到第1百分位以下和第99百分位以上。我们从两个不同的角度渲染估计的曲面。

我们发现我们的优化算法表现良好,当照明环境足够丰富以约束解空间时,但如果照明类似于单个光源,则在适度的图像噪声下可能会失败。在这种光照条件下,误差函数Eqn.6的雅可比将是秩亏的。优化仍然会产生一个曲面,但它通常是沿着等值线方向flat的。

5.结论

当光照由单个光方向组成时,形状估计是困难的。这种困难源于强度值和可能产生该值的表面方向范围之间的局部模糊性。但在自然光照下,这种模糊性往往会减少。基于这一观察,我们描述了一种算法,该算法可以在不受控制但已知照明的情况下,从单个图像中估计具有常数albedo的漫反射对象的表面法线。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值