田 野,张晓灿,汤跃忠
(中国电子科技集团公司第三研究所,北京 100015)
随着我国城市化和现代化的快速发展,城市环境中的交通噪声污染和交通拥堵问题日益凸显,急需有效的治理手段。交通噪声虽然看不见摸不着,但对人们的身体健康、生活质量的负面影响是真实存在的[1]。不当场所、不当时间下的汽车乱鸣笛声是常见的交通噪声,严重影响着居民的生活和工作。《道路交通安全法实施条例》规定,驾驶机动车不得在禁止鸣喇叭的区域或者路段鸣喇叭。而交通拥堵问题不仅给市民出行带来困扰,而且严重影响了紧急车辆(救火车、救护车等)的快速出行,延误紧急事件的最佳处置时机。针对上述问题,本文重点研究面向汽车鸣笛声、紧急车辆鸣笛声的音频检测识别技术,为鸣笛抓拍系统提供抓拍依据,为智能交通疏导系统提供紧急避让疏导依据,从而缓解交通噪声与拥堵问题。
针对车辆鸣笛声识别任务,大多数处理方法主要包括特征提取与分类器构建两大环节。文献[2]提出一种基于能频积的鸣笛声与非鸣笛声的区分方法,文献[3]提出一种基于子带谱熵法特征和改进支持向量机(Support Vector Machine,SVM)分类器的汽车鸣笛识别方法,文献[4]提出一种基于信号分解、梅尔频率倒谱系数(Mel Frequency Cepstrum Coefficient,MFCC)与线性预测倒谱系数融合特征与BP 神经网络分类器的汽车鸣笛声识别方法。这些方法从单一特征到多特征融合,从浅层分类器到深度分类器,整体上向更宽、更深的集成融合方向发展。
由于不同特征、不同分类器间具有一定的互补性,采用多特征融合与多分类器融合,对于提升鸣笛声识别效果是一种可行的思路。但从车辆鸣笛声检测应用的实时性要求方面考虑,采用多特征融合需要对实时音频提取高维特征,往往比较耗费时间,且特征维度过高对分类器也是一种负担,而多分类器融合在模型训练时比较耗时、在决策时并不需要耗费很多时间。因此,本文提出一种基于多分类器融合决策的车辆鸣笛声识别方法,提取道路噪声、汽车鸣笛声、紧急车辆鸣笛声音频的时域能量、过零率及频域梅尔频率倒谱系数作为特征,采用支持向量机、朴素贝叶斯网络、随机森林这三种在分类识别领域应用广泛且各具特色的方法作为基础分类器,通过融合三种分类器的识别结果,并综合考虑时序关联关系,提升不同车辆鸣笛声检测识别的准确率。
为了从时域、频域角度获取不同车辆鸣笛声间的可区分性信息,又兼顾特征提取的实时性,本文提取时域能量[5]、过零率[5]以及在声音信号处理中应用最广的MFCC 特征[6]作为后续分类器的输入。本文中的音频特征提取流程如下。
(1)对音频进行分帧、加窗。本文中帧长设置为20 ms,帧移为10 ms,即以50%的重叠度分帧,并采用Hamming 窗避免帧信号前后端信号不连续的问题。
(2)提取帧特征。对每帧信号提取时域能量、过零率及MFCC 共14 维的特征。
(3)提取段特征。为了缓解帧特征的短时波动,本文对提取的帧特征分段、取均值得到段特征,作为最终的特征向量。本文中,段长设置为25,段移为10。
1.2.1 支持向量机
支持向量机SVM 是一种应用非常广泛的分类方法,通过在特征空间中找到最优超平面,将不同类别的数据区分开。基于非线性映射函数φ(x),SVM 将在原始空间上线性不可分的输入数据,投影到一个更高维度的特征空间,以寻求可分的线性判别函数:f(x)=ω·φ(x)+b。这里,非线性映射的核函数选择是分类器构建的关键。在SVM 算法中,比较常用的核函数有多项式核、高斯径向基核以及指数径向基核等。本文考虑所涉及数据的特性,选用高斯径向基核作为SVM 的核函数。关于SVM 算法更详细的原理介绍可参考文献[7]。
1.2.2 朴素贝叶斯网络
贝叶斯网络是一种概率图模型,在分类预测等不确定性分析问题中有着重要应用。贝叶斯网络由一个有向无环图和一个条件概率表组成,前者用于描述属性间的依赖关系,后者描述属性间的联合概率分布[8]。假设数据集的特征属性集合为D,类别标签集合C,di是特征属性Di的取值,则数据样本x={d1,d2,…,dk}属于类别cj的概率可以表示为:
朴素贝叶斯是一种最基本的贝叶斯网络分类器,优点是计算高效、泛化能力强。其假设属性间相互独立,则联合概率可转换为各属性边缘概率的乘积,即
1.2.3 随机森林
随机森林(Random Forest,RF)是一种典型的集成学习方法,采用Bagging 策略,基于若干个决策树构成集成分类器。决策树是组成随机森林分类器的基础单元,每棵决策树包含一系列分叉节点,每次分叉时选择最佳分类属性,根据属性值确定每个节点处的划分结果。
随机森林模型的构建过程为:
(1)采用Bootstrap 方法从训练数据样本中有放回的抽样,作为单个决策树的训练样本;
(2)基于随机抽样的训练数据进行决策树分类训练;
(3)重复上述操作得到多个决策树,形成决策森林;
(4)对测试数据,综合多个决策树的分类结果进行投票,得到最终的分类结果。
随机森林模型的构建过程中,随机为每个决策树选择训练样本,并在决策树每个节点划分时随机选取特征属性,有效避免了过拟合问题,提升了模型的泛化能力[9]。
在车辆鸣笛声检测任务中,由于道路噪声干扰,瞬时识别结果往往不稳定。因此,本文考虑识别结果的前后关联关系,设定在实时检测过程中,后一时刻识别结果B与前一时刻识别结果A不同时,连续检测后续8 个时刻的结果,若其中有5 个时刻的识别结果为B,则保留结果B,否则,将识别结果B改为前序结果A,从而减少误报警率,保证识别稳定性。
本文的融合决策体现在两个方面。
(1)基于三个分类器的识别结果进行投票融合决策,少数服从多数,各执一词时,以单独分类时准确率最高的分类器的结果为主。
(2)在分类器融合的基础上,考虑时序关联关系进行二次融合决策,得到最终识别结果。
本文所提方法的技术实现流程如图1 所示,主要包括训练和测试两个过程。训练过程基于从训练数据集提取的特征集,训练得到三种分类算法的模型;测试过程中,由待测音频提取的特征作为三个分类器的输入,得到三个识别结果,结合时序关联关系融合决策得到最终的识别结果。
图1 本文所提方法的技术实现流程图
在本文的案例分析中,道路噪声音频数据来自谷歌公开的Audioset 数据集,汽车鸣笛声和紧急车辆鸣笛声音频数据来自UrbanSound8K 数据集。
对于三种声音信号,统一采样到16 kHz,提取14 维的帧特征与段特征,共得到2 500 组特征数据样本,随机抽取其中的1 500 组作为训练样本,剩余1 000 组作为测试样本数据。
基于训练样本数据,训练SVM、朴素贝叶斯网络及随机森林分类器。基于测试样本数据对各分类器的识别性能进行验证,并采用两种融合决策方法对识别结果进行二次处理,得到最终的识别结果。测试结果如表1 和图2 所示。从表1 可以看到,三个分类器的测试分类准确率都在95%上下,随机森林的准确率最高为95.37%,因此在融合决策中,遇到三者意见不同时以随机森林分类器的识别结果为准。通过三个分类器的融合,综合识别准确率提升到97.5%,说明三个分类器在决策中确实存在着互补性,可以实现整体识别性能的提升。再考虑前后时序关联关系,最终的识别准确率可以提升到98.60%。从图2 可以清晰地看到两种融合过程中识别标签的变化情况。
图2 各个分类器及融合决策的结果标签情况
表1 各个分类器及融合决策的识别结果明细
本文针对复杂交通噪声背景下对于汽车鸣笛与紧急车辆鸣笛声的检测识别任务,提出了一种基于多分类器融合决策的识别方法,利用支持向量机、朴素贝叶斯网络、随机森林三种分类器间的互补特性提高了识别的准确率,并通过考虑前后时序关联关系,消除因环境干扰带来的误识别,进一步提升了识别的准确率和稳定性,减少因鸣笛误报而给后续汽车鸣笛抓拍系统或紧急车辆调度系统带来的负担。