CVPR2020 | 深兰科技夜间检测挑战赛两冠一亚,为自动驾驶保驾护航

深兰科技
关注

这次比赛的主要难点包含以下几个方面:

运动模糊和图像噪点

与常规检测数据集不同,该竞赛考虑到实际驾驶情况,所用数据是在车辆行进过程中采集的,所以当车速较快或者有相对运动的时候会产生持续的运动模糊图像。并且由于摄像头是普通的RGB相机,因此在光线较弱的环境下收集的图片质量大幅度下降,这也是影响模型效果的主要原因。

对比度差异大,色彩信息少

这是由于收集数据主要来自于夜间环境所导致的必然结果,所以在进行数据增强的时候需要谨慎,不同增强方式会造成较大的影响。

不同的数据分布

该比赛的数据集涵盖了不同的城市和天气,之前常用的行人检测数据集一般未同时满足这两个条件。该数据具有多样性,且与常用数据集的数据分布存在较大差异。该比赛数据集与常用于训练预训练模型的数据集(如 COCO 数据集、OBJ365)的数据分布存在很大的不同,因此对基于常用数据集预训练的模型进行 fine-tune 的效果不如预期。

DeepBlueAI 团队解决方案

DeepBlueAI 团队在单帧行人检测和多帧行人检测两个赛道中取得了冠军成绩,在检测单帧中所有物体赛道中获得了亚军。

CVPR2020 | 夜间检测挑战赛两冠一亚,为自动驾驶保驾护航

CVPR2020 | 夜间检测挑战赛两冠一亚,为自动驾驶保驾护航

就检测器而言,该团队首先通过常规检测所累积的经验构造出一个 baseline:

Baseline = Backbone + DCN  + FPN + Cascade + anchor ratio (2.44)

这些模块早已是各个比赛的「常客」,也被许多专业人士进行了比较透彻的分析,此处不再赘述。DeepBlueAI 团队进行了简单的实验,发现这些模块总是有用,进而将这套算法作为 baseline,加上一些行人检测的小 trick,如将 anchor ratio 改为 2.44、针对标注为 ignore 的目标在训练过程中 loss 不进行回传处理。

具体主要工作包含以下几个方面:

1. Double Heads

通过观察实验发现,baseline 将背景中的石柱、灯柱等物体检测为行人,这种情况大多和 head 效果不好有关。该团队基于此进行了实验,如 TSD [7]、CLS [8]、double head [9],并最终选择了效果好且性价比高的 double head 结构(如下图所示):

CVPR2020 | 夜间检测挑战赛两冠一亚,为自动驾驶保驾护航

Double Heads 结构

CVPR2020 | 夜间检测挑战赛两冠一亚,为自动驾驶保驾护航

通过对比实验可以发现:使用 FC-head 做分类、Conv-head 做回归,可以得到最好的效果。

分类更多地需要语义信息,而坐标框回归则更多地需要空间信息,double head 方法采用分而治之的思想,针对不同的需求设计 head 结构,因此更加有效。当然这种方法也会导致计算量的增加。在平衡速度和准确率的情况下,该团队最终选择了 3 个残差 2 个 Non-local 共 5 个模块。

2. CBNet [10]

CVPR2020 | 夜间检测挑战赛两冠一亚,为自动驾驶保驾护航

合并功能更强大的 backbone 可提高目标检测器的性能。CBNet 作者提出了一种新颖的策略,通过相邻 backbone 之间的复合连接 (Composite Connection) 来组合多个相同的 backbone。用这种方式他们构建出了一个更强大的 backbone,称为「复合骨干网络」(Composite Backbone Network)。

当然这也带来了模型参数大小和训练时间的增加,属于 speed–accuracy trade-off。该团队也尝试过其他的改进方式,但最终还是选择了实用性更强的 CBNet,该方法不用再额外担心预训练权重的问题。

CVPR2020 | 夜间检测挑战赛两冠一亚,为自动驾驶保驾护航

该团队选择了性价比较高的双 backbone 模型结构。

声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存