陈春芳,边小勇,费雄君,杨 博,张晓龙
1(武汉科技大学 计算机科学与技术学院,武汉 430065)2(武汉科技大学 大数据科学与工程研究院,武汉 430065)3(智能信息处理与实时工业系统湖北省重点实验室,武汉 430065)
随着卫星遥感、航空遥感图像数量的激增和图像分辨率的不断提高,如何有效地分类识别这些大规模遥感图像场景受到了广泛的关注,越来越成为了一个重要的研究课题,也是遥感图像处理领域的研究热点.但是,受不同时间、季节、地域、成像条件的影响,遥感图像在视点、外观、空间分辨率、光照和背景等方面具有丰富的变化[1],表现出高的类内多样性和低的类间差异.因此,遥感场景分类依然面临着严峻的挑战.
传统上,大量的手工局部图像描述子或者其组合方法[2-4]被提出并用于遥感场景分类,取得了较好的分类效果,尽管如此,但是这些传统手工特征方法需要耗费大量的时间.特别是场景变得更加复杂时,这些特征方法的描述能力变得极其有限.随后,若干无监督特征学习方法[5,6]被提出,其目标是从大量无标签数据中学习一组基函数(或滤波器)用于特征编码.通过从图像中学习特征而不是人工设计特征,可以获得更富判别的特征信息用于分类,典型的有k-means、PCA、稀疏编码[7]和自动编码器[8]等.最近,深度学习[9]在图像和视频分类识别中取得了长足的进展,获得了前所未有的分类性能(例如在ILSVRC图像数据集上的比赛冠军),这是因为深度学习是由深度神经网络架构组成、具有一般目的的强大学习能力的过程,而且是端到端的.可以自动学习输入数据的高级抽象特征,有助于发现数据的内在结构,有效地应用于语义级场景分类.这些方法包括稀疏自动编码(SAE)[10]、卷积神经网络(CNN)[11]、循环神经网络(RNN)[12]、长-短期记忆(LSTM)[13]等,在图像分割、分类和目标检测领域取得了好的性能.
近年来,多示例学习(MIL)[14,15]、弱监督学习(WSL)[16,17]以及弱监督多示例学习[18]被广泛地用于图像分类与标注、目标检测等领域.MIL作为一种新的机器学习方法,将若干示例装入一个个示例袋中进行学习,目前大多数MIL方法都假设示例已经给定,极大地限制了其实际应用.而WSL仅使用图像级标签进行学习,最早用于场景中若干对象的定位和检测.然而,这些MIL方法对示例提取关注较少,如何有效选择和提取语义示例?如前所述,复杂场景经常包括多个对象,它们有一定的相关性,共同描述一个场景的语义类别.从图1(a)可知,每一场景图像中都包含与场景语义类别相关的多个低级子概念.以图1(b)为例,“飞机场”场景可以包含“建筑物”,“跑道”和“飞机”等概念,针对此类情况,利用具有潜在语义信息的示例(区域)学习重要的子概念有助于区分场景语义类别.
图1 多示例子概念图Fig 1 Multi-instance with sub-concepts
针对上述问题,本文提出一种基于弱监督多示例子概念学习的遥感场景分类方法.首先通过弱监督定位网络定位图像区域,选取不重叠的具有潜在语义对象的区域作为示例,映射到特征图自动截取包含语义信息示例特征.然后,将示例特征输入多示例聚合网络.其中,嵌入一个子概念层对多示例进行学习.同时,受胶囊网络中动态路由的启发[19],改进了子概念的聚合方法,将有效挖掘示例-标签关系.最后,将弱监督定位网络和多示例聚合网络进行联合训练,获得更具判别性的分类模型,用于遥感场景分类.主要工作如下:1)基于弱监督的类响应图(Class-aware Response Map,CRM)定位多个包含潜在语义对象信息的区域,用作感兴趣示例;2)在多示例聚合网络中嵌入一个子概念层,学习示例与标签之间的关系;3)提出组合的损失函数对以上两个网络进行联合学习.
本节将遥感场景分类算法分为2大类,即传统特征描述子方法和基于深度学习的方法.此外,还介绍了多示例学习.
1)传统特征描述子方法.这一类特征方法可以概括为非深度学习类型,主流的特征描述子有LBP及其变形,BoVW、IFK、VLAD等编码的变换特征.Lazebnik等[2]将图像划分为若干个子区域并计算它们的直方图,然后计算直方图之间的空间匹配核,获得图像的空间金字塔表示,在几个场景数据集上获得更好的分类结果.Chen等[3]提出多尺度完备LBP,组合了LBP符号、均值和幅度算子,在地面使用和卫星场景上取得了不错的效果.Yang等[20]提出视觉单词袋模型(BoVW)来学习图像的字典表示,用于地面使用场景分类,取得了更优的结果.Perronnin等[21]提出改进的Fisher核(IFK),基于高斯混合模型建立图像的视觉词典,本质上是利用似然函数的梯度获得图像的Fisher表示.进一步,从字典或基函数学习方面,Cheng等[4]使用低级特征算子检测出部件,然后由3层感知机自动编码器训练若干个部件组成部件库partlets,接着基于神经网络提纯partlets,并计算部件的激活响应值,从而产生中级视觉元素表征图像,最后分类地面使用场景.Cheriyadat等[5]使用低级特征算子抽取特征,然后使用一种稀疏编码变种称之为k正交匹配追踪的方法计算特征的基底函数,并通过激活函数阈值得到稀疏特征集,将其池化后产生最终的特征表示,用于航空场景分类.Zhang等[6]预先使用显著性检测过程指导感兴趣图像块抽样,再输入到稀疏编码过程,学习到更好的特征信息.Li等[22]提出了一种低维度稠密特征编码的场景分类算法,采用主成分分析对新的特征降维并进行Fisher编码量化,进而实现遥感图像的低维度稠密特征表达.以上这些特征描述子都具有较好的特征表示能力,在多个航空或遥感场景分类领域取得了优异的性能.但是这些特征算子或变换子依然是中低级的,没有汇聚成语义特征信息.此外,人工调参需要消耗大量的成本.
2)基于深度学习的方法.近年来,深度学习在许多计算机视觉任务包括遥感场景分类上赢得了非凡的特征表达能力.Wang等[23]提出IORN模型,能够提取到旋转不变的特征信息,用于遥感图像场景分类.Cheng等[24]提出欧氏距离度量规则化项,联合分类损失误差进行训练,使得模型更富判别性,并在几个遥感场景数据集上进行验证.Wang等[25]提出ArcNet模型,利用LSTM生成循环注意力图,并将注意力图与CNN特征加权的方法对遥感场景进行分类.Wei等[26]使用卷积神经网络提取不同尺度的图像特征,将局部区域特征与全局区域特征叠加进行区域排名,有选择的使用区域特征进行图像分类.Yang等[27]提出来一种基于区域响应排名的特征表示方法,通过将某个卷积特征图的每个立方体像素视为一个图像区域,即感受野区域,进行区域特征排名用于图像分类.Oquab等[17]提出一种弱监督的方法,利用卷积神经网络预测目标对象位置,该方法不仅能进行图像分类还能定位对象区域.在此基础上,Zhou等[28]改进CNN网络中全局平均池化层,获得类激活图使CNN具有更加显著的定位能力,能够定位到图像的语义对象信息.进一步,Zhou等[29]使用类响应图刺激峰值出现,反向寻找语义对象的区域,且在示例分割上取得了较好的结果.Durand等[30]进一步提出多任务弱监督学习深度卷积神经网络,该方法基于全卷积神经网络加入类间池化和空间池化,能够实现目标定位和像素分割,但是在图像分类上没有明显提高.Xue等[31]等提出一种基于长短期记忆神经网络和卷积神经网络的融合深度神经网络室内场景识别方法,使用基于注意力机制的LSTM模型融合CNN模型进行分类.
3)多示例学习.在卷积神经网络的基础上,Wang等[15]提出了两种MIL框架用于图像分类,分别是示例级和嵌入级方法.示例级通过学习示例级分类器,聚合示例级分类器的响应来预测袋子标签;嵌入级通过学习示例袋的紧致特征向量表示,来解决示例袋分类问题.Ilse等[32]在基于嵌入级多示例的方法上加入了注意力模块,用于聚合多个示例特征,获得了较好的结果.随后,多类多示例学习方法被提出.Wu等[33]使用弱监督学习方法,基于对象建议区域和区域对应的类别关键词双重多示例学习框架联合学习进行图像分类与标注.Feng等[34]提出了一种端到端的深度多示例学习模型,直接使用卷积神经网络生成示例,并且嵌入子概念模块发掘示例与标签之间的关系.在文本和图像上达到了较好的精度.Sumbul等[35]将每幅图像划分成多个不重叠的局部示例区域,通过RNN网络提取图像特征并且获取示例之间的空间关系,再通过注意力机制获得示例与整个遥感图像中多个类别的相关性用于遥感图像分类任务.Chen等[36]提出基于图卷积网络的方法,通过有向图建立标签之间的依赖关系,捕获多个示例和多个示例对应的多个标签之间的相关性.Khan等[37]在遥感场景图像上提出了多标签的图卷积网络方法,更能直观的发现场景图像中不同局部区域之间的关系.Durand等[38]通过卷积神经网络直接提取示例特征,将最后一个卷积层输出特征作为示例特征,选择一定数量的正例和负例作为示例袋特征进行分类.这种方法一定程度上能找到正例和负例,但是不够准确,而且正例和负例只是使用简单的加权平均聚合用于图像分类.以上MIL方法极少考虑示例选择问题和密集抽样后的网络学习显得冗余.此外,对示例与标签之间的关系研究也较少.
传统卷积神经网络提取的特征信息来自于全局图像,不能有效过滤场景中混杂无关的特征信息,而有选择地聚合语义相关的信息.本文提出一种弱监督多示例子概念学习的网络模型.主要分为两个部分:1)通过基于分类的弱监督定位网络,激活类响应得分最高的峰值位置,反向定位到潜在语义信息的感兴趣区域(示例);2)将选取的多个示例特征输入多示例聚合网络进行子概念学习,获得示例与子概念之间的最佳匹配分数,聚合成示例袋进行分类.
本文方法的整体框架如图3所示,包括两种不同的网络:弱监督定位网络(Weakly Supervised Localization Network,WSL)与多示例聚合网络(Multiple Instance Aggregation Network,MIN),这两个网络都是将ResNet50[39](保留到最后一个卷积层)作为主干网络,共享权重参数.其中弱监督定位网络通过一个卷积分类层,保留图像的空间信息,生成类响应图激活峰值用于定位语义区域,定位到多个示例特征组成示例袋作为多示例聚合网络输入,通过子概念层学习子概念与示例关系,并且通过多次迭代为每一个子概念提供权重用于子概念聚合生成示例分数,再通过平均池化的方法聚合所有的示例生成示例袋概率分数.最后,综合两个网络的分类结果.
在场景图像中,可以根据有无特定的语义对象将图像大致分为两类,对于没有特定语义对象的图像区域,图像中大部分区域都包含有语义信息;对于有特定的语义对象的图像,能对场景语义类别分类起关键作用的只是一小部分区域.这两种情况下,大量密集示例区域的采样会导致网络很重的学习负载以及重复冗余的特征,还可能混杂无关的信息.而使用弱监督的示例定位方法不仅能定位到具有潜在语义对象信息的区域,还能过滤无关信息.
图2 类响应图示例Fig.2 Example images of class response map
图2给出了3个场景的类响应图(CRM)示例,最左边1列为原图,右边4列为高响应值的CRM图,分别对应不同的类别.第2列所示图表示正确类别上CRM,其余3列所示图表示其他类别上的CRM.当预测概率Sc最大(第2列)时,能对应CRM图中高亮区域,与该场景语义类别信息一致.否则,高亮部分定位到了与场景类别不相关的区域.
因此,在仅仅使用类别(标签)的情况下,通过全卷积分类网络能直接定位到场景语义信息的区域,过滤掉无效的负示例.并基于类响应图提取若干峰值位置作为待选取的示例中心,避免了在密集采样情况下重复计算示例特征.图3给出了本文算法的整体结构和流程.
如图3上半部分所示,首先基于主干网络ResNet50提取特征,然后在最后一个卷积层加入1×1卷积层,代替现有的软最大化层,从而保留整个特征的空间信息,将输出的特征图作为类响应图M∈RC×H×W[29],其中C表示类别数,H×W表示类响应图的大小.在1×1卷积层后增加峰值聚合层(Peak aggregation layer)计算CRM图中若干高响应的像素峰值均值用于损失计算.最后将像素峰值坐标反向映射到主干网络最后一个卷积层输出特征上,自动定位到显著性的区域用作感兴趣示例.具体是,类响应图M输入到峰值聚合层生成分类概率.首先,为了找到所有的峰值,以第c个类别为例,将类响应图Mc在固定邻域大小(例如3×3)下进行搜索,得到第c个类别上若干个局部最大值的位置作为峰值坐标,表示为pc={(x1,y1),…,(xm,ym)},其中,m表示峰值的个数.因此,总的峰值坐标记为P={(p1,…,pc,…,pC)}.
其次,将峰值聚合作为最后的分类概率S.第c个类别上的概率得分为:
(1)
最后,对所有分类概率S={(s1,…,sc,…,sC)}取最大,预测对应的类别记为d:
(2)
图3 弱监督多示例子概念学习的遥感场景分类Fig.3 Weakly supervised multiple instance sub-concept learning for remote sensing scene classification
3.2.1 子概念层
在复杂场景中,每一个类别并不是只有一个独立单一的对象,可能包含多个相关的子对象或者子概念.例如:场景“飞机场”,可能包含“跑道”、“飞机”和“航站楼”等,这些子概念与整个场景语义类别“机场”都有不同程度的关联.而传统的CNN结构中没有考虑到场景图像中多个语义对象之间的关联,难以有效地表达场景的语义信息,进而影响到场景分类的性能.因此,本文在多示例网络中加入一个子概念层,通过探索示例与多个语义子概念之间的关系,挖掘多个示例与场景语义标签关系.不仅赋予了网络语义学习的能力,而且子概念层能够适应不同的输入与输出维度.
具体来说,首先通过K×C个1×1卷积将示例特征转换为示例与子概念之间的匹配分数(关联概率),其中K表示子概念的个数.对于一个给定的示例xe∈RD×1×1,子概念和标签之间的激活值表示为:
(3)
其中,wi,j表示第i个子概念到第j个标签的匹配模板,bi,j表示相应的偏差,f(·)表示激活函数,通常使用ReLU函数.
与文献[34]仅仅考虑最大的子概念分数来触发关键示例不同.本文改进了子概念层的聚合方法,根据示例与子概念之间的相似性,赋予每一个子概念不同的权重,再进行聚合,预测示例与标签的匹配分数.如图4所示,以一个示例xe作为输入,首先,将1×K维的t初始化为0,每一个子概念对应的初始权重h(0)为1/K,初始的示例与标签匹配分数为:
图4 子概念层Fig.4 Sub-concept layer
(4)
其中,t表示可学习参数,μ为t对应的权重概率,h是权重分配后的聚合得分,r表示迭代次数,(i,j)表示2D矩阵中的行和列坐标.Softmax(·)表示软最大化函数,用来产生子概念权重.将其扩展为包含N个示例的示例袋,再增加一个维度,子概念和标签之间的关系矩阵表示为B∈RN×C×K,聚合后的示例分数为h∈RN×C×1.
3.2.2 示例—标签关系挖掘
在传统的多示例网络中,一个示例袋X={x1,x2,…,xN}由N个示例组成,每个示例袋包含相同数量的示例,示例袋标签Z∈{0,1,…,C}通过训练得到,而示例的标签是未知的.
在给定示例袋标签级监督信息下,多示例网络学习的关键在于如何将示例的概率分布聚合为示例袋?由上述讨论可知,本文子概念层触发了从子概念到多个示例的概率分布,表示为h.接着使用一个池化层聚合所有示例,将示例与标签之间的匹配分数转化为C × 1大小的袋子级预测分数.
Sbag=pool(h1,…,he,…,hN)
(5)
其中,Sbag表示示例袋概率分布向量,pool(·)表示池化函数.本文使用平均池化方法,因为这些示例是经过3.1节网络产生的、富于信息性,在整个分类中都起着关键作用.
本文定义了弱监督定位网络的损失函数和多示例聚合网络的损失函数,将它们加权求和作为最终总的损失函数,进行端到端训练.前者使用多标签软间隔损失(Multi-label Soft-margin Loss)函数,计算为L1:
(6)
其中,X表示弱监督定位网络输出的概率分数,YC×1表示输入图像对应的标签,A表示训练图像个数.
后者使用交叉熵损失函数,表示为L2:
(7)
其中,X表示多示例聚合后的概率分数,Z表示为示例袋对应的标签,XZ表示对应标签Z的概率分数.
为了平衡两个网络,这里引入了一个权重参数α,在每次迭代训练过程中通过调节此权重参数,使得整体损失L能够达到最小.总损失函数定义为:
L=L1+αL2
(8)
其中,α(≥0)表示归一化的损失函数权重参数,通过调节权重参数α平衡两个网络,使整体网络拟合更好.
本文基于Pytorch框架+NVIDIA Tesla V100环境,在4个公开的场景数据集(AID[40],NWPU-RESISC45[1],CIFAR10以及CIFAR100[41])上进行实验,这4个库的具体类别以及数据集划分如表1所示.
表1 场景数据集Table 1 Scene dataset
本文使用ImageNet预训练的ResNet50作为特征提取的主干网络.首先,将输入图像大小调整为224×224像素,然后对不同训练比例的场景图像分别使用SGD优化器训练网络模型.权重衰减为0.0005,动量为0.9.初始学习率为0.001,每隔30次迭代降为原先的0.1.网络训练的迭代次数设置为100.对于超参数,通过实验发现子概念个数K取值50是最优的,迭代阈值γ设置为3.权重α设置为0.001,在10次迭代之后设置为1.本文使用重复5次实验的平均精度(OA)和标准差来验证有效性.表2和表3还给出了标准差(±).本文方法弱监督定位的多示例网络简称为WSL-MIN(Ours).此外,本文根据方法ResNet50[39]和VGG16[42]文献中的实验配置和开源代码在场景数据集上进行实现,得到相应的分类结果,在表2-表4中用*标明.
本文方法在4个基准的数据集上进行了实验,如表2-表4所示,并且将实验结果与现有的方法进行了比较.
表2 AID数据集分类结果Table 2 Classification results on AID dataset
如表2所示,在AID数据集上,本文方法在训练比例为20%时取得了93.50%的分类精度,与微调的VGG16网络和ResNet50网络相比,分别提升了1.61个百分点和0.61个百分点,与DCNN-GoogleNet[24]相比提升了4.71个百分点,与ARCNet-VGG16[25]比提升了4.75个百分点.训练比例为50%时,本方法达到了96.24%的精度,比弱监督的SCCov[43]提高了0.14个百分点,比多示例密集连接网络MIDC-Net[44]提高了3.29个百分点,比ARCNet-VGG16提高了3.14个百分点.这充分说明了本方法所提取的示例特征能有效提高模型判别性,同时过滤掉一些混杂无关的特征信息.特别是在较小训练样本的情况下,分类精度能得到快速的提升.
表3 NWPU-RESISC45数据集分类结果Table 3 Classification results on NWPU-RESISC45 dataset
表3列出了本文方法在NWPU-RESISC45数据集上的结果.训练比例为10%时取得了89.63%的分类精度.在训练比例为20%时,取得了92.55%的精度.比微调的ResNet50网络分别提高了0.60个百分点和0.59个百分点.比区域响应排名的3R-VGG16[27]分别提高了3.18个百分点和5.03个百分点.比多示例密集连接网络MIDC-Net[44]分别提高了3.51个百分点和4.56个百分点,进一步说明了本方法的有效性.特别是在有多个人造对象的复杂场景上,能识别出与语义类别相关的子概念信息.
表4 CIFAR10和CIFAR100数据集分类结果Table 4 Classification results on CIFAR10 and CIFAR100 datasets
为了进一步验证本文方法的效果,表4给出了本方法在两个自然场景数据集上的实验结果.类似在遥感场景上得出的结论,本方法仍然具有一致性更好的分类性能,这证明了本文WSL-MIN(Ours)对提高场景分类精度的有效性.
表5 本文方法和基准CNNs的模型参数量、预测时间和模型大小Table 5 Model parameters,test time and model size on WSL-MIN(Ours)and baseline CNNs
此外,除了对比模型的分类性能,本文还从参数量,预测单张图像时间(基于单个GPU)和模型大小3个方面,与基准的CNN网络对比评估模型参数量和计算量.如表5所示,参数量和模型大小都明显少于AlexNet和VGG16网络.而在参数量和计算时间少量增加的情况下,本文提出WSL-MIN获得了更好的分类性能.
本节从不同的层和模块验证本文方法不同部分在4个数据集上的性能.首先,从本方法和单个弱监督定位网络、单个多示例聚合网络进行对比.其次,对于子概念层,本文将其与最大池化、平均池化进行对比.为了便于说明,将弱监督的定位网络记为WSL、多示例聚合网络表示为MIN,将加入了子概层学习的MIN网络表示为MIN-sub-concept,使用最大池化聚合子概念的方法表示为MIN-max,使用平均池化聚合子概念的方法表示为MIN-avg.
如表6所示,与单个的弱监督定位网络WSL相比,本文方法在前两个遥感数据集上都有显著的提升,在AID数据集上分别提升了2.03百分点和1.19个百分点,在NWPU-RE SISC45数据集上分别提升了3.08个百分点和2.26个百分
表6 在两个遥感数据集上的的消融实验结果Table 6 Ablation experimental results of our method on two remote sensing datasets
点.在CIFAR10和CIFAR100数据集上,本方法分别提高了0.18 个百分点和11.08个百分点,如表7所示.这说明弱监督定位网络能够筛选到有信息性的示例用于分类,同时多示例聚合网络进一步提高了WSL所筛选示例的分类性能.也说明了两个网络有一定的互补性,共同促进场景语义类别的识别.
表7 在CIFAR10和CIFAR100数据集上的消融实验结果Table 7 Ablation experimental results of our method on CIFAR10 and CIFAR100 datasets
此外,对比子概念层中3种不同的聚合方法,在AID数据集上,子概念聚合方法MIN-sub-concept比MIN-max方法分别提高了6.82个百分点和1.55个百分点.比MIN-avg方法分别提高了6.67个百分点和1.23个百分点.在NWPU-RESISC45数据集上,MIN-sub-concept方法比MIN-max分别提高了0.84个百分点和0.95个百分点,与MIN-avg相比基本持平.在CIFAR10和CIFAR100数据集上,MIN-sub-concept方法比MIN-max分别提高了2.33个百分点和5.6个百分点.比MIN-avg提高了3.19个百分点和9.79个百分点.由此可见,给多个子概念学习赋予不同的权值是有必要的,也是有效的.而仅仅考虑最高分数的子概念和平均对待所有的子概念都不是最优的.
为了进一步验证本文方法提取示例有效性,以及研究定位到的示例区域与图像语义之间的关系,本文进行了可视化实验.具体来说,通过弱监督定位网络(如图3所示)找到多个关键区域,在3个测试数据集上示例定位的可视化结果如图5(a)-图5(c)所示,虚线左侧为原图像,右侧为相应图像上的多示例定位热力图.从可视化结果中可以观察到,定位到的示例区域与图像语义类别基本一致,说明示例的定位是较为准确的,有助于随后子概念层学习,能够提升图像场景的语义类别.本文还对MIN网络中最后一个卷积层的输出特征进行重构,得到重构后的近似图像,篇幅所限不再赘述.
图5 本文方法多示例定位的可视化结果Fig.5 Visualization results of our method
复杂的遥感场景经常包含多个不同的对象信息,仅使用全局图像特征势必引起网络模型的偏差,导致场景表达的低效.本文提出了一种基于弱监督多示例子概念学习的遥感场景分类方法.通过弱监督定位网络找出富于语义信息的示例位置,将这些示例特征输入到增强子概念学习的多示例聚合网络,学习示例与子概念之间的匹配分数,并通过平均池化聚合成示例袋概率分数.最后本文使用组合的损失函数训练整个网络,获得最终的网络模型.在4个基准数据集上的实验结果表明本文方法提高了场景分类精度,同时没有引起额外的网络参数.此外,本文方法同样适用于单示例多标签和多示例多标签的分类任务.在今后的研究中,还可以从负例上进行扩展,并对此进一步研究.