首页 > 其他分享 >天池:铝型材表面瑕疵识别笔记

天池:铝型材表面瑕疵识别笔记

时间:2022-10-27 13:05:30浏览次数:89  
标签:1.00 铝型材 瑕疵 实验 文件夹 0.99 0.95 天池 0.92


内容时间:9月18日

实验结果

使用Kaggle猫狗分类的代码,即使用三个深度学习网络ResNet50, InceptionV3, Xception提取图片特征,然后使用神经网络DNN分类,验证集显示过拟合。本地精度0.93~0.95,​​在线精度0.8845​​。

天池:铝型材表面瑕疵识别笔记_过拟合

         precision    recall  f1-score   support
0 1.00 0.83 0.91 6
1 0.72 0.84 0.78 25
2 0.88 1.00 0.93 7
3 0.74 0.77 0.75 26
4 0.92 0.92 0.92 13
5 1.00 1.00 1.00 8
6 0.99 0.99 0.99 205
7 1.00 1.00 1.00 5
8 0.98 1.00 0.99 65
9 1.00 0.68 0.81 19
10 0.92 0.95 0.93 37
11 1.00 1.00 1.00 12
avg / total 0.95 0.95 0.95 428

分析与设计

样本是不平衡的,(其他类所有的140张图片)

天池:铝型材表面瑕疵识别笔记_子类_02

其中,其他文件夹所含类别数目如下:

天池:铝型材表面瑕疵识别笔记_数据_03

本basemodel 关于不平衡使用的是调整损失函数的权重(class_weight)。关于kears flow如何处理文件夹.子文件夹.图片,调试可得:

天池:铝型材表面瑕疵识别笔记_数据_04

整理后的sample文件夹如下,除train_gen外的子文件夹下均是相应图片:

天池:铝型材表面瑕疵识别笔记_过拟合_05

后续操作

不一定可行

  • 生成样本,数据扩充,并使其平衡;
  • 其他类子类和11基本类一起处理,然后合并其他类子类;
  • 选择合适阈值,低于均判为其他类;
  • 特征选择或降维
  • 使用单模型,fine-tune

​代码位置​

内容时间:9月19日

对于其他文件夹,划伤、打白点、气泡、碰凹、纹粗、铝屑大于等于10个样本,将其移出参与分类(位于代码tools中),

天池:铝型材表面瑕疵识别笔记_子类_06


包括正常类,一共17类。数量分布如下。

天池:铝型材表面瑕疵识别笔记_过拟合_07


数据增强(如何合理的增强)到每类100。

天池:铝型材表面瑕疵识别笔记_过拟合_08

分类结果在训练集上过拟合,阈值设置的为0.4(似乎太大),本地验证集上不稳定在0.88,线上精度较差,0.7867。使用lightgbm本地精度0.80。(下图验证比0.2)

天池:铝型材表面瑕疵识别笔记_数据_09

​实验2代码位置​

总结

好像没啥要说的,实验是在个人笔记本上跑的,之所以没用微调等是因为曾经对一个实验用Inception V3微调,跑到一般显存(应该是)不足崩了?,所有没有良好的实验设备不建议做数据驱动的DL,现实还是很重要的。实验2是有问题的,因为我是先增强后分成训练集和验证集的;应该改为先分成训练集和验证集再增强,代码位于上述链接tools.py中,近来LOL上分,不再修正。对于实验2,建议读者运行时全部核查重构。好好学习,天天向上?


标签:1.00,铝型材,瑕疵,实验,文件夹,0.99,0.95,天池,0.92
From: https://blog.51cto.com/u_15847885/5800823

相关文章

  • 天池零样本:禁止使用外部图片数据/预训练模型进行竞赛的原因
    既然是零样本分类,在测试集中并不希望出现参与训练的类别实例,如果我们使用预训练模型,比如基于Imagenet数据集的,难保测试集中的骡子没有在ImageNet中出现过,外部数据同理。如果......
  • 天池:零样本目标识别新手笔记
    2018之江杯全球人工智能大赛-零样本图像目标识别简单数据分析jupyter:​​github地址​​数据预处理将label_list和class_wordembeddings合并,处理后结果如​​标签\t特征​​......
  • 天池:零样本目标识别新手笔记2
    所用思路和​​上一个​​差不多,本篇基于天池论坛的这篇文章:Keras多分类联合训练+欧式距离迁移映射,并做了自己的处理。线上精度0.0905。没有构造如​​'non_1'​​的特征,直......