返回列表

3rd place solution overview: 2-stage + FalsePositive Predictor

345. Kuzushiji Recognition | kuzushiji-recognition

开始: 2019-07-18 结束: 2019-10-14 计算机视觉 数据算法赛
第3名解决方案概述:2阶段 + 误报预测器

第3名解决方案概述:2阶段 + 误报预测器

作者: kenji (Grandmaster) | 比赛排名: 第3名

感谢主办方举办这场非常有趣的比赛。祝贺所有完成比赛的人以及获胜者。

以下是我的解决方案概述。

代码仓库:https://github.com/knjcode/kaggle-kuzushiji-recognition-2019
训练权重:https://github.com/knjcode/kaggle-kuzushiji-recognition-2019/releases/tag/0.0.1

核心思路:2阶段方法 + 误报预测器。

  • 检测阶段:使用 Faster R-CNN (ResNet101 backbone)
  • 分类阶段:使用 5 个模型集成,采用 L2-constrained Softmax loss (EfficientNet, SE-ResNeXt101, ResNet152)
  • 后处理:LightGBM 误报预测器

预处理

对训练和测试图像进行去噪和 Ben's 预处理。

感谢以下笔记本提供的灵感:
Denoising + Ben's Preprocessing = Better Clarity

检测

检测模型使用 Faster R-CNN,配置如下:

  • ResNet101 backbone
  • 多尺度训练和测试
  • 数据增强(亮度、对比度、饱和度、色调、随机灰度)
  • 不使用垂直和水平翻转

使用了定制的 maskrcnn_benchmark

使用所有训练图像训练检测模型,并通过 Public Leaderboard 分数进行验证。

书名分类器

为了了解测试数据图像分布的趋势,我训练了一个模型来使用训练数据估计书籍的标题。

训练模型的准确率约为 99%。

然后我估计了测试数据中每张图像的书名。以下是测试数据中每张图像的书名估计结果:

  count  book title
      4  100241706
      0  100249371
     46  100249376
     60  100249416
      0  100249476
      9  100249537
    209  200003076
    550  200003967
      1  200004148
      0  200005598
    497  200006663
    178  200014685
    818  200014740
     95  200015779
      0  200021637
      9  200021644
     18  200021660
      2  200021712
    177  200021763
      0  200021802
     21  200021851
      0  200021853
    157  200021869
      0  200021925
     88  200022050
   1210       brsk
      9       hnsd
      1       umgy

基于此结果,我使用了上述前 5 个书名(brsk, 200014740, 200003967, 200006663, 200003076)进行本地验证。

同时,通过提交省略特定书名的识别结果,我确认了 Public 和 Private 测试数据之间几乎没有偏差。

分类

集成 5 个分类模型(硬投票)。

验证策略

数据集按书名划分为训练集和验证集。

生成 2 种模式的训练数据集:

  • 验证集:book_title=200015779,
同比赛其他方案