首页> 中国专利> 一种基于子带谱熵法和PSO-GA-SVM的汽车鸣笛识别方法

一种基于子带谱熵法和PSO-GA-SVM的汽车鸣笛识别方法

摘要

本发明涉及一种基于子带谱熵法和PSO‑GA‑SVM的汽车鸣笛识别方法,所述方法包括以下步骤:步骤1:对采集的声音样本进行预处理:步骤2:子带谱熵法处理;步骤3:PSO‑GA‑SVM算法处理,进行分类。该算法具有较好的鲁棒性。在对实际采集样本的鸣笛识别中,该算法也取得了较高的准确率。

著录项

  • 公开/公告号CN113205830A

    专利类型发明专利

  • 公开/公告日2021-08-03

    原文格式PDF

  • 申请/专利权人 南京师范大学;

    申请/专利号CN202110502384.7

  • 发明设计人 李晨;余凌浩;陆铁文;曾毓敏;

    申请日2021-05-08

  • 分类号G10L25/51(20130101);G10L25/18(20130101);G10L25/24(20130101);G10L25/45(20130101);

  • 代理机构32206 南京众联专利代理有限公司;

  • 代理人杜静静

  • 地址 210046 江苏省南京市栖霞区亚东新城区文苑路1号

  • 入库时间 2023-06-19 12:05:39

说明书

技术领域

本发明涉及一种汽车鸣笛识别方法,具体涉及一种基于子带谱熵法和PSO-GA-SVM的汽车鸣笛识别方法,属于信号处理技术领域。

背景技术

近年来,交通噪声的关注度日益增长。鸣笛噪声是交通噪声的主要组成成分,汽车在禁鸣区违章鸣笛,会严重影响他人的生活、学习与工作。为了遏制违章鸣笛,鸣笛抓拍系统应运而生。鸣笛抓拍系统会实时检测当前的声压级,当声压级超过一定阈值时,系统启动,通过远场波束形成技术定位声源的位置并进行音视频记录。然而交通环境中声源情况非常复杂,有很多非鸣笛声也能触发鸣笛抓拍系统的阈值,只依靠声压级触发门限会出现较多误判的情况。这也是目前鸣笛抓拍系统应用较少的主要原因。因此,对鸣笛抓拍系统采集的样本进行鸣笛与非鸣笛的分类是非常有必要的。

在汽车鸣笛识别方面,目前已有许多学者进行了研究,较为常用的方法主要分为以下两类:1)阈值判断,如短时能量和短时过零率法等。该方法将特征值高于或低于一定门限的声音样本直接进行分类,其分类效果主要取决于特征和阈值的选取;2)机器学习,如卷积神经网络、隐马尔科夫模型等。该方法首先对样本提取特征,通过训练一定数量的样本得到一个模型,再通过采集的样本是否与模型相匹配来进行分类。进行阈值判断时,阈值的设置会直接影响分类结果的准确性,然而交通环境中声源情况非常复杂,会给阈值设置带来较大阻碍。机器学习虽然准确率较高,但对模型有比较高的要求。如果实测的鸣笛样本中含有较多噪声,也会对分类准确率产生很大影响。因此,现有技术中一直没有很好的解决办法。

发明内容

本发明正是针对现有技术中存在的问题,提供一种基于子带谱熵法和PSO-GA-SVM的汽车鸣笛识别方法,该技术方案针对鸣笛抓拍系统会产生误判的问题,提出了一种基于子带谱熵法和支持向量机的汽车鸣笛识别算法,该方法首先使用子带谱熵法对声音样本进行初判,将子带谱熵高于阈值的样本直接判定为非鸣笛样本。然后对初判为鸣笛的样本中的疑似鸣笛部分进行分割,并提取Mel频率倒谱系数作为声音的特征。最后使用支持向量机对分割结果进行进一步分类,并使用粒子群算法与遗传算法的融合来优化支持向量机的参数。仿真结果表明,该算法具有较好的鲁棒性。在对实际采集样本的鸣笛识别中,该算法也取得了较高的准确率。

为了实现上述目的,本发明的技术方案如下,一种基于子带谱熵法和PSO-GA-SVM的汽车鸣笛识别方法,所述方法包括以下步骤:

步骤1:对采集的声音样本进行预处理:

步骤2:子带谱熵法处理;

步骤3:PSO-GA-SVM算法处理,进行分类。

其中,步骤1:对采集的声音样本进行预处理,具体如下:带通滤波、预加重、分帧、加窗,一般汽车鸣笛的频率分布在1500-6000Hz。为了保留汽车鸣笛的主要特征并去除噪声的干扰,首先对声音样本进行1500-6000Hz的带通滤波。

预加重是一个一阶高通滤波器,用一阶FIR滤波器表示为:

s′(n)=s(n)-as(n-1) (1)

式(1)中,a为一常数,s(n)为原始信号,s’(n)为预加重后的信号。预加重可以对信号进行高频提升,使频谱变得更平坦,减少频谱的动态范围。一般来说,0.9

分帧将一段较长声音信号分成多个小段,使每小段声音信号可以作为平稳信号来处理,为了使每一帧信号之间平滑地过渡,两个相邻帧之间需要有一些重叠区域。本发明中帧长选为50ms,帧移长度选为帧长的1/3,

加窗避免因信号两端出现不连续的情况而导致的频谱泄漏,本发明选用汉明窗作为窗函数,共有N个采样点,第n个采样点的窗函数公式如下:

步骤2:子带谱熵法处理,具体如下:针对预处理后数据,计算子带谱线能量和子带谱熵,进行双门限分割;

子带谱熵的思想是将每一帧的频谱分成若干个子带,这样就消除了每一条谱线受噪声影响的问题。设每个子带由4条谱线组成,共有N

式(3)中,Y

引入一个正常量K到式(4)中,得到新的子带谱线能量的概率分布式:

可推导证明,在噪声环境下,引入正常量K后,分割的准确度能得到提高,本发明中K取0.1,子带谱熵的公式为:

使用子带谱熵法可以将子带谱熵高于阈值的样本直接判为非鸣笛样本。然而在实际交通环境中也存在一些非鸣笛声(如汽车转向提示声、公交车报站声、警笛声等),由于具有一定的谐波特征,产生了分割结果,会被子带谱熵法误判为鸣笛声。因此,我们需要对子带谱熵法的分割结果进行进一步的分类,来消除此类误判。

步骤3:PSO-GA-SVM算法处理,进行分类,具体如下:

步骤31:对训练集进行k折交叉验证,

步骤32:初始化N个粒子,计算初始适应度,将搜索空间中每一个c和g可能的解编码为染色体,随机选择N个染色体来形成初始种群,并初始化粒子速度。计算每一个粒子的适应度,求出pbest和gbest。

步骤33:更新每一个粒子的速度和位置;

步骤34:按照适应度选出N-1个粒子,对它们进行交叉、变异操作,再与上一代的最优粒子组合成新的N个粒子,计算每一个粒子的适应度,更新pbest和gbest,

步骤35:转步骤33,直到满足一定迭代次数为止;

步骤36:输出最优c和g;

步骤37:将最优c和g代入SVM的c和g参数中,对测试集进行分类。

相对于现有技术,本发明具有如下优点,该技术方案能够准确地识别出汽车鸣笛声,结合鸣笛抓拍系统记录违章鸣笛,为交警执法提供依据。本发明通过子带谱熵法分割出疑似的鸣笛部分,大幅减少了噪声对分类器模型造成的影响,并且鸣笛识别的准确率较高。此外本发明提取的特征维数较低,运行速度快,可以满足鸣笛抓拍系统实时检测的要求。

附图说明

图1为算法总流程;

图2为子带谱熵法流程图;

图3 PSO-GA-SVM流程。

具体实施方式:

为了加深对本发明的理解,下面结合附图对本实施例做详细的说明。

实施例1:参见图1,一种基于子带谱熵法和PSO-GA-SVM的汽车鸣笛识别方法,所述方法包括以下步骤:

步骤1:对采集的声音样本进行预处理:

步骤2:子带谱熵法处理;

步骤3:PSO-GA-SVM算法处理,进行分类。

其中,步骤1:对采集的声音样本进行预处理,具体如下:带通滤波、预加重、分帧、加窗,一般汽车鸣笛的频率分布在1500-6000Hz。为了保留汽车鸣笛的主要特征并去除噪声的干扰,首先对声音样本进行1500-6000Hz的带通滤波。

预加重是一个一阶高通滤波器,用一阶FIR滤波器表示为:

s′(n)=s(n)-as(n-1) (1)

式(1)中,a为一常数,s(n)为原始信号,s’(n)为预加重后的信号。预加重可以对信号进行高频提升,使频谱变得更平坦,减少频谱的动态范围。一般来说,0.9

分帧将一段较长声音信号分成多个小段,使每小段声音信号可以作为平稳信号来处理,为了使每一帧信号之间平滑地过渡,两个相邻帧之间需要有一些重叠区域。本发明中帧长选为50ms,帧移长度选为帧长的1/3,

加窗避免因信号两端出现不连续的情况而导致的频谱泄漏,本发明选用汉明窗作为窗函数,共有N个采样点,第n个采样点的窗函公式如下:

步骤2:子带谱熵法的主要流程如图2所示:

子带谱熵法处理,具体如下:针对预处理后数据,计算子带谱线能量和子带谱熵,进行双门限分割;

子带谱熵的思想是将每一帧的频谱分成若干个子带,这样就消除了每一条谱线受噪声影响的问题。设每个子带由4条谱线组成,共有N

式(3)中,Y

引入一个正常量K到式(4)中,得到新的子带谱线能量的概率分布式:

可推导证明,在噪声环境下,引入正常量K后,分割的准确度能得到提高,本发明中K取0.1,子带谱熵的公式为:

双门限分割的主要步骤为:

步骤21在信号的子带谱线能量包络线上选取一个较高的阈值eth2,包络线与eth2相交于左右两个点A和B。认定高于eth2的部分一定是鸣笛,而鸣笛的起止点应该在AB段之外。再在信号的子带谱线能量包络线上选取一个较低的阈值eth1,从A点向左、从B点向右搜索,分别找到包络线与eth1相交的左右两个点C和D。CD段即为基于子带谱线能量门限分割的鸣笛部分。

步骤22在对应的子带谱熵包络线上,从C点向右、从D点向左进行更加细致的分割,找到子带谱熵低于阈值eth3的左右两个点E和F。EF段即为基于子带谱线能量和子带谱熵双门限分割的鸣笛部分。

使用子带谱熵法可以将子带谱熵高于阈值的样本直接判为非鸣笛样本,然而在实际交通环境中也存在一些非鸣笛声(如汽车转向提示声、公交车报站声、警笛声等),由于具有一定的谐波特征,产生了分割结果,会被子带谱熵法误判为鸣笛声。因此,我们需要对子带谱熵法的分割结果进行进一步的分类,来消除此类误判。

步骤3:PSO-GA-SVM算法处理,进行分类;

SVM是一种二分类模型。设样本集为(x

惩罚因子c和核函数参数g对SVM的分类性能有很大的影响。本发明使用PSO-GA来优化c和g参数。

PSO将粒子i在搜索空间中的飞行速度表示为向量v

x

式(8)中,r为均匀分布在(0,1)之间的随机数,K由下式表示:

本发明中

GA将搜索空间中每一个可能的解编码为染色体,随机选择一组染色体来形成初始群体。在每一次迭代中,计算每个粒子的适应度,按照适应度大小的顺序来选择个体,进行交叉、变异等操作。反复执行遗传操作,直到满足终止条件为止。

1.4.2算法流程

PSO-GA-SVM主要流程如图3所示,其主要步骤如下:

步骤31:对训练集进行k折交叉验证,本发明中k取5。

步骤32:初始化N个粒子,计算初始适应度,将搜索空间中每一个c和g可能的解编码为染色体,随机选择N个染色体来形成初始种群,并初始化粒子速度。计算每一个粒子的适应度,求出pbest和gbest。

步骤33:按照式(8)和式(9)更新每一个粒子的速度和位置;

步骤34:按照适应度选出N-1个粒子,对它们进行交叉、变异操作,再与上一代的最优粒子组合成新的N个粒子,计算每一个粒子的适应度,更新pbest和gbest,

步骤35:转步骤33,直到满足一定迭代次数为止;

步骤36:输出最优c和g;

步骤37:将最优c和g代入SVM的c和g参数中,对测试集进行分类。

需要说明的是上述实施例,并非用来限定本发明的保护范围,在上述技术方案的基础上所作出的等同变换或替代均落入本发明权利要求所保护的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号