印制电路板点云的关键轮廓特征提取 下载: 725次
ing at the difficulty of extracting the key contour features of printed circuit boards, an algorithm for transforming the folded edge into the boundary and extracting the key contour feature points is proposed. First, the algorithm establishes a topological structure of the original point cloud data of the printed circuit board by using k dimensional-tree, and realize fast search of the closest k neighborhood points. Pass-through filtering algorithm is used to complete the pre-processing of the printed circuit board point cloud. Second, Random Sample Consensus algorithm is used to extract the plane features with the largest area in the printed circuit board separately, so that the key contour features are spatially separated. The point clustering of the fold edge feature is completed by Euclidean clustering based on normal angle and realize the idea of transforming the folded edge into the boundary. Finally, according to the relationship between set threshold and vector angle between k neighborhood points, one can determine whether the query point belongs to the boundary contour feature point. Experimental results show that the proposed algorithm can extract the key contour feature line of printed circuit board point cloud more completely.
1 引言
印制电路板(PCB)的关键轮廓特征线提取是印制电路板质量检测的基础和关键,在光电行业的检测中起着非常重要的作用[1]。同时,印制电路板作为最基本的电子部件,为各种不同大小、不同功能的电子元器件提供连接,是非常重要的载体。轮廓特征线作为一种描述物体外形结构和进行尺寸测量的关键特征,已经在实际工程领域得到了广泛应用。特征轮廓线在二维图像领域已经得到了明确的定义,即两个不同灰度区域之间的界限[2]。国内很多学者针对印制电路板二维图像的边缘信息提取进行了相关的研究。如乔闹生等[3]提出了结合小波变换与Canny边缘检测的图像融合边缘信息的提取方法;柏长冰等[4]利用Hough变换快速提取出了印制电路板图像的瑕疵边缘信息。但这类方法都不涉及三维(3D)点云,也不是将三维图形映射为二维图像进行处理,而只是单纯地对直接采集到的二维图像进行传统的数字图像处理。
随着3D数据获取精度的提高和成本的降低,三维扫描技术在多个领域为工程师提供了解决实际工程应用的新思路。点云数据相比于二维图像多了一个维度,因此,三维激光扫描技术是一种具有空间三维信息的测量方式。通过把测量引入三维空间,可以获取传统测量仪器、数字图像分析无法获取或不宜获取的目标结构参数,在一定程度上减轻了传统方法中需要从多个角度分别采集图像的工作量,同时,只需要一个完整模型就可以完成采集目标典型特征的尺寸信息、表面重建等任务,提高了后续工作的处理速度。3D点云特征的描述与提取是点云信息处理中最基础也是最关键的一部分,点云的识别、分割、重采样、配准、曲面重建等处理的大部分算法,都严重依赖特征描述与提取的结果。
在三维点云领域,轮廓特征线主要有边界线和折边两种[5],边界线主要是非连接区域线,折边主要包含曲率变化较大的连接区域所构成的线[6]或折线[7]。一般轮廓特征线可以利用特征点拟合出的一条最佳直线来间接表示[8],且目前已有一些关于建筑物轮廓线的提取[9]、道路的边缘提取[10]等方面的研究。Liu等[11]利用二维图像处理方法中多尺度思想,结合多尺度下法向量特征的差异性检测目标潜在的特征语义,进而检测出特征点。但该方法应用在印制电路板点云上时,最外圈轮廓和关键芯片处的特征轮廓线缺失严重,不能满足实际要求。凹凸多边形作为一种常用点云多边形的计算方法也被广泛应用在实际工程应用中,Hu等[12]针对岩石表面包含有多种复杂形状的特点,利用凸包算法对其表面的形状轮廓线进行了提取。但该方法适合于对目标体最外侧轮廓线的提取,而如果目标体内部细节信息较多,则会丢失较多特征信息。邓博文等[13]利用随机采样一致性(RANSAC)算法和形态学梯度相结合进行特征点集的选取。但该方法对于含有多种形状结构的目标体,其提取信息会出现遗漏或错误。
上述多数研究成果的实验对象均为人造规则点云数据或者大型场景下的激光点云数据,并且多数都将边界和折边分开进行处理,虽然效果较好,但均不能用于印制电路板的特征线提取,且相应的算法在运行时间上开销较大,计算度稍显复杂,无法满足工业上对实时性的要求。印制电路板和上述学者所研究的建筑物、道路和岩石表面等处理对象相比,其最显著的特点就是整体尺寸较小,结构较为精细,要求处理方法的每一个环节都是小尺度处理。考虑到印制电路板形状结构的特殊性,上述一些方法直接用于印制电路板关键轮廓特征提取的效果不是十分理想。本文基于实际工程项目,实验对象为印制电路板点云数据,其点云模型相对较小,细节特征较多,导致特征线较为密集。在获得高精度点云数据的前提下,对印制电路板特征线的提取可以为后期产品尺寸估计和关键芯片位置的提取做好准备。
2 算法概述
本文所提算法的核心工作主要有两点,一是本文算法直接针对PCB三维点云数据进行处理,二是提出了一种将折边转化为边界,再进行轮廓线特征点提取的方法。轮廓特征线中的边界线相对于连续区域的折边线更容易提取,并且提取的精度相对更高,本文采用将折边线转化为边界线的处理思想,再利用边界提取算法,完成对印制电路板关键特征轮廓线的提取。
考虑到工业生产效率和实时性的要求,本文选用易实现、速度快的欧氏聚类分割方法,同时,为了尽可能多地保留边界点信息,引入邻域点法向量夹角的约束条件,使得聚类分割出的关键芯片边缘部分较为齐整。最后,通过比较邻域点和查询点之间向量夹角与设定阈值的大小关系确定查询点是否属于关键轮廓线的特征点。该算法的流程如
3 点云数据预处理
3.1 滤波
在获取点云数据时,由于设备精度、操作者经验、环境因素等带来的影响,以及电磁波衍射特性、被测物体表面性质的影响,点云数据中将不可避免出现一些噪声点[14]。通过观察实际采集到的印制电路板数据可知,噪声点主要是一些离群点,即游离在印制电路板表面之外的噪声点。因为本文算法直接对点云数据进行处理,所以离群点会对后期算法结果造成干扰,影响计算精度,甚至会出现错误的结果。因此,在印制电路板的关键轮廓线特征点提取过程中,需要将滤波处理作为预处理的第一步。本文采集到的数据中离群点主要集中在印制电路板背面的延伸方向上,因此,采用直通滤波方法进行滤波较为方便,并且提高了后期的关键轮廓线特征点的提取速度和精度。
图 1. 印制电路板关键轮廓特征提取算法框架图
Fig. 1. Block diagram of key contour feature extraction algorithm of printed circuit board
3.2 kd-tree的建立
由于点云数据主要是表征目标表面的大量点集合,冗余度很高,而且不具备二维图像或传统实体网格数据集合的拓扑关系信息,因此,为了进行法向量平面的估计,本文利用kd-tree建立离散点之间的拓扑关系,从而实现基于k近邻点的快速查找。
4 特征点的提取
4.1 RANSAC最大平面的分离
当三维激光扫描仪的采样间距设置好以后,理论情况下,所采集到的同一目标物体数据点间距值都应为采样间距,即同一目标物体的点云总是紧邻的,视觉上不会出现明显的断裂或离散现象,而原始欧氏聚类算法正是利用距离阈值,从而实现有断裂或离散的数据点的聚类,但对连续区域内的点云数据,不能实现点聚类,因此,需要先将印制电路板的关键特征分离成离散团状,再使用本文的改进算法。印制电路板上规则的平面几何结构较多,而RANSAC作为一种可以鲁棒地估计出几何模型参数的方法,能够估计出印制电路板上平面模型的参数,从而将对应的平面模型分离出来,实现“分割”的目的,并且对外点和噪点具有较好的鲁棒性。
鉴于印制电路板的元器件都是焊接在一块面积最大的平板面上。因此,利用RANSAC算法的这个特性,可以完成对印制电路板中面积最大的平面区域的单独提取,从而实现关键特征在空间上的分离,为后续算法提供了可用于特征提取的点云数据。
4.2 基于法向量夹角条件的欧氏聚类
为了将折边点转换为边界点处理,其处理思路为:在完成印制电路板最大平面分离的基础上,根据空间中离散数据点的欧氏距离,采用点云聚类算法完成对点云的分割。其判断不同位置的数据点为同一簇类的条件为:k邻域点pi到查询点pq的距离L(pq,pi)满足一定阈值条件。可以表示为
式中:阈值dth的设定与实验采集到的印制电路板点云分辨率有关。本次实验设备采集到的点云原始分辨率为0.02 mm,经过前期实验验证,在10倍点云分辨率下获取到的聚类簇集合完整地包含了PCB上所有关键电子元器件,但仍然含有部分不需要的缺失边缘成分,通过多次实验测试,本实验最终选取阈值dth=0.5 mm。
同时,为了使同一簇类点集拥有更多相似的几何性质,即边界点信息更为完整,引入法向量夹角对聚类条件进行限制。首先,使用k近邻搜索(k-NNS)对每一个查询点pq∈Pk进行k近邻点的快速查找。其中,Pk=
通过最小二乘法拟合平面,利用约束条件di=0,可得到一个协方差矩阵c∈R3×3,其表达式为
式中:ζi表示pi点的权重,通常为1。由k近邻点确定的三维质心,表示为
进而可得,
式中:λm为特征值;vm为特征值λm对应的特征向量。由约束条件所得到的最小特征值对应的特征向量即为查询点pq∈Pk处的法向量nq。
此时,根据计算得出的法向量,根据公式
得到法向量夹角阈值αth,以便用于算法下一部分的计算。
基于法向量夹角条件的欧氏聚类算法描述如下。
1) 为待处理点云数据P创建一个kd-tree,其中,P=
2) 新建一个空的点云索引向量C,用于储存聚类结果;新建一个向量Q,并初始化为空,用于储存单次的聚类结果;新建一个bool型向量pr,用于判断某点是否被处理过,初始化为
3) 新建点索引变量i,初始化i=0,对任意一点pi∈Pk执行以下步骤:
①首先判断pi是否被处理过。若pr=true,则i=i+1,执行
②根据序列Q[j]中已存入种子点pq的索引,利用kd-tree搜寻距离pq最近的k个点,计算每一个k近邻点
则判断点
③将新加入的点pj作为新的种子点pq,重复②。
④直到向量Q中所有点都被处理过,此时,根据下式
判断聚类是否满足要求。若满足,则将Q中的点索引放入到C中,清空Q,若不满足,则舍弃并清空Q,i=i+1,选取下一个种子点。上述算法过程的伪代码流程如
表 1. 基于法向量夹角的欧氏聚类
Table 1. Euclidean clustering based on normal vector angle
|
由
4.3 边界线的提取
4.3.1 边界点投影面构建
利用协方差矩阵计算拟合平面的法向量n=(A,B,C),则投影平面可用Pk点集中的点
4.3.2 基于查询点邻域向量夹角差的边界提取
边界点可以利用投影平面上查询点pq=(xq,yq,zq)和其k近邻点
式中:k近邻点
分别求出查询点pq和其k近邻点
点的边界属性示意图如
图 3. 边界点确定条件。(a)点在边界轮廓上;(b)点不在边界轮廓上
Fig. 3. Defining conditions of boundary points.(a)Point is on the boundary contour;(b)point is not on the boundary contour
5 实验与分析
实验所采用的扫描设备为北京天远三维科技公司的FreeScan X5激光手持三维扫描仪,实验数据为该设备扫描获得的高精度印制电路板点云,并且不存在遮挡问题。系统环境为Windows 7,算法采用C++实现,并使用Qt 5.9.1+VTK实现可视化。算法的运行环境为PC机:CPU为Intel(R) Core(TM) i5-4590 CPU,内存为16.0 GB。
为了验证本文算法的可靠性,对
表 4. 轮廓尺寸测量结果与实际值对比
Table 4. Comparison between measurement results of contour size and actual values
|
图 4. 6种不同算法对印制电路板特征线提取效果比较示意图。(a)原始点云数据;(b) r半径搜索算法;(c) k近邻搜索算法;(d)凹多边形提取算法;(e)空间凸包提取算法;(f)RANSAC算法;(g)本文算法
Fig. 4. Comparison of feature line extraction effects of 6 different algorithms on printed circuit board. (a) Raw point cloud; (b) r search algorithm; (c) k-NNS algorithm; (d) concave polygon algorithm; (e) convex hull algorithm; (f) RANSAC algorithm; (g) proposed algorithm
表 2. 边界点提取后保留特征线点数统计结果
Table 2. Statistical results of number of reserved feature points after boundary point extraction
|
表 3. 本文算法各子模块耗时
Table 3. Time-consuming of each sub-module of proposed algorithm
|
图 5. 提取效果对比图。(a)(c) k近邻搜索算法;(b)(d) r半径搜索算法
Fig. 5. Comparison diagrams of the extraction effects. (a)(c) k-NNS algorithm; (b)(d) r search algorithm
图 6. 提取效果对比图。(a)(c)RANSAC方法;(b)(d)本文方法
Fig. 6. Comparison diagrams of the extraction effects. (a)(c) RANSAC algorithm; (b)(d) proposed algorithm
由
同时,从
鉴于本文算法有多个处理环节,现给出算法各子模块的运行时间,其中不包括每一部分读取和保存相应结果的耗时。
考虑到实际工程应用中安装印制电路板盖板的精度要求,本文除了将获取到的特征点数目作为评判算法结果的标准,还利用自己开发的点云处理软件测量印制电路板点云提取结果中各个部分的尺寸,并将测量尺寸与PCB实际尺寸进行对比,根据误差是否在一定允许范围内判断结果好坏,从而间接判断所提取到的特征点是否正确。为进一步解释,现列举出实际工程应用中印制电路板的部分轮廓尺寸,如
针对
一般来说,印制电路板外形的常规尺寸公差为±0.15 mm,由
6 结论
提出了一种直接以印制电路板点云作为处理对象,通过将折边点转化成边界点,从而将印制电路板中关键轮廓特征提取出来的算法。首先,对原始点云数据进行预处理,其中,包括直通滤波处理和点云kd-tree拓扑结构的建立。其次,为了实现折边点转化为边界点,第一步,利用RANSAC算法将印制电路板中面积最大的平面区域单独提取出来,从而实现电路板内部关键特征在空间上的分离;第二步,采用基于邻域点之间法向量夹角限制条件的欧氏聚类完成折边特征点的聚类,从而实现折边点向边界点的转化;第三步,根据查询点和k近邻点之间向量夹角与设定的阈值之间的大小关系,来判定查询点是否属于边界轮廓特征点。最后将提取出的所有关键轮廓特征点合并在一起,即得到印制电路板的关键轮廓特征。
另外,该算法选取速度相对较快的欧氏聚类,同时,考虑到在折边转化过程中最重要的是尽可能保证折边边界的完整性,引入法向量夹角的限制条件。从最终实验的显示效果上看,本文算法最大程度地保留了印制电路板的关键轮廓特征,且本文算法提取的特征轮廓点数目最多。
本文算法也存在一定的局限性:1)算法受原始点云数据质量影响较大,在今后工作中,应进一步研究如何在有少量数据缺失的条件下,完成对关键轮廓特征的提取;2)印制电路板种类不够丰富,下一步工作要提高本文算法的普适性;3)下一阶段需要利用更多的数据集建立起相应的结果评价标准;4)需要继续优化算法,进一步降低运行时间开销,更好地满足实际应用的实时性要求。
[1] Barbucha R. M. K, J. M, et al. Comparison between conventional and laser method of imaging tracks on PCB[J]. Proceedings of SPIE, 2007, 6598: 65980I.
[2] Chen CC. Fast boundary detection: a generalization and a new algorithm[J]. IEEE Transactions on Computers, 1977, 100(10): 988-998.
[3] 乔闹生, 邓磊, 曾友兵, 等. 含噪声且较模糊的印刷电路板光电图像边缘检测研究[J]. 光电子·激光, 2013, 24(4): 740-745.
Qiao N S, Deng L, Zeng Y B, et al. Study of noisy and darker PCB photoelectricity image edge detection[J]. Journal of Optoelectronics·Laser, 2013, 24(4): 740-745.
[4] 柏长冰, 齐春, 宋福民, 等. Hough变换快速检测圆形PCB Mark[J]. 光电工程, 2005, 32(9): 75-78.
[5] Ni H, Lin X G, Ning X G, et al. Edge detection and feature line tracing in 3D-point clouds by analyzing geometric properties of neighborhoods[J]. Remote Sensing, 2016, 8(9): 710-718.
[6] Demarsin K, Vanderstraeten D, Volodine T, et al. Detection of closed sharp edges in point clouds using normal estimation and graph theory[J]. Computer-Aided Design, 2007, 39(4): 276-283.
[7] Sampath A, Shan J. Segmentation and reconstruction of polyhedral building roofs from aerial lidar point clouds[J]. IEEE Transactions on Geoscience and Remote Sensing, 2010, 48(3): 1554-1567.
[8] Rusu RB, SundaresanA, MorissetB, et al. Leaving flatland: realtime 3D stereo semantic reconstruction[M] ∥Intelligent Robotics and Applications. Berlin, Heidelberg: Springer Berlin Heidelberg, 2008: 921- 932.
[9] 王春林, 孙金彦, 周绍光, 等. 影像辅助下LiDAR数据建筑物轮廓信息提取[J]. 国土资源遥感, 2017, 29(1): 78-85.
Wang C L, Sun J Y, Zhou S G, et al. Building boundary extraction using LiDAR data and images[J]. Remote Sensing for Land & Resources, 2017, 29(1): 78-85.
[10] 吕亚磊, 李永强, 范辉龙, 等. 基于车载LiDAR点云联合特征的道路边界提取研究[J]. 地理与地理信息科学, 2019, 35(1): 30-37.
Lü Y L, Li Y Q, Fan H L, et al. Research on road boundary extraction based on conjunction feature of vehicle-borne LiDAR point cloud[J]. Geography and Geo-Information Science, 2019, 35(1): 30-37.
[11] Liu X S, Jin C N. Feature line extraction from unorganized noisy point clouds[J]. Journal of Computational Information Systems, 2014, 10(8): 3503-3510.
[12] Hu L, Xiao J, Wang Y. An automatic 3D registration method for rock mass point clouds based on plane detection and polygonmatching[J]. The Visual Computer, 2020, 36(4): 669-681.
[13] 邓博文, 王召巴, 金永, 等. 基于形态学梯度的激光扫描点云特征提取方法[J]. 激光与光电子学进展, 2018, 55(5): 051203.
[14] 朱德海. 点云库PCL学习教程[M]. 北京: 北京航空航天大学出版社, 2012: 151- 152.
Zhu DH. Point cloud library PCL tutorial[M]. Beijing: Beihang University Press, 2012: 151- 152.
Article Outline
钟文彬, 李旭瑞, 孙思, 刘光帅. 印制电路板点云的关键轮廓特征提取[J]. 激光与光电子学进展, 2020, 57(14): 141001. Wenbin Zhong, Xurui Li, Si Sun, Guangshuai Liu. Key Contour Feature Extraction of Printed Circuit Board Point Cloud[J]. Laser & Optoelectronics Progress, 2020, 57(14): 141001.