基于注意力特征融合的SqueezeNet细粒度图像分类模型

李明悦 何乐生 雷晨 龚友梅

引用本文:
Citation:

基于注意力特征融合的SqueezeNet细粒度图像分类模型

    作者简介: 李明悦(1996−),女,重庆人,硕士生,主要研究图像和信号处理. E-mail:675890692@qq.com;
    通讯作者: 何乐生, he_lesheng@263.net
  • 中图分类号: TP391.4

Fine-grained image classification model based on attention feature fusion with SqueezeNet

    Corresponding author: HE Le-sheng, he_lesheng@263.net ;
  • CLC number: TP391.4

  • 摘要: 针对现有细粒度图像分类算法普遍存在的模型结构复杂、参数多、分类准确率较低等问题,提出一种注意力特征融合的SqueezeNet细粒度图像分类模型. 通过对现有细粒度图像分类算法和轻量级卷积神经网络的分析,首先使用3个典型的预训练轻量级卷积神经网络,对其微调后在公开的细粒度图像数据集上进行验证,经比较后选择了模型性能最佳的SqueezeNet作为图像的特征提取器;然后将两个具有注意力机制的卷积模块嵌入至SqueezeNet网络的每个Fire模块;接着提取出改进后的SqueezeNet的中间层特征进行双线性融合形成新的注意力特征图,与网络的全局特征再融合后分类;最后通过实验对比和可视化分析,网络嵌入Convolution Block Attention Module(CBAM)模块的分类准确率在鸟类、汽车、飞机数据集上依次提高了8.96%、4.89%和5.85%,嵌入Squeeze-and-Excitation(SE)模块的分类准确率依次提高了9.81%、4.52%和2.30%,且新模型在参数量、运行效率等方面比现有算法更具优势.
  • 图 1  本文方法总框图

    Figure 1.  The general block diagram of the method in this paper

    图 2  SqueezeNet网络结构

    Figure 2.  The network structure of SqueezeNet

    图 3  Fire模块引入注意力机制

    Figure 3.  The Fire module introduced attention mechanism

    图 4  细粒度图像分类网络的总体结构

    Figure 4.  The overall structure of fine - grained image classification network

    图 5  网络参数量和内存对比

    Figure 5.  Network performance comparison on parameters and memory

    图 6  注意力机制嵌入效果对比

    Figure 6.  The effects comparison of the attention embedding mechanism

    表 1  CUB-200-2011实验结果

    Table 1.  Experimental results of CUB-200-2011

    轻量级CNN准确率/%运行时间/s
    SqueezeNet 74.40 40.47
    MobileNet 78.24 43.69
    ShuffleNet 69.30 40.08
    下载: 导出CSV

    表 2  Stanford Cars实验结果

    Table 2.  Experimental results of Stanford Cars

    轻量级CNN准确率/%运行时间/s
    SqueezeNet86.3124.18
    MobileNet89.4336.16
    ShuffleNet79.9237.70
    下载: 导出CSV

    表 3  FGVC-Aircraft Benchmark实验结果

    Table 3.  Experimental results of FGVC-Aircraft

    轻量级CNN准确率/%运行时间/s
    SqueezeNet82.0025.09
    MobileNet78.0334.28
    ShuffleNet84.7336.14
    下载: 导出CSV

    表 4  改进前后模型的准确率对比

    Table 4.  Comparison of the model accuracy before and after improvement %

    嵌入方式鸟类数据
    飞机类数据
    汽车数据集
    74.40 82.00 86.31
    嵌入CBAM 83.36 87.85 91.20
    嵌入SE 84.21 84.30 90.83
    下载: 导出CSV

    表 5  各模型的实验结果对比

    Table 5.  The experimental results comparison of each model

    CNN模型鸟类准确率/%汽车准确率/%飞机准确率/%模型内存/MB
    VGG-19[18] 77.80 85.70 80.50 534
    ResNet-101[19] 83.50 91.20 87.20 207
    InceptionV3[14] 83.70 90.80 87.40 103
    B-CNN[5] 84.10 91.30 84.10 -
    嵌入CBAM+特征融合(本文) 83.36 91.20 87.85 15
    嵌入SE+特征融合(本文) 84.21 90.83 84.30 15
    表中“-”表示无数据
    下载: 导出CSV
  • [1] Felzenszwalb P F, Girshick R B, McAllester D, et al. Object detection with discriminatively trained part-based models[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010, 32(9): 1 627-1 645. DOI:  10.1109/TPAMI.2009.167.
    [2] Lin D, Shen X, Lu C, et al. Deep LAC: Deep localization, alignment and classification for fine-grained recognition[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Piscataway, NJ, USA, 2015: 1 666-1 674.
    [3] Zhang N, Donahue J, GirshickI R, et al. Part-based R-CNNs for fine-grained fategory detection[C]// Proceedings of the 2014 European Conference on Computer Vision, Zurich, Switzerland, 2014: 834-849.
    [4] Wei X S, Xie C W, Wu J, et al. Mask-CNN: Localizing parts and selecting descriptors for fine-grained bird species categorization[J]. Pattern Recognition, 2018, 76: 1 147-1 150.
    [5] Lin T Y, Roychowdhury A, Maji S. Bilinear CNN models for fine-grained visual recognition[C]// Proceeding of IEEE International Conference on Computer Vision, Santiago, Chile, 2015: 1 449-1 457.
    [6] Xiao T J, Xu Y C, Yang K Y, et al. The application of two-level attention models in deep convolutional neural network for fine-grained image classification[C]//Proceedings of the 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Boston, USA, 2015: 842-850.
    [7] Wang A L, Wang M H, Jiang K Y, et al. A dual neural architecture combined SqueezeNet with OctConv for LiDAR data classification[J]. Sensors (Basel, Switzerland), 2019, 19(22): 665-668.
    [8] Yu D H, Xu Q, Guo H T, et al. An efficient and lightweight convolutional neural network for remote sensing image scene classification[J]. Sensors (Basel, Switzerland), 2020, 20(7): 341-346.
    [9] Thachan S. 基于ShuffleNet的人脸识别[D]. 杭州: 浙江大学, 2019.

    Thachan S. Facial recognition based on ShuffleNet[D]. Hangzhou: Zhejiang University, 2019.
    [10] Szegedy C, Vanhoucke V, Ioffe S, et al. Rethinking the inception architecture for computer vision[C]// IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Las Vegas, USA, 2016: 2 818-2 826.
    [11] Fu J L Zheng H L, Tao M. Look closer to see better: Recurrent attention convolutional neural network for fine-grained image recognition[C]//IEEE Conference on Computer Vision & Pattern Recognition. Honolulu, HI, USA, 2017: 4 438-4 446.
    [12] Woo S, Park J, Lee J Y, et al. CBAM: Convolutional block attention module[C]// The European Conference on Computer Vision (ECCV), Korean, 2018: 1-17.
    [13] Hu J, Shen L, Albanie S, et al. Squeeze-and-excitation networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 32(4): 1-4.
    [14] Hu T, Qi H. See better before looking closer: Weakly supervised data augmentation network for fine-grained visual classification[J]. Computer Science-Computer Vision and Pattern Recogrition. arXiv: 1901. 09891v1, 2019.
    [15] 刘冰, 李瑞麟, 封举富. 深度度量学习综述[J]. 智能系统学报, 2019, 14(6): 1 064-1 072. Liu B, Li R L, Feng J F. A brief introduction to deep metric learning[J]. CAAI Transactions on Intelligent Systems, 2019, 14(6): 1 064-1 072.
    [16] 麻陈飞. 基于深度卷积神经网络的细粒度图像分类研究[D]. 杭州: 浙江理工大学, 2019.

    Ma C F. Study on the classification of fine-grained images based on deep convolutional neural network[D]. Hangzhou: Zhejiang Sci-Tech University, 2019.
    [17] Xin D J, Chen Y W, Li J J. Fine-grained butterfly classification in ecological images using squeeze-and-excitation and spatial attention modules[J]. Applied Sciences, 2020, 10(5): 1 145-1 148.
    [18] Sun M, Yuan Y, Zhou F, et al. Multi-attention multi-class constraint for fine-grained image recognition[J]. Computer Vision, 2018(6): 834-850.
    [19] Trishen M, Mahess R, Somveer K, et al. Plant leaf recognition using shape features and colour histogram with K-nearest neighbour classifiers[J]. Procedia Computer Science, 2015, 58(8): 552-557.
    [20] Wang H R, Zhong J, Lin Z G, et al. Stacked squeeze-and-excitation recurrent residual network for visual-semantic matching[J]. Pattern Recognition, 2020, 105(10): 328-331.
  • [1] 刘鹏飞张伟峰何克晶 . 差分进化算法优化的图注意力网络集成研究. 云南大学学报(自然科学版), 2022, 4(1): 1-8. doi: 10.7540/j.ynu.P00152
    [2] 田阳武浩 . 基于双层注意力机制的对偶正则化评分预测. 云南大学学报(自然科学版), 2021, 43(4): 681-689. doi: 10.7540/j.ynu.20200398
    [3] 任思睿黄铭 . 基于改进的长短期记忆网络的调制识别算法. 云南大学学报(自然科学版), 2021, 43(1): 39-45. doi: 10.7540/j.ynu.20200075
    [4] 闫菁冯早吴建德马军 . 排水管道堵塞故障的声诊断方法研究*. 云南大学学报(自然科学版), 2018, 40(3): 431-439. doi: 10.7540/j.ynu.20170316
    [5] 梅礼晔郭晓鹏张俊华郭正红肖佳 . 基于空间金字塔池化的深度卷积神经网络多聚焦图像融合. 云南大学学报(自然科学版), 2019, 41(1): 18-27. doi: 10.7540/j.ynu.20170670
    [6] 刘鹏远李彤孙宝林蒋国银 . 细粒度同异步偏序权限建模角色访问控制模型. 云南大学学报(自然科学版), 2014, 36(4): 504-511. doi: 10.7540/j.ynu.20130603
    [7] 姬晨郭延哺金宸段云浩李维华 . 一种基于卷积神经网络的跨领域情感分析. 云南大学学报(自然科学版), 2019, 41(2): 253-258. doi: 10.7540/j.ynu.20180050
    [8] 邱爽聂仁灿周冬明李兴叶 . 自归一化卷积神经网络的人脸识别方法. 云南大学学报(自然科学版), 2018, 40(4): 659-664. doi: 10.7540/j.ynu.20170436
    [9] 贾时银周冬明聂仁灿赵东风 . 脉冲耦合神经网络模型参数优化及图像分割. 云南大学学报(自然科学版), 2010, 32(5): 521-525 .
    [10] 胡芳周冬明聂仁灿赵东风 . 脉冲耦合神经网络模型参数估计及其图像分割. 云南大学学报(自然科学版), 2010, 32(6): 652-656 .
    [11] 刘玉明周冬明赵东风 . 基于细胞神经网络超混沌特性的图像加密. 云南大学学报(自然科学版), 2007, 29(4): 355-358.
    [12] 李淼周冬明刘琰煜谢诗冬王长城卫依雪 . 结合深度残差神经网络与Retinex理论的低照度图像增强. 云南大学学报(自然科学版), 2021, 43(4): 690-699. doi: 10.7540/j.ynu.20200421
    [13] 杨知欧文浩刘晓燕李闯费香泽赵斌滨刘龙马潇 . 基于LinkNet卷积神经网络的高分辨率遥感影像水体信息提取. 云南大学学报(自然科学版), 2019, 41(5): 932-938. doi: 10.7540/j.ynu.20180782
    [14] 丁斋生周冬明聂仁灿侯瑞超刘栋刘琰煜 . 基于视觉显著性与残差网络的红外-可见光图像融合方法. 云南大学学报(自然科学版), 2019, 41(6): 1108-1117. doi: 10.7540/j.ynu.20180692
    [15] 卢康贺西平安笑笑贺升平尼涛 . 基于TSVM的多特征融合超声金属防伪识别. 云南大学学报(自然科学版), 2017, 39(4): 584-589. doi: 10.7540/j.ynu.20160548
    [16] 唐菁敏王超 . 基于中继节点机制的分簇数据融合算法*. 云南大学学报(自然科学版), 2016, 38(5): 703-707. doi: 10.7540/j.ynu.20150785
    [17] 程祥磊鲍慈光彭莉 . 人工神经网络预测离子色谱分离条件. 云南大学学报(自然科学版), 2003, 25(1): 61-64.
    [18] 马晓敏王新 . 基于遗传算法的BP神经网络改进. 云南大学学报(自然科学版), 2013, 35(S2): 34-. doi: 10.7540/j.ynu.2013b4
    [19] 李肖肖聂仁灿周冬明谢汝生 . 图像增强的拉普拉斯多尺度医学图像融合算法. 云南大学学报(自然科学版), 2019, 41(5): 908-917. doi: 10.7540/j.ynu.20180840
    [20] 贾莉江涛马宁孟家豪 . 一种融合性格线索的微博情感分类. 云南大学学报(自然科学版), 2020, 42(5): 870-876. doi: 10.7540/j.ynu.20190598
  • 加载中
图(6)表(5)
计量
  • 文章访问数:  410
  • HTML全文浏览量:  455
  • PDF下载量:  25
  • 被引次数: 0
出版历程
  • 收稿日期:  2020-10-22
  • 录用日期:  2021-01-26
  • 网络出版日期:  2021-04-10
  • 刊出日期:  2021-09-15

基于注意力特征融合的SqueezeNet细粒度图像分类模型

    作者简介:李明悦(1996−),女,重庆人,硕士生,主要研究图像和信号处理. E-mail:675890692@qq.com
    通讯作者: 何乐生, he_lesheng@263.net
  • 云南大学 信息学院,云南 昆明 650500

摘要: 针对现有细粒度图像分类算法普遍存在的模型结构复杂、参数多、分类准确率较低等问题,提出一种注意力特征融合的SqueezeNet细粒度图像分类模型. 通过对现有细粒度图像分类算法和轻量级卷积神经网络的分析,首先使用3个典型的预训练轻量级卷积神经网络,对其微调后在公开的细粒度图像数据集上进行验证,经比较后选择了模型性能最佳的SqueezeNet作为图像的特征提取器;然后将两个具有注意力机制的卷积模块嵌入至SqueezeNet网络的每个Fire模块;接着提取出改进后的SqueezeNet的中间层特征进行双线性融合形成新的注意力特征图,与网络的全局特征再融合后分类;最后通过实验对比和可视化分析,网络嵌入Convolution Block Attention Module(CBAM)模块的分类准确率在鸟类、汽车、飞机数据集上依次提高了8.96%、4.89%和5.85%,嵌入Squeeze-and-Excitation(SE)模块的分类准确率依次提高了9.81%、4.52%和2.30%,且新模型在参数量、运行效率等方面比现有算法更具优势.

English Abstract

  • 细粒度图像分类问题的目标是对子类进行识别,如区分不同种类的狗、鸟、飞机等,是计算机视觉领域一项具有挑战性的研究课题. 细粒度图像分类难点在于子类别间细微的类间差异和较大的内类差异. 传统的分类算法不得不依赖于大量的人工标注信息,但随着深度学习的发展,基于深度卷积特征的算法被大量提出,深度卷积神经网络为细粒度图像分类带来了许多新的机遇,促进了该领域的快速发展.

    文献[1]提出的姿态规范化细粒度识别框架,首先使用可变形部件模型通过语义部件的特征点计算物体级别和部件级别的包围盒,然后对语义部位图像块进行姿态对齐操作. 文献[2]提出的Deep LAC模型将语义部件定位、对齐和分类3个组件统一到一个卷积神经网络模型中. Zhang等[3]提出的PS-CNN (Part-Stacked CNN)也是一个利用语义部件进行细粒度分类的框架. Wei等[4]提出的Mask-CNN框架在细粒度图像语义部件定位和分类方面都取得了较好的结果. 以上的分类方法需要利用物体标注框、部位标注点等额外的人工标注信息. 基于弱监督学习的细粒度图像分类模型能有效克服大量标注带来的成本. 如Lin等[5]提出的双线性模型,该模型包括两个超分辨率测试序列(Visual Geometry Group,VGG)网络,其中一个VGG用于定位物体,另一个VGG用于对定位物体进行特征提取,但一个VGG网络有近一百多万个参数,使模型计算量变大. 文献[6]提出的用深度残差网络提取细粒度图像的卷积特征,然后挑选强区分性区域,并额外引入了特征金字塔网络强化学习,虽实现了较高的分类准确率,但是网络结构复杂,并且在挑选强区分性区域时增加了网络的计算消耗.

    无论是基于强监督的算法还是基于弱监督分类算法,为了让图像分类模型获得更好的性能,卷积神经网络的层数在不断的增加,模型参数越多,计算越复杂,降低了算法的运行效率. 为了让深度学习应用到实际项目中去,精简传统卷积网络模型,一些机构开始研发轻量级网络,例如由UC Berkeley和Stanford研究人员共同完成的轻量级网络SqueezeNet[7]仅占4.9 MB的存储空间,是AlexNet的$\dfrac{1}{510} $;Google团队通过缩减卷积核的尺寸设计出了轻量级小型网络MobileNet[8];Face++团队提出的基于通道混洗(channel shuffle)的ShuffleNet[9]解决了传统卷积带来的信息流通不畅问题,提升了传统卷积网络的使用效率.

    因此,本文提出用轻量级卷积神经网络代替以往细粒度图像分类模型中的特征提取网络. 首先使用在ImageNet预训练好的3个典型的轻量级卷积网络在常用的3个公开的细粒度数据上进行验证,通过对网络的微调得出了3种轻量级模型的平均识别率、模型参数量、模型内存大小和运行速度,其中SqueezeNet模型运行速度快、参数最少,使用SqueezeNet作为特征提取网络能解决现有细粒度算法中模型庞大、结构复杂等问题;然后针对网络分类时存在识别图像判别性特征较差的问题,将Convolution Block Attention Module(CBAM)和Squeeze-and-Excitation(SE)这两个注意力机制模块嵌入到SqueezeNet结构中,使改进后的网络自动识别到更具区分的判别性区域;接着将嵌入了注意力机制的Fire4和Fire8的特征进行融合得到注意力特征图,与网络最后一层特征图进行双线性融合,提高模型对具有判别性特征的识别能力;最后将本文的模型在3个训练集上训练至收敛后,最终在测试集上嵌入CBAM模块的分识别率分别提高了8.96%、4.89%和5.85%,嵌入SE模块分别提高了9.81%、4.52%、和2.30%. 将本文的模型进一步与InceptionV3[10]等其他细粒度算法进行比较,得出本文提出的模型能达到目前优秀细粒度图像分类算法的识别率的同时,模型内存只有15 MB,参数量只有200万左右,在性能上有一定的优势.

    • 本文首先将输入的原始图像进行预处理. 预处理包括将图像裁剪到 $ 448\times 448 $ 像素,并对裁剪后的图像进行旋转、缩放等几何变换,然后将预处理后的图像送入本文改进后的SqueezeNet进行特征提取. 为了提升网络对细粒度图像局部判别性区域的识别能力,在原始SqueezeNet的每个Fire模块中嵌入注意力机制模块,原始Fire模块的特征矩阵会经过注意力机制模块并预测出一定的注意区域. 注意力机制模块中生成的注意力特征与网络最后一层卷积层输出的全局特征进行双线性融合,以此来增强特征,最后经过Softmax层进行分类,与Ground Truth作Loss计算,使模型不断迭代优化网络. 本文方法的算法总框图如图1所示.

      图  1  本文方法总框图

      Figure 1.  The general block diagram of the method in this paper

    • 轻量级卷积神经网络是当前深度学习发展的重要研究方向之一,目的是为了解决如何将神经网络部署到嵌入式设备的问题. 目前主流的轻量级卷积神经网络有SqueezeNet,MobileNet和ShuffleNet以及它们的变种. MobileNet采用了传统网络中的Group思想,即限制滤波器的卷积计算只针对特定的Group中的输入降低卷积计算量,提高了移动端前向计算的速度. ShuffleNet采用了channel shuffle操作解决信息流通不畅问题,增强了模型的学习能力.

      SqueezeNet最主要的结构就是类似Inception网络结构的Fire模块(Fire module). 一个Fire module 包含一个squeeze 卷积层和一个expand卷积层,如图2所示. SqueezeNet模型首先将3×3卷积核替换为1×1卷积核,然后减小输入到3×3卷积核的输入通道数,尽可能将下采样放在网络后面的层中. SqueezeNet还采用了平均池化层代替传统卷积神经网络中的全连接层,有效减少了模型的参数. 正是以上的优点,使得SqueezeNet计算效率提高,Fire模块也能很好地提高识别性能.

      图  2  SqueezeNet网络结构

      Figure 2.  The network structure of SqueezeNet

    • 在细粒度图像分类中,不同类别之间的差异是非常细微的,包含具有判别性的区分信息往往是存在于图像的局部区域中. 例如区分赫里氏带鹀和金帝沙鹀,鸟类专家可能会通过鸟嘴巴的形状、腹部、羽毛的颜色;区分红色奥迪和红色雪弗兰,可能需要通过车牌、车灯样式等;区分两架不同种类的飞机可能需要通过飞机的机头、机尾,甚至是飞机窗口的数量. 因此对于细粒度分类问题,识别到具有区分度的局部特征是至关重要的.

      在识别细粒度图像局部细节方面,Lin等[5]提出的双线性网络(Bilinear-CNN)是最早引入注意力机制的模型,利用2个相同的卷积神经网络分支关注不同区域的特征,卷积网络A用于对识别目标的部件进行定位,网络B用于对网络A检测到的部件与局部区域的位置进行特征提取,通过向量外积的方式聚合2个分支的特征得到最后的特征表示. Fu等提出循环注意力网络(Residual Attention Networks)[11],采用一个编解码结构的注意力模块,对中间特征图通过Enconder-Decoder方式得到一个3维的attention map,如下所示:

      $ H\left(x\right)=\left(1+M\left(x\right)\right)⨂F\left(x\right), $

      其中,$ H\left(x\right) $ 表示经过网络分支后输出的特征图,掩膜分支的输出特征图为 $ M\left(x\right) $$ F\left(x\right) $ 是由一个深层的卷积神经网络结构来学习拟合,学习的是输出和输入之间的残差结果.

      从式(1)可以看出以往细粒度算法中的注意力方法通常是输入特征图的所有通道进行融合. 而本文使用的注意力方式是将注意力机制模块嵌入到原网络的结构中. 本文提出的第1种嵌入方式是使用CBAM [12],该模块是一个注意模块的前馈卷积神经网络. 为减少计算量,CBAM不直接计算3维的attention map,将CBAM嵌入原SqueezeNet的每个Fire模块之后,原始Fire模块中的特征图会分别经过全局最大池化和全局平均池化,输出两个通道又分别经过多层感知机,将多层感知机输出的特征进行逐元素相加,再用sigmoid函数激活,生成最终的通道注意力(channel attention)特征图 ${M}_{\rm{c}}\left(F\right)$,如下所示:

      $ {M}_{{\rm{c}}}\left(F\right)=\sigma \left({f}_{\rm{mlp}}\left({f}_{\rm{AP}}\left(F\right)\right)+{f}_{\rm{mlp}}\left({f}_{\rm{MP}}\left(F\right)\right)\right), $

      其中, $ F $ 表示原始Fire模块输出的特征,函数 $ {f}_{\rm{AP}}(\cdot ) $$ {f}_{\rm{MP}}(\cdot ) $ 分别表示平均池化和最大池化,$ {f}_{\rm{mlp}}(\cdot ) $ 表示两个全连接层,$ \sigma (\cdot ) $ 是sigmoid函数.

      通道注意力特征图 $ {M}_{{\rm{c}}}\left(F\right) $ 经过一个全局最大池化和全局平均池化,然后将两个结果基于通道做特征拼接操作,用一个7×7的卷积核降维至1个通道,再经过sigmoid生成空间注意力(spatial attention)特征图,即CBAM模块生成的最终的注意力特征,如下所示:

      $ {M}_{{\rm{s}}}\left(F\right)=\sigma \left({f}^{7*7}\left(\left[{f}_{\rm{AP}}\left({M}_{{\rm{c}}}\left(F\right)\right);{f}_{\rm{MP}}\left({M}_{{\rm{c}}}\left(F\right)\right)\right]\right)\right), $

      其中,${f}^{7*7}(\cdot )$ 是一个7×7的卷积核的卷积运算.

      本文提出的第2种嵌入方式是将SE(Squeeze-and-Excitation)模块[13]嵌入到SqueezeNet的Fire模块,其生成注意力特征的过程如下:

      步骤 1 原始Fire模块层的特征矩阵会经过SE模块,将一个通道上的空间特征编码为一个全局特征,采用全局平均池化输出该层 $ c $ 个特征图的数值分布情况,如下所示:

      $ {z}_{c}={F}_{\rm{GAP}}\left({u}_{c}\right), $

      其中 ,$ {u}_{c} $ 表示第 $ c $ 个通道的特征,$ {F}_{\rm{GAP}}(\cdot ) $ 表示全局平均池化.

      步骤 2 采用

      $ s=\sigma \left(g\left({z}_{c},W\right)\right) $

      sigmoid形式的门机制让网络学习各个通道间的非线性关系. 其中 $ W $ 是网络的权重,函数 $ g(\cdot ) $ 是池化函数,$\sigma (\cdot)$是sigmoid函数 .

      步骤 3 为了降低模型复杂度以及提高泛化能力,采用包含两个全连接的瓶颈(bottleneck)结构将特征降维,降维系数r是超参数,本文将r设为12,然后用ReLU函数激活,最后将学习到的各个通道的激活值乘以原始特征得到最终的注意力特征图y

      $ y = {s_c} \otimes {u_c}. $

      加入SE结构的注意力机制可以让模型更加关注信息量最大的通道特征,抑制那些不重要的通道特征;CBAM结构的注意力则是既考虑到不同像素的重要性,又考虑到了同一通道不同位置像素的重要性. 这两种注意力机制模块都可以无缝集成到现有的卷积神经网络里,与网络一起进行端到端的训练,并且只会增加很小的计算消耗. 嵌入注意机制的Fire模块结构如图3所示. 图3(a)是在Fire后嵌入CBAM模块,是本文的第1种嵌入方式,图3(b)是本文提出的第2种嵌入方式. 将原始的SqueezeNet中的Fire模块分别替换成由图3两种方式改进的Fire模块,使网络整个具有注意力机制,对原始的特征进行权值重标定.

      图  3  Fire模块引入注意力机制

      Figure 3.  The Fire module introduced attention mechanism

    • 双线性网络只考虑了最后一层卷积特征作为特征表示,这对于细粒度图像分类来说是不够的,因为中间卷积特征同样包含物体局部特征属性,这使得有利于细粒度图像分类的信息丢失.

      图4所示,为了增强网络对局部判别性特征的识别能力,本文提出将SqueezeNet原始的Fire模块替换成基于注意力机制的Fire模块. 首先将改进后的Fire4和Fire8输出的特征提取出来,采用双线性池化的方式得到一个融合后的新的注意力特征图;然后将新的注意力特征图与网络最后输出的全局特征按元素相乘后,得到局部特征图;最后再进行全局平均池化及拼接,得到一个新的张量,作为线性分类层的输入进行分类. 注意力机制融合的具体过程如下:

      图  4  细粒度图像分类网络的总体结构

      Figure 4.  The overall structure of fine - grained image classification network

      步骤 1 首先设 $ {F}_{{\rm{a1}}} $$ {F}_{{\rm{a2}}} $ 分别是带有注意力机制的Fire4层和带有注意力机制的Fire8层的输出特征,将特征 $ {F}_{{\rm{a1}}} $ 的所有通道的值形成一个1$ \times {D}_{1} $ 的向量 $ {{\boldsymbol{m}}}_{{\rm{a1}}} $,特征 $ {C}_{{\rm{a2}}} $ 的所有通道的值形成1$ \times {D}_{2} $ 的向量 $ {{\boldsymbol{m}}}_{{\rm{a2}}} $,按

      $ G({{\boldsymbol{m}}}_{a1},{{\boldsymbol{m}}}_{a2}) ={{{\boldsymbol{m}}}_{a1}}^{{\rm{T}}}{{\boldsymbol{m}}}_{a2} $

      计算两个Fire层融合后的融合特征.

      步骤 2 采用全局平均池化或全局最大池化函数对融合特征按公式(5~7)汇聚成一个新的注意力特征:

      $ {F}_{A}=\sum _{l}G({{\boldsymbol{m}}}_{a1},{{\boldsymbol{m}}}_{a2}). $

      步骤 3 设 $ {F}_{{\rm{last}}\_{\rm{conv}}} $ 是嵌入注意力机制的SqueezeNet网络的最一层卷积层输出特征,即Conv10,返回步骤1将这两个特征的所有通道的值形成一个1×D的向量,分别为 $ {{\boldsymbol{m}}}_{{\rm{last}}\_{\rm{conv}}} $$ {{\boldsymbol{m}}}_{\rm{A}} $,按

      $ G({{\boldsymbol{m}}}_{{\rm{last}}\_{\rm{conv}}},{{\boldsymbol{m}}}_{A}) ={{{\boldsymbol{m}}}_{{\rm{last}}\_{\rm{conv}}}}^{\rm{T}}{{\boldsymbol{m}}}_{\rm{A}} $

      计算融合后的融合特征.

      步骤 4 返回步骤2,按式(8)汇聚成一个新的特征,记为 $ \xi \left(I\right) $. 将特征 $ \xi \left(I\right) $ 转换成一个新的向量作为分类函数的输入,如下所示:

      $ x={F}_{\rm{vec}}\left(\xi \left(I\right)\right). $

      步骤 5 最后由softmax层以概率的形式输出所属的类别判断:

      $ y={F}_{\rm{sign}}\left(x\right)\sqrt{\left|x\right|}, $

      $ z=y/{\left|\left|y\right|\right|}_{2}. $

    • 实验用到的数据集是3个公开的细粒度数据集. CUB-200-2011鸟类数据集包括200种鸟类,其中有5994张训练图像和5794张测试图像[14]. Stanford Cars汽车数据集包含196种车辆,训练集有8144张,测试集有8041张,关键特征包括车辆制造商、款式、生产日期. FGVC-Aircraft Benchmark飞机数据集有102种不同的飞机,一共10200张飞机图像[15].

    • 实验使用Windows系统和基于Pytorch框架,在NVIDIA GeForce RTX2080 GPU上进行.

      实验1:先将典型的轻量级卷积神经网络在大规模数据集ImageNet上进行训练,得到的预训练模型迁移到细粒度数据上继续训练. 预训练网络训练时,先把每张图片缩放到500×500像素,然后随机裁剪448×448像素并进行数据增强后输入到网络中,对预训练网络进行微调:采用随机梯度下降(Stochastic Gradient Descent,SGD)对网络进行权值优化更新[16],即每次用一小批样本计算. 根据本文算法中的数据特征,选取学习速率为0.001. 对于ShuffleNet、MobileNet两个网络采用全连接层分类,SqueezeNet使用自适应平均池化函数进行分类. 测试时将中心裁剪448×448像素的图片输入网络中,并对预训练模型进行微调,最后选取网络性能最佳的SqueezeNet模型进行改进,进一步提高识别率.

      实验2:将本文改进的SqueezeNet模型又一次在细粒度数据集上进行验证. 训练过程中先把每张图片缩放到500×500像素,然后随机裁剪448×448像素输入到网络中,每张图像均进行归一化操作,损失函数采用Softmax-Loss,网络权值优化更新依然采用SGD优化器,经过衰减步长次迭代后更新学习速率 $ \gamma $ 乘以衰减系数 $ \alpha $. 基础学习速率设为0.01,衰减系数设为0.1,动量(momentum)设为0.9,迭代次数设为200次[17]. 测试时将中心裁剪448×448像素的图片输入网络中,最后将识别结果与改进前的网络进行对比,并与其他细粒度模型进行网络性能的对比.

      本文使用分类准确率、模型参数量、模型内存大小,以及在测试集上消耗的时间作为评价指标. 为了实验结果的准确性,采用十折交叉验证(10-fold cross-validation)并取平均值作为最后的结果.

    • 本文首先使用预训练好的轻量级网络在3个常用的细粒度数据集上进行实验验证,为了分析网络的性能,将3种轻量级卷积神经网络在测试集上的识别率、运行时间做了如表13详细的对比,其中运行时间指的是模型在测试集上运行的速度. 参数量和模型内存大小的对比如图5所示.

      轻量级CNN准确率/%运行时间/s
      SqueezeNet 74.40 40.47
      MobileNet 78.24 43.69
      ShuffleNet 69.30 40.08

      表 1  CUB-200-2011实验结果

      Table 1.  Experimental results of CUB-200-2011

      轻量级CNN准确率/%运行时间/s
      SqueezeNet86.3124.18
      MobileNet89.4336.16
      ShuffleNet79.9237.70

      表 2  Stanford Cars实验结果

      Table 2.  Experimental results of Stanford Cars

      轻量级CNN准确率/%运行时间/s
      SqueezeNet82.0025.09
      MobileNet78.0334.28
      ShuffleNet84.7336.14

      表 3  FGVC-Aircraft Benchmark实验结果

      Table 3.  Experimental results of FGVC-Aircraft

      图  5  网络参数量和内存对比

      Figure 5.  Network performance comparison on parameters and memory

      表13的结果中可以看出,轻量级卷积神经网络也可以用于细粒度图像的分类识别,而且SqueezeNet在飞机类和汽车类数据测试集上的运行时间都在30 s以内,网络运行效率更快. 从图5可以看出,SqueezeNet网络相比于其他两种轻量级卷积网络,以及相较于如VGG、ResNet这种传统的深度卷积神经网络都具有模型性能上的优势,只有约100万个参数,模型大小也是最轻量的. 但未改进的SqueezeNet在细粒度数据集上的分类准确率还比较低,这是因为细粒度的分类难点在于具有判别性的特征存在于图像的局部细节中,直接使用典型的卷积网络不能较好地克服这个难点,因此本文的第2个实验将模型性能较好的SqueezeNet进行改进,在原网络的Fire模块中嵌入了两种注意力机制模块,第1次嵌入CBAM注意力模块,第2次嵌入SE模块,将改进后的网络在3个细粒度数据集上进行实验验证和对比.

      表4展现了网络模型改进前后在3个数据集的测试集上分类准确率的结果比较. 改进后的SqueezeNet细粒度图像分类模型,由于对原始SqueezeNet网络进行了注意力模块的嵌入,让模型能够定位到更具有判别性的局部区域. 受双线性模型的启发,对注意力模块的特征进行了双线性融合,增强了对图像特征的识别能力. 因此,因此改进后的模型在鸟类、飞机类和汽车类数据集上取得了相对较好的效果,嵌入CBAM模块,准确率在3个数据集上依次提高了8.96%、4.89%、5.85%;嵌入SE模块,准确率依次提高了9.81%、4.52%、2.30%. 图6的热力图效果对比展示了SqueezeNet网络嵌入注意力机制后,模型能更加集中到目标对象更具有判别力的区域. 如图6第1列对鸟的识别中,原网络能识别到鸟的整个躯体,但加入注意力机制后,CBAM模块能帮助网络定位到鸟尾部区域,SE模块能定位到尾部和头部眼睛的区域;第2列对汽车识别中,嵌入的CBAM模块能帮助模型更好地识别到车灯上;在飞机识别中,两个注意力机制模块不仅增强了模型对机头、机尾的识别能力,CBAM模块还能识别到飞机的机翼部分,体现了本文的改进方法能够提高模型强化注意力特征区域的能力,而特征融合也能进一步增强图像的特征,提高模型对特征的识别能力.

      嵌入方式鸟类数据
      飞机类数据
      汽车数据集
      74.40 82.00 86.31
      嵌入CBAM 83.36 87.85 91.20
      嵌入SE 84.21 84.30 90.83

      表 4  改进前后模型的准确率对比

      Table 4.  Comparison of the model accuracy before and after improvement %

      表5是不同的细粒度图像分类算法在3个细粒度数据集上分类准确率的结果比较. 从表5可以看出,本文提出的嵌入注意力机制模块和特征融合的SqueezeNet细粒度图像分类模型,在3个细粒度数据集上的识别准确率上取得了相对较好的分类准确率. 其中,嵌入CBAM模块和特征融合后,模型在鸟类、汽车类、飞机类数据上的准确率分别达到了83.36%、91.20%、87.85%;嵌入SE模块,模型的分类准确率分别是84.21%、90.83%、84.30%,均高于VGG-19网络,并且本文提出的基于注意力特征融合的SqueezeNet模型在与其他深度网络的识别率相当的情况下,改进后的模型内存大小只有15 MB,只是IinceptionV3网络的$\dfrac{1}{7} $.

      CNN模型鸟类准确率/%汽车准确率/%飞机准确率/%模型内存/MB
      VGG-19[18] 77.80 85.70 80.50 534
      ResNet-101[19] 83.50 91.20 87.20 207
      InceptionV3[14] 83.70 90.80 87.40 103
      B-CNN[5] 84.10 91.30 84.10 -
      嵌入CBAM+特征融合(本文) 83.36 91.20 87.85 15
      嵌入SE+特征融合(本文) 84.21 90.83 84.30 15
      表中“-”表示无数据

      表 5  各模型的实验结果对比

      Table 5.  The experimental results comparison of each model

      图  6  注意力机制嵌入效果对比

      Figure 6.  The effects comparison of the attention embedding mechanism

    • 本文首先提出使用3种典型的轻量级卷积神经网络用于细粒度图像分类,并进行了两次实验. 实验1通过对预训练的网络模型进行微调,得出轻量级网络能用于细粒度图像分类,并且选择了模型参数、内存大小和运行速度都比其他神经网络更有优势的SqueezeNet作为图像特征提取网络,可以解决现有细粒度图像分类算法用传统较深的卷积网络识别时带来的参数多、模型庞大等问题. 针对细粒度识别的难点进行改进,在原SqueezeNet结构中嵌入了两种注意力机制模块,增强网络对识别对象的局部判别性区域的能力,并将嵌入注意力机制的网络的中间层输出的特征图与网络的最后一层输出的特征图进行特征融合,全局平均池化后分类. 实验结果证明了改进后的网络相比于改进前的网络,其准确率有了明显的提高,并且与其他细粒度算法相比,本文提出的细粒度分类模型大小只有15 MB,属于较轻量的分类模型,未来的研究方向将考虑用目标检测中多尺度[20]的方法,提高网络的特征提取能力.

参考文献 (20)

目录

    /

    返回文章
    返回