APP下载

基于场景理解与改进型BUG算法的移动机器人避障

2023-04-03查荣瑞马云华

计算机测量与控制 2023年3期
关键词:移动机器人栅格特征提取

查荣瑞, 马云华, 燕 翔, 郑 霜

(华能澜沧江水电股份有限公司糯扎渡水电厂,云南 普洱 665005)

0 引言

移动机器人是一个集计算机科学、电子工程、传感器技术、自动控制理论、人工智能等多个学科理论于一体的综合系统,代表着科学技术的最新进展[1]。随着《中国制造2025》战略规划的全面推进下,移动机器人技术得到了迅速发展与应用,在工业、农业、交通、电力、医疗、服务等行业都占据着必不可少的地位[2]。对于移动机器人而言,如何有效实现自主避障是其体现性能的关键因素。目前,移动机器人主要利用测距传感器和视觉传感器结合避障算法完成避障[3]。测距传感器主要利用激光雷达、超声波等设备获取障碍物信息,该方式的测距精度高,但传感器成本也较高,同时,随着机器人应用场景日益复杂,仅靠障碍物距离信息开始逐渐无法满足实际需求[4]。而基于视觉传感器的避障方法由于成本较低,并且可以获取丰富的环境信息,逐渐成为了当前的研究热点[5]。同时,随着近几年深度学习技术的不断突破,逐渐弥补了传统基于机器学习的视觉避障方法存在的局限,为移动机器人的避障提供了新的思路[6]。因此,研究一种基于深度学习的视觉避障方法不仅可以提高移动机器人在复杂环境中导航避障的泛化能力和可靠性,并且对于智能化机器人的发展也有较大的推动作用。

目前,已有不少研究者针对移动机器人视觉避障进行了相应研究,并取得了一系列成果。李娟等人[7]针对三轮全向移动机器人自主避障问题,利用OpenMV中目标检测算法对障碍物进行识别和定位,再根据不同障碍物位置信息结合模糊控制算法来辅助机器人完成避障。刘明春[8]提出了一种基于深度学习的变电站巡检机器人场景理解及避障方法,通过全卷积神经网络对图像进行语义分割,再根据分割结果判断机器人可行道路区域,进而实现机器人避障。Li等人[9]在ROS平台上提出了一种基于机器视觉的动态障碍检测避障方法。该方法采用改进的YOLO-v3的目标检测算法实现实时检测动态障碍物,并结合改进的动态窗口法(DWA)局部路径避障算法来提高移动机器人的局部避障性能。Saleem等人[10]针对移动机器人在室内环境中的避障问题提出了一种深层卷积神经网络(CNN),利用惯性测量单元(IMU)获得的机器人方向并结合深度图像(RGBD)训练神经网络,通过网络生成机器人方向控制命令,指导机器人避障。现有方法从不同角度、场景分析了移动机器人避障问题,并提出了相应的避障思路,但大多数方法仍存在对场景理解不充分、避障策略局限性较大等问题。因此,对于移动机器人避障问题,仍有较大的探索空间和研究价值。

为提升移动机器人避障性能,本文在分析现有视觉避障策略存在的不足后,设计了一种融合深度学习技术和Bug算法的机器人自主避障方法。该方法首先以卷积核为核心设计特征提取单元,通过依次堆叠的方式构建深层卷积神经网络,用于提取道路场景特征;其次,利用提取的特征信息分别对机器人运动方向预测和道路场景语义分割;最后,通过滤波、构形空间变换等操作将语义分割结果转化为栅格地图,并基于栅格地图结合机器人运动方向与Bug算法,规划出机器人避障路线,指导机器人实现避障。同时,为了降低该方法在实际场景中的冗余计算,引入了特征对比模块,通过对比关键特征层在前后两帧图像中的道路信息变化情况来判断机器人是否继续执行上一个动作,进而保障实际运行效率。通过实验表明,所提方法可以有效实现场景分割和行驶方向预测,并能准确指导机器人避障。同时,在实际场景中,该方法也体现出较好的鲁棒性,保障机器人高效完成自主避障。

1 移动机器人避障方法

1.1 整体架构

本文所提的移动机器人视觉避障方法整体结构如图1所示。该方法主要由特征提取网络、任务分支、改进的Bug避障策略以及特征对比结构4个部分组成。特征提取网络主要以卷积、池化、激活等操作以密集连接的方式依次串联堆叠构成,对输入图像由浅到深的提取关键信息。任务分支分为语义分割和机器人行驶方向分类两条支路,语义分割支路为机器人提供准确的场景信息,方便机器人构建栅格地图;分类支路则从全局角度上为后续机器人避障提供指导信息。改进的Bug避障策略则基于栅格地图与分类支路结果,通过迭代搜索出最优避障方向,指导机器人准确避障。而特征对比结构则是结合实际,对整个避障过程在计算效率上的优化,通过计算特征提取网络中关键特征层在前后两帧图像上的差异来降低冗余计算,从而保证所提方法的实际落地性和高效性。

图1 整体框架结构图

1.2 特征提取网络

基于深度学习的计算机视觉是当前人工智能最热门的研究领域,主要包含图像分类、目标定位、目标检测以及图像分割四大基本任务[11],尽管各视觉任务内容差异较大,但其首要目标都是对图像关键特征进行提取。目前,经典的特征提取网络主要有LeNet、AlexNet、VGGNet、InceptionNet、ResNet等[12]。而随着近几年深度学习技术的不断发展,特征提取网络针对不同的视觉任务以及应用场景也进化出了一系列结构,如图像分类网络MobileNet[13]、EfficientNet[14]等;目标检测网络YOLO[15]、MobileDets[16]等;语义分割网络ShuffleSeg[17]、BiSeNet[18]、STDC[19]等。为有效提取图像特征,同时考虑到对应视觉任务以及实际应用场景,本文在对比分析现有网络结构后,设计了适用于移动机器人的特征提取网络。

所提特征提取网络主要由特征预处理结构和多个不同维度的特征提取模块串联组成,如图2所示。图2(a)为特征预处理结构(Prep),主要由并列的3×3大小的标准卷积、深度可分离卷积、空洞卷积以及2×2大小的最大池化拼接后再进行卷积融合,所有操作步长为2。该结构主要目标是在降维的同时从多个角度提取输入图像特征,减少噪声干扰、保障有效特征的提取并降低后续提取高维特征的计算量。图2(b)为特征提取模块(Stage),通过对输入特征先以降通道再降维度的方式逐层提取,并以密集连接的方式融合提取的特征信息,可以有效提供整体网络的非线性表达能力。同时,降低每层通道数在一定程度上降低了信息冗余,保障了网络计算效率;而降维度提取特征则提高了该特征模块对多尺度目标信息的获取。图2(c)为不同维度特征模块之间的连接,通过步长为2的卷积和平均池化操作来降低维度,尽可能的避免有效信息的丢失。特征提取网络中深层特征模块相对浅层的特征,维度更低,特征通道数更多,包含的细节特征较少,而语义特征较多。网络具体结构如表1所示,其中Layer Structure为网络层结构, stride为步长,Repetition为重复次数,Output Size为输出特征图大小。

图2 场景理解网络模块

表1 场景理解网络结构

1.3 任务分支

任务分支是利用特征提取网络获取的图像特征信息完成相应的计算机视觉任务。为有效实现机器人导航避障,任务分支采用了图像分类和图像语义分割来共同辅助机器人避障。图像分类分支主要从图像全局角度对机器人下一步行驶方向进行分类预测(直行、左偏、右偏、停止),保证机器人整体行驶方向准确,避免机器人陷入局部“死胡同”之中。该分支相对简单,只需要利用深层抽象特征进行全连接后分类即可,结构如图3(a)所示。语义分割分支相对于分类更复杂,该分支需要将深层抽象信息和浅层细节信息结合,实现对输入图像中每个像素的识别分类,使机器人能理解所处环境,完成局部精确避障。为保证语义分割效果与效率,选择特征提取模块最后一层的输出作为输入,采用由深到浅逐步上采样的方式进行融合,如图3(b)所示。同时,融合时引入注意力机制来提升有效信息的权重,降低无效特征干扰,从而提升语义分割准确度,注意力结构如图3(c)所示。

图3 任务分支结构

1.4 Bug避障策略

深度网络只是帮助移动机器人从全局的角度理解所处的环境,而为实现机器人安全准确避障,需要进一步将分类和分割结果与避障算法相结合。因此,本文首先根据语义分割结果将机器人所处场景转化为栅格地图,再基于栅格地图将分类结果与Bug避障方法相结合,搜索出安全避障路径,避障流程如图4所示。

图4 避障策略流程

该避障策略分为栅格地图构建和Bug避障规划。栅格地图构建首先是对语义分割结果进行二值化操作,提取出道路区域,并利用中值滤波、腐蚀再膨胀等图像预处理操作剔除噪声;其次,搜索出最大的道路连通区域,作为机器人可行道路区域;同时,考虑到机器人自身会占据一定道路区域,因此,需要对可行道路区域进行构形空间(C空间)转化,即利用不同大小的卷积核腐蚀道路区域,模拟机器人由近到远所占道路面积;最后,将处理后的语义分割图划分成m×n维度的栅格,根据每个栅格中是否全为道路像素来判断其是否可通行,最终将图像转为m×n的栅格地图。栅格地图构建过程如图5所示。

图5 栅格地图构建

为保证机器人安全有效的完成避障,本文在传统Bug算法基础上进行改进,基于栅格地图并结合分类结果来为机器人提供准确的避障方向。传统的Bug算法中当机器人遇到障碍物时将绕着障碍物行驶,而在实际应用中,该方式效率较低且容易陷入“死胡同”。针对此,本文利用分类结果保障机器人全局方向的准确性,并通过迭代分段寻路方式优化Bug算法,保证机器人局部避障方向最优性。具体避障伪代码如表2所示,对应分类结果为右偏时的路径搜索如图6所示。

表2 改进的Bug算法伪代码

图6 改进的Bug路径搜索

1.5 特征对比结构

特征对比结构主要是结合移动机器人实际情况,从全局的角度对所提方法进行优化。通常,大多数移动机器人行驶时,速度相对较慢,有障碍物路段相对较少,因此,对于机器人而言,行驶过程中相邻图像帧之间可行道路区域重复率较高。基于此,为避免对重复信息的计算,保证所提方法在实际应用中的实时性,引入了如图7所示的道路特征对比计算流程。

图7 特征对比计算过程

对于整个网络而言,特征层stage1的输出决定着最终的避障动作,即两张输入图像若stage1输出相同,则最终输出也相同,因此特征对比结构以stage1为输入。将stage1输出特征图通过线性打分层(Conv1×1)来预测每个位置像素属于每个类别的概率,并取最大概率的类别为该像素类别;然后,提取出其中道路像素并将特征图转为0-1编码,即道路像素为1,其他为0,将转化后的特征图与缓存中的上一帧特征进行对比,利用汉明距离计算两者之间相似性,如式(1)所示;最后,根据专家设置相似度阈值来判断是否继续后续的特征计算还是持续机器人上一个动作。

D(It,It-1)=count1(ItxorIt-1)

(1)

其中:It和It-1表示当前帧和上一帧图像,xor表示对两图像相同位置异或操作,count1表示统计1的总数,D表示计算两帧图像的汉明距离。

2 实验与结果分析

为有效验证所提方法的可行性,实验采用了多个数据集对所提网络性能进行了测试,并在实际场景中验证了移动机器人避障效果。实验主要利用嵌入式AI计算平台NVIDIA Jetson Xavier NX为基础,分别对所提分类网络、语义分割网络、分类分割网络以及最终机器人避障效果进行了测试。所提网络采用TensorFlow深度学习框架进行搭建,网络超参数主要借鉴同类型网络[13-14,18-19]设置,超参设置如表3所示。

表3 网络超参数设置

网络训练时以交叉熵损失函数计算误差,由于所提网络为多任务结构,故网络训练时整体损失为分类和分割误差之和,具体计算公式如式(2)~(4)所示。对于所提方法性能评估主要采用分类精度(P)、平均精度(AP)、全局精度(G)、平均精度(C)、交除并均值 (mIoU)以及每秒处理图像数量 (FPS)等几个指标来进行衡量。

(2)

(3)

Lall=Lcls+Lseg

(4)

其中:ai表示目标属于第i类的概率,N为目标类别数,Si表示对第i类概率进行指数归一化处理,yi为标签值,L为交叉熵损失函数,Lcls和Lseg分别为分类和分割损失。

2.1 分类分割网络测试

分类分割网络的精度直接影响着后续机器人的避障效果,为了有效验证所设计的网络,实验利用了多个公开数据集以及实际道路场景数据集分别对分类、分割和结合后的网络进行测试。由于分类网络相对简单,实验首先对其进行了测试,考虑到实际机器人避障应用中只分为四类,场景相对简单,故采用了Animals公开标准数据集进行训练测试。该数据集包含狗、猫以及熊猫3种动物图像约3 000张,平均每类动物图像约1 000张左右,图像大小为960×720。Animals数据集与实际应用复杂度接近,数据集较为简单,可以快速验证所提网络,将该数据集以7:1:2的比例随机分配,构建训练、验证和测试集,对分类网络进行迭代训练收敛后与同类型网络[13-14]进行测试对比,结果如表4所示。

表4 分类网络对比

根据分类网络对比结果可以看出,网络对于狗的分类效果较好,对猫和熊猫识别效果略微较低,但整体的分类效果较佳。而与同类网络相比,所提网络尽管在效率上未达到最优,但识别效果最佳,可以有效保障网络后续任务。

分类网络是从全局角度对整幅图像进行分类,而分割网络是从局部角度对图像每个像素进行分类,可见分割网络的复杂度相对更高。而对于分割网络的测试主要利用了CamVid和Cityscapes两个城市道路数据集,CamVid数据集包含11类目标约700张图像,Cityscapes数据集包含19类目标约5 000张图像,统一两数据集图像尺寸为960×720大小后分别进行训练测试,并与同类型网络[18,20]进行对比,结果如表5和表6所示,分割效果如图8所示。

表5 CamVid数据集测试结果对比

表6 Cityscapes数据集测试结果对比

分割结果可以看出,对于复杂场景而言,网络分割精度有所降低,但全局精度相对较高,可见网络对于部分小目标识别较差。同时,与同类网络相比,所提分割网络较好的平衡了计算效率与分割效果,可以更好的应用于实际场景。

对于分类分割结合后的网络测试,由于未找到相关公开数据集,故采用实际移动机器人采集的道路场景图像约3 000张,包含道路、石子、障碍物等6类目标,每张图像分别对应直行、左偏、右偏、停止4个类别中的一个,通过人工标注并归一化为960×720大小后进行测试验证,并与同类网络[21]进行对比,结果如表7和图9所示。

表7 分类分割网络对比

图9 分类分割结果对比

根据上述实验结果可以看出,由于任务分支的变多,网络计算效率有所下降,但从分类以及分割精度可见,所提网络在实际场景中也体现出较好的鲁棒性和泛化能力。同时,与同类型网络相比,所提结构在牺牲少量效率基础上较大幅度的提升了网络精度,为后续机器人避障提供了可靠保障。

2.2 机器人避障效果测试

分类分割网络使移动机器人可以有效理解所处环境,为进一步测试特征对比结构的有效性以及机器人的避障效果,实验利用搭载Jetson Xavier NX的轮式移动机器人对所提方法进行了测试。为方便其他避障方法对比,借鉴了文献[7]的测试方法,通过固定相机位置,在不同的机器人转向视角下,对采集的视频帧归一化为960×720后进行避障规划(设置栅格地图维度48×36),根据最终输出的避障方向是否与预期方向一致来衡量机器人避障效果。实验首先在无障碍道路和有障碍道路情况下测试了特征差异变化,如图10所示;再分别对引入特征对比结构前后的避障方法性能进行测试,结果如表8所示。

表8 引入自适应控制模块前后测试结果

根据图10可以看出,无障碍道路前后帧特征差异接近为零,而有障碍道路的特征变化率差异较大,可以较好的区分当前是否有无障碍物,特征差异阈值可设置为0.1。同时,由表7也可以看出,引入特征对比结构后,所提方法精度轻微降低,但其效率在无障碍物场景下得到了较大提升,有障碍物时也有所提升。由此可见,该结构可以有效提升所提方法在实际场景中的计算效率。

图10 有无障碍物时前后两帧特征差异

为验证改进后的Bug算法有效性,通过模拟复杂场景,对比改进前后的全局寻路效果,如图11所示。其中,由于是全局寻路,故改进后的Bug是以固定终点迭代调整起点进行搜索。

图11 Bug算法对比

根据全局路径搜索结果可以看出,所提方法所规划路径效率更高、路径更为合理。而在机器人实际应用中,由于场景实时变化,机器人主要以局部寻路结果进行避障,即固定起点迭代调整终点的方式,如图6(b)中只利用SG2指导机器人行驶。为验证所提方法实际避障效果,本文分别选择了多个不同机器人视角的路径进行测试验证,并与文献[7、21]的避障方法进行了对比,对比结果如表9所示,所提方法避障规划效果图12所示。

表9 机器人避障效果对比

图12 避障规划(从上到下依次为直行、右偏、左偏、停止)

根据上述结果可以看出,本文所提方法在实际场景中平均避障效率以及精度都较优于同类型避障方法,尽管在有障碍物时机器人效率会受到较大影响,但在实际避障过程中,机器人行驶速度也有所降低,故所提方法可以基本保障机器人实时避障需求。同时,根据图12也可以看出,所提方法可以有效地为机器人规划出当前最优方向以及大致转向角度,保障了移动机器人行驶区域的安全可靠。

3 结束语

本文针对目前移动机器人在避障过程中存在的不足,提出了一种将深层卷积神经网络与改进后的Bug路径规划相结合的机器人自主避障方法。该方法首先采用多层卷积稠密连接方式逐步提取图像特征,并利用提取的特征信息通过全连接、跳层上采样融合、注意力机制等操作抽象出机器人转向信息并对图像中各目标进行语义分割,使机器人理解自身所处场景。其次,将分割结果进行滤波、腐蚀等处理后提取机器人可行道路区域,再将其转化为机器人构形空间后构建栅格地图。最后,基于栅格地图,通过分段寻路方式优化Bug路径搜索算法,并将其与机器人转向信息相结合,规划出最优的避障方向。同时,为避免该方法在实际应用中对相似场景重复计算,引入了特征对比结构,有效提升了所提方法的计算效率。通过实验结果表明,本文所提方法可以有效的为机器人提供安全准确的避障路线,同时与同类型方法相比,该方法也体现出更高的精度与效率,能够高效辅助移动机器人实现自主避障。

尽管所提方法在一定程度上取得了不错的效果,但仍有较多值得深入探索的地方,如机器人可行区域的划分可进一步扩展等。同时,随着移动机器人应用的场景逐渐复杂,所提方法也需要考虑更多环境因素的影响,后续仍需持续优化完善。

猜你喜欢

移动机器人栅格特征提取
移动机器人自主动态避障方法
基于邻域栅格筛选的点云边缘点提取方法*
基于Daubechies(dbN)的飞行器音频特征提取
基于Twincat的移动机器人制孔系统
Bagging RCSP脑电特征提取算法
不同剖面形状的栅格壁对栅格翼气动特性的影响
基于MED和循环域解调的多故障特征提取
基于CVT排布的非周期栅格密度加权阵设计
极坐标系下移动机器人的点镇定
基于引导角的非完整移动机器人轨迹跟踪控制