APP下载

基于深度学习的无人机单目视觉避障算法

2022-02-21张香竹张立家宋逸凡裴海龙

关键词:线速度障碍物航行

张香竹 张立家 宋逸凡 裴海龙

(1.华南理工大学 自动化科学与工程学院,广东 广州 510640;2.广东工业大学 计算机学院,广东 广州 510006)

与大型无人机相比,小型无人机的优点是灵活性更大、功耗更低、价格更便宜。所以,小型无人机的应用范围越来越广,包括包裹快递、在拥挤杂乱的环境中拍摄和监视等。

深度感知和避障是无人机智能导航中必不可少的任务。传统的解决方案是采用距离传感器,如超声波传感器、雷达[1]、微软Kinect[2]、立体相机[3]或多个传感器数据融合[4]。但是,这些传感器价格昂贵或者工作的范围和环境有限,不适用于小型无人机系统。相对这些传感器,单目相机具有重量轻、成本低等优点,且大部分商业无人机包含前置摄像头,使其成为避障的重要解决方案。

小型无人机采用单目相机估计深度和避障的可行性已被证实。早期,估计深度常基于手工特征或基于几何结构的方法。Kumar等[5]把一幅图分为很多块,使用一组手工制作的特征表示一块,之后,使用预先训练好的支持向量机(SVM)分类器估计每块的深度。然而,该方法对深度估计的精度较差,这限制了无人机在高度拥挤或杂乱环境中的应用。Alvarez等[6]采用运动构图法(SFM),该方法以无人机悬停期间采集的一系列图像为输入,进行图像特征匹配,并以图像序列间的结构限制构建深度图。这种悬停-建图-规划-选路径-飞行-悬停的模式不适用于动态避障,且SFM对缺乏纹理的环境无法检测。

目前,深度学习在视觉任务中性能表现突出,被广泛用于其他领域,包括避障任务。该方案有端到端模式和感知-规划两种模式。端到端模式中的模型以图像为输入预测无人机飞行动作[7- 9],已经取得不错的实验效果。但由于训练数据采用人工控制无人机飞行获得,该模式受人为操作影响较大。为解决这一问题,有学者提出感知-规划模式[10- 18],即模型以图像为输入进行标签预测,规划算法根据标签控制无人机避障和导航。这是无人机避障的趋势。基于均值漂移等无监督的方法需要先确定聚类的个数,再对感知结果进行处理。然而,这些参数事先并不知道,且不同的环境下聚类个数不同。

本研究结合单张图像深度估计FastDepth算法和目标检测的NanoDet算法实现无人机的自主导航和避障,以检测框为依据划分区域,深度估计用于判定区域深度。根据无人机减速所需距离和无人机检测出障碍物到开始减速所需的反应距离等运动约束和评价函数,筛选可航行区域,根据较近距离的障碍物或前视相机视线约束计算最小可航行区域,判断该区域是否可安全通行。根据可航行区域中心角度及深度调整无人机偏航角速度和线速度。与无人机直飞的实验对比,证明了本研究提出的方法的自主避障性能。

1 相关工作

由于在视觉任务中优秀的性能表现,深度学习方法常被用于单目视觉深度估计或目标检测。由于深度学习中的端到端模式需人工控制无人机飞行获得模型训练数据,受人为操作影响较大。因此,深度学习方法中的感知-规划模式成为无人机自主避障的常用模式。

1.1 单目深度估计

单目深度估计在机器人应用中发挥着重要作用[19]。SFM方法通过一系列图像进行深度估计,这种方法计算速度和对动态障碍物的适应都比较差[6]。另一种视差图方法[20],是借鉴双目经验,将视差估计定义为图像重建问题,训练神经网络扭曲一侧图像以匹配另一侧图像。

目前,用深度学习的方法解决单目深度估计已成为趋势[19]。学者们通过改变网络结构[21- 23]、增加网路输入[13,24]、增加网络预测任务[25- 26]或修改预测标签[27- 28],提高预估精度。Eigen等[21]用两个网络(一个预测全局粗尺度,另一个预测局部细节),并加入法向和标签辅助预测任务[25]提高深度估计精度。Laina等[22]则修改了深度残差网络。有学者把稀疏深度图与RGB图像同时作为网络输入[13,24]。有学者则以光流图和RGB图像作为CNN输入[24]。Qi等[26]同时预估深度和法线,解决预测中的模糊问题。Fu等[27]和Diaz等[28]认为不同距离预估误差不同,对距离做间距递增离散化,通过有序回归进行预测深度。这些方法通过增加算法复杂性和计算成本获得更高的预测准确性,不适于实时推理。

1.2 目标检测

目标检测的目的是找出图像中所有感兴趣物体,含物体定位和物体分类两个子任务[29]。目前,目标检测算法按提取目标检测框的步骤不同,分为双阶段和单阶段两种。双阶段分两个阶段:产生候选框即目标在图像中位置;对候选框分类和修正位置。这类算法精度高,但速度较慢,代表性算法有RCNN、faster RCNN[30]等。与双阶段不同,单阶段算法通过一次检测即可得到物体类别概率和物体位置信息,代表性算法有SSD[31]、Yolov2[32]等。这种方法速度快,但较双阶段算法精度差。这些算法都已有所改进,速度和精度都有所提升。这些方法模型大,不适于移动端。有人提出yolo-tiny等方法用于移动端的目标检测[33]。

1.3 单目避障算法

深度学习中End-to-end模式进行无人机自主导航和避障取得了喜人的性能[7- 9]。其训练数据采用人工控制无人机飞行获得,受人为操作影响较大。为解决这一问题,有学者提出感知-规划模式[34]。该模式用深度模型得到图像感知,规划算法以感知结果为输入进行自主导航和避障。该模式分为3类:距离预测[16- 18]、视差图预估[15]和深度图预估[11- 14]。有学者根据深度模型预测图像左、中、右3部分距无人机最近障碍物的距离[16- 18]。然后,规划算法以预测距离为输入,控制无人机角速度和线速度。该方法控制效果较好,但算法并没有估计出障碍物所在方向与相机视线之间的夹角,造成角速度控制的模糊性。单目深度估计或估计视差图可以解决这一问题。但是,这些方法对深度图或视差图进行二值化[12- 13]、均匀划分区域[11,15]或无监督像素聚类[14]实现区域划分。由于环境中障碍物个数是变化的,所以这种区域划分方法难以确定区域个数。张午阳等[35]提出用Yolo算法检测障碍物,根据人均身高计算物体与无人机(UAV)的距离,但这不适用于无人场景。受文献[35]启发,本研究提出了基于目标检测框的深度区域划分方法。

2 方法

2.1 系统结构

本系统包含3个模块:感知模块、深度估计模块及避障模块,如图1所示。感知模块包括可运行在移动端的深度估计[36]和目标检测[37],区域深度估计模块主要包含3部分:①对预估结果进行预处理;②基于目标检测框对深度估计图进行区域划分;③对划分区域进行深度估计。最后的避障模块分3部分:①考虑无人机减速所需距离和无人机检测出障碍物到开始减速所需的反应距离等运动约束的有效区域深度;②基于评价函数筛选可航行区域,并依据无人机尺寸和前视相机视线约束计算最小可航行尺度,保证该区域可安全飞行;③根据可航行区域规划运动。

图1 系统结构示意图Fig.1 System structure diagram

2.2 图像感知

为方便后续的移动端部署,本研究采用FastDepth算法[36]进行单目深度估计。这种算法有两个主要贡献:一个高效轻量级的编码-解码网络和网络裁剪。同时,本研究用NCNN 优化器[38]对FastDepth算法进行优化后移植到移动端。

本研究的目标检测方法为NanoDet算法[37]。该方法有轻量级超高速且精度较好的特点,非常适合部署在移动端。为此,该方法有3个主要贡献:以改进的FCOS算法为基础架构,体积较小且对移动端CPU友好的ShuffleNetV2为主干网络,NCNN优化器[38]部署到移动端。该模型用包含80种物体类别的COCO2017数据集进行训练和测试,而室内办公区域常见的为人和椅子。后续对这两种障碍物进行避障实验。

2.3 避障算法

本研究基于目标检测结果对深度图进行区域划分。为保证无人机飞行安全,本研究考虑反应时间、最大减速及预估误差,通过有效动态空间转换(EDS)[39]获得区域有效深度。除此之外,评价函数筛选可航行区域;根据无人机尺寸约束和视线范围约束计算最小可航行区域,判断该区域是否可安全飞行。设计规划算法控制无人机的偏航角速度和线速度,保证无人机平稳飞行。

2.3.1 基于目标检测框的区域划分

(a)原图

(b)目标检测结果

(c)剔除远距离目标框

(d)深度图中目标检测框图2 基于目标检测框的图像区域划分Fig.2 Image region division based on object detection boxes

2.3.2 有效深度

为保障无人机飞行安全,需考虑反应速度、最大减速及深度预估误差对深度的影响。需把预估距离转换到EDS[39],筛选可航行候选区域。

无人机反应距离及减速距离为:

(1)

其中,vt表示t时刻无人机的线速度,T表示采样时间间隔,drp表示反应所需距离,amax表示最大加速度,ddc表示最大减速所需的距离。

由于无人机长时间没有收到控制指令,会立即悬停;且无人机的实时速度无法获取,所以,本研究用最大线速度和等待控制指令的最大时长的乘积d代替上述反应距离和减速距离的总和。

由于深度估计存在误差,计算有效深度时需去除误差。Kumar等[5]把深度估计误差视为常数。Yang等[14]用基于像素聚类得到的目标检测框的长或宽与图像长或宽的比值Rj表示障碍物轮廓的完整性。本研究与文献[5]方法类似,不同的是:本文目标检测框由目标检测算法获得。比值Rj如下:

(2)

其中:wj和hj分别为图像中第j个区域中目标检测框的宽和长,W和H分别是图像的宽和长。设置阈值μ,若Rj大于该阈值,说明物体轮廓完整性较差,深度误差估计大,视为不可航行区域;其他情况,视为常数ed。

则第j个区域的有效深度为:

(3)

其中:Dj表示第j个区域的有效深度,0表示区域不可航行。

由于障碍物较远时对无人机的飞行影响较小,此时,考虑合并深度较大区域,并以最小深度为最终深度值,具体如图3所示。图中颜色越深表示障碍物距离越近,颜色越浅表示障碍物距离越远。

(a)合并前的有效深度 (b)有效深度图3 有效深度图(单位:m)Fig.3 Effective depth map(Unit:m)

2.3.3 约束

无人机可航行候选区域可分为以下3种情况:无可航行区域、仅有一个可航行区域和多个可航行候选区域。第3种情况时,根据评价函数筛选可航行区域。存在可航行区域时,根据无人机尺寸及无人机前视相机视场约束计算最小可通行尺度,保障无人机飞行安全。

由区域划分和有效深度图3得避障图(见图4)。图4中上面矩形图为图3(b)有效深度图,下面三角图为避障图。避障图图4中蓝色区域表示障碍物,无颜色区域表示可航行。

图4 避障图Fig.4 Obstacle avoidance figure

图5 角度和最小通行尺度示意图Fig.5 Schematic diagram of angle and minimum pass size

计算公式如下所示:

(4)

(5)

由此,区域的夹角为

(6)

若可航行候选区域不止一个,则选择一个可航行距离尽可能远、且无人机轨迹尽可能平滑的区域作为可航行区域。基于此,设计评价函数Fj如下:

(7)

最后,计算最小可通行尺度Sj。选取可航行区域相邻两区域中具有较小深度值的区域(可航行区域的邻域)与可航行区域的邻边为一边;从该边朝着可航行区域的方向选取深度值小于等于该邻域深度值的区域,或者无人机前视相机的视线边界作为另一边,计算最小可通行尺度。图5中可航行区域左边界为一边,无人机前视相机的右边界为另一边,与虚线共同组成一个等腰三角形,且该虚线为等腰三角形的底边。该虚线长度Sj为

(8)

由于无人机飞行过程中存在抖动等,若可通过尺度大于无人机尺寸的1.5倍,则该区域为可航行候选区域;否则,不可通过。四旋翼无人机的尺寸是指轴距,即对角线上的两个电机轴心的距离,具体为29 cm。

2.3.4 局部规划

为适合不同的情况,本研究设计不同的局部规划算法:无可航行区域,则无人机朝着一个方向旋转,直至有可航行区域;若仅有一个可航行区域,无人机朝该区域旋转。只有中间区域可航行时,无人机会直线飞行;否则,无人机前向速度为零。

无人机接收偏航角速度,而非角度。根据上文规划算法,为防止角速度变化过快,加入低通滤波:

υθt=αυθt-1+(1-α)υθ

(9)

其中:υθt和υθt-1分别为当前速度和前一时刻角速度;υθ为当前预估角速度,是矢量方向θ(Dj+D0)与相机水平视场角θFOV比值的2倍,即υθ=2θ/θFOV,范围为[-1,1]rad/s;Dj为可航行区域深度与其中心角构成的距离矢量,矢量方向θ(Dj+D0)由距离矢量Dj与相机视线轴方向距离矢量D0合成,α为前一时刻偏航角速度的权重,为0.7。

因为环境中可能存在动态障碍物,所以无人机的线速度不仅要考虑可航行点所在区域深度的影响,还要考虑整体环境的影响,即

vt=βvt-1+(1-β)v

(10)

其中:vt和vt-1分别为当前时刻和前一时刻的线速度;v为预估的无人机当前时刻线速度,由相机视线轴所在区域深度Dj、深度估计模型可测的最大深度dmax及最大线速度Vmax共同决定,v=(Dj/dmax)Vmax,Vmax为0.5 m/s;dmax为5 m;β为权重系数,为0.7。

3 实验

为验证本研究提出的方法的避障性能,在两种场景中进行算法实验:一个是仅包含3种不同颜色且位置固定的椅子;另一个场景中包含位置固定的椅子和移动的人。无人机避障过程中,图像中出现频次较高的障碍物如图6所示。

图6 环境中出现较高频次的障碍物Fig.6 Obstacles of high frequency in the environment

为说明算法避障有效性,本研究以无人机沿可航行方向最大线速度直线飞行作为参照(以下称直飞)。为保障环境安全,无人机直飞接近障碍物时,悬停无人机,之后从该点开始下一次直飞实验。实验过程中,无人机接近障碍物而本方法没有产生较大偏航时,手动停止无人机,并从该点开始下一次实验。值得一提的是:本方法并未针对本文实验场景数据进行训练。

每种方法在每个场景飞行10次。在仅有椅子的场景中,直飞的平均飞行时间为4.5 s,本方法的平均飞行时间为14.8 s;在包含动态障碍物的场景中,直飞的平均飞行时间为3.9 s,本方法的平均飞行时间为12.3 s。由此可得:本方法较无人机直飞的平均飞行时间长2倍以上。飞行环境中,障碍物之间的距离范围从1 m至3 m。从平均飞行时间和最大线速度可确定:实验环境中障碍物之间的平均距离约为2 m。

为说明算法细节,本研究以一次飞行为例,给出系统输出:线速度和角速度,如图7所示。

图7 系统动态输出Fig.7 Dynamic outputs of the system

图7横轴代表帧数,纵轴代表线速度或角速度。每段场景序号从左至右依次增大,且每段场景配置相应场景图。偏航角中定义向左为正方向,向右则为负方向。从图7可以看出:第1段场景中,障碍物距无人机较远时,无人机沿直线飞行;第2段场景中,障碍物在无人机右前方时,算法得出无人机应该配置较大的正向偏航角速度,即左向偏航角速度,并减小无人机线速度,达到快速避障的目的;第3段场景与第1段场景类似;第4段场景与第2段场景类似;第5段场景中,障碍物在无人机左前方,此时,无人机持续产生较大的右向偏航角速度。从中也可以看出:遇到障碍物时,本方法会在较短时间内完成避障行动。

根据平均飞行时间和图7可知:本算法可以根据环境中的障碍物距无人机的远近和障碍物相对无人机前视相机的方位自主调节速度和偏航角速度,实现无人机自主避障。本文给出室内环境布局图,及3条无人机自主避障轨迹,以展现无人机的避障效果,见图8。其中,每条轨迹用不同颜色表示,具体的图例见布局图下方所示。由于环境中动态人的运动轨迹是无规则的,本文并未展示含动态障碍物的无人机自主避障轨迹图。

图9展现部分图像的中间处理结果。图9中共含3个框。第一个框内是场景中仅含椅子的部分图像的中间处理结果,中间框中是场景中含动态障碍物的部分图像的中间处理结果,最下层框内是部分避障失败图像的中间处理结果。

图9内中间列和右侧列图片中,像素颜色越深表示障碍物与无人机距离越近,反之,距离越远。从图9可以看出:本算法可以检测出训练数据集中包含的类别,如人、椅子;对于未经模型训练的数据类别,如纸箱,或者图像中仅包含部分部件的障碍物,如椅子、桌子,则无法检测。另外,由于受光照、纹理等影响,单目深度估计精度变差从而造成避障失败,如最下层框中的图像。

图8 无人机自主避障示意图Fig.8 Diagram of UAV autonomous obstacle avoidance

图9 算法中间处理结果Fig.9 Intermediate treatment results of the algorithm

4 结语

本研究提出基于单张RGB图像的深度估计、目标检测和基于反应距离、减速距离等运动约束的四旋翼无人机自主避障算法。与无人机直飞的对比实验可以看出:本算法具有较好的自主避障性能。经过实验结果分析可知:本算法受单目深度估计精度和检测算法稳定性的影响。下一步,需考虑用深度相机解决单目深度估计精度问题及通过视频序列解决目标检测稳定性问题。

猜你喜欢

线速度障碍物航行
到慧骃国的航行
海洋美景
第六章 邂逅“胖胖号”
高低翻越
赶飞机
月亮为什么会有圆缺
天体运动中的四大难点
盘棒砂磨机线速度对研磨效果的影响
潜艇
一种辐照线缆表面品质保护装置