自AlexNet[1]横空出世,在ImageNet[2]竞赛中取得62.5%的top-1准确率,超越SIFT+FVs[3]类传统算法8.2%之后,深度神经网络就成为了图像分类领域的主要算法,先后出现了VGG[4]、ResNet[5]、Inception[6~8]、DenseNet[9]等。2019年,谷歌提出的EfficientNet[10]更是将网络结构设计由人工推向了自动搜索时代。2020年,谷歌提出的VisionTransformer(ViT)[13],将自然语言处理领域的Transformer结构引入图像分类,将图像分类带入了Transformer时代。
VGG[4]由谷歌Deepmind和英国牛津大学的研究人员联合开发,使用多个级联的3x3小卷积核代替了7x7的大卷积核,在保证感受野的基础上大大降低了网络的参数量。VGG[4]的另外一个贡献是通过加深网络结构提升了分类精度,在ImageNet[2]数据集上使用19层网络,top-1分类准确率达到了74.5%。
2015年,当时还在微软从事研究的何凯明、孙剑等人提出了ResNet[5],通过引入图1的残差结构,有效解决了深层神经网络训练过程中的梯度消失和梯度爆炸问题,同时解决了随着网络加深,分类精度越来越差的“退化”问题。首次在ImageNet[2]数据集上使用152层的超深网络获得了较好的分类精度,top-1准确率达到了78.57%,获得了2015年ImageNet[2]竞赛分类赛道的第一名。
图1残差模块
在以何凯明为代表的一些研究人员通过加深网络深度提升分类效果的同时,谷歌的一些研究人员在网络宽度上也取得了较大进展,先后在2014~2016年提出了InceptionV1~V4网络结构。InceptionV1[5]网络的设计思路主要是使用稠密组件(densecomponents)近似网络中的稀疏结构,为此,谷歌的研究人员剔除了图2所示的Inception基本结构。这种结构使用了多个并行的卷积和最大池化,在近似稀疏结构的同时,还引入了多尺度特性。InceptionV2[6]在借鉴VGG[4]等论文,使用多个级联3x3卷积代替5x5卷积的基础上,还加入了BatchNormalization(BN)对数据进行归一化,top-1准确率达到了74.8%。InceptionV3[6]提出了一种可有效降低网络参数量的方法,即非对称分解(AsymmetricFactorization),非对称分解就是将nxn卷积分解为1xn和nx1的级联形式,top-1准确率达到了78.8%。InceptionV4则将ResNet[5]中使用的残差结构融入Inception模块,极大加快了训练速度,,top-1准确率达到了80.10%。
图2Inception模块
在网络深度和宽度的研究取得长足进步之后,一些研究人员开始考虑通过网络特征的重用,提升网络的分类效果,比较典型的就是2017年CVPR的最佳论文DenseNet[9]。ResNet[5]证明了残差短连接能有效解决梯度消失和网络退化问题,如图3所示DenseNet借鉴了这一思想,将短连接使用在了所有层之间,对于一个L层的网络的第N层,前N-1层的特征在第N层实现了特征融合,同时,第N层的特征也提供给后边L-N层进行特征融合。特征重用避免了无效特征的重复提取,在提升网络的分类精度的同时,也有效降低了网络的参数量。DenseNet[9]在ImageNet[2]数据集上的top-1准确率达到了79.2%
NASNet[10]开启了神经网络搜索时代,实现了网络结构的设计的自动化,但其缺陷也比较明显。NASNet[10]的搜索空间仍然是人为设定的,是一种基于给定搜索空间的网络结构搜索算法。针对这一问题,FAIR何凯明团队2020年提出了用于设计搜索空间的方法,RegNet[12]论文中将网络结构搜索空间也作为网络结构设计的一部分。如图6所示,通过不断优化网络搜索空间,同时获得了最佳的搜索空间和该搜索空间中的最佳网络结构。
2020年,谷歌提出ViT(VisionTransformer)[13],将NLP(NaturalLanguageProcessing)领域使用的Transformer引入视觉领域,将图像分为分辨率相同的若干子块,每一个子块作为NLP领域的一个字符(token)进行处理。Transformer自注意力机制的引入,极大提高了网络的分类效果,在ImageNet[2]数据集上的top-1准确率达到了88.55%。
图3DenseNet
图4RNN控制器
图5NASNet基础卷积结构单元
图6
近年来,注意力机制被广泛引入细粒度分类领域,出现了如SE[14]、GE[15]、CBAM[16]、SK[17]等注意力模块,这些模块被融入各种网络结构中,有效地提升了分类效果。
使用SE[14]模块实现通道注意力机制之后,Momenta又在2018年提出了空间注意力模块GE[15]。如图8所示,GE[15]使用自定义的Gather和Excite模块实现了空间感受野区域的注意力机制。
2018年,还出现了另一个同时融合通道、空间注意力的注意力模块,即CBAM[16]。如图9所示,对于任意一个FeatureMap,CBAM模块先后提取通道和空间注意力信息,并分别跟相应的FeatureMap进行加权,同时实现了通道和空间注意力。
通道、空间注意力被相继引入之后,SK[17]模块又将多尺度特征这一计算机视觉领域常用的方法引入了注意力机制。如图10所示,SK模块首先使用两个不同大小的卷积核处理FeatureMap,再将结果相加,再经过一系列操作,得到了每一路的权值a和b,使用a和b对每一路FeatureMap加权后,得到最终的FeatureMap。
图7SE(Squeeze&Excitation)模块
图8GE(Gather&Excite)模块
图9CBAM模块
图10SK模块
6月19日,CVPR2022在美国举行,CVPR作为全球计算机视觉三大顶级会议之一,被誉为计算机视觉领域的“奥斯卡”。汽车之家团队在作为大会研讨会内容之一的,在Kaggle上举办的CVPR2022Sorghum-100CultivarIdentification-FGVC9(高粱品种鉴定细粒度图像分类)挑战赛中取得了第二名的成绩,实现了公司历史上的突破。
细粒度图像分类一直是计算机视觉领域的研究热点,主要难点在于细粒度标注图像的类间距离小,类内距离大导致部分图像的类别靠人眼都很难分辨,比如,此次FGVC9的比赛中,高粱品种鉴定和植物标本识别竞赛的数据需要很强的专业知识才能判定图像所属类别。如图11所示,两个圈内的同样颜色的样本之间的距离称为类内距,不同颜色的样本之间的距离称为类间距。
图11类内距和类间距
本次比赛中,主要使用了RegNetY-16.0GF作为主干网,大分辨率图像对精度的提升起到了很大作用,当将图像分辨率由512增大到960之后,精度在私榜上由84.1提升到了91.9。因此,我们相信,大分辨率图像对于细粒度分类效果提升有较大帮助。
图12SCDA
图13注意力区域随机裁剪
图14注意力区域随机裁剪
图15随机裁剪流程图
数据增强方面,除了常见的左右翻转、随机裁剪之外,还使用了谷歌在CVPR2019论文中提出的AutoAugment[19],该方法通过参数搜索,获得了在常见数据集,如CIFAR、ImageNet等,上的最佳增强策略。
PseudoLabel作为一种常用的自监督学习方法,也被广泛用于图像分类领域。每次训练结束之后,都使用训练出的最佳模型,对测试集进行预测,将预测结果作为标注信息,加入训练集,不断循环,直到测试集准确率没有明显提升。本次比赛中,加入PseudoLabel之后,私榜上精度由91.9提升到了95.1。
TestTimeAugmentation(TTA)作为一种常见的测试技巧,也被应用到了本次比赛中。数据增强除了在训练阶段可以用来避免过拟合,提升模型泛化性之外,在测试阶段也可以有效提升模型精度。
Dropout作为一种有效防止过拟合的方法,在比赛的最后阶段,dropout的加入使模型精度在私榜上由95.1提升到95.3。
Ensemble也是一种竞赛常见技巧,将不同模型预测的embedding进行加权,再使用加权后的embedding进行预测,也可以有效提升模型精度。本次比赛的最后阶段,Ensemble的加入使模型精度在私榜上由95.3提升到95.9。
汽车之家作为汽车互联网垂直领域的领军企业,一直深耕如车系识别等汽车领域的人工智能算法。车系识别目前支持识别4000多个车系,涵盖奔驰、宝马、奥迪等绝大部分常见车系,应用于主APP的拍照识车、二手车/论坛信息校验等多个内部应用。
本次比赛结束之后,车系识别模型也使用了比赛中使用的RegNetY-16.0GF,准确率提升了3.25%。如图17所示,模型的注意力区域主要集中在车头位置,因此对于同一车系内部,车头外观相差较大的车系,识别准确率较差;同样,对于不同车系,车头外观较相似的车系,也容易混淆。即图11中提到的,细粒度分类问题中常见的,类间距离小,类内距离大问题。