APP下载

基于视觉检测的胸环靶自动报靶系统研究

2019-02-25苑玮琦李梦祺

计算机技术与发展 2019年2期
关键词:弹孔像素点校正

苑玮琦,李梦祺

(1.沈阳工业大学 视觉检测技术研究所 辽宁省机器视觉重点实验室,辽宁 沈阳 110870;2.沈阳工业大学 信息学院,辽宁 沈阳 110870)

0 引 言

近年来,随着高新技术迅猛发展,高新技术在射击训练当中的应用也越来越广泛。目前在户外射击训练中,主要采取的是人工报靶方式,选择具有报靶经验并且熟练掌握报靶规则的人员对训练者的射击结果进行记录,但是这种报靶方式存在着一些问题。例如,人工报靶占用了射击训练大量的时间,而且对报靶人员的生命安全造成了一定的威胁,还有可能存在着“人情分”现象,不利于公平公正。

早期国内国外的自动报靶系统主要有双电极短路采样系统、光电传感式自动报靶系统、声电定位自动报靶系统等,但是这些系统配置严苛和后期维护的成本过高,而且在环境上无法适应户外射击训练。基于视觉检测的胸环靶自动报靶系统,主要由胸环靶区域提取、靶线识别、弹孔识别、环值判定四个部分组成。文中通过借鉴大量的文献研究理论知识,并且实践报靶准确度,发现弹孔识别是整个自动报靶系统最核心也是最艰难的地方,并且发现通过滞后阈值边缘检测、减影运算、仿射变换相结合的方法能够基本准确获取弹孔信息。而对于胸环靶区域提取、靶线识别和环值判定的方法大多数文献当中的方法大同小异。

1 自动报靶技术发展现状

目前国内所研究的自动报靶系统按其实现原理可分为以下几种类型:

(1)双层电极短路采样系统[1]是在靶纸后面放置两张相互间隔的金属纸,根据子弹的导电特性,能够检测到弹点信号,这种报靶系统虽然方法简单、成本低廉,但是报靶率很低,而且不能连续射击,很难运用到军事训练当中。

(2)光线编码定位靶是利用光线编码的机制,平行安装两组不同焦距的镜头,形成一个光学靶面[2]。光纤编码定位靶成本高、组件制作工艺复杂且远距离射击的实验精度十分困难,不适用于国内的军事训练。

(3)声电定位自动报靶系统是在固定靶纸框架的四周安装若干个声电传感器[3],该系统报靶精度高,但是对于同一个靶面,连续两次射击的时间间隔太短有一定的干扰。

(4)光电传感器式自动报靶系统是在靶面的四周围,按照垂直方向和水平方向相对应的方式,安装两套高灵敏度的光电传感器(一般是感光二极管和发光二极管)[4],形成一个激光网格。如果想要该系统报靶精度高,那么势必需要大量的光电传感器,这样就会使成本大大增加。

(5)电极埋入式自动报靶系统与光电传感器式自动报靶系统原理十分相同,不同点是将光电传感器换成电极,是由电极组成的网格,这种特制的靶体是一次性的,每射击一次就要更换一次靶纸,成本非常高。

(6)基于图像处理的自动报靶系统由图像采集模块、信息传输模块、图像处理模块及成绩显示模块组成。对基于图像处理技术的自动报靶系统国外研究的比较早,如:芬兰的Noptel ST-2000 Sport,还有1999年美国Rots Burgun设计的Ad-vanced Target Scoring & Reporting System。

2 基于图像处理自动报靶系统中的弹孔识别方法的分析研究

图像减影运算识别弹孔[5-7],把前后两张图像做减影运算,把差值不为零的区域默认为弹孔区域,这种方法能够快速有效地识别弹孔,但是光照不稳定和靶面抖动会带来很大的干扰,抗噪声能力弱。

改进的模板匹配识别弹孔的方法有普通模板匹配与弹点统计性质结合的方法[8],特征匹配方法[9],基于特征中心不变矩匹配算法[10]。这些改进的模板匹配方法是对弹孔区域和干扰噪声区域计算它们各自的特征向量,与待检测图像中的每一个像素点的特征向量进行比较,在弹孔区域特征向量范围内的像素点就代表属于弹孔区域。这种方法需要在系统中预存大量的数据,需要大量计算,导致系统负担大,运行时间相对较长。

模糊理论识别弹孔[11],根据弹孔灰度值与背景灰度值之间存在的差异性来识别弹孔,计算弹孔区域的平均灰度值与背景的平均灰度值做比较,来判断是否为弹孔区域。这种方法简单快速,但是没有考虑到由于子弹的穿透而造成靶面颤动的问题。

基于小波变换的图像信息融合技术识别弹孔[12],分别对两幅图像进行小波分解,对两幅图像小波变换系数进行融合,主要改变存在着新弹点图像的小波变换系数,以此来突出新弹点的边缘和位置,最后对存在着新弹点的图像进行小波逆变换,恢复成原始图像。这种识别弹孔的方法抗干扰能力强,很好地解决了减影运算方法中的靶线干扰问题,但是时间复杂度高,算法复杂。

基于颜色相似性识别弹孔[13],这种方法不同于以往采用黑白图像作为研究对象而是以彩色图像作为研究对象,首先将RGB图像转换为HSI颜色模型,以矩形区域为单位,计算两幅图像矩形区域内颜色相似性系数,通过比较颜色相似性系数来判断弹孔区域和非弹孔区域。这种方法利用RGB图像包含了相对丰富的信息,能够很好地识别弹孔,但是计算量大,运行时间较长。

基于统计模型识别弹孔[14],首先获取不同状况下的弹孔图像和非弹孔图像,训练级联分类器,然后根据训练好的级联分类器与拍摄到的靶面图像进行匹配,扫描整张图像,扫描到弹孔信息后进行标记。这种方法的优点是不会由于对弹孔的先验知识和参数模型的知识掌握不完全,导致检测结果不精确。

3 弹孔识别

弹孔识别是整个系统中最核心的部分,射击训练的时候,射击完毕后,子弹会在靶纸上留下弹孔。而文中所设计的胸环靶自动报靶系统的拍摄顺序是射击完毕一次拍摄一张图像,所以当前图像和前一张图像的区别就在于当前图像比前一张图像多了一个弹孔,因此运用图像减影能够很容易地找到弹孔的位置,但是由于一些外界的不可抗因素,每张图片都会有一些较小的差异,比如有些小角度的旋转和很小距离的平移变化等,所以要对当前图像进行图像几何校正处理,再进行图像减影运算。

3.1 图像几何校正

所设计的胸环靶自动报靶系统需要进行两种图像几何校正,一种是由于相机以仰角的方式拍摄胸环靶,造成采集到的图像竖直方向的压缩,要把这种畸变校正过来以便于后续环值判定的计算;另一种是由于子弹在穿过胸环靶的时候会有一定的冲击力,造成当前图像与上一张图像会有一定的位移和旋转,为了后续弹孔识别算法的顺利进行,需要将这种畸变校正过来。

图像几何校正又称为图像空间变换,它将一幅图像中的坐标位置映射到另一幅图像中的坐标位置[15]。图像几何校正不改变图像的像素值,只是在图像平面上进行像素的重新排列。图像校正一般需要进行两部分运算:首先是空间变换所需的运算,如平移、旋转和镜像等,需要用它来表示输出图像与输入图像之间的像素映射关系;然后使用灰度差值算法,因为按照这种变换关系进行计算,输出图像的像素可能被映射到输入图像的非整数坐标上。

图像几何校正的方法一般有:埃尔米特变换、仿射变换和投影变换等。

3.1.1 校正系数的确定

对于第一种图像几何校正,是由于拍摄角度造成的,所以采集到的每张图像都会有相同的畸变,校正这种畸变主要是为了后续的环值判定,而环值判定主要是利用弹心坐标、10环中心点坐标和环间距这些数据进行计算。这次校正的主要目的是校正弹心坐标和10环中心点坐标,使弹心坐标和10环中心点坐标复原到实际情况,所以只需要通过数学上的几何问题就可以求出校正系数。

校正系数的计算过程是:由于形变10环靶线变为椭圆形,椭圆形长轴为水平方向的长度,短轴为竖直方向的长度,通过获取十环靶线的长半轴长度A1和短半轴长度B1,计算校正系数K,K=A1/B1,如图1所示。

图1 10环的长轴与短轴

3.1.2 基于仿射变换的图像校正

对于第二种图像几何变换,是由于子弹的冲击力使固定胸环靶纸的支架发生了位置的变化,使得采集到的图像与上一枪所采集到的图像有所不同,因为士兵射击时每一枪所瞄准的位置不同,所以采集到的每一枪图像所产生的畸变也不同,所以以上一枪采集的图像为主图像,以当前图像为待配准图像,进行图像几何校正。通过比较几种图像几何校正的方法,文中选择仿射变换。

仿射变换:如果一幅图像上的直线经过变换后映射到另一幅图像上仍然为直线,并且保持平行关系,则这种变换称为仿射变换。仿射变换适用于平移、旋转、比例、剪切[16]。

(1)平移:设坐标点(x,y),平移Δx和Δy到坐标点(x',y'),则仿射变换矩阵方程表示为:

(1)

为了便于变换矩阵计算,将2×2矩阵扩展为3×3矩阵,表示为:

(2)

(2)旋转:设坐标点(x,y),旋转θ角到坐标点(x',y'),则仿射变换矩阵方程为:

(3)

扩展成3×3矩阵表示为:

(4)

(3)缩放:设坐标点(x,y),放大或缩小k倍后的坐标点为(x',y'),则仿射变换矩阵方程为:

(5)

扩展成3×3矩阵表示为:

(6)

文中设计的胸环靶自动报靶系统只用到平移和旋转这两个性质,所以使用到的仿射变换矩阵可以表示为:

(7)

设主图像基本点坐标为(x,y),待配准图像基本点坐标为(x',y');主图像与x轴所形成的角度为phi,待配准图像与x轴所形成的角度为phi',式7中θ=phi-phi',Δx=x-x',Δy=y-y'。

图2表示图像中基本点的位置和角度。由图2可知,(x,y)表示胸环靶左下角的坐标,即为所选取的基本点;phi表示胸环靶底边与x轴所成夹角,即为所选取的角度。

图2 基本点和角度的位置

3.2 滞后阈值边缘检测

文中是针对户外射击训练设计的自动报靶系统,户外光照强度不稳定且不受控制,导致采集到的每张图像的光照强度不一样。当光照强度较小时,弹孔区域与背景区域灰度值相差较小,为了使设计的算法适用于每种情况,采取基于边缘的分割方法,进行弹孔与背景区域的分割。

运用图像减影算法需要运用当前图像信息减去前一张图像信息,所以首先需要对仿射变换后的当前图像和前一张图像进行滞后阈值边缘检测,将两张图像的边缘信息进行二值化,只用0或1进行表达。滞后阈值边缘检测需要设置三个参数:TL、TH、Len,下面对这三个参数进行详细介绍。由Sobel算子获得两张图像的幅值图像,对两张图像的幅值图像进行滞后阈值分割,根据胸环靶靶面提取使用的全局阈值Otsu算法得到的最佳阈值T,设置一个低阈值TL,一个高阈值TH,当幅值图像中像素点的灰度值大于或等于TH时,作为图像的真实边缘;当幅值图像中像素点的灰度值小于TL时,不作为图像的边缘;当幅值图像中像素点的灰度值在[TL,TH]时,作为图像的伪边缘。再设置Len,如果两段真实边缘之间有Len个像素点的伪边缘,那么将这Len个像素点的伪边缘与两段真实边缘连接在一起,形成一个完整的边缘。通过建立图库,观察弹孔,发现弹孔直径像素点在15个像素点到30个像素点之间,所以将Len设置为10足够检测到完整的弹孔边缘。由图3能够明显观察到,当Len=1时,弹孔的少量边缘没有被检测出来,当Len=10时,弹孔的边缘被完整地检测出来。

(a)Len = 1 (b)Len=10

在很多文献中边缘检测运用的是Canny算子,Canny算子检测边缘效果很好,效果好随之带来的代价是运算时间长,而文中运用运算时间较短的Sobel算子结合滞后阈值同样能很好地检测到弹孔边缘,也可以降低运算时间。

3.3 图像减影处理

图像减影也称为图像差影[17],其原理是将当前图像与前一张图像做减法运算,也就是将两张图像互相对应坐标的像素点的灰度值进行减法运算,得到对应坐标的像素点的新的灰度值构成新的图像。文中对两张图像二值化后的图像进行减影运算,两张图像完全相同的部分的灰度值进行减法运算后,灰度值为0,在新图像上就表示为黑色的部分,而两张图像不相同的部分的灰度值进行减法运算后,就会在新图像上完整表示出来,结果如图4所示。

图4 减影图像

减影算法的数学公式为:

glr(x,y)=|glp(x,y)-glb(x,y)|

(8)

其中,glp(x,y)是当前图像;glb(x,y)是前一张图像;glr(x,y)是减影图。假如glp(x,y)

3.4 开运算消除干扰区域

由图4可以观察到经过减影运算后,除了弹孔信息还有少量的环线干扰信息,这是由于两张图像不能完全重合造成的。图像几何校正只适用于刚性变换,而子弹的冲击不仅会使靶体产生振动,也会使靶纸产生抖动,纸是柔性的,所以靶纸产生的变化属于柔性变换,所以减影运算后会有少量的靶线干扰信息。靶线干扰区域包含的像素点比弹孔区域包含的像素点少很多,所以进行一次数学形态的开运算就可以将干扰区域消除。

腐蚀和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,下面介绍利用数学形态学对二值图像进行的腐蚀膨胀运算。

用B(x)代表结构元素,E代表二值化图像,腐蚀和膨胀运算的定义式分别为:

腐蚀:

E⊙B={x:B(x)⊂E}

(9)

膨胀:

E⊕B={x:B(x)∩E≠∅}

(10)

腐蚀运算是把结构B平移后,使B包含于E的所有点构成的集合,结果使二值图像收缩;膨胀运算是把结构B平移后,使B与E交集不为空集的所有点构成的集合,结果使二值图像扩张。

一般情况下,膨胀和腐蚀是不可恢复的运算。开运算是先腐蚀后膨胀的过程,用来消除小物体、分离物体、平滑较大物体的边界,并且可以保持其面积基本不变。

通过实验发现,弹孔直径像素点在15个到30个之间,而环线干扰区域像素点在1个到5个之间,所以结构元素选择圆形,半径为3.0能够达到消除环线干扰并且保留弹孔信息的效果。图5为开运算的结果。

图5 开运算的结果

4 实验结果

通过建立图库测试文中系统的准确性和运行时长;所建立的图库共260张图像,通过测试准确率为99.2%,运行时长为0.525 s。为了使用户能够更方便地使用该系统,还设计了用户所使用的人机交互界面,图6显示了系统运行的结果。

图6 系统运行结果

5 结束语

对大量的自动报靶系统文献进行阅读研究,介绍了自动报靶系统的发展历程,并且对自动报靶系统中的核心算法——弹孔识别算法进行了分析对比。实验结果表明,提出的弹孔识别方法准确度高,运行时长符合实弹训练要求,能够较好地适应野外射击训练,具有良好的应用前景。

猜你喜欢

弹孔像素点校正
基于局部相似性的特征匹配筛选算法
最后的弹孔
基于串联校正原理的LTI 系统校正实验综述报告
华清宫
劉光第《南旋記》校正
一种X射线图像白点噪声去除算法
基于canvas的前端数据加密
一种具有自动校正装置的陶瓷切边机
图像采集过程中基于肤色理论的采集框自动定位
闲趣一刻