邵新杰,李晓磊,宋 彬,唐香珺
(陆军工程大学石家庄校区车辆与电气工程系,河北 石家庄 050003)
身管是火炮实现其威力的重要执行部件,发射时在火药气体的作用下赋予弹丸初速、旋速和飞行方向。在发射过程中,内膛要承受高温、高压、剧烈摩擦等恶劣环境,火炮身管内膛的技术性能会逐步下降。因此,定期对火炮内膛进行检查,及时发现火炮内膛中的潜在隐患,就显得尤为重要。目前对火炮内膛的检测方法主要有测径法,窥膛法等。这些方法虽然能够在一定程度上对炮膛技术状态进行检测和判断,但是存在检测效率低,误判概率大,容易造成二次损伤等不足。结构光检测技术是近年来兴起的机器视觉检测方法的一种,它是一种同时利用图像和结构光源的测量技术,其主要工作原理是通过已知的照明光源中的几何信息来分析未知的实物信息[1-5]。相比于传统的检测技术,具有非接触、高精度、高效率等优点。对于视觉传感器的标定,一般可以分为摄像机参数的标定和系统结构参数的标定[6-7]。目前,应用最为广泛的CCD参数标定方法是张正友提出的基于共面参照物的标定方法[8]。而针对传感器结构参数的标定,主要有拉丝标定法和齿形标定法等。由于火炮身管结构光检测系统的工作环境存在视场小、光线弱等特点,导致传统的标定方法有较大的局限性[9]。本文设计了一种适用于身管检测系统的现场标定筒,并基于结构光理论提出了相应的标定方法。利用此标定筒上特征环槽具备的距离约束和角度约束,有效完成系统结构参数的标定。
本文所提出的火炮身管结构光检测系统包括离线参数获取和在线磨损量测量两部分,如图1所示。其中,离线参数获取主要通过采集参数已知的标定筒图像和光栅参数反演出整个检测系统的垂轴放大率和成像物镜的垂轴放大率,对检测系统参数进行标定;在线磨损量测量是指对实际火炮身管膛线磨损量进行测量,根据离线获取的检测系统参数计算实际的火炮身管膛线磨损量。由两部分作用不难看出,检测系统参数标定的准确性直接关系到在线磨损量检测的精度,对检测系统的实际应用效果至关重要。检测系统实物连接如图2所示,主要包括CCD相机,光学反光镜、激光光栅等。
图1 火炮身管膛线光学检测方案Fig.1 Optical inspection diagram for abrasion of artillery barel rifle
2.2.1 激光三角法
激光三角法是结构光检测系统的核心工作原理,按结构光光栅投射角度的不同,激光三角法分为直射式和斜射式两种。在实际应用中,尤其是针对火炮身管这一类检测对象而言,斜射式的应用明显要优于直射式。因此,本文设计的身管检测系统采用斜射式激光三角法。
图2 火炮身管膛线检测系统实物图Fig.2 Optical inspection diagram for abrasion of artillery barel rifle
斜射式就是指入射的结构光光栅与被测物体的表面成一定的角度进行投射,其光路图如图3所示。在以一定的角度投射到被测物体表面后,经过被测物体表面漫反射后的结构光光栅再通过CCD相机的透镜投射到CCD相机的光敏面上。由图3分析知,入射方向投射过来的结构光光栅与参考平面成α夹角,经过被测物体表面几何形状反射过来的结构光光栅和成像系统中的CCD相机里面的光敏面的夹角为β。根据三角形相似原理,得到公式(1):
(1)
代入坐标得公式(2):
(2)
化简公式(2)得公式(3):
(3)
式中,y是H1相对H0的高度;x是点M1相对M0的像移;a是点H0的物距;b是点H1的像距。通过标定系统参数,即可依据公式(3)利用像移x计算高度y。
图3 斜射式激光三角法Fig.3 The inclined type laser triangulation method
2.2.2 结构光深度检测原理
物体深度信息的原理如图4所示,假设平面m和平面n为高度相差Δh的两个水平面。如果由激光投射器投射的激光束沿着光路1投射到平面m上,则激光束投射在A点处,如果激光束沿着光路投射到平面n上,则激光束投射在B点处,A点和B点分别投影到CCD传感器靶面上时,二者对应的像素点相距为Δp。所以当线结构光条纹投射到有高度变化的物体表面时,其条纹图像会在对应的突变处发生偏移,偏移的距离与物体表面突变的大小成正比。此处我们定义图像中每个像素对应的空间深度为深度分辨率k,则:k=Δh/Δp,易知在整个光学结构固定的情况下,k值为一定值。所以,通过判断图像中条纹偏移的像素距离,可以对物体表面的深度突变信息进行计算。
图4 原理示意图Fig.4 Schematic diagram
由于本检测系统采用斜射式激光三角法的光路设计结构,通过光路设计使结构光栅以较大的入射角投射至被测物体表面,从而CCD相机可以在成像区域采集到由于被测物体表面高低差变化产生的结构光条偏移图像,结构光条偏移的距离h′与物体表面突变的高度h,在忽略镜头畸变影响的情况下,具有一定的线性关系。
结合斜射式光学三角测量法和结构光深度检测原理对成像过程进行标定,如图5所示,被测物体表面的高度变化h与CCD传感器上两个像素点之间的物理距离h′之间的关系如式(4)所示:
(4)
式中,a为结构光光轴和接收摄像机镜头光轴的交点到接收摄像机镜头前主面的的距离;b为接收摄像机镜头后主面到成像中心点的距离;θ1为结构光光轴与被测面法线的夹角;θ2为摄像机镜头光轴与被测面法线的夹角。
图5 标定成像原理Fig.5 The principle of the calibration imaging
由于身管内膛的阳线和阴线之间存在高度差,结构光经内膛表面反射后发生变形。高度差越大,采集到的结构光图像偏移量越大,二者存在线性关系。假设被测平面m和平面n的高度差h已知,根据检测系统光学结构参数,可以求解出h与h′之间的线性关系,即完成检测系统标定。
CCD相机获取图像后,在计算机中存储为M×N维数组。数组中的每一个坐标点为像素点,其数值反映了图像的亮度,大小用灰度值表示。如图6所示,定义图像像素坐标系OXY,假设图像平面内任意一点坐标为(x,y),其代表该像素在图像上的列数和行数,单位为像素(Pixel)。
图6 图像平面标定原理Fig.6 The calibration principle of the imaging plane
图6中,以区域A0和B0中第i条结构光条AB和CD为例,设在图像像素坐标系OXY内任意直线的方程为y=ax+b,则由线性最小二乘法公式(5),分别对结构光条AB和CD进行线性拟合,得到第i条直线段方程Ai+Biy+Ci=0,其中,Ai、Bi、Ci分别为拟合直线方程的系数。
(5)
针对被测物体表面高度差变化剧烈的图像,提取区域A0中拟合得到直线段A′B′的横坐标最大值ximin和区域B0中对应折断偏移直线段C′D′的横坐标最小值ximin,代入对应直线段方程中,得到横坐标极值条件下的纵坐标yimax_x和yimin_x,从而得到结构光条在区域A0和B0边界折断处的极值坐标B(ximax,yimax_x)和C(ximin,yimin_x)。
由点到直线距离公式(6),分别计算得到特征点B(ximax,yimax_x)到直线段C′D′的距离值dAi,同理可以得到特征点C(ximin,yimin_x)到直线段A′B′的距离值dBi,以及两距离值的平均值dCi。
(6)
式中,(xi,yi)为区域A0和B0的特征点坐标;Ai、Bi、Ci分别为特征点所在直线方程的系数。
若造成结构光条图像发生折断偏移的凹槽高度差为已知值h,则由pi=dCi/h可以得到图像偏移量与被测物体表面高度差之间的线性比例系数pi,对提取的i条结构光条得到的比例系数取均值,即可得到图像中光条折断偏移量与被测物体实际高度差的比例系数P,如式(7)所示:
(7)
至此,即完成了测量系统针对标准尺寸凹槽的快速标定。
为了满足系统现场快速标定要求,本文设计研制了针对不同口径火炮身管的标定筒。以口径155 mm的标定筒为例,标定筒的内径尺寸为155 mm,外径尺寸为175 mm,其内壁分为A、B、C三个区域,分别为纵向凹槽区域、周向凹槽区域和光滑区域,如图7所示。
图7 内径155 mm标定筒实物图Fig.7 The prototype of the calibration cylinder with a diameter of 155 mm
标定筒每个区域包含不同深度尺寸和结构类型的凹槽,检测系统可以根据系统标定需求获取不同类型凹槽的多种特征图像。经过数字内径千分表和表面粗糙度仪测量,各凹槽尺寸精度和表面粗糙度均满足对检测系统进行标定的精度要求。
以宽度为60 μm的结构光条为例,利用本文设计的膛线磨损量检测系统采集标定筒区域B的图像,可以看出结构光在经过相邻两个凹槽时分别发生了偏移,如图8(a)所示。首先提取图像中两条结构光光条,如图8(b)所示;然后综合采用十字中值滤波和维纳滤波对结构光图像进行降噪处理,噪声得到极大抑制,如图8(c)所示。
图8 60 μm结构光条提取和降噪处理Fig.8 60 μm structured light stripes extraction and noise reduction processing
受标定筒内表面形状的限制,降噪处理后的结构光条中间部分直线度高,而左右边缘区域出现弯曲,会对中心线提取和像素距离计算造成误差[10]。因此,本文截取结构光条中间至截断偏移处部分进行计算。为了计算方便,旋转图像使截取的结构光条指向竖直方向,如图9(a)所示。采用灰度重心法对图9(a)中的结构光条进行中心线提取,如图9(b)所示,结构光单线条被提取出来。
图9 光条中心线提取Fig.9 Center line extraction of light strip
由于火炮身管膛线是螺旋形结构,为了更好地在图像上显示光条纹受到调制而发生的偏移,结构光条纹与竖直方向成一定角度投射在待测面上,如图9所示。根据式(4),对应实际测量系统中参数为θ1=45°、θ2=0°,所以被测物体表面的高度变化h与CCD传感器上两个像素点之间的像素距离Δp可以表示为公式(8):
(8)
其中,a和b为已知的系统结构参数,a=110 mm,b=33 mm;α表示结构光投射出的光点经过凹槽调制的偏移距离在与光条垂直方向上的分量系数;μ表示CCD传感器上每个像素点对应的尺寸(边长),由相机的参数可知μ=0.0074 mm,数值较小,此处不利用此参数进行计算,而与未知参数α的乘积β作为未知参数计算。
计算深度为1 mm的凹槽处结构光图像中粗条纹的像素偏移距离,见表1。表中计算了30张受调制的结构光条纹图像,并计算出其平均值为29.481。取平均值代入式(8),计算得到参数β=0.010085。
表1 1 mm凹槽对应的条纹偏移像素距离Tab.1 Stripe offset pixel distance corresponding to the 1 mm grooves
本文对未执行过射击任务的某型火炮身管内膛进行系统膛线检测与磨损量验证计算。由于身管内膛结构光图像采集、处理,以及膛线高度、磨损量计算过程与标定筒内壁结构光图像的标定过程相同,在此不再赘述,处理效果如图10所示。
图10 身管内膛结构光条纹像素间距计算示意图Fig.10 Schematic diagram for calculation the pixel distance of structured light stripe in the barrel bore
通过以上方法分别对10张身管内采集的结构光图像进行膛线高度计算,由于待测火炮身管未执行过射击任务,其膛线理论磨损量为零。分别计算出10个检测数据与标准火炮身管膛线高度的绝对误差值,结果如表2所示。
表2 膛线高度检测绝对误差Tab.2 Rifling height measurement of absolute error
从表2可以看出,火炮身管膛线深度进行检测的绝对误差不超过0.01 mm,符合实际中的检测要求。考虑到身管的加工也有一定的误差,而且可以通过对图像处理过程中图像去噪、条纹中心线的提取等过程的算法改进,可以使测量误差进一步降低。
针对内膛缺陷检测系统现场标定的实际需求,本文围绕自行设计的标定筒,利用结构光理论提出了一种现场标定方法。经过实验验证计算,该方法可以有效确定检测系统的结构参数,能够以较高精度对检测系统进行标定,提高了火炮身管检测的效率和质量,为实现战场快速和精准保障提供了理论依据和技术。