何 凯,张 斌,闫鑫龙,孟凡军,张大舜
(1.中北大学 电子测试技术国防重点实验室,太原 030051;2.中国兵器工业集团 第五五研究所,长春 130000)
高速连发武器的弹着点坐标是衡量连发武器性能优劣的重要指标。连发测试过程中,对于弹着点坐标的测量是靶场测试中评估弹道特性和弹道系数的重要参数,对武器系统的优化设计具有重要意义[1-3]。目前国内外用来测量连发弹丸坐标的主要方法之一是CCD线阵交汇系统。
线阵CCD交汇测试方法主要用到2台线阵CCD相机,两台相机的视角在空中交汇而成虚空立靶,当弹丸经过视场交汇的空间时,两台线阵CCD相机可以拍到弹丸的位置信息,根据该信息即可结算出坐标[4-6]。用线阵CCD进行非接触测试的方法结构简单、测量精度高,目前已被广泛使用[7-12]。而测连发弹丸坐标的传统方法指相机一直以最大帧频持续拍摄,拍摄完成后处理所有图像得到所有弹丸坐标,该方法产生的数据量巨大并需要对所有图像进行处理,处理时间过长[13-16]。
为了满足连发武器研制中测量射击精度的要求,针对CCD线阵交汇系统中测试弹丸连发坐标时以最大帧频连续拍摄,数据量过大而导致处理时间过长的问题,以及多个弹丸同时过靶的问题,本文提出基于多峰值检测算法和自适应阈值的目标检测算法的快速检测连发弹丸坐标算法,该方法能快速检测出准确的连发弹丸坐标,大幅缩短处理时间,并且保证了连发弹丸坐标的正确率,将弹丸过靶信号与弹丸图像信息进行匹配,排除了连发过程中因多个弹丸图像同时在一张图片中引起的错误识别的问题。
本文采用双CCD交汇[17-19]的方法对过靶弹丸进行坐标检测。
将两台线阵CCD布置在同一平面内矩形的两个底角,该矩形平面即为靶面,当弹丸穿过靶面时两个CCD可从两个底角捕捉到弹丸的位置信息,再通过布阵的三角形关系即可得到弹丸的位置坐标信息。
如图1所示,将两台线阵CCD相机放置于靶面的左右两侧,左侧为CCD1,右侧为CCD2。图中方形视场交汇区域即为弹着点测试有效靶面,当弹丸通过该区域时,利用双目视觉原理可以准确获取弹丸的坐标信息,两台线阵CCD相机的焦距分别为f1与f2,线阵相机光心坐标分别为O1(xo1,yo1)和O2(xo2,yo2),相机与水平线的夹角分别为α1和α2。弹丸在各CCD图像中所成目标像素区域的中心位置表示为Ai1和Ai2,da为线阵相机的单个像元尺寸,利用公式(1)可以准确获取弹丸的坐标信息(xi,yi)。
图1 线阵式CCD交汇靶
(1)
触发方式采用激光光幕方式进行触发,与天幕靶不同,测试系统的光源选用人造光源,采用半导体激光器发射激光,经原向反射屏发射到广角镜头形成探测光幕面,检测空间中是否有弹丸飞过光幕,大视场角的光学镜头接收汇聚原向反射屏的反射光,光电二极管配合光电调理放大电路输出弹丸通过光幕时的信号,用于启动图像采集模块。
多峰值检测算法需要根据弹丸的过靶波形信号来确定弹丸对应的图像在相机拍摄的所有图像中的位置。为了获取弹丸过靶的波形信号,在传统双线阵高速相机交汇的基础上,采用90°的“一”字线型半导体激光器配合原向反射屏形成探测光幕,通过大视场角的光学镜头接收会聚原向反射屏的反射光,选用光电二极管检测弹丸过靶时的光通量变化,输出过靶信号。保证系统在整个靶区内都可以有效探测过靶目标。
在传统双线阵高速相机交汇立靶系统的基础上,使用激光光幕具有抗干扰强、光束整形质量好,可靠性高、设备测试精度高等特点;同时激光光源配合大视场角光学镜头的结构具备有效视场大,成像清晰的优势。可以增强测量光幕的探测和反应速度方面的性能,以此达到系统快速反应、测量准确的特点系统结构如图2所示。在同一水平线上,放置两个线阵CCD相机和光电转换模块,线阵CCD相机拍摄的每一幅图片都由409 600(10行4 096列)个像素点组成,两个相机位置处分别放置一个激光器,激光器发射出90°的扇形光幕,AC,CD和DB处都放置反射装置,激光经反射装置反射后在相机上成像,激光交汇形成光幕面为坐标系平面。当连发弹丸通过两台主机呈45°仰角并分置于同一直线上组成的激光光幕时,弹丸过靶遮挡的光通量变化会引起两台主机中光电转换器的电平变化并产生触发信号,触发信号会被传递给主控箱触发器模块;只有触发器接收到触发信号时才会触发CCD相机进行拍摄,而CCD相机在无弹丸过靶时是全亮的清晰视界,只有弹丸过靶会产生阻挡光线的阴影。CCD相机拍摄的图像通过TCP协议将数据依次传输至上位机,同时光电转换模块产生的电平变化会被采集卡记录下来同样通过TCP协议传递给上位机。上位机通过时序逻辑控制和数据处理得到正确的过靶坐标并显示。
图2 测试系统结构图
作为双激光交汇测量系统的测量主机,主要功能有:产生激光光幕、检测过靶信号、拍摄过靶图像、产生过靶模拟信号、产生过靶数字信号。以上5个功能满足了捕捉、识别过靶弹丸的所有要求。
按照硬件功能的不同,测量主机包含光学收发模块、CCD线阵相机模块和光电转换模块组成。CCD相机模块主要由CCD线阵高速相机、固定装置组成;光学收发模块由广角镜头、激光发射装置及配套反射镜组成;光电转换模块则负责将弹丸过靶产生的光信号转换成设计好的模拟信号和数字信号。
为了在CCD相机中成清晰并且准确的过靶图像,需要全面地评估镜头的各个性能参数。激光光幕较为汇聚,弹丸过靶速度快时间短,所以选择大口径广角光学镜头对原向反射屏反射回来的激光进行汇聚与整理。相机的焦距是光通过镜头精确成像的最小路径长度,实验中需要选择汇聚能力强且焦距短的镜头,使其能够将整个视场的光线汇聚在一起,故而选择24 mm焦距的短焦镜头。光圈数是指焦距f与相机镜头的入射光瞳直径D的比值。其作用在于调节光线入射的多少,改变成像的亮度。测试过程中需要准确检测光通量的变化,产生弹丸过靶信号,用于触发相机拍摄弹丸过靶图片以及对图像数据的筛选工作,所以要求所选镜头具备大通光量,选取F值最小为1.4的大光圈光学镜头。根据上述分析,选用大光圈定焦光学成像镜头,为了扩大有效的探测范围,需要选择大广角镜头来收集光线,综合以上考虑选取84.1°广角光学成像镜头。
为了形成激光光幕交汇成像,需要形成两片扇形激光光幕并调整两者位置形成交汇靶面。选择一字型发射角大的大功率激光器,同时还需要其发热小、体积小、能效比高、工作稳定。故此选择发散角为90°的高稳定半导体激光器。使用原向反射屏可以极大增强激光光线的反射效率,使得原本探测不到、成像不清、区别度低的靶面区域得到有效的改良与提高。使得测量主机在有效靶面内灵活探测过靶信号成为了可能,也使得主机内的高速CCD相机成像均匀、亮度高、对比度大。因此在整个靶面中,测量过靶弹丸的过程中,原向反射屏起到了汇聚光线,辅助成像的效果,增强了探测范围,提高了过靶信号的探测灵敏度,增强了CCD相机的成像信噪比。
如图3当第一发弹丸通过光幕时,光电转换模块将光通量变化转换成电信号产生过靶信号,过靶信号传递给触发器,触发器在收到过靶信号后,发送触发信号给相机,相机开始在设定的采集时间内连续拍摄弹丸过靶图像。采集结束后上位机得到多幅待检测图像和一段过靶信号数据。对过靶信号数据使用多峰值检测算法进行处理,得到每发弹丸对应图像在数千幅图像中的位置,挑选弹丸对应的图像,再使用自适应阈值的目标检测算法求出目标的像素坐标。最后使用像素坐标剔除算法确定该发弹丸的准确坐标。
图3 连发弹丸坐标处理方法流程图
连发模式需要触发器在被首发弹丸触发后产生连续的触发序列。而在精准测量高速CCD相机的响应延迟后,需要设计符合连发弹丸测量模式的触发器。在连发弹丸测量模式下,两个高速相机CCD1和CCD2均被设置为外触发,曝光时间10 μs,采集频率18 500 Hz,以10帧图像组合为一幅图像,采集一幅图像时间为0.54 ms。
触发器连发模式的设计目的在于接收到触发信号后使两个高速线阵相机CCD1和CCD2同时同步以最大帧频连续触发一定的时间,并将开始采集的命令传递给采集卡,使采集卡开始采集信号,最后将采集结束的信号传递给上位机。为给予两个高速相机一定的反应时间,连发模式采集时间间隔设置为0.6 ms。
上位机依靠TCP/IP协议与触发器模块进行通信,上位机作为TCP Client会保留触发器模块的IP地址,触发器被设置为TCP Server接收;触发器模块通过外部中断接收光电转换模块传递的触发信号,只有在一定时间内接收到触发信号才完成一次触发,否则触发器模块将触发信号清零;触发器模块完成一次触发后将同时给CCD1、CCD2和采集卡传递开始采集的信号,CCD1和CCD2将按照采集信号进行图像采集,采集卡同样开始接收并记录光电转换模块传递的模拟信号。
弹丸坐标时,相机以最大帧频连续拍摄图像,同时接收变化的过靶信号,其时序如图4所示。
图4 信号时序图
在系统进行坐标测量时,激光器产生的激光光幕既是测坐标光幕,也是外触发光幕。当有弹丸穿过激光光幕时,产生光通量变化,这些光信号经过原向反射屏反射,并被光学成像镜头汇聚到光电转换器上,光电转换器将探测到的变化的光信号转化为电压信号,最后经过峰值保持电路与电压比较器将模拟电压信号转换成数字信号,并将该触发信号传递给触发器同时将模拟电压信号传递给高速采集卡。
第一发弹丸通过光幕触发了CCD1和CCD2相机,两相机拍摄第一幅图像并继续以最大帧频连续拍摄,同时采集到一个完整的过靶信号波形,其波峰值时刻为t0,由图可知其波峰值时刻t0和相机拍摄时刻几乎重合;而第二发和第三发弹丸通过光幕时产生的过靶波形波峰值时刻分别为t1和t2,而t1和相机拍摄时刻有时间差,t2同样如此;第i发弹丸通过光幕时产生的过靶波形波峰值时刻为ti,ti和相机拍摄时刻有时间差。由图2可知,第一发弹丸的波峰值时刻和相机的拍摄时刻重合;一个波峰值时刻仅能对应在一张相机图像上,第i发弹丸的过靶时刻可以对应相机拍摄的第m张图片。
为了得到所有弹丸的波峰值时刻,同时得到该发弹丸在拍摄的多幅图像中的唯一对应位置,本文提出了针对过靶数据的多峰值检测算法,在大于指定阈值的区间内寻找波峰最大值,其流程如图5。
图5 多峰值检测算法流程图
而弹丸的波峰值时刻也就是弹丸的过靶时刻,引入指定阈值并遍历整个数据,在所有相邻的两指定阈值间找出波峰值的时刻。公式如(2)。
(2)
其中:Vlres(t)和Vrres(t)为相邻的两个幅值等于指定阈值的幅值点,V(t)是Vlres(t)和Vrres(t)范围内的所有幅值点,其中最大的幅值点就是波峰值Vp。为得到所有弹丸波峰值时刻,遍历数据时持续将左边界Vlres(t)和右边界Vrres(t)随数据后移即可。将t0记为第一发弹丸的波峰值时刻,ti记为第i发的波峰值时刻。遍历整个过靶信号数据后得到所有弹丸的波峰值后,继续计算弹丸所在图像位置。以第i发过靶弹丸所在的图像位置为例。
(2)
如公式(2),相邻图像之间间隔为相机以最大帧频拍摄的时间间隔记为Δttri,所在图像位置为第m幅,m为四舍五入的整数。因为m是个约数,根据冗余原则,将第m-1、m、m+1张三张图像依次拼接,合为一张组合图像。然后使用下文中自适应阈值的目标检测算法对其处理得到目标的像素坐标。
在对采集到的图像数据进行分析时可以发现,整个图像的背景具有纵向整齐,非弹丸部分规则的特点;而弹丸着靶点图像如图6,当弹丸穿过激光光幕时,该部分激光被遮挡,映射到相机探测面内会产生黑色光斑,与背景灰度值差异明显,但弹丸形状因着靶速度与图像位置差异较大。根据以上分析,选择使用形状处理与自适应阈值的灰度重心法结合的方式来处理图像。
图6 弹丸过靶图像
在对第i发弹丸的合成图像进行处理时,需要对图像中是否有弹丸和有几个弹丸进行检测。算法流程分为背景处理和自适应阈值的灰度重心法两部分,如图7所示。
图7 算法流程图
背景处理:首先,在拍摄目标图像前会先拍摄一幅无弹丸目标的背景图像,灰度模式读入背景图像和目标图像;然后将背景图像灰度值反转并与目标图像融合,得到了以纵向背景和弹丸边缘消减后的处理后图像。
自适应阈值的灰度重心法:由于弹丸着靶与图像背景所成像的灰度值差异巨大,利用灰度重心法[20-23]计算出图像中灰度值权重大的质心坐标,把它作为重心点。将处理后图像以某一自适应阈值M进行二值化并灰度反转,寻找轮廓域。如果轮廓域寻找失败,那么需要降低自适应阈值后再重复上一步骤,直到寻找到多个目标的n个轮廓域,将之记为Sn,表示弹丸成像目标像素区域。
(3)
(4)
在Sn中光斑重心的坐标位置为(x,y)如公式(3)和(4),灰度值为K(i,j),权值为W(i,j),如公式(5),M为阈值:
(5)
当处理第一发弹丸时,如图2中所示第一发弹丸波峰值时刻与相机拍摄时刻重合,第一张图片必有弹丸目标。最低阈值由第一张图片确定,一旦自适应阈值M在高于最低阈值情况下没有检测到弹丸目标,则图像中必无弹丸目标。反之,则图像中有弹丸目标,并将得到的所有像素坐标保存并继续处理。
如图8所示,图像为第i发弹丸图像的灰度图像,可以看到图像中检测出两个弹丸目标,这是由于前一发已被计算过坐标的弹丸太过接近第i发,导致定位在同一幅组合图像上;图9为处理后的灰度图像,黑色为处理后的背景,白色部分是检测出的弹丸的位置,二值化后两弹丸亮度突出。整个检测过程0.12 s,共检测出弹丸A(514,7)和弹丸B(1331,6)两个像素坐标,整个图片由10行像素构成,每一行有4 096个像素,弹丸A位于第514列、第7行弹丸B位于第1 331列,第6行。为了准确识别出弹丸A和弹丸B到坐标中哪一发是第i发弹丸的坐标,需要使用像素坐标剔除算法进行处理,再输出正确的第i发弹丸的像素坐标。
图8 第i发弹丸过靶灰度图
图9 第i发弹丸处理后灰度图
在连发的测试过程中,两发弹丸间距很小,相机拍摄的过程中将两发弹丸同时记录到同一张图像中,所以对第i发弹丸对应的图像处理后得到了两个像素坐标(x1,y1)和(x2,y2),需要从图片中确定第i发弹丸对应的坐标。相机从第一发过靶时开始拍摄,根据过靶信号波形可以得到第i发弹丸与第m张图片对应。仅定位到第m张已经不足以分辨哪一个像素坐标才是第i发弹丸的。因此为了得到最接近计算中第i发弹丸的像素坐标,必须定位的更加精准,定位到图片中的第m行,定位公式如(6)。
(6)
相邻图像之间间隔为相机以最大帧频拍摄的时间间隔记为Δttri,所在图像位置为第m幅,将上述公式中m的小数部分mfrac单独取出,Δttri为上文中相机的触发间隔,n为未组合前单幅图像的行数,mres代表第i发弹丸定位位置应在组合图像的第几行,而该图像是组合后的图像所以要加上m-1幅图像上的n行。
两个y轴坐标y1,y2哪一个距离定位位置mres更近,哪一个就是第i发弹丸的准确像素坐标,并将按y轴排序后的该组像素坐标进行空间变换得到第i发的最终坐标。而整个像素坐标剔除算法如图10所示。
图10 像素坐标剔除算法流程图
为了系统评估本文提出的方法处理速度方面的优越性,共进行了4组对照实验,在5 s内分别发射5发、10发、15发、20发连发弹丸,每组实验的过程中线阵CCD相机5 s内共拍摄6 500张图片。使用本文提供的方法和传统方法相比,其中,传统方法为利用相机最大帧频持续拍摄,拍摄完成后对所有图像进行批量处理,进而得到所有弹丸坐标。针对传统方法产生的数据量巨大的问题,利用本文的方法先对图片进行筛选,缩小数据量再对图像中的弹丸位置进行处理,最后在得到正确坐标的前提下统计了各组实验的处理时间,得到如表1的实验结果。
从表1中可以看出,本文提供的方法大幅提高了连发坐标的处理速度,与传统方法相比处理速度明显提高,工作效率高。并且对于测试连发武器时,由于弹数和射频很高,导致图像中存在多发弹过靶的图像信息,在这种情况下本文的方法也能将正确的坐标处理出来。
表1 方法结果对比表
针对传统CCD立靶连发坐标处理时间长的问题,本文提出一种连发弹丸坐标处理方法,采用激光光幕配合原向反射屏形成光电探测靶面,光电转换模块检测光通量变化产生弹丸过靶信号,多峰值检测算法根据过靶信号波形筛选出每一发弹丸对应的过靶图像,使用自适应阈值的弹丸检测算法对图像进行目标检测得到弹丸像素坐标。当该图像检测出多个坐标时,使用像素坐标剔除算法去除错误的像素坐标,保证最终得到准确坐标。该方法能在保证连发弹丸坐标正确率的情况下大幅提高处理速度,工作效率高,适用于连发武器的坐标参数测试。