张 迎,江 剑,路 卓,王杰兵
(南京理工大学 机械工程学院,江苏 南京 210094)
线阵相机立靶密集度测试技术[1]是一种非接触式测量技术,其靶面由两台相机交汇构成的有效视场来决定,尺寸高度易于调节. 由于具有使用方便、结构简单、测试速度快和自动化程度高等突出优点,基于线阵相机交汇的立靶测试系统越来越多地替代同类产品,广泛应用于靶场测试活动中. 在测试系统中,弹丸过靶坐标的计算依赖于相机仰角、系统基线长度、弹丸成像中心所在位置的像元编号等参数的获取. 其中要想得到弹丸成像中心所在位置的像元编号,必须先精准定位弹丸在图像中的位置,然后确定它的中心点位置[2-4]. 在图像处理领域,对于微小物体的提取算法[5-9]多是利用背景差分法[10]、边缘检测法[11]等常规方法. 但是,针对线阵相机立靶测试系统来说,其背景容易变化,亮度也难以保持均匀,因此,并不适用前面所提到的这些算法. 针对这些问题,本文提出一种弹丸图像提取的改进算法,可快速精确地提取出弹丸中心坐标,提高测试系统的捕获率和实时处理效率.
为了提取出弹丸图像,识别其中心位置,首要的便是对图像进行分析,才能针对图像特点制定有效的算法,成功实现需求. 图 1 为系统结构示意图,两个CMOS线阵相机位于靶架底角并呈正交摆放,两相机视场重叠的圆形区域即为有效靶面,靶面周围三面布满光源,其作用是给背景增加亮度,使弹丸能够从背景中区分出来. 无弹丸经过靶面时,相机正对光源拍摄,所得图像整体亮度较高. 弹丸过靶时,遮挡部分光源,使得相机图像上出现一个由于弹丸过靶所形成的暗点. 本文工作便是将暗点在图像中的位置提取出来,以便后续计算获得弹丸过靶坐标.
图 1 系统结构示意图
图 2 为无弹丸穿过时利用相机拍摄的背景图像,从中可以看到,背景亮度并不均匀,主要呈现出明暗交替的特点,部分区域亮度较低.
图 2 背景图像
图 3 为背景图像中某一行的灰度值分布,从图中可看出背景图像灰度跨度超过50,波动幅度较大,这即是弹丸容易淹没在背景中不易提取,从而导致测试系统捕获率降低的主要原因之一.
图 3 背景图像灰度分布
经过对图像的分析不难发现,虽然背景中的亮度不均匀,但仍然具备相应的规律,主要有以下两点:其一,亮度的不均匀性主要体现在同行不同列的像素点之间;其二,对于同一列的像素点来说,其灰度值基本相同. 造成这些现象的原因在于,同一行的像素灰度值虽然在同一时刻获得,但是一行共有2 048个像素点,通过相机视场对应的是靶面上较长的一段距离. 由于外界环境以及光源自身不均匀性的影响,这些像素点容易形成灰度值的不均匀分布. 由于系统使用的是CMOS线阵相机,每次拍摄只获得一行图像,通过相机视场角对应的宽度通常只有不到2 mm,结合超高速的相机行频,图像上同一列像素点灰度值基本不变. 总而言之,同行像素代表同一时刻不同位置的灰度值,同列像素代表同一位置不同时刻的灰度值.
通过以上分析研究,本文提出一种二次提取快速获得弹丸图像信息的方法,此方法分别对图像列内像素和行间像素做互相关运算定位弹丸位置,后利用阈值分割法求得弹丸中心像元编号,算法流程如图 4 所示.
弹丸过靶瞬间,CMOS线阵相机连续抓拍得到的包含弹丸的图像如图 5 所示. 在离测试系统固定的距离布置一个触发装置,弹丸穿过触发装置后,触发装置给相机发出指令,经过固定延时,相机连续快速拍照产生弹丸过靶图像. 触发装置摆放距离和相机延时时间应结合相机行频进行计算,保证在获得弹丸过靶图像前可拍得至少N行空白背景模板,以便后续图像处理过程使用.
图 4 基于二次提取的弹丸信息提取算法流程图
互相关函数为随机信号X(t)、Y(t)在任意2个不同时刻t1、t2下的值之间的相关程度[12]. 本文对互相关运算做如下定义:
对于函数f(t)、g(t),有
R(u)=f(t)*g(-t),
(1)
式中:*表示卷积;R(u)表示2个函数在不同的相对位置上互相匹配的程度.
第一次提取按列进行提取,经过前面的分析可知,背景中同列像素灰度值相近,在含有弹丸像素的列中,弹丸像素灰度值比背景灰度值低. 将每列像素一分为二,用前半列像素和后半列像素按序进行互相关运算,计算出相关系数,其数学表达式为
(2)
一般来说,背景像素列的相关程度更高,其相关系数绝对值也较高,而对于含弹丸像素列,不论弹丸像素在前半列、后半列或者是同时分布在两列之中,利用式(2)求出的相关系数应比背景像素列低. 因此,确定一个阈值用来区分背景像素列和含弹丸像素列,便可将弹丸像素所在的列提取出来. 图 6 所示为各列做互相关运算后的相关系数分布图,从图中可以看出背景像素列的相关系数绝大部分处于0.6~1的范围内,而含弹丸像素列的相关系数绝对值最小值小于 0.2,因此可以很清楚地区分它们.
图 6 列相关系数分布图
图 7 按列提取结果图
阈值的选择非常重要,如果过高,会遗留大量背景像素,对后续处理产生噪声干扰,如果过低,会将部分弹丸像素误当成背景像素处理,导致后续弹丸灰度中心提取精度降低. 采集一张不含弹丸的背景图像,对各列像素进行如式(2)的互相关运算,得到每列像素的相关系数. 为了尽可能地滤除背景像素干扰,可取其中的绝对值最小值作为阈值. 在弹丸图像中,相关系数绝对值大于阈值的像素列认为是背景像素列,小于阈值的列认为是含弹丸像素列,然后将它们提取出来. 为了防止弹丸边缘被误认为背景像素列,将提取后的图像左右各扩张10列可保证提取的完整性,如图 7 所示为按列提取后的弹丸图像.
第二次提取按行进行提取,将前面按列提取后的图像中前N行背景像素叠加求均值,作为模板行.
(3)
将模板行和各像素行依次按序作互相关运算,相关系数大于阈值(前N行背景像素行两两做互相关运算,为了最大限度滤除背景像素干扰,可取相关系数绝对值最小值为阈值)的行认为是背景像素行,相关系数小于阈值的行认为是含弹丸像素行,然后将这些行提取出来. 图 8 所示为模板行与各像素行做互相关运算后的相关系数分布图,从图中可以看出,各行相关系数绝大部分处于0.7~0.9 范围内,含弹丸像素行分布在第50行~第60行之间. 同样,为了防止弹丸边缘被误认为背景像素行,将提取后的弹丸像素行上下各扩张10行,如图 9 所示为按行提取后的弹丸图像.
图 8 行相关系数分布图
图 9 按行提取结果图
二次提取后,成功实现将弹丸位置精准定位在一块尺寸远小于原始图像的小图像中. 若想获得弹丸中心坐标,首先要去除背景像素的影响,由于背景并不均匀且弹丸像素灰度值小于背景像素,因此,可以考虑利用阈值分割法[13]滤除背景像素的影响. 在二次提取后的弹丸图像正上方分离一块同等尺寸的背景图像,为了消除背景噪声的干扰,取其中像素灰度值最小值为阈值,对弹丸图像进行阈值分割处理. 其运算公式为
(4)
式中:h(i,j)为阈值分割前的弹丸图像;g为阈值;k(i,j)为阈值分割后的弹丸图像.
最后一步是确定弹丸中心坐标,也就是求得弹丸的竖直中心线所在的图像列编号. 利用遍历的方法,按照式(5)依次假设每一列为弹丸竖直中心线,将此列左右两边图像各像素的灰度值进行叠加然后做差分运算,当出现绝对值最小的情况时,可认定该列为弹丸中心. 具体算法如下:
设当前图像尺寸为m×n,当前列为第k列,则有
(5)
式中:x(i,j)为阈值分割后的图像;i为行编号;j为列编号.Δk的绝对值取最小值时,第k列所对应的弹丸原始图像中的列编号即为所求的弹丸中心像元编号.
利用图 1 所示的测试系统,采用像元数为2 048、像元尺寸为7.04 μm的CMOS线阵相机分别结合背景差分法和基于二次提取的弹丸信息提取算法进行靶场试验,并与纸靶坐标进行比对,表1 为进行10次射击的试验结果.
为了比较两种算法下测试系统的测量精度,以纸靶坐标为参照,分别统计利用两种图像算法计算所得x坐标、y坐标以及位置误差,列入表2.
通过计算可以得出,基于背景差分法获得的弹丸坐标和纸靶坐标相比,x坐标最大误差为2.6 mm,标准差为2.08 mm,y坐标最大误差为3.8 mm,标准差为2.54 mm,坐标平均精度为3.2 mm. 基于二次提取的弹丸信息提取算法获得的弹丸坐标和纸靶坐标相比,x坐标最大误差为2.3 mm,标准差为1.61 mm,y坐标最大误差为2.4 mm,标准差为1.78 mm,坐标平均精度为2.3 mm. 由此可见,使用基于二次提取的弹丸信息提取算法计算出的弹丸坐标精度更高.
表1 试验结果对比
表2 两种算法计算所得坐标误差统计
通过分析研究发现,弹丸过靶图像处理产生的弹丸成像中心提取误差主要由以下几方面原因造成:
1)受光源限制,弹丸过靶图像亮度低,背景复杂,均匀度差;
2)信噪比低、弹丸目标像素占比小且目标形状尺寸易变;
3)受蚊虫、振动等其他外界因素干扰,增加了噪声的影响.
与其对应的改善措施,除了光源等硬件装置的迭代更新之外,通过算法的不断改进,仍可进一步缩小误差,提高测量精度,这也是该领域后续研究的重要工作之一.
本文通过对弹丸图像背景复杂、均匀性差等问题的分析,提出了一种基于CMOS线阵相机的弹丸图像处理方法,可提取有用信息计算弹丸过靶坐标. 此方法先对图像进行二次提取定位弹丸大致位置,去除无用数据,再利用阈值分割滤除背景影响,最后确定弹丸中心坐标. 相比于常规的弹丸提取算法,此方法可显著消除背景噪声影响,提高弹丸提取精度和系统捕获率,在靶场测试活动中具有实用意义.