1.本发明涉及一种基于多特征融合和组合模型的鸟声识别方法,属于鸟鸣声分类识别的技术领域。
背景技术:2.鸟类是自然生态系统的重要组成部分,由于其对所生活的生态环境的变化十分敏感且易被观察和研究,因此对鸟类的监测和识别有助于对生态环境的监测,对生态环境保护工作的开展具有重大意义。鸟类监测是国内外研究的一个重要领域,传统的鸟类监测主要依赖于鸟类的形态特征差异完成,而在听觉上鸟鸣声中也包含着独有的特征,并且具有大范围性、稳定性、低干扰等优点,因此对鸟声识别的研究显得尤为重要。
3.鸟声识别的一般过程主要是预处理、特征参数提取、分类方法选择三个方面。目前国内外在鸟声识别技术上的改进主要是在于特征参数提取上,然后使用深度学习的方法构建神经网络进行训练完成鸟声识别。然而现有方法所提取的鸟声特征多基于人声领域的特征且较为单一,识别效果易受外界环境噪声影响。为解决此问题提出一种基于多特征融合和组合模型的鸟声识别方法。
技术实现要素:4.为解决现有的鸟声识别方法中提取特征单一,所代表的鸟声特性不足的问题,本发明提供一种基于多特征融合和组合模型的鸟声识别方法,使用融合特征替代了单一的特征,使不同鸟声之间的特征差异更大,更易被区分,且使用三个神经网络模型组合识别,提高了鸟声识别准确率。
5.本发明具体采用以下技术方案解决上述技术问题:
6.一种基于多特征融合和组合模型的鸟声识别方法,包括以下步骤:
7.步骤1、对读取的原始鸟声音频进行预处理,包括预加重和分帧加窗;
8.步骤2、对预处理后的原始鸟声音频提取鸟声的梅尔倒谱系数、梅尔滤波后的能量系数、短时过零率和短时频谱质心四种特征,并对四种特征分别归一化后进行纵向拼接形成一个融合特征;以及,对预处理后的原始鸟声音频经短时傅里叶变换stft的结果绘制stft语谱图;
9.步骤3、将形成的一个融合特征和绘制的stft语谱图分别输入构建的两个基于inception模块的cnn模型进行训练,训练完成后将两个模型输出的概率数组进行拼接形成一个特征数组,并将该特征数组作为ann模型的输入进行训练,训练完成后加载上述三个模型的最优参数;
10.步骤4、将待测的任一鸟声音频输入加载最优参数后的三个模型,得到鸟声识别分类结果。
11.进一步地,作为本发明的一种优选技术方案:所述步骤1中对原始鸟声音频采用一阶fir高通数字滤波器进行预加重。
12.进一步地,作为本发明的一种优选技术方案:所述步骤1中对原始鸟声音频采用汉明窗进行分帧加窗。
13.进一步地,作为本发明的一种优选技术方案:所述步骤2中对预处理后的原始鸟声音频经短时傅里叶变换后的结果再进行梅尔滤波,得到梅尔滤波后的能量系数特征,并通过对梅尔滤波后的结果取对数再进行离散余弦变换dct得到梅尔倒谱系数特征。
14.进一步地,作为本发明的一种优选技术方案:所述步骤3中采用单层神经元个数为512的ann模型。
15.本发明采用上述技术方案,能产生如下技术效果:
16.1.本发明的方法,提出将梅尔倒谱系数(mfcc)、梅尔滤波后的能量系数、短时平均过零率和短时频谱质心四个特征参数进行融合形成一个融合特征,利用融合特征提高不同鸟声之间特征的差异性,使用融合特征替代了单一的特征,使不同鸟声之间的特征差异更大,更易被区分,有效地解决了单一特征所表征的鸟声特征不足的问题。此外,利用短时傅里叶变换(stft)的结果数据绘制stft语谱图,将语谱图也作为一种识别特征,增加了特征范围。
17.2.使用基于inception模块搭建的自搭建卷积神经网络模型,降低了训练参数量。
18.3.为了提高识别准确率,提出了一种由三个神经网络组合而成的组合模型判决方法,首先选用深度学习方法中经典的卷积神经网络cnn作为网络模型,分别将融合特征和stft语谱图作为构建的两个cnn模型的输入进行训练,将两种特征经两个模型的输出结果的概率数组进行组合得到特征数组并作为人工神经网络ann模型的输入,其输出即识别结果。本方法基于融合特征和stft语谱图特征的不同,使用这两个不同特征分别通过两个cnn模型的输出作为ann模型的输入进行训练,即共使用三个神经网络模型组合的方法提高了鸟声识别准确率。
附图说明
19.图1为本发明基于多特征融合和组合模型的鸟声识别方法的原理示意图。
20.图2为本发明方法中的特征融合过程示意图。
21.图3为本发明方法中搭建的基于inception模块的cnn模型示意图。
22.图4为本发明方法中inception模块结构示意图。
23.图5为本发明方法中mfcc系数训练结果图。
24.图6为本发明方法中融合特征训练结果图。
25.图7为本发明方法中stft语谱图训练结果图。
26.图8为本发明方法中ann模型的训练结果图。
具体实施方式
27.下面结合说明书附图对本发明的实施方式进行描述。
28.如图1所示,本发明涉及一种基于多特征融合和组合模型的鸟声识别方法,该方法主要包括以下步骤:
29.步骤1、对读取的原始鸟声音频进行预处理,包括预加重和分帧加窗,具体如下:
30.首先,以22.5khz的频率读取原始鸟声音频,对读取的原始鸟声音频采用一阶fir
高通数字滤波器进行预加重,预加重系数为0.9665。然后采用汉明窗进行分帧加窗,帧长为23ms,帧移为11.5ms,共可分得173帧鸟声数据。
31.步骤2、对预处理后的原始鸟声音频提取鸟声的梅尔倒谱系数(mfcc)、梅尔滤波后的能量系数、短时过零率和短时频谱质心四种特征,并对四种特征分别归一化后进行纵向拼接形成一个融合特征;以及,对预处理后的原始鸟声音频经短时傅里叶变换stft的结果绘制stft语谱图,具体如下:
32.首先,设置等面积梅尔滤波器组,梅尔滤波器数量选为128,并对预处理后的原始鸟声音频经短时傅里叶变换stft得到一个二维数组的结果,其第一维是幅值和相位信息,第二维是帧数,根据该短时傅里叶变换stft后的结果进行梅尔滤波,以此结果得到梅尔滤波后的能量系数数据大小为[128,173]的二维数组,再对其取对数后进行离散余弦变换dct得到mfcc系数并取前40位,即得大小为[40,173]的二维数组。
[0033]
然后,分别提取短时过零率、短时频谱质心特征,大小均为[1,173]的二维数组数据。
[0034]
最后,由于四组二维数据的量级不同,因此对四组二维数据分别进行归一化,使其分布在[
‑
1,1]之间,最后进行纵向拼接,形成大小为[170,173,1]的三维数组,如图2所示,形成融合特征。
[0035]
同时,为了提高鸟声识别的准确率,通过上述短时傅里叶变换(stft)后得到的一个二维数组结果绘制了stft语谱图,保存为图像数据并归一化,大小为[256,256,3]的三维数组。
[0036]
步骤3、将形成的一个融合特征和绘制的stft语谱图分别输入构建的两个基于inception模块的cnn模型进行训练,训练完成后将两个模型输出的概率数组进行拼接形成一个特征数组,并将该特征数组作为ann模型的输入进行训练,并加载上述三个模型的最优参数;具体如下:
[0037]
如图3所示,首先,搭建两个独立的基于inception模块的cnn模型。首先,输入的特征经过64个3
×
3的卷积核,步长为1,然后经过4个inception模块,卷积核和池化核数量分别为16和32,最后经过全局平均池化后完成20分类的输出。其中inception模块结构如图4所示,共有4个分支,每个分支有不同尺寸的卷积核和池化核,每个卷积核和池化核的步长由调用时参数决定,最后将4个分支通过聚合操作在深度上聚合。
[0038]
然后,将融合特征和stft语谱图分别放入上述两个基于inception模块的cnn模型进行训练,训练完成后将各模型输出的概率数组进行拼接,形成一个特征数组;
[0039]
将上述形成的一个特征数组作为单层神经元个数为512的ann模型的输入进行训练,并在训练完成后加载两个基于inception模块的cnn模型和ann模型三个模型的最优参数,以得到最优参数后的两个基于inception模块的cnn模型和ann模型,即本方法共使用三个神经网络模型组合的方法提高鸟声识别准确率。
[0040]
步骤4、最后,将待测的任一鸟声音频输入加载最优参数后的三个模型,得到鸟声识别分类结果,具体如下:
[0041]
将上述获得最优参数后的三个模型搭建成组合模型,然后将待测的任一鸟声音频输入获得最优参数的三个模型搭建成的组合模型,根据上述方法的步骤,依次通过提取得到鸟声音频的一个融合特征和绘制stft语谱图,并将其分别输入两个加载了最优参数的
cnn模型,由该两个cnn模型分别输出一个概率数组,然后将这两个概率数组进行拼接形成一个特征数组,并将该特征数组作为加载了最优参数的ann模型的输入,最终由ann模型输出得到鸟声识别分类结果。
[0042]
本实施例中,实验采用的鸟声音频是由百鸟数据科技(birdsdata.com)有限责任公司发布的birdsdata(公开部分),该数据集均是在自然场景中设计和收集,共收集了中国常见20种鸟类鸣声合集音频文件14311个,实验时将鸟声音频随机打乱并划分为训练集、验证集和测试集,比例为8600:2855:2856,约6:2:2。
[0043]
本实施例的实验以pycharm为软件平台,编写python代码在tensorflow框架下完成,准确率为评价指标。共分为两个部分实验:1.对比单一的mfcc特征、融合特征和stft语谱图特征分别在vgg16和基于inception模块的自搭建模型两种cnn模型下训练时的表现;2.利用测试集鸟声数据测试单一模型和组合模型的识别准确率。
[0044]
如图5所示,为单一的mfcc经100次迭代的训练结果示意图。如图6所示,为融合特征经100次迭代的训练结果示意图。如图7所示,为stft语谱图经100次迭代的训练结果示意图。如图8所示,为本发明的将两个cnn模型的输出作为ann模型输入经20次迭代的训练结果示意图。
[0045]
以及,下述表1为三种不同特征训练后验证集在两种cnn模型下加载最优参数后的表现,从表1中可以看出,本发明采用的融合特征和stft语谱图特征的表现均优于单一的mfcc特征,因此融合特征有效地解决了单一特征所表征的鸟声特征不足的问题。通过图5、图6、图7也可看出,mfcc和融合特征在训练达到70次左右时,训练集准确率达到1,随后验证集交叉熵损失开始增加,在此前mfcc训练时波动更大,最优参数下识别准确率较低。此外,基于inception模块自搭建的模型准确率在训练参数量远远小于vgg16的情况下,本发明的融合特征和stft语谱图训练后cnn模型的识别准确率均高于vgg16网络,具有更好的应用前景。
[0046]
下述表2为测试集鸟声数据在组合模型下与单一模型下识别结果对比,从表2中可以看出,对于完全陌生的测试集鸟声数据,本发明采用的融合特征和stft语谱图的识别结果均十分良好,因此具有良好的泛化能力,另外,本发明使用三个模型作为组合模型的结果可以有效地提升了鸟声识别的准确率,降低了交叉熵损失。
[0047]
表1:三种特征的验证集在两种cnn模型上的表现
[0048][0049]
表2:测试集在单一模型和组合模型下鸟声识别结果
[0050][0051]
综上,本发明的方法通过提取四个特征参数形成融合特征,提高不同鸟声之间特征的差异性,使用融合特征替代了单一的特征,使不同鸟声之间的特征差异更大,更易被区分,有效地解决了单一特征所表征的鸟声特征不足的问题。并且,本发明基于融合特征和stft语谱图特征的不同,使用这两个不同特征分别通过两个cnn模型的输出作为ann模型的输入进行训练,即共使用三个神经网络模型组合的方法有效提高了鸟声识别准确率。
[0052]
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。