激光与光电子学进展, 2019, 56 (22): 221201, 网络出版: 2019-11-02   

基于分层聚类的彩色结构光光条检测方法 下载: 829次

Detection Method for Color Structured Light Stripe Based on Hierarchical Clustering
作者单位
1 中国空气动力研究与发展中心超高速空气动力研究所, 四川 绵阳 621000
2 国防科技创新研究院, 北京 100071
摘要
提出了一种基于分层聚类的彩色结构光光条检测方法:将彩色图像转换为灰度图像,利用分层聚类对图像像素逐行进行结构光光条中心点初值计算;根据邻域灰度信息,对结构光光条中心点进行亚像素定位,并基于颜色距离和欧氏距离判别结构光光条中心点索引;对图像进行自上而下的行扫描,完成彩色结构光光条检测。仿真和实验验证了方法的正确性与可行性,结果表明:对光条中心的检测精度为0.47 pixel;对于存在微小断裂的光条,该方法仍可保持光条的一致性和完整性。该方法可应用于结构光三维重建领域,具有一定的理论研究价值和工程应用前景。
Abstract
This study proposes a detection method for the color structured light stripe based on hierarchical clustering. First, the proposed method converts a color image to a gray image and computes the initial value of central point of the structured light stripe along each row of the image based on hierarchical clustering. Second, the sub-pixel location of central point of the structured light stripe is conducted based on the neighborhood grayscale information, which is indexed on the basis of color distance and Euclidean distance. Finally, the color structured light stripe is detected with image progressive scanning from top to bottom. The proposed method has been validated by both simulations and experiments. The results indicate that the detection precision of the stripe center is 0.47 pixel. The proposed method can still maintain the consistency and integrity of the stripe when the stripe has a tiny fracture. The method can be used in the field of structured light three-dimensional reconstruction and has significant relevance in theoretical research and engineering applications.

1 引言

结构光三维重建技术是测量目标表面形貌的重要方式之一[1-4]。结构光主要分为两类:线结构光和面结构光。由于面结构光可应用于动态测量,近年来备受关注。彩色条纹结构光是一种典型的面结构光,通过设置光条间距,可完成不同空间分辨率的形貌重建[5]。而光条检测,即提取光条中心线,是彩色条纹结构光三维重建系统的关键技术之一,直接决定了其形貌测量的精度和稳定性。

光条检测方法可分为两类:基于灰度分布信息的光条检测方法和基于数学微分的光条检测方法。基于灰度分布信息的光条检测方法,是根据光条邻域分布特点提取光条中心线:极值法,将邻域内灰度最大值对应的像素点作为光条中心点;边缘法,通过灰度梯度确定光条边缘,将轮廓几何中心作为光条中心点;重心法,对邻域内的像素坐标进行灰度加权,将所得结果作为光条中心点[6]。基于数学微分的光条检测方法,是将图像灰度作为图像坐标的数学函数,求其一阶、二阶微分,一阶微分过零点且二阶微分大于零的像素点即为光条中心点[7]。在上述经典原理基础上,近年来发展了一些改进方法:刘巍等[8]结合图像金字塔提出了一种激光光条分层提取方法,利用低分辨率图像计算光条法线,在高分辨率图像中沿法线方向进行灰度重心亚像素定位;杨雪娇等[9]利用遗传算法在光条法向截面上进行优化,获取灰度极大值,一定程度上弥补了极值法可能陷入局部极值点的缺陷;崔希君等[10]提出了一种自适应重心迭代算法,提高了重心法测量精度;吴家勇等[11]在边缘法基础上,根据线激光光条中心两侧灰度梯度分布特性,提出了一种基于梯度重心法的光条中心快速亚像素提取算法,当光条中心点和灰度极大值点存在较大偏离时,采用该方法能够获得真实的光条中心位置;Steger[12-13]基于高斯核与图像的卷积结果计算像素点Hessian矩阵,并在法线方向进行Taylor展开,可获取到精度在亚像素级别的光条中心点位置;胡坤等[14]在文献[ 12-13]基础上,将大规模高斯卷积递归思想应用于激光光条中心提取,在一定程度上提高了检测效率。以上均为针对线结构光光条的检测方法,线结构光图像灰度存在单一峰值,且前景背景易于分割[15],而面结构光光条有其自身特点,如存在多个亮度峰值、光条密集等,因此,不应简单地移植上述检测方法。

面结构光光条检测方面的文献报道较少,传统方法主要基于图像细化来提取光条中心线[16],即根据邻域像素灰度分布特点,逐层剥离光条轮廓像素,直至所有光条均为单像素宽度,方法简单、高效,但受物体表面材质、粗糙度、曲率等因素的影响,其提取精度较低且光条中心线断点较多。针对上述问题,文献[ 17]提出了一种彩色结构光条纹中心线提取方法,通过对增强后的彩色结构光图像进行边缘检测,并利用改进的几何中心法提取光条中心线,相比传统方法,在中心线提取的完整性方面有了很大提高,但由于未考虑物体表面曲率影响,精度仅达到整像素级水平。

在深入研究了面结构光光条灰度分布特点的基础上,本文提出了一种基于分层聚类的彩色结构光光条检测方法:对图像中每一行满足灰度阈值的像素点进行分层聚类,获取光条中心点初值,然后根据邻域灰度信息,对光条中心点位置进行亚像素定位,基于颜色距离和欧氏距离判别光条中心点索引;利用上述方法对图像进行由上而下的行扫描,提取出彩色条纹结构光光条中心线。所提方法具备亚像素级别的光条检测精度,稳定性较好,同时适用于线结构光提取。

2 基本原理

基于分层聚类的彩色结构光光条检测流程如图1所示:首先,将彩色图像转换为灰度图像;然后,基于分层聚类的思想计算灰度图像第i行的光条中心点,并判断中心点所属的光条索引;最后,遍历灰度图像每一行,输出彩色结构光光条检测结果。检测过程主要涉及两个重要环节:光条中心点定位和光条中心点索引判别,本节主要针对上述两个环节进行详细阐述。

图 1. 基于分层聚类的彩色结构光光条检测方法流程图

Fig. 1. Flow chart of detection method for color structured light stripe based on hierarchical clustering

下载图片 查看所有图片

2.1 光条中心点定位

不失一般性,记灰度图像任一行灰度大于阈值的像素点为pa(a=1,2,…,n-1,n),n表示该行像素点中符合上述灰度阈值条件的像素点总数,下角标a表示像素点的索引,光条中心点粗定位方法如下:

1) 初值:将每一个点标记为一类,因此聚类第t=0层共有n类,记为Cs(s=1,2,…,n-t),下角标s表示类的索引,类中心坐标与pa(a=1,2,…,n-1,n)重合,记为Ms(xs,ys)(s=1,2,…,n-t)。

2)根据类中心坐标计算类间距离d∈{djk}(j,k=1,2,…,n-t,jk),即CjCk间的距离,jk均为类的索引:

djk=(xj-xk)2+(yj-yk)2(1)

3) 判断最小类间距离是否满足分层聚类终止条件min(d)>dthresh,即最小类间距离大于设定的距离阈值dthresh。若满足终止条件,则执行步骤6);若不满足,则执行步骤4)。

4) 将类间距离最小的两个类合并,则第t+1层共有n-t个类,记为Cs(s=1,2,…,n-t),利用均值法计算第t层所有类的中心坐标:

Ms=p(s)aCspasns(s=1,2,,n-t),(2)

式中, pas表示属于类Cs中的点,ns表示类Cs中的点的个数。

5) 重复步骤2)~4),直至满足终止条件。

6) 输出类中心坐标Ms(xs,ys)(s=1,2,…,m),即完成结构光光条粗定位,m表示迭代终止时聚类的总数。

为了获取更为精确的结构光光条中心位置信息,需要在上述粗定位结果的基础上,进行精定位。类中心Ms(xs,ys)邻域范围[xs-w,xs+w]内的像素灰度值记为ga(xs-waxs+w,像素索引a为整数),搜索邻域范围内的灰度最大值,Us为灰度最大值对应的像素点集合:

Us=maxxs-waxs+w(ga),(3)

式中,ns为集合Us中元素的个数。

分两种情况讨论:

1) 若邻域范围内有且只有一个像素点pv灰度值最大,即ns=1,下角标v表示灰度值最大的像素点对应的索引值,则类中心Ms=pv

2) 若邻域范围内存在两个或两个以上像素点灰度值最大且相等,即ns>1,则类中心坐标取均值,即

Ms=v=1nspvns,(4)

遍历所有类中心Ms(xs,ys)(s=1,2,…,m),即完成对灰度图像当前行的结构光光条中心位置的精确定位。

2.2 光条中心点索引判别

利用2.1节提出的方法,可精确定位出任一行结构光光条中心位置。为了将每一行光条中心点连接成线,需要对当前行检测出的光条中心点对应的线条索引进行判别。判别方法主要基于欧氏距离和颜色距离。记第i行检测出的光条中心点为 psi(s=1,2,…,m),已检测出的结构光光条为lu(u=1,2,…,c),下角标u表示已检测出的结构光光条索引,c表示已检测出的结构光光条数目。由于采用的行扫描方式为自上而下,lu的末端点即为第i-1行检测出的光条中心点,记为 pu(i-1)(u=1,2,…,c)。光条中心点 psi与已检测出的结构光光条lu的欧氏距离 DEu定义为

DEu=pdist2(psi,pu(i-1))=(xsi-xu(i-1))2+(ysi-yu(i-1))2,(5)

式中,pdist2为欧氏距离计算函数,xy为图像像素坐标。

在光条中心点 psi周围7×7邻域范围内,统计颜色信息:

Rsum=qaneighp(i)s R(qa)Gsum=qaneighp(i)s G(qa)Bsum=qaneighp(i)s B(qa),(6)

式中,R(qa)、G(qa)、B(qa)分别表示取像素点qa的红、绿、蓝通道值,RsumGsumBsum分别表示 psi邻域范围内像素点红、绿、蓝各通道值之和,neigh(·)表示像素点领域计算函数。光条中心点 psi颜色判别结果如下:

color(psi)=0,ifRsum=maxRsum,Gsum,Bsum1,ifGsum=maxRsum,Gsum,Bsum2,ifBsum=maxRsum,Gsum,Bsum,(7)

式中,color(·)为颜色判别函数,根据领域范围内三通道值的大小输出像素点对应的颜色,光条中心点 psi与已检测出的结构光光条lu的颜色距离 DCu定义为

DCu=color(psi)-color(pu(i-1))(8)

综上所述,光条中心点 psi与已检测出的结构光光条lu的距离Du定义为

Du=DCukpunish+DEu,(9)

式中,kpunish为惩罚系数,根据颜色距离的重要性进行人工设置。

光条中心点 psi的索引判别为

psilc+1,ifmin(Du)>DthreshlT,else(10)

psi到结构光光条lu(u=1,2,…,c)的距离最小值大于设定的光条差异性阈值Dthresh,则认为 psi不属于任何lu,为其新建结构光光条lc+1, psilc+1;若 psi到结构光光条lu(u=1,2,…,c)的距离最小值小于等于设定的光条差异性阈值Dthresh,计算距离最小值对应的结构光光条标签T,即像素点 psi为结构光光条lT上的一点:

T=argminu(Du)(11)

遍历第i行所有检测到的结构光线条中心点 psi(s=1,2,…,m),完成索引判别。

利用2.1和2.2节的方法,可完成对彩色图像第i行的结构光光条中心点的检测,自上而下对图像进行行扫描,实现全图像结构光光条检测。

3 实验

3.1 仿真

仿真目的在于: 1)结构光光条连续时,测试算法的检测精度;2)结构光光条存在微小断裂时,测试算法的检测精度;3)结构光光条存在较大断裂时,测试算法的检测精度。

图像分辨率为768 pixel×1024 pixel,结构光光条宽度为3 pixel,根据不同配置要求仿真结构光光条图像,光条中心点真实坐标视为已知,对比不同配置条件下检测结果和真实坐标,计算中心线提取误差。实验中kpunish=5.0、Dthresh=10.0,检测结果如图2~图4所示,表1为中心线提取误差统计结果。结果表明: 1)三种配置下,算法对光条中心线的提取精度为0.47 pixel;2)在配置二情况下,由于光条断裂处像素距离尚小于光条差异性阈值,算法自动将其划归到与其最为相似的结构光光条中,保持了结构光光条的一致性和完整性; 3)在配置三情况下,由于光条断裂处像素距离大于光条差异性阈值,算法自动为其创建了新的结构光光条编号,而如何判断断裂处上方光条和下方光条是否为同一光条,将在以后的研究中对其进行详细的阐述和推导。

图 2. 配置一:结构光光条连续时的算法检测结果。 (a)彩色图像;(b)灰度图像;(c)检测结果

Fig. 2. Configuration-1: detection result under the condition of continuous stripes. (a) Color image; (b) gray image; (c) detection result

下载图片 查看所有图片

图 3. 配置二:结构光光条存在微小断裂时的算法检测结果。(a)彩色图像;(b)灰度图像;(c)检测结果

Fig. 3. Configuration-2: detection result under the condition of discontinuous stripes with a tiny fracture. (a) Color image; (b) gray image; (c) detection result

下载图片 查看所有图片

图 4. 配置三:结构光光条存在较大断裂时的算法检测结果。(a)彩色图像;(b)灰度图像;(c)检测结果

Fig. 4. Configuration-3: detection result under the condition of discontinuous stripes with a large fracture. (a) Color image; (b) gray image; (c) detection result

下载图片 查看所有图片

表 1. 不同配置下算法检测误差统计结果

Table 1. Detection error under different configurations

ConfigurationDetection error /pixel
10.46
20.47
30.47

查看所有表

3.2 实物实验

实物实验的目的在于验证算法在实际场景中的可行性。结构光图案由红、绿、蓝三色光条按照de Bruijn序列排列构成;结构光投射器采用DLP数字投影仪,分辨率为854 pixel×480 pixel,结构光光条宽度为3 pixel;图像采集器为面阵CCD相机,镜头焦距为25 mm,分辨率为1280 pixel×1024 pixel。由于图像背景较为简单、易于分割,为保证光条中心线提取的一致性和完整性,实验中设置kpunish=5.0、Dthresh=200.0。图5(a)~(c)为相机采集的结构光光条原始图像,图6(a)~(c)为本文方法检测结果,图7(a)~(c)为基于图像细化的传统方法检测结果。实验结果表明: 1)相比传统方法,本文方法提取的光条中心线更为完整、连续性更好、精度更高,因为传统方法中的图像细化需要对图像进行二值化,该过程会导致灰度信息丢失,进而影响光条中心线提取结果; 2)彩色结构光光条具有颜色扩散性,导致传统方法提取的光条中心线容易产生错误点;3)针对中心线断裂的情况,虽然引入了差异性阈值,但本文方法提取的光条中心线保持了很好的一致性;4)实验结果与3.1节仿真结论相符,但受硬件功率和性能的限制,蓝色光条亮度较低,导致实验中部分光条提取不完整;5)图5(a)中光条存在较大断裂,因此实验中设置较大的差异性阈值Dthresh以保证光条提取的一致性和完整性,但若物体表面深度发生剧烈突变,较大的Dthresh则很可能导致光条索引判别错误,下一步将考虑根据de Bruijn序列的唯一性解决此类光条的索引判别问题。

图 5. 原始图像。(a)动作#1-彩色图像;(b)动作#2-彩色图像;(c)动作#3-彩色图像

Fig. 5. Original images. (a) Action#1-color image; (b) action#2-color image; (c) action#3-color image

下载图片 查看所有图片

图 6. 本文方法检测结果。(a)动作#1-检测结果;(b)动作#2-检测结果;(c)动作#3-检测结果

Fig. 6. Detection results of the proposed method. (a) Action#1- detection result; (b) action#2- detection result; (c) action#3- detection result

下载图片 查看所有图片

图 7. 传统方法检测结果。(a)动作#1-检测结果;(b)动作#2-检测结果;(c)动作#3-检测结果

Fig. 7. Detection results of the traditional method. (a) Action#1- detection result; (b) action#2- detection result; (c) action#3- detection result

下载图片 查看所有图片

4 结论

光条中心线提取是条纹结构光三维重建的关键技术之一,直接决定了三维形貌测量的精度和稳定性。传统检测方法提取精度较低且光条中心线断点较多,针对该问题,本文提出了一种基于分层聚类的彩色结构光光条检测方法,其具有较高的光条中心点定位精度:将分层聚类思想应用于结构光光条中心定位,提升了光条检测的稳定性和准确性;基于颜色距离和欧氏距离判别光条中心点索引,通过设置差异性阈值,保证存在微小断裂情况下结构光光条的一致性和完整性。

下一步考虑引入de Bruijn序列计算结构光光条对应的真实编号,以解决存在较大断裂情况下光条的一致性和完整性问题,并将算法移植到VS(visual studio)开发平台,降低算法执行时间;在硬件方面进一步提升结构光发射器性能,以保证结构光光条检测精度。

参考文献

[1] 高瑀含, 安志勇, 王劲松, 等. 三维面型精密测量技术[J]. 红外与激光工程, 2011, 40(11): 2261-2264.

    Gao Y H, An Z Y, Wang J S, et al. Precision measurement technology of 3D surfaces[J]. Infrared and Laser Engineering, 2011, 40(11): 2261-2264.

[2] 刘长英, 刘洋, 郭继东, 等. 光滑金属曲面视觉测量特征光条自动提取[J]. 光学精密工程, 2016, 24(10): 583-590.

    Liu C Y, Liu Y, Guo J D, et al. Automatic extraction of characteristic light stripe in vision measurement of smooth metal surface[J]. Optics and Precision Engineering, 2016, 24(10): 583-590.

[3] 李兆杰, 崔海华, 刘长毅, 等. 一种基于自动多次曝光面结构光的形貌测量方法[J]. 光学学报, 2018, 38(11): 1112004.

    Li Z J, Cui H H, Liu C Y, et al. A shape measurement method based on automatic multiple exposure surface structured light[J]. Acta Optica Sinica, 2018, 38(11): 1112004.

[4] 解则晓, 张安祺. 超大尺度线结构光传感器内外参数同时标定[J]. 光学学报, 2018, 38(3): 0315001.

    Xie Z X, Zhang A Q. Simultaneous calibration of the intrinsic and extrinsic parameters of ultra-large-scale line structured-light sensor[J]. Acta Optica Sinica, 2018, 38(3): 0315001.

[5] 白景湘, 曲兴华, 冯维, 等. 双投影结构光三维测量中重叠相移光栅的分离方法[J]. 光学学报, 2018, 38(11): 1112002.

    Bai J X, Qu X H, Feng W, et al. Separation method of overlapping phase-shift gratings in three-dimensional measurement of double projection structured light[J]. Acta Optica Sinica, 2018, 38(11): 1112002.

[6] 张广军. 视觉测量[M]. 北京: 科学出版社, 2008: 123- 126.

    Zhang GJ. Vision measurement[M]. Beijing: Science Press, 2008: 123- 126.

[7] 高乐. 彩色结构光编码的视觉测量研究[D]. 哈尔滨: 哈尔滨工程大学, 2013: 19- 23.

    GaoL. The vision measurement research of color structured light coding[D]. Harbin: Harbin Engineering University, 2013: 19- 23.

[8] 刘巍, 张洋, 高鹏, 等. 结合分层处理的激光光条亚像素中心提取方法[J]. 红外与激光工程, 2017, 46(10): 1017010.

    Liu W, Zhang Y, Gao P, et al. Sub-pixel center extraction method of laser stripe center based on hierarchical processing[J]. Infrared and Laser Engineering, 2017, 46(10): 1017010.

[9] 杨雪娇, 池海红. 一种改进的光条中心提取方法[J]. 应用科技, 2009, 36(12): 41-44.

    Yang X J, Chi H H. An improved method of extracting structured light strip center[J]. Applied Science and Technology, 2009, 36(12): 41-44.

[10] 崔希君, 杨川, 刘保华, 等. 线性结构光心的自适应迭代提取法[J]. 西安交通大学学报, 2007, 41(1): 73-76.

    Cui X J, Yang C, Liu B H, et al. Self-adaptive iterative method of extracting center of linear-structured light stripe[J]. Journal of Xi'an Jiaotong University, 2007, 41(1): 73-76.

[11] 吴家勇, 王平江, 陈吉红, 等. 基于梯度重心法的线结构光中心亚像素提取方法[J]. 中国图象图形学报, 2009, 14(7): 1354-1360.

    Wu J Y, Wang P J, Chen J H, et al. Method of linear structured light sub-pixel center position extracting based on gradient barycenter[J]. Journal of Image and Graphics, 2009, 14(7): 1354-1360.

[12] StegerC. Extracting curvilinear structures: a differential geometric approach[M] //Buxton B, Cipolla R. European conference on computer vision- ECCV '96. Lecture notes in computer science. Berlin, Heidelberg: Springer, 1996, 1064: 630- 641.

[13] Steger C. An unbiased detector of curvilinear structures[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1998, 20(2): 113-125.

[14] 胡坤, 周富强, 张广军. 一种快速结构光条纹中心亚像素精度提取方法[J]. 仪器仪表学报, 2006, 27(10): 1326-1329.

    Hu K, Zhou F Q, Zhang G J. Fast extraction method for sub-pixel center of structured light stripe[J]. Chinese Journal of Scientific Instrument, 2006, 27(10): 1326-1329.

[15] 李文涛, 王培俊, 唐晓敏. 钢轨磨损视觉测量的轮廓精确快速提取[J]. 光学精密工程, 2018, 26(1): 238-244.

    Li W T, Wang P J, Tang X M. Accurate and rapid contour extraction of visual measurement for rail wear[J]. Optics and Precision Engineering, 2018, 26(1): 238-244.

[16] Pan J H, Huang P S, Chiang F P. Color phase-shifting technique for three-dimensional shape measurement[J]. Optical Engineering, 2006, 45(1): 013602.

[17] 李瑜芳. 彩色结构光条纹中心线提取方法研究[D]. 长春: 吉林大学, 2011: 16- 21.

    Li YF. The research on the methods of stripe center extraction for color-encoded structure light[D]. Changchun: Jilin University, 2011: 16- 21.

刘进博, 郭鹏宇, 伍越, 陈卫. 基于分层聚类的彩色结构光光条检测方法[J]. 激光与光电子学进展, 2019, 56(22): 221201. Jinbo Liu, Pengyu Guo, Yue Wu, Wei Chen. Detection Method for Color Structured Light Stripe Based on Hierarchical Clustering[J]. Laser & Optoelectronics Progress, 2019, 56(22): 221201.

本文已被 1 篇论文引用
被引统计数据来源于中国光学期刊网
引用该论文: TXT   |   EndNote

相关论文

加载中...

关于本站 Cookie 的使用提示

中国光学期刊网使用基于 cookie 的技术来更好地为您提供各项服务,点击此处了解我们的隐私策略。 如您需继续使用本网站,请您授权我们使用本地 cookie 来保存部分信息。
全站搜索
您最值得信赖的光电行业旗舰网络服务平台!