当前位置:首页 期刊杂志

基于SSD的轻量化无人机视觉定位算法

时间:2024-08-31

葛全益,钟涵海,侯冰,张晓龙,卢晓龙

(东北林业大学机电工程学院,黑龙江哈尔滨,150040)

0 引言

无人机自主飞行是近些年来比较热门的应用。目前,大多数无人机采用激光雷达、电场传感器、光流等功能实现定位,但上述定位方式因易受到外界环境干扰而存在一定安全隐患。比如采用激光雷达的实时定位与地图构建(SLAM)[1]的无人机在周围有人群或其他物体通过时激光雷达定位的位置信息会收到干扰,从而对定位造成影响。此外,传感器检测方式定位[2]与激光SLAM原理相似,若所在环境受到干扰,无人机的定位也会失效。

针对以上情形,本文提出一种基于SSD目标检测算法的无人机定位方式,可使无人机在不同环境下定位,具有鲁棒性强、可靠性高的特点。

1 图像数据处理

1.1 图像增强

采集到的原始图像在色度、色温、对比度上较为单一,但实际环境中标志物的图像属性较为复杂。为此,在进行模型训练之前,需先对图像进行增强处理。

图1 原图像(800*600)

图2 增强图像(800*600)

1.2 数据集标注

数据集按照VOC2012格式进行标注,并舍弃不完全显示的图像。由于无人机飞行时相对于地标的水平面方向存在不确定性,故采用多角度旋转方向的方式采集并进行标注。

1.3 数据集扩增

通过对样本进行水平、垂直翻转,随机角度旋转进行样本扩增,扩大数据集。

1.4 数据集内容

表1 数据集内容

2 改进的SSD算法

2.1 SSD原理

SSD是一种单阶段检测算法[3],其预测框的分类与定位均为回归问题,采用不同尺度的特征图,并预先生成不同比例的先验框,可以检测不同大小的物体。SSD采用VGG16作为基础网络结构,在VGG16的基础上增加了卷积层来获取更多的图像特征。其网络结构如图3所示。

图3 SSD网络结构

在训练过程中,首先需确定先验框与ground_truth,即首先确定物体哪些先验框来预测,然后使用非极大值抑制来产生结果。在先验框与ground_truth匹配的过程中,先由具体某个先验框对每个ground_truth进行预测,若一个先验框没有与任何ground_truth匹配,则认为其匹配背景,即负样本。若剩余未匹配的先验框大于某一阈值,则将该先验框与这个ground_truth进行匹配。

若检测物体总共有c个类别,SSD会预测出(c+1)个置信度,第一个置信度为背景置信度,这些置信度中最高置信度对应的类别就是预测类别。位置预测即预测边界框的(cx,cy,w,h),分别表示边界框的中心坐标,宽度和高度。但在预测过程中实际预测的是边界框相对于先验框的偏移量。如果先验框的位置为(dcx,dcy,dw,dh),对应的边界框为(bcx,bcy,bw,bh),那么预测值l是b相对于d的转换值:

lcx=(bcx-dcx)/dw,lcy=(bcy-dcy)/dh,lw=log(bw/dw),lh=log(bh/dh),为了得到预测框的真实位置,需要将预测值准化成真实坐标:

图4 DW卷积与PW卷积

SSD的损失函数定义为置信度误差与位置误差的加权和,即

预测时先预测每个预测框的类别,随后由先验框得到其位置信息,最后通过非极大值抑制(NMS)得到真实输出。

2.2 MobileNet网络

SSD原作者采用了VGG16作为基础网络结构,但由于计算开销较大不适合在嵌入式设备运行。Google团队提出了MobileNet网络结构专门用来在移动端设备运行,将SSD中的VGG16替换为MobileNet结构可极大地减少运算开销,模型准确率比VGG16下降了0.9%,参数量却是VGG16的1/32[4]。

MobileNet使用了不同于传统卷积的DW卷积,每个卷积核只与输入图像的一个通道进行卷积操作,并且每个卷积的通道数均为1,这样使得输入特征矩阵与输出特特征矩阵通道数一样。若想获得特定的输出通道数,需要在DW卷积后面接上PW卷积,PW卷积为核大小为1的普通卷积。

设定输入特征矩阵宽高相等且为WF,卷积核的宽高相等且为WK,输入矩阵的channel数为I,输出矩阵的channel数为O,卷积运算stride=1,则普通卷积运算的计算量可近似为

DW与PW卷积计算量的和为

MobileNet卷积核大小均为3*3,故理论上普通卷积计算量是DW+PW卷积运算量的8~9倍。

2.3 SSD算法改进

将SSD原骨干网络VGG16更换为MobileNet即可得到新的目标检测算法MobileNet-SSD。

3 模型训练与测试

3.1 实验环境

实验的模型训练设备为Intel(R)Xeon(R)Gold 6148 CPU,GPU 为NVIDIA Tesla V100,操作系统为Ubuntu18.04,训练框架为PaddlePaddle 2.2.2。

图5 MobileNet-SSD网络图

3.2 参数设置

实验采用非极大值抑制(NMS)方法,在生成的多个对象中,超过阈值的认为是一个对象,score低的则被删除,用式(7)计算两个包围框(A,B)的重合度。优化器采用SGD, 初始学习率为0.01,训练的轮数为300轮。

3.3 实验结果

改进的SSD算法更适合在嵌入式端运行,将训练的模型部署在NVIDIA Jetson Nano(4G)上,预测图像大小为800*600,经过测试帧率为58.8FPS,模型精度为73.8%,满足无人机定位需求。

MobileNet-SSD方法预测精度比嵌入式设备常用算法精度对比如下:

表2 数据对比

(以上模型结果的得出均是在训练轮数500轮,初始学习率为0.01)

4 飞行定位

采用MobileNet-SSD算法可以较稳定地检测地标从而实现飞机自身更稳定的定位,当水平方向位姿误差满足一定范围时即认为定位完毕,并将结果发送给飞行控制器。

图6 控制流程图

如图7、图8为MobileNet-SSD检测结果,通过深度学习可以得出目标矩形框在图像坐标系中的位置(x,y),以目标中心为原点,过标志平面水平方向为Xw轴,竖直方向为Yw轴,垂直标志面过原点为Zw轴,建立世界坐标系OXwYwZw,目标外接矩形框大小为W*H,则目标外接矩形框在世界坐标系中的坐标(由左上顺时针)为(-w/2, h/2, 0), (w/2, h/2, 0), (w/2, -h/2,0), (-w/2, -h//2, 0),由两两对应的四个点,以及相机的内参矩阵camera_matrix,畸变参数distortion_coefficients,通过SolvePNP算法可以解算出目标与飞机之间的相对位置关系T,姿态关系R,位姿关系可表述为RA+T,A为相机坐标系。

图7 检测结果A

图8 检测结果B

5 结束语

将深度学习目标检测模型与无人机定位结合起来是本文主要内容,它解决了传统视觉易受光照等条件干扰的缺陷,又协调了激光传感器等受三维立体变化的限制,具有较高的准确性与实时性。同时,在定位地点设置不同的图案可以让无人机识别出其蕴含的不同语义,可以在无人机定位的同时将更多的信息传递给控制系统,具有更大的可拓展性。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!