APP下载

基于部件关注DenseNet 的细粒度车型识别

2022-04-21陈立潮朝昕潘理虎曹建芳张睿

智能系统学报 2022年2期
关键词:细粒度密集部件

陈立潮,朝昕,潘理虎,曹建芳,2,张睿

(1.太原科技大学 计算机科学与技术学院,山西 太原 030024;2.忻州师范学院 计算机科学与技术系,山西 忻州 034000)

细粒度车型识别是智能交通领域的重要组成部分,旨在通过任意角度和光线环境下,识别出车辆型号、制造商、生产年份等精准有用的车辆信息。通常粗粒度车型识别提供的车辆信息不充足,识别出的大类别数据,无法做到对车辆的有效标识和追踪,细粒度车型识别区别于一般车型识别,能够对粗粒度的大类别车型进行精细的子类别识别,精确标识车辆,在交通视频中有效地进行车辆监控,不仅节省了人力资源,提高交通执法效率,而且能够快速分析套牌车辆和外观改装车辆,在车牌信息无法获取时,细粒度的车型信息尤其重要,提高了有关车辆刑事案件的侦破效率,在智能交通、交通数据分析、安防等领域具有重要意义[1]。

针对细粒度车型识别问题,国内外学者已经做了大量研究,运用不同的方法提高细粒度车型识别准确率。主要有2 种方法:基于车辆部件的方法和基于深度学习的方法。

目前已经有许多基于车型部件的细粒度车型识别方法,Liao 等[2]分析了车辆部件在细粒度车型分类中的辨别能力,提出了一种新的将各部件的区分能力整合到分类框架中的模型。Krause 等[3]在局部特征外观和位置的层面上,将两种最先进的2D 目标建模表示提升到3D,实现对车型精细识别。Fang 等[4]从整个车辆图像和检测区域中提取全局特征和局部部件特征,基于整体线索和局部部件特征的隶属层次变化,采用一对一的支持向量机分类器进行分类。车型部件方法的分类效果主要取决于对车型鉴别性部件的提取能力,上述方法的部件提取能力有限,成为了制约识别性能提升的主要瓶颈。

在细粒度车型识别领域,深度学习也得到广泛的研究与应用。Shi 等[5]提出GLM(generalized large-margin)损失,并与Softmax 损失级联训练明显地减少了类间相似性和类内方差,增强模型对车型的表征能力。Ke 等[6]提出一种密集关注网络(dense attention network,DA-Net),通过其密集的连接和关注单元,使网络对车型的分类能力集中在重要区域和特征,提高了模型的识别能力。Fu等[7]基于区域检测和细粒度特征学习的关联性,提出一种递归注意力卷积神经网络(recurrent attention convolutional neural network,RA-CNN),在多尺度上以相互增强的方式递归学习区分区域注意力和基于区域的特征表示。马力等[8]提出稀疏化B-CNN,通过训练在特征通道中引入比例因子的B-CNN,并采用正则化按比例因子大小对其稀疏,将不重要特征通道按比例裁剪,消除网络过拟合提高关键特征的显著性。王阳等[9]提出双线性残差注意网络,用残差网络替换B-CNN 的特征函数,并在残差单元间添加通道注意力和空间注意力模块,获取更为丰富的注意力特征。Valev 等[10]系统比较和总结了现有深度学习方法在细粒度车型识别上的应用,在细粒度车型数据集Stanford Cars-196 上进行训练测试,经典深度卷积网络(deep convolutional neural networks,DCNN) 中DenseNet-161 获得较好的识别精度,DenseNet 密集连接[11]是2017 年Huang 等提出的一种全新的卷积网络连接模式,以密集连接的方式实现特征复用,使网络学习到更具鉴别性的特征,并通过网络特征复用最大程度上降低参数的冗余,降低了网络随深度增加出现的网络退化等问题。相比基于部件的方法,基于深度学习的方法操作简单,能够直接对二维图像进行处理,从大量训练样本中有效地学习到相应特征,避免了复杂的特征提取过程[12]。但细粒度车型分类集中在微小但重要的车型部件特征上,上述方法无法对部件特征进行有效关注。

根据以上问题,结合部件和深度学习的方法,提出一种基于部件关注DenseNet 的细粒度车型识别网络。通过提出的处理层(Process Layer)对车型部件信息进行重复加强提取关注,获取更多的部件信息,然后利用嵌入独立组件的密集连接网络进行特征复用,提取高维特征,独立组件降低模型过拟合风险,有效提高模型的收敛极限。提出的PF-DenseNet 深度学习网络,能够有效获取细粒度车型的鉴别性部件信息,利用部件特征进行分类。

1 细粒度车型识别网络

细粒度车型识别网络模型如图1 所示,主体框架采用DenseNet 的密集卷积结构,并在框架前加入Process Layer,利用Process Layer 直接对输入图像进行下采样处理,相对于一般DenseNet 对输入图像的处理,Process Layer 首先通过步长为1的卷积核对图像车辆细节特征重复提取加强,获取更加清晰的车型图像特征,保留足够多的车型部件特征细节信息,然后用最大池化进行下采样,降低后续计算量。Process Layer 后主体框架采用密集连接网络中的密集卷积(Dense Block)和过渡层(Transition Layer),对图像特征进一步提取和复用,获得更加抽象高维的特征,Transition Layer 引用在每一层Dense Block 后面,对图像进一步下采样,并在Dense Block 和Transition Layer 中嵌入IC 层,提高模型收敛极限。最后通过输出层(Output Layer)和全连接层(fully connected layers,FC),对图像进行分类,FC 通过softmax 激活函数对输出作类别概率预测,模型训练采用交叉熵损失函数进行参数更新优化。部件关注DenseNet(partfocused DenseNet,PF-DenseNet)的具体结构参数和输出大小如表1 PF-DenseNet 的具体网络结构所示,层结构显示其对应名称的具体网络结构,如Process Layer 的结构为7×7×96-BN-ReLu 加上MaxPool (2×2/s=2),7×7×96 表示一个核大小为7×7 通道数为96 的卷积核,然后进行一个批归一化[13](batch normalization,BN)和ReLu[14]激活处理,最后经过一个核大小为2×2 步长为2 的最大池化,输出(96,111,111)表示通道数为96、宽高尺寸为111×111 的输出特征图。表1 中有4个Dense Block_x:Dense Block_1、Dense Block_2、Dense Block_3 和Dense Block_4,分别由6、12、3 6 和2 4个基础层结构块构成,如Dense Block_1 由6个连续的基础层结构:IC-ReLu-1×1×192 加上IC-ReLu-3×3×48 构成。

图1 细粒度车型识别网络模型Fig.1 Fine-grained vehicle identification network model

表1 PF-DenseNet 具体网络结构Table1 PF-DenseNet specific network structure

1.1 Process Layer 卷积特征

细粒度车型分类中,类别间的差异极其微小,相比粗粒度车型分类,更关注图像中微小但十分重要的局部特征,PF-DenseNet 通过Process Layer 对车型特征重复提取加强,获取了更加有效清晰的部件信息,使得网络能够基于车型部件像素信息进行类别预测。

Process Layer 的组成结构如表1 所示,Process Layer 主要由一个核大小为7×7,步长为1 的卷积层以及尺度为2×2,步长为2 的最大池化层组成,卷积层后面进行BN 和ReLu 激活处理。图2 所示为卷积层操作,输入特征图通过卷积核,每次对特征图上卷积核大小区域进行卷积操作输出一个像素值,每次操作移动一步,使特征图中心部位车辆的9/10 像素被重复卷积提取7 次,加强了对车型部件的特征提取。然后经过BN 和ReLu 层处理,BN 对数据归一化加快网络收敛,ReLu 激活函数增加网络稀疏性。最后利用最大池化层进行下采样,特征图大小变为原来的1/2,降低后续网络计算量。

图2 卷积操作示意Fig.2 Convolution operation diagram

如图3 所示为不同DenseNet 对同一车型图片输入的不同特征提取效果图,图3(a)为PF-DenseNet中密集卷积前经过Process Layer 提取的特征图,图3(b)、3(c)分别为DenseNet201 和DenseNet161密集卷积前对图像的特征提取图。图3(a) 通过Process Layer 对图像同一区域的重复卷积提取,特征图更加清晰,保存了更多的部件细节,车标、车灯等鉴别性部件信息被有效的提取出来,使网络模型最后能够有效地根据车型部件像素进行分类。

图3 特征提取图Fig.3 Feature extraction diagram

1.2 独立密集连接

密集连接基于跨层连接连通网络中前后层使得信号可以在输入层和输出层之间高速流通的思想,将所有层都进行两两通道连接(Cat),使得网络中的每一层都接收前面所有层的特征作为输入,尽可能地提取到车型的细节信息,不仅大幅度减少了网络的参数量,而且在一定程度上降低梯度消失的风险。神经科学家发现,神经系统的表征能力与系统中独立神经元的数量呈正比,独立神经元构成的独立神经网络具有更好的特征表达能力和更高的收敛极限,在CNN 中引入IC 层是获得独立神经网络最快速有效的方式,通过在密集连接中嵌入IC 层构造独立密集连接,获得更好的收敛极限。

独立密集连接的Dense Block 基本结构如图4所示,在密集卷积前嵌入独立组件IC:{BN-Dropout},获得相对独立的网络模型,提高模型收敛极限,增加识别准确率[15]。

图4 独立密集连接网络Fig.4 Independent dense connection network

IC 中,BN 通过降低内部协变量偏移,减少内部神经元分布的改变,加速网络的收敛,BN 公式如式(1)~(4)所示:

首先通过式(1) 求均值µ,式(1) 中xi为第i个神经元的输入,m表示神经元数目,然后通过式(2)得到方差 σ2。

然后式(3)将输入进行标准化处理,使输入服从均值为0,方差为1 的正态分布,最后通过式(4)对标准化后的值进行平移缩放处理,数据经过式(2)和式(3)的处理后,上一层网络所学习到的特征分布被破坏,式(4) 引入可学习重构参数 γ和β,让网络在训练时恢复出原始网络所要学习的特征分布。

Dropout 以概率P线性减弱任何一对神经元之间的相关性,降低网络每次训练时的参数量,增强网络稀疏性,构造相对独立的神经元激活[16]。

将IC 嵌入到Dense Block 中以及Transition Layer 中,采用{IC-ReLu-Conv}的形式,能够有效提取车型的高层次信息,提高模型收敛极限,获得更好的识别准确率。

2 实验与分析

2.1 数据集

Stanford Cars-196[3]数据集是目前最常用的细粒度车型识别数据集,图像数据包含196 类共16 185张汽车图片,其中训练集8 144 张,测试集8 041张。每张图片的标签有制造商、车辆型号和生产年份3个信息。

训练前对数据集进行了预处理,将所有图像裁剪为224×224 大小,训练时对训练集做了顺时针20°的角度旋转、水平翻转的在线数据增强,原图和增强后的图像样例分别如图5 所示,扩充后的训练集为20 360 张,通过数据增强提升模型的泛化能力,增强网络的鲁棒性。

图5 数据增强示例Fig.5 Sample data enhancement diagram

2.2 实验细节

硬件环境:Intel(R)Xeon(R)Silver 4 110 CP 处理器,内核数32,GeForce GTX 1080Ti 10 GB 显卡,单精度浮点数为11.34TFLOPS,双精度浮点数为0.33TFLOPS。软件环境:Ubuntu 16 操作系统,Python3.6 程序设计语言,PyTorch 深度学习框架。

实验网络训练使用随机梯度下降(stochastic gradient descent,SGD)方法,在IamgeNet 预训练权重上进行微调,每训练一个周期测试一次准确率,批次大小为4,初始学习率(learning rate,Lr)为0.001,10个训练周期测试准确率不再上升时,Lr 下降为原来的0.1,采用早停策略,50个训练周期测试准确率没有上升,训练自动结束。模型评价指标为准确率(accuracy)、查全率(recall) 和F1。准确率公式如式(5)所示:

式中:T表示测试集中预测正确的样本数;R表示测试集样本总数。

式中:TP 表示第i类预测正确的样本数;Ri表示第i类测试样本总数;n为样本类别数。查全率表示了样本类别的平均准确率。

式中:precision 表示查准率;FPi表示预测为第i类的非i类样本数。式(8)中F1是accuracy 和recall的调和平均。

2.3 实验与结果分析

2.3.1 独立组件对实验的影响

提出的PF-DenseNet 的密集卷积结构采用:{IC-ReLu-Conv},融合了独立组件,为了验证独立组件对提出的基于部件关注DenseNet 在细粒度车型识别上的影响,对PF-DenseNet 控制单一变量IC,在同一训练环境下,观察PF-DenseNet 包含IC和不含IC 时,测试准确率随训练周期变化的情况。

如图6 所示为独立组件对模型的影响,初始阶段,两种模型的测试准确率变化基本相同,随着训练周期不断增加,迭代10 次后包含IC 的模型具有更高的测试准确率,60 次迭代后,不含IC 的模型测试准确率基本稳定不再上升,而包含IC 的模型依然缓慢上升,分析可知独立组件嵌入文中模型后,能够有效提高网络的收敛极限,增加识别准确率。

图6 独立组件对PF-DenseNet 的影响Fig.6 Impact of individual components on the model

2.3.2 与普通密集连接网络的对比

图7 给出了车型3 种不同姿态下(侧面、正面和背面)的3 种DenseNet 热力图,观察不同密集连接网络DenseNet201、DenseNet161 和PFDenseNet 的热力图,图7(b)、7(c)分别为DenseNet201、DenseNet161 的热力图,通过训练关注车型的整体特征,无法对鉴别性部件进行有效的关注,提出的基于部件关注的密集卷积网络模型能够关注车辆的车灯、车标等鉴别性部位,如图7(d)所示,图7(d)侧面图中,热力图深红色区域主要集中在车灯和车标,说明车灯、车标区域像素对最后分类结果的贡献最大,图7(d)正面和背面热力图中,车灯部件特征对分类起到了最大作用。从图7 比较可看出,提出的模型能够基于这些关键性车型部件,对车辆进行分类,进而实现对细粒度车型的有效识别。

图7 不同DenseNet 热力图Fig.7 Different DenseNet heat maps

图8 为3 种DenseNet 网络在Cars-196 上的训练和测试准确率随训练周期变化的折线图。

图8(a)为3 种DenseNet 测试准确率变化图,图中显示训练周期在15 次以后PF-DenseNet 的测试准确率提升速度明显高于DenseNet201 和DenseNet161,在训练40 次以后3 种DenseNet 的测试准确率都趋于稳定,PF-DenseNet 的最终测试准确率分别比DenseNet201 和DenseNet161 提高了1.2%、1%。在训练过程中相较于原始DenseNet201 和DenseNet161 网络,PF-DenseNet 的训练准确率和测试准确率的差距更小,具有更好的拟合效果。

图8 不同DenseNet 准确率变化图Fig.8 Diagrams of DenseNet accuracy variation

2.3.3 不同方法对比

PF-DenseNet 和在本实验数据集Cars-196 上的其他方法进行比较,如表2 所示,Zhao 等[17]提出一个多样化的视觉注意力网络(diversified visual attention networks,DVAN)来解决细粒度车型分类的问题,在学习定位区分区域时大大减少了对强监督信息的依赖,追求注意力的多样性,最大限度地收集有区别的信息,但精度只有87.1%,远低于本文方法。马力等提出Sparse B-CNN[8],通过在每个特征通道引入比例因子,按比例因子的大小判别特征通道的重要性并进行剪枝,减弱过拟合提高特征的显著性,准确率为91.0%,由于网络训练中需要进行剪枝,操作较为复杂。Fu 等[7]采用3 种尺度作为输入,以相互增强的方式递归学习车型区域注意力和区域的特征表示,准确率为92.5%,比本文方法低2.5%。Li 等[18]提出了一种迭代矩阵平方根归一化方法用于全局协方差共用网络的快速端到端训练,并运用在ResNet101上,获得了93.3%的精度,但该方法大大增加了网络参数,训练时间也过长。文献[19]提出互通道损失(mutual channel loss,MC-Loss),由鉴别分量和多样性分量两个特定信道的分量组成,训练每个特征通道反映针对特定类的不同局部区分区域,以B-CNN 为基础框架,获得了94.4%的准确率,准确率较高,但在分量中引入了需要额外寻优的超参数,模型训练较繁琐。PF-DenseNet 通过对车型区域特征反复提取,获得足够多的部件信息,使模型能够基于部件信息分类,再通过独立密集卷积得到抽象特征,提高收敛极限,获得了95.0%的准确率。表2 还显示了PF-DenseNet 与其他经典DCNN 在Cars-196 上查全率和F1对比,PFDenseNet 较于Inception-ResNet-v2、ResNet152、DenseNet201 和DenseNet161 查全率分别提升了3.7%、2.4%、1.1% 和1%,F1分别提升了3.7%、2.3%、1%和0.9%。

表2 不同方法在Cars-196 数据集上的准确率对比 Table 2 Comparisons of accuracy of different methods in Cars-196 data set %

图9 所示为PF-DenseNet 与其他DCNN 准确率和参数量的对比,PF-DenseNet 的参数量远小于ResNet152 和Inception-ResNet-v2,DenseNet161和DenseNet201 的参数量略小于PF-DenseNet,但精度远小于PF-DenseNet,Inception-ResNet-v2、ResNet152、DenseNet201 和DenseNet161 准确率分别为91.3%、92.6%、93.8%和94.0%,分别比本文方法降低3.7%、2.4%、1.2%和1%,综合准确率、查全率、F1和参数量来看,文中方法获得了较好的效果。

图9 PF-DenseNet 与其他DCNN 准确率和参数数量对比Fig.9 Comparison of PF-PenseNet and other DCNN accuracy and number of parameters

3 结束语

为了实现细粒度车型识别,提高细粒度车型识别准确率,提出一种基于部件关注的DenseNet 细粒度车型识别网络模型,通过Process Layer 对车型部件特征反复提取加强,获取更多的部件细节信息,然后通过融合独立组件的密集卷积网络,进一步提取高维特征,嵌入独立组件提高模型收敛极限。该模型能够对细粒度车型的车灯、车标等鉴别性部件进行有效关注,根据车型部件像素信息进行分类,在Stanford Cars-196 公开数据集上获得了目前最优的识别准确率、查全率和F1,验证了本文模型在细粒度车型识别上的有效性。但文中方法着重关注车型细节信息,忽视了全局特征对车型分类的作用,因此下一步工作是在关注车型鉴别性部件的基础上结合车型全局特征,进一步提高模型的识别准确率。

猜你喜欢

细粒度密集部件
融合判别性与细粒度特征的抗遮挡红外目标跟踪算法
汉字部件的避让变形
耕地保护政策密集出台
密集恐惧症
奥迪e-tron纯电动汽车的高电压部件(下)
基于SVM多分类的超分辨图像细粒度分类方法
一种陀飞轮表的双秒轮结构
现代汉字的两种分析法与国家文字规范(四)
基于型号装备?角色的IETM访问控制研究
基于web粒度可配的编辑锁设计