基于RPN与B-CNN的细粒度图像分类算法研究

2019-04-01 09:10赵浩如刘国柱
计算机应用与软件 2019年3期
关键词:细粒度识别率对象

赵浩如 张 永 刘国柱

(青岛科技大学信息科学技术学院 山东 青岛 266000)

0 引 言

作为计算机视觉的重要研究方向,图像分类[1]问题一直备受学者关注。图像分类又包括对象级分类,如对猫和狗进行分类。还包括细粒度分类[2],如对狗的不同品种进行分类。由于细微的类内差异,往往只能借助微小的局部差异才能分出不同的子类别,使得细粒度分类十分具有挑战性。细粒度分类的方法主要包括两种:一种是基于强监督的分类模型,如Part-based R-CNN[3]不仅需要物体级标注,还需要局部区域的标注,这大大限制了在实际场景的应用;另一种是基于弱监督的分类模型,如B-CNN[4]仅仅需要图像级别的标注,不需要局部信息的标注。因此,基于弱监督的分类模型在识别精度上要比基于强监督的分类模型差一些。Huang等[5]提出了Part-Stacked CNN进行细粒度分类。这个网络需要提供对象及部位级标签,它分为定位网络和分类网络两个子网络,采用经典的AlexNet网络结构作为整个网络的基本结构。Shen等[6]提出一种迭代的传递策略来优化目标框,借助对象及部分级标注框进行细粒度分类。Yao等[7]提出了多级的由粗到细的目标描述方法进行细粒度分类,不需借助标注框,但识别率不如最前沿的算法。Liu等[8]提出了基于全连接的注意力机制的网络结构进行细粒度分类,未考虑各层特征间的联系。Murabito等[9]提出显著性特征分类网络(SalClassNet)。它包括两个子网络,网络A计算输入图片的显著性特征,网络B计算网络A输出的显著性特征进行细粒度分类,计算显著性特征首先要计算图像像素对应正确分类标准化分数梯度的绝对值,然后取三个颜色通道的最大值,因此,计算成本太高。综上,为避免人工标注部位级标签花费的巨大时间,以及减少计算成本。本文提出利用soft-nms和OHEM优化RPN算法得到更精确的对象级标注,以防止背景的干扰,同时改进B-CNN网络,加强不同层特征间的空间联系,提高识别精度。

1 算法描述

为利用细微的类内差异,本文采用OHEM[10]筛选出对识别结果影响大的数据,可以有效防止无关信息的干扰。然后,利用soft-nms[11]优化RPN[12]网络,选择出置信度更高的目标所在区域。最后,改进B-CNN网络结构对目标区域进行细粒度分类,具体的算法流程如图1所示。

图1 算法流程图

1.1 获取目标区域

RPN网络的作用是输入一张图像,输出置信度排名前N个目标可能在的区域。本文利用OHEM筛选出对最终识别结果影响大的样本,并用筛选后样本进行随机梯度下降。去除了对识别结果影响小的样本后,有效防止过拟合,具体算法流程如图2所示。

图2 获取目标区域算法描述图

图2中,OHEM有两个不同的ROI网络。左边的ROI网络只负责前向传播计算误差,右边的ROI网络从左边的ROI网络中通过对误差排序,选出误差大的样本作为右边ROI网络的输入。RPN网络输出的矩形目标框Di,其得分fi的计算如下:

(1)

式中:Si是重叠框的交集的面积;S是重叠框的并集的面积。

NMS(Non-maximum suppression)是RPN中重要的组成部分。RPN输出一系列的检测框Di以及对应的分数fi。NMS设置常数阈值τ,当检测框的得分大于阈值τ,将其放入最终的检测结果集合D。同时,集合D中任何与检测框M的重叠部分大于重叠阈值τ的检测框,被强制归零并移除。非最大抑制算法中的最大问题就是将相邻检测框的分数均强制归零后,如果真实的物体在重叠区域出现,则将导致对该物体的检测失败并降低了算法的平均检测率。soft-nms不将大于阈值τ的相邻目标框得分重置为0,而是乘以一个衰减函数。选取所有的目标框中得分最高的N个,这样可以有效减少假阴性的概率,提高平均识别率。具体计算如下:

(2)

1.2 基于深度学习进行细粒度分类

Bilinear CNN模型包括Stream A和Stream B,Stream A和Stream B的网络结构都是采用的VGGNet。Stream A的作用是对物体的局部信息进行定位,而Stream B则是对Stream A检测到的局部信息进行特征提取。两个网络相互协调作用,完成了细粒度图像分类过程中两个最重要的任务:物体、局部区域的检测与特征提取。本文在B-CNN基础上增加了两个外积操作,外积计算如下:

B=fTA·fB

(3)

双线性特征B2、B3分别是conv4_3的特征与conv5_3的特征,conv5_1的特征与conv5_3的特征进行点乘得到的。然后将双线性特征B2、B3与原有的conv5_3层特征与conv5_3层特征点乘得到的双线性特征B1拼接起来,以加强不同层特征间的空间联系。最后,将拼接后的特征B送进全连接层,进行softmax分类。具体算法流程如图3所示。

图3 改进的B-CNN算法流程图

(4)

(5)

2 实验仿真

2.1 实验背景

为验证本算法的有效性,与文献[5-9]中的算法的结果进行对比。文献[5-9]分别采用CUB200-2011数据集[14]与Standford Dogs数据集[15]。因此本文也在两组数据集上进行两组实验,来证明本算法的识别精度比文献[5-9]中的结果高。第一组实验是在CUB200-2011数据集进行的测试和验证。该数据集是最常用和经典的细粒度分类数据集,包括200中不同类别,共11 788张不同鸟类图片,不仅提供了对象级标注框而且还提供了局部级标注框。第二组实验是在Standford Dogs数据集[15]进行测试和验证。该数据集包括120类狗的图像数据,共有20 580张图片,只提供对象级标注框。基于RPN与B-CNN的细粒度分类过程中所用到的主要参数如表1所示。

表1 B-CNN主要参数表

2.2 实验结果与分析

本文利用OHEM与soft-nms优化RPN,获取对象级标注,然后输入到改进的B-CNN。在RPN阶段,训练集、验证集和测试集的比例是7∶2∶1。采取的Anchor的尺度是(128,256,512),比例为(0.5,1,2),共九种。将一张图片输入到RPN就会产生大量的Anchor,对这些Anchor进行soft-nms,最终输出得分最高的目标框。在目标框提供的位置上剪贴图片,剪贴后的图片只含有目标对象,没有背景的干扰。B-CNN阶段中训练集,验证集与测试集的比例是7∶1.5∶1.5。在ImageNet中1 000类分类训练好的参数的基础上,在CUB200-2011数据集进行微调。将图片输入到B-CNN后,Stream A的作用是对图像中对象的特征部位进行定位,而Stream B则是用来对Stream A检测到的特征区域进行特征提取。两个网络相互协调作用,完成了细粒度图像分类过程中两个最关键的任务。

本文采用softmax函数做分类函数输出一个概率值,计算公式如下:

(6)

式中:Si是第i个类别的概率值;ei是第i个类别的得分。

与文献[5-6]借助对象级及部位级标注框进行细粒度分类对比,本文仅仅采用了对象级标注框。与文献[7]利用迭代的方法获取对象级与部位级标注框对比,本文利用RPN提取目标区域,并将深度学习框架的注意力[16]全放在目标区域,防止无关信息的干扰,提高识别速度与精度。实验结果如表2所示。实验表明,本文的算法识别率为85.5%,比文献[5-7]中的方法分别高了8.90%、1.5%、3.0%。证明本文提出的基于RPN与B-CNN的细粒度分类算法,将识别的重心放在目标区域内。利用B-CNN优化目标区域的同时,在目标区域内提取特征,不仅不需要提供额外的部位级标注框,并且准确率有较大提高。

表2 不同方法在CUB200-2011数据集的识别率

Standford Dogs数据集是从ImageNet数据集中提取狗的类别组成的。本文在第一组实验获取的参数基础上进行微调,实验结果如表3所示。与文献[8]基于对象级与部位级标注框与注意力机制相比,虽然两者都将识别重心放在目标区域,但本文在仅仅使用对象级标注框的前提下,利用外积将B-CNN的Strean A与Stream B统一成一个端到端的训练模型。与文献[9]使用SalClassNet网络提取显著性特征,并对显著性特征进行细粒度分类相比,本文使用对象级标注框在ROI区域上进行特征提取。因此,识别率分别比文献[8]和文献[9]的方法高了1.2%和3.9%。这表明同时对标注框与类别进行端到端的训练能有效提高识别率。

表3 不同方法在Standford Dogs数据集的识别率

此外,对本文提出的算法,增加了5组对比实验分别为:方案一,不使用OHEM优化RPN,不改变B-CNN网络结构;方案二,不使用soft-nms优化RPN,不改变B-CNN网络结构;方案三,在使用OHEM及soft-nms的前提下,不增加B-CNN 的外积操作;方案四,仅增加B-CNN的外积操作;方案五,使用OHEM及soft-nms,同时增加B-CNN的外积操作。实验对比结果如表4所示。实验结果表明,方案五的识别率为90.10%,比方案一、方案二、方案三、方案四分别高了2.9%、2.3%、1.6%、1.1%。方案一仅使用OHEM,仅有效地防止了过拟合;方案二仅使用soft-nms,使输出的对象级标注更加准确,并减少了假阴性概率;方案三则结合了方案一与方案二,识别率有所提升;方案四仅增加B-CNN的外积操作,加强了不同层之间的空间联系。这表明使用OHEM与soft-nms改进RPN,能让获得的对象级标注更加精确,既可以避免背景的干扰,减少假阴性,又能有效防止过拟合。而增加B-CNN的外积操作,增加了不同层特征间的空间联系。这是因为不同层关注的特征不同并且感受野大小也不同,这可以有效地提高识别率。

表4 对比实验结果图

3 结 语

本文针对细粒度分类子类别间细微的类间差异、较大的类内差异、依赖大量人工标注信息等问题,提出了基于RPN与B-CNN的细粒度分类算法。本文的主要贡献如下:(1) 利用RPN网络自动输出对象级标注,不需要部位级标注,避免标注对象部位花费的精力。(2) 使用soft-nms和OHEM算法改进RPN,输出更加精确的区域提议,可以有效防止过拟合并减少假阴性概率。(3) 改进B-CNN网络,增加不同层间的外积操作,以融合不同层的特征,并将双线性特征级联在一起加强空间的联系。实验结果证明,基于RPN与B-CNN的细粒度分类算法能显著提高识别率。但由于增加了RPN网络以及OHEM与soft-nms操作,程序的运行时间相比其他算法有所增加。并且,未将RPN网络与B-CNN网络联合起来,也是本文的不足。接下来,我们的工作重心将放在使RPN与B-CNN网络联合成一个端到端的模型,并提取同类物体不同子类的差异特征,作为深度网络的输入来提高准确率。

猜你喜欢
细粒度识别率对象
晒晒全国优秀县委书记拟推荐对象
在线评论情感分析研究综述
攻略对象的心思好难猜
基于型号装备?角色的IETM访问控制研究
基于web粒度可配的编辑锁设计
基于文本挖掘的微博文本情绪分析技术研究
档案数字化过程中OCR技术的应用分析
基于PCA与MLP感知器的人脸图像辨识技术
科技文档中数学表达式的结构分析与识别
人工智能现状和发展