基于深度迁移学习与多尺度特征融合的场景识别方法
2023-11-17胡春燕李菲菲
王 桥,胡春燕,李菲菲
(上海理工大学 光电信息与计算机工程学院,上海 200093)
场景识别的研究目的是使计算机能够像人一样对不同的图像进行分析,并识别其中的场景。随着摄像设备的普及,图像被大量生产,并快速在网络上传播。场景识别技术的发展为有效管理图像数据提供了新思路,其也在图像分类、自动驾驶等领域中发挥重要作用。
场景识别主要分为3个阶段:特征提取、特征变换和分类器训练。由于计算机性能的提升,深度学习中的卷积神经网络(CNN)[1]技术得到了快速发展和广泛运用。包括AlexNet[2]、GoogLeNet[3]、VGGNet[4]和ResNet[5]等在内的CNN机器变体都得到了广泛应用。然而,神经网络深度的加深导致网络容易产生梯度爆炸与弥散问题。针对此类问题,ResNet引入残差结构,有效解决了随着网络深度的增加到质变性能突然下降的问题,使其在较深的网络中依然具有较好的性能表现。相较于低效率构建手工特征,使用卷积神经网络能够自动学习场景图像的特征表示。同时,由CNN提取的深度卷积特征更精炼抽象并富有语义信息。由于数据库中不同尺度大小的场景图像影响其中物体大小,因此文献[6]提出多尺度的网络结构,使用CNN全连接层提取特征,识别准确率随着提取尺度量增加而逐渐提升。然而增加尺度将大幅降低网络效率。文献[7]提出融合卷积神经网络中的全连接层和Softmax层的概率输出作为场景图片的表示。文献[8]指出CNN最后一层卷积层输出的卷积特征包含了更丰富的语义信息和空间信息。CNN的卷积层能够接受不同尺度的场景图片输入且计算资源的消耗更小。因此,该研究直接使用卷积层特征作为场景图片的表示。
尽管现阶段深度卷积特征具有较强的表达能力,但若使用传统方法对深度卷积特征进行变换,仍能进一步提升特征的表达能力。文献[9]使用稀疏字典学习(Sparse Dictionary Learning,SDL)用于场景识别中的编码卷积特征,并取代全连接层(Fully Connected Layer,FCL)和校正线性单元(Linear Unit,ReLu)。此外,改进的稀疏自动编码机[10]以及根据场景图片的特性提出的多尺度空间编码方法[11]也在场景识别领域取得了成功。虽然传统编码特征方法与深度卷积特征提取的结合在场景识别中取得了较好效果,但随着场景识别的进一步发展,研究人员开始尝试从不同角度进一步提升场景识别的准确率,例如提取场景图像的背景信息与局部重点物体信息,或通过结合图像的全局信息与局部信息。目前,为缓解场景图像类内差异与类间相似问题的干扰,研究者使用深度学习方法从多个尺度独立提取卷积特征[12],例如采用费希尔向量(Fisher Vector,FV)[13]、局部聚合描述符向量(Vector of Locally Aggregated Descriptors,VLAD)[14]和语义聚合描述符向量(Vector of Semantically Aggregating Descriptor,VSAD)[15]等编码方法。与单一图像级别的表示方法相比,此类方法在识别性能上有明显改善。由于局部对象包含在更大场景背景中,因此需要结合对象级别和场景级别的知识来确定图像的场景类别。这种组合可以通过使用在不同数据库(即ImageNet和Places)上预先训练的混合CNN模型,从多尺度图像块中提取深度特征来实现识别。综上所述,本文分析场景图像的背景与物体信息,根据输入图像经过类激活图生成器生成的类激活图的两个不同尺度得到相应的图像区域,对全局级图像进行补充,获取场景图像的综合表示,进一步提升网络的图像特征提取性能。
使用深度学习方法训练一个性能表现良好的深度卷积神经网络需要两个条件:1)需要有充足有标签的训练数据,例如ImageNet数据集拥有一千多个类别,超百万张图片;2)需要拥有强大计算性能的计算机硬件,例如GPU等。上述条件导致在一些需要使用卷积神经网络的任务中缺少任务相关的训练数据会造成网络欠拟合,使得最终的网络性能不佳。在研究中可以观察到许多迁移学习的例子,例如研究发现通过训练识别苹果的网络模型可能有助于识别梨[16],训练网络识别电子管风琴可能有助于网络学习识别钢琴。因此当训练样本不足时,使用迁移学习可以提高场景图像识别模型的准确性和训练速度。本文由于每类图像只有100张,故只能选择其中50张用于训练。为了在样本情况较小的情况下获取足够多的对象级别和场景级别的知识,本文使用在ImageNet和Places上预先训练的混合CNN模型结合迁移学习的方法从多尺度图像块中提取深度特征来实现目标任务,该方法比在单个大型数据集上训练深度神经网络更有效。在实验过程中发现,迁移网络参数不但加速目标网络的学习和优化,而且网络收敛速度更快,节省了时间成本,得到的目标网络也比随机初始化权重的网络效果更好。通过网络迁移性研究在深度迁移网络中加入微调可以使迁移后的网络更加贴合目标网络的需求[17],使得卷积神经网络能够在目标任务的数据集上进一步提升网络性能[18]。
本文提出了一种基于深度迁移学习与多尺度特征融合的场景识别算法。首先在类激活图生成器中加入SE-Block[19]模块,然后获取预训练后性能优异的网络参数并将其迁移到本文的神经网络模型中,将预训练的特征提取器在目标数据集上进行微调。本文将目标图片送入类激活图生成器生成类激活图,从类激活图中获取图片的关键区域,然后使用卷积神经网络从关键区域提取卷积特征,并通过连接所有3个L2归一化的尺度特征向量来获得最终的图像表示,如图1所示。多尺度特征融合框架寻找热点区域的核心部分为类激活图生成器(Discriminative Discovery Network,Dis-Net)。通过类激活映射获取类激活图(Discriminative Map,Dis-Map),并使用局部最大值的搜寻和筛选来提取场景图像的重要信息,从重要信息中提取卷积特征,形成不同尺度特征。最后,本文采用最大池化策略进行特征聚合。本文方法的总体目标是从局部区域中提取鉴别性信息以补充全局层面的图像表示。实验结果表明,本文方法在场景识别的任务中效果良好。
图1 本文模型的总体框架Figure 1. Overall framework of the proposed model
1 迁移学习
传统的机器学习技术试图从头开始学习每个任务,而迁移学习技术在目标任务的训练数据较少时会将之前在一些任务中学习到的知识转移到目标任务中。传统的机器学习与迁移学习的差异如图2所示。
(a)
近年来常使用深度卷积神经网络作为解决计算机视觉任务的方法,但是初始训练一个新的卷积神经网络不仅需要大量训练样本,还需要大量时间与高性能的硬件设施。当数据集样本不足时,训练的网络难以满足精度需求。当计算机性能有限时,将消耗大量时间用来训练。针对此类问题,深度迁移学习具有先天优势。为了能够在每类数据集较小且计算机能力有限的情况下进一步优化卷积网络参数,本文采用融合迁移学习的手段进行卷积神经网络模型训练。
迁移学习通过将已经获取的能力应用在相关领域模型中,使得网络模型具有充足的知识,以此使得本文模型可以减少训练时间,并调高识别精度,更加准确地完成目标任务。本文将在场景数据集Places训练的网络用于提取场景类型的特征,并将在物体数据集ImageNet中训练的网络用于提取物体特征。待网络训练完成后,将其迁移到本文模型中。由于场景图像的差异性,需要通过微调使迁移后的网络更加适应目标任务的需求,以此进一步提升网络性能[20]。
2 卷积神经网络
2.1 类激活图生成器的网络
目前常用的CNN有AlexNet、VGGNet、ResNet和InceptionNet等。ResNet网络通过引入独特的残差结构,使网络能够达到更深层,并避免由于网络深度增加导致的梯度爆炸与弥散问题,且不会导致网络模型的性能下降。因此,ResNet在深度、宽度、参数以及计算成本上都具有优势。
本文在基于热点区域探寻的场景识别方法基础上进行改进。本文使用SUN397数据集,且每个类别选取100张照片。采用ResNet网络可以更好地训练网络,而ResNet-50[21]比ResNet-18更深,能得到更好的图片标签对应的权重。由于图片标签的精准度直接决定类激活图的准确程度,因此本文将类激活图生成器的主干网络由ResNet-18改为ResNet-50,以此来增加类激活图生成器生成的类激活图的准确度。ResNet网络的残差结构如图3所示。
图3 ResNet中的残差结构 Figure 3. Residual structure in ResNet
将预训练好的场景特征提取网络的参数与物体特征提取网络的参数迁移到本文的卷积神经网络模型中,如图4所示。
图4 基于迁移学习的卷积神经网络结构Figure 4. CNN structure based on transfer learning
2.2 卷积特征的提取网络
由于深度卷积特征具有优异的表示性能,因此在场景识别中,卷积特征已基本取代了传统的手工特征。在众多CNN及其结构变体中,本文选择 ResNet-50作为特征提取器。相较于其他卷积神经网络(例如AlexNet、GoogLeNet、VGG),ResNet-50网络更深,参数更少。而且,由于ResNet具有残差连接,更易训练和收敛。对于深度卷积神经网络而言,不同阶段的特征表示能力不同,最后一层卷积信息具有丰富的语义信息。使用深度卷积特征能够缩减特征表示与图片标签之间的语义鸿沟。相比于全连接层输出的特征,CNN最后一层卷积层输出的卷积特征包含了更丰富的语义信息和空间信息,且CNN的卷积层能够接受任意大小的图片输入,其消耗的计算资源也更小。因此,本文去除了ResNet-50的全连接分类层,直接使用卷积层特征进行场景图像的表示,采用提取最后一次的多尺度卷积特征进行融合以达到最佳的场景分类准确率。具有全连接层的传统卷积神经网络在输入全连接层时会将卷积特征从三维的特征块拉平至一维的特征向量,从而造成空间信息损失。在进行物体分类任务时,全连接层带来了空间点位之间的连接,使得特征拥有空间不变性,具有较大优势。对于卷积特征来说,每一块空间区域均能拥有投射至输入图片的一片视野域,可理解为每个1×1×C大小的卷积特征都能表示原图的一小块区域特征,因而卷积特征具有空间表示能力。由此可知,使用卷积特征有益于保留场景图片中的空间信息,从而提升准确度。
2.3 网络微调
类激活图生成器和特征提取器(全局尺度、1/4尺度)均使用了在大型场景数据集Places上预训练的ResNet-50。源域数据集Places和目标域数据集SUN397在数据分布上有所不同,且两者在场景类别上具有较大差异。因此,本文基于深度迁移学习的理论,使用目标域数据集SUN397对预训练的网络进行微调。在微调类激活图生成器的过程中,为了加强类激活图的热点区域检测能力,在类激活图生成器的结构中加入了一个SE-Block(Squeeze-and-Excitation-Block)。
微调涉及两个网络,即类激活图生成器和特征提取器的主干网络,网络均为 ResNet-50。特征提取器的微调过程如下:首先,在卷积层参数冻结的基础上训练其分类器;然后,解冻卷积层的参数,以一个稍小的学习率微调卷积层和分类器(即微调整个主干网络)。类激活图生成器的卷积层取自预训练的卷积层,同时微调卷积层和后接的SE-Block和分类器。对卷积层设置一个较小的学习率以保护其特征提取能力,对于后接模块正常设置其学习率。
2.4 特征提取
深度卷积网络在特征提取方面具有优异表现,逐渐取代了传统的特征提取方法。为了获取较好的图像特征,既要保障图像类内特征的一致性,又要保证类间特征在特征空间的多样性与独特性。场景图像一般比较复杂,单特征提取易导致提取的特征不够全面,使最终识别的效果难以达到预期水平。场景图像在不同尺度包含的特征均包含丰富的信息,浅层网络对几何细节信息具有较强的表示能力,深层网络提取语义信息的表示能力明显高于浅层网络。因此,本文采用多个尺度特征共同表示场景图片的方法来获取更为准确的图片特征。对于提取深度卷积特征,本文模型使用了3个尺度架构提取图片特征,通过将目标图片送入类激活图生成器来生成类激活图。从图1中的类激活图可以看出,关键区域的特征在类激活图上表现出相对较大的数值,因而能根据数值大小来推断该区域的特征是否关键。为获得分布在图像上的不同鉴别区域,使用滑动窗口搜索类激活图的局部极大值。对于每一个步幅为1的3×3窗口,选择大于或等于其周围8个位置的中心值作为局部最大值。对于两个重叠窗口中具有相同值的局部极大值只计算一次,以避免对彼此接近的区域进行冗余区域选择。然后,选择值高于阈值T的局部极大值作为最终判别位置。最后,裁剪以每个最终选择的区分位置为中心的方形区域,即以局部最大值为中心,提取特定大小的特征块作为关键区域的特征。对于生成的图块大小超出图像区域的特殊情况,将其位置移动到图像内进行划分。使用两种不同的图块大小(图像大小的1/4和1/16),将其称之为“局部尺度”。尺寸的选择着眼于捕捉图像中互补的局部信息。本文模型采用了一种三尺度特征聚合管道,使用CNN提取深层特征,获取最高(全局)尺度和粗略(1/4)局部尺度的CNN网络在Place上预训练,同时获取精细(1/16)局部尺度的CNN网络在ImageNet上预训练,并最终从目标模型卷积神经网络分别提取卷积特征全局尺度特征、1/4局部尺度特征以及1/16局部尺度特征。
3 类激活图生成器与特征融合
3.1 类激活图生成器
采用基于类激活映射的类激活图生成器(Dis-Net)探寻热点区域的核心部分,由此生成的Dis-Map经过局部最大值的搜寻和筛选能够反映场景图片中的热点区域。图5为原类激活图生成器,图6为改进后的类激活图生成器。
图5 原始类激活图生成器Figure 5. Original class activation map generator
图6 改进后的类激活图生成器 Figure 6. Improved class activation map generator
将类激活图生成器的主干网络从ResNet-18更换为ResNet-50,并添加SE-Block模块。图片标签对应的分类权重是生成类激活图的关键,而类激活图的准确程度受图片标签准确度的影响。文献[22]的类激活图生成器通过去除主干网络的第1个最大池化层,获得了更高分辨率的激活图,从而产生14×14的分布图。然而,本文发现去除第1个最大池化层对主干网络的分类准确度存在不良影响,导致热点区域识别不准确。因此,本文选择保留主干网络的第1个最大池化层,并扩大原图片的输入尺寸以增大类激活图的分辨率。
3.2 SE-Block模块
为了加强类激活图的热点区域检测能力,在类激活图生成器的结构中加入SE-Block[23]模块。SE-Block能够提取卷积层内不同通道之间的跨通道联系(Cross-channel Correlation),并利用此全局信息为每个通道赋予一个权重:对包含热点信息的卷积通道赋予一个较高的权重,对无用卷积通道赋予一个较低的权重。
图 7 SE-Block结构Figure 7. Structure of SE-Block
SE-Block的结构如图7所示。输入特征X首先经过Ftr操作,即常规的卷积操作,得到特征图U,X∈H′×W′×C′以及U∈H×W×C。然后利用压缩(Squeeze)函数Fsq(·)提取通道间的关联信息Z∈c。最后使用激发(Excitation)函数Fex(·)生成每个通道的权重S∈с。上述函数的计算式为
(1)
S=Fex(Z,W)=σ(g(Z,W))=σ(W2σ(W1Z))
(2)
其中,zc∈Z;uc∈U;W=[W1,W2]。
SE-Block可突出有用特征,并抑制无用特征,能以最小的计算代价显著提高现有神经网络的性能。
3.3 特征融合
本文使用一种三尺度框架,通过最大池化实现特征融合。根据热点区域的中心坐标,在不同尺寸的场景图片金字塔中采样多尺度的图像块,分别送入到预训练的卷积神经网络中提取特征,再将通过提取得到的不同特征进行融合。
在模型中使用CNN来提取深度特征,CNN针对最高(全局)尺度和粗略(1/4)局部尺度以及精细(1/16)局部尺度。在每个尺度上,调整输入区域的大小,从而得到不同尺度的不同特征向量,使用一个最大化池化(Max Pooling,MP)操作进行尺度内特征聚合,将3个L2归一化尺度特征向量串联得到最终的图像表示向量。
全局尺度特征图是原始输入图像的特征图,1/4尺度和1/16尺度是热点区域的面积与原图的面积之比。
3.4 分类器
支持向量机(Support Vector Machine,SVM)为场景识别的分类提供了一种有效的解决方法,可以处理线性和非线性数据。为了获得良好的分类精度,SVM通过训练数据集进行训练,找到一个超平面。超平面需要定位在最合适的位置。位于从超平面测量的最小垂直距离处的所有点被称为支持向量。支持向量之间的最短距离称为边距。本文使用的支持向量机如图8所示。
图8 支持向量机Figure 8. Support vector machine
本文采用生成的多尺度深度特征来训练多个一对多的线性SVM分类器。基于训练图像的尺度特征,对SVM分类器的参数C进行了优化。C是支持向量机目标函数的超参数,是对于误分类样本的惩罚项。在输入线性SVM之前,特征经过最大最小归一化。本文使用的C值为0.02,同时采用平方铰链损失函数。
4 实验结果及分析
4.1 实验数据集及实验平台
本文在SUN397[24]进行了实验。SUN397是一个大规模的场景识别数据集,共包含 130 519张、899类场景图片,其中397类用作场景识别任务。使用数据集内的397个类,且每个类别取100张场景图像,对每个类内选取的图像对半划分,分别构成训练集和测试集。
提出的网络模型训练所用的硬件平台为: CPU为Intel Core i7-10875H,主频2.3 GHz,睿频5.1 GHz;SAMSUNG 32 GB内存;GPU为NVIDIA 2080 8 GB。
4.2 实验细节及分析
微调涉及两个网络,即类激活生成器和特征提取器的主干网络。两个网络涉及3次训练,训练时的网络参数如表1所示。
表1 特征提取器和类激活图生成器3次训练的网络参数
在训练时,考虑到SUN397每个类别训练集只有50张图片,故采用基于随机采样的数据增强[25]方法。本文在原始输入图片上采样任意尺寸的图像块,采样得到的图像块与原图的尺寸比例范围为在[0.08,1.00],长宽比范围为[3/4,3/4]。采样后将图像块调整成224×224大小,并对图片进行随机水平翻转。最后对图片进行标准化,在整个训练集上求取标准化参数。由于数据集内的图片是彩色图片,故三通道的标准化参数均值mean=[0.466,0.453,0.419],标准差std=[0.264,0.263,0.287]。在训练时,使用带动量的小批量随机梯度下降优化器。
使用SE-Block对类激活图的影响如图9所示。SE-Block对类激活图的值具有抑制作用,可减少热点区域的数量,但能增强有效的热点区域的激活值。
(a)
本文使用3个尺度构成的最终特征进行C值选取。逐渐加大C值,得到准确度与C值的关系,如图10所示。随着C值增大,模型训练的准确度达到100%,并保持不变。预测准确度在前期随着C值的增大而逐渐增大,并在达到峰之后随着C值的增大逐渐减小,模型经历了从欠拟合、拟合、过拟合3个不同阶段。选择较大的C值,缩小支持向量所在的超平面的间隔,以减少在训练集上被错误分类的样本。选择较小的C值,训练得到超平面的间隔较远,但是被错误分类的样本较多。C值越大,在训练集上的准确度越高,超平面将对训练集上产生过拟合造成较大的泛化误差。C值越小,支持向量机可能无法收敛而无法得到最优超平面,此时不仅在训练集上表现较差,泛化误差也较大。因此,本文选取测试准确度较高的点为C的取值点,即C=0.02较合理。
图10 SVM参数C和准确度的关系Figure 10. Relationship between parameter C of SVM and accuracy
表2主要对特征提取器和类激活图生成器主干网络的处理方式进行标记,例如序号2表示类激活图生成器在Places上进行了预训练并在 SUN397上进行了微调(Finetune),特征提取器的主干网络在全局尺度和1/4尺度上使用同样的方式进行了处理。在1/16尺度上,特征提取器的主干网络经过ImageNet的预训练。从表2可以看出,如果对主干网络进行微调,能够缓解数据集偏置的问题,并提高场景识别的准确度。
表2 微调特征提取器和CAM生成器对准确度的影响
如表3所示,将本文方法与其它使用CNN的场景识别方法进行了比较。其中,VS-CNN通过多维度信息提取多种类型的特征,Dual CNN-DL、Multi-scale CNNs使用了多尺度多模型结合的网络结构,Adi-Red解决了鉴别性区域自动发现。经实验对比发现,采用多尺度特征融合的方法在场景识别中优于当前的卷积神经网络算法模型。本文结合迁移学习与多尺度特征融合,通过3种不同的特征尺度解决了复杂场景的分类问题,其中全局尺度特征对于简单场景具有较好的效果。本文构建了新的类激活图生成器,生成了更细腻的类激活图,从而能够更精准地寻找关键特征的位置并裁剪此区域的特征。本文提取的局部尺度特征能够进一步补充场景图像的特征信息,赋予了网络模型分类复杂场景的能力。此方法识别准确度高于类似的识别算法,证明了通过改进类激活图生成器网络结构,结合图像的全局与局部特征方法的有效性。
表3 在SUN397数据集上的准确度比较
5 结束语
本文提出一种基于深度迁移学习与多尺度特征融合的场景识别算法模型。该模型以ResNet-50网络模型为基础,通过迁移学习,使模型获取丰富的知识,简化网络模型的训练难度,提升网络的训练效率。改进了类激活图生成器,通过扩大原图像尺寸增加了类激活图的分辨率,使卷积网络获得了较多特征信息,采用区分区域来提取场景图像的深层特征。通过卷积网络使不同尺度的特征向量进行融合,增加了最终特征的特征信息丰富度,更加具体地对图像进行表示。最终,将表示向量送入线性SVM分类器进行场景类别的识别。研究结果表明,本文方法能够明显缓解数据集偏执的问题,改善图像类内差异与类间相似的问题,提高了场景识别的准确度。在改进类激活图生成器网络结构的基础上使用迁移学习与微调技术,不提取沉余区域即可获取信息丰富的热点区域特征信息,更加符合人类对场景的观察机制。未来将进一步结合深度学习的方法,探讨更有效的提取场景图像的背景、物体、空间位置等信息的算法,并在特征融合方面开展进一步的研究工作。