APP下载

基于互补曲线拟合的格雷码亚像素边缘定位

2021-08-20于微波王国秀刘克平

科学技术与工程 2021年21期
关键词:条纹格雷灰度

于微波,王国秀,李 洋,李 岩,刘克平

(长春工业大学电气与电子工程学院,长春 130012)

三维重建是计算机和机器视觉中的一个重要课题,在现有的三维重建方法中,全域检测、高分辨率、高精度的结构光是应用最广泛的三维测量方法之一[1]。结构光三维重建的精度主要取决于图像中结构光位置的定位,通过测量结构光的条纹边缘或者中心线实现定位,而简单的像素定位不能满足其精度,故需要对结构光进行亚像素测量。

中心线定位法主要有拟合法、随机抽样一致性法、结合区域增长法[2-4],但当采用格雷码进行重建时,编码数量过多则无法有效地提取出光条纹中心,故更多采用条纹边缘定位法。对光条纹边缘定位的方法主要有边缘导向法、灰度加权质心法和动态粒度矩等[5-7],上述方法都采用单一编码模式进行投影,实现较为简单,实时性较好,但是个别方法易受噪声影响,且定位精度普遍较低。为有效抑制边缘扩散以及噪声的影响并提高边缘定位精度,Trobina[8]最早提出使用互补编码模式进行亚像素边缘定位,该方法首先投射互补的编码图像并进行采集,然后采用阈值法进行图像二值化,最后使用线性插值算法求取交点,实验证明定位精度较高,但如果考虑影响像素灰度值的因素,阈值的设置就比较困难。于晓洋等[9]在此基础上提出基于正反格雷码图案的直线拟合条纹边缘定位方法,在获取互补编码图像后,提取条纹边缘过渡区域并对其进行直线拟合, 通过求取两条拟合直线的交点将其作为边缘点,该算法定位精度相对较高,但只能在理想的投射及测量环境完全一致的情况下进行定位。

在格雷码光条纹亚像素边缘定位的诸多方法中,受环境光、噪声以及边缘扩散等影响,基于单一投影模式的方法得到的亚像素边缘精度较低,而基于互补编码模式的方法对二值化结果依赖较大,且难以确定两幅编码图像的边缘对应关系,很容易造成误匹配使得定位准确性降低。为此,在互补编码亚像素边缘定位的基础上,现提出一种基于互补曲线拟合的格雷码光条纹亚像素边缘定位算法。首先定位光条纹的初始边缘,然后拟合得到灰度曲线,最后提取互补灰度曲线的交点得到精确的格雷码光条纹边缘。

1 光条纹边缘初始定位

1.1 互补投影图像二值化

采互补编码模式是将原始编码序列进行取反,从而得到两组完全相反的编码序列,从而使得每个像素都具有互补映射的两个值。结构光场景光栅图像二值化的效果直接影响边缘初始定位的准确性,常见的二值化方法有很多,如归一化二值法、阈值法和无阈值法等,但由于环境光、物体表面材质以及每张结构光光栅图像的光源编码不同等原因,简单的方法效果较差。鲁棒像素分类(robust pixel classification,RPC)算法[10]通过分析像素点光强成分来自结构光直接光源的比例,并利用互补编码模式的优点设计分类规则,克服了上述问题,实现结构光投影图像的准确二值化,提高了二值化的鲁棒性和准确性。

像素点光强成分的分离方法表达式为

(1)

设计互补编码模式分类规则如下:

(2)

式(2)中:m为像素点直接光强的最小阈值;I和Iinv分别为正投影光强和逆投影光强。当直接光强大于间接光强时,若正投影光强大于逆投影光强时,像素点二值化为1,若正投影光强小于逆投影光强时,像素点二值化为0;当正投影光强小于直接光强且逆投影光强大于间接光强时,像素点二值化为0,若正投影光强大于直接光强且逆投影光强小于直接光强时,像素点二值化1;当直接光强小于m或不符合上述几种情况时,则被认为背景或噪声点。

采用RPC算法进行格雷码光条纹二值化,部分结果如图1所示,其中图1(a)与图1(b)为第6幅互补场景光栅图像,图1(c)为二值化结果,可以看出算法有效地区分出了格雷码明暗条纹,并剔除了无关背景像素(如雕塑的影子区域和投影仪光强外的区域),为初始的边缘定位提供有利条件。

图1 RPC二值化结果

1.2 梯度算子提取边缘

获取二值图像后,通过边缘梯度算子即可得初始的条纹像素边缘。按照编码方向对二值图像进行扫描,计算每一行(列)各像素点的梯度值,设定阈值并进行非极大值抑制,得到初始的条纹边缘。具体步骤如下。

步骤一生成梯度算子。图像为离散数据,在某点的梯度可以用向前差商、向后差商或者中心差商获得,这里采用中心差商可以获取图像某点的梯度值,表达式为

(3)

式(3)中:h为步长;f(x)为当前点的灰度值;f′(x)为梯度值。式(3)可以简化为与式(4)的滤波核Cx进行卷积计算。

(4)

考虑临近的上下两行,同时增加中心一行权重得到水平方向的Sobel滤波核Sx,即

(5)

步骤二获取初始的条纹边缘。通过将图像I与Sobel滤波核进行卷积,分别得到像素点水平方向梯度值Gx与竖直方向梯度值Gy,即

(6)

通过设置阈值T过滤伪边缘点,并采用非极大值抑制法确定初始的条纹边缘。最终定位到的初始条纹边缘和映射如图2所示,其中图2(a)为初始条纹边缘,图2(b)与图2(c)为边缘映射,可以看到梯度算子提取到较为准确的初始条纹边缘。

图2 初始边缘定位及映射

2 定位光条纹亚像素边缘

通过上述方法可以提取到格雷码光条纹的像素级边缘,从而准确地建立起了互补投影图像中边缘过渡区域的关系映射,接下来对边缘过渡区域进行提取,然后对其拟合得到灰度曲线,最后计算两条互补灰度曲线的交点定位光条纹亚像素边缘。

2.2 边缘过渡区域提取

过渡区定义是过渡区是图像中介于目标与背景之间的部分像素构成的区域。这部分像素的空间位置位于目标与背景之间,灰度分布也位于目标灰度均值与背景灰度均值之间,通常过渡区域取3~5个点[11]。如图3所示为互补场景光栅图像的局部灰度变化图,可以看到在互补场景光栅图像中, 格雷码光条纹边缘之间的过渡区域梯度方向相反,区间AB为正投影图像的边缘过渡区域,区间CD为逆投影图像的边缘过渡区域,区间交点即光条纹的亚像素边缘点。

图3 互补投影图像的局部灰度变化

图4 边缘过渡区域

2.2 定位亚像素边缘

由图3可知,边缘过渡区域的灰度数据是渐变的,在此基础上,采用多项式曲线拟合算法对其进行拟合,并计算两曲线的交点,可更加精确地定位到光条纹的亚像素边缘,从而进一步提高三维重建系统的测量精度。现阶段拟合多项式曲线的方法主要有插值法、磨光法和最小二乘法等,其中最小二乘法(又称最小平方法)通过最小化误差的平方和寻找数据的最佳函数匹配,可以较好地拟合离散数据,故选取最小二乘法拟合灰度数据[12]。

设待拟合的M次多项式曲线函数f(x,w)为

(7)

式(7)中:xn为边缘过渡区域的第n个点的坐标值;w0,w1,w2,…,wM为M+1个多项式系数。令

(8)

则多项式曲线函数可化为线性代数形式,即

f(x,w)=XW

(9)

为了评价拟合函数的优劣,采用最小二乘法建立损失函数,测量每个像素点灰度值与拟合值之间的误差,误差函数为

(10)

(11)

令其导数等于0,得最终多项式曲线函数的系数矩阵为

W=(XTX)-1XTY

(12)

通过联立两多项式函数曲线方程进行求解,得到两条灰度曲线的交点,最终定位到格雷码光条纹的亚像素边缘。

利用上述算法对图4所示的边缘过渡区域进行三阶多项式拟合,然后联立两个三阶多项式解方程,得到两条多项式曲线和两曲线的交点如图5所示,可以看出拟合后的边缘过渡区更加连续平滑,最终定位的交点更加精确。对实际的格雷码光条纹图像进行亚像素边缘提取,最终提取到的亚像素边缘结果如图6所示,对比初始条纹边缘可以看出算法有效地去除了无效像素点并保留了光条纹的亚像素边缘。

图5 三阶多项式拟合曲线及交点

图6 格雷码光条纹亚像素边缘

3 实验及结果分析

由于格雷码光条纹边缘为平行且等宽的直线,而实际采集到的图像受相机畸变和物体表面调制等因素,光条纹边缘平行性受到影响,但等宽性基本不变,因此采用平均相对等宽性误差对算法进行评价。平均相对等宽性误差为各拟合条纹宽度与各条纹平均宽度的平均差值与平均值之商。分别用Canny边缘提取算法、互补直线拟合法及提出的互补曲线拟合法对平面的格雷码光栅图像进行边缘定位,部分边缘提取结果如图7所示,其中图7(a)为采用Canny边缘算法定位结果,图7(b)为所提出的互补曲线拟合算法定位结果,如表1所示分别为对不同投影方向和条纹数量的图像处理后各个方法的定位误差数据。

由表1可知,所提出的互补曲线拟合法的定位误差都较小。随着条纹数量的增加,受光条纹扩散的影响,边缘定位的误差都在逐渐增加,但普通的边缘检测算法如Canny算子,定位精度只能达到像素级, 且如图7(a)所示,很难规避无关的伪边缘点,故定位误差较大;而基于互补直线拟合的边缘定位法虽然精度达到了亚像素级,在一定程度上能降低条纹扩散对条纹边缘位置的影响,但只能在理想的投射及测量环境完全一致的情况下进行定位,且定位误差较大;基于互补曲线拟合的边缘定位算法通过二值图像定位到初始条纹的边缘,并映射回互补编码场景图像,解决了初始边缘定位困难的问题,此外如图7(b)所示,算法可以去除非光条纹边缘的伪边缘点,且随着光条纹数量的增加以及投影方向的改变,始终保持着较低的定位误差,可以看出本文算法具有良好的鲁棒性和准确性。

图7 边缘定位对比

表1 亚像素边缘定位误差数据

4 结论

提出了一种采用互补曲线拟合定位格雷码光条纹亚像素边缘的算法,通过对互补投影图像进行二值化、边缘检测及优化,获取准确的初始边缘,然后映射回原始图像并对边缘及其临近点灰度值进行拟合,得到两条灰度曲线,最后提取曲线的交点,实现光条纹的亚像素边缘定位。提取不同投影方向和编码数量的平面格雷码光栅图像的边缘,算法的定位误差都相对较小,最小的平均相对等宽误差为1.972 77×10-3。通过实验与分析可以得到以下结论。

(1)通过RPC算法对互补场景光栅图像二值化,定位得到初始的条纹边缘,从而确定互补图像边缘的对应关系,使得算法在投射和测量环境不完全理想的情况下进行边缘定位。

(2)通过提取符合条件的边缘过渡区域,采用最小二乘法拟合得到多项式曲线,最后计算两曲线的交点得到更精确的格雷码光条纹的亚像素边缘。

(3)通过对不同投影方向和编码数量的条纹边缘进行处理与验证,算法都可以准确地实现亚像素边缘定位。

猜你喜欢

条纹格雷灰度
采用改进导重法的拓扑结构灰度单元过滤技术
用模块化思维打造组织
天津港智慧工作平台灰度发布系统和流程设计
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
Arduino小车巡线程序的灰度阈值优化方案
谁是穷横条纹衣服的人
条纹回归
春日条纹变奏曲
《道林·格雷的画像》中的心理解读
条纹,条纹,发现啦