基于三维机器视觉的电池包插针尺寸检测方法研究与实现
2021-12-17俞洋金彬沈威君
俞洋,金彬,沈威君
(江苏理工学院 电气信息工程学院,常州 213001)
在传统的生产工艺中,电池包插针的尺寸检测大多使用激光三维测量的方法,该方法在测量过程中会产生大量的点云数据,存在处理速度较慢的问题.为了提高电池包插针尺寸检测的执行效率和准确度,本文对传统三维检测算法进行了改进,设计了一种将三维数据与二维图像相结合的电池包插针尺寸检测方法,并通过搭建实际系统进行了验证.改进的检测方法通过点云数据处理、数据降维、二维图像处理等流程,提高了检测速度并使检测结果更加精准.本文采用三角法[1-4]主动式非接触光学检测,其测量原理如图1所示.测量系统通过发射器发出激光线照射在被测物体上,一部分由于漫反射产生的反射光线会到达成像系统,最后通过汇聚作用在光敏元件上形成对应的像点.由于入射光线与反射光线形成了相似三角形,可以通过相似三角形的求解获得物体的实际位置[5].
图1 激光三角法测量原理图Fig.1 Principle diagram of laser triangulation
1 点云数据处理
三维激光测距的原始数据为大量的点云数据,为了取得好的测量效果,需要首先对点云数据进行处理,获得可靠的点云数据.
1.1 优化内存管理
在传统测量中,即使是小到硬币大小的产品通过线激光扫描,也会产生几十万甚至几百万个点云数据[6],海量的数据需要在执行I/O操作时,反复将磁盘文件放入数据缓存区,严重影响数据的读取运行速度.本文通过创建文件映射内核对象,并以指针形式对点云数据进行操作,优化了内存数据管理机制.分别用如上的传统方式与优化的Windows内存管理机制读取1000万个点云数据,通过对表1所示的10组实验数据进行比较可知,采用优化内存管理机制后,点云数据的读取速度有了显著提升.
表1 点云数据读取速度比较Tab.1 Comparison of reading speed of point cloud data
1.2 点云数据去噪
所获取到的点云数据通常会有噪声干扰.噪声主要来自于环境干扰、操作员操作不当、机械设备安装不良、线激光自身局限性、被测物体表面性质变化等各类因素.
图2为三种滤波方法对原始数据的处理效果.由于电池包插针尺寸检测精度要求极高,通过比较分析可知,拉普拉斯滤波和均值偏移算法会影响到结果的精度[7-10],因此本文采用双边滤波对点云数据进行去噪处理.
图2 原始数据和滤波处理效果图Fig.2 Original data and filter processing effect picture
1.3 点云数据空洞修补
由于遮挡、测量设备的限制、待测对象自身形状的特点等因素的影响,采集的点云数据中经常包含各种无法测量的区域,即存在大量的空洞.本文设计的空洞修补流程如图3所示.
图3 空洞修补流程图Fig.3 Flow chart of cavity repair
首先,通过区域分割法或K-近邻点角度识别法检测是否有空洞;其次,检测到空洞后,对空洞进行分类,如果空洞是非封闭空洞,需要对空洞进行封闭处理;然后,对空洞边界进行优化处理,生成基于曲率的径向基函数的隐式曲面方程;再通过所建立的曲面基于曲率去截面曲线,然后通过线的交点求得填充点;最后,对填充点进行三角剖分,并进行优化处理,完成空洞的修补.
1.4 点云数据精简
线激光扫描仪扫描被测物体会获取物体海量点云数据,这些点云数据庞大且密集,严重制约了后期检测效率的提高.实际上后期处理时大部分数据是无意义的,只有少部分代表性的数据需要进行运算求解.因此在数据运算前,可使用基于曲率的精简法对海量点云数据进行特征点云区域的选取、冗余点的删除等精简处理.
2 高维数据降维
在点云数据处理的基础上,数据降维算法可以将三维的点云数据降维成低阶维度的数据,从而进一步有效的减少计算量,提高后续检测算法的运行效率.而低维数据对高维点云数据的还原度,则决定了后续检测算法的处理精度.
本文采用基于主成分分析算法(Principal Components Analysis,PCA)的方法进行灰度截取,将点云数据中的高度信息转换成灰度信息,即将三维点云数据压缩成二维灰度图像,从而在后期的插针尺寸检测中可以用灰度值代表高度值进行插针定位,在精简数据的同时便于尺寸运算.
PCA降维算法的基本原理是设计一列与原始数据向量线性组合的主成分,所设计的主成分组建成为高维数据结构网络的一组正交基[11-12],互不干扰且不包含杂质信息.构建主成分向量的主要思路如下:将原始高维数据空间中一对相互垂直的向量设置为第一个与第二个主成分,其方向依据数据映射方差决定,方差大的为主成分方向.按照前一个主成分与后一个主成分空间垂直的顺序形成所有主成分,方向的选择同样也依据方差决定.通过方差权重阈值的更改可以进行主成分数量的选择,从而达到数据降维的目的.PCA降维算法可以形象的用如图4所示的图形进行几何解释,其中X1、X2代表原始特征,F1、F2代表新特征,通过观察可知降维后的数据集中在第一维.
图4 PCA降维算法Fig.4 PCA dimension reduction algorithm
灰度截取的方式是将降维后的高度信息转换为灰阶值,灰度图像在二维图像处理时可以更高效地定位出感兴趣的区域.具体转换公式如下:
(1)
公式(1)利用最大高度值做除数,目的是为了使灰阶值均匀排布以及灰度图像在视觉方面更清晰.
具体降维处理流程如下:
步骤1.输入高维数据矩阵D={x1,x2,x3,…,xn},降维目标维数d;
步骤2.利用公式
(2)
对数据集做中心化运算,用X代表此时的中心化矩阵;
步骤3.计算中心化矩阵与其转置矩阵的积XXT;
步骤4.求解步骤3结果矩阵中的特征值与特征向量;
步骤5.从步骤4结果中选择低维空间维数d个特征值,利用其相应的特征向量W={w1,w2,w3,…,wn}作为高维和低维空间的关联矩阵;
步骤6.最终输出低维数据Y=W×X.
3 二维图像预处理
以上对点云数据的处理并不能完全消除噪声和空洞的影响,所以二维图像仍然需要进行图像预处理.二维图像的预处理流程如图5所示.
图5 二维图像预处理流程图Fig.5 2D image preprocessing flow chart
首先,利用任意的二维图形在被测图像中规划出待处理的区域,这个区域被称之为ROI(Region Of Interest,感兴趣区域).ROI的选取使目标区域缩小,只需要对缩小目标区域进行重点处理,可以提高图像处理的速度和检验精度.其次,针对环境、相机等引入的噪声,通过高斯滤波和中值滤波对二维图像进行噪声滤除,从而进一步提高后期图像处理的精度.最后,由于线激光在扫描电池包插针时,或多或少地存在低谷阴影面积,通过二值形态学和灰度形态学对图像进行操作,达到填充边界、滤除无效目标的效果.
图6(a)为点云数据采集时受到空洞数据影响的图像.从图中可以看出在插针的前段和末端受到的影响较为严重,主要原因是插针为直立的尖头形状,激光扫描仪在插针正上方时不可避免的存在扫描死角.图6(b)为受到高频噪声影响的图像.
(a)典型空洞图像 (b) 典型噪声图像图6 受到噪声和空洞影响图像Fig.6 Images affected by noise and voids
图7为通过图像预处理后的效果图.从中可以看出通过点云数据预处理和图像预处理相结合的方法,可以大幅降低了噪声并修补填充了空洞.
图7 预处理后的图像Fig.7 Preprocessed image
4 插针轮廓检测与尺寸检测
4.1 插针轮廓检测
通过二维图像预处理去除噪声影响并得到ROI,但是ROI并不全是插针信息,仍然带有背景像素.因此,需要通过Blob分析将前景图像与背景图像相分割开来,其主要过程分为阈值分割、图像二值化以及连通域提取[13-15].
阈值分割主要用来区分插针与背景,通过基于图像的灰度值直方图的方法,可以有效地将图像的前景与背景图像分割开来.
图像二值化主要用来分隔开目标图像与背景图像,通过设置像素点的灰度值为0或255的方法,实现前景图像与背景图像的分割,从而大大减少图像数据,提高了图像处理的效率.
连通域是指图像中由相同像素值且位置相邻的前景像素点组成的区域.由于本文所研究的电池包插针图像中包含多个插针区域,在进行区域运算前,需要进行像素点连通区域的组合与标记,从而获取并分隔开各个插针区域.
4.2 插针尺寸检测
本文提出的插针尺寸检测方法通过降维算法将三维数据映射为二维灰度图像,再通过运用二维图像处理技术,识别图像中的插针针尖区域以及确定基准面,最后映射到高度数据中获取准确数值,从而实现对插针尺寸的检测.检测方法的流程图如图8所示.
图8 本文提出的改进检测方法流程图Fig.8 Flow chart of improved detection method
由于确定灰度值最高的点时容易导致数据的误判,而且数据遗漏的情况也经常出现,所以在识别定位插针针尖区域以及确定基准面时,设计了如下方法进行判断,流程如图9所示.首先,通过剔除高亮点的方式将尖锐噪声去除;其次,由于如果对区域内所有值进行空洞判断,会导致处理时间大大加长,所以我们选取理想针尖位置的数据进行空洞判断.如果空洞干扰超过一定范围,就需要利用点云空洞插补算法重新对该区域进行填充,从而保证数据的可靠性.
图9 针尖及基准面确定算法流程图Fig.9 Algorithm flow chart of needle tip and datumplane determination
5 尺寸检测方法的实现与验证
5.1 实验系统的硬件搭建
如图10所示,本实验利用基恩士公司的LJV-7060线激光扫描相机在已搭建的机械平台上对电池包进行扫描.实验用的标准电池包插针的尺寸长度标准为13.180±0.6mm,由苏州泰科电子有限公司提供.
图10 电池包插针尺寸检测硬件系统示意图Fig.10 Schematic diagram of hardware system for batterypack pin size detection
5.2 实验系统的软件设计
本文通过MATLAB仿真实设计降维算法,并利用Halcon软件开发二维图像检测算法,最后通过Labwindows/CVI软件开发平台开发了基于线激光传感器的3D影像检测系统软件,软件交互界面如图11所示.
图11 软件主界面Fig.11 Software main interface
该软件交互界面以用户登录权限、参数配置、数据采集、图像处理、数据统计、数据管理等为核心功能模块,配合PLC通信交互、伺服运动控制实现对产品尺寸高速、高精度测量,并呈现在交互界面上供管理人员操作使用.
5.3 实验结果验证
5.3.1 精度验证实验
本实验分别采用传统三维测量方法与本文改进方法进行了分组实验,检测提供的10组标准电池包,实验数据的测量误差及方差如表2所示.
表2 测量精度对比表Tab.2 Comparison table of measurement accuracy
从表2实验数据可以看出,传统方法测量误差均值为0.013 mm且方差均值为0.00037 mm2,而本文的改进方法测量误差均值达到0.003 mm且方差均值为更低的0.00005 mm2.从中可以看出改进的三维与二维相结合的插针尺寸检测算法实现的精度达到±0.01mm的要求,对比传统方法,在检测精度上有了明显提升且数据更具稳定性.
5.3.2 运行效率验证实验
本实验使用传统方法与改进方法进行了分组实验(同组实验材料相同),得到的实验结果如表3所示.
表3 测量效率对比表Tab.3 Comparison table of measurement efficiency
从实验数据可以看出,改进方法在运行效率比传统方法有了明显改善,在这10组实验中传统方法的运行效率的平均值为2179 ms,而改进方法为1268 ms,改进方法比传统方法节省时间1 s左右.因此,改进方法在保证检测精度的前提下,有效地提高了检测效率.
5.3.3 漏杀率验证实验
漏杀即错将不良品判定为良品.本实验对200个不良品电池包在样机上进行了反复验证,检测结果如表4所示.
表4 漏杀率统计表Tab.4 Statistics of missed killing rate
由表4可以看出,本文提出的三维与二维相结合的插针尺寸算法的检测准确率高于99%,漏杀率低于1%,说明该检测方法在检测结果上是可靠的,可以满足工业要求.
6 结束语
本文针对电池包插针尺寸检测存在的问题,对传统三维检测方法进行改进,提出了三维数据与二维图像相结合的插针尺寸检测方法,将三维相机采集到的三维数据降维成二维图像,并对二维图像进行处理,映射到三维图像中获取精准数据进行测量.实验结果表明,改进的电池包插针尺寸检测方法具有较高的检测速度和可靠的检测精度,解决了传统三维尺寸检测方法速度慢的问题,并在检测精度上有所提高.