返回列表

1st place solution (1/26 details updated)

359. Peking University/Baidu - Autonomous Driving | pku-autonomous-driving

开始: 2019-10-22 结束: 2020-01-21 自动驾驶感知 数据算法赛
第一名解决方案 (1/26 详情已更新)

第一名解决方案 (1/26 详情已更新)

作者: outrunner | 发布时间: 2020-01-22

感谢大家,祝贺所有顶尖团队。我正在度假,所以我会在春节后发布详细内容。

简介

  • 数据增强:水平翻转、三轴旋转、颜色变换、噪声、模糊。
  • 使用 keras hourglass centernet
  • 透视变换以提高效率。
  • 回归 yaw, cos(pitch), sin(pitch), rot_pi(roll), x, y, z, r。
  • 融合 6 个结果 (2 种类型的头部 * 3 种类型的变换)。
  • 通过拟合 LB(排行榜)进行后处理。

特别感谢这些内核:

新年快乐

1/26 详情更新

网络

network

我的方法基于 keras hourglass centernet
一些注意事项:

  • 6 Dof:回归 yaw, cos(pitch), sin(pitch), rot_pi(roll), x, y, z, distance。
  • 最终丢弃了 XY bias 结果。
  • 在我的第二个模型中移除了 Car typesXY bias

透视变换

两个目的:

  • 缩小小(远)车和大(近)车之间的尺寸差距。
  • 在不扩展图像的情况下覆盖更多的异常值。

我发现当我增加输入尺寸时,模型对大车的预测效果不好,所以我让它们变小了。额外的好处是可以包围异常值。

原始图像:

original

变换后:

transformed

覆盖范围比较:(点表示 GT 位置)

coverage

带有异常值的验证结果:(红点:GT,绿色:预测热图)

transformed

坐标参考

我认为不同位置的相同特征应该得到不同的结果。所以我加入了这一层以获得更好的预测,并在训练时应用随机裁剪。

数据增强

我使用了:水平翻转、相机旋转、颜色变换、噪声、模糊。

相机旋转

这是我方法中最重要的一部分。因为我只有 4001 张训练图像,其中 5 张是坏的,还有 256 张用于验证。如果没有旋转增强,很容易过拟合。

增强效果如下:(中心是原始图像)

rotation augmentation

详情请参考 这个内核

训练

  • 热图使用 Focal loss。
  • 回归使用 Huber loss。
  • Adam 优化器。
  • 手动调整学习率从 10^-3.5 到 10^-5.5。
  • 大约 0.4M 次迭代。
  • 训练流程:完整网络 -> 部分 -> 仅头部 -> 完整 ...
  • 每次迭代更改输入尺寸(随机裁剪)和批次大小。
  • 每次训练使用一块 2080Ti。(我有 2 块)。
  • 总共 6 个模型,2 个头部 * 3 个变换(不同的参数和输入尺寸)。

推理

同比赛其他方案