作者简介:林欣堂(1982-),男,博士研究生.研究方向:计算机视觉三维重建.E-mail:work_lxt@126.com
使用光度立体视觉法对物体表面形状进行检测时,往往需要解决通用浮雕变换(Generalized bas-relief, GBR)中参数解算及含有镜面、阴影等干扰的非朗伯目标表面这两个主要问题。针对非标定光度立体视觉中GBR参数的解算问题,提出了一种基于局部极大灰度值点的闭式解算法。与已有GBR解算方法相比,本文提出的算法只需要进行二元二次方程组的闭式计算,无需寻优或迭代过程,在计算速度及精度上有较大提高。对于非朗伯表面问题本文主要采用分割方法,还引入了主要成分分析法进一步去除干扰,使本文提出的闭式解算法能够满足使用条件。最后通过对实物目标的三维检测验证了本文算法的高效性。
In object surface detection using photometric stereo algorithm, two main issues need to be solved; unknown Generalized Bas-Relief (GBR) parameters and surface containing mirror point, shadows and other interference. To solve incalibrated photometric stereo, a novel closed-form algorithm based on local maxima points is proposed to solve GBR parameters. The algorithm, which only solves group of dual quadratic equation without optimization or iterative process, greatly improves the speed and accuracy compared with the existing GBR solutions. To solve non-Lambertian surface issue, image segment and PCA technology are used to segment and remove interference to ensure the algorithm satisfying the application conditions. Higher accuracy and efficiency are proved by experiments.
光度立方体视觉算法(Photometric stereo, PS)是固定相机与物体通过不同位置的光源在物体表面反射得到的灰度域信息解算得到表面法向量域信息, 进而完成对物体表面的三维检测算法[1]。因其检测结构简单且适用于弱纹理表面形状的检测, 近年来越来越受到重视。
在标定的远距离点光源下, 早期的研究主要假设物体表面为朗伯表面, 因此只需要3幅图像就可以完成对物体表面的三维形状检测[1]。但是在现实环境中绝大多数物体表面都是非朗伯表面, 同时缺乏表面反射模型等相关信息, 给表面的三维检测带来了困难。另一方面在实际应用过程中往往光源是非标定的, 即光源、相机与物体表面间的几何信息未知。这会使得寻优得到的光源及表面法向量与真实值间相差一个变换矩阵, 即通用浮雕变换(Generalized bas-relief, GBR)矩阵。如何在物体表面未知的条件下完成对物体表面的三维检测, 即非标定光源光度立体视觉问题, 成为本文需要解决的又一难题。
本文针对上述两个问题提出了一种新的闭式GBR参数解算方法实现对非标定光源方向的解算。使用分块分别处理的方法, 实现对含有镜面及阴影等干扰的非朗伯表面在非标定光源下的三维检测。
现有PS算法针对非朗伯表面的三维形状检测大体可分为去除镜面点、理论或经验双向反射分布函数(Bidirectional reflectance distribution function, BRDF)模型及组合、利用反射模型的几何特性及PS算法与其他方法的结合4大类。
去除镜面点算法的基本思路是把镜面点与漫反射点进行区分, 将其中的镜面点当成孤立干扰点去除, 对余下部分作为朗伯表面处理[2]。利用镜面点亮度呈现强烈的极性[3]、光谱在镜面点的独立性[4]来区分镜面点与漫反射点。还有些文献引入了其他数学工具, 如RANSAC[5]、中值滤波法[6]、最小秩法[7]及期望极值法[8]等。文献[9]使用主要成分分析法(Principal component analysis, PCA)去除干扰点, 对少量干扰点有很好的鲁棒性, 但是光源必需是标定的。
有些文献用BRDF模型重建非朗伯表面, 常见的有Lambertian模型、Phong模型、Torrance-Sparrow模型及Ward模型等[10]。同时文献[11]研究出的物体表面每个像素可以用1、2种反射模型的混合来表示, 如文献[12]等。这类算法往往需要标定过的光源信息, 还需要提供模型选择及其参数相关信息。通用性及鲁棒性较差, 且需要参数较多, 计算较复杂。
有些文献避开BRDF本身, 利用BRDF中各参数之间具有的几何特性关系完成对物体表面的三维形状检测, 如文献[13]利用参数间的互换性、文献[14]利用BRDF函数的对称性及文献[14]利用特殊的光源与相机位置关系等。这一类算法需要特殊的光源与相机相互位置关系, 采用近似算法, 精度和实际应用性受到限制。
还有一类文献把PS算法与其他的三维检测算法结合[15]。这类算法能够实现各算法的互补, 得到的结果往往更精确。但是由于需要处理的数据量大, 且需要融合不同检测方法的结果, 因此计算复杂、速度慢。
上述各方法都需要提供标定的光源信息, 无法实现对非标定光源下的表面检测。
上述算法大部分都是使用离线标定的光源与相机位置的关系, 这限制了其实际应用。为了解决这一问题, 有些算法使用了标准镜面和糙面球体来实现对光源方向及强度的标定[12]; 还有些文献不需要对光源进行标定, 但仍然要求光源与相机间有特定的位置关系[14]。
在远距点光源下, 可积朗伯表面在不同位置光源下的灰度可以得到表面法向量与光源方向间的关系, 但是这一结果与真实结果相差一个通用浮雕变换[16], 因此在远距点光源下必需要对GBR造成的多义性进行去除。对这一变换中参数的计算, 文献[17]使用镜面点而文献[18]发现镜面反射点及朗伯点都能提供光源的信息。这类闭式计算方法最大的优点是速度快、稳定、精度高, 但是需要表面法向量已知。还有些文献使用寻优的方法得到各参数值, 如文献[19]假设错误的GBR使得反射率分散, 利用反射率的最小熵(Entropy minimization, EM)完成了对GBR的参数计算; 文献[20]利用图像中的彩色及强度信息实现光度立体视觉的自标定(SCPS), 完成对GBR各参数的计算。
这些算法只针对朗伯表面, 且采用寻优、迭代等非闭式解算方法, 计算复杂。
在远距点光源下, 朗伯表面灰度值满足:
式中:N为物体表面各像素上的法向量, N=
当光源方向未知时, 由上式得到的灰度值对应的法向量和光源方向不是唯一的, 存在可逆变换矩阵G, 如下式所示:
因此通过图像灰度值寻优得到的法向量及光源方向估计值不唯一, 其中的矩阵G就是通用浮雕变换(GBR)矩阵。根据文献[16]证明, 当物体表面可积时存在固定的变换矩阵G, 且满足下式:
式中:参数满足λ > 0; μ , ν ∈ R。
由此可知估计法向量矩阵
针对GBR参数解算问题, 文献[18]通过寻找已知法向量的镜面点直接计算光源的方向。这一算法可以直接通过像素位置进行计算, 不需要优化过程, 具有速度快的优点。但其前提是表面各像素法向量已知, 不适合本文。因此本文提出了利用朗伯表面区域上局部极大灰度值点作为种子点, 使用其中任意两个不同光源下的种子点可以解算出GBR变换中各参数的值, 具体证明如下:在朗伯表面上光源位置k下, 选取局部灰度值最大点p作为种子点。则有该种子点上真实的法向量与光源方向的内积值< Np· Lk> 最大。带入GBR参数则有:
式(4)等价于:
定义式(5)为要求解的最小能量函数, 带入式(3)可得:
式中:
当式(6)取极值时, 对变量λ 取一阶偏导数为零, 得出下式:
由此可以得出λ 值:
带入式(6), 则要求解的最小能量函数变为:
同上, 将μ , ν 两个参数分别对能量函数式(6)求一阶偏导为零, 可以得到:
其中:
因为要同时满足对μ , ν 两个参数的一阶偏导为零, 可以得到下式:
式中:α ∈
因此可以得出点
上述推导只是针对一个种子点, 对于两个不同的种子点存在下式:
进一步可以得到:
式中:A=
两个不同的种子点可以解得唯一GBR参数解的条件是前边的2× 2矩阵满秩, 即满足:
由式(15)可知, 如果获得光源方向和表面法向量的初始估计, 选取在不同的光源方向下取得的两个种子点利用式(14)可以对GBR各参数值进行闭式解算。
为了得到近似朗伯表面区域同时考虑到计算速度, 本文使用了极化度域值[3]进行分割。但是由于低灰度值区域会被误判为高极化度, 因此本文选用基于极化度与灰度的双域值方法去除干扰。根据文献[3]极化度的计算方法为:
DOP
式中:0≤ DOP
虽然极化度算法计算简单, 但是由于极化度方法易受到阴影等低灰度值像素的干扰, 使得Imin
式中:α 1、α 2和β 分别为灰度、极化度域值。
这些域值把原始表面分成三个部分:满足低极化度和灰度值限定范围内的近似朗伯表面的部分; 满足高灰度、高极化度的近似镜面部分; 满足低灰度值低极化度部分。图1(a)为12幅金属圆管原始图像中的一幅, 图1(b)为对原始图像分割得到的近似朗伯表面区域, 其中参数取α 1=0.9, α 2=0.4, β =0.4。
上述分割后的近似朗伯表面部分只能把原始图像中的高度镜面性成份分离出来, 余下部分还是含有镜面、阴影及周围光源等引起的干扰, 而这些干扰在实际图像中是不可避免的。因此为了提高图像处理过程的鲁棒性, 本文引入文献[21]提出的PCA算法:
式中:参数γ 的选择参照文献[22], γ =3/
对该区域的原始图像进一步去除干扰, 得到图像中的主要成分A, 使得去除干扰后的该区域更接近朗伯表面, 如图2中圈中部分所示。
为了使用本文GBR闭式解算法, 先使用文献[23]对该区域表面法向量及光源方向进行初始估计, 如图3(a)所示。其中由红到蓝代表像素法向量与光轴方向的接近程度由大到小。对于种子点的检测使用文献[18]的方法, 但是要删除其中在不同光源位置下都被选为预备点的像素, 余下的像素作为种子点, 如图3(b)所示。
选择出两个不同光源下种子点组成的种子点对, 使用式(16)对这多组点对进行筛选。再使用本文第2节结论可以解算GBR中各参数值, 同时利用文献[23]得到的光源方向及表面法向量估计值可以得到表面法向量及光源方向的真实值, 如图3(c)所示。对这一近似朗伯表面区域得到的法向量域, 使用泊松表面重建算法[24], 完成该区域的三维重建, 如图3(d)所示。
余下部分由式(18)可知分为高镜面性部分及低灰度、低极化度部分。本文利用3.2节得到的光源方向信息, 对这两部分各像素的法向量进行计算。对高镜面性像素选取不同光源位置下最大灰度值及其对应的光源方向Lk, 令相机方向为Z轴上的单位向量, 即V=
此时可以用下式对法向量进行计算:
对低灰度、低极化度部分像素法向量进行计算, 为了避免阴影干扰, 本文选择每个像素最大的3个灰度值及对应光源方向, 用式(21)对其法向量进行计算:
式中:(l1k, l2k, l3k)为k位置光源方向; Ik为光源k下像素的灰度值。
至此完成余下部分的法向量估计, 结合前面已经得到的近似朗伯表面部分的法向量结果, 再次使用泊松表面重建算法[24]得到最终的目标表面深度信息, 如图5所示。
为了进一步证明本文提出的基于局部极大灰度值点的闭式GBR解算法的高效性, 使用Neil Alldrin提供的物体图像及三维实值对本文提出的GBR解算方法进行评估。比较了本文检测算法与EM[19]算法、SCPS[20]算法对相同目标在检测精度及速度方面的差异, 结果如图6所示。
图6(a)中从左至右各列是各组实物图中的一幅、目标的深度实值、EM算法结果、SCPS算法结果、本文结果。为了更明确地展示各算法检测结果的不同, 图6(b)的各行分别是深度实值、EM算法、SCPS算法及本文算法, 从左到右各列分别是深度图、表面法向量的x分量、y分量及z分量分布图。为了进一步量化各算法在检测速度及准确性上的区别, 根据检测结果列出表1, 其中ε 为检测结果与实值之间的平均差值, σ 为方差。
通过对比试验的结果分析可以得出, 由于使用了基于局部极大灰度值点的闭式GBR解算法, 使得本文算法比全局寻优或间接寻优算法的计算速度大幅提高。同时, 由于直接使用了目标表面上的各像素点进行解算, 比寻优后三维重建算法的精度有所提高。
(1)本文提出的基于局部极大灰度值点的闭式GBR解算法可以实现对非郎伯表面非标定光源下的GBR矩阵参数的解算, 计算简单, 精度较高。
(2)本文提出的非标定光源下非朗伯表面的三维重建算法可以实现对非标定光源下非朗伯表面目标的三维重建。试验证明本文算法具有精度高、计算速度快的优点。
The authors have declared that no competing interests exist.
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|
[15] |
|
[16] |
|
[17] |
|
[18] |
|
[19] |
|
[20] |
|
[21] |
|
[22] |
|
[23] |
|
[24] |
|