APP下载

基于组合模型的车模识别算法研究

2021-11-28张一博茹禹然赵文吕王冬琦

电脑知识与技术 2021年28期
关键词:卷积神经网络深度学习

张一博 茹禹然 赵文吕 王冬琦

摘要:针对小比例车模识别中图像种类繁多、部分类间相似度较高、网络数据类别不均衡以及质量参差不一的问题,文章提出了一种组合模型。首先对网络采集的图像数据设计了一种基于深度学习的方法进行清洗,然后以破坏-重建学习(Destruction and Construction Learning)方法为基础结合文章提出改进的Class-Balanced Focal Loss权重调节方法构建细粒度识别模型,最后文章选取了3种评价指标对模型效果进行评价。实验结果表明,该组合模型相较于原方法能更加准确地对小比例车模进行识别,对于少数类具备更强的泛化能力。

关键词: 深度学习; 小比例车模; 卷积神经网络; 细粒度识别; 不平衡数据集

中图分类号:TP311      文献标识码:A

文章编号:1009-3044(2021)28-0015-05

开放科学(资源服务)标识码(OSID):

Research on Car Model Recognition Algorithm Based on Combined Model

ZHANG Yi-bo,RU Yu-ran,ZHAO Wen-lv,WANG Dong-qi

(School of Software, Northeastern University, Shenyang 110000, China)

Abstract: In order to solve the problems of many kinds of images, high similarity among some classes, unbalance of network data classes and variable quality in small scale vehicle model recognition, a combined model is proposed in this paper. Image data from the first to the network design a deep Learning based method for cleaning, and then to Destruction and Construction Learning method combined with in this paper, on the basis of improving the Class-Balanced Focal Loss weight adjusting method to build fine-grained recognition model, at the end of the paper analyzes three kinds of evaluation index to assess the economic impact on the model. Experimental results show that compared with the original method, the combined model can identify the small proportion car models more accurately, and has stronger generalization ability for a few classes.

Key words:deep learning; small scale car model; convolutional neural network; fine-grained identification; imbalanced data set

所謂“小比例汽车模型”是指尺寸1:64或更小的汽车模型,因为小比例汽车模型同时具备可玩性和可收藏性的特点,所以长期以来一直受到孩子和收藏者的青睐。随着经济的发展和人民生活水平的日益提高,中国玩具市场消费进入高速增长阶段[1],国内正在形成自己的收藏文化,据不完全统计,国内各类贴吧和即时通讯群组活跃人数达到近百万且市场潜力巨大[2]。然而由于历史与文化原因,目前市场上流行的小比例车模以日本和美国品牌居多,这导致了消费者难以获取相关信息,同时利用信息差进行诈骗的行为也屡屡发生,这些都阻碍了车模市场的发展。为了解决这些问题,设计一个能快速准确识别车模类型的算法模型是有必要的。

近年来,卷积神经网络[3-5](Convolutional Neural Network, 简称CNN)在车辆种类识别方面取得了很好的效果,但小比例车模与普通车辆模型相比,种类繁多,同一车型有着很多改进品种,这些品种间只有涂装间差异,类间相似度大,识别难度大,在图像分类时面临更大的挑战。同时车模数据集由于是从网络获取的,图像质量难以得到保障。并且各类型车辆由于火热程度等方面的不同,会导致各类图片数量不均衡,因此如何解决类别的不均衡对分类效果的影响,使模型对少数类也能具有良好分类效果也是一大难点问题。

文章组合破坏-重建学习(Destruction and Construction Learning,简称DCL)[6]方法与改进的Class-Balanced Focal Loss(简称CBFL)[7]权重调节方法,来解决车模细粒度分类与类别不平衡问题。DCL首先将输入图像划分为很多局部区域,同时引入区域混淆机制RCM(Region Confusion Mechanism)来进行打乱,以此使分类网络更加注重判别性的区域去发现差异,并引入对抗性损失(Adversarial Loss,简称adv)补偿RCM的噪声,最后以一种区域对齐网络来恢复局部区域的原始空间布局。CBFL通过提出一种根据有效样本数对Focal loss[8]中[α]超参数进行自动设置的方法,更好地解决了类别不均衡问题。文章针对其提出了一种改进方法,通过设置调节因子[δ]使其能更好兼顾多样本类与少样本类。对于数据集中的低质量图像,可以利用DCL模型,为原数据集构建分类器,以此对图像进行评分,去除低评分数据,以此完成数据集的清理[9]。

1 数据清洗算法

从互联网爬取的数据集图片,由于其本身是由用户上传的,并不具有统一严格的管理,故数据质量参差不一,可能存在角度错误(图1-a),图像主体内容错误(图1-b),多不同主体(图1-c)等情况。

这些图像无法很好体现对应类别图像的特征,会对模型的分类精度造成影响,故需要对其进行清洗。文章采取的清洗步骤如图2所示。

首先使用组合模型对原始数据集进行训练,生成模型权值文件,随后在测试网络中使用该权值文件构建预测模型,对数据集中的每一张图片进行评分,并将评分结果存储在数组中。随后使用该评分对低质量图像进行筛选,由于模型对于训练集图像的评分会高于验证集与测试集图像的评分,故将两者分开进行筛选,下面以训练集图像为例对低质量圖像筛选的具体步骤进行描述:

对于第i类图像,在训练集中共含其[Ni]张图片,计其中第j张图片评分为[Scoreij],则第i类图像在训练集中评分均值:

[μi=j=1NiScoreijNi]                                       (1)

选定该类图像清洗阈值[αi]([10≤αi≤30])。

对于第j张图片,若[μi-Scoreij>αi],则将该图片识别为低质量图像。

筛选完成后,将筛选出的低质量图像从原数据集中清除,由此即可完成对数据集的清洗工作。

2 组合网络模型的设计

2.1 DCL网络结构

细粒度分类方法可分大致为两类:一是先定位具有判别性的部位,再根据判别性部位分类,但这种两步方法通常需要额外标注部位的边界框,代价昂贵;另一类使用无监督的方式通过注意力机制自动定位具有判别行的区域,因此不需要额外的标注成本,但是这种方法通常需要额外的网络结构,因此在训练和推理阶段引入了额外的计算成本。

破坏和重建学习(Destruction and Construction Learning,DCL)由京东AI研究院的Chen等提出,是细粒度分类任务下的一种新的SOTA方法。DCL本质上属于上述第二类方法,但它进一步避免了推理阶段的额外计算开销。DCL的基本理念是对于原始输入的图片先进行破坏,以强调局部判别性细节,这一过程由于是自动进行因而对于训练阶段不需要额外的标注信息,然后对其进行重构以建模局部区域之间的语义关联。DCL仅在训练阶段使用,并未在推理阶段引入额外计算开销。鉴于以上DCL在细粒度分类任务中的特点和优势,文章采用DCL作为方法框架的主体,并引入了其他一些方法,以更好地适应实际问题的需求。

2.1.1 破坏学习

细粒度图像分类任务中一个很明显的数据特点是,不同类别间的图像在全局结构上相似,而仅在局部细节上有所不同,这要求网络能够捕获并建模局部细节差异,并依此正确分类。DCL中通过区域混淆机制(Region Confusion Mechanism,RCM)和对抗损失来实现这一点。

RCM通过将原始输入图片的空间排布打乱来破坏空间整体结构,从而迫使网络将注意力放在具有判别性的局部区域上,最终达到网络通过局部判别性细节而非整体结构进行图像分类的目的。

具体而言,给定原始输入图片[I],首先将其统一划分为[N×N]的区域,每块子区域记为[Ri,j],其中[i]和[j]分别依次代表在水平方向和垂直方向上的序号,并且满足[1≤i,j≤N]。RCM通过子区域分别在其两个维度邻居间的交换完成“破坏”。对于[R]中的第[j]行,产生一个长度为[N]的向量[qj],其中第[i]个元素[qj,i=i+r],这里面[r~U(-k,k)],是服从范围在[[-k,k]]均匀分布的随机变量,[k]是一个可调参数[(1≤k≤N)],其定义了邻居范围。通过排序并验证其满足条件(1),可以得到第[j]行新的区域排列顺序[σrowj]。

[?i∈{1,…,N},σrowj(i)-i<2k]                         (2)

然后对每一列做相似的处理,得到[σcoli]。如此,可计算得到原图中[(i,j)]区域的新坐标

[σ(i,j)=(σrowj(i),σcoli(j))]                          (3)

这样做既保证了破坏了全局结构,也使得局部区域在一个可调整的邻居范围内抖动。

原图[I],破坏后的图片[φ(I)]和真实标签[l]作为一个三元组[I,φ(I),l]共同用作训练。分类网络最终将输入的图片映射为一个概率向量[C(I,θcls)],其中[θcls]是所有可以学习的参数,分类网络的损失函数可以定义为:

[Lcls=-I∈Ιl?log[C(I)C(φ(I))]]                   (4)

其中[I]代表所有用于训练的图片。

然而使用RCM对图片进行破坏并不总是对进行细粒度分类有益,RCM同样会引入噪声视觉模式,从这些视觉模式中学习到的特征将对之后的分类任务有害。于是DCL中引入了另一个对抗性损失[Ladv]来组织在RCM引入的噪声模式上的过拟合。

使用一个独热向量[d∈{0,1}2]来标识图片是否被破坏过,一个判别网络用来判断当前图片[I]是否被破坏过:

[D(I,θadv)=softmax(θadvC(I,θ[1,m]cls))]                      (5)

其中[C(I,θ[1,m]cls)]是提取自骨干分类网络第[m]层所输出的特征,[θ[1,m]cls]是分类网络从第1层到第[m]层所有可学习的参数[θadv∈Rd×2]是一个线性映射,判别网络的损失函数[Ladv]如下计算:

[Ladv=-I∈Ιd?log[D(I)]+(1-d)?log[D(φ(I))]]      (6)

[Lcls]和[Ladv]共同作用于破坏学习,其中仅有局部判别性细节被强化而无关特征被过滤掉。

2.1.2 重建学习

考虑到图像中相关区域间的组合构成了复杂多样的视觉模式,DCL中提出了另一种建模局部区域间关联的方法,即区域对齐网络,它使用区域重建损失[Lloc],用于度量图像中不同区域的定位精度,用以引导骨干网络通过端到端的训练建模相关区域间的关联。

给定一张图片[I]和它对应的破坏后的[φ(I)],在原图[I]中位于[(i,j)]的区域[Ri,j]和与其相对应的在破坏后的图片[φ(I)]中的区域[Rσ(i,j)]。区域对齐网络作用在分类网络卷积层的输出特征上[C(?,θ[1,n]cls)],[n]代表第[n]层卷积层、特征经过[1×1]卷积获得两个通道的输出,然后经过[ReLU]激活和平均池化映射到尺寸为[2×N×N]。区域对其网络的输出可以写为:

[M(I)=h(C(I,θ[1,n]cls),θloc)]                           (7)

[M(I)]的两个通道分别对应坐标中的行与列,[h]代表区域对齐网络,[θloc]代表区域对齐网络中可学习的参数,将图[I]中区域[Rσ(i,j)]的预测位置记为[Mσ(i,j)(φ(I))],将图[I]中区域[Ri,j]的预测位置记为[Mi,j(I)],它们的真实标签值均为[(i,j)]。区域对齐损失[Lloc]被定义为预测坐标于原始坐标间的[L1]距离,可以被表示为如下所示:

[Lloc=I∈Ii=1Nj=1NMσ(i,j)(φ(I))-ij1+Mi,j(I)-ij1]     (8)

通过端到端的训练,区域重建损失可以帮助分类骨干网络理解物体并建模结构信息,比如物体的形状或者区域之间的语义联系。

最终在DCL框架中,分类、对抗和区域对齐损失都以端到端的方式训练,使得网络可以在加强局部细节和建模部位关联之间两方面做好权衡。具体而言,最终想要最小化的整体目标为:

[L=αLcls+βLadv+γLloc]                            (9)

DCL框架整体如图3所示。

2.2 改进的Class-Balanced Focal Loss

Class-Balanced Focal loss由交叉熵(Cross Entropy,简称CE)损失函数改进而来,它可以解决不同类间类别数量不均衡与分类难易不均衡的问题。

2.2.1 交叉熵损失函数

标准交叉熵损失函数为:

[CE(p,y)=-log(p)   if y=1-log(1-p)  otherwise]                    (10)

其中y表示正负类别,p为预测y=1的预测置信度,为了方便标记,定义[pt]:

[pt=pif y=11-p otherwise]                                  (11)

由此可把交叉熵CE重写为:[CE(p,y)=-log(pt)]              (12)

2.2.2 [α]-交叉熵损失函数

为解决类别不平衡造成的影响,在CE中引入[α]权重因子,来平衡正負样本本身的数量不均问题,为方便标记,将[α]按照[pt]方式定义得到[αt],由此得到[α-CE]:

[α-CE=-αtlog(pt)]                          (13)

2.2.3 Focal loss

实际模型训练中由于易分样本贡献了大部分的损失值并在梯度中占主导地位,导致此时的损失函数在大量样本的简单迭代中比较缓慢且可能无法优化至最优,[αt]虽然可以平衡正负样本数量不均的问题,但无法区分易分与难分样本。Focal loss提出添加一个调制因子[(1-pt)γ]([γ≥0])来对难易样本损失权重进行调整,Focal loss定义如下:

[FL(pt)=-αt(1-pt)γlog(pt)]                       (14)

Focal loss通过能使易分样本相对难分样本带来的较小的损失,假设[γ=2],如果一个样本为易分样本,其[pt≈0.9]则此时该调制因子为0.01,使其相较[α-CE]变小了100倍。该方法使模型更聚焦于难分样本,可以很好解决难易样本数量不平衡问题,增强模型对难分样本的识别能力。

2.2.4 Class-Balanced Focal Loss

文献[7]提出随着样本数量的增加,由于信息重叠会导致新添加的数据点对于模型训练的额外作用减少。该文献提出了计算数据集有效样本量的方法,并基于有效样本量设计了一种新的按类重新加权的方案,来解决类别不平衡问题,相较于直接以样本数量进行判断的方法具有更好的效果。

假定一个类i中,该类样本空间中所有可能数据的集合为[Si],[Si]的样本体积为[Ni]。有效样本量[Eni],计算方法如式(15)所示。

[Eni=(1-βini)(1-βi)]                      (15)

其中[ni]为该类样本数量,[βi=(Ni-1)Ni] (16)。由于目前缺乏对每一类的进一步信息,故对整个样本设置[Ni=N],[βi=β=(N-1)N] (17)。由于现实中N无法得到,且N为很大的数,所以[β]一般取一个接近1的数。

采用有效样本量的倒数即[1En]来代替focal loss中的[α]超参数,可以更好提升对高度不平衡数据的处理能力。Class-Balanced Focal Loss公式为:

[CBfl(z,y)=-1-β1-βnyi=1C(1-pti)γlog(pti)]                    (18)

其中C为类别总数,[ny]为训练集中类别y的数量。

2.2.5 Class-Balanced Focal Loss的改进

原方法由于对少样本类与多样本类给予的权重差距过大,导致模型对多数类样本分类能力有所下降,文章提出了一个调节因子[δ],来减轻少样本类与多样本类间权重差距,改进后的Class-Balanced Focal Loss公式如下:

[CBfl(z,y)=-(1-β1-βny)δi=1C(1-pti)γlog(pti) (0<δ<1)]     (19)

通过调整[δ]因子可以减轻损失函数对多数类的忽视,更好提升模型分类的准确率。

3 实验验证及结果分析

3.1 数据集获取及预处理

目前小比例汽车模型存在市场品牌众多,车型复杂的情况,为了保证输入模型的数据可控,具有相同的分布特征,文章选择较为知名的“风火轮”(Hot Wheels)品牌的汽车模型作为主要的收集对象。同时为了便于数据的获取,保证数据具有一定的结构性,文章将由用户维护的Hot Wheels Wiki网站作为主要的数据来源。通过爬取数据,最终得到了1616个汽车模型类别,共39906张图片样本。该网站图片多由不同用户收集,图片质量层次不齐,同时还存在类别数较多,类别间样本分布不均衡的情况。如图4所示即为数据集部分样本示例。

为了提高算法模型的鲁棒性与泛化性,并对模型的输入进行统一化,需要对训练时的图像进行数据增强处理,首先将输入图像缩放至512*512然后随机裁剪为448*448,进行随机旋转,随机水平翻转,在测试时只对图像进行中心裁剪。

3.2 驗证指标

为了对样本不均衡的分类模型的性能进行有效评估,分别选择Accuracy、Macro-F1和Micro-F1指标进行评价。

首先介绍几个概念,True Positive(TP)指预测为正样本,实际也为正样本;False Positive(FP)指预测为正样本,实际为负样本;True Negative(TN)指预测为负样本;实际也为负样本;False Negative(FN)指预测为负样本,实际为正样本。

精准率(precision)指模型预测为正样本中实际为正样本的比例即:

[precision=TPTP+FP]                          (20)

召回率(recall)指所有正样本中模型预测为正样本的比例即:

[recall=TPTP+FN]                             (21)

Accuracy又称准确度,是最朴素的分类任务评价指标,其只关注分类正确的样本数与所有样本数的比值,并不关注样本不均衡等问题。

[Accuracy=TP+TNTP+TN+FP+FN]                          (22)

[Fβ]指标本身是一种衡量二分类模型精确度的指标,兼顾了分类模型的精确率和召回率,可以看作是精确率和召回率的一种调和平均,最大值是1,最小值是0,[Fβ]指标的物理意义是将精确率和召回率这两个分值合并为一个分值,在合并过程中,召回率的权重是精确率的[β]倍。

[Fβ=(1+β2)?precision?recall(β2?precision)+recall]                        (23)

特别地,F1指标中召回率和精确率同等重要。

[F1=2?precision?recallprecision+recall]                                (24)

F1指标本身不能处理样本不平衡问题,因此使用它在多分类问题中的变体:Macro-F1和Micro-F1。

Micro-F1的计算思路是,先计算出所有类别总的Precision和Recall,然后再计算F1,计算时需要先将每一类由多分类问题转化为一对其他的二分类问题,然后计算每一类的TP、FP、FN,得到所有类的TP、FP、FN后,求和得到总体的TP、FP、FN,然后根据公式计算总体的Precision和Recall,最终得到Micro-F1。

Macro-F1的计算思路是,分别计算每一类的Precision和Recall(同样进行一对其他的处理转化为二分类问题),从而计算该类的F1,然后将所有类的F1求和后取平均得到Macro-F1。

因为Micro-F1的计算过程与Accuracy类似,实际上仍然收到样本数量的影響,其值受到大样本的类影响较大;而Macro-F1因为不关注各类的样本数目,而是将各类的F1值取平均,消除了样本数量的影响。在样本不平衡的情况下,可以认为Macro-F1和Micro-F1都高时,模型的性能更好,也可以更关注Macro-F1。

3.3 实验设备及参数设置

本实验采用Pytorch深度学习框架,采用的硬件配置如表1所示。

实验数据集的设置采取程序随机划分的方法,训练集、验证集和测试集的比例为7:2:1。实验迭代epoch为85,训练与验证的batch size均设置为4,初始学习率设置0.0008,每60个epoch衰减为原来的十分之一。改进的Class-Balanced Focal Loss中[γ]设置为2,[β]设置为0.9999,[δ]设置为0.5。

3.4 实验及结果分析

在实验中文章采用以resnet-50[10]为基础网络的DCL框架,首先采用DCL对原数据集进行训练,获得准确率为87.22%的模型,通过此模型对原数据集进行清洗,清洗结果如表2所示。

数据清洗后,文章同样采用DCL对清洗后的数据集进行训练,将清洗前后的模型采用相同的测试集进行测试,选取在验证集预测准确率最高的模型,在测试集上进行测试结果如表3所示。

由结果可以看出清洗后的数据集三项指标均有所提升,说明采取该深度学习的方法可以有效对低质量数据进行清理,高质量的数据集可以使模型更好地对车模特征进行提取,不易被错误数据误导以至模型精度下降。

清洗完后的数据集后,文章将改进的Class-Balanced Focal Loss与DCL相结合,并对其进行训练,以同样方式进行测试,最终测试集准确率对比结果如表4所示:

从表中可以看出将DCL结合改进的Class-Balanced Focal Loss后,模型在测试集上分类的Accuracy有较大提升,Micro-F1由于受样本数量影响且与Accuracy计算过程类似,故与Accuracy差别不大,而Macro-F1计算未考虑样本数量的影响,它相比于Accuracy有更大的提升则说明了模型对于少数类的分类能力提升更大,分类能力更加全面。

4 结束语

文章针对小比例车模图像数据种类多、相似类数量多,类别数量不均衡、网络采集图像质量难以保障的特点,设计了一个对其进行识别分类的整套流程方法,首先对于网络采集数据的质量参差不一现象采用基于深度学习的方法清洗数据集,随后对于车模种类繁多,具有很多高度相似类的特点,选取了适当的细粒度识别算法,对于车模数据类别不均衡的问题,以Class-Balanced Focal Loss为基础设计了一种改进的按类重加权方法。最终实验证明该套组合处理方法具有良好的效果,相较于仅采用DCL的原方法具有更高的准确率与更强的泛化能力。

参考文献:

[1] 中国玩具和婴童用品协会.中国玩具和婴童用品行业发展白皮书[EB/OL].(2019). http://www.wjyt-china.org/Single/103230/hd777.html.

[2] 中国报告网.2018年中国汽车模型行业分析报告-市场深度调研与发展前景研究[EB/OL]. http://baogao.chinabaogao.com/dianzishebei/339213339213.html.

[3] 彭清,季桂树,谢林江,等.卷积神经网络在车辆识别中的应用[J].计算机科学与探索,2018,12(2):282-291.

[4] Yang Y.A vehicle recognition algorithm based on deep convolution neural network[J].Traitement Du Signal,2020,37(4):647-653.

[5] 张强,李嘉锋,卓力.车辆识别技术综述[J].北京工业大学学报,2018,44(3):382-392.

[6] Chen Y,Bai Y L,Zhang W,et al.Destruction and construction learning for fine-grained image recognition[C]//2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR).June 15-20,2019,Long Beach,CA,USA.IEEE,2019:5152-5161.

[7] Cui Y,Jia M L,Lin T Y,et al.Class-balanced loss based on effective number of samples[C]//2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR).June 15-20,2019,Long Beach,CA,USA.IEEE,2019:9260-9269.

[8] Lin T Y,Goyal P,Girshick R,et al.Focal loss for dense object detection[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2020,42(2):318-327.

[9] 余华擎.基于深度学习的图像数据清洗方法研究[D].北京:北京工业大学,2018.

[10] He K M,Zhang X Y,Ren S Q,et al.Deep residual learning for image recognition[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).June 27-30,2016,Las Vegas,NV,USA.IEEE,2016:770-778.

【通联编辑:唐一东】

猜你喜欢

卷积神经网络深度学习
基于卷积神经网络温室智能大棚监控系统的研究
基于深度卷积神经网络的物体识别算法
有体验的学习才是有意义的学习
电子商务中基于深度学习的虚假交易识别研究
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
基于卷积神经网络的树叶识别的算法的研究