基于特征融合卷积神经网络的车型精细识别
2020-02-08李致金丁春健
李致金,张 亮,武 鹏,丁春健
(南京信息工程大学 电子与信息工程学院,江苏 南京 210044)
0 引 言
目前,国内外的一些研究人员在针对车型精细识别问题上已经研究了可靠的分类器以及具有描述性的特征描述符。文献[1,2]提出基于特征匹配的车型识别方法,如SIFT、Gabor特征,这类方法通常需要人工提取特征,且在视角改变以及识别要求太详细时表现不佳。文献[3]提出构建3D模型用以识别车型,这类方法计算成本高,同时建模难度大,因此难以在实际应用中实施。文献[4]构建了一个名为CompCars的车辆图像数据库,并且在传统的AlexNet、Overfeat、GoogLeNet网络模型上进行了车型识别实验,但并没有针对车型精细识别问题对现有网络模型进行优化。文献[5]提出一种基于由粗到细卷积神经网络结构的细粒度车辆模型识别方法,这类方法构建的网络模型在训练和测试时速度很慢,同时参数规模大,过拟合风险高。文献[6]提出基于多尺度跃层卷积神经网络的车型精细识别方法,该方法中所用数据过少无法同网络模型的深度达成一致性,同样容易导致过拟合。
如上所述,现有的车型精细识别方法仍然存在诸多局限性。其一,传统的基于特征匹配的车型识别方法,这类方法过多依赖人工提取特征,且需要大量的计算以及无法达到精细识别要求。其二,基于改进传统卷积神经网络的车型识别方法,这类方法相较于人工提取特征识别方法虽然能够达到更好的识别效果[7,8],但是仍然存在着诸多缺点,例如:①提取到的车辆特征不具有代表性,未能综合考虑低层的局部特征和高层的全局特征;②网络模型参数规模大,容易导致过拟合。为了克服现有车型精细识别技术存在的局限性,本文针对交通卡口监控下多类型车型精细识别问题,构建了一种基于特征融合卷积神经网络模型(FF-CNN)。该模型设计有两个独立网络(UpNet、DownNet)分别用于提取车辆正面图像上部和下部的局部以及全局特征,以及设计有融合网络(FusionNet)用于将两个独立网络提取到的特征进行上下组合,从而提高识别精度;同时采用小尺寸卷积核以及全局平均池化用于优化网络,以压缩模型参数规模,从而降低过拟合风险。
1 基于特征融合卷积神经网络模型
1.1 特征分析
目前,在交通卡口监控系统下捕获到的车辆正面图像可沿着中心线划分为两个区域,分别为:上部和下部。上部又称车辆非面部具体包括发动机引擎盖一部分、挡风玻璃以及车顶一部分;下部又称车辆表面部具体包括车牌、车标、前大灯以及雾灯。这两部分表现出的特征存在明显的差异,例如:①车辆表面部本身存在独特、丰富的纹理以及前大灯、雾灯等部件形状明显,与之对比的车辆非面部仅有很少与轮廓、形状相关的特征,而这些特征与车辆表面部特征形成互补;②车辆表面部和非表面部不同位置的部件由于所用材料不同因而呈现亮度特征有所差异。
1.2 模型构建
基于车辆正面图像的特征分布,构建了一种基于特征融合卷积神经网络模型(FF-CNN),该模型用于解决交通卡口监控下车型精细识别问题。此特征融合卷积神经网络模型(FF-CNN)如图1所示。从图1可以看出该模型在组成结构上主要包括3个部分分别为:上部网络(UpNet)、下部网络(DownNet)以及融合网络(FusionNet)。上部网络(UpNet)、下部网络(DownNet)分别用于提取车辆非面部和车辆表面部的局部以及全局特征,融合网络(FusionNet)用来将上部网络(UpNet)以及下部网络(DownNet)提取到的特征图进行上下组合以提取到完整的车辆正面特征图,之后通过全局平均池化层(GAP)进行输出,最终把得到的特征图输入到SVM分类器进行识别。
图1 FF-CNN网络模型
从图1中可以看出上部网络(UpNet)被设计成浅层网络,主要用于提取车辆非面部的局部以及全局特征。上部网络(UpNet)主要设计有1个输入层、1个TraConv1_0层、2个特殊结构单元MlpConv1_1、MlpConv1_2。为保留更多的轮廓信息,在TraConv1_0层中使用5*5大尺寸卷积核用于提取车辆非面部粗糙轮廓特征,同时使用1*1小尺寸卷积核用于进一步细粒度特征提取以及使用最大池化层进行降维操作。两个特殊结构单元MlpConv1_1、MlpConv1_2具有相同的结构,不同之处在于MlpConv1_1层中的第一个卷积层的步长以及填充分别设为2和0,而在MlpConv1_2中第一个卷积层的步长以及填充分别被设计为1和1。具体网络参数见表1。为便于理解,下文将以MlpConv1_1作为阐述对象用来分析这种特殊结构单元的组成和作用。
MlpConv1_1结构单元由4个部分组成,其中第一个卷积层(conv1_1)的卷积核为3*3,步长和填充分别为2和0,另外两个分别为conv1_1_1、conv1_1_2的小卷积层,其卷积核均为1*1,步长和填充分别为1和0,使用3*3、1*1小尺寸卷积核有助于细粒度特征提取,同时能够有效压缩模型参数规模。此外,在每个卷积层后都设计有用于非线性特征映射的ReLU层,以及在3个卷积层后设计有用于特征维度减少的最大池化层[9]。结构单元如图2所示。
表1 上部网络(UpNet)的网络参数
图2 MlpConv1_1结构单元
借鉴文献[10]提出的NIN网络模型,使用形如MlpConv1_1这种结构单元能够有效增加网络的非线性特征表达能力。传统卷积神经网络在ReLU激活函数作用下,特征图的计算公式为
(1)
在式(1)中,(i,j) 表示图片像素点的位置索引,xi,j表示卷积窗口的特征块,k表示要提取特征图的索引。而在以MlpConv1_1结构单元构成的特征融合卷积神经网络模型中,在ReLU激励函数的作用下,特征图的计算公式为
(2)
其中,n代表多层感知器(MLP)中层的编号,根据式(2)可以看出,在该上部网络(UpNet)中,特征图fn的计算与前者fn-1存在依赖关系,从而实现多个特征图的线性组合,以达到跨通达信息整合目的。
此外,在图1中下部网络(DownNet)被设计成深层网络用于提取车辆面部特征。下部网络(DownNet)相较于上部网络(UpNet)多增加一个特殊结构单元MlpConv2_3。考虑到下部网络(DownNet)提取的是车辆面部特征,而车辆面部本身存在独特、丰富的纹理特征以及明显的部件形状差异,因此,多增加一个特殊结构单元能够进一步抽象和提取车辆面部特征,并提高网络的表达能力。具体网络参数见表2。
表2 下部网络(DownNet)的网络参数
在上部网络(UpNet)和下部网络(DownNet)中,都使用了形如MlpConv1_1这种结构单元进行堆叠,并且在各自网络中都兼顾了靠近输入层(低层)对车辆局部特征的学习以及输出层(高层)对车辆全局特征的学习。同时,由于在每个特殊结构单元中使用形如1*1卷积核[11],能够有效降低网络模型的参数规模,从而降低过拟合风险。
在该特征融合卷积神经网络模型(FF-CNN)中另一个关键是特征融合。如图1所示,融合网络(FusionNet)用于将两种子网络(UpNet、DownNet)提取到的特征进行上下组合以形成两个完整的车辆正面特征图,在该组合过程中采取了低水平(靠近输入层)特征和高水平(靠近输出层)特征相互融合的策略[12]。具体表现为:其一,融合网络(FusionNet)将从上部网络(UpNet)的第一个特殊结构单元(MlpConv1_1)与下部网络(DownNet)的第二个特殊结构单元(MlpConv2_2)提取到的特征进行上下组合成第一个完整的车辆正面特征图(大小为6*6*96);其二,将上部网络(UpNet)与下部网络(DownNet)两者最后一个特殊结构单元(MlpConv1_2、MlpConv2_3)提取到的特征进行上下组合成第二个完整的车辆正面特征图(大小为3*3*128)。在得到两个完整的车辆正面特征图后,首先将第二个完整的车辆正面特征图与经过形如MlpConv1_1这种结构单元处理后的第一个完整的车辆正面特征图(处理后大小为3*3*128)进行组合(组合后尺寸大小为3*3*256),之后再将组合后的特征图经过1*1卷积核进行进一步的特征提取,进而将得到的特征图输入到全局平均池化层(GAP),最终通过SVM分类器获得网络输出。
2 实验结果与分析
2.1 平台与数据集
为验证本文提出的特征融合卷积神经网络模型(FF-CNN) 在车型精细识别方面的有效性,因此将此模型在基准数据集CompCars下进行实验。CompCars数据集包含来自互联网和交通卡口实时监控下的281个车辆精细型号的44 481张车辆正脸图片。在本文实验中,将CompCars数据集分为测试数据与训练数据两个部分,且两者比例为3∶7。实验平台CPU型号为Intel Core i7-6700K,内存容量为32 GB,并且使用内存为12GB的NVIDIA GEFORCE GTX TITAN X显卡用于加快训练过程,实验所用模型均在开源caffe框架下实现。
2.2 实验设置
由于融合网络(FusionNet)最终要将两个子网络(UpNet、DownNet)提取到的特征进行上下组合,因此两个子网络生成的特征映射图的大小必须匹配。因而,将此特征融合卷积神经网络模型(FF-CNN)的输入图片大小设为256*256,同时,两个子网络所用图片大小均设为224*224。实验中使用的优化策略是带有冲量的随机梯度下降法,初始冲量设置为0.9,批量大小设为128,初始学习率设置为0.001,每经过100 000迭代后,学习率降低10倍,迭代总数为300 000次。
2.3 结果与分析
实验结果主要从模型识别准确率以及模型参数两个方面进行阐述,同时与现有几种车型识别模型进行对比分析,以验证本文提出的特征融合卷积神经网络模型(FF-CNN)在车型精细识别方面的高效性。
2.3.1 模型识别准确率
表3给出了在基准数据集CompCars下,本文提出的特征融合卷积神经网络模型(FF-CNN)与其它几种模型的识别准确率。由于在CompCars数据集中每个类别的图片数量不尽相同,其表现为类别最少的图片数量仅为14张,而类别最多的图片数量却高达565张。因此,为降低这种不平衡类别图片数目对识别结果的影响,我们使用以下两种方法来评估实验结果的准确性,两种方法具体公式为
(3)
(4)
其中,ti表示每个类中正确预测的样本数,ni表示每个类中的样本数,N表示类的数量。从表3给出的识别结果可以看出,第1行是文献[13]提出的经典GoogLeNet模型的识别效果,其Acc1和Acc2分别为98.32%,97.81%;第2行是文献[14]提出的使用来自后视图像汽车标志的几何形状的车辆模型识别方法,其识别效果较其它两种方法有所下降;第3行是文献[15]提出的MS-CNN模型在基准数据集CompCars下对281种车辆类型进行细粒度分类得到较高的准确率,其中,Acc1与Acc2分别达到了98.83%,98.43%。
表3 FF-CNN与其它几种模型的识别准确率
2.3.2 模型参数
表4给出了在caffe框架下几种识别模型生成的参数大小。从表4可以看出,NIN网络模型生成的参数量最大,则导致过拟合的可能性最大。相较于其它两种网络模型,本文提出的特征融合卷积神经网络模型(FF-CNN)参数量仅为4.9 MB,远远低于其它两种网络模型的参数量。因此,使用FF-CNN网络模型能够有效压缩模型参数规模,从而降低过拟合风险。
表4 FF-CNN与其它几种识别模型生成的模型参数
3 结束语
本文基于车辆正面图像的特征分布,构建了一种特征融合卷积神经网络模型(FF-CNN),该模型主要用于解决交通卡口监控下车型精细识别问题。在FF-CNN模型中,设计有两个子网络模型(UpNet、DownNet)分别用于提取车辆正面图像的非表面部以及表面部特征,同时设计有融合网络(FusionNet)用以实现两个子网络模型(UpNet、DownNet)提取到的特征融合,从而进一步抽象以及提取最终的车辆特征。基于CompCars基准数据集的实验结果表明,FF-CNN模型通过使用更少的参数量能够更加有效提取车辆正面图像的细粒度特征,具体识别准确率高达98.94%。