返回列表

14th place solution. Custom Mask and LSTM encoder/decoder

405. Lyft Motion Prediction for Autonomous Vehicles | lyft-motion-prediction-autonomous-vehicles

开始: 2020-08-24 结束: 2020-11-25 自动驾驶决策规划 数据算法赛
第14名方案:自定义掩码与LSTM编码器/解码器
作者: Inoichan (Grandmaster) | 比赛排名: 第14名

第14名方案:自定义掩码与LSTM编码器/解码器

非常感谢 Lyft 和 Kaggle 团队举办这次比赛。祝贺所有的获奖者。特别感谢我所有的队友能与我组队!!一起讨论的时光非常有见地,也是最令人愉快的。

创建掩码 (Create Mask)

我们解决方案的重点在于我们制作了自定义掩码。
同一场景中相隔一帧的智能体数据非常相似。因此,为了高效学习,我们创建了一个自定义掩码,每 N 帧加载一次数据。例如,通过每 5 帧采样一次数据,训练数据减少了 5 倍,从而实现了更快的学习。
为了进一步提高效率,我们根据目标距离对数据进行了平衡。大约 65% 的数据目标距离小于 6 米,这些属于简单任务。因此,为了高效训练困难数据,我们对 6 米以下的数据进行了下采样。这使数据减少了一半。最终,数据量大约为 80,000 次迭代 x 64 批量大小。

模型架构

Model Architecture

除了 CNN,我们还使用了 LSTM 编码器和 LSTM 解码器。

  • 图像大小:300x300
  • 优化器:Adam
  • 学习率调度器:Onecyclelr
  • 历史帧数:10
  • 预测目标:位置 + 偏航角的余弦/正弦值

首先,我们使用目标距离平衡掩码训练模型。然后使用非平衡掩码进行额外学习。我们在额外训练时使用了 log10 缩放的损失函数,因为训练/验证损失会以大幅度反复上下波动。通过这种方法进行两天的模型训练,我们的公开得分降到了 13 以下,私有得分约为 12。

未起作用的方法 (Didn’t work)

  • 历史位置超过 10 个(公开得分约 15,收敛缓慢)
  • 元标签
  • 类似 Seq2seq 的 LSTM 解码器

讨论

堆叠

正如这个帖子中所讨论的,我们发现堆叠可以提高分数,但没时间将最佳模型集成到堆叠中了……

卫星图像

直到比赛中途,我错误地将 satellite_debug 用作了 3 通道地图信息,而不是 semantic_map。有趣的是,这个模型的公开得分为 13.3。
因为意识到这个错误后我就没有继续深入研究,但看来卫星地图在这个任务中也能取得不错的分数。如果你喜欢,可以尝试一下!!!

3D-CNN(R2+1D)

将栅格化图像数据处理成 RGB×T×H×W 的形式,然后输入到 R2+1D 中。
验证分数与 resnet18 相当,但栅格化过程和 3D-CNN 模型太重了,训练所需时间是原来的两到三倍。

纯序列模型

我们训练了 Seq2seq 模型,不仅使用了目标智能体的历史位置,还使用了周围车辆的历史位置。尽管没有地图信息,该模型的验证得分仍达到了 24。我们将这个训练好的 seq2seq 模型集成到训练好的 resnet18 模型中,并对拼接后的模型进行了微调。遗憾的是,分数的提升微乎其微。

同比赛其他方案