返回列表

3rd Place Solution

346. Severstal; Steel Defect Detection | severstal-steel-defect-detection

开始: 2019-07-25 结束: 2019-10-24 缺陷检测 数据算法赛
第3名解决方案

第3名解决方案

作者:ChienYiChi (金牌大师)
比赛:Severstal: Steel Defect Detection

很抱歉这么晚才分享。首先感谢主办方 Severstal 和 Kaggle 提供了一个非常有趣且充满挑战的比赛。我希望所有的解决方案都能为钢材缺陷检测带来一些帮助和思路。感谢所有在这个比赛中分享想法的人。没有你们的帮助,我不可能获得这枚金牌。我必须感谢 @hengck23!在尝试了很多模型流程后,我发现他的方案是最简洁的,我的最终方案就是基于此建立的。

分数

获奖提交:

Public LB Private LB
0.91863 0.90765

最佳提交:

Public LB Private LB
0.91824 0.90934

摘要

基础模型:Unet, Feature Pyramid Network (FPN)
编码器:efficientnet-b3, efficientnet-b4, efficientnet-b5, se-resnext50
损失函数:Focal Loss
优化器:Adam, 初始学习率 = 0.0005
学习率调度器:ReduceLROnPlateau (factor=0.5, patience=3, cooldown=3, min_lr=1e-8)
图像尺寸:训练 256x800,推理 256x1600
图像增强:水平翻转,垂直翻转
采样器:加权采样器

集成模型:
我简单地平均了9个模型的输出概率来获得最终的掩码概率,没有使用TTA(测试时增强)。

  1. FPN + efficientnet-b5 + 特征图拼接
  2. FPN + efficientnet-b4
  3. Unet + efficientnet-b4,在训练数据中加入伪标签数据
  4. Unet + efficientnet-b4,使用重度图像增强进行训练
  5. Unet + efficientnet-b4 + SCSE 层
  6. Unet + efficientnet-b4 + SCSE 层,在训练数据中加入伪标签数据
  7. Unet + efficientnet-b4 + Mish 层
  8. Unet + efficientnet-b3
  9. Unet + se-resnext50

阈值
标签阈值:0.7, 0.7, 0.6, 0.6
像素阈值:0.4, 0.4, 0.4, 0.4

模型流程

Model Pipeline

我认为帮助我赢得金牌的关键点

  • 使用代码流程 https://github.com/PavelOstyakov/pipeline
  • 确保集成中模型的多样性
  • 使用单阶段模型流程防止我单独训练分类模型并调整过多的超参数。简单就是最好的。
同比赛其他方案