文章标识码: A
文章编号: 0258-7998(2012)02-0124-03
近年来,机器人听觉系统开发已经成为机器人研究领域的重要课题。由于声波的波长较大,具有较强的衍射能力,可以绕过障碍物传播,并且能与视觉传感器配合,从而可用于实现移动机器人的全方位导航。听觉系统的开发本质上就是声源定位系统的研究,采用麦克风阵列进行声源定位是信号处理领域的一个研究热点。一组麦克风按照一定的几何结构摆放组成麦克风阵列[1],拾取来自各个方向的声音信号,并进行空时处理,从而精确定位目标声源。
在工程应用中,根据麦克风阵列模型和声音球面传播模型构建的声源定位系统是一组复杂的非线性方程,难以用数值计算方法准确建模。在这种情况下,可以应用神经网络表达这种非线性系统。神经网络可以按照指定的精度逼近各种复杂的非线性系统,解决非线性系统的建模问题,并对信息采用分布式存储的处理方式,具有高运算效率和很强的容错性、鲁棒性[2-3]。
本文研究了可应用移动机器人上的声源定向系统,介绍了其硬件构成,采用BP神经网络对定向系统进行研究,并通过Matlab仿真证明了在四元麦克风阵列模型下实现远场和近场的目标声源定向。
1 定向系统硬件结构
1.1 麦克风阵列模型
声源定向系统的几何结构如图1所示,由M1、M2、M3和M4 4个麦克风组成一个四元球面阵列,对目标声源进行定向。其中P为声源,?琢、?茁分别为方位角和俯仰角。系统麦克风选用驻极体麦克风,这种传声器具有体积小、全向性、价格低、灵敏度较高和频率响应范围宽等优点。该麦克风能够有效地收集声音信息并检测出声音到达麦克风的初始时刻,为后续的定位计算提供准确的数据。整个系统以Activmedia的Pioneer3 AT机器人为安装平台,如图2所示。该机器人配备有速度、激光、摄像头等传感器,采用4个车轮保持平衡,可以承受的载重超过35 Kg,底部装有2个直流电动机,分别用来驱动左轮和右轮,前后均装配了防碰接触开关,能同时适用于户外和户内的应用需求。
图1 麦克风阵列结构模型
图2 机器人实验系统平台
1.2 声达时间获取
1.2.1 信号放大及噪声的处理
由于全向型麦克风的输出电压大都在零到几十毫伏之间,如此微弱的电信号无法满足后期信号处理工作的要求。因此,仅靠电容式麦克风的拾音能力是远远不够的,有必要对麦克风采集到的信号进行放大。本文采用性能较稳定的集成运算放大器对采集信号进行二级放大。考虑到电器元件的放大特性不是完全一致的,因此加入了增益调整电位器,以便后期调试时减少由于硬件特性不同而产生的误差。除此之外,为了在实验过程中实时观测信号的采集情况,利用发光二极管制作输出信号指示灯来指示信号的强弱变化。同时考虑到听觉定位系统的鲁棒性和实时性,本文还利用集成运算放大器制作电压比较器,使听觉定位系统具有一定的抗噪能力,通过调节参考电压对背景噪声进行过滤。
1.2.2 声达时间点的捕捉
通过上述过程,系统对声电信号进行了整形,使得大于背景噪声的信号以方波的形式输出,用于捕捉声源信号到达时间点。为了使阵列中各个麦克风均能精确地捕捉目标声音到达的时间点,采用微处理器配合RS触发器进行捕捉,具体实现方法如图3所示。
图3 捕捉声达时间点硬件电路图
声源信号经过电压比较器整形后,产生连续方波脉冲。当第一个脉冲到达触发器时,触发器锁存并保持电平,输出端发光二极管随即发生变化,指示声源信号起始点已被锁存。由于已将微处理器中的可编程计数器调整为捕捉定时器工作模式,并设置CPU时钟频率,所以当触发器改变电平时,CPU记录并存储脉冲到来的时间。等待4路麦克风的声源信号相继到达后,再利用串口通信将4个存储的时间点发送到上位机,与此同时,将锁存器电平和微处理器复位,等待下一刻声源信号的到达。这种利用硬件直接捕捉声达的方法简单易行且精度较高。
2 神经网络计算模型建立
2.1确定网络结构
BP神经网络是一种多层前馈神经网络,由输入层、隐含层和输出层组成[4]。根据系统输入输出数据的特点来确定BP神经网络的输入输出,输入数据为3个时延值,即声音信号到达阵列中不同位置的麦克风的时间差。把声源到麦克风M4的时间作为基准,到麦克风M1、M2、M3的时间与基准的差记作3个时延值,构成一组3个参数的输入数据。输出数据为目标声源的位置,本文的声源定位目的是为了实现移动机器人对目标声源的跟踪,所以输出数据采用球坐标形式较为方便。该网络的输出有方位角、俯仰角和距离3个参数。
隐含层层数的选择要从网络的精度和训练时间上综合考虑[5],在网络精度达到要求的情况下,可以选择单隐层,以求加快训练速度;而对于复杂的映射关系,选择多隐含层,可以提高网络预测精度[6-7]。本文选用有2个隐含层的BP网络,网络结构为3-25-25-3,即输入层和输出层有3个节点,2个隐含层分别有25个节点。
2.2 数据处理
假设4个麦克风之间的距离均为0.1 m,目标声源范围为一个半径0.1 m~5 m的球体内的任意点。声速为340 m/s,根据声源定位模型的几何关系随机取数得到系统2 000组的输入输出数据。从中随机选取1 900组数据作为网络训练数据,其余100组数据作为网络测试数据。
数据归一化方法是神经网络预测前对数据常做的一种处理方法[8]。该方法主要有最大最小法、平方数方差法[9]两种。本文采用第一种方法对输入输出数据进行归一化处理,并对网络预测输出进行反归一化,通过Matlab的自带函数mapminmax来实现。
3 Matlab仿真与结果分析
3.1 Matlab仿真
Matlab软件中包含Matlab神经网络工具箱,可以直接调用构建各种类型的神经网络。本文的BP神经网络主要用newff、train和sim 3个神经网络工具箱自带函数来实现网络的构建、训练和仿真预测。
本文的声源定位系统以实现对目标声源的跟踪为目的,预测出方位角和俯仰角,确定目标声源的空间方向实现跟踪。但由于BP神经网络的拟合能力有限,并不能对距离做出较为准确的预测,故舍去了这组数据,主要分析方位角和俯仰角这2组输出数据。图4为100组预测数据的方位角预测误差,误差范围为±5°。图5为100组预测数据的俯仰角预测误差,误差范围为±4°。
3.2 仿真结果分析与实验验证
传统的声源定位方法是利用几何关系,建立一组时延和声源坐标的方程组,通过解方程组得到时延和声源坐标的数值关系。在解方程组的过程中,大都假设声源位于远场且声音信号以平面波传播,以此来约减得到近似结果。但当声源位于近场时,即当麦克风之间的距离相对于声源到麦克风的距离较大时,这种假设就不再成立了。如果仍然用近似的结果进行计算,那么得到的数据与真实数据相比就不仅是误差较大了,而是错误的。
用于BP神经网络预测的100组输入输出数据是在2 000组样本数据中随机选择的,远场和近场的声源位置都有。从Matlab仿真得到的图形来看,误差分布较均匀,说明并没有因为是近场声源神经网络就出现大的预测误差,表明该神经网络无论是近场还是远场都可以预测目标声源的方位角和俯仰角。为了进一步验证网络在近场对声源的定向情况,选取目标声源范围为0.1 m~0.5 m的空心球体内的点,用已训练好的BP网络再次进行预测。预测的方位角误差和俯仰角误差分别如图6、图7所示。近场方位角预测误差大部分在±5°以内,有个别样本点的误差较大甚至预测错误,这是由于选取的样本点离坐标原点太近造成的,不影响实际应用。近场俯仰角预测误差结果与图4、图5的预测结果很相似,误差范围仍然是±4°。
在机器人实验平台上验证该神经网络的性能时,以室内拍手声作为声源,大小约70 dB,背景噪声约30 dB。机器人能辨别出声源的方向并向其靠近,证明了该四元麦克风阵列可以使移动机器人实现较好的声源定向和跟踪。
本论文应用四元麦克风阵列进行移动机器人的声源定向研究,设计了一个双隐层的BP神经网络。经Matlab仿真证明,输入获取的时延数据,可以实现近场和远场的目标声源定向,并且在机器人本体上进行了实验测试,进一步验证了其实用性。但是由于网络拟合能力有限,并不能很好地预测声源的空间距离,因此,如何实现对空间距离的准确预测是下一步的重点研究任务。
参考文献
[1] 傅荟璇,赵红. Matlab神经网络应用设计[M]. 北京:机械工业出版社,2010.
[2]飞思科技产品研发中心. 神经网络与Matlab 7实现[M].北京:电子工业出版社,2005.
[3] 周开利,康耀红.神经网络模型及其Matlab仿真程序设计[M]. 北京:清华大学出版社,2005.
[4] 张良均,曹晶,蒋世忠.神经网络使用教程[M].北京:机械工业出版社,2008.
[5]吴仕勇. 基于数值计算方法的BP神经网络及遗传算法的优化研究[D].昆明:云南师范大学,2006.
[6] HAGAN M T, DEMUTH H B, BEALE M H. Neural network design[M]. 北京:机械工业出版社,2002.
[7] AARABI P, ZAKY S. Robust sound localization using multi-source audiovisual information fusion[J]. Information Fusion ,2001(2):209-223.
[8] LIN Z, XU B. Sound source localization based on microphone array[J].Electro-acoustic technology,2004(5):19-24.
[9] 余立雪.神经网络与实例学习[M].北京:中国铁道出版社,1996.