返回列表

(part of) 5th place solution

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

开始: 2019-10-22 结束: 2020-01-21 自动驾驶感知 数据算法赛
第5名解决方案(部分)

第5名解决方案(部分)

作者:4ui_iurz1 | 比赛排名:第5名

恭喜所有的参赛者!
感谢整个团队 @erniechiew@css919 的通力合作!

关于解决方案的另一部分,请参阅 此处讨论

代码地址:
https://github.com/4uiiurz1/kaggle-pku-autonomous-driving

我的方法基于 CenterNet

检测头

  • 热力图 [1]
  • xy 偏移量 [2]
  • z (深度) [1]
  • 姿态 [6]: cos(yaw), sin(yaw), cos(pitch), sin(pitch), cos(roll), sin(roll)
  • 宽高 [2]: 这不用于预测,但作为辅助任务学习它提高了 PublicLB 的分数。

热力图的损失函数是 Focal Loss,其他的是 L1Loss。wh loss 的权重是 0.05。在计算损失时,掩膜图像的掩膜区域被忽略。

网络架构

增加输入尺寸非常有效,mAP 显著提高。
我尝试了更深的网络 (ResNet34, 50),但没有效果。

数据增强

  • HFlip (p=0.5): 水平翻转图像,且 yaw *= -1, roll *= -1
  • RandomShift (p=0.5, limit=0.1): 平移图像和位置。
  • RandomScale (p=0.5, limit=0.1): 缩放图像和位置。
  • RandomHueSaturationValue (p=0.5, hue_limit=20)
  • RandomBrightness (p=0.5, limit=0.2)
  • RandomContrast (p=0.5, limit=0.2)

训练

  • 优化器: RAdam
  • 学习率调度器: CosineAnnealingLR (lr=1e-3 -> 1e-5)
  • 50个 Epochs
  • 5折交叉验证
  • Batch size: 4

后处理

  • 通过将热力图乘以掩膜,从预测中移除掩膜区域。
  • NMS (距离阈值: 0.1): 我不确定这有多有效...
  • 使用 imagehash 查找重复图像并进行集成。PublicLB 略有提高。
  • 分数阈值: 0.3 (用于验证集 mAP: 0.1)

模型集成

通过平均原始输出图,集成每一折的模型和两个模型 (ResNet18, DLA34)。

分数总结

模型 验证集 mAP (tito's script) PublicLB PrivateLB
ResNet18 + FPN 0.257224305900695 0.118 0.109
DLA34 + FPN