病虫害图像识别赛题笔记——科大讯飞2021届AI开发者大赛算法赛答辩"/>
叶菜病虫害图像识别赛题笔记——科大讯飞2021届AI开发者大赛算法赛答辩
文章目录
- 叶菜病虫害图像识别
- 数据集
- 图像增强
- 3组
- 2组
- 1组
- 3组
- 总体方案
- stage1:二分类+细粒度
- 一和二三
- 二和三
- stage2:transformer+半监督
- stage3:模型集成
- Tricks Summary
- 类别不平衡
- 样本数量较少
- 输入尺度变化大
- 其他
- Future
- 主干网络
- 细粒度
- 半监督学习
- 问题
- 二组
- 模型选择
- 测试
- Future
- 问题
- 三组
- 模型选择
- Tricks
- 问题
叶菜病虫害图像识别
数据集
- 训练集1103,测试集210,训练集较少
- 轻微类别不平衡,类间区分度低,类内差异大
- 样本分辨率差异大,背景复杂
- 图片的均值与方差,其绿色通道均值偏大
图像增强
3组
- 归一化
- 网格随机排序,强迫模型关注随机区域,利于细粒度分类
- 细粒度随机丢弃
2组
- 使用OpenCV对训练集进行主要目标检测,减少干扰信息,裁剪得到新的图片(涨了4个点)
- 裁剪后的图像同类的两张进行拼接,按照0.9:1进行混合相加的图像作为新的训练数据。扩增到3000多张
- 在线增强随机翻转等等
- 参照样本高宽比,最后选择H=960,W=732输入网络
1组
- 输入图像大,识别效果好
- 数据增强randaug(N=3,M=9),适用于细粒度分类,涨点明显
3组
总体方案
stage1:二分类+细粒度
一和二三
- 原因:第一类相比二三类难以区分,所以把二三合成一个类别,进行二分类
- 模型:SE-ResNetXt 101
- SE区分不同通道的重要性,从而帮助细粒度特征更好识别
- tricks:
- 五折交叉验证训练模型
- 大量的数据增强
- 数据重采样以保证类别平衡
- 1080 * 1080分辨率输入
二和三
- 原因:病变区域占整张图片比例较小,二、三两种种疾病差别不大,所以进行细粒度分类
- 模型:ResNet 101为主干的MMAL-Net
- 由注意力机制裁剪出目标图像区域
- 由目标图像区域提取差异较大的特征进行区分(热力图)
- 人工标注病害区域
- tricks:
- 数据增强
- Label smooth防止过拟合
- 人脸分类中的损失函数A-softmax
stage2:transformer+半监督
- 原因:训练集样本数量较少
- 模型:Swin Transformer
- 建立长距离依赖关系,关注全局信息
- 相比CNN需要更大的数据集进行训练。因此使用stage 1的模型生成部分伪标签(Pesudo Lable),对swin进行适当训练后,再进行伪标签的自更新
stage3:模型集成
- 先对上述三个模型进行TTA测试增强(随机放大,随机旋转翻转)
- 再对他们的结果进行结合。把SE-ResNet与swing Transformer的结果进行合并,与MMAL-Net进行加权平均
- 最后进行集成消融试验
Tricks Summary
类别不平衡
- 数据重采样
样本数量较少
- 大量数据增强防止过拟合
- 伪标签扩大样本数
- K折交叉验证增强鲁棒性
输入尺度变化大
- 统计选择合适的输入分辨率
- TTA多尺度预测增强鲁棒性
其他
- Label Smooth
- 细粒度识别
- Vision Transformer
- 预热+余弦退火+周期重启的学习率设置
Future
主干网络
LR-Net,CoTNet,BoTNet
细粒度
TransFG、AFTrans
半监督学习
Pseudo-Label,LPA
问题
- 细粒度网络还算容易训练
- 热力图,梯度图证明网络用处(细粒度)
- 半监督训练(第一批测试集无Groung Truth)。Pseudo-Label伪标签涨点明显
- CNN算法是监督算法,有标签。半监督,将测试集扩充到数据集(无标签)
- 精度和召回率都很重要
- 端到端指的是输入是原始数据,输出是最后的结果;非端到端的输入端不是直接的原始数据,而是在原始数据中提取的特征。但是提取特征很困难,所以出现了端到端网络,特征可以自己去学习,特征提取融入到算法当中,不需要人来干预。
二组
模型选择
ResNet-50 IBNA,相比ResNet-50增加的计算量不多,性能有部分提升,速度较快
测试
测试过程使用一次TTA,裁剪后的测试图片的测试结果+原始测试图片垂直翻转后的测试结果,按5:4相加
Future
- 先训练一个性能好但复杂的模型,然后使用知识蒸馏获取一个精度与速度达到平衡的模型
- 使用GAN进行数据增广
问题
- 可以把类内或类间的图片进行拼接然后贴标签,然后做预训练
- 数据集处理很重要
三组
模型选择
ResNet50与EfficientNet B3融合(权重0.5与1),13folds。模型融合涨点明显
Tricks
- Label Smooth
- 伪标签
- 硬标签:易于获得。丢失类内、类间关联;过拟合;对噪声敏感;增加鲁棒、泛化风险
- 软标签:更强的泛化能力;携带更多的信息;对层级数据、噪声标签、long-tail(少数类即头类占用大部分数据,而大多数类尾类只有少量的数据)相对鲁棒。难以获得
- 迁移学习不适合,梯度爆炸
问题
- 13folds运算量下降,但是准确度提高
更多推荐
叶菜病虫害图像识别赛题笔记——科大讯飞2021届AI开发者大赛算法赛答辩
发布评论