APP下载

深度学习下盲人避撞路径导航方法研究

2022-05-18张海民程菲

南京信息工程大学学报 2022年2期
关键词:障碍物盲人卷积

张海民 程菲

0 引言

目前,导盲手机、导盲鞋、盲人眼镜等盲人导航设备已经在实际中得到了广泛应用,但在导航过程中普遍存在障碍信息采集不完整、路径测量出现盲区等问题.为了解决这些问题,文献[1]提出了基于传感器信息融合的障碍检测及躲避方法,文献[2]提出了基于威胁度评估的机器人神经动态避撞方法,但是这些方法只能检测出路径上存在的静止障碍物,无法检测出运动障碍物,导致盲人避撞效果较差.本文针对上述方法中存在的问题,重点研究盲人避撞路径导航方法,利用深度学习中的卷积神经网络和语音识别模型,让盲人使用的导航工具具有障碍物识别和路径规划等多种功能,且在规划路径的过程中,可以免受其他外界因素的干扰,更好地帮助盲人躲避路径上存在的障碍物.

1 盲人避撞路径导航方法设计

1.1 语音信号处理

在导航语音识别过程中,首先需要收集语音信号,然后对收集到的语音信号进行处理,并提取语音信号特征,使得导航具有语音识别功能[3].针对语音信号预加重处理,使盲人说话时可以产生800 Hz高频端,使信号的频谱变得平坦,可以提高导航过程中盲人语音识别的效率.设语音的频域为z,盲人语音输入序列为H,频域常数值为μ,即0.9≤μ≤1.0,通常μ取值为0.98或1,则有:

H(z)=1-μz-1,

(1)

式中,H(z)为z频域时的语音序列,即语音预加重处理结果.由于语音输入时间比较短,且输入过程中的频域特征和某些物理特征参数等几乎可忽略,因此将语音序列导入导航中时,需要在预加重的基础上,分帧识别语音序列特征[4].用n表示帧数,其前后两帧交叠部分称为帧移,用m表示,在处理语音序列的过程中所产生的变换用符号T表示,则在n帧时的语音序列Qn为

Qn=T[H(m)n(z-m)],

(2)

式中,n(z-m)表示语音序列分针时,乘以幅度为1的移动窗,即移动窗一定的取值函数.此时将式(1)代入,对语音序列进行二次预加重处理后,采用汉明窗作为语音信号处理的窗函数[5].设汉明窗函数长度为L,则有:

(3)

式中,w(z)即为z频域时的w语音序列,是已经处理过的H(z)语音序列.此时的w(z)已经变得平滑,且更接近于短时语音的频谱,可以有效避免因截断效应造成的频谱泄露,屏蔽了语音序列在录入的过程中存在的干扰信息,能够有效解决语音频域间的相互干扰问题[6].因此在式(3)处理好的语音频谱基础上,提取语音频谱特征,以此为后续的语音识别做准备.

1.2 基于语音识别提取语音特征参数

(4)

式(4)计算结果即语音序列w的样点值.频域z是一个常数,将z代入式(4),即可得到语音识别模型预测误差值e:

(5)

式中,e(z)表示z频域时的语音识别模型预测误差值e.将式(4)和(5)联立,可得语音识别模型预测均方误差E:

(6)

将式(4)、(5)和(6)联立,可得语音特征参数提取方程:

(7)

求解式(7),即可得到语音特征参数,该参数能够反映出语音序列的特征.此时的语音序列平滑清晰、特征明显,因此导航可以精准识别盲人输入的语音序列[8].

1.3 语音识别

经过式(3)加窗处理过的语音序列为w(z),其在第n帧得到的语音序列为wn(z),在语音识别模型λ中,通常会由一组参数分析语言序列内容:

λ={H,z,A,L,w}.

(8)

在语音识别模型λ中,汉明窗函数长度为L,即语音序列的长度,A为式(7)的计算结果,即语音序列所具有的全部特征.根据语音识别模型中的语言序列识别参数,有导航语音识别过程B:

BHw(O)=P(O|H,w)=

(9)

式中,O为导航输出的语言序列,eHw为式(5)计算出的输入语音序列和输出语音序列之间存在的误差值,EHw为式(6)计算出的输入语音序列和输出语音序列之间存在的均方误差值[9].此时导航通过语识别过程,即可精准识别出盲人输入的目的地.在此基础上只需确定障碍物特征、盲人位置、障碍物位置、最终目的地位置,导航即可给出最优避撞路径.

1.4 建立障碍物检测模型

为让导航可以精准检测出盲人位置到其目的地路径上存在的障碍物位置,需建立障碍物检测模型[10].

在此过程中,利用建立的障碍物检测模型搜索障碍物位置等信息,可为后续的盲人避撞路径导航奠定坚实的基础.

假设利用机器视觉技术获取的障碍物的长为l,宽为h,障碍物位置用坐标(x,y)表示,则有障碍物运动过程W:

W=(l,h,x,y).

(10)

根据障碍物形状,在整体上可以划分为点和框两种,因此在障碍物运动过程W的基础上,建立点模型r和框模型s:

(11)

1.5 路径定位

根据1.3节识别出的盲人输入目的地语音,确定盲人所要去的目的地位置和盲人位置以及两者之间的距离,还有在盲人前往目的地路径上遇到的障碍物位置.设这个过程中产生的周边环境信号强度集合为R={R1,R2,…,Rn},盲人位置的平面坐标集合为{(x1,y1),(x2,y2),…,(xn,yn)},此时盲人距离其所要去的目标距离集合为{d1,d2,…,dn},上述集合中n为常数,n=1,2,3,…,N,则有障碍物位置函数f(x,y)[12]:

(12)

在求解式(12)过程中,会受到周边环境信号强弱影响,因此在接收盲人位置信号时会受到周边环境信号影响.假设导航在接收盲人位置信号时,会受到C,G,V这3个环境信号影响,并且这3个信号圈两两相交,则会出现6个交点,如图1所示.此时导航要从这6个交点中计算出盲人的位置.

图1 导航接收信号图Fig.1 Navigation receiving signal diagram

图1中,k1,k2,k3为环境信号干扰的3个交叉点,并形成一个三角形,三角形的质心即为盲人位置.因此有盲人位置函数f(x1,y1):

(13)

求解式(13),即可得到障碍物位置(x,y):

(14)

对式(12)降幂,则有:

(15)

将或(13)和(15)联立,则存在:

(16)

(17)

可以将式(15)简化成Cx-G,其中x为位置向量,设ε=Cx-G为方程组误差向量,且令F=|ε2|=εpε=(Cx-G)p(Cx-G),p为偏差系数,当误差向量ε最小时,F取最小向量ζ,ψ,求导ζ,ψ,并令其等于零,则有:

(18)

式中,ζ为盲人位置坐标向量[13],X值为盲人位置距离其所要去位置的距离.根据ζ值可确定盲人所处位置,ψ值可确定盲人所要前往的位置.此时只需根据式(11)检测盲人所经过路径上的障碍物运动情况,再根据式(14)计算结果,就可确定盲人避撞路径.

2 基于深度学习的路径规划

深度学习是机器学习领域中一个新的研究方向,可以使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步.深度学习是一类模式分析方法的统称,就具体研究内容而言,主要涉及3类方法:卷积神经网络、自编码神经网络以及深度置信网络.

因卷积神经网络采用局部感受野、权重共享和降采样3种策略,降低了网络模型的复杂度,同时对于平移、旋转、尺度缩放等具有尺度不变性以及复杂度低等多种优势,因此本文采用深度学习中的卷积神经网络规划避撞路径.在此过程中需要使路径的线路长度达到最短[14-15],进而构建由路径长度和障碍物模型两部分组成的等效代价函数[16].卷积神经网络结构如图2所示.

图2 卷积神经网络Fig.2 Structure of convolutional neural network

在卷积神经网络中,输入层为M、隐含层为S、输出层为J、全连接层为O.

本文所采用的卷积神经网络均来自于TensorFlow,代码可在https:∥github.com/TimeIvyace/MNIST-TensorFlow.git中下载,程序名为train.py.卷积神经网络训练过程如图3所示.

图3 卷积神经网络训练过程Fig.3 Training process of convolutional neural network

初始化卷积神经网络权值,在此基础上输入训练数据,使得这些数据通过卷积层、下采样层、全连接层的向前传播,获取输出值.此时需要计算出卷积神经网络输出值与理想值之间的误差,当误差高于理想值时,需要将误差传回卷积神经网络中,按顺序获取全连接层、下采样层以及卷积层的误差,并将所有误差相加,得到卷积神经网络总误差;当误差等于或小于理想值时,立即停止训练.根据误差计算结果对卷积神经网络权值进行更新,并重新获取隐含层以及输出层各单元的输出.

利用深度学习中的卷积神经网络进行最优路径规划时,会在输入层输入f,即障碍物位置,通过卷积层所含有的卷积核进行卷积作用.此时,会在输入层M至卷积层W之间,产生非线性映射:

qi=g(‖u-cw‖),1≤w≤L,

(19)

式中,‖·‖表示距离测量度,g(·)表示卷积层向输出层传递的函数,即径向基函数,u表示输入的障碍物向量,c表示径向基函数的中心函数,w表示径向基函数的个数,cw表示第w个基函数的中心函数.此时设径向基的宽度为δ,则有深度学习中从卷积层W至输出层J之间的线性映射函数g(x):

(20)

设卷积层S传递信息至输出层J之间产生的连接权值为ωSJ,实际输出路径为D,则有:

Jbest=ωSJr+ωSJs+ωSJζ+ψ.

(21)

在输入层至卷积层产生的非线性映射,以及卷积层W至输出层J之间的线性映射函数都可以看作激发函数,通过式(19)可以检测路径上的障碍物是否满足卷积层限制输入层作用条件.满足条件时,卷积层会输出路径;不满足条件时,卷积层会输出0.式(20)所得结果的值小于式(19)和式(21)所得的路径D为最优避撞路径.

3 实验与分析

在Android 5.0版本平台上编写导航程序,并根据实验地点情况实时调试导航的性能、网络通信、语音播报、地图导航等部分功能.在Android 5.0版本平台中,导航的网络通信部分使用的内核由Google提供,且确定导航在3G网络下数据交互可以稳定进行.

将本文提出的盲人避撞路径导航方法记为实验A组,将上文提到的基于传感器信息融合的障碍检测及躲避方法[1]以及基于威胁度评估的机器人神经动态避撞方法[2]分别记为实验B组和实验C组,从障碍物运动速度检测和路径规划2个方面,分析3种盲人避撞路径导航方法检测障碍物运动速度、障碍物检测性能以及避撞路径规划的精度.为了保证实验测试结果的可靠性和真实性,进行50次实验,并将所得障碍物运动速度和语音识别结果按实验次序制成图表,直观上比较不同盲人避撞路径导航方法的差异.

3.1 避撞路径测试

在Android 5.0版本平台上,进行避撞路径规划实验,建立以Android 5.0版本平台位置为原点的平面直角坐标系,即Android 5.0版本平台位置为(0,0),y轴方向为平台位置的正北方向,x轴方向为平台位置的正东方向.Android 5.0版本平台的大小忽略不计.在平台上输入测试地点,其初始位置为M,目的地位置为W,在该段路上存在障碍物和移动障碍物1,移动障碍物以5 cm/s的速度从上至下运动,分别应用3种方法规划最优避撞路线,最优路线是Android 5.0版本平台生成的,3种导航方法规划出的最优路径如图4所示.

从图4中可以看出:实验C组会与静止障碍物出现碰撞情况规划,不属于正确路线;实验B组规划的避撞路径虽然躲避了静止障碍物,但却出现在移动障碍物前进的道路上;实验A组与最优路线最为接近,既躲避了静止障碍物,还绕过了移动障碍物可能出现的位置.由此可见,实验A组可以有效实现最优避撞路径的规划.

3.2 障碍物移动速度

选取长、宽、高均为50 cm的正方体积木作为障碍物,采用3种方法分别检测该积木的移动速度.积木由人为推动,做匀速直线运动向平台的坐标原点方向滑动,且用秒表记录积木的运动时间,并用Android 5.0版本平台所具有的数据记录处理功能记录处理数据.积木中心的起始位置为(400,400),终止位置为(200,200),即积木的中心坐标移动路径为(400,400)至(200,200).如图5所示.

图4 导航规划避撞路径Fig.4 Planning of navigation paths with collision avoidance

图5 积木起始和终止位置Fig.5 Start and end positions of the moving building blocks

用秒表记录图5中积木的运动时间为9.5 s,其实际运动速度为33.6 cm/s.实验数据如表1所示.

表1 积木障碍物测试数据

从表1中可以看出:实验A组检测障碍物在x轴和y轴上的径向运动速度相差无几,可以实时跟踪监测障碍物的移动方向及其在移动方向上的运动速度,且实验A组的合成速度与障碍物的实际运动速度基本一致,相差0.2~0.4 cm/s;实验B组检测障碍物在x轴和y轴的径向运动速度虽然相差无几,可以实时跟踪监测障碍物的移动方向,但是合成速度与障碍物的实际运动速度相差较大,对障碍物的移动速度检测结果不准确;实验C组检测障碍物在x轴和y轴的径向运动速度存在较大差距,且其合成速度与障碍物的实际运动速度相差较大.由此可见,实验A组相较实验B组和实验C组,可以实时跟踪检测障碍物的运动,能够较为准确地测量移动障碍物的运动速度,因此实验A组可以满足盲人对避障路径的需求.所以,本研究的导航方法可以精准测量出移动中的障碍物,检测移动速度,正确识别语音输入,给出盲人避撞的最优路径.

3.3 避障精准度

在上述实验的基础上对3组实验方法的避障精准度进行测试,精准度计算结果为准确避障次数与测试总数的比值,结果如表2所示.

表2 避障精准度测试结果

分析表2可知,与实验B组与实验C组相比,实验A组的避障精准度最高,说明采用本文方法进行盲人避撞路径导航效果最好,可以有效避免盲人与障碍物发生碰撞.

4 结束语

本文研究的盲人避撞路径导航方法,充分发挥了深度学习路径规划的优势,降低了传统导航方法对避障路径规划的难度,提高了语音识别精度,并将路径规划和语音识别的精度误差控制在最小范围内,且可以根据盲人位置实时规划出最优避撞路径.本方法并未考虑语音识别的速度问题,以及在极端复杂的环境下对避撞路径的检测问题.在今后的研究中,应加强语音识别反映效率研究,以及极端复杂环境下的避障导航方法研究.

猜你喜欢

障碍物盲人卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
高低翻越
卷积神经网络的分析与设计
赶飞机
随声附和的盲人
从滤波器理解卷积
月亮为什么会有圆缺
基于傅里叶域卷积表示的目标跟踪算法
盲人节
盲人分衣服