深度解析-深兰科技夺冠CVPR 2019细粒度图像分类挑战赛
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
深度解析|深兰科技夺冠CVPR 2019细粒度图像分类挑战赛
导读
近日,深兰科技DeepBlueAI团队在CVPR 2019 Cassava Disease Classification挑战赛中荣获冠军。
此次挑战赛共有来自全球88个团队参与,提交了超过1300份方案。
CVPR是由IEEE举办的一年一度的计算机视觉和模式识别领域的三大顶级会议之一,会议现场,其各分类赛事冠军团队的解决方案分批在布告栏进行了公示。
▲图左为DeepBlueAI团队夺冠的解决方案
细粒度图像分类是指对属于同一基础类别的图像进行更加细致的子类划分,以深兰AI工业监测应用为例,细粒度图像分类技术已经实现了零件表面粗糙度超标识别、机加工毛刺识别、线切割过切识别,以及零件碰伤、折叠、开裂等复杂环境下的监测识别。
而此次深兰科技DeepBlueAI团队的冠军方案,将在工业上进一步提高不同物体的识别精度,特别是对区分相似类别的物体具有较大的意义。
例如在高速公路上识别不同车辆的型号、在野外识别不同物种、在商店购物时识别不同的商品,细粒度图像分析在这些任务里面都扮演着极为重要的角色。
DeepBlueAI团队罗志鹏解析冠军方案
1.FGVC简介
FGVC全称为Fine-Grained Visual Categorization(细粒度图像分类),即区分不同的动物和植物、汽车和摩托车模型、建筑风格等,是机器视觉社区刚刚开始解决的最有趣和最有用的开放问题之一。
细粒度图像分类在于基本的分类识别(对象识别)和个体识别(人脸识别,生物识别)之间的连续性。
相似类别之间的视觉区别通常非常小,因此很难用当今的通用识别算法来解决。
今年是FGVC举办的第六届比赛,往届比较著名的比赛有诸如iNaturalist和iMaterialist,前者侧重于区分自然界不同的生物,后者则侧重于区分不同的人造物体。
不同于传统的广义上的分类任务,FGVC 的挑战致力于子类别的划分,需要分类的对象之间更加相似,例如区分不同的鸟类、不同的植物、不同的日用品等。
CVPR 2019在洛杉矶长滩举行,该workshop也作为其一部分如期召开,共包含十个挑战赛,每个都代表了细粒度视觉分类在某个细分领域的挑战,Cassava Disease Classification挑战赛便是其中之一。
2.赛题介绍
Cassava Disease Classification挑战赛是一个根据木薯的叶子区分不同种类的木薯疾病的任务。
Cassava译为木薯,因其能够承受恶劣的环境,成为非洲第二大碳水化合物。
作为一种主要的安全粮食作物,在撒哈拉以南非洲,至少80%的小农家庭种植木薯,而病毒性疾病是造成低产量的主要原因。
在这次比赛中,主办方引入一个包含5种类别的木薯叶疾病的数据集,该数据集源于在乌干达定期调
查中收集到的9436张标记图像,主要根据农民在自家田地里拍摄的图片,由国家作物资源研究所(NaCRRI)与Makarere大学的人工智能实验室共同对其标注而来。
数据集为木薯植株的叶子图像,包括9,436张带注释的图像和12,595张未标记的图像。
参与者可以选择使用未标记的图像作为额外的训练数据,目标是学习一个模型,使用训练数据中的图像将给定的图像分类为这4个疾病类别或1个健康类别。
3.团队成绩
获得CVPR 2019 Cassava Disease Classification挑战赛冠军。
4.题目特点及常用方法
细粒度图像分类(Fine-grained Image Categorization),又被称作子类别图像分类(Sub-category Recognition)。
其目的是对属于同一基础类别的图像进行更加细致的子类划分,但由于子类别间细微的类间差异以及较大的类内差异,与传统的图像分类任务相比,细粒度图像分类难度明显要大很多。
从下图中的木薯叶子可以看出,不同病变情况的叶子长相非常相似,此外同一类别由于姿态、背景以及拍摄角度的不同,也存在较大的类内差异。
细粒度图像的分类方法通常有两种,分别是基于强监督信息和仅使用弱监督信息。
前者需要使用对象的边界框和局部标注信息,后者仅使用类别标签。
Cassava Disease Classification是一种弱监督信息的细粒度识别,一般采用预训练模型Finetune,并结合训练技巧对模型精调。
5.实验模型:ResNet、DenseNet、SENet
ResNet是CNN历史上一个里程碑事件,模型深度达到了152层,这和之前CNN的层数完全不在一个量级上。
ResNet中的identity这条线类似一条电路上的短路(Shortcuts,Skip Connection),使得模型学习更加容易,深层可以直接得到浅层的网络特征。
DenseNet的原理不同于ResNet通过加深网络层数,以及Inception通过加宽网络宽度来提高模型识别能力,而是利用特征重用和类似ResNet的Bypass的方式,减少了网络参数和缓解了梯度消失的问题。
SENet提出了Sequeeze and Excitation Block,该模块与传统网络的最大区别在于其侧重于构建通道之间的依赖关系,利用Global Average Pooling来Sequeeze特征图,并用Excitation对前者进行非线性变换,最后再叠加到输入特征上。
该模块可以自适应地校准通道的相应特征,并且可以嵌入到现有的网络结构中,实现精度的提升。
6.模型训练与评测
由于训练集样本过少,对比分析后对输入数据采取VerticalFlip、HorizontalFilp、RandomRotate和RandomCrop的增强操作。
此外,还使用了RandomErasing和Cutout,方法会在原图随机选择一些矩形区域并改变该区域的像素值,通过这些数据增强的方式,训练集的图片会被不同程度的遮挡,这样可以进一步降低过拟合的风险并提高模型的鲁棒性。
同样,为了增强模型的鲁棒性减少过拟合,本次比赛我们利用5-Fold Cross Validation交叉验证,有效利用了有限的数据,并且评估结果能够尽可能接近模型在测试集上的表现。
使用Cross Validation之后,SE_ResNeXt50测试集准确率提升了0.01016,ResNet34测试集准确率提升了0.01142。
这次比赛中,我们还使用了Mixup和Label Smoothing的训练策略。
Mixup顾名思义就是将两张图片按一定比例融合起来作为输入,计算loss时,针对两张图片的标签分别进行,然后按比例加权求和。
Mixup 是一种抑制过拟合的策略,通过增加了一些数据上的扰动,提升了模型的泛化能力。
实验证明,该方式能将Top1准确率提高近一个百分点。
对于分类问题,常规做法时将类别换成One-Hot Vector。
由于标签是类别的One-Hot Vector,这样做易导致过拟合使得模型泛化能力下降;同时这种做法会将所属类别和非所属类别之间的差距尽可能大,因此很难调优模型。
为此,可以用Label Smoothing对标签进行平滑处理,软化One-Hot类型标签,使得计算损失函数时能有效抑制过拟合现象。
训练以Adam为Optimiser,学习率的设置为阶梯状,共四个取值,[3e-4,1e-4,1e-5,1e-6],设置patience为4来衰减学习率,即模型连续4个epoch在验证集上效果没有提升则衰减学习率,训练总的epcoh 在20次左右。
本实验使用的GPU为4卡2080Ti,并行训练一个模型,batchsize通常设为32,较大的模型根据实际情况适当减小。
模型在预测时采用了数据增强的方式Test Time Augmentation(TTA),即将样本图像进行多个不同的变换获得多个不同的预测结果,再将预测结果进行平均,提高精度。
本次实验SE_ResNeXt50经过10crop TTA 后,测试集准确率可以达到0.92251,然而完全不使用TTA仅有0.78211。
模型集成是算法比赛中常用的提高模型精度的方法,本次比赛我们训练了大量在ImageNet上表现优良的模型,其中表现较好的模型如下表所示、在采取多种融合方式之后,最终发现SE_ResNeXt50、
SE_ResNeXt101、SENet154以及DenseNet201按照归一化后权重的融合效果最好,在测试集上的准确率达到了0.92516。
模型测试集准确率
SE_ResNeXt50 0.92251
SE_ResNeXt101 0.92384
SENet154 0.92384
DenseNet201 0.91721
MobileNetV2 0.91601
ResNet152 0.91710
SE_ResNeXt50+SE_ResNeXt101+SENet154+DenseNet201 0.92516
本次比赛主办方提供了12,595张未带label的额外数据集,为了充分利用该数据集,利用在测试集表现最好的融合模型给这些数据集贴上伪标签,然后利用训练集和伪标签数据集训练模型。
为了防止模型在伪标签上过拟合,我们对伪标签采取了一定的筛选操作,思路是:用多个不同概率阈值的过滤所得到的伪标签,进行线下实验,看哪个阈值下的数据在线下的表现最好,就用通过该阈值筛选过滤出的数据,最终以0.95的阈值筛选出一半的数据作为添加到训练集的伪标签数据。
实验证明这种半监督的学习方法具有更强的泛化能力。
模型测试集准确率
Private Leaderboard
(Public Leaderboard)
SE_ResNeXt50 0.92251 0.93012
SE_ResNeXt50 with pseudo data 0.92195 0.93512
SE_ResNeXt101 0.92384 0.93134
SE_ResNeXt101 with pseudo data 0.92202 0.93409
SENet154 0.92384 0.93054
SE_ResNeXt154 with pseudo data 0.92283 0.93428
0.92516 0.93312
SE_ResNeXt50+SE_ResNeXt101+
SENet154+DenseNet201
SE_ResNeXt50+SE_ResNeXt101+
0.92401 0.93654
SENet154+DenseNet201
with pseudo data
7.进一步工作
我们所用的CNN网络都是现有的模型,没有根据比赛对网络结构本身调优和升级,因此根据任务优化模型结构是我们进一步的尝试点。
针对细粒度图像分类,MSRA有一个结论:分析该问题时图像的形态、轮廓特征远没细节纹理特征重要,而传统的CNN模型都是在构建轮廓特征,因此在构建神经网络时,应该更加精确地找到图像中最有区分度的子区域,然后再对这些区域采用高分辨率、精细化特征的方法,这样可以进一步提高细粒度图像分类的准确率。
另外,对数据本身我们可能需要做更多的工作,在任务初期没有做足够的探索性数据分析,例如数据的分布、类型、输入图像的尺寸等都是影响结果的因素,因此数据分析也是后面的一个尝试点。
参考文献:
[1] A.Krizhevsky,I.Sutskever,and G.E.Hinton.Imagenetclassification with deep convolutional neural networks.In Advances in neuralinformation processing systems,pages1097–1105,2012. [2] K.He,X.Zhang,S.Ren,and J.Sun.Deep residuallearning for image recognition.arXiv preprint arXiv:1512.03385,2015.
[3] K.Simonyan and A.Zisserman.Very deep convolutionalnetworks for large-scaleimage recognition.arXiv preprint arXiv:1409.1556,2014.
[4] C.Szegedy,W.Liu,Y.Jia,P.Sermanet,S.Reed,D.Anguelov,D.Erhan,V.Vanhoucke,and
A.Rabinovich.Going deeper withconvolutions.In Proceedings ofthe IEEE Conference on Computer Vision andPattern Recognition,pages 1–9,2015.
[5] R.Srivastava,K.Greff and J.Schmidhuber.TrainingVery Deep Networks.arXiv preprint
arXiv:1507.06228v2,2015.
[6] S.Hochreiter and J.Schmidhuber.Long short-termmemory.Neural Comput.,9(8):1735–
1780,Nov.1997.
[7] K.He,X.Zhang,S.Ren,and J.Sun.Identity Mappingsin Deep Residual Networks.arXiv preprint arXiv:1603.05027v3,2016.
[8] S.Xie,R.Girshick,P.Dollar,Z.Tu and K.He.Aggregated Residual Transformations for Deep Neural Networks.arXiv preprint arXiv:1611.05431v1,2016.
[9] G.Huang,Z.Liu,K.Q.Weinberger and L.Maaten.Densely Connected Convolutional
Networks.arXiv:1608.06993v3,2016.
[10] G.Huang,Y.Sun,Z.Liu,D.Sedra and K.Q.Weinberger.Deep Networks with Stochastic
Depth.arXiv:1603.09382v3,2016.
[11] N.Srivastava,G.Hinton,A.Krizhevsky,I.Sutskeverand R.Salakhutdinov.Dropout: A Simple Way to Prevent Neural Networks fromOverfitting.The Journal of Machine Learning Research 15(1)(2014) 1929–1958.
[12] A.Veit,M.Wilber and S.Belongie.Residual NetworksBehave Like Ensembles of Relatively Shallow Networks.arXiv:1605.06431v2,2016.
[13] Hu,J.,Shen,L.,Albanie,S.,Sun,G.,Wu,E.2017.Squeeze-and-Excitation Networks.arXiv e-prints arXiv:1709.01507.
[14] Szegedy C,Vanhoucke V,Ioffe S,et al.Rethinking theInception Architecture for Computer Vision[C]// Computer Vision and PatternRecognition.IEEE,2016:2818-2826.。