APP下载

基于嵌入式GPU的音频事件分类研究与实现

2021-02-28北方工业大学信息学院乔子凌柳子涵鲍志平蔡希昌董红霞刘都鑫刘子逸

电子世界 2021年22期
关键词:池化层麦克风嵌入式

北方工业大学信息学院 乔子凌 柳子涵 鲍志平 蔡希昌 董红霞 刘都鑫 刘子逸

近年来,基于深度学习的音频事件分类方法成为研究热点,但其嵌入式实现仍存在较多难点。论文由此出发,研究嵌入式GPU下的音频事件分类算法及软硬件实现。硬件上,采用环形麦克风阵列和Jetson Nano完成音频采集及音频分类处理。算法上,研究两张基于多重卷积神经网络块结合池化层的方法,并在卷积层后叠加BN层和RELU激活函数。软件上,实现Python下的音频采集、算法实现及指标输出。实验对比证明,论文提出的网络一和网络二的分类准确指标mAP的值为0.431/0.343、AUC的值为0.973/0.965、d-prime的值为2.732/2.568。指标值明显高于与谷歌提供的基线值,且网络一较为优化。

目前难点在多个方面,一个是算法的成熟度方面,另一个是嵌入式实现方面。对于音频事件分类而言,其实时性有一定要求。应用上,通常在监测点布置需要多个音频采集点,并将音频数据进行实时分析与分类输出。

目前,在工程驱动的需求下,嵌入式GPU发展迅速。典型方案为NVIDIA公司的嵌入式GPU。但由于嵌入式GPU的平台性能有限,如何选择复杂度合适的神经网络算法,将复杂算法移植,并保证足够的准确度,这方面的研究已积累较多的经验。

本文通过研究两种组成不同的多层卷积神经网络块在嵌入式GPU下的建模与对比实验,完成一种工程可用的音频事件分类方法探索。

1 硬件平台选型

在实时音频事件分类实现中,硬件平台的小型化与运算速度的平衡尤为重要。一方面,要求硬件平台功耗低,体积小;另一方面要求算力较为强悍,接口较为丰富,且生态环境较好,便于移植和深入研究。

综合上面两方面要求,嵌入式GPU选择为NVIDIA公司的Jetson Nano平台。该平台的硬件主要性能如下:采用四核64位ARM CPU和128CUDA集成的NVIDIA GPU;提供472 GFLOPS的计算性能;4GB LPDDR4存储器。生态环境方面,NVIDIA提供了CUDA及各深度学习框架的支持,便于模型的移植与应用。

另外,为更好提高分类效果与提高升级潜力,前端应采用麦克风阵列。经综合考虑,采用Seeed公司的Respeaker USB Mic array。该板采用4颗数字麦克风组成环形阵列,且通过MicroUSB接口提供供电功能支持。驱动方面,支持USB Audio Class 1.0(UAC 1.0),可适配Jetson Nano的Linux系统。

综上所述,硬件平台选择Jetson Nano平台和Respeaker环形麦克风阵列,其搭配具有高灵活度,驱动方便等优势,具备音频采集及算法实现的必要支撑。

2 算法方案

考虑到算法需要在嵌入式移植,设计了两种网络结构。其中,网络一主要考虑推理的准确率,其网络结构相对复杂;网络二主要考虑推理的速度,其网络结构相对简单。两个模型的共同点在于两点,一方面在卷积块后加入平均池化层可以在缩减特征矩阵尺寸的同时保留矩阵中更多有效信息;另一方面为降低内存容量要求,并加快模型推理速度,均采用全局池化层进行输出。具体设计如下。

网络一采用了五个3×3卷积核来增加神经节点数,网络参数量达到80,753,615。网络一包含五个卷积块和两个2×2平均池化层,每个卷积块由3×3卷积层、BN层、RELU激活层组成。输出部分采用了平均池化层和全局池化层。网络一模型示意图如图1(左)所示。

网络二采用了三个5×5卷积核减少了参数量,网络参数量为4,837,455。网络二包含三个卷积块和一个2×2池化层,每个卷积块由5×5卷积层、BN层以及RELU激活层组成,最后通过全局池化层进行输出。网络二模型示意图如图1(右)所示。

图1 两种网络的实现框图

在训练方面,本文采用了AudioSet数据集。AudioSet是一个大型音频数据集,具有527个音频类。其中,训练集由2063839个剪辑音频组成,包括22,160个剪辑音频的“平衡子集”,该测试集由20,371个音频剪辑组成。训练过程中保存最优网络模型,将最优模型下载至嵌入式平台。

综上所述,本文设计了两个网络模型作为音频事件分类方法,各有所侧重。训练方面,采用AudioSet数据集,并对训练后的网络模型下载到嵌入式GPU。

3 程序设计

为实现算法的评估与验证,需要在JetsonNano的Linux系统编写程序实现算法及硬件驱动,由此程序设计主要分为音频采集模块、网络实现模块及指标计算三部分。为了提高运行效率,采用C++实现音频采集模块的设计,采用pytorch深度学习框架与Python语言完成网络实现及指标计算模块。下面进行详细说明。

音频采集模块通过libasound2(ALSA库)实现音频采集。网络实现模块中,预处理部分通过采集到的音频使用librosa库取梅尔频谱,将图谱序列化得到音频特征矩阵。网络推理模块是将保存的模型进行调用并赋值给模型函数,将音频采集模块返回的特征序列传入模型进行推理,最后保存推理得到的概率最大的五个分类。指标计算模块利用pytorch提供的计算函数实现,在此不做赘述。

4 实验验证

实验验证环节按照实验步骤,完成实验,并进一步完成数据分析。实验步骤为如下三步:

(1)硬件连接与配置:将ReSpeaker_6麦克风与Jetson Nano的I/O接口连接,并在Jetson Nano上将麦克风配置为Jetson Nano的音频采集设备。

(2)程序运行:依次启动模型一/二的音频事件分类程序。

(3)结果比对:分析比较各模型的指标输出,评价模型优劣。

最终,根据mAP(mean Average Precision/平均精度)、AUC(Area Under Curve/ROC曲线下方的面积大小)、d-prime(灵敏度指数d)三个指标对模型进行评估,如表1所示。其中,Google CNN为谷歌发布的基于卷积神经网络的音频事件分类模型。和Google CNN相比,网络一/二在平均精度、准确率和灵敏度方面均有提升且网络一提升较大。

表1 三个模型指标比对表

在实验过程中,使用网络一和网络二的音频事件分类程序均未出现延时过长、内存溢出等现象,实时性与可靠性得到初步验证,因此本文认定网络一为较优选择。

结论:论文从嵌入式音频处理算法的需求出发,完成了硬件设备的选型,比较了两类基于CNN的对轻量化神经网络,并完成系统验证与评估。实践证明,本论文提出的嵌入式GPU及音频事件分类算法具备较高的准确度,能够满足实时性要求,可广泛应用于智能家居、智能安防等音频信号处理领域中。

猜你喜欢

池化层麦克风嵌入式
GRAS发布新12Bx系列、支持TEDS的测量麦克风电源模块
卷积神经网络模型研究分析*
基于卷积神经网络的纸币分类与点钞
基于深度学习卷积神经网络的人体行为识别研究
Binaural Rendering based on Linear Differential Microphone Array and Ambisonic Reproduction
基于全卷积神经网络的SAR图像目标分类*
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
麦克风的艺术
麦克风