返回列表

7th place solution

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

开始: 2019-10-22 结束: 2020-01-21 自动驾驶感知 数据算法赛
第7名解决方案
作者:phalanx | 比赛排名:第7名

恭喜大家取得优异的成绩!
我总结并记录了我部分的解决方案以及我们的后处理过程。
关于其他部分:
camaro 的部分:(部分) 第7名解决方案及代码
Jhui Heyelan 的部分:https://www.kaggle.com/c/pku-autonomous-driving/discussion/127034#726362

Pipeline

模型1:检测与姿态估计

通用设置

检测模型

  • Mask RCNN(移除了mask头)
  • 主干网络:resnext101-32x4d
  • 在lvis上预训练

姿态估计模型

  • HRNet-w18c, efficientnetb0/b3
  • 在imagenet上预训练

损失函数

  • 分类:BCE
  • 检测:Focal Loss
  • 姿态回归:L1 Loss

检测:优化器与调度器

  • 优化器:SGD(lr=0.01, momentum=0.9, weight_decay=1e-4, nesterov=True)
  • 调度器:CosineAnnealingWarmRestarts

姿态估计:优化器与调度器

  • 优化器:Adam(lr=0.0001)
  • 调度器:无

数据增强

  • 检测:水平翻转
  • 姿态估计:水平翻转、平移、旋转、随机亮度/对比度

1. 在 boxy-vehicle-dataset 上预训练

首先,我在 boxy-vehicle-dataset 上训练我的模型。
该数据集包含轴对齐边界框和3D立方体,但我只使用了2D bbox。
训练设置

  • 图像分辨率:1232x1028
  • 轮数:10
  • batch_size:4

2. 在比赛数据集上微调

模型

  • 在模型顶部添加深度头

预处理

  • 训练集 vs 验证集划分比例 = 9 vs 1
  • 使用标签创建3D bbox,然后创建轴对齐bbox
  • 深度值处理 -> 1 / sigmoid(depth) - 1

训练设置

  • 图像分辨率:800 x 2800, 1400x3300
  • 深度损失:L1 Loss
  • 轮数:50
  • batch_size:4

3. 姿态估计(yaw_sin, yaw_cos, pitch)

预处理

  • 根据bbox裁剪图像并调整大小

训练设置

  • 图像分辨率:320x480
  • 轮数
同比赛其他方案