基于激光光斑的金属表面检测处理方法
随着金属精加工的不断发展, 在某些加工工序中仍然存在加工与检测相分离的现状, 表面硬化加工就是其中之一。用高能量的激光照射在金属表面的时候, 激光束会改变金属表面的分子组成结构, 使表面硬度增加30%左右, 经过这样加工的金属表面不易出现划痕, 增强了这种工件的耐磨性。表面的硬度与金属表面的凹凸程度密切相关, 在加工过程中即使工件表面出现很微小的凹凸变化也会降低加工质量, 引起表面凹凸的主要原因是激光束的能量没能控制在一定范围之内。在加工之后检测可能带来检测效率低、工件报废、反复加工等不利于生产的因素。针对以上一些有待改进的地方, 本文提出了一种将检测与加工结合在同一个过程中的方法, 在加工的过程中激光照射在工件表面会产生光斑, 使用CCD 传感器采集激光的光斑, 借助于图像处理算法通过光斑的灰度值判断出工件表面的凹凸程度, 得到的处理结果既可以用来标注光斑图片合格与否, 也可以用来作为反馈信号自动调节激光器的功率, 这样就可以在加工的过程中对加工结果做出判断, 更重要的是可以及时修正激光器的功率, 提高生产效率。
本文所研究的重点为通过光斑的灰度值得到工件表面的凹凸程度, 检测光斑的方法有多种, 可以使用多个激光器同时照射在工件表面, 这种方法硬件构成复杂, 控制系统要调节多台激光器的功率, 设备维护成本很高。传统的光斑中心检测算法主要有重心法和Hough 变换法,重心算法对图像的质量要求较高, 结合本实验的特点即中光斑与背景对比度较大, 为了提高准确率和计算速度, 在进行凹凸判断之前采用重心法和二值图像的连通区域标记法确定光斑的有效数据区域。为了便于现场工作人员更直观查看检测结果, 我们以处理后的光斑灰度值作为Z 坐标, 在VisualC++开发环境中使用MATLAB 矩阵函数库把最终结果以彩色三维图像的形式显示出工件表面的凹凸程度, 这种显示方法操作方便, 可动态观察加工结果, 取得了良好的实验效果。
1 光斑检测算法
光斑有效数据区域的确定和表面凹凸程度的检测是研究的重点。为了保证检测过程的快速性和检测结果的准确性, 我们采用自动识别光斑中心的算法。采集到的光斑图片如图1 所示, 由于CCD 采集器、激光器与加工台的位置是固定的, 光斑在图片中的位置基本不变, 为了减小计算量和计算误差, 可先截取出光斑, 即图1 (该图片为未使用下述算法得到的图像)中的大黑色方框内的部分。这样就不会对大部分的光斑背景进行运算了, 通过实验得到了一些较大的光斑区域, 最后选定140×140 的光斑数据区域, 也就是位于320×240 的图片中的( 129, 70) ( 269, 70) ( 129, 210) ( 269, 210) 四个点组成的正方形中的数据。在这块数据所表示的图像中, 小正方形内部为激光器的中心, 即激光器的大部分能量都集中在这个区域内, 在小正方形的周围还有一些散乱的光斑, 这些光斑是由于激光器的功率发生波动造成的, 这对加工过程很不利。如果在加工之后对工件的表面进行检测, 大小正方形之间的这部分就是凹凸不平的部分, 因此控制这个区域的激光能量会提高金属表面硬化加工的加工质量。算法包括以下几点:
(1) 在二值图像中标注出光斑的轮廓, 对较模糊的光斑部分进行滤波。
(2) 由光斑周围的易波动部分计算出该部分数据变化范围和光斑的整体均匀度并判断出激光器的发射功率变化。
(3) 为了能更直观的看到工件表面的凹凸程度, 将光斑的灰度值做为Z 坐标, 并用不同的颜色表示各个数据段, 即以彩色三维图像显示工件表面凹凸情况。
1.1 光斑的边界标记及灰度均匀度计算
由于JPG 格式的图片有R、G、B 三个色彩分量, 选定的 140×140 的图片其实是由三个140×140 的矩阵组成, 每个矩阵的( i, j) 点分别代表图片中相应点的R、G、B 色彩分量, 首先对图片进行RGBTOGray()的处理, 就将3 个矩阵合成一个矩阵该矩阵记为矩阵I, 先选定阀值将矩阵二值化, 记为矩阵BW, 二值化的阀值取决于光斑和背景的对比度, 变换之后的0- 1 的含义见式2.1, 该阀值是一个经过平均值计算得到的, 再经过滤波后会重新修正该阀值, 即重新计算BW矩阵。
用BW 矩阵对I 矩阵进行滤波, 采用点称算法, I=I·BW, 点乘计算之后I 矩阵中的背景数据全部为0, 而光斑数据被保留下来, 使背景数据不会影响计算结果, 即完成了对光斑数据的滤波。按照式2.2 计算光斑的重心坐标(X0,Y0)。
坐标(X0,Y0)是整个光斑的重心坐标, 由这个坐标采用圆拟合与边界标记相结合的算法得到光斑的边界曲线, 即划定了有效的数据区域。
由于点乘算法的BW矩阵取决于阀值, 所以I=I·BW 会丢失光斑边缘数据, 所以计算出(X0,Y0)之后, 在原始矩阵中以(X0, Y0)为中心寻找所有光斑数据同时将背景数据设置为0, 并记录数据区域的大小( 以象素数为单位) 。这样得到的I 矩阵比I=I· BW得到的I 矩阵在光斑边缘上有较大的差别, 前者更接近光斑的实际形状。
1.2 均匀度的判断
I 矩阵中的数据代表光斑的实际灰度值, 这个数值直接反映出光斑的亮暗, 间接反映出工件表面的凹凸程度, 在加工过程中希望工件表面保持一致的平整性, 即灰度值保持一直, 因此可以先对I 矩阵中的数据进行统计, 例如统计在平均值之内的数据, 如果这个统计值占总数据量80%以上, 就认为该加工点的平整度达标, 反之则说明工件表面凹凸不平或者是有层装结构。首先要对数据进行统计, 统计前根据平均值划定一区间, 分别统计落在区间内外的两种数据, 并记录落在区间外部数据的坐标值, 这些坐标值用于指示该金属工件表面是凹凸结构还是层状结构。其次要对经过数据滤波后的I 矩阵进行均匀度分析, 该过程基于统计出的数据结果, 可以看作是上一步的工作的细化, 统计只能大致判断出表面的基本状况。采取静差最小的计算方法, 即均值方差最小, 可以进一步得知在平均值区间内的数据是如何分布的, 这个结果可以用来标记工件的技术指标, 但不会对本算法结果有什么影响。首先要得出所有数据的平均值, 相加I 矩阵中所有不为0 的数据再除以非零值象素总数, 得到光斑平均灰度值, 再经过平方差算法就可以得出这张图片的灰度均匀度参数。
2 控制系统的设计
该系统采用闭环控制方式, 控制系统原理框图如图2 所示, 前向通路为主接线板- >电机驱动电路、激光功率调节电路—> 电机、激光器—>工作台, 反馈回路包括CCD 图像采集通路和工作台位置检测通路两部分。电机控制信号和工作台位置信号均通过CAN 总线连接到上位机, CCD 采集通路由63X11SP PAL 制式CCD 传感器和采集卡组成。
为了使系统能够高速可靠的与上位机通讯, 使用了 USB7325 高速光电隔离型模入数据采集模块, 该模块A/D 转换方式为程控触发和外部触发两种方式。16 路TTL 电平的数字量输入和16 路数字量输出接口。主接线板上主要为电源模块、SJA1000CAN 总线收发器和CAN 总线接口端子。主要设计工作包括主接线板的设计、上位机软件设计和CCD 采集系统的安装。
3 实验结果
把设计好的系统加到工作台上, 在其他条件不变的情况下得到如图3(左)所示的光斑图像, 与图1 相比灰度均匀度有了很大的改善。实际应用中我们希望以三维图像的形式将金属表面的平整度显示出来, 即在三维坐标系中将图片的灰度值作为Z 坐标, 在三维坐标空间中( x, y) 表示图片中的象素位置, 绘出所有点的灰度值之后, 通过这些点做一个平滑的曲面, 并用不同的颜色表示不同的灰度值, ( 黄色和红色表示灰度值较高) 这样以灰度值为高度的空间曲面就把金属表面的凹凸程度反映出来。由图3 可以看出黄色居多的中间部分是激光器的中心, 且这部分的灰度值相差较小, 图中标有“A”的区域对应于图3(左)的下部, A 区有少量为黄色, 表明激光器在这个区域的能量不够集中, 导致金属表面不平整, B 区域对应于图3(左)的顶部, 这个区域产生的原因是选择140×140 的矩阵时选择区域较大引起的, 并不是说激光器能量太低, 对于加工过程来说, 表明激光器还没有加工到B 区域, 随着工件的旋转, B 区域可能是已被加工过或者是将要被加工。通过严格控制激光器的功率大大降低了激光束发散的可能性, 从而提高了加工质量和检测速度。
4 结论
传统的表面硬化加工是根据经验值设定激光器的功率, 属于开环控制, 不便于控制加工质量和结果检测, 基于激光光斑的金属表面检测方法很好的解决了这个问题。在实验中通过对大量现场图片进行处理和分析, 得知该系统对激光器的功率控制的很好, 保证了加工质量, 取得了良好的实验结果。
本文作者创新点: 通过采用自动识别激光光斑的算法来确定光斑边界, 由所得的光斑灰度值判断金属表面的凹凸程度, 该判断结果同时会用来控制激光器的功率, 即将加工和检测统一在同一个过程中, 即保证了加工质量又提高了检测效率, 解决了加工与检测分离的问题有较大的实用价值。