本文转载自DeepBlue深兰科技;个人转载仅做知识储备用。
导读
近日,在计算机视觉和模式识别领域的三大*会议之一CVPR上,深兰科学院的两支团队在FGVC8 (CVPR2021)中包揽了植物病理识别挑战赛的冠军和亚军,这也是深兰在该赛事中连续三年问鼎。今年该挑战赛共有来自全球的626支团队参加角逐,竞争异常激烈。
FGVC全称为Fine-Grained Visual Categorization(细粒度图像分类),今年是举办的第8届比赛,不同于传统的广义上的分类任务,FGVC的挑战致力于子类别的划分,需要分类的对象之间更加相似,例如区分不同的鸟类、不同的植物、不同的日用品等。
冠军方案解读
任务说明
该任务是要识别苹果树叶是否有疾病以及相应的疾病种类(同一个叶子可能有多种疾病),该任务的难点主要包括:
-
可能存在脏数据,人工也难以判别导致gt错误(采用软标签减少对模型的影响);
-
多标签数据的严重缺少,最少的类别与最多的类别数据量,比例达到1:50以上(采用cutmix、mosaic、class balance等方法解决);
……
软标签(soft label)
训练一个5折交叉验证模型(efficientnetv2),如果label=1 & pred_score < 0.7,我们将gt label改为0.3(仅用于train-folds)。
……
多标签数据扩充
因为该任务是多标签任务,但多标签数据远远少于单标签数据,因此需要扩充多标签数据,因直接使用类别均衡会导致模型过拟合多标签数据。
1. cutmix
在常规的cutmix中, loss采用以下方式计算:
loss = lam * loss_func(outputs, labels) + (1-lam) * loss(outputs, mix_labels)
但在该多标签任务中, 可以认为健康的叶子和scab疾病的叶子cutmix后就是scab疾病,因此并不能采用上述loss的计算方式。
如下图所示是 scab 和 frog_eye_leaf_spot两种单标签疾病的叶子cutmix后的得到scab frog_eye_leaf_spot 多标签的数据。
2. mosaic
将检测任务中的mosaic用于多标签图片的生成中。
如下图所示是scab + scab + scab frog_eye_leaf_spot + complex 混合后得到的scab frog_eye_leaf_spot complex的多标签数据。
数据增广
RandomCrop
Flip
brightness
contrast
ShiftScaleRotate
OpticalDistortion
GridDistortion
IAAPiecewiseAffine
Cutout
CoarseDropout
其他
resnet50(5-folds) + resnext50_32x4d(5-folds)
TTA(flip, centerCrop)
类别均衡(只在最后3个epoch使用, 防止过拟合多标签数据)
label_smooth
384x576
Warmup
CosineAnnealingLR
AdamW
……
进行中的GAN
由于时间及计算资源的限制,该方案仍有较大完善空间, 但这是团队在有限条件下采用的最适合该任务的多标签数据扩充方式。
可以采用GAN的方式将健康的叶子转变成多种单标签疾病, 比如healthy->disease_A 和 healthy->disease_B,然后就可以通过mixup(disease_A, disease_B)的方式得到多标签数据disease_A disease_B。
如下图所示(单标签图片引用自LeafGAN):
FGVC是指对属于同一基础类别的图像进行更加细致的子类划分,深兰科技已将该技术运用到了实际场景中。以深兰AI工业监测应用为例,细粒度图像分类技术已经实现了零件表面粗糙度超标识别、机加工毛刺识别、线切割过切识别,以及零件碰伤、折叠、开裂等复杂环境下的监测识别。
另外,向大家推荐正在进行的:柑橘病虫害识别挑战赛,奖金10万人民币,正在进行中。
http://link.52cv.net/GhK