基于径向基神经网络图像识别的移动机器人控制系统仿真

2019-05-05 09:15:26
制造业自动化 2019年4期
关键词:移动机器人字符个数

刘 天

(中国人民大学附属中学,北京 100013)

0 引言

自2010年以来,与移动机器人自动行驶技术相关的发明专利超过20000件,并成为近些年的研究热点。在移动机器人的轨迹跟踪过程中,需要期望轨迹规划的目标点不断输入到移动机器人控制器中然后移动机器人持续不断地跟随设定的路径,因此移动机器人跟踪一个目标点是移动机器人轨迹跟踪的最基本功能。移动机器人轨迹跟踪是一个通过车载传感系统感知道路环境,自动规划行车路线并控制机器人到达预定目标的过程。目前较为熟知的几种移动机器人的轨迹跟踪方式有:磁导航、惯性导航、路标导航、视觉导航等。本文着重讨论基于视觉导航的移动机器人轨迹跟踪方法。视觉导航通过图像采集设备收集近距离的环境信息,并利用计算机视觉技术进行图像处理获得环境信息,实现导航。学者们在视觉导航的关键技术,诸如姿态提取、载体定位、速度估计等方面取得了一定成果,但是尚未有有效的基于视觉的人机交互移动机器人轨迹控制研究。本文研究的路线是,首先基于视觉传感器获取人工交互信息-手写数字,尔后利用手写字体识别结果完成移动机器人控制器的输入,最后在移动机器控制器的基础上完成了特定轨迹跟踪。为了提高视觉识别的效率,在手写数字识别中,我们引入了基于径向基神经网络图像识别方法。在移动机器人控制器的设计中采用了鲁棒性较强的模糊控制方法。

1 移动机器人轨迹跟踪建模

本文设计的移动机器人控制流程如下图1所示。其中,视觉采集模块采用计算机上安装的摄像头实现外部信息的采集与人工手写字体的采集、滤波、处理等功能;径向基神经网络(Radial Basis Function Neural Network,RBF)模块实现采集处理结果的自动识别,然后将识别的结果传递给轨迹控制器;轨迹控制器根据识别结果给定移动机器人的设定速度和转角,并根据PID控制算法生产实际控制量传递给移动机器人;移动机器人完成轨迹的移动。

图1 移动机器人控制流程

本文使用的移动机器人采用四轮小车模型,后驱动的两轮固定在车体上,前两轮可以绕水平轴旋转,以实现方位变换,其模型示意图如图2所示,其数学模型如式(1)所示。

图2 移动机器人模型示意图

1.1 视觉采集模块

本文采用了MATLAB平台,利用imaqhwinfo函数调取winvideo的信息获取摄像头的参数,然后将所获取的视频流给赋予到obj变量之中,之后设定摄像头视频截取的参数。通过调用系统自带的摄像头获取一张相片,获取的过程中会反馈图像让使用者得以调整手写体数字的姿态以使得获取最佳的图片。之后经过裁剪、滤波、二值图像转化和图片特征提取的过程后通过RBF神经网络进行计算得出最后结果,其主要步骤如下:

1)创建视频输入对象并命名为obj,obj =videoinput(adaptorname, deviceID, format)

其中adaptorname为适配器名称,本文使用的是'winvideo';deviceID为设备ID号,本文使用的是1;format为视频采集格式,本文使用的默认格式DefaultFormat: 'RGB24_640x480'。

2)设置参数并打开视频预览

帧率设定为Inf,即 obj.FramesPerTrigger=Inf; 每一帧的截取的时间隔设定为1秒,即obj.FrameGrabInterval=1;然后预览himage =preview (obj,himage) ;

本文利用了径向基神经网络在分类问题之中的优越性,并以图像特征提取为基础而设计的。系统流程为获取图像,图像截取,将彩色图片转换为二值图像,重新调整像素至64×64像素,分块处理图像,获取特征值,再利用已经通过类似的处理流程的模板图像训练的神经网络来计算结果,输出识别结果。为了使得用户在使用手写体数字识别系统的时候能有更好的图像截取效果,统一规定使用粗黑色马克笔写在白纸上,并且在设计交互系统的时候就已经在图片获取阶段实现了交互。具体而言,就是总计截取120帧的图像,将原始的图像1280×720的像素从(350,80)的像素点到(850,640)的像素点进行截取,利用0.3的灰度阈值来进行彩色图片转化为黑白二值图像的过程,之后将实现的灰度图像直接展示给用户让用户得以在120帧,即5秒的时间内,进行角度的调整使得采集的图像能够具有更清晰的边缘,以及消除其他多余的黑色区域,比如说纸张边缘处的黑色使得整张照片的效果失常,达不到有效的特征提取要求。

120帧的用户与电脑的交互完成之后,在开始运行的第121帧截取下图像,用同样的像素点进行截取,之后按照用户的习惯基本上数字只会占据整张照片的70%的范围,此时再在新的500×560的照片中从(100,100)像素点到(550,550)像素点继续截取图像,使得数字占据照片的比例进一步加大。此时获得的照片是一张正方形的照片,像素为450×450,之后先将其转化为灰度图像之后再利用medfilt2函数进行中值滤波(转化为灰度图像的原因是medfilt2函数只支持对于二维矩阵的处理而不支持三维,也就是RGB图像的数据存储方式是三维的),然后利用imresize函数将其处理为68×68的图像,用同样的灰度阈值0.3,利用im2bw函数转化为黑白二值图像。处理完毕之后,经过大量实验发现图像的四个角由于像素灰度的集中会在本来需要时白色的地方将其处理为黑色,此时就需要进行最后一次的裁剪处理,从(3,3)像素到(64,64)像素完成截取,最终得到的黑白二值图像便与用于训练径向基神经网络的图像类似了。

在获得了所需的图像之后,首先将整张图片进行反色处理,便于使得所有字符所在的像素变为1,而空白像素为0。之后获得整张图片最上、下、左、右端的1像素块,然后将这些作为图片的边界来resize函数成为一张64×64的图片,若最终截取的图片不是64×64的正方形则用1像素块填充。

1.2 径向基神经网络模块

本文采用RBF神经网络中的概率神经网络,是由三层构成的前向网络:第一层为输入层,用于接受来自训练样本的值,神经元个数与输入向量长度相等;第二层为隐含层,采用径向基函数作为基函数,从而将输入向量空间转换到隐含层,每个神经元有一个中心,该层通过接受输入层的样本输入,计算输入向量与中心的距离,返回一个标量值,其个数为训练样本个数;第三层为输出层,节点个数等于输出数据的类数,并把隐含层中属于同一类的二层神经元的输出做加权平均。其示意图如图3所示。

图3 概率神经网络原理示意图

输入层到隐含层为非线性的径向基部分,隐含层节点的激活函数为径向基函数(Radial Basis Function),其函数图像是径向对称的,如高斯函数。隐含层节点输出如式(2)所示。

其中m为训练样本的总类数,本文讨论的模型中各类的样本数统计意义上频率相等,d为样本空间数据的维数,xij为第i个类样本的第j个中心,σ为高斯函数的标准差,隐含层中属于同一类的神经元加权平均送到输出层,如下:

其中,vi表示i类,其神经元个数为L。y为输出层的最后结果,其值为arg max(vi)。

1.3 径向基神经网络算法

首先对输入矩阵进行归一化处理,这样可以减小误差,避免较小值被忽略,本文有r=1000个学习样本,每个样本特征属性为c=14。即输入的归一化矩阵如式(3)所示。

本文中类别数z=10,每种样本含有100个样本。我们待识别的样本矩阵为Dp×n,其中第i行第j列的元素为dp×n。我们得到待识别元素与同类样本中心zjk的欧式距离矩阵如式(4)所示:

利用高斯函数计算每个样本,我们计算矩阵S,其表达式如式(5)所示。

2 移动机器人轨迹跟踪算法

2.1 移动机器人模型

我们利用Simulink完成移动机器人模型的建立,其中速度部分增加了速度变化率限制器,转角部分增加了转向角的限制器,本文我们把移动机器人模型记做motor vehicle,如图4所示。

2.2 移动机器人位置控制

我们根据识别的手写字体识别结果作为机器人移动的目标位置(x*,y*):位置过程中设定控制速度与移动机器人距离目标成正比:。移动机器人转向角控制为:。移动机器人位置控制仿真模型如图5所示。

图4 移动机器人仿真模型图

图5 移动机器人位置控制仿真模型图

3 实验结果

特征提取的14维向量分别是:分别是1/4竖线与字符的交点数量;1/2竖线与字符的交点数量;3/4竖线与字符的交点数量;1/4水平线与字符的交点数量;1/2水平线与字符的交点数量;3/4水平线与字符的交点数量;垂直方向1/3~2/3部分的字符像素个数;水平方向1/3~2/3部分的字符像素个数;主对角线与字符的交点数量;次对角线与字符的交点数量;左下角1/2的方块中字符像素个数;右下角1/2的方块中字符像素个数;左上角1/2的方块中字符像素个数;右上角1/2的方块中字符像素个数。将着14组数据记录于trait这个行向量变量之中,返回的F特征向量是trait向量的转置。

利用MATLAB 2016b之中的newpnn函数构建概率神经网络并且进行网络的训练,训练完毕之后的网络net存储为net.mat到识别所需的文件夹下备用。随后将利用sim函数用net模拟提取出来的特征向量,得出的结果应当是一个10维数组,而该数组的入度的下标就对应着模拟的结果,于是将该入度的下标利用vec2ind转化为数字,得到最后的识别结果。

而后在设定了坐标原点为目标点后,以横坐标[-10,10]的区间每隔1个单位取一个在半径为10,圆心为原点的圆上的点,方向统一为y轴正方向(角度为π/2),具体的横坐标由视觉采集模块识别的数字给定。模拟出来的轨迹如图6所示,对应的速度如图7所示。

4 结论

本文运用了径向基神经网络来获取移动机器人的控制命令,建立了基于该神经网络图像识别的移动机器人控制系统。仿真结果很好的展示了在自动驾驶的未来发展方向之中,移动机器人如何与计算机视觉结合到一起综合实现效果,并且描绘了广阔的发展图景。

图6 移动机器人位置控制仿真结果

图7 移动机器人位置控制中的速度曲线

猜你喜欢
移动机器人字符个数
移动机器人自主动态避障方法
寻找更强的字符映射管理器
怎样数出小正方体的个数
字符代表几
等腰三角形个数探索
一种USB接口字符液晶控制器设计
电子制作(2019年19期)2019-11-23 08:41:50
怎样数出小木块的个数
消失的殖民村庄和神秘字符
怎样数出小正方体的个数
基于Twincat的移动机器人制孔系统