基于分层精简双线性注意力网络的鱼类识别

2022-04-09 07:04:22董绍江蔡巍巍饶志荣
计算机工程与应用 2022年5期
关键词:细粒度精简鱼类

董绍江,刘 伟,蔡巍巍,饶志荣

1.重庆交通大学 机电与车辆工程学院,重庆 400074

2.大陆汽车研发(重庆)有限公司,重庆 400074

随着现代科学技术的发展,人们对海洋有了更多的探索和理解,对海洋资源的开发与利用,带来了巨大的经济效益。与此同时,海洋生态遭受了一定的破坏,海洋生物多样性面临着巨大挑战[1]。引入现代技术手段对不同海洋鱼类的存在和数量进行监控,对保护鱼类多样性意义重大。

近年来,越来越多的海洋研究人员通过水下摄像机的长期监视来获取水下鱼类图像,并采取了不同的方法实现图像的分类[2]。较为传统的方法是海洋专家对每个图像进行手动分析归类,此种方法不仅要求较强的专业能力,且费时费力。基于图像处理技术的特征提取方法,使得这项任务变得相对容易起来,研究人员通过提取图像的颜色、形状、纹理等特征,以有效地确定鱼的种类[3-4]。在特征提取方法的基础上,针对图像分类方法的研究也逐渐在增多,Wang等人[5]在bag-of-feature的基础上,提出了缩小编码系数,通过两级字典学习的方法来识别细粒度鱼类图像,但是该方法未考虑特征之间的位置关系。Saitoh等人[6]进行了详细的实验,证明了视觉词包与几何特征的组合可以帮助获得准确的识别结果。Khotimah等人[7]使用决策树与图像处理算法相结合的方法来实现了金枪鱼的自动分类。上述方法大多是基于不同的特征提取方法结合机器学习工具进行图像的分类,然而与卷积神经网络相比,过程相对繁琐,且基于卷积神经网络的识别方法其准确率普遍更高。Tamou等人[8]用迁移学习方法,在AlexNet网络上对ImageNet数据集上训练模型进行参数迁移取得了不错的效果。Qiu等人[9]使用改进的迁移学习和挤压与激励网络在小规模鱼类数据集上同样表现出了优越的性能。然而当前大多数基于卷积神经网络的图像识别算法,其关注点主要是集中在拓展网络的深度等方式以捕捉更多的图像特征,导致网络模型的训练时间大幅增加,对计算机硬件形成极大的依赖。细粒度图像分类作为计算机视觉、模式识别中颇具挑战的一类任务,需要在区分出基本类别的基础上,对子类进行更精细的划分[10]。此外,由于姿态、尺度、背景等因素的干扰,即使是同一子类,其差异也很大,从而使得细粒度图像分类任务难度更大[11]。因而,针对细粒度图像分类问题,充分结合细粒度图像本身的特点更能体现卷积神经网络的优势。

针对细粒度鱼类图像识别任务,本文提出一种基于空间变换网络和分层精简双线性特征的网络模型。以空间变换网络为注意力机制,移除水下图像背景的干扰,将目标区域作为后续识别网络的输入。在可视化卷积特征的指导下,该方法在降低分类特征维度的同时,根据不同卷积层的响应特性融合部分卷积层的特征,增强网络对目标图像细粒度特征的捕捉能力,以降维近似的方式取得了同最优算法相当的识别精度。

1 细粒度图像分类算法

如前所述,细粒度图像分类任务要求更高。对于细粒度图像分类,传统方法主要是基于特征提取,包括局部特征、视觉词包、特征定位三种方法,存在过程繁琐、额外处理工作复杂等弊端[10]。深度学习的广泛应用,使得基于神经网络算法的特征提取方法与传统人工方法相比,效率更高,描述能力更强大,在一定程度上促进了细粒度图像分类的发展。根据监督方式的不同,可以分为强监督[12]和弱监督[13]两种类别。强监督利用bounding box和key point等额外的人工标注信息,获取位置、大小等,有利于提高局部与全局之间的关联,从而提升分类精度。弱监督细粒度图像分类仅利用图像的类别信息,不使用额外的标注,目前该类方法可以总结为图像过滤[14]和双线性网络[15]两类。图像过滤的思想和强监督中利用bounding box的方法类似,仅借助于图像类别信息过滤与目标物体无关的背景。双线性网络(bilinear CNN,B-CNN)通过计算卷积描述向量的外积来考察不同维度之间的交互关系,由于描述向量的不同维度对应卷积特征的不同通道,不同通道提取了不同的语义特征,因此,通过双线性操作,可以捕获图像的不同语义特征之间的关系。

精简双线性网络(compact bilinear pooling,CBP)是双线性网络的改进网络,主要优势在于降低了双线性网络输入分类器的特征维度,加快了网络训练速度,且正确率与原网络相当。空间变换网络作为一种空间域注意力机制,其主要作用是过滤图像中的背景,可作为网络结构嵌入到卷积网络的任何位置,使得构建端到端的学习网络成为可能。本文通过结合空间变换网络和精简双线网络各自的优势并引入分层特征融合的改进策略,构建了分层精简双线性注意力网络,其结构如图1所示。

2 方法论

2.1 空间变换网络

受到图像可裁剪、平移、缩放和旋转等图像处理经典手段的启发,为了尽可能地减少水下图像背景的干扰,本文采用空间变换网络(spatial transformation network,STN)作为一种注意力机制,使识别网络聚焦在图像中目标物体上,对其进行特征提取。其中,空间变换服从于坐标矩阵的仿射变换。空间变换网络的网络结构如图1中下半部分所示,包括定位网络、网格生成器和采样器。定位网络是一个用来回归变换参数θ的网络,本文中它的输入图像为U∈RH×W×C,H、W、C分别对应图像的长、宽和通道数,为避免增加网络中的参数量和特征维度,定位网络设计为由两个卷积层、两个池化层、全连接层和回归层输出变换参数,由于进行的是2D仿射变换,因此其输出是一个6维的向量。网格生成器依据变换参数θ构建采样网络,其实质是根据变换参数得到输出图像和输入图像之间坐标点的映射关系Tθ(G)。若特征图像U的每个像素的坐标为则V的每个像素坐标为由定义在规则网格上的G={Gi}构成,其中像素则源坐标和目标坐标之间的对应关系为:

图1 分层精简双线性注意力网络结构图Fig.1 Structure of hierarchical compact bilinear attention network

采样器利用双线性插值的方式对输出图像像素进行填充,输出图像的大小和输入图像保持一致,公式为:

2.2 精简双线性池化

B-CNN根据大脑工作时认知类别和关注显著特征的方式,构建了两个线性网络,协调完成局部特征提取和分类的任务,特征融合采用的向量外积方式会导致双线性特征的维度极高,CBP是对B-CNN的一种降低维度的近似。双线性池化(bilinear pooling,BP)结果可表示为:

式中,X=(x1,x2,…,x|S|,xs∈Rc),表示局部描述符的集合,S为空间位置的集合,B(X)视为长度为c2的向量。

由于使用双线性描述符的图像分类通常使用线性支持向量机(SVM)去实现,用线性核分类可作如下推导:

式中,X和Y为局部描述符的集合,S和U为空间位置的集合。式(5)的结果视为两张图像的比较内核,令k(x,y)表示此比较内核,即二阶多项式核。

Tensor sketch(TS)是一种近似多项式核的算法,可用于BP的压缩。使用TS进行近似双线性池化的算法原理如图2所示。

图2 精简双线性过程Fig.2 Process of compact bilinear pooling

TS步骤如下:

步骤1利用Count Sketch函数Ψ将特征向量x∈Rc映射到特征空间Rd。定义两个随机向量sk∈{+1,-1}c,hk∈{1,2,…,d}c,k=1,2,sk(i)与hk(i)的初始化值服从均匀分布,且初始化后保持不变。定义函数Ψ(x,h,s)和φTS(x)如下:

式(8)中,F为快速傅里叶变换,F-1为傅里叶逆变换,为按元素相乘。

步骤2根据Count Sketch函数性质:

步骤3通过式(11)计算精简双线性池化特征,并依次开符号平方根和L2规范化将特征归一化。

由文献[16]可知,d的值为8 192时,CBP和B-CNN的降维度近似结果较为理想。

2.3 分层精简双线性注意力网络

基于双线性池化的网络模型已经被实验验证了在细粒度图像分类上的有效性,然而现有的许多方法忽略了模型的层间局部特征的交互和细粒度特征的学习是相互关联的,并且能够相互增强。文献[17]中提出了一种分层双线性池的框架来集成多个跨层双线性特征,提高了对特征的表示能力,文章将来自不同卷积层的激活视为对不同部件属性的响应,而不是显式地定位对象的局部,结果表明该方法对细粒度图像分类任务有较为显著的作用。

为明确CovNet中不同卷积层特征对水下图像目标中不同部件属性响应的有效性,采用Grad-CAM方法[18]对vgg16模型的卷积层进行了可视化,结果如图3所示,输入图像为ImageNet数据集中的GoldFish类。

根据图3中vgg16网络的部分卷积的激活响应可视化结果可以看出,不同的卷积层对输入的鱼类图像不同部件存在不同的响应。除开conv5之外的低层卷积的激活响应主要是从全局的角度对鱼类图像进行特征提取,高层卷积如conv5_1对金鱼的头部、鱼鳍、鱼尾的响应较为强烈,conv5_2和conv5_3的激活响应则主要集中在鱼的头部,其他部位的响应相对较弱。

图3 vgg16部分卷积的激活响应Fig.3 Activation response of partial convolution of vgg16

B-CNN仅对conv5_3层的特征进行外积融合,主要关注的特征集中在金鱼的头部,对于细粒度鱼类图像的识别相当不利,因为在细粒度任务中,不同鱼类之间的差别较小,细微差异很可能被网络忽略而导致识别错误。由于conv5_1在鱼鳍、鱼尾等细节部分响应较为强烈,conv5_2和conv5_3对金鱼的头部的激活响应范围存在差异,其次双线性池化及其精简方法能够加强特征间的交互,且文献[17]中对不同的卷积层的融合方式进行了讨论,在CUB-200-2011鸟类数据集上得出的结果是conv5_3与conv5_2,conv5_3与conv5_1,conv5_2与conv5_1分别进行特征融合得到的识别精度相对更高。根据鱼类图像的特点以及可视化结果中不同卷积的激活响应情况,本文选取conv5_1、conv5_2、conv5_3三个卷积层进行精简的双线性特征融合,融合方式如表1所示。

表1 不同特征融合方式Table 1 Different feature fusion methods

结合STN网络的背景过滤能力和分层精简双线性池(hierarchical compact bilinear pooling,H-CBP)的低维特征表示能力,本文构建了STN-H-CBP网络用于细粒度水下鱼类图像识别。其中STN网络通过定位网络获取目标在图像中的位置,并使用双线性插值方法填充生成的网格,有效滤除了水下图像背景的干扰,图像输出大小为224×224。特征提取器采用vgg16网络模型为基础,保留了vgg16网络的所有卷积层,下称vgg16。H-CBP在考虑了中间层卷积激活,避免了细粒度类别判别信息丢失的情况下,对双线性池进行精简,经过特征交互和精简双线性变换后将输出维度为8 192的三组特征向量进行级联融合后送入softmax分类器。

3 实验结果及分析

3.1 数据集

F4K是Fish4Knowledge项目在开放海域采集的鱼类图像数据集。该数据集是从实时视频中获取的鱼类数据,共27 370个经过验证的鱼类图像,整个数据集分为23个类别,简称为F4K数据集。图4为F4K数据集的部分样本示例。

图4 F4K数据集样本示例Fig.4 Sample of F4K dataset

3.2 实验内容及结果分析

实验环境为ubuntu16.04操作系统,GPU为NVIDIA RTX2060,内存为32 GB,显存为6 GB,深度学习框架为TensorFlow。

空间变换网络在本文中作为一种注意力机制,对水下鱼类图像的背景存在抑制作用,图5是图像经过空间变换网络后的图像与原图像的对比图。图5(a)是空间变换网络输入图像,由F4K数据集中原图按比例缩小而得。可以看到图5(a)中的鱼类图像背景较复杂,对精确识别其中的鱼类目标造成严重干扰;在捕捉局部特征时,极易将外型和色彩与鱼类相似的背景混淆造成误判;此外输入图像采用RGB彩色图像,过多的背景降低了模型的计算效率。图5(b)是空间变换网络输出图像。由图5(b)可见,通过空间变换后的图像,场景中主要目标是鱼类,相对输入图像,很大程度过滤了背景。输出图像中鱼类目标的位置被变换到了左下角的多边形区域,其余像素的点各通道像素值均为零,减少了卷积过程的运算量。

图5 输入图像经空间变换前后对比图Fig.5 Comparison of input images before and after spatial transformation

本文分别以B-CNN、CBP、H-CBP和所提STN-H-CBP方法作对比,其中由于输入图像尺寸为448×448时B-CNN网络表现最佳,限于硬件环境,且本文意在验证所提的STN-H-CBP网络的有效性,故文中网络输入图像尺寸均为224×224。上述对比网络模型均以vgg16作为特征提取器,为了公平比较各方法,对比实验采用相同的训练策略。数据集划分采取5/7作为训练集,1/7作为验证集,1/7作为测试集。网络参数初始化采用迁移学习的方法将vgg16网络在ImageNet数据集上训练完备的模型参数作为初始值,新添加的网络层采用先粗调再微调的方式进行训练。粗调采用固定学习率0.9,动量为0.9,batchsize为16。微调训练模型的部分超参数设置如下:batchsize为16,使用指数衰减学习率,其初始值设置为0.01,动量为0.9,每1 000步更新一次学习率。

表2是B-CNN与各改进网络的实验结果对比。如表2所示,CBP网络模型在精简双线性池化的情况下,降低了输入分类器的特征维度,节省了计算开销,训练时长缩短超40 min,但识别精度相对B-CNN网络下降了0.13个百分点。H-CBP网络对vgg16的高层卷积层进行特征融合,正确率较CBP网络略有提升,由于进行了分层特征融合,训练时长稍有上升,相比文献[11]中分层特征融合网络在细粒度鸟类图像分类上的的优良表现,在F4K鱼类数据集上表现不佳,可能存在以下两个原因:其一是F4K鱼类数据集中鱼类的尺度变化大,且特征融合过程受水下图像背景干扰较大,其二是本文使用的水下鱼类数据集是未经过图像增强或复原的低质量图像,特征融合的效果较一般。STN-H-CBP网络模型在H-CBP网络的基础上进行了改进,使用空间变换网络作为注意力机制过滤水下图像背景,结果表明,三种不同融合方式形成的网络在F4K数据上的识别率都有不同程度的提升,但不同的融合方式间存在性能差异,融合方式见表1,分别较H-CBP网络的识别精度提高了0.03、0.19和0.8个百分点,且平均训练时长缩减超20 min。由此可见,过滤图像背景可增强目标图像中特征融合的有效性,且对减少计算量有一定贡献。B-CNN及其精简模型CBP已表明高维特征交互能更有效地提升模型对细粒度特征的捕捉能力,此处结合背景过滤与分层精简特征融合策略的实验结果作进一步分析。方式1采取conv5中三个卷积层两两交互的策略,识别精度较存在高维特征交互的方式2与方式3略低,根据Grad-CAM算法的可视化结果,conv5_1在鱼鳍等金鱼的细粒度特征处的激活响应更为强烈,方式2采取的融合策略缺少层间的交互,仅在最后进行了级联融合,相对而言,方式3充分利用各层与conv5_3的融合,识别精度提升也更为明显。

表2 实验结果对比Table 2 Comparison of experimental results

图6是不同特征融合方式的网络训练至收敛过程中,损失函数与识别精度变化趋势经平滑化处理后的对比图,子图(a)为损失函数对比曲线,子图(b)为识别精度变化趋势。子图(a)与子图(b)中,模型STN-H-CBP-a、模型STN-H-CBP-b与模型STN-H-CBP-c训练过程中损失函数与识别精度的变化趋势分别对应了黑色、蓝色与红色的曲线。由子图(a)与子图(b)可见,模型STN-HCBP-c损失函数下降速度与模型收敛速度更快,模型STN-H-CBP-b次之,模型STN-H-CBP-a最慢。结果表明,模型STN-H-CBP-c采取的融合策略性能最佳,即高维特征交互与背景过滤可改善网络模型在鱼类数据集上的性能。

图6 不同特征融合方式训练过程对比Fig.6 Comparison of training process of different feature fusion methods

综上可知,采用空间变换网络为注意力机制对水下鱼类图像进行背景过滤,结合分层精简双线性池化网络在增强层间交互与特征降维的能力进行端到端的网络训练,所提方法在F4K鱼类数据集上的识别精度与训练速度较对比方法均有提升。

4 结束语

(1)H-CBP网络在未经背景过滤的情况下表现一般,相对于传统的B-CNN网络识别精度略有下降,可能的原因是水下图像分辨率较低且背景复杂,导致卷积层之间特征交互对局部特征的提取能力改善较小,下一步可结合水下图像预处理方法进行改进。

(2)STN作为注意力模块嵌入网络进行端到端训练,可有效过滤水下图像中的背景干扰,以F4K为实验数据集,使得STN-H-CBP网络在识别精度上较H-CBP网络提高0.8个百分点,训练时长最大缩短30 min。

(3)STN-H-CBP网络综合了STN对图像中局部目标的关注能力,和H-CBP网络对模型的近似精简与层间特征交互的能力,综合表现较好。

猜你喜欢
细粒度精简鱼类
融合判别性与细粒度特征的抗遮挡红外目标跟踪算法
红外技术(2022年11期)2022-11-25 03:20:40
基于MFCC和ResNet的鱼类行为识别
细粒度的流计算执行效率优化方法
高技术通讯(2021年1期)2021-03-29 02:29:24
时常精简多余物品
特别健康(2018年2期)2018-06-29 06:14:00
基于双线性卷积网络的细粒度图像定位
一种面向应用的流量监测精简架构设计
电子制作(2017年17期)2017-12-18 06:40:47
奇妙的古代动物 泥盆纪的鱼类
探索科学(2017年5期)2017-06-21 21:16:16
支持细粒度权限控制且可搜索的PHR云服务系统
鱼类是怎样保护自己的
鱼类怎样呼吸