APP下载

基于改进Faster RCNN与Grabcut的商品图像检测①

2018-11-14胡正委

计算机系统应用 2018年11期
关键词:边框标定类别

胡正委,朱 明

(中国科学技术大学 信息科学与技术学院,合肥 230031)

近年来,深度学习被用于很多领域.如人脸识别,对象检测等[1–4].深度学习可以从大量的数据捕捉有用的信息,同时也由于大数据时代的来临与计算设备性能的提高,使深度学习的应用成为现实.VGG[1,5]模型起初被用于物体识别,然后被扩展到人脸识别等任务中.GoogleNet[6]提出的Inception结构,使用多个小尺寸的卷积核来代替大尺寸卷积核,减少了网络参数,也提高了模型性能.Resnet[7]的提出很大程度上改进了传统的网络结构,并在Imagenet上获得最好的效果.通过迁移学习[8],这些网络模型也已经被广泛地应用到了各种识别任务中.同时,对象识别任务逐渐扩展到对象检测任务,即从单个对象的分类扩展到了多个对象的分类和定位.Faster RCNN[3]及其扩展版本成为近年来最有效的方法之一.

然而若将上述方法迁移到新的任务中,都需要在新的任务上使用大量标定数据重新调整模型.但是,在实际场景中,数据的标定是非常难的工作,需要消耗很大的财力物力和人力[9].Vinyals,Koch[10,11]等人开始致力于研究如何在仅有少量训练样本甚至没有训练样本时进行分类工作.然而相比较于分类任务的数据标定,检测任务中边框定位数据的标定更难获得.如何在没有边框标定数据的情况下,将分类任务迁移到检测任务也是目前研究的难点.

本文提出一种方法,解决了数据瓶颈问题,可以在无需边框标定的情况下进行商品的检测定位.本文构建的数据集中,训练图像仅包含单个商品,且没有边框标定,而测试图像中包含多个商品.本文首先对Faster RCNN进行改进,提出非类别特异性Faster RCNN,并结合迁移学习,对训练数据进行预标定; 然后结合Grabcut[12]无监督方法,对训练数据进行样本增强,生成逼真的多个物体的训练图像; 然后再对非类别特异性Faster RCNN进行训练,使其可以检测多个物体; 最后提出基于Faster RCNN的重识别方法,在Faster RCNN中添加重识别层,来提高多个物体检测精度.

1 非类别特异性Faster RCNN

传统的Faster RCNN包括两部分,如图1所示: 区域候选网络(RPN)和头网络(Network Head).其中区域候选网络为头网络提供Feature Map(特征图) 和ROI(感兴趣区域).头网络利用ROIAlign/ROIPool[13]从特征图中提取特定ROI的特征,并利用分类层和边框回归进行物体分类和边框回归.

图1 Faster RCNN框架

其中分类层的输出维度为分类类别数目C与背景类别,即C+1.回归层输出维度为类别数目的4倍,即4C,为预测的每个类别的中心坐标与长宽.本文将其中的回归层称为类别特异性的回归,因为其对每个类别都会产生对应的边框预测.然而在预测时,只有1个类别的边框会被选中.因此其它类别的边框回归结果可以认为是一定程度的冗余.而且不同的数据集具有不同的类别数目,则相应的边框回归层也需要采集大量的边框标定数据进行训练.

本文对回归层进行改进,提出非类别特异性回归层.其中,回归层输出维度与类别无关,输出维度由4C改为4.并在公开的COCO[14]数据集上进行训练,然后迁移到商品数据集上,且不需要再训练.一方面减少了模型的冗余,另一方面解决了数据的瓶颈问题.

本文利用提出的非类别特异性Faster RCNN,对构建的商品数据集中的训练图像进行预标定.其中训练图像仅包含单个商品.因为实际应用中,单个商品的图像非常容易采集,而边框的标定工作则需要大量的成本.如图2显示了本文提出的非类别特异性Faster RCNN对训练图片的预标定效果.

图2 非类别特异性Faster RCNN边框预标定

2 结合Grabcut的样本增强方法

非类别特异性的Faster RCNN解决了边框回归的问题,但是在训练数据中只有单个商品,而测试图片中有多个商品时,分类问题是目前很难解决的.即使可以用单个商品来训练分类模型,但测试图像中的多个商品会存在边框重叠甚至遮挡的情况.在训练图像没有出现商品重叠的情况下进行模型的训练,会使模型的分类能力不够鲁棒,不足以识别边框重叠甚至遮挡的商品,增大了分类的难度.因此本文提出一种样本增强方法,通过对单个商品训练图片的处理,来生成具有多个商品的训练图像.

通过类别非特异性的Faster RCNN,可以得到单个商品图像中商品的边框.一个直接的想法是将图像中的商品边框部分提取出来,经过旋转或者平移之后,与其它商品进行组合,如图3所示.

图3 仅基于边框预标定的样本增强

然而,这种方法会导致商品边框中的背景区域会覆盖其它商品区域,与实际图片相差很大.因此仅利用商品图像的边框不足以完成逼真的样本生成.若能获得商品的精确区域信息,例如商品对象掩码,则可以分离出背景区域,解决生成的样本中商品被背景遮挡的问题.因此本文利用Gabcut方法对训练图像中商品进行分割.

Grabcut在用户交互的基础上,分别为背景和前景构建了GMM(高斯混合模型).背景和前景模型都分别包含个GMM函数.RGB图像中的像素集定义为,图像中每个像素都有一个高斯函数标记,表示一个GMM函数.最终组成了向量每个像素还有一个表示是否为背景的标记,值为0表示背景,为1表示前景.并定义能量函数:

其中,U定义为:

Grabcut与Graphcut[15]方法都是交互式图像分割方法.其中Graphcut需要在交互时提供精确前景和背景像素种子区域,并计算其它像素与前景和背景的相似度,利用图论算法计算最佳分割.而Grabcut算法的用户交互较少,仅需要提供一个包含前景的矩形边框,分割步骤如下:

(1) 通过用户交互提供前景对象的边框,将边框外的区域初始化为,边框内的区域初始化为不确定区域前景区域初始化为空对于区域总的像素,置区域中像素,置然后分别对的像素分别初始化个高斯函数.

在利用本文提出的非类别特异性Faster RCNN之后,可以获得训练图像中单个商品的矩形边框,因此只需要再结合Grabcut算法,对商品的精确区域进行分割.然后再将训练集中的单个商品区域进行随机旋转和平移,并进行随机组合,即可生成多个商品的训练图像,效果如图4所示.值得注意的是,考虑到数据的准确性,商品之间不能完全覆盖,因为如果商品过度覆盖,会导致区域内的真实商品几乎被覆盖,而占大面积区域的商品与实际标签不符,这样会误导识别模型的训练.因此随机组合时需要对商品的重叠区域面积进行约束,假设重叠面积的上限为sup.考虑三种融合策略:(1)进行随机旋转和平移,仅约束重叠面积的上限,即sc≤sup,即融合时,商品可能会距离较远,这是sc=0.(2)在限制重叠面积上限的同时,对重叠面积的下限做约束,即sc≥0.这种方案使商品之间必须有重叠,保证了商品之间的距离较近,但又没有大面积覆盖.(3)增大对重叠面积下限的约束,即这样做是为了商品之间重叠的可能性更大,并通过模型的训练来区分重叠的情况.

图4 结合Grabcut的样本增强

3 重识别层

Faster RCNN是一种两级(tow stage)方法.第一级由RPN(候选区域网络)先筛选出候选区域,过滤掉一部分背景区域.第二级由头网络对候选区域进行细分类,同时对每个候选区域的边框进行矫正,即边框回归.显然RPN提取的候选区域是不精确的,这会影响头网络识别准确度.因此本文提出重识别层,来提高Faster RCNN识别的准确度.

因为经过头网络的边框回归层之后的边框位置会更精确,这里的边框回归层为本文提出的非类别特异性回归方法.而且头网络的分类层又过滤了一大部分背景区域.本文将利用头网络回归之后的精确区域,并结合ROIAlign方法,对这些区域作为输入,再一次经过头网络的分类层.如图5所示.

图5 重识别层模型

传统Faster RCNN可以定义为:

所添加的重识别层,选出候选区域中被分类为非背景的区域,背景类别用0表示,然后将其回归边框作为新的候选区域再进行分类和回归,表示为:

4 实验分析

4.1 数据集

本文在构建的商品数据集上验证了提出了方法.本文提出的数据集如图6所示.利用本文的方法.我们不需要在商品数据集上训练边框回归.所以本文构建的商品数据集训练图像仅包含类别信息.训练集中共包含3200张训练图像,400张测试图像,共计40个商品类别.训练图像通过2个摄像头在4个不同的视角下拍摄的,每张图像只有一个商品对象.而测试图像包含多个商品,使用另外一个摄像头拍摄,且图像中的商品位置,角度多样,且包含跨背景的测试图像,如购物车背景下采集的测试图像.

图6 本文构建的商品数据集图片示例

所提出的非类别特异性Faster RCNN是在COCO数据集训练完成的,并直接应用于商品训练图像数据的预标注.COCO数据集共80个类别,并包括非常多的图片以及边框和类别标注.

本文构建的商品数据集和COCO数据集主要的区别在于,本文商品数据集中的物体时可旋转的,且训练数据远远少于COCO数据集.且本文构建的数据集中,训练图片仅包含单个商品,且不需边框标定.

4.2 网络模型训练

本文提出的非类别特异性回归层来改进原始Faster RCNN 的类别特异性回归层,组成非特异性Faster RCNN 模型.希望能够从公开数据集中学习边框回归知识,并直接应用于单个商品训练图片的预标注.(1) 首先利用原始的FasterRCNN 在COCO 上进行训练,其主干网络中Resnet 模型使用ImageNet 预训练模型,然后进行分类层和回归层的训练,最后进行整体网络模型的联合训练.这样做是为了使的模型从COCO数据集中学习到有效的特征泛化能力.(2) 将训练好的Faster RCNN 模型中的边框回归层改为所提出的非类别特异性回归层,其他部分的参数保持不变,仅在COCO 数据集训练非类别特异性回归层.(3) 对于新的非类别特异性Faster RCNN,再使用COCO 数据集调优整个网络.这样是为了使ROIAlign 得到的特征可以兼顾分类和边框回归的能力.通过以上步骤训练完成的模型可以直接用于商品训练图像的标注.训练非类别特异性Faster RCNN时,其基本超参数设置如表1所示.

表1 非类别特异性Faster RCNN基本参数设置

通过非类别特异性Faster RCNN与Grabcut的结合,可以生成大量的多个商品图像样本.并用于整体模型的训练.训练步骤如下: (1)首先,在用于训练样本预标定的非类别特异性Faster RCNN 的参数基础上进行训练,保持主干网络和非类别特异性回归层参数不变,仅训练分类层模型.(2)然后保持非类别特异性回归层参数不变,同时训练RPN 网络的分类层和回归层,以及步骤(1)中的分类层.(3)训练整个网络,包括主干网络中的Resnet 参数,仅固定非类别特异性回归层.这是因为主干网络中的特征由COCO 训练完成,为了使其更好地提取商品数据中的特征,需要对其主干网络参数进行训练.通过以上步骤,利用生成的样本训练完成的模型可以用于真实商品图像的检测任务.而且其中的非类别特异性回归层无需在目标数据集进行再训练,更加印证了其知识迁移的能力.

在实验中,我们使用Faster RCNN的扩展版Mask RCNN,其除Faster RCNN方法外利用了特征金字塔网络(FPN)和兴趣区域对齐(ROIAlign)方法[6].在训练过程中不需要进行分割预测,因此我们移除了Mask RCNN中的分割分支,只使用其分类和回归分支.实验在2个NVIDIA TITANX GPU上进行.初始的学习率为0.001,并在训练时手动调整.动量参数Momentum为0.9.

4.3 实验结果

首先利用COCO数据集训练Faster RCNN中的分类分支与本文提出的非类别特异性回归分支.如图7所示,图中的黑色边界是由于Mask RCNN[13]方法中的零填充(Zero Padding)导致的,Mask RCNN方法是Faster RCNN的扩展版本.其中虚线代表候选区域,实线代表候选区域对应的边框回归结果,可以看出本文提出的非类别特异性回归分支可以预测候选区域的真实边框,而且商品周围的候选区域对应的回归边框趋向于同一位置.同时相较于传统Faster RCNN,回归层参数量减少很多,且不需再训练即可迁移到其它数据集.

图7 候选区域与其对应的回归边框

提取训练图像的商品边框之后,结合Grabcut算法对商品区域进行分割.因为训练图像包含大面积背景,若直接利用Grabcut算法对原始训练图像进行分割,其分割效果非常不理想.因为没有边框来标定图像的背景区域,一般取图像的最外围的像素作为背景.然而其所占面积非常小,很难对整个背景进行建模.在结合本文提出的非类别特异性Faster RCNN预标注算法与Grabcut算法进行训练集的商品图像分割.然后使用简单的图像处理方法,来生成多个商品的训练图像,用于Faster RNN模型的训练,生成的图像数据如图4所示.在使用Grabcut 算法进行图像生成时,对象重叠面积上限设置为10 000.对于不同的重叠面积,本文对其效果进行了对比.如图8,当重叠面积为0时,即商品距离较远时,效果不好,因为商品距离较远,很难出现折叠等情况,使得网络得不到折叠情况的训练,所以效果相对较差.当重叠面积为6000时,模型的召回率(Recall) 和精度(Precision) 分别达到93.8%和96.3%,效果最好.重叠面积过大时,会使商品之间大面积覆盖,会倾向于误导网络误识别.

模型在进行识别和定位时,对于每个区域都会输出其对应类别的概率,在进行模型的布置时通常需要对概率进行阈值化,过滤概率低的预测,保留概率高的结果.因此,我们分析了不同的阈值对于模型的召回率和精度的影响,如图9.一般情况下概率阈值越高,精度越高,召回率越低.概率阈值越低,精度越低,召回率越高.图9中,概率阈值为0.3时,我们的模型能同时达到较高的精度和召回率,这是因为模型对类别的预测概率较高,低阈值对其影响不大,模型预测能力强.本文为了权衡准确率和召回率,确定概率阈值为0.7,这是召回率为93.8%,精度为96.3%.

图8 不同组合策略的检测结果

图9 不同概率阈值的检测效果

如表2,我们通过对模型各部分进行分析,所提出的结合Grabcut 的样本增强方法,使检测召回率提升超过40%,精确度提升了30%.为了提高多个商品检测的精度,本文提出了重识别层,将分类与回归之后的候选区域,经过边框回归层矫正之后,再次输入分类层.经过非特异性边框回归层的矫正,可以有效避免候选区域不精确带来的分类误差.在使用重识别层时,比不使用重识别层时召回率提高了3%,精率提高了4%.

表2 本文所提方法各部分效果分析

因为所提出的非类别特异性Faster RCNN可以检测到单个商品边框,当应用到多个商品的检测时,其主要问题是当商品边框内存在其他商品的区域时会对识别造成干扰.而非类别特异性Faster RCNN的边框回归不受多个商品的影响.因此,在使用本文生成的多个商品的训练数据进行训练时,仅训练分类层的参数,同时保持非类别特异性回归层参数不变.检测结果如图10所示,通过所提出的图像增强技术,实现了多个商品的检测,且其中的非类别特异性回归层仅使用公开数据集训练,并学习到了回归知识,且迁移到商品图像检测时并不需要再训练.

图10 商品检测结果

本文在构建的商品数据集中量化验证了所提出的方法.由于本文旨在解决数据瓶颈问题.所构建的训练数据集中仅有类别标签,没有边框标定.这种情况下,传统的图像检测方法一般使用无监督的SIFT[16]特征,计算被检索图像的局部特征并与训练集中图像的特征做相似度匹配.目前效果最好的深度学习方法,如VGG16[1]、VGG19[1]、 Xception[17]、Resnet[7],一般将其视为多标签分类任务进行识别.本章对这些方法进行了比较.如表3所示,SIFT和其它目前最优的深度学习方法的性能明显低于本文所提出的方法.一方面SIFT没有区别背景特征,从而导致背景特征影响了匹配效果;另一方面其为无监督人工特征,在识别效果上不及有监督方法,而且商品包装会有严重的反光,也使其特征性能较低.其它深度学习方法由于从单个商品训练图像推广到多个商品训练图像时,没有学习到多个商品相近时的区分信息,同时也没有区别背景特征,因此识别率低.而有些深度学习模型如VGG16和VGG19,其效果和SIFT相差不大,这是因为从单个商品训练图像到多个商品识别与定位这种跨任务识别任务使得深度学习模型性能很低.而本文方法通过提出一种无需目标数据集训练的样本标注以及样本增强方法,可以利用单个商品的训练图像来学习到多个商品的区分信息,起到了跨任务的桥梁作用,对性能有很大提升.

表3 不同的方法对比

5 结论与展望

本文基于Faster RCNN提出了一种非类别特异性的边框回归层,仅使用公开数据集训练,无需在目标数据集上进行再训练,并将其用于数据预标定与商品检测.同时结合Grabcut与非类别特异性Faster RCNN提出了一种样本增强方法,来生成包含多个商品的训练图像,用于模型的训练; 并为Faster RCNN添加了重识别层,提高了检测精度.未来,我们将致力于研究如何在没有数据标定的情况下,将本文方法拓展到图像分割领域.

猜你喜欢

边框标定类别
论陶瓷刻划花艺术类别与特征
轻卡前视摄像头的售后标定
一种轻卡前视单目摄像头下线标定方法
一起去图书馆吧
使用朗仁H6 Pro标定北汽绅宝转向角传感器
CT系统参数标定及成像—2
CT系统参数标定及成像—2
外出玩
通过美工刀切分屏幕与边框
用不上的砖块