返回列表

[11th Place] Solution: RTK, CV, and two Post-Processing are all you need

502. Google Smartphone Decimeter Challenge 2022 | smartphone-decimeter-2022

开始: 2022-05-02 结束: 2022-07-29 自动驾驶感知 数据算法赛
[第11名] 解决方案:RTK、CV 和两个后处理就是你需要的全部

[第11名] 解决方案:RTK、CV 和两个后处理就是你需要的全部

作者: ForcewithMe | 比赛排名: 第11名

首先,感谢组织者和 Kaggle 组织了这场独特的挑战赛。我们也要感谢其他参赛者。正是比赛让事情变得更加有趣。感谢我的队友 @linwei9@chris62@gmhost@rytisva88。是团队合作让我们赢得了金牌。

我们的解决方案是 RTKtaro 的公开基线 的集成。感谢 @timeverett@taroz1461 的巨大贡献。这两个代码帮助像我这样的新手快速入门 GNSS 定位。但由于我们最终没有对 taro 的公开基线做出太大的改进,RTK 在我们的最终解决方案中占据了主要部分。

对 Taro 公开基线的修改

  1. 将位置估计和速度估计的 WLS(加权最小二乘法)损失函数从 soft_L1 损失切换为 Cauchy 损失。

  2. 使用 Optuna 针对每部手机优化卡尔曼滤波器的参数。这对 LB(Leaderboard)有帮助,但对 PB(Private Leaderboard)并没有真正的帮助。

  3. 通过阈值预测汽车是否停止,并对所有停止点取平均值。

  4. 使用 LGB 预测相对位置。当损失函数为 soft_L1 损失时,它对基线有帮助。但当损失函数为 Cauchy 损失时,它就没有帮助了。

对 RTK 基线的修改

调整参数

  1. 访问 RTKExplorer 的博客,下载 Demo5 用户手册介绍。

  2. 阅读 demo5 手册,了解手册中指定的开源 RTK notebook 中每个参数的含义和默认值。

  3. 在手册中的默认值和开源代码中的参数值周围微调每个参数。每次调整后计算整个训练集(排除错误路径)的 RTK 分数。我们发现仅在特定手机上调整参数时,CV 和 LB 是不一致的。但如果在整个数据集上运行,CV 与 LB 具有相同的上升/下降趋势,尽管它们并不一致。

  4. 集成训练数据上最佳参数的预测结果以及几个次优参数的预测结果。

添加参考站

使用多个参考站进行 RTK 解算,并对结果取平均值。

集成

计算每种手机的得分!

  1. 你可以使用 这个 notebook 获取训练数据上每种手机的得分。你也可以在最后搜索两个基线的集成权重。这一步非常重要,因为你会发现 RTK 非常擅长处理 GooglePixel5、Samsung 和 Xiaomi,这些正是 PB 中所有的手机类型。特别是对于 PB 中占大部分的 Google5 和 Samsung,RTK 可以达到相比其他基线另一个层级的分数。你也可以发现它在 GooglePixel4 和 GooglePixel4XL 上表现非常糟糕。

  2. RTK 和 taro 的公开基线(经我们修改)的权重为 0.65:0.35 时,我们可以达到最高的 LB 排名,在 LB 上也排名第 11。

  3. 但鉴于 GooglePixel5 和 Samsung 占据了 PB 的大部分,我们预计 PB 会有巨大的变动。由于 RTK 在 GooglePixel5 和 Samsung 的训练集上表现非常好。我们决定在 PB 上给它更高的权重。最终,我们使用了 0.8:0.2 的权重获得了 PB 第 11 名。

后处理

  1. 替换 RTK 的异常值。

    公开的 RTK �

同比赛其他方案