当前位置: 首页 > 文档资料 > ICRA Robomaster 2020 >

4.算法原理以及算法效果(车载目标检测)

优质
小牛编辑
129浏览
2023-12-01

目标检测部分包括对机器人检测和装甲板检测,要求准确率和检测帧率可以达到实时效果,我们的目标检测算法基于anchor-base算法框架SSD(Single Shot MultiBox Detector),SSD框架对于轻量级主干网络,小目标检测效果不够理想,但是我们经过结构调整之后,整体算法效果有了惊人提升,我们采用的backbone基于mobilenet-v3,并进行一些改进,使其可以适应size为512×512大小图片输入,并且添加了PaFpn结构,来对输出的多尺度特征层进行融合,令小尺度的特征层具有丰富的语义信息,大尺度特征则有更为丰富的特征信息, 解决了SSD框架小目标检测效果差的问题。

图 4.1 目标检测算法神经网络结构图

Backbone

我们删除了原文中一些block,使得小特征不会在计算中丢失,并且加快了推理速度。

图 4.2 mobilenet-V3 改进版(橙色为特征输出)

网络结构

结构层数kerinhiddenoutstrideactires
1(conv)33/162//
2(block)31664242ReluF
3(block)52472402ReluF
4(block)340240802hswishF
5(block)380200801hswishT
6(block)3804801121hswishF
7(block)31126721601hswishF
8(block)51606721602hsiwshT
9 (conv)1160/9601//
extra--layer
10(block)39602565122//
11(block)35121282562//
12(block)32561282562//
13(block)3256641282//

Necks

我们在实验过程中发现了无fpn结构网络对于小目标识别效果较差这个问题,Fpn结构可以有效地提升浅层特征的语义信息,同样也可以丰富深层特征的特征信息,使得定位更加精确,相比不采用fpn结构,采用fpn结构之后小目标识别的效果显著提升,经过算法对比,采用pafpn结构对于我们的网络结构检测效果提升明显。更多关于fpn结构的相关信息请查阅相关论文。[PaFpn 论文地址](https://arxiv.org/abs/1803.01534)

图 4.3 paFpn网络结构图

网络结构

层数inputhidden(down)output(up)
1672128128
2960128128
3512128128
4256128128
5256128128
6128128128

BoxHead

我们的BoxHead结构是对提取的特征进行回归,得到分类结果和包围框结果。

图 4.4 BoxHead 结构图

anchors

anchors 锚点, 共计有 4774 个

layerpriorbox size
1[16,16] [21,21]
2[40, 40] [76,76] [13,13] [120,120] [80,80] [20,20]
3[148, 148] [186,186] [74,74] [105,105] [296,296] [207,207]
4[236,236] [276,276] [118,118] [168,168] [330,330] [472,472]
5[324,324][365,365]
6[412,412][459,459]

数据处理

神经网络的训练数据来自于大疆机甲大师开源数据集,以及在自己场地上录制的部分数据集,在用官方数据集训练完成backbone之后,针对人工智能挑战赛,进行微调boxHead的操作。
由于官方数据集分辨率较高,直接输入,运算量较大,不利于推理加速,因此采用将官方数据集切割为512512大小的样本来进行训练。为了达到多尺度训练效果,训练集中增添了300300大小数据和100*100大小数据。

数据集样例:

图 4.5 DJI Robomaster 开源数据集样例图片

数据输入:

图 4.6 用于网络训练的图片样例

算法效果

算法对比

mApAp(car)mAp(finetune)Ap(car)(finetune)
SSD-mobileNetv20.370.630.790.82
SSD-mobileNetV2-pafpn0.460.740.880.90
SSD-mobileNetV30.450.770.870.86
SSD-mobileNetV3-pafpn0.550.810.900.90

场地实际效果

图 4.7 真实机器人测试效果

运行时间

我们将模型进行如下流程的转换:pytorch ==> onnx ==> tensorrt。转换完成之后,在device上运行,测试检测单张图片运行时间 (不计入IO时间)

devicefp32fp16
jetson nano12-11ms6-7ms
jetson tx2//
jetson xaiver//
rtx20603-4ms1-2ms

未来工作(3d-detection)

大致思路: 由回归包围框4个点变为回归包围箱的8个点,由已知的机器人尺寸,一起计算epnp,得到三维位置和姿态