基于分层聚类的彩色结构光光条检测方法 下载: 829次
1 引言
结构光三维重建技术是测量目标表面形貌的重要方式之一[1-4]。结构光主要分为两类:线结构光和面结构光。由于面结构光可应用于动态测量,近年来备受关注。彩色条纹结构光是一种典型的面结构光,通过设置光条间距,可完成不同空间分辨率的形貌重建[5]。而光条检测,即提取光条中心线,是彩色条纹结构光三维重建系统的关键技术之一,直接决定了其形貌测量的精度和稳定性。
光条检测方法可分为两类:基于灰度分布信息的光条检测方法和基于数学微分的光条检测方法。基于灰度分布信息的光条检测方法,是根据光条邻域分布特点提取光条中心线:极值法,将邻域内灰度最大值对应的像素点作为光条中心点;边缘法,通过灰度梯度确定光条边缘,将轮廓几何中心作为光条中心点;重心法,对邻域内的像素坐标进行灰度加权,将所得结果作为光条中心点[6]。基于数学微分的光条检测方法,是将图像灰度作为图像坐标的数学函数,求其一阶、二阶微分,一阶微分过零点且二阶微分大于零的像素点即为光条中心点[7]。在上述经典原理基础上,近年来发展了一些改进方法:刘巍等[8]结合图像金字塔提出了一种激光光条分层提取方法,利用低分辨率图像计算光条法线,在高分辨率图像中沿法线方向进行灰度重心亚像素定位;杨雪娇等[9]利用遗传算法在光条法向截面上进行优化,获取灰度极大值,一定程度上弥补了极值法可能陷入局部极值点的缺陷;崔希君等[10]提出了一种自适应重心迭代算法,提高了重心法测量精度;吴家勇等[11]在边缘法基础上,根据线激光光条中心两侧灰度梯度分布特性,提出了一种基于梯度重心法的光条中心快速亚像素提取算法,当光条中心点和灰度极大值点存在较大偏离时,采用该方法能够获得真实的光条中心位置;Steger[12-13]基于高斯核与图像的卷积结果计算像素点Hessian矩阵,并在法线方向进行Taylor展开,可获取到精度在亚像素级别的光条中心点位置;胡坤等[14]在文献[ 12-13]基础上,将大规模高斯卷积递归思想应用于激光光条中心提取,在一定程度上提高了检测效率。以上均为针对线结构光光条的检测方法,线结构光图像灰度存在单一峰值,且前景背景易于分割[15],而面结构光光条有其自身特点,如存在多个亮度峰值、光条密集等,因此,不应简单地移植上述检测方法。
面结构光光条检测方面的文献报道较少,传统方法主要基于图像细化来提取光条中心线[16],即根据邻域像素灰度分布特点,逐层剥离光条轮廓像素,直至所有光条均为单像素宽度,方法简单、高效,但受物体表面材质、粗糙度、曲率等因素的影响,其提取精度较低且光条中心线断点较多。针对上述问题,文献[ 17]提出了一种彩色结构光条纹中心线提取方法,通过对增强后的彩色结构光图像进行边缘检测,并利用改进的几何中心法提取光条中心线,相比传统方法,在中心线提取的完整性方面有了很大提高,但由于未考虑物体表面曲率影响,精度仅达到整像素级水平。
在深入研究了面结构光光条灰度分布特点的基础上,本文提出了一种基于分层聚类的彩色结构光光条检测方法:对图像中每一行满足灰度阈值的像素点进行分层聚类,获取光条中心点初值,然后根据邻域灰度信息,对光条中心点位置进行亚像素定位,基于颜色距离和欧氏距离判别光条中心点索引;利用上述方法对图像进行由上而下的行扫描,提取出彩色条纹结构光光条中心线。所提方法具备亚像素级别的光条检测精度,稳定性较好,同时适用于线结构光提取。
2 基本原理
基于分层聚类的彩色结构光光条检测流程如
图 1. 基于分层聚类的彩色结构光光条检测方法流程图
Fig. 1. Flow chart of detection method for color structured light stripe based on hierarchical clustering
2.1 光条中心点定位
不失一般性,记灰度图像任一行灰度大于阈值的像素点为
1) 初值:将每一个点标记为一类,因此聚类第
2)根据类中心坐标计算类间距离
3) 判断最小类间距离是否满足分层聚类终止条件min(
4) 将类间距离最小的两个类合并,则第
式中,
5) 重复步骤2)~4),直至满足终止条件。
6) 输出类中心坐标
为了获取更为精确的结构光光条中心位置信息,需要在上述粗定位结果的基础上,进行精定位。类中心
式中,
分两种情况讨论:
1) 若邻域范围内有且只有一个像素点
2) 若邻域范围内存在两个或两个以上像素点灰度值最大且相等,即
遍历所有类中心
2.2 光条中心点索引判别
利用2.1节提出的方法,可精确定位出任一行结构光光条中心位置。为了将每一行光条中心点连接成线,需要对当前行检测出的光条中心点对应的线条索引进行判别。判别方法主要基于欧氏距离和颜色距离。记第
式中,pdist2为欧氏距离计算函数,
在光条中心点
式中,
式中,color(·)为颜色判别函数,根据领域范围内三通道值的大小输出像素点对应的颜色,光条中心点
综上所述,光条中心点
式中,
光条中心点
若
遍历第
利用2.1和2.2节的方法,可完成对彩色图像第
3 实验
3.1 仿真
仿真目的在于: 1)结构光光条连续时,测试算法的检测精度;2)结构光光条存在微小断裂时,测试算法的检测精度;3)结构光光条存在较大断裂时,测试算法的检测精度。
图像分辨率为768 pixel×1024 pixel,结构光光条宽度为3 pixel,根据不同配置要求仿真结构光光条图像,光条中心点真实坐标视为已知,对比不同配置条件下检测结果和真实坐标,计算中心线提取误差。实验中
图 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
|
3.2 实物实验
实物实验的目的在于验证算法在实际场景中的可行性。结构光图案由红、绿、蓝三色光条按照de Bruijn序列排列构成;结构光投射器采用DLP数字投影仪,分辨率为854 pixel×480 pixel,结构光光条宽度为3 pixel;图像采集器为面阵CCD相机,镜头焦距为25 mm,分辨率为1280 pixel×1024 pixel。由于图像背景较为简单、易于分割,为保证光条中心线提取的一致性和完整性,实验中设置
图 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.
[2] 刘长英, 刘洋, 郭继东, 等. 光滑金属曲面视觉测量特征光条自动提取[J]. 光学精密工程, 2016, 24(10): 583-590.
[3] 李兆杰, 崔海华, 刘长毅, 等. 一种基于自动多次曝光面结构光的形貌测量方法[J]. 光学学报, 2018, 38(11): 1112004.
[4] 解则晓, 张安祺. 超大尺度线结构光传感器内外参数同时标定[J]. 光学学报, 2018, 38(3): 0315001.
[5] 白景湘, 曲兴华, 冯维, 等. 双投影结构光三维测量中重叠相移光栅的分离方法[J]. 光学学报, 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.
[9] 杨雪娇, 池海红. 一种改进的光条中心提取方法[J]. 应用科技, 2009, 36(12): 41-44.
[10] 崔希君, 杨川, 刘保华, 等. 线性结构光心的自适应迭代提取法[J]. 西安交通大学学报, 2007, 41(1): 73-76.
[11] 吴家勇, 王平江, 陈吉红, 等. 基于梯度重心法的线结构光中心亚像素提取方法[J]. 中国图象图形学报, 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.
[14] 胡坤, 周富强, 张广军. 一种快速结构光条纹中心亚像素精度提取方法[J]. 仪器仪表学报, 2006, 27(10): 1326-1329.
[15] 李文涛, 王培俊, 唐晓敏. 钢轨磨损视觉测量的轮廓精确快速提取[J]. 光学精密工程, 2018, 26(1): 238-244.
[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.
Article Outline
刘进博, 郭鹏宇, 伍越, 陈卫. 基于分层聚类的彩色结构光光条检测方法[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.