基于SGBM算法的可转位刀片几何参数测量
2023-10-24乔超李帅康洪荣晶孙新平
乔超,李帅康,洪荣晶,孙新平
1南京工业大学机械与动力工程学院;2江苏省工业装备数字化制造及控制技术重点实验室
1 引言
在金属切削加工中,可转位刀具扮演着非常重要的角色,其精度对可转位刀具的切削效率和加工精度有着重要的影响,对可转位刀片几何参数进行准确测量至关重要[1]。可转位刀片的测量方法包括传统人工测量法和视觉测量法,视觉测量法比传统人工测量法误差更小,精度更高,效率更高。双目视觉已经应用到生活中的各个领域,包括人工智能、自动驾驶、工业测量和医疗等领域。双目视觉研究是科研领域重要的一个研究课题。双目视觉[2,3]是较为简单的一种立体视觉,采用左右两个摄像机模仿人类和动物的双目视觉功能,利用摄像机在不同位置拍摄同一物体获取物体双目图像,得到物体的三维立体信息。
目前针对刀具测量主要是通过机器视觉测量。关波[4]基于机器视觉设计刀具几何参数测量系统对刀具进行离线测量。陈宇彤[1]提出基于机器视觉的可转位刀片几何参数测量,通过单目测量系统完成平面几何参数测量,通过引入线激光器与单目测量系统结合组成结构光视觉系统完成三维几何参数测量。
2 双目视觉测距原理
图1 双目模型视觉测量
如果P是三维立体世界中存在的一点,在左图像和右图像上的对应点为Pl和Pr,其横坐标分别为xl和xr。
在这个简化且理想系统下,计算的视差是d=xl-xr,深度Z则利用相似三角形可得
(1)
(2)
由式(2)可推导出深度Z和视差d成反比关系。当视差非常小时,视差的细微变化都会对深度造成很大影响,而当视差足够大时影响很小,因此在用摄像机采集图像时需要保持摄像机与物体适当的距离。
3 双目视觉刀片立体几何参数测量系统
双目视觉刀片厚度测量主要包括五个步骤,测量系统流程如图2所示。
图2 双目视觉刀片测量系统流程
3.1 图像采集
图像采集系统由工业CMOS相机、相机镜头、环形光源等主要部分组成。两个工业相机通过相机夹持机构将其平行固定以保证采集符合标准的图像集。工业相机通过USB3.0接口连接,采集的图像通过PC端直接传入电脑,传输速度快,距离短,信号干扰小,且无需使用图像采集卡。光源为刀片图像采集补光,照亮图像刀片表面特征,根据刀片双目测量特点选取环形光源。环形光源的放置不能遮挡相机的视角,否则成像误差大,直接影响实验结果。在采集可转位刀片图像过程中必须保持相机平行。
3.2 相机标定
相机镜头畸变模型有径向畸变和切向畸变两种,其中径向畸变是因为透镜的制造形状存在误差导致,而切向畸变是由于相机组装无法将透镜和成像装置严格对齐,因此需要利用相机标定减少其带来的误差影响。利用位置保持平行的双目工业相机从左右两个方向一起摄取多对标定板图像。将左右工业相机采集的图像集分别传入MATLAB R2018a中的标定应用程序Stereo Camera Calibrator中,并且输入棋盘格的宽度,识别后的棋盘格如图3所示。
图3 棋盘格角点识别
执行标定程序,并移除误差较大的图像以提高标定结果的准确性。将参数保存到.txt文件中,将该文件中参数提取到VS-OpenCV(Visual Studio-Open Source Computer Vision Library)中并显示到VS的界面上,从上到下依次为左相机内参camerMatrixL、右相机内参camerMatrixR、左相机畸变参数dstCoeffL、右相机畸变参数dstCoeffR、平移矩阵T、旋转矩阵R,如图4所示。
图4 相机标定参数
3.3 立体校正
立体校正的目的是将采集的非共面行校准的实物双目图像校正成共面行校准的双目图像,减少误匹配以提高立体匹配精度和效率。在相机标定中已经获取的标定参数旋转矩阵R和平移向量T,再结合Bouguet[5]算法进行立体校正。经计算得出重投影矩阵Q,世界坐标系和像素坐标系之间的转换是通过Q完成。
(3)
(4)
式中,(ul,vl)和(ur,vr)分别对应左右相机图像上的主点坐标;d是对应特征点视差;Tx是基线距离。
经过立体校正后左棋盘格图像中的任意一点与右棋盘格图像中的对应点都在一条直线上。图5和图6分别为校正前和校正后双目图像效果。
图5 校正前双目图像
图6 校正后效果
3.4 立体匹配
为了计算视差得出视差图,需要寻找立体校正后的双目图像中对应的匹配点,这一过程就是立体匹配。立体匹配分为全局立体匹配、局部立体匹配和半全局立体匹配,全局立体匹配较精确但成本高,局部立体匹配成本较低但不够精确,本文采用成本相对较低且相对精确的半全局立体匹配。
由于测量可转位刀片对测量精度要求较高,采用基于Roberts算法的SGBM(Semi-global Block Matching)立体匹配改进算法对可转位刀片图像进行立体匹配。Roberts算法是一种比较简单的算法,计算成本低,定位准,在本测量系统中通过Roberts算法对立体匹配过程中SGBM算法匹配精度进行提高从而提高双目测距精度。
Roberts算法[6,7]利用局部差分寻找边缘并且采用对角线方向相邻两像素的差近似梯度幅值检测边缘。其梯度公式为
(5)
(6)
(7)
Roberts算法模板如图7所示。
图7 Roberts算法模板
SGBM算法[8-12]是SGM(Semi-global Block Matching)在OpenCV库中的表现形式,主要包括预处理、代价计算、视差优化和后处理等步骤。
基于Roberts算法的SGBM立体匹配改进算法的核心是将Roberts算法应用到SGBM立体匹配过程中提高可转位刀片图像的边缘定位精度。其主要步骤包括:
①利用Roberts算法对刀片图像边缘进行准确定位并完成预处理;
②代价计算;
用d=(xi,yi,IL,IR)表示刀片左右图像中其中两个点为对应点的概率,yi为同名像点的可能性。
(8)
式中,xi,yi分别为刀片左右图像中在同一条左右扫描线上的像点;IR(x)为左扫描线上位置x的灰度值;IR为右扫描线上的采样点经过线性内插的方法得到的灰度。
③通过SGBM算法完成刀片左右图像中同一条左右扫描线上的像点的匹配计算;
④对计算得出的代价进行领域求和运算,参照图像的像素块匹配目标图像的像素块,通过匹配获得一个新的视差图;
⑤通过SGBM算法内部检测算法判断选取的点是否为误匹配点,若是,则将其剔除。
4 双目视觉刀片参数测量验证
刀片厚度测量实验主要包括以下步骤:
①通过双目工业相机平行采集15对棋盘格标定板图像,导入MATLAB R2018a中的标定应用程序Stereo Camera Calibrator,删除重投影误差较大的图像,完成相机的标定工作,获取相机内外参数,如图4所示。
②利用双目工业相机采集一对可转位刀片图像,如图8所示,并将采集的图像集传入VS-OpenCV。
图8 双目相机采集的一对图像
③利用计算出的相机内外参数和Bouguet算法完成刀片图像立体校正,获取非共面行校准(即去畸变)的双目图像。校正效果如图9所示。
图9 双目图像校正效果
④分别利用SGBM算法和基于Roberts的SGBM算法对上述双目校正图像进行立体匹配,通过坐标映射求出视差图(见图10)。通过对比两图可以看出,基于Roberts算法的SGBM得出的视差图相对清晰。
图10 SGBM视差(左)和改进SGBM视差(右)
⑤测量刀片厚度。通过视差图中获取的三维坐标即可求出刀片上表面到下表面的距离,将刀片上表面到下表面的距离转化为上表面中一点到下表面中一点的距离,即可转位刀片厚度。对厚度7.5mm的标准可转位刀片分别采用SGBM算法和基于Roberts的改进SGBM算法进行测试,测量结果见表1。
表1 测量结果 (mm)
由表可得,使用SGBM算法测量的最小误差为0.044mm,改进后SGBM算法测量的最小误差为0.024mm,测量误差更小,说明SGBM算法测量精度高,改进后能够提高精度,可以满足基本测量。
5 结语
搭建可转位刀片视觉测量系统,通过研究图像采集、双目相机标定、图像立体校正、图像立体匹配等关键图像处理技术,提出基于Roberts算法的SGBM算法改进方法,实现了可转位刀片立体几何参数厚度精确测量。同时由于双目视觉平台底座制造不够平整以及平台放置存在一定放置误差没有达到理想的平行效果,导致刀片厚度测量结果的误差值有一定的波动。