谢萌蕤, 赵兆, 李阳, 许志勇
(南京理工大学 电子工程与光电技术学院, 江苏 南京 210094)
近年来,枪声探测装备因在国际反恐和维和行动中战果显著而获得越来越广泛的关注,相关技术研究对军事国防、公共安全、野生动物保护等多个领域具有重要意义[1]。随着声信号处理和人工智能技术的快速发展,枪声识别技术在枪声探测领域变得越来越重要,能否从实际复杂背景噪声中快速、准确地识别出随机发生且又短暂、微弱的枪声信号,是实现高精度射击点方向估计[2]以及更进一步估计射击点距离[3]的必要前提。
有关枪声识别的研究方法主要通过枪声录音样本提取特征,将其输入特定的识别分类器以获得识别结果。在枪声特征研究方面,有离散小波变换系数[4]、梅尔频率倒谱系数(MFCC)[5]、短时能量[6]等各种特征提取技术。由于枪声信号是快速时变的瞬时冲激脉冲,采用多尺度特征是自然合理的选择。离散小波变换系数是最常用的多尺度特征,具有优良的冲激声信号识别性能[4,7-8]。但现有枪声识别研究中采用的离散小波系数特征常常维数很高,实时实现的难度较大。
此外,受试验条件限制,早期枪声识别研究采用的枪声样本相对简单,例如影视节目中截取的枪声片段[9]、较理想的纯净枪声数据等。近几年来,真实环境下的枪声识别技术倍受重视,但录制枪声信号的地形和气象环境大多相对简单,背景噪声和反射干扰一般较弱,而且实际录制的枪声信号样本数量也非常有限。为能尽量模拟实际应用场景和增加样本数量,许多学者采用在少量较纯净枪声样本的基础上叠加各种背景噪声或进行特殊滤波处理的方式获得所需的足量合成数据样本[5,10-11]。尽管这些研究可获得很高的理论枪声识别率,但理想纯净或人工合成的枪声样本难以全面反映真实环境中地形起伏、环境噪声、地表建筑以及气候变化等复杂因素[12]的综合影响,相关成果的实际应用效果难以可靠预测。
针对上述问题,本文面向实际应用,采用大量外场实录的包含有复杂环境噪声干扰和地面墙面反射的真实枪声数据,以枪声中的膛口波信号为识别对象,提出了一种更具针对性的多尺度子带能量集特征。相比常用的离散小波系数特征,特征向量维数和识别处理复杂度显著降低,但膛口波识别性能相当,因此更符合实时应用需求。
枪声信号属于冲激型脉冲信号,具有持续时间短、能量集中和快速时变的特点。超音速弹头的枪声信号主要包括马赫波和膛口波两种,图1(a)和图1(b)所示分别为外场实录枪声数据中的马赫波和膛口波时域波形,图1(c)为图1(b)中截取的4 ms膛口波脉冲频谱,包括完整的膛口波周期和一段能量较大的残余震荡,图1(d)为图1(b)的时频谱图。
马赫波是弹头以超音速飞行时急速挤压前方空气而产生的超宽带激波脉冲,以脉冲起始端和结尾端均陡峭上升为显著特征,形状类似“N”,也称作N形波[13]。马赫波以弹头为顶点呈圆锥面(马赫锥)向外传播,脉冲波形的持续时间与弹头形状有关,一般为200~500 μs. 马赫波用于枪声探测时存在两个实际难题:一是容易被空气吸收,在嘈杂环境下常常无法被距离弹道数十米外的声探测系统捕获到;二是作用范围受马赫锥影响,不能被位于马赫锥作用范围之外的声探测系统检测到[3]。
膛口波是在膛内高温、高压火药燃气推进作用下,弹头离开膛口后迅速展开的冲击波[14]所产生的声波信号,在膛口处呈球形向四周扩散,波形对应一个非平稳时变脉冲,持续时间约1~5 ms,主要能量集中在低频部分[3]。膛口波传播距离远,作用范围广,是一种其他自然现象和人工手段难以复现和模仿的独特声波,并且只要枪支射击都会产生,因此常被用作识别枪声的主要声学信号(本文暂不考虑使用消音器的情况)。
为提高实际复杂环境下对膛口波的实时识别能力,本文针对膛口波信号的时频分布,提出了一种多尺度子带能量集特征,相应的膛口波识别流程图如图2所示。图2中kNN和 SVM分别为k近邻和支持向量机两种分类器。
数据样本全部取自南京理工大学汤山军工试验中心某中小口径步枪多次外场实弹射击试验的现场录音,每段录音只包含一次射击的枪声信号,同时还可能包含枪声的多次反射信号和现场的说话声、风声、警报声等非枪声信号。外场录音的采样频率为32 kHz,采样精度为16 bit.
对于每次射击试验,弹头在飞行80 m后其弹道将会紧贴一侧山体护墙,二者几乎平行,相距不足10 m. 枪声数据采集系统在弹道另一侧,随机安放在多个采集点,距离弹道5~50 m,距离射击点50~200 m,多数采集点靠近平房外墙或山体护墙,因此这些外场录制的枪声信号受地形、地物等环境因素影响较大。图3(a)是其中一段典型的枪声信号录音数据,图中显示,首先采集到的是马赫波,紧随其后的是因地面和墙体作用而产生的一串马赫波反射,之后膛口波也被采集到。但膛口波因传播距离远而衰减很大,几乎被淹没在反射波之中,其波形也因各种实际因素影响而会发生畸变,参见图1(b)。
本文从2013年4月至5月间的多次射击试验中一共选取372段录音,从中截取372个膛口波样本和499个非膛口波样本,总共871个数据样本用于识别研究,每个样本长度约为21 ms. 其中,非膛口波样本包括马赫波31个,现场说话声、风声、警报声等非枪声信号样本468个。以射击试验次数较多的2013年4月19日和5月3日为例,表1列出了两天采集的膛口波样本信息,表中脉宽为完整的膛口波周期,不含其后的残余震荡;幅值单位采用满量程分贝值(dBFS)[15],即以满量程为0 dB的相对幅值。由于天气状况、多径干扰、样本数量等试验条件不同,两天的膛口波峰值统计量差异较大,相关原因需在后续研究中进行更细致地分析,但暂未发现这种差异对膛口波的独特时频特征尤其是低频特征有明显影响。
表1 部分膛口波样本信息
图3(b)是对应图3(a)所示外场实录枪声信号的时频谱图,从图中可以清晰地看出,膛口波的频谱分布特征与马赫波、马赫波反射以及其他声音的频谱分布特征明显不同,虽在起始阶段存在较丰富的高频成分,但其能量主要集中在低频部分。因此,通过一组适当选取的子带滤波器可以增强膛口波的低频分量,同时抑制马赫波和其他非枪声信号。
观察图1(c)和图1(d)所示频谱分布可知,膛口波低频能量大致集中在300 Hz、900 Hz和1.5 kHz附近,在2.0~3.5 kHz之间也有相对较高的能量分布。因此,本文选用300 Hz、900 Hz、1.5 kHz和3.0 kHz作为4个低频子带滤波器的中心频率。若记第i个数据样本为Xi,0,则子带滤波后得到的4个子带分量分别记为Xi,j,j=1~4. 为叙述方便,后文中原始样本Xi,0也被称为第0个子带分量。
由于膛口波是一种发生突然而后又迅速趋缓的冲激信号,持续时间短且起始上升沿极为陡峭,为保证膛口波识别性能,有必要确定膛口波在数据样本及其各子带分量中的起点位置。起点位置搜索包括膛口波检测和波峰搜索两步,前者通过能量门限检测判断候选膛口波信号及其起始点的搜索范围,后者在此范围内搜索第1个强波峰以确定候选膛口波起始点的具体位置。
膛口波检测在波形相对平滑的第1子带分量Xi,1中进行,借用常规语音端点检测方法(VAD)[16]对膛口波出现的位置范围进行判断。将Xi,1做分帧处理,帧长0.5 ms,帧间交迭50%,然后计算每帧数据的短时能量。记第l帧数据的短时能量为εl,则自适应门限设定为
Th=min (εl)+ch(max (εl)-min (εl)),
(1)
式中:min (·)和max (·)分别表示最小值和最大值;ch为常数,本文通过实验设定为0.016,以确保在所有膛口波样本内不会出现过多的检测虚警。若检测到连续3帧的短时能量超过门限Th,则将其中第1帧的起始位置减去第1个子带的滤波延时后,得到候选膛口波起始点的搜索位置锚点ta.
将ta之前0.25 ms到之后0.50 ms的时间范围作为起始点搜索范围,对数据样本Xi,0进行幅值波峰搜索,找到第1个强波峰位置记为候选膛口波起始点,令该起始点的样点序号为m0. 将m0分别加上各子带的滤波延时,得到4个子带分量的候选膛口波起始点样点序号mj.
参见图3,膛口波信号是非平稳快速时变的信号,起始阶段急速上升,波形陡峭,高频成分较为丰富,随后波形变化迅速趋缓,高频成分急剧减少,到后半周期只剩低频成分。针对这一特征,采用变尺度子带能量集来构造膛口波的特征向量。
具体而言,对于第i个样本的第j个子带分量Xi,j,以嵌套方式对候选膛口波信号截取5个长度不等的变尺度数据片段,每个数据片段的起点都是该子带分量中候选膛口波的起始点mj, 5个子带分量共截取25个数据片段。根据所截取的膛口波样本,在50~200 m距离范围内,膛口波上升峰时间通常在0.1~0.2 ms之间,并且在完整的膛口波周期后面还有一段明显的残余震荡,较强能量持续时间通常可达4 ms左右,如图1(b)和图1(d)所示。因此,本文取最短和最长数据片段长度分别为0.125 ms和3.875 ms,然后在二者之间按2n-1(n为数据片段序号)的规律另选3个数据片段长度,即每个子带分量中5个嵌套数据片段的长度分别设为0.125 ms、0.375 ms、0.875 ms、1.875 ms、3.875 ms.
对上述25个数据片段分别计算短时能量作为特征。令第j个子带第n个数据片段的短时能量为ej,n,j=0~4,n=1~5,则第n段数据的短时能量特征向量为
en=[e0,n,e1,n,e2,n,e3,n,e4,n]T.
(2)
采用短时能量作为特征可以有效分辨出冲激信号,但却无法有效区分同属于冲激信号的马赫波和膛口波。考虑到枪声信号中马赫波和膛口波的时频谱分布差异明显,因此可进一步提取各子带分量与原始数据样本之间的短时能量比特征。第n个数据片段的短时能量特征比向量为
rn=[e1,n,e2,n,e3,n,e4,n]T/e0,n.
(3)
由此可得第i个数据样本中候选膛口波的多尺度子带能量集特征向量:
(4)
特征向量维数为9×5=45.
考虑到膛口波和非膛口波识别属于二分类问题,且样本数量有限,本文选择kNN和SVM两种常用分类器验证多尺度子带能量集特征的识别性能。
kNN是常用的有监督学习方法,主要通过测量不同特征值之间的距离进行分类[4]。对给定测试样本,找到训练集中与其距离最近的前k个样本,若这k个样本中出现频率最高的类别为膛口波,则该样本属于膛口波,反之亦然。其中,k值的选择对算法结果影响较大,本文采用交叉验证方法选择k=3.
SVM广泛应用于文本分类、人脸识别和音频事件分类等领域,是一种稳健的有监督学习方法,在有限样本、非线性和高维度的情况下,可以取得良好的分类效果[8]。SVM的分类基本思想是基于训练集在样本空间中找到一个最优超平面,使得训练集中的样本点与该超平面的距离尽可能远,进而将不同类型的样本分开。本文利用C++中的libsvm库建模SVM,选择C-支持向量分类(C-SVC)进行二分类,使用径向基函数(RBF)[8]作为核函数,其他参数值均采用默认设置。
根据第2节所述方法分别从871个数据样本中提取多尺度子带能量集特征,每个样本由45维特征向量构成。在采用kNN和SVM进行分类识别实验时,每次实验中随机选择60%样本构成训练集,其余40%样本构成测试集。
由于离散小波系数特征[4, 7-8]是一种广泛应用于爆炸声识别且性能优良的传统多尺度特征,本文采用离散小波方法进行对比实验。离散小波方法选择Daubechies小波基(db4)对数据样本进行离散小波变换,然后采用Mallat分解算法进行5层分解得到近似系数作为特征。每个数据样本对应的特征向量维数为666,远高于本文所提特征的45维。
为定量评价实验结果,采用了4种常用的识别性能评价指标[8,11]:查准率、查全率、基于查准率和查全率的加权调和平均(F1度量)和受试者工作特征曲线的线下面积(AUC)。
根据上述实验设计进行了100次随机对比实验,两种方法经过100次随机实验后的平均查准率、查全率和F1度量的对比结果如表2所示。
表2 100次随机实验的膛口波识别性能平均指标
从表2可以看出,在SVM的识别结果中:离散小波方法的查全率为97.6%,优于本文方法的94.0%;但从查准率的角度分析,本文方法的查准率为98.0%,而离散小波方法的查准率仅为85.0%,二者相差13%. 考虑到查准率与虚警相关,查准率偏低意味着膛口波识别的虚警上升、可信度下降。而根据查准率和查全率的综合性能评估指标F1度量和AUC指标,本文方法的膛口波识别性能更有优势,其F1度量和AUC指标分别为0.959和0.992,而离散小波方法分别为0.909和0.968.
然而,kNN的识别结果却与SVM有所不同,离散小波方法的查准率虽然达到96.7%,但是查全率却仅为78.9%. 考虑到查全率与漏警相关,查全率偏低意味着膛口波识别的漏警增加、实用性不足。比较而言,本文方法的查准率和查全率分别为95.7%和96.9%,两个指标都比较高且更为均衡。不仅如此,本文方法的F1度量和AUC指标分别为0.963和0.938,均明显高于离散小波方法。
图4给出的是两种膛口波识别方法经过100次随机实验所对应的F1度量箱线图。从图4中可以清晰地看出,本文方法在两种分类器下的最大值和最小值结果相近,其范围均在0.90~0.96之间,表明多尺度子带能量集特征对分类器敏感度较低,识别性能稳定性较好。而离散小波方法在两种分类器下的箱线差异非常明显,虽然在SVM分类器下的识别性能略低于本文方法,但在kNN下的识别性能则明显不佳,多次实验结果的分布散度较大且结果偏低。
为进一步判别两种膛口波识别方法是否具有明显差异,利用统计软件SPSS进行了Wilcoxon检验[17]。其中,用于判断是否具有显著性差异的置信度指标α设置为0.05,当相关评估值p<α时,认定比较对象之间存在显著差异。一方面,本文方法对SVM和kNN的评估值p=0.6,远大于0.05,表明在两种分类器下的识别结果无显著性差异,而离散小波方法则与之相反,对SVM和kNN的评估值p=0.005,小于0.05,表明在两种分类器下的识别结果存在明显差异,即膛口波的识别性能与分类器选择相关;另一方面,两种膛口波识别方法在SVM分类器下和在kNN分类器下的一致性评估值均为p=0.005,表明两种方法在采用同一分类器条件下的识别结果差异明显。
表3 子带滤波器中心频率参数调整对膛口波识别性能的影响
在现有子带滤波器中心频率附近另外选取两组中心频率参数,分别为{250 Hz,750 Hz,1.25 kHz,2.50 kHz}和{350 Hz,1.05 kHz,1.75 kHz,3.50 kHz},它们的膛口波识别性能指标对100次随机实验的平均值由表3列出。对比表2可以看出,3组子带滤波器对应的指标数值差异较小,表明在膛口波低频能量聚集区附近,子带滤波器组的中心频率参数调整对膛口波识别效果影响不大。
表4给出的是两种膛口波识别方法分别在特征提取阶段和膛口波识别阶段所用的处理时间,表中数据是对100次随机独立实验结果的平均值,所有实验均在一台配备1.70 GHz主频英特尔(R)酷睿i5-3317U处理器、4 GB内存和Windows 7旗舰版64位操作系统的计算机上进行。表4中显示,本文方法在特征提取和识别阶段的计算耗时均显著低于离散小波方法,表明本文方法处理复杂度低,更加符合实时枪声探测应用需求。
本文针对枪声膛口波持续时间短、起始上升沿陡峭、快速时变和低频能量集中的特点,通过确定候选膛口波起始位置,并从起始位置开始以嵌套方式对候选膛口波及其多个低频子带分量进行多尺度数据片段截取,获取了不同时间尺度的膛口波时频特征。从这些数据片段中提取短时能量和能量比信息构成多尺度子带能量集特征,并基于kNN和SVM获得膛口波识别结果。得出主要结论如下:
表4 100次随机实验的膛口波识别处理时间对比
1)针对372段外场实弹射击录音中截取的871个有声数据样本,采用kNN和SVM两种分类器进行膛口波和非膛口波识别,本文方法的查全率、查准率均高于93%,F1度量高于0.95.
2)本文方法特征相比于常用的离散小波系数特征,在膛口波识别性能相当的前提下,特征向量维数和处理复杂度显著下降,并且在不同分类器下的识别结果无显著性差异。
3)本文提出的多尺度子带能量集特征在实际复杂环境下能获得良好的枪声膛口波快速识别性能,比现有方案更符合实时枪声探测应用需求。