李国瑞 何小海 吴晓红 卿粼波 滕奇志
(四川大学 四川 成都 610065)
细粒度图像识别是深度学习领域的重要研究方向,其目的是对属于同一基础类别的图像进行更加细致的从属类别划分,由于从属类别内部之间差别细微,细粒度图像识别任务相较于传统通用图像识别任务难度更高。近年来,随着我国生态保护事业的蓬勃发展,物种监控图像视频数量剧增,生物种类识别的需求也剧增。细粒度鸟类识别成为其中重要的任务之一,其识别结果可以帮助生物学家有效监控鸟类种群分布及生态环境的变迁。目前,针对细粒度图像识别任务,大多数研究都以卷积神经网络(Convolutional Neural networks,CNN)为基础,主要分为基于强监督学习的细粒度图像识别和基于弱监督学习的细粒度图像识别两大类[1]。
基于强监督学习的细粒度图像识别,除了使用图像真实类别标签以外,还使用了目标标注框坐标等局部语义标注信息。Wei等[2]提出的Mask-CNN,是首个端到端地将深度卷积特征运用到物体检测的细粒度图像识别模型。基于强监督学习的细粒度图像识别方法使用了局部语义标注信息,相较于传统CNN方法,检测精度和模型泛化性能均有明显提升。但由于人工标注成本昂贵,且不能确保局部语义的有效性,此类算法在实际应用中受到限制。因此,目前主流的研究方法基于弱监督学习的思想,其优点在于,模型仅使用图像真实类别标签,不再使用局部语义标注,也能准确定位到局部关键区域,得到与基于强监督学习相当的准确率。Yu等[3]提出HBP模型,开发了一种简单有效的跨层双线性池化技术,以一种相互增强的方式学习图像的细粒度表征。Yang等[4]首次提出一种新颖的自监督机制网络NTS-Net,可以有效定位出关键区域而无需局部语义标注信息,在广泛的基准数据集上实现了最先进的性能。
尽管对细粒度图像识别的研究已经取得了不少成果,但仍有诸多问题亟待解决。本文工作基于弱监督学习的思想,主要解决细粒度鸟类识别的两大难点:第一是在没有局部语义标注的情况下,自动定位到具有有效信息的关键区域;第二是提出一种有效的特征融合方式以提高最终分类性能。
残差网络(ResNet)[5]首次提出残差块结构,其基本结构如图1所示。该结构在增加网络深度的同时,能有效减少网络参数量,防止过拟合现象发生,一定程度上避免网络性能随深度增加而降低。
图1 ResNet网络残差块结构
ResNet有不同的网络层数,其中ResNet-50共有50层网络层,分为Conv_1层、Conv_2层、Conv_3层、Conv_4层和Conv_5层,Conv_1层为1个单独卷积层,Conv_2层到Conv_5层分别包含3、4、6、3个残差块结构,Conv_5层后为全局均值池化层(Global Average Pooling,GAP),GAP层后为全连接层(Fully Connected Layers,FC)。
Ren等[6]在多目标检测中提出区域建议网络(Region Proposal Networks,RPN),利用CNN卷积操作后的特征图谱生成具有有效信息的区域,代替了选择性搜索等方法,在检测速度上提升明显。
RPN是一种全卷积神经网络,整个网络没有全连接层,所以该网络能接受任意尺寸的图像输入,输出一系列图像局部矩形区域坐标及每个区域是目标和背景的概率得分,原理如图2所示。锚点是特征图谱上的一个像素映射到原图像上的像素位置,对应于一组预先设定的k1个不同尺度和k2个宽高,以相应锚点为中心,生成k=k1×k2锚点框。对于m×m大小的特征图谱,采用3×3×256卷积核进行卷积,得到m×m×256维向量,再用大小为1×1×2k卷积核对每个256维向量进行卷积,从而得到对应的2k个置信度,代表特征图谱上相应像素对应原图像上的锚点对应的锚点框前景和背景的概率。同时,用1×1×4大小卷积核对256维向量进行卷积操作,得到4k个锚点框的位置信息,每个锚点框的位置信息由矩形框的左上角点的横坐标偏移量、纵坐标偏移量和矩形框的长度偏移量、宽度偏移量共4个数据组成。
图2 RPN核心原理图
RPN网络会产生大量的候选框坐标,因此存在对同一目标产生多个近似的候选框。Neubeck等[7]提出的非极大值抑制(Non-MaximumSuppression,NMS)算法,能有效去除同一目标冗余的候选框,保留信息含量最丰富的候选框。首先,对同一类别的候选框按RPN网络得分高低排序,选出得分最高的候选框;其次,遍历剩余得分候选框,计算与当前最高得分候选框的重叠面积(Intersection over Union,IoU),设为S,如果S大于一定阈值,将该遍历的候选框删除;重复前面步骤,直到所有的剩余候选框都和得分最高的候选框比较过,留下非冗余候选框。S的计算方法如下:
(1)
式中:A代表得分最高的候选框区域,B代表每次遍历的候选框区域,A∩B表示区域A、B交集部分的面积,A∪B表示区域A、B并集部分的面积。
针对细粒度鸟类识别的两大难点,本文提出如图3所示的细粒度鸟类识别网络模型。该模型由3种网络组成,分为区域定位网络、特征提取网络和特征融合网络CFF-Net。其中,特征提取网络用于提取全局和局部图像特征,且所有特征提取网络共享网络训练参数;区域定位网络用于在没有局部语义标注信息的情况下,自动定位出图像中信息含量最丰富的Top-n个局部区域,且对每一个区域信息量含量打分,按大小分别排序为:I0,I1,I2,…,In;CFF-Net网络对多个局部和全局特征进行融合,有效结合局部与全局特征信息,提高最终分类性能。
图3 细粒度鸟类识别网络模型
基本特征提取网络既要保证能提取有效图像特征及较快的损失收敛速度,还要避免过拟合现象的发生。本文采用ResNet-50作为特征提取网络,由于训练集图片与测试集图片数量相当,在ResNet-50的GAP层后增加一个dropout层,dropout radio设为0.5,防止过拟合现象发生。同时修改FC层输出参数,使其最终输出为200维,满足数据集类别总数。特征提取网络在训练时加载在ImageNet图像库预训练好的模型参数,对网络进行微调。
基于弱监督学习的细粒度图像识别,其难点是在没有局部语义标注信息的情况下,自动定位出具有有效信息的关键区域。由于图2中原始RPN网络需要局部语义标注信息为监督对位置进行精细修正,因此对原始RPN网络做如下精简:
(1) 删除图2中RPN网络回归层,直接得出对应于原图的局部区域坐标,不做位置的精细修正;
(2) 修改图2中分类层卷积核大小为1×1×256×k,只得到k个置信度,将其定义为每个锚点框内所含有效信息的丰富程度,而不再代表每个锚点框内目标和背景的概率大小。
本文引入精简后的RPN,改进提出图4所示的区域定位网络。
图4 区域定位网络原理图
区域定位网络共享特征提取网络的前Conv_5层,然后引入连续的3个卷积网络,在每层卷积网络输出的特征图谱上使用精简后的RPN网络。原始RPN网络进行目标检测时,以最后一层卷积作为输入,该方法在大目标定位时性能优异,但对于小目标,卷积池化到最后一层时,语义信息已经基本消失,不能很好地定位出小目标。因此,借鉴FPN[8]网络的思想,针对不同的特征图谱层使用精简后的RPN网络,较浅的特征图谱层用于定位更小的目标,而较深的特征图谱层用于定位更大区域的目标。
由于输入图片大小为448×448,对每一层特征图谱选定的基准锚点框大小分别设为64×64、128×128和256×256,单独设置每一层锚点框的面积比和宽高比,共产生1 614个候选框与对应的信息量得分。经NMS算法后,选取Top-n个得分最高的候选区域,作为局部区域,将其上采样到224×224大小,送入后续的特征提取网络,其中,NMS算法中IoU取0.3。
区域定位网络作为选取局部有效信息区域的重要手段,在没有局部语义标注信息的前提下,如何保证得分越高的区域,其所含有效信息越丰富,成为影响定位网络性能的核心因素。NTS-Net提出了一种新颖的自监督机制,将整幅图像的类别标签作为局部区域图像的类别标签,局部区域图像经特征提取网络后有图像类别标签作为监督,得到置信度,即为标定图像(ground-truth)的概率大小。置信度越高的局部区域图像,其所含有效信息越丰富,对应的通过定位网络的打分应该更高。基于该思想,定义经过区域定位网络得到的前M个得分最高的区域为:
R={R1,R2,R3,…,RM}
(2)
其得分为:
(3)
对应的置信度为:
C={C1,C2,C3,…,CM}
(4)
由此可知,若C1>C2>C3>…>CM,则I1>I2>I3>…>IM。其损失函数定义为:
(5)
上述公式中,函数应为非增函数,用来确保当Cs>Ci时,Is>Ii。该损失函数能有效监督区域定位网络的打分性能,定位出局部有效信息区域,结合全局图像信息,使最终分类性能提升。
局部区域有助于更细致地表征对象,因此融合局部区域特征和全局图像的特征将获得更好的分类性能。目前,局部图像和全局图像特征融合方式大多采用简单的级联,不能充分利用局部区域所表达的更细微的特征信息。本文提出了一种基于跨层技术的特征融合网络CFF-Net,其网络结构如图5所示。
图5 CFF-Net网络结构示意图
区域定位网络定位出前M个局部区域,经特征提取网络后,形成局部特征图谱A1、A2、A3、…,与全局特征图谱F分别进行点乘操作。该过程可用以下公式表示:
Fk=Ak⊙Fk=1,2,…,M
(6)
点乘操作得到的特征图谱,经GAP层后得到特征向量,该过程可定义为:
fk=(Fk)
(7)
CFF-Net整个特征融合过程可用如下公式表示:
P=
(8)
本文所用数据集CUB-200-2011,是一个鸟类公共图片数据库,包含200种鸟类,共计11 788幅图片。其中5 994幅为训练集,5 794幅为测试集。图6展示了数据集中两种不同种类的鸟类,如果观察者没有相关领域的专业知识,很难区分两种鸟类,而该数据集包含很多类似细微差别的种类。
图6 数据集中两种鸟类对比
本文实验使用GPU为Nvidia GTX1080Ti,显存11 GB,CPU为Inter Core i5 7500,内存为8 GB,使用CUDA 8.0,操作系统为Ubuntu 16.04, 深度学习框架使用Pytorch-0.4.1。
本文所提细粒度鸟类识别网络能实现端到端地的训练。实现细节中,batch_size设为10,初始学习率设为0.001,每过60次epoch学习率变为原来十分之一,使用SGD优化器。图7展示了训练时总损失的收敛情况,可以看出,在40次epoch后总损失不再明显下降,50次epoch后总损失几乎不再变化。其原因为:学习率设置过大,导致梯度来回震荡。因此60次epoch后将学习率降低,可见总损失继续收敛。
图7 训练损失迭代
图8展示了本文改进的区域定位网络在数据集上定位的前4个得分最高的局部区域。可见,定位的局部信息区域基本包括了鸟类的头部、躯干及翅膀等能明显表征鸟类特点的部位,显示了区域定位网络在没有局部语义标注信息下优异的自动定位能力。
图8 区域定位网络定位的局部区域
为了验证CFF-Net的性能,本文在实验时对改进后的ResNet不同特征图谱或特征向量分别做特征融合操作。融合方式如表1所示。
表1 特征融合组合方式
局部信息区域在特征提取前上采样到224×224大小,全局图像大小为448×448,因此,对于同样的卷积层输出,特征提取层2、3、4总是比特征提取层1得到的特征图谱小。方式1将全局图像输入的Conv_4层特征图谱和局部区域输入的Conv_3层特征图谱做特征融合操作,得到的特征图谱大小为1 048×28×28;方式3和方式4直接对特征向量做融合操作,得到的也是特征向量。由于NTS-Net中局部区域个数M取4时表现出最优异的分类性能,表2展示了在M=4时,不同特征融合方式的最终分类准确率对比实验结果。
表2 不同特征融合方式准确率
由表2可以看出,特征融合方式1分类性能较低,原因在于方式1将融合后大小为28×28的特征图谱直接进行了全局均值池化,导致语义特征信息的丢失。方式2和方式3使用更深层卷积的特征图谱进行融合,丢失的语义信息变少,分类性能明显提高,方式4准确率最高为87.8%,高于目前主流的细粒度鸟类识别算法,验证了本文所提CFF-Net网络的有效性。
为了进一步验证不同局部区域个数对最终分类性能的影响,本文测试时选取分类性能最优异的特征融合方式4,加入不同局部区域个数M做对比实验,其中M=0,1,2,3,4,5。结果如表3所示,可以看出,局部信息区域的加入对最终分类结果提升了2.7%,随着加入区域个数不断增多,识别准确率不断增加,当M=4时,准确率最高为87.8%;当M=5时,识别率开始下降,表明后续局部区域所含有效信息已经不能更好地表征图像全局信息。该结果验证了局部有效信息区域的加入对分类性能的提升,同时也进一步验证了M取4的有效性。
表3 不同M下准确率对比
表4展示了不同方法在CUB-200-2011数据集上分类准确率的比较。由于区域定位网络优异的定位性能及CFF-Net有效的特征融合能力,本文方法在CUB-200-2011数据集上取得了87.8%的分类准确率,高于目前主流的细粒度鸟类识别方法,表现出优异的分类性能。
表4 不同算法分类性能对比
本文针对鸟类图像的细粒度识别,提出了一种基于语义信息跨层特征融合的识别网络。区域定位网络在没有局部语义标注信息的情况下,自动定位出局部有效信息区域;特征提取网络提取全局图像与局部区域图像的有效特征;CFF-Net对多个特征图谱或向量融合。本文方法在CUB-200-201数据集上表现出良好的自动局部区域定位能力,取得了87.8%的分类准确率,高于目前主流的细粒度鸟类识别算法。