APP下载

基于改进视觉词袋模型的水声目标识别①

2021-05-21潘安迪

计算机系统应用 2021年5期
关键词:分类器水声灰度

潘安迪,肖 川,陈 曦

(复旦大学 计算机科学技术学院,上海 201203)

1 介绍

水声目标识别的任务是通过采集到水声目标的信号来对目标进行识别和检测[1].海水是一种复杂的介质,具有时变特性,充斥复杂噪声的特性[2-4].因此捕捉到的声学信号在时间和相位上拥有时变的特点[2].这也使得水声目标识别是一项具有挑战性的工作.

在水声目标识别领域早期,大部分分类任务都是基于特征工程与分类器构造的[5].常被水声目标识别使用的特征有梅尔频率倒谱系数(Mel Frequency Cepstrum Coefficient,MFCC),时频谱特征等等.从特征工程的角度来讲,有人设计手工特征,如Li 等[2]通过比较小波包分解后不同频带的分形维数(Fractal Dimension,FD)值来设计船声信号特征;有人使用特征组合和特征选择方法来组合、抽取以构成更加鲁棒的特征,如Jiang 等[6]将功率谱(power spectra)和方谱特征(square spectrum feature)结合起来,并且使用主成成分分析法降维,获得更加有判别力的特征.分类器构构造方面,有人引入集成算法,如Sun 等[7]使用自适应提升算法(AdaBoost)构造并集成多个有偏好的分类器,以提高最终分类准确率;有人致力于核函数的构造,如Sherin等[8]使用BAT 算法进行核函数的构造与选择.整体而言,在水声目标识别领域中,抽取的特征能否有效地表示样本决定了模型的性能.

近年来,由于深度学习可以从数据中自动学习特征,并且学得的特征比传统特征更能表示样本,成为了近年来的研究热点,如Xie 等[9]基于时频谱,使用了深度玻尔兹曼机.然而,深度学习方法在拥有大量数据时才更好地发挥优越性,显然,常见的水声目标识别数据集无法满足这一要求.因此,半监督学习方法被引入.Yang 等[10]使用无标签数据预训练了深度信念网络,利用竞争性学习方法以及标签数据对神经元进行聚类,最后进行微调.邓晋等[11]使用了两类迁移学习方法,基于ImageNet[12]和AudioSet 训练分类模型作为特征提取器,对于抽取的深度特征进行进一步分类;另一种方法是,将上述模型作为预训练模型,使用水声目标识别数据集进行微调得到最终的分类模型.

在现实的海洋环境声学场景中,往往船只的声音信号伴随着很大的背景噪声[13,14],传统的低层次特征[15-18]对噪声会比较敏感,因为低层次特征容易直接被声音信号中的物理性质影响.在图像分类任务[19-21]中,视觉词袋模型是一个有效的模型,常常被用于计算机视觉中的目标识别任务.与另外一种高层次特征SIFT[22]相比,视觉化词袋模型更适合水声目标识别,因为水声音频信号频谱沿着时间轴的变化是显著的,但是在尺度,位置以及形态上面没有显著的特征.因此,本文提出了一种基于改进视觉化词袋模型的方法来进行水声目标识别,对高层次特征进行提取,通过建立视觉词本,统计一个音频频谱图中含有的每个视觉化词条的数量,将这个向量转化为TF-IDF 向量,得到最终的特征,输入到多层感知机中,进行分类.

本文后续的组织结构如下:第2 节介绍本文提出的算法流程以及算法的原理;第3 节介绍本文进行的实验,包括实验配置以及实验结果和结果分析;第4 节对文章进行总结.

2 算法设计

本文提出的算法的整体架构如图1所示.首先,对音频信号进行预处理,将音频信号转换为梅尔频谱,然后对梅尔频谱图做归一化操作,将梅尔频谱图转换为灰值图谱.然后需要建立视觉词汇库,在每个类别中随机抽取10 个样本,对样本进行上述的预处理操作,转换为灰度图,然后将灰度图中的一列作为一个视觉词汇,将所有视觉词汇打乱,使用K-means 聚类[23]将所有视觉词汇聚类为600 个簇心.簇心的数目即视觉词汇库的规模.最后,训练集中的音频数据都需要进行预处理,然后将灰度图中的每一列归类到视觉词汇库中的某个词汇,从而得到一个600 维的向量,每个维度表示的是该样本对应的灰度图中含有某个词汇的数量.

2.1 预处理

由于船只噪声信号能量主要分布在8000 Hz 以下的低频带,为了更好地表现能量沿着频率轴的变化,我们选择梅尔频谱来表现信号的时频特性.目标音频信号采用的采样率为52 734 Hz,使用50%重叠的90 ms汉明窗加窗函数,然后通过归一化操作将梅尔频谱图转换为灰度图,公式描述如下,得到224×224的图片格式.

2.2 建立视觉词汇库

词袋模型(Bag of Words,BOW)[24]是自然语言处理(natural language processing)领域中常用的算法,用来表示文本信息.词袋模型假设一个文档,忽视文档的单词顺序与语法,仅将文本看作词语的集合,用词语的统计信息来表示一个文档.在本论文中我们将灰度图中的一列作为一个词汇,从而得到视觉词袋模型(Bags of Visual Words,BOVW),可以将频谱图表示为一个统计向量[25].首先,我们需要建立视觉词汇库.从每个类别中随机选择10 个样本,转化为灰度频谱图,然后把灰度频谱图的每一列作为一个词汇,使用K-means 聚类算法,使用余弦距离作为度量标准,将50 个样本中所有的词汇进行聚类,聚类为k个类别,k为视觉词汇库的规模,即为其中含有的词汇数量.

图1 算法整体流程图

2.3 视觉词袋表示

建立视觉词汇库之后,我们将提取音频的视觉词袋表示特征.首先我们将音频转化为灰度图,然后将灰度图中的每一个列作为视觉词汇,将视觉词汇与视觉词汇库中的K个标准视觉词汇进行对比,找到欧式距离最近的标准视觉词汇Wi,这一列视觉词汇即属于视觉词汇Wi.在得到了灰度图中的每一列所属的视觉词汇之后,通过统计每一个视觉词汇出现的次数,得到一个K维向量,这个向量即为一个音频的视觉词袋表示.在视觉词袋模型上,本文还使用TF-IDF 方法做出了额外的改进,用来凸显重要性高的视觉词汇,对重要性较低的视觉词汇则使用较低的权重.视觉词袋表示的特征提取流程如算法2.

算法2.视觉词袋特征提取输入:样本音频输出:视觉词袋特征向量(V1,V2,…,V224)←G←Preprocess(S)#对音频进行预处理,得到灰度图,将灰度图中的每一列当成一个视觉词汇(N1,N2,…NK)←(Wi…)←match(((V1,V2,…,V224)))#在视觉词汇库中找到欧式距离最近的标准词汇W,将这一列看作词汇Wi, 统计灰度图中包含的各个视觉词汇的数量,得到一个K 维向量,向量的第i 维是视觉词汇Wi的数量(F1,F2,…,FK)←Mutiply((N1,N2,…,NK),(TDF,TDF,…,TDF))#计算逆文件频率(IDF)向量,将两个向量对应位置的值相乘,得到K 维的BOVW-TF-IDF 向量

TF-IDF (Term Frequency-Inverse Document Frequency,词频-逆向文件频率)[26]是一种用于信息检索与文本挖掘的常用加权技术.其实TF是词频(Term Frequency),表示了词语在文本中出现的频率,IDF (Inverse Document Frequency)是逆文档频率,表示了词语在语料库中出现的频率.TF-IDF是一种统计方法,用以评估一个词汇对于一个语料库中的其中一份文档的重要程度.词汇的重要性随着它文档中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降,例如常用的“的”字.在视觉词汇中,词汇同样有重要程度的区别,比较重要的视觉词汇更能显著地描述样本,重要程度低的视觉词汇可能与音频信号中共有的场景以及噪声有关.所以本论文中将视觉词袋模型方法提取的向量转化为TF-IDF 向量,表示为如公式:

IDFi可以衡量视觉词汇Wi在视觉词汇库中的重要程度,在音频文件转换得到的灰度图中出现的频率越高,重要程度越低,反之,则重要程度越高.

2.4 分类器

感知机(perceptron)[27]是最原始的前馈神经网络.它通过权重w和偏置项b,可以将一个多维输入X映射为一个二元的值,是一种简单的二元线性分类器.多层感知机(multilayer perceptron)是感知机的推广.感知机由输入层部分、隐藏层部分和输出层部分组成,隐藏层部分可以是一层或者多层的.每一层由多个感知机单元组成,输入为上一层的所有输出.同时,若多层感知器的每一个单元都是线性的,那么任意多层感知机都可被等价为一个单层感知机.所以,多层感知机中,每一个单元都选择了非线性的激活函数.最终,使用衡量预测值与实际值之间误差的损失函数,通过反向传播算法,一个多层感知机可以在训练集上面拟合.

在本文中,我们将设置感知机的参数为:输入层的神经元数目为600,即为输入特征的维数,也是聚类算法的簇心数目,视觉词汇库的规模;中间隐藏层的神经元数目为300;输出层神经元数目与类别数目一致,为5 个神经元.在输入层和隐藏层之后都使用批归一化(batch normalization)来调整数据的分布.本文使用的感知机原理图简化如图2.

图2 多层感知机原理图

本文还测试了将支持向量机[28]和随机森林[29]作为后端分类器的性能,结果显示多层感知机要优于其他两个分类器,实验结果在第3.4 节中给出.

3 实验及结果分析

3.1 实验平台

本文实验在 Ubuntu20.04 系统下,利用 Python 语言,Scikit-Learn[30]机器学习框架完成.硬件环境为CPU Intel I7,内存 16 GB,显卡 Nvidia GeForce RTX1080Ti.

3.2 数据集

本文中使用的船舶噪声数据集来自于挪威科技大学在2012-2013年录制的ShipsEar 数据集.ShipsEar 数据集包含不同种类的船只录音以及海洋环境自然背景噪声,旨在用于训练船只识别检测系统.该数据集总共包含90 条记录,每条记录的长度从15 秒到10 分钟不等,船只总共有11 类,根据原论文的分类,将11 种船只噪声和海洋环境自然背景噪声合并为A,B,C,D,E 五类,其中E 类为自然背景噪声,详细的分类如表1所示.

表1 ShipsEar 数据集详情

3.3 评价指标

在评估模型性能过程中,经常需要使用多种不同指标进行评估.大部分的评价指标只能片面的反映模型某一部分的性能.常用的分类任务评价指标有精确率(Precision),召回率(Recall),准确率(Accuracy),F1.本文的数据类别比较均衡,用Accuracy即可较好地评估模型的好坏.将模型的预测结果和真实的标签进行对比,真正例(True Positive,TP)为被模型预测为正的正样本,假正例(False Positive,FP)为被模型预测为正的负样本,假负例(False Negative,FN)为被模型预测为负的正样本,真负例(True Negative,TN)为被模型预测为负的负样本.

3.4 结果分析

本论文选择现在ShipEar 船舶噪声数据集上使用神经网络达到最好性能的论文:基于深度玻尔兹曼机的水声目标识别算法(dbm-based underwater acoustic source recognition)作为对比模型.该论文提出了一种通过数据集用深度学习学习特征的方法进行水声目标识别.

为了体现本文提出的使用词频-逆文件频率改进的视觉词袋特征(BOVW-TF-IDF)的作用,本实验选择了对比使用词频-逆文件频率改进的视觉词袋特征(BOVW-TF-IDF)与视觉词袋特征(BOVW)的效果,分类器都是多层感知机.如表2,可以看出,BOVW-TF-IDF特征相比传统BOVW 特征能更好地表示水声目标识别信号,可能是因为TF-IDF 算法可以将在每个类别中都会出现的噪声以及海洋背景声的权重降低了,使得能表示船只特性的词汇更为突出.

表2 与DBM 算法性能对比

在第一个实验中,我们对现在基于深度玻尔兹曼机的水声识别算法性能和本文提出的算法的正确率进行对比.如表2所示,本文提出的算法相对基于深度玻尔兹曼机的水声识别算法有比较明显的提升,证明了本文提出的特征表示方法是很有价值的,可以达到深度学习模型提取特征的效果.

本文选择了3 种分类器进行对比,结果见表3,输入的都是TF-IDF 特征,根据3 种分类器的正确率,最终选择了多层感知机作为末端分类器.可以看出多层感知机的分类准确率要高于其他两个分类器,所以本文选择多层感知机作为末端分类器.

表3 不同分类器的分类正确率对比

分类器的正确率也会受词汇库的规模影响,如图3所示,在词汇库规模超过600 之后,识别的正确率有降低的趋势.可能是因为声音的频谱图比现实中的更抽象,600的词汇库规模已经可以有效地表示水声目标,达到比较高的正确率

图3 不同词汇规模对模型性能的影响对比

4 结论与展望

本文针对水声目标识别问题,提出了一种基于改进视觉化词袋模型的算法,该算法通过视觉化词袋方法提取出了频谱图中的统计信息作为高阶表示,并且使用了自然语言处理中常用的词频-逆文件频率方法来调整特征的权重,能够更有效地利用重要的视觉特征,降低环境声以及噪声的影响,并在ShipEar 数据集上取得了92.53%的平均准确率,相较于现在效果最好的DBM 算法有了显著的提升,满足了现实应用场景的准确率需求.本文提出的算法的思路可以广泛运用于音频分类的领域.

猜你喜欢

分类器水声灰度
航空滤光片阵列多光谱图像条带灰度调整算法
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
学贯中西(6):阐述ML分类器的工作流程
天津港智慧工作平台灰度发布系统和流程设计
基于朴素Bayes组合的简易集成分类器①
黄昏的水声
Arduino小车巡线程序的灰度阈值优化方案
有些水声,像乡音
基于AdaBoost算法的在线连续极限学习机集成算法
暮饮