基于偏微分法的光度立体三维重建
2018-12-07张博文
李 健,张博文,何 斌
(1.陕西科技大学 电气与信息工程学院,陕西 西安 710021;2.同济大学 电子与信息工程学院,上海 201804)
0 引言
光度立体法[1]通过一组在同一视角,由不同角度光源照射引起的物体表面光照变化的图像来求解物体法向量和深度,从而恢复其三维信息.该技术具有简单高效、成本低、恢复表面细节准确等优势,同时与基于双目视觉的立体匹配法相比,可以避免其中匹配困难的问题[2].
为了改进明暗恢复形状[3](Shape from shading,简称SFS)解的病态性,Woodham[1]提出了由物体表面光照变化来求解深度的光度立体法.经典光度立体法[1]基于朗伯体漫反射模型,并在已知平行光源的条件下对物体进行重建.在此基础上,许多研究目前着重解决非朗伯体[4]、无光源标定[5]、非刚性和动态物体[6]以及自然光[7]下的重建.另外在增加算法鲁棒性[8]的同时,为了提高重建精度,研究融合几何先验信息和光度信息[9]的高精度方法.其中经典的工作包括 Shi B等[10]通过低秩矩阵法来消除表面高光和阴影,从而对于存在镜面反射等离群点的物体能够得到一个较好的重建结果;Basri R等[11]利用低阶球谐函数来表示任意复杂的光照模型,并通过低维空间的优化求解来实现无标定和任意光照条件下的光度立体重建;Hernandez C等[12]对经典光度立体中多平行白光源依次照射的条件进行改进,通过RGB三色光对物体同时照射,从而实现了动态非刚性体的重建;另外,Yu H等[13]借助深度相机来直接获取深度值,并将采集到的深度信息与光度信息融合,从而实现了一个更高精度的重建效果.
与本文相关的典型工作主要有经典光度立体法[1](CPS)实现物体的三维数字化;Ikehata S等[14]通过稀疏贝叶斯线性回归法(SBL)来求解普通漫反射表面的法向量.这些算法都是基于灰度图像,同时,在求解深度时,首先对法向量进行求解,之后通过法向量的积分或近似差分来获取深度值.
然而,上述相关算法普遍存在以下一些问题.首先,在将RGB图像转化为灰度图像的过程中会丢失一些信息.其次,法向量和深度的依次求解在降低算法效率的同时会造成累积误差,信息的丢失和误差的累积会影响物体的重建精度.最后对于多反射率物体,反射率的不一致也会在一定程度上影响最终的重建精度.
为此,本文在相关工作的基础上,采用了一种基于偏微分法(PDE)的光度立体三维重建技术.首先基于原始RGB图像,通过图像三色通道间的光度比消除反射率,之后构建无反射率的线性偏微分方程组,最后通过最小二乘估计的正规方程来对深度直接进行求解.与之前的有关工作相比,本文的主要贡献有以下几个方面:
(1)基于原始RGB图像,充分利用彩色光度信息,避免了在向灰度图像转化过程中造成的信息丢失.
(2)通过图像RGB三通道间的光度比构建无反射率的线性偏微分方程组,进而直接对深度进行求解,从而在提高算法效率的同时避免了法向量和深度的依次求解造成的累积误差.
(3)无反射率线性偏微分方程组的构建和深度的直接求解消除了反射率不一致对物体重建的影响,从而对于多反射率物体能够得到一个更加理想的结果.
1 理论基础与算法设计
1.1 基础原理与光源估计
根据经典光度立体法[1]的原理,其求解过程可以转化为对一组线性方程组的求解:
Ii(x,y)=ρ(x,y)sin(x,y),i∈[1,m]
(1)
式(1)中:m为图像数量,si为光源向量,Ii(x,y)为某一像素点(x,y)的亮度,ρ(x,y)为点(x,y)处的反射率,n(x,y)为(x,y)处的法向量.
当m=3时该方程组具有唯一解,在已知光源矩阵s的情况下可求解出法向量,并进一步得到深度z,从而恢复出物体表面形状.
光度立体重建过程中,首先是要获取光源信息,即在非自然光条件下,对各个光源进行标定.Powell M.和Sarkar S.[15]提出了一种使用三镜面球体的标定方法,虽然可以获得相对准确的光源信息,但标定过程较为繁琐.因此,为了高效、准确地获取光源信息,本文通过单采样球法来对光源进行标定,求解光源矩阵.
对于单反射率的球体来说,公式(1)可以写为如式(2)的形式:
I=M·N
(2)
式(2)中:M=ρ·s,ρ为反射率常量.
虽然目标物体材质与采样球的材质不同,但对求解出的M进行归一化处理,可近似求得光源矩阵s.
如图1所示,右边为空间坐标系中的采样球,左边为正交投影后采样球在图像平面坐标系中所对应的像,并且图像平面坐标系与空间坐标系中的yoz平面重合.
对于采样球映射到图片上的圆,可以先求出圆心坐标(y0,z0),以及半径r,再通过公式(3)求出圆上任何一点t(yt,zt)所对应的采样球上的点T(Xt,Yt,Zt),由于原点在球心上,坐标值也为该点所在切面的单位法向量.
图1 采样球的二维到三维转化
(3)
球上任一点T都有对应的I向量(I1,I2,I3),因此由公式(4)可得:
(4)
把圆上每个像素点所对应的值带入公式(4)通过最小二乘法求解出矩阵M,之后对M进行归一化处理可得光源矩阵s.
1.2 光度比
经典光度立体法[1]首先对法向量进行求解,之后通过已知的法向量来进一步求解深度值,这样重建的结果就会受每一步求解时误差的影响,最终累积的误差降低重建精度.通过光度比的方式消除反射率,并构建关于梯度的无反射率线性偏微分方程组,从而避免法向量、深度依次求解带来的累积误差.
在光度立体法中物体每一像素点的单位法向量可表示为公式(5)的形式:
(5)
基于公式(1)当物体被第i个和第j个光源照射时,对于某一像素点有如等式(6)、(7)所示:
(6)
(7)
从而由等式(6)、(7)可得光度比方程(8):
(8)
式(8)中:k∈{R,G,B} 三基色通道之一.
由光度比方程(8)可得方程(9):
(9)
然而方程(9)包含法向量,而通过法向量n来求解深度会造成之前所述的累积误差.因此为了避免对法向量的求解,以提高算法效率,并减少累积误差.对方程(9)进行变形,通过公式(5)将法向量n用含有梯度z的形式进行替代,构建有关梯度的线性偏微分方程.
1.3 偏微分方程组的构建
通过式(5)、(9)构建以梯度为未知量的线性偏微分方程(10):
(10)
从而最终可得如下线性偏微分方程组:
A(x,y)z(x,y)=b(x,y),(x,y)∈Ω
(11)
对于方程组(11),其矩阵展开如式(12):
(12)
1.4 正规方程的深度求解
由于方程组(11)是以梯度为未知量.为了直接对深度进行求解,将方程组(11)进行离散化处理,使其从以梯度为未知量转化为以深度为未知量的形式,通过求解变换后的方程组来得到物体的深度值.
另外,方程组(11)是通过RGB图像间的光度比进行构建,系数矩阵A的行数总大于列数,即该方程组为超定的,无确定解.因此采用最小二乘估计的正规方程来对未知深度直接求解,从而可以得到一个较为准确的结果.
假设对于一个图像有效像素点为N的物体进行重建.通过方程组(12),将其中的系数矩阵A按像素N进行对角排列,得到如下稀疏矩阵(13):
(13)
式(13)中:
同样将列向量b按像素行排列,得到列向量(14):
B=[b1b2…bN]T
(14)
将构造的稀疏矩阵As与梯度算子G进行相乘得As0,完成方程组的离散化处理,由对梯度的求解转化为对深度的求解,并通过正规方程来获得该超定线性方程组的最终解.构造伪逆矩阵(15),最终的深度由式(16)所得:
(15)
则深度z=M-1B
(16)
2 结果与讨论
2.1 实验设计
本文以经典光度立体法[1](CPS)、稀疏贝叶斯线性回归法[14](SBL)以及基于灰度图像的偏微分法(PDEG)作为对比算法.通过仿真环境下的人工标准模型和真实环境中的物体重建来验证所述算法的有效性.人工标准模型重建的仿真环境是在3ds Max三维渲染软件平台上搭建,并配备Vray渲染引擎,从而可以得到一个理想的反射模型和光照场景.仿真和真实环境下的实验,光照设置统一采用三平行白光源,光源的摆放遵循光度立体三光源最优配置法[16],即在物体的正投影面上互成120度角.
各算法通过Matlab仿真软件来执行,执行算法的配置为2.1 Hz i7 3612QM处理器和8G内存的PC.
2.2 人工数据集仿真
首先,通过对一组不同分辨率的多反射率衣物模型区域进行重建,以测试各算法的效率.如图2所示为多反射率重建区域分别在三个不同方向白光源照射下的RGB图像.
如图3所示,分别为所述偏微分法和各对比算法在区域分辨率依次递增的情况下进行重建所消耗的时间走势图.通过图中数据可以看出偏微分重建法的算法效率要高于经典法[1]和稀疏贝叶斯法[14],特别是随着重建区域的增大,其优势更加明显.另外由于灰度图像的单通道性减低了方程组的维度,因此基于灰度图像的偏微分法在效率上要略微高于基于RGB图像的偏微分法.
图2 重建区域RGB图像
图3 算法效率对比
通过对多反射率衣物区域的重建验证了所述偏微分法在效率方面的优势.之后,分别利用所述偏微分法(PDE)、基于灰度图像的偏微分法(PDEG)、经典法[1](CPS)以及稀疏贝叶斯法[14](SBL)对三个人工标准模型进行重建,并比较所得结果与基准数据间的误差.
首先对多反射率斯坦福兔子进行重建,其结果如图4所示.其中,图4(a)列为采集模型的三幅RGB图像,图4(b)~(e)列分别为通过所述偏微分法(PDE)、基于灰度图像的偏微分法(PDEG),经典法[1](CPS)以及稀疏贝叶斯法[14](SBL)得到的重建结果、法向图以及与基准数据误差表示的伪彩色图,其中伪彩色图颜色越偏黄表示误差越大.通过伪彩色图可以直观地看出所述基于RGB图像的偏微分法得到的物体深度值最接近基准数据,而基于灰度图像的偏微分法由于图像转化造成的信息丢失,其重建精度要稍低于前者.此外,其他两种对比算法的误差要明显大于偏微分的重建法.
通过对单反射率浮雕和多反射率衣服模型的重建来更加全面地验证算法的有效性.其结果如图5所示.其中,图5(a)列为采集的模型的RGB图像,图5(b)列为通过所述偏微分法(PDE)得到的法向图,图5(c)~(f)列则分别为通过该所述偏微分法(PDE),基于灰度图像的偏微分法(PDEG)、经典法[1](CPS)以及稀疏贝叶斯法[14](SBL)得到的重建结果.
为了更加准确地验证本文所述算法对重建精度的提升,将各算法得到的重建结果分别与基准数据进行比较,计算其与基准数据间的豪斯多夫距离,最终结果如表1所示.通过与基准数据间豪斯多夫距离的均值误差和均方根误差可以看出,所述偏微分法(PDE)在避免了信息丢失和累积误差的同时,一定程度上消除了多反射率的影响,从而能够恢复出一个精度相对较高的三维信息.进一步分析,所述算法对于浮雕模型的精度提升要高于兔子和衣服.这是由于如经典光度立体法[1](CPS)以及稀疏贝叶斯法[14](SBL)等算法需要通过法向量的积分或近似差分来求解深度,浮雕这类模型存在许多深度突变的区域,即不连续的法向量不可积分区域,因而最终对于深度值的恢复相较于连续区域物体来说并不理想.本文所述算法对深度的直接求解,克服了不连续区域对重建结果的影响,更具鲁棒性.
(a)RGB图像 (b)PDE (c)PDEG (d)CPS (e)SBL图4 人工标准模型仿真结果及误差对比
(a)RGB图像 (b)法向图 (c)PDE (d)PDEG (e)CPS (f)SBL图5 人工标准模型仿真结果
表1 仿真结果误差对比
2.3 真实环境重建
为了更进一步验证算法的有效性,选择在真实环境下对单反射率石膏像和多反射率陶瓷像进行重建,其结果如图6所示.通过重建结果可以看出在具有各种噪声的非理想环境下,所述偏微分法(PDE)在能够得到一个较为理想的整体重建结果的同时,对物体细节也做出了较好地恢复和呈现,算法具备一定的实用性和鲁棒性.然而通过与真实模型对比能够发现其同样存在依靠单一光度信息恢复深度不足的问题.
(a)RGB图像 (b)法向图 (c)重建结果图6 真实物体重建
3 结论
本文采用了一种基于偏微分法的光度立体三维重建技术,其通过原始RGB图像间的光度比来构建无反射率的线性偏微分方程组,并使用最小二乘估计的正规方程对深度直接进行求解.该算法具有以下三个优势.
其一,充分利用彩色图像信息,避免了向灰度图像转化造成的信息丢失;其二,通过构建的线性偏微分方程组来对深度直接进行求解,提高了算法的效率,并避免了对法向量和深度的依次求解而造成的累积误差;其三,消除反射率不一致对于重建结果的影响.基于以上三点,并通过仿真和真实环境中的重建实验验证了算法的有效性.
本文所述算法可以得到一个较为理想的物体三维信息,但重建精度,特别是深度的恢复与基准模型相比还存在一定的误差.另外由于光源依次变换的限制,该算法对于实时动态物体还不能得到一个较好的结果,同时仍旧基于朗伯体漫反射模型,物体的材质对于重建具有较大的限制.因此,未来的工作主要是通过融合几何信息,提升重建精度,并在此基础上改进和优化现有光照模型,以实现精度更高的非朗伯体的动态重建.