链接:(71条消息) CVPR2020 夜间目标检测挑战赛冠军方案解读_我爱计算机视觉的博客-CSDN博客
1.这次比赛的主要难点包含以下几个方面:
-
运动模糊和图像噪点
与常规检测数据集不同,该竞赛考虑到实际驾驶情况,所用数据是在车辆行进过程中采集的,所以当车速较快或者有相对运动的时候会产生持续的运动模糊图像。并且由于摄像头是普通的RGB相机,因此在光线较弱的环境下收集的图片质量大幅度下降,这也是影响模型效果的主要原因。
-
对比度差异大,色彩信息少
这是由于收集数据主要来自于夜间环境所导致的必然结果,所以在进行数据增强的时候需要谨慎,不同增强方式会造成较大的影响。
-
不同的数据分布
该比赛的数据集涵盖了不同的城市和天气,之前常用的行人检测数据集一般未同时满足这两个条件。该数据具有多样性,且与常用数据集的数据分布存在较大差异。该比赛数据集与常用于训练预训练模型的数据集(如 COCO 数据集、OBJ365)的数据分布存在很大的不同,因此对基于常用数据集预训练的模型进行 fine-tune 的效果不如预期。
1. Double Heads
通过观察实验发现,baseline 将背景中的石柱、灯柱等物体检测为行人,这种情况大多和 head 效果不好有关。该团队基于此进行了实验,如 TSD [7]、CLS [8]、double head [9],并最终选择了效果好且性价比高的 double head 结构(如下图所示):
Double Heads 结构
通过对比实验可以发现:使用 FC-head 做分类、Conv-head 做回归,可以得到最好的效果。
分类更多地需要语义信息,而坐标框回归则更多地需要空间信息,double head 方法采用分而治之的思想,针对不同的需求设计 head 结构,因此更加有效。当然这种方法也会导致计算量的增加。在平衡速度和准确率的情况下,该团队最终选择了 3 个残差 2 个 Non-local 共 5 个模块。
2. CBNet [10]
合并功能更强大的 backbone 可提高目标检测器的性能。CBNet 作者提出了一种新颖的策略,通过相邻 backbone 之间的复合连接 (Composite Connection) 来组合多个相同的 backbone。用这种方式他们构建出了一个更强大的 backbone,称为「复合骨干网络」(Composite Backbone Network)。
当然这也带来了模型参数大小和训练时间的增加,属于 speed–accuracy trade-off。该团队也尝试过其他的改进方式,但最终还是选择了实用性更强的 CBNet,该方法不用再额外担心预训练权重的问题。
3. 数据增强
该团队发现 Pixel-level 的增强方式导致了性能结果大幅下降,因此没有在这个方向继续尝试。
而图像增强方式 Retinex,从视觉上看带来了图像增强,但是该方法可能破坏了原有图片的结构信息,导致最终结果没有提升。
于是,该团队最终选择了 Spatial-level 的增强方式,使得结果有一定的提升。
实验细节
1. 将 Cascade rcnn + DCN + FPN 作为 baseline;
2. 将原有 head 改为 Double head;
3. 将 CBNet 作为 backbone;
4. 使用 cascade rcnn COCO-Pretrained weight;
5. 数据增强;
6. 多尺度训练 + Testing tricks。
未来工作方向:
1. 由于数据的特殊性,该团队尝试使用一些增强方式来提高图片质量、亮度等属性,使图片中的行人更易于检测。但结果证明这些增强方式可能破坏原有图片结构,效果反而降低。该团队相信会有更好的夜间图像处理办法,只是还需要更多研究和探索。