359. Peking University/Baidu - Autonomous Driving | pku-autonomous-driving
首先祝贺所有顶尖团队。
其次,我要祝贺我的所有队友,感谢这次团队合作,团队中的每一位成员在这次比赛中都是不可或缺的。
我们的整体流程在很大程度上改进了之前的方法 6D-VNet [1]。我们认为我们是极少数没有使用 CenterNet 作为主网络的团队之一。系统流程如下(红色表示我们为此任务添加的模块):
三大主要改进包括:
我们具体的实施细节如下:
我们基于开源项目 MMDetection 构建了我们的框架。这是一个优秀的框架,可以帮助我们将代码模块化。图像增强的像素级变换调用自 Albumentations 库。
检测器采用 3 阶段混合任务级联(HTC)[2],骨干网络采用 ImageNet 预训练的高分辨率网络[3]。
我们为这次挑战设计了两个特定的任务头:一个头接收 ROIAlign 特征用于车辆类别分类 + 四元数回归,另一个头接收边界框信息(中心位置、高度和宽度)用于平移回归。
通过这一构建模块,我们在私有/公开排行榜上取得了 0.094/0.102 的成绩。
随后,我们加入了 ApolloScape 数据集的训练图像,在清理了明显错误的标注后,我们得到了 6691 张图像和约 79,000 辆车用于训练。Kaggle 数据集约有 4000 张训练图像,我们随机留出 400 张作为验证集。使用 tito(@its7171) 的评估代码,我们获得了约 0.4 的 mAP。但在公开排行榜上,我们只有 0.110。本地验证与测试 mAP 之间的这种差异至今仍是一个让我们困惑的难题!
经过视觉检查,我们发现检测器在边界框检测和掩码分割方面表现良好(毕竟有 100 多篇顶级会议论文在研究实例分割)。但是,通过旋转和平移生成的网格与掩码预测的重叠效果并不理想。
因此,我们将 z 视为“神谕”预测,并修正 x 和 y 的预测值。这将我们的成绩从 0.105/0.110 大幅提升到了 0.122/0.128。
模型集成是 Kaggle 顶尖解决方案的必要条件:我们训练了一个直接回归平移的模型,以及一个回归 sigmoid 变换后平移的模型。第三个模型是在图像进行 0.5 翻转的情况下训练的。
由于任务的特殊性:网络可以同时输出掩码和网格,我们利用预测网格和掩码之间的 IoU 作为置信度分数,通过非极大值抑制(NMS)来合并模型。
max 策略使 3 个模型集成达到了 0.133/0.142。average weighting 策略产生了更好的结果,也是我们最终采用的策略。
主办方还提供了在测试评估期间将被忽略的掩码。如果预测网格有超过 20% 的重叠,我们就过滤掉这些忽略掩码,这大约带来了 0.002 的 mAP 提升。
下表展示了我们取得的上述进展:
| 方法 | 私有排行榜 | 公开排行榜 |
|---|---|---|
| HTC + HRNet + 四元数 + 平移 | 0.094 |