Kaggle数据竞赛记录 - Steel Defect Detection

钢材缺陷分类检测及标记

这个是去年的比赛,过了很久了才来记录一下。
附上IEEE-CIS Fraud Detection的总结

赛题理解

kaggle链接
竞赛主要目的是钢材图片进行缺陷检测分类及标记,图像识别的机器学习问题,使用到了google的开源框架,EfficientNet

评估标准:是Dice coefficient戴斯相似性系数 (倾向于保守预计,错判比漏判损失严重)

结果:0.90798,0.91685

数据介绍

train_images, test_images, train.csv(注:现在看到的这个表和原来的表结构不太一样了)
图片大小是(256, 1600),缺陷类别有4种,
Pixels(图像标签)→ 原图片的缺陷是没有标注,要用这个圈出来,表示方法是用一组组起点+长度表示

Kaggle数据竞赛记录 - Steel Defect Detection_第1张图片原来的表结构Kaggle数据竞赛记录 - Steel Defect Detection_第2张图片现在的表结构

过程思路

一、数据分析和处理,主要是做图片数据增强,使用albu 库的随机水平翻转 RandomHorizonalFlip

二、 模型建立,这里有2步,因为这个赛题是要找出有缺陷的图片并标记出来是哪种缺陷,所以第一步是检测图片有没有缺陷,毕竟,没有缺陷就没有必要往下走了,另外,评估标准是Dice coefficient戴斯相似性系数,也就是如果一个没有缺陷的图片被标记有缺陷,对分数的损失比一个有缺陷的图片没有被找出来更大。所以分类模型更倾向于没有图片没有缺陷

  • 建立分类模型:检测这个图片有没有缺陷,在前面的图片分析种,大部分图片是没有锈斑的,这种就没有没有必要去做一个分割网络,因为没有loss,容易出问题

    分别用EfficientNet-b2,EfficientNet-b3,并且将这2个模型进行一个简单的融合,这是一个多分类任务,5种 (包含无锈斑)

    • 输入部分:①原图② RandomCrop 获取256*800 一半size的图片
      参数:batch size=64,优化器=AdamW ,学习率=0.003
  • 分割模型(segmentation_models_pytorch):对于被检测出有锈斑的图片,对每个像素点做分类任务

    用到FPN: 一种高效的CNN特征提取方法,输入为任意大小的图片,输出为各尺度的 feature map。

    其中 bottleneck layer是EfficientNet-b3,ENCODER = ‘efficientnet-b3’

你可能感兴趣的:(项目经历)