返回列表

7th Place Solution - Cascade RCNN+Tracking ( Public LB is not all you need.)

476. TensorFlow - Help Protect the Great Barrier Reef | tensorflow-great-barrier-reef

开始: 2021-11-22 结束: 2022-02-14 环境监测 数据算法赛
第7名方案 - Cascade RCNN+Tracking

第7名方案 - Cascade RCNN+Tracking (Public LB 并不是你需要的全部)

作者: cydiachencc | 比赛排名: 第7名

我们要衷心感谢 Tensorflow 组织方举办了这场精彩的比赛。请允许我向我的队友们致以最诚挚的问候,感谢他们的辛勤付出。
这是我们团队第一次参加检测类比赛,能够获得最终第7名的成绩,我们深感荣幸。
整体解决方案基于高度定制的 Cascade RCNN,并以 Tracking(目标跟踪)作为后处理方法。此外,好运气和整体设计的鲁棒性在本次比赛中发挥了至关重要的作用。

总结

我们方法的主要思想基于更强大的基线 Cascade RCNN 模型设计(包含大量定制功能)、精心设计的数据增强策略以及目标跟踪后处理过程。我们的方法是单模型方案,不依赖任何集成策略。

数据划分 [更新]

在比赛开始时,我们根据视频 ID 随机划分训练集来分割数据集。
我们使用训练集-验证集的划分来选择合适的模型。在选择了合适的模型设计后,我们切换到完整的训练集并在 Public LB(公开排行榜)上进行比较。

更强大的 Cascade RCNN 基线

团队设计了一个定制的 Cascade RCNN 基线。主要的模型改进列出如下:

  1. 更强大的骨干网络: ResNet -> ResneXt -> Res2Net -> CBNet;
  2. 增强型 FPN: FPN -> PAFPN;
  3. 定制检测头: Cascade RCNN Head -> Double Head Cascade RCNN Head;
  4. 损失函数: Smooth L1 loss -> IoU Based Loss;

精心设计的数据增强策略

  1. 弱增强: 翻转、随机亮度对比度、RGBShift、HueSaturationValue (色调饱和度亮度)、噪声、CLAHE (限制对比度自适应直方图均衡化)、仿射变换、旋转
  2. 强增强: Copy-Paste (复制粘贴)、Mosaic (马赛克)、AutoAugmentation V1 策略、Mixup (混合)、Cutout (剪切)
  3. 多尺度训练和测试: [0.8 * image_size, 1.2 * image_size]

作为后处理的目标跟踪

@parapapapam (https://www.kaggle.com/parapapapam/yolox-inference-tracking-on-cots-lb-0-539) 的启发,我们采用 Norfair 跟踪作为后处理,并获得了性能提升。感谢您的慷慨分享。

Public LB 并不是你需要的全部

由于我们的方法基于上述方法论,该方法在 Public LB 上出现了显著的性能下降。当 Public LB 的排名掉到第 1000 名时,团队陷入了深深的绝望。值得庆幸的是,该方法在 Private LB(私有排行榜)上展示了其鲁棒性。

我们从比赛中学到了很多,如果我们有更多的时间来探索模型集成策略,我们的方法可以获得额外的性能提升。

最常见的问题:

感谢所有尊重这场比赛的人。我们的 Cascade RCNN 实现是基于 [1] 构建的。由于 Kaggle notebook 对 MMDetection 代码库不太友好(所有自定义代码都变成了私有数据集……)以及一些私有代码问题(公司限制),我们将清理代码库,构建一个公开的 notebook 并在未来分享详细的配置。
[1] https://github.com/shinya7y/UniverseNet

同比赛其他方案