赵佳美 户文成 蒋从双 曾 宇 姚 琨
(北京市劳动保护科学研究所 北京 100054)
车辆识别技术是现代智能交通系统研究中的关键技术之一[1]。在交通系统的运行状况中,主要依据的交通参数有交通流量、交通流密度、车辆行驶速度、行程时间等[2],车辆车型以及速度的识别技术可以辅助交通管理部门实时掌握道路交通信息,通过实时交通状况进行决策,避免交通拥堵等状况的发生。长期以来,我国是以道路设计速度作为确定限速值的依据来对车辆的运行进行限速的,在设置限速时没有考虑到大小车型、气候变化等,这种方法缺乏实时性和动态性,车速安全的实时跟踪和信息管理技术的落后增加了道路交通的安全隐患。
声信号检测识别技术可以通过提取声信号中具有一定物理含义的信号特征,再通过声信号特征对车辆进行分类识别。该技术具有设备简单且易于布置,检测不受黑夜、隧道视觉因素影响等特点,对车辆识别的效果有很大帮助。因此,国内外学者对此展开大量研究,利用车辆通过时声信号的检测识别技术也迅速发展。Sunu 等通过谱嵌入的方法将提取的特征进行降维,并用K 聚类和K-最近邻方法作为分类器对卡车和吉普车进行分类识别[3]。Kandpal等[4]将车辆声信号的快速傅里叶变换(Fast Fourier transform,FFT)和时域波形相结合,利用神经网络作为分类器,并且对车辆声信号的识别结果进行了融合。陆伟[5]采用模糊C均值聚类算法对轿车、卡车、中巴和农用车进行车型的分类识别。陈丽等利用神经网络对小型轿车、大型客车和重型货车等车型进行特征提取[6-8]。
现有的车辆识别技术通常只是对车辆的车型进行识别,对于车辆其他信息(如车速、车流量等)的识别研究较少,使得车辆的识别仍达不到理想的效果,影响工作人员的执行效率。此外,在实际应用中还应考虑车辆识别系统软硬件平台的传输效率及其运行速度,以避免在系统硬件设备开发中计算时间过长、计算成本过高。因此,本文采集车辆通过时的声信号,应用BP 神经网络(Back propagation)以及结合主成分分析(Principal component analysis,PCA)和BP神经网络算法模型(PCA-BP)对车辆的车型、车速进行识别,为车辆识别技术提供思路和方法,为系统的实现提供便利。
现场所采集的车辆声信号中,混有的其他环境噪声会使得采集到的声信号数据量非常大。可以采用分帧、加窗和数据归一化的方法对采集到的声信号数据进行预处理,以利于在对声信号提取分析时获取有利信息。本研究在分帧时选用enframe函数,窗函数选择Hanning 窗,数据归一化方法采用最大最小法。
分类识别前需构建合适的特征提取算法,使得在特征维数较低的情况下尽可能保留原始声信号的重要特征。本文选用可以表达声信号特点的时域特征、频域特征和倒谱特征参数。
声信号的时域特征是以时间为自变量描述信号随着时间变化的情况,具有直观和准确的优点。本文提取的时域特征是声信号的短时能量和过零率。当有车辆通过时产生的声音与纯背景时的声音之间的能量差异明显,声信号的短时能量可以描述能量特征的变化情况。短时平均过零率是指声信号每一帧内的波形穿过零值(横轴)的次数,在一定程度上可以体现声信号频率的信息[9]。在提取各类特征时对声信号分帧的帧长及帧移参数设置为相同参量,分帧后加Hanning窗进行处理,由此得到的短时能量和短时平均过零率即可作为表达声信号的特征向量的一部分。
频域分析包含更多的声学特征,可以方便地观察时程曲线中的频率成分含量,对外界环境变化的适应性和抗干扰性也较强,因此可以作为声信号特征表达的一部分。本文采用小型车和公交车声音信号的1/3 倍频程作为特征参数,采用与时域特征提取相同的参数及方法进行预处理。
声音识别中常用梅尔频率倒谱系数(Mel frequency cepstrum coefficient,MFCC)作为声信号的提取特征,现已被广泛应用。当波频超过1000 Hz时为对数尺度,而1000 Hz 以下为线性尺度,其取值大体与实际频率的对数相对应,具体可表示为
利用梅尔滤波器组将采集时车辆通过声信号的功率谱划分到多个频带,然后对每个频带的能量取对数,最后进行离散余弦变换即可得到MFCC[10]。这里取其前12 阶系数MFCC1~MFCC12进行分析。在进行MFCC 计算时,声信号分帧及窗函数须保持与提取其他特征参数时相一致。
在苏州市虎丘区贡山路和渚镇路、杭州市江干区五一路和西宁市城北区美丽水街进行了数据采集,测试道路均为沥青混凝土路面,双向两车道路段。各路段两侧有较矮的树木,周围无高大建筑物、无其他明显噪声源影响,没有其他大型反射物或吸声材料。测试路段符合背景噪声较小、路况良好等车辆通过声信号的测试要求。
车辆声音信号采集系统包括传声器、采集器和电脑。采集器为INV3062A 多通道网络分布式采集分析仪。测试时声信号的采样频率为51.2 kHz。为了确定样本车辆通过时的速度范围,在测试路段现场架置高速摄像机进行与声信号采集同步拍摄。速度测试区间宽度3 m,车辆通过时间较短,故认为车辆在测试区间段匀速通过。噪声测试点距离道路中心线7.5 m。测试时,按照标准《汽车加速行驶车外噪声限值及测量方法》进行测试[11]。
现场采集数据为小型车及公交车通过标记路段时的声信号以及速度范围。声音信号样本包含81个,其中小型车60个,公交车21个。
BP 神经网络算法是人工神经网络中的一种,属于监督式训练。该算法因为在理论上可以逼近任意函数而具有非常强大的非线性映射能力。在本文的研究中,将声信号的特征向量作为网络的输入层,通过建立从特征向量到车型与车速类别空间的非线性映射,实现车辆类型与速度的分类识别。
识别前,首先要对BP 神经网络的模型进行训练。经过训练调整后的网络有了一定的联想记忆能力和预测分类的能力。选取若干个样本作为训练集,然后进行BP神经网络训练。训练过程如图1所示。
图1 BP 神经网络训练过程Fig.1 BP neural network training process
BP 神经网络的输入层节点数主要由输入向量的维数决定。单隐层的BP 神经网络可以逼近一个任意的连续非线性函数,因此,本文采用单隐层的BP 神经网络。隐含层节点数也会影响网络的预测精度,其确定方法主要依靠经验法或试凑法[12]。隐含层的激励函数选取Sigmoid 函数:f(x)= 1/(1+e-x)。为了解决神经网络预测误差在修正过程中没有考虑到网络模型自身学习经验的积累且学习收敛速度相对较为缓慢的问题,本文采用附加动量法进行计算。为了在网络学习过程中使网络逐渐趋于稳定,本文采用变学习率方法进行计算。
主成分分析(PCA)方法力求在数据信息损失最小的原则下,将多维数据变量指标转换成相对较少维的综合指标,转化后的综合指标成为“主成分”。通过特征提取后,获得的特征向量间可能会含有冗余数据而导致特征匹配时计算量过大且复杂,计算时间较长。本文采用PCA 方法对特征向量进行降维处理,将获取到的新的主成分变量作为BP 神经网络的输入端参数输入,将此方法简称为PCA-BP方法。
主成分分析基本步骤主要包括以下几点:
(1)通过对相关程度的检验确定数据是否可用主成分分析。
(2)求主成分。一般数据变量之间有不同的单位或者差异很大时,选择用基于相关系数矩阵的主成分分析方法,否则应考虑选择基于协方差阵的主成分分析[13]。
(3)计算出相关系数矩阵(或者协方差阵)的特征根以及与特征根对应的特征向量。
(4)根据主成分的累计贡献率、特征根等确定主成分的个数。其中,累计贡献率是指将前几个主成分的方差求和后占总方差的比例,实际应用中可以根据具体问题选取主成分个数。
通过前期研究计算得到每个车辆声信号的短时平均能量特征向量1 维、短时平均过零率1 维、1/3倍频程30 维以及梅尔倒谱特征12维,即共获取每辆车的声信号特征向量维数为44 维。将实验随机选取测试数据小型车18 组和公交车19 组进行分帧后获得小型车及公交车特征数据总量为131320。将实验数据集进行主成分分析,结果表1所示。
表1 主成分分析结果Table 1 Results of principal component analysis
所有的主成分按照特征根大小排序,限于篇幅这里给出前20 个。从表1中可以看到,特征根大于1 的主成分有8 个,即可提取8 个主成分。第一主成分特征根为21.479,方差贡献率为46.693%;直到第8 个主成分累计方差贡献率达到89.165%,即8 个主成分共解释了总变量的89.165%。因此,提取8个主成比较可取。
本次研究的44 维特征数据经过主成分分析降维后,可以提取8 个主成分对原数据变量进行解释。主成分分析后得到的新变量既可以保证数据的可靠性,同时在接下来的计算中可以有效减少数据的计算量。
在PCA-BP 算法模型中,BP 神经网络的输入端应为PCA 方法降维后新的主成分变量,本研究中的44 维特征向量经过PCA方法降维后可以获得8 维新的“特征向量”,即BP 神经网络输入端为8维特征向量;其隐含层节点数可根据经验法或试凑法确定。由于所测试道路中苏州市虎丘区贡山路、杭州市江干区五一路和西宁市城北区美丽水街为城市主干路,渚镇路为二级公路,根据《城市道路工程设计规范CJJ 37-2012》[14]和《公路工程技术标准JTGB01-2014》[15]中规定,主干路的设计速度应为40~60 km/h,二级公路的设计速度应为60~80 km/h。故本文将以60 km/h作为小型车速度划分界限进行分类,即低于60 km/h 的行车速度设定为中低速范围,而高于60 km/h 的行车速度设定为高速范围;鉴于公交车车速一般介于40~70 km/h 之间,故设置公交车速度划分界限为55 km/h,即输出层为2。算法模型如图2所示。
图2 基于PCA-BP 车型与车速分类算法模型图Fig.2 Diagram of vehicle type and speed recognition algorithm based on BP neural network
将除训练样本外的测试样本特征处理后分别输入到BP 神经网络模型及PCA-BP 训练模型中,得到识别效果及计算用时情况如表2和表3所示。
表2 测试车辆的车型识别结果Table 2 Vehicle type recognition results
表3 测试车辆的车速识别结果Table 3 Vehicle speed recognition results
通过表2和表3可以看到,相比于BP 神经网络算法计算时长,应用PCA-BP 方法计算识别车型及车速的时长节省了50%~70%左右,识别速度明显提升。采取PCA-BP 方法后,车型识别正确率均在80%以上。序号为32 和78 的两辆车车速识别正确率较低,经过对这两组声信号与其他测试信号对比分析,结果表明这两辆车在采集声信号过程中可能存在换挡动作。由于车辆行驶车速相对较低,车辆行驶过程中产生的胎噪和风噪相对较小,发动机及排气噪声贡献量相对较大,因而发动机噪声对所采集的声信号样本影响较大。换挡动作会导致发动机及进排气噪声的突变,但该动作变化时间很短,换挡结束后声信号会迅速恢复,因此在初选声信号样本时难以排除异常。为确定该模型能够较好识别的车辆行驶速度范围,新增加22辆样本外测试车辆通过声信号,各车经过测试地点车速及其识别结果如表4所示。
通过表4可以看出,应用PCA-BP 方法时的车速识别取得了较好的结果。该训练模型在速度划分界限60±3 km/h范围外,速度识别率可达到70%以上;在速度划分界限60±5 km/h 范围外,速度识别率可达到80%以上。经分析,H2和H66两辆车识别效果不佳与上述分析原因相同,即采集信号过程中存在换挡动作。故该模型可以在一定速度范围内可以取得良好的速度检验识别结果,且不适用于换挡动作下基于声信号的车速范围识别。
表4 新增检验车辆的车速识别结果Table 4 Speed recognition of increased test vehicles
本文对中小型车和公交车的车型与车速范围进行识别,整体效果较好,识别过程中可以节省计算时长的50%~70%左右,有效提升了识别计算速度。并采用扩大测试样本的速度范围及增加测试数量的方法,探讨了小型车车速范围识别效果,为后续车速识别研究打下基础。基于声信号的PCA-BP方法的车型与车速识别可以作为一种补充技术手段,为交通识别系统正常高效地运行提供保障,为道路交通系统的提供重要信息,在智能交通系统方面应用前景广阔。