柳华林 姚立波 张立民 黄友澎 王海鹏
(1.海军航空大学 烟台 264001)(2.武汉数字工程研究所 武汉 430074)
随着军队改革的持续深入,我军信息化程度不断提高,实弹化训练的频率和强度也达到新的高度。在射击领域,由于自动报靶能够有效克服传统人工报靶所存在的人为误报、工作量大、安全性低等缺点[1],满足现代化部队训练要求,提高官兵训练水平,因此面临越来越大的需求[2]。
目前,有关自动报靶系统的研究成果很多[3~5],基于视频图像处理的相关算法也层出不穷[6],但大多停留在整体系统设计,具体到系统的各个方面,多经不起实际靶场环境的考验。就当前时刻弹孔的检测提取而言,多建立在弹孔成形状况理想和靶纸抖动等外界因素影响轻微的前提下,没有对弹孔提取面临的复杂实际情况进行分析,更少对弹孔的共性特征加以总结和利用。例如,对比弹孔生成前后靶图的彩色数据信息差异[7]、设置阈值优化“差影”[8]、前后靶图帧差结果应用形态学方法去除干扰[9]、运用弹孔形成前后靶纸的颜色变化[10]以及弹孔的灰度值最低特征[11]等方法在实际靶场环境下都无法做到当前时刻弹孔的精确检测提取。此外,多集中于单张视频帧的研究,致使成果仅满足一类或几类弹孔的检测提取,不具有普适性。
本文基于靶场实地考察和真实打靶视频的研究,分析弹孔提取制约性难题,提出一种区域二值化的弹孔粗检测算法,实现当前视频帧弹孔的全部检测提取。以此为基础,从弹孔特性融合的角度出发,以弹孔的不可逆性为核心,弹孔检测提取分区域进行为手段,融合弹孔和干扰特性,设计了基于视觉模型的当前时刻弹孔检测提取算法。经真实打靶视频验证,该算法能够依次全部检测提取视频中当前时刻上靶的弹孔,速度快且抗干扰性、普适性强。
通过对真实打靶视频的实验分析,现将弹孔检测提取实际问题和技术难点总结如下:
1)靶场光照环境。缓慢变化光照干扰的去除一直是视频图像处理领域的瓶颈。当前时刻弹孔的检测提取需要帧差操作,变化的光照环境必然带来干扰。实验发现,存在光照变化引起的干扰和子弹上靶引起的靶纸变化相似,极易被误检为弹孔。此外,在干扰去除方面,由于各视频帧所处的光照环境不同,难以设计通用的算法将此干扰彻底去除。
2)靶纸抖动。子弹上靶的冲击力以及风等外力因素使靶纸存在抖动现象。靶纸位置的轻微偏移导致帧差法无法准确检测弹孔同时带来大量干扰。同样,靶纸抖动具有随机性,无法通过图像配准技术将靶纸环线等部分配准,也无法设计有效方法将抖动干扰去除。
3)靶纸制作工艺。靶纸质量参差不齐,靶面极易出现色彩深浅不一和深色点状、块状区域等印刷不均匀情况。实验发现,存在靶纸上的这些干扰和弹孔的色彩或大小相近。在光照变化和靶纸抖动的影响下易产生类似弹孔的干扰,影响弹孔的检测提取工作。
4)弹孔成形状况。如图1所示,实际的靶纸上并不全是清晰且类似圆形的弹孔。会出现靶纸未脱落,随外力条件在弹孔处做有规律运动;子弹穿过靶纸生成印记而未形成弹孔,使弹孔引起的响应微弱和所处背景区别度小;由于子弹和靶纸摩擦消除了靶纸颜色,致使弹孔灰度值升高等现象。
图1 靶纸图
本文在实验分析基础上总结弹孔规律特性,现对弹孔的形状大小、色彩属性和不可逆性进行特性分析如下。
弹孔由子弹迅速穿透靶纸而成,形状不规则呈类圆状弱小暗斑[12],直径在确定的阈值之间,主要取决于弹孔的成形状况。
通过弹孔的形状大小进行检测提取即利用子弹上靶前后两帧图像进行差分,将弹孔和干扰检测出来,并将大小在阈值内的圆形或类似区域判定为弹孔。这种方法条件苛刻,一是打靶视频中不能有类似弹孔形状大小的干扰出现,满足帧差结果中弹孔和干扰有明显差别;二是弹孔必须清晰完整,如此才能准确实现弹孔检测。
弹孔的颜色通常偏深,因弹孔成形状况而有所不同。如图1所示,白色靶面弹孔的色彩属性跟所处背景有明显区别;墨绿色靶面弹孔的色彩属性受弹孔成形状况影响大:清晰完整的弹孔近乎黑色,亮度等属性值低于背景;靶纸未脱落的弹孔色彩属性和背景区别度低;因摩擦而消除颜色的不完整弹孔,色彩属性值往往高于背景靶纸。
利用弹孔的色彩特性主要是利用弹孔和背景靶纸在颜色亮度等方面的不同。该方法对靶纸制作工艺和弹孔成形状况要求较高,整个靶面不能存在和弹孔色彩属性相似的干扰。
子弹一旦上靶必然留下痕迹,且不可逆。无论弹孔成形状况如何,一直到打靶结束弹孔都将显示于靶上。
靶场环境下除弹孔外其他因素必然不断变化,理论上依据此特性可以准确的检测提取弹孔。当子弹上靶后的视频帧数取无穷大时,弹孔可以被唯一确定。因算法可行性和时效性要求,该值不能过大,因此弹孔的检测提取仍受到干扰的影响。
通过弹孔检测提取主要问题和弹孔特性的详细分析,弹孔的三个特性在其检测提取方面各具优势和局限性,无法仅依靠某一特性将视频中弹孔依次全部检测提取出来。经过对各部分难点的详细分析,本文提出了基于视觉模型的弹孔检测提取算法。算法整体流程如图2所示。
图2 算法流程图
视觉模型以弹孔的不可逆性为核心,利用弹孔特性的融合准确实现当前时刻弹孔的检测提取,具体分为三部分:靶纸区域二值化、弹孔粗提取和弹孔精细化。
靶纸区域二值化是整个视觉模型的基础工作,实现视频帧中全部弹孔和背景分割,并尽量减少干扰的引入。二值化[13]方法很多但不具普适性,核心在于阈值T的确定。理想状态下弹孔灰度值较背景靶纸低,以靶纸灰度值最小值为阈值即可实现全部弹孔的分割。由弹孔的色彩属性知,存在弹孔的灰度值高于所处背景,如图3、图4所示,通过设置全局阈值无法实现弹孔的全部检测提取。进一步对整个视频帧采用多阈值方法分割弹孔,根据弹孔的色彩属性设置三阈值,则背景区域为Ω=(T1<f(x ,y) <T2)|(f(x ,y )>T3)。其中,f(x ,y)为靶纸灰度图,T1、T2为墨绿色靶面灰度最低值和最高值、T3为白色靶面灰度最低值。二值化结果如图5所示,结合图1知存在弹孔没有被清晰检测出来。选取未被清晰检测的弹孔1(见图1)和弹孔4(见图1)进行灰度分析,弹孔1和弹孔4的灰度值范围分别是 88~219 和 51~159,背景区域为Ω=(60<f(x ,y )<124)|(f(x ,y) >129)。可以看到,存在弹孔和背景区域的灰度值严重重叠,因此多阈值设置无法实现弹孔全部分割。
本文从问题分解的角度出发,采用区域二值化的方法实现全部弹孔的检测。白色靶面弹孔的灰度值大部分小于其背景,通过设置全局阈值即可实现区域内弹孔的全部检测。 f(x ,y)为靶纸图像灰度图,阈值处理后的二值图像g(x,y)定义为[16]
图10为阈值T=0.63时二值化结果图,该区域全部弹孔被有效分割出来。
图3 靶纸原图
图4 全局阈值弹孔提取
图5 多阈值弹孔提取
图6 墨绿色靶面二值化算法流程图
墨绿色靶面同时存在灰度值大于和小于背景靶纸的弹孔,采用双阈值的方法将区域内全部弹孔和背景进行分割。由于靶纸上存在瑕疵和弹孔的灰度值相近,导致弹孔灰度值在墨绿色靶面灰度值范围之间,因此不能直接选取墨绿色靶面灰度范围的最值为阈值。本文在墨绿色靶面和弹孔直方图分析的基础上提出了一种墨绿色靶面的二值化方法,有效检测该区域的全部弹孔。算法流程如图6所示。
墨绿色靶面掩模图和灰度图如图7、图8所示。墨绿色靶面灰度值统计分析即首先不同灰度值的像素数进行顺序排序,然后以最大像素数为起始,逆序依次取大于该像素数的灰度值的像素数并求和,直至像素数和占全部像素数的99%,如图9所示,将对应的灰度值集范围的最值作为二值化阈值T1、T2。阈值处理后生成的墨绿色靶面区域二值图g(x ,y)由下式给出:
其中,f(x,y)为靶纸图像灰度图,如图11所示,将墨绿色靶面的弹孔被全部检测提取出来。
图7 墨绿色靶面掩模
图8 区域灰度图
图9 灰度值统计分析图
弹孔粗提取部分是整个视觉模型的关键,实现当前时刻弹孔的粗提取。该部分以弹孔的不可逆性为核心,运用当前帧与其后N帧图像进行差影运算[14],并将结果融合以消除不断变化的干扰,函数如下:
其中,A(x ,y )、B(x ,y)为二值图像。
图10 白色靶面二值图
图11 墨绿色靶面二值图
由于弹孔形成后具有不可逆性,因此当前时刻的弹孔得以有效保留,取N次结果融合实现在保留弹孔的同时抑制不断变化的干扰。理论上N的值足够大,可以直接将弹孔从干扰中检测提取出来。实际中,N的值应根据时效性要求和对干扰的抑制程度选择,使干扰不具有和弹孔相似的特征,为弹孔精细化奠定基础。
下面分别就白色靶面和墨绿色靶面的弹孔粗提取部分进行结果分析。
选取白色靶面的弹孔(图1弹孔1)和墨绿色靶面的弹孔(图1弹孔5)进行实验结果分析如下。
图12和图14为前后两帧的帧差结果,图13和图15分别为N=10和N=24时的弹孔粗提取结果。由结果可知,白色靶面中干扰被严重削弱,和弹孔大小类似的干扰被不断分解为较小的干扰,同时弹孔的原貌得到很好的保留。墨绿色靶面中,虽然变化的干扰被严重削弱,但是由于靶纸区域二值化的原因,弹孔原貌受到一定影响的同时环线边缘也产生较多干扰。此时需要N取更大的值才能达到白色靶面中的效果。
图12 白色靶面帧差图
图13 弹孔粗提取结果
图14 墨绿色靶面帧差图
图15 弹孔粗提取结果
弹孔精细化部分是将当前时刻的弹孔从弹孔粗提取结果中精确的检测提取。本文在干扰共性分析基础上通过融合弹孔大小等特性就不同靶纸区域弹孔粗提取结果的特点同时采用形态学处理手法[15]分别设计通用的弹孔精确化算法,确保在N取值一致的前提下实现当前时刻弹孔的精确提取。本文主要采用形态学处理中基础的膨胀和腐蚀运算[16]。数学上,膨胀定义为集合运算。A被B膨胀记为A⊕B,定义为
腐蚀的数学定义与膨胀类似,A被B腐蚀记为A⊖B,定义为
其中,∅为空集,B为结构元素。
白色靶面的弹孔粗提取中N取较小值时干扰就得到迅速抑制,且与弹孔存在明显区别,因此该区域的弹孔精细化通过弹孔形状大小特征的约束辅以形态学处理手法即可实现弹孔的精确提取,结果如图16所示。
图16 白色靶面弹孔精细化结果
墨绿色靶面的弹孔精细化过程相对复杂,包括环线干扰去除和残余小干扰去除两部分。环线干扰去除部分通过利用墨绿色靶面掩模提取结果,如图8所示,与弹孔粗提取结果进行融合,消除环线干扰同时将弹孔凸显出来。残余小干扰去除则是利用弹孔大小等特性进行最后筛选,确保精确提取弹孔。结果如图17所示。通过真实打靶视频验证,本方法在N取值一致的前提下完全能够实现当前时刻墨绿色靶面部分的弹孔精确检测提取。
图17 墨绿色靶面弹孔精 细化结果
经真实打靶视频验证,本文提出的基于视觉模型的当前时刻弹孔检测提取算法精确有效且具有良好的时效性,完全能够达到自动报靶系统的要求。提取视频中的弹孔如图18~图27所示。
图18 弹孔1
图19 弹孔2
图20 弹孔3
图21 弹孔4
图23 弹孔6
图24 弹孔7
图25 弹孔8
图26 弹孔9
图27 弹孔10
本文基于自动报靶系统中当前时刻弹孔检测提取部分展开研究,通过实际问题和弹孔特性的仿真实验与分析,排除理论可行但靶场实际难以实现的算法,并在此基础上以弹孔的不可逆性为核心提出了基于视觉模型的当前时刻弹孔检测提取算法。分析靶纸二值化特点,提出靶纸区域二值化思路,并设计墨绿色靶面的二值化算法,实现视频帧上弹孔的全部粗略提取工作。分区域进行当前时刻弹孔粗提取和弹孔精细化,提出墨绿色靶纸区域的精细化方法,实现了N值较小情况下的弹孔精确提取,保证了算法的可行性和时效性。经真实打靶视频验证,该算法可以准确的将当前时刻的弹孔依次识别出来,速度快且抗干扰能力强。
特殊情况下,即弹孔位于白色和墨绿色靶面的面积相同时,存在同一弹孔被两个靶纸区域分别检测提取的情况。由于子弹上靶的时空对应关系,同一弹孔不会被重复保留。当然,此算法仍有不足之处,算法建立在弹孔不可逆性的基础上,必然需要当前帧之后的视频帧进行操作,数量可以控制在10帧以内时间不足0.5s,可满足正常的点射报靶需要。对于连射的自动报靶以及实时报靶,需在打靶视频的基础上作进一步的分析。