随着社会的不断发展,人们对汽车这一交通工具的需求日益增长,道路上的车辆种类也越加繁多。车辆在给人们出行带来便捷的同时,也滋生了一些交通安全、违法犯罪问题,譬如车辆超速、超载、套牌、无牌等。车辆的监管一般采用摄像头抓拍的方式,通过图像确定车辆的信息与行为,其中车辆种类的识别分类是一个重要研究方向。目前主流的车辆分类算法按目标范围大致可分为3类:基于车型种类的分类算法、基于不同品牌轿车的分类算法、基于轿车子品牌的分类算法。基于车型种类的分类算法用于区分大、中、小体型的不同用途车辆,如卡车和轿车;基于不同品牌轿车的分类算法专注于区分轿车的品牌信息,如吉利、比亚迪等;基于轿车子品牌的分类算法深入区分同一厂类品牌下的子品牌轿车,如奔驰旗下的smart、迈巴赫系列车型。本文提出车辆图像细粒度分类属于基于轿车子品牌的分类算法。
车辆图像的细粒度分类相较于一般的多分类任务,难度更大,主要体现在两个方面:第一,同一类别的车辆图像取决于拍摄条件,角度、环境、清晰度、以及遮挡条件导致其图像低层特征类内距离大;第二,不同车辆之间由于相似度较高造成低类间差异。因此,要想实现对车辆图像的正确分类,必须对所提取的车辆特征有很高的要求。2010年,F. Perronnin等[1]提出了一种基于SIFT特征与改进的Fish核的图像细粒度分类方法,该方法对光照变化具有良好的适应性,但对图像拍摄角度变化表现得不是很好。近年来,深度学习在计算机视觉领域迅速发展,作为实现深度学习的一项重要技术,卷积神经网络在图像识别领域已经取得了卓越的成绩。Zhang N等[2]利用卷积神经网络出色的性能在图像细粒度分类任务中得到了较好的效果。2017年,王秀席等[3]利用改进的LeNet-5卷积神经网络在车型识别中取得了好的识别结果。基于深度卷积特征的图像分类方法依靠多层卷积自行学习有效的特征表示,免去了传统方法中挑选合适的基于先验知识的图像特征算法的繁琐步骤,且采用端到端的训练方式快速使模型具有表达目标特征的能力。
因此本文提出了一种融合FV-SIFT特征和深度卷积特征的车辆图像细粒度分类算法,该算法首先采用SIFT特征描述子对车辆图像提取特征,再采用Fisher Vector算法对提取的特征向量进行编码得到FV-SIFT特征,然后采用VGG-16卷积神经网络对车辆图像提取深度卷积特征,最后将FV-SIFT特征与VGG-16深度卷积特征进行线性融合并采用支持向量机对其进行分类。实验结果表明,融合后的车辆图像特征对单一FV-SIFT特征表现不佳的现象进行了改善,且相较深度卷积网络基础上提高了车辆图像细粒度分类的准确率指标。
1 FV-SIFT特征提取FV-SIFT特征提取方法由两部分组成:1)对输入图像使用SIFT描述子进行特征提取,获得特征向量;2)对高维特征向量使用PCA算法进行降维处理,提升表达能力的同时减少参数计算量;3)通过Fisher Vector算法对特征向量进行编码,从而得到车辆图像的FV-SIFT特征向量。如图 1所示。
![]() |
Download:
|
图 1 FV-SIFT特征提取流程 |
D G Lowe等[4]于2004年提出基于SIFT特征的检测算法,利用了该特征具有的尺度不变性,能提取对尺度缩放、旋转、亮度变化无关的特征向量,获得了良好的检测效果。SIFT特征提取共分为4个步骤:1)构建尺度空间检测极值点;2)特征点过滤以及精确定位;3)获取特征点的方向值;4)最后生成特征描述子。本文采用Dense SIFT算法来加速特征提取,巧妙地避开SITF描述子检测的前3个步骤,即直接定位关键点位置和描述子采样区域,计算SIFT特征向量。提取过程如图 2所示。
![]() |
Download:
|
图 2 Dense-SIFT特征提取过程 |
首先采用一个矩形窗口在边界框内以一定的步长在图像上从左到右、从上到下的顺序滑动获取像素块,接着对像素块进一步划分为4×4的16个方格,方格上的每个像素点都需计算梯度方向,得到8方向的梯度直方图,作为当前方格的特征向量,最后将每个小块的特征向量连接起来得到该像素块的4×4×8=128维的Dense-SIFT特征向量。由于得到的Dense-SIFT特征维数较高,为了便于后续计算方便,本文采用主成分分析(PCA)方法[5]对Dense-SIFT特征进行降维处理。
1.2 Fisher Vector编码主流的模式识别方法按概率模型可以分为生成式模型和判别式模型。生成式模型通过构建同类目标的联合概率分布,来描述同类目标的相似度,如高斯混合模型(GMM)[6],且可以用于处理长度不一的输入数据;另一类是判别式方法,比如SVM,这类方法主要反映异类数据之间的差异,在数据量较少的情况下分类效果更好。结合两者优势的Fisher Vector算法,用生成式模型(GMM)对样本输入进行建模,再进一步得到样本的Fisher Vector特征表示。
定义似然函数p(X|λ)的梯度向量表示为
$ {\boldsymbol{U}_X} = {\nabla _\lambda }{\rm{log}}p\left( {X|\lambda } \right) $ | (1) |
式中:X={xt, t=1, 2, …, T}为图像的特征集合并且服从高斯分布; λ={wi, μi, σi, i=1,2,…,N}是GMM的模型参数。
为了能够让梯度向量能够更好地表示图像特征,对其进行归一化处理,得到Fisher Vector特征向量。如式(2)所示:
$\mathit{\boldsymbol{g}}_\lambda ^X = \mathit{\boldsymbol{F}}_\lambda ^{ - \frac{1}{2}}{\mathit{\boldsymbol{U}}_X} $ | (2) |
式中Fλ=Ex~p(X|λ)(UXUXT),是Fisher信息矩阵,是X的概率密度函数所包含的信息量的度量。
2 深度卷积特征提取深度学习的概念源于人工神经网络的研究,启发自人脑的分层结构,通过逐层级的提取不同维度的语义特征信息,获得有效的表征数据显式特征的能力,通过训练的方式,让多层级网络自主学习特征表达参数,从而实现端到端的模型[7]。其中,卷积神经网络在图像上的表现较为突出,被广泛应用于计算机视觉领域的个方向。
卷积神经网络(convolutional neural network,CNN)是将局部感受野、权值共享和空间亚采样的思想融合在一起来获取某种程度的位移不变性、尺度不变性、以及形变不变性[8]。卷积神经网络是一种层次模型,每一层包含若干个二维特征面,特征面又由若干个独立神经元所决定。通常一个卷积神经网络中包含卷积层、非线性映射层、池化层以及全连接层(fully connected layer,FC)[9-10]。卷积层作用是提取表达能力强的局部图像特征,通过若干卷积块加强卷积层的特征表达能力;非线性映射层引入了非线性的因素来提升网络表达能力,避免了线性不可分的现象;池化层的作用是对卷积特征映射图进行降采样,同时降低网络运算复杂度;全连接层源自多层感知机模型,对特征维数进行降维并进行分类。
卷积神经网络是通过监督学习模式进行训练,具体过程为:设置网络初始参数,将输入数据喂入网络,得到网络输出值,与原标签值对比得到损失值,然后计算利用梯度反向传播算法调整网络各层的参数,依此迭代至终止条件。VGG-16卷积神经网络是由Karen Simonyan和Andrew Zisserman[11]所提出的,并且该网络在2014年的ILSVRC比赛上取得了定位问题第一名和分类问题第二名的优秀成绩。VGG模型如图 3所示。
![]() |
Download:
|
图 3 VGG-16 |
可以得知,VGG-16有13个conv层、5个maxpool层、3个fully connect层,最后由softmax层输出分类结果。其中conv(i)-(n)代表该层的的卷积核是n个i×i的方块;maxpool表示最大值池化[12];FC-(m)表示全连接层的输出特征向量的个数为m。在每个卷积层的后面,加入了ReLU激活函数,引入了非线性,加强特征表达能力和避免了梯度饱和问题。ReLU激活函数为:
$ f(x )= {\rm{max}}\left\{ {0, x} \right\} $ |
网络的参数传递过程如下所示:由于VGG-16网络的限定,输入图像统一为448×448;第1、2个conv层的输出为64个448×448大小的feature map,然后步长为2的max pooling层将其缩小为64个大小为224×224的feature map;第3、4个的conv层输出128个224×224大小的feature map,随后的max pooling将其缩小为128个112×112的feature map;第5、6、7个的conv层输出256个112×122大小的feature map,随后的max pooling将其缩小为256个56×56的feature map;第8、9、10个的conv层输出512个56×56大小的feature map,随后的max pooling将其缩小为512个28×28的feature map;第11、12、13个的conv层输出512个28×28大小的feature map,随后的max pooling将其缩小为512个14×14的feature map。本文选择第13层卷积层的输出作为深度卷积特征。
由于VGG-16网络中包含3个卷积层,网络参数量高达上亿个,相较于少样本量的车辆样本库,直接训练网络易出现过拟合,从而导致深度卷积网络特征表达能力不足。因此,本文采用模型迁移策略,即将大样本数据集上学习到的网络权重参数应用到数量级较小数据集的任务上,通过微调的方式将网络参数适用于车辆数据集,从而得到符合条件的车辆图像的卷积网络模型。
本文采用在ILSVRC-2012数据集上训练好的VGG-16网络模型参数,修改网络最后一层全连接层的输出,使其输出类别数量与车辆类别相同,在车辆图像数据集中微调,得到有效的车辆类别分类模型。然后提取网络中的卷积层参数,作为深度卷积网络特征提取器,对输入图像进行特征提取,获取深度卷积特征向量。图 4为采用卷积神经网络迁移策略提取深度卷积特征流程图。具体步骤如下:
![]() |
Download:
|
图 4 卷积神经网络迁移策略提取特征流程 |
1) 采用ILSVRC-2012数据集对VGG-16卷积神经网络进行预训练,得到VGG-16卷积神经网络预训练模型;
2) 根据实际的车辆类别数修改VGG-16卷积神经网络预训练模型最后一个全连接层输出个数;
3) 将车辆图像数据集(训练集)输入到VGG-16卷积神经网络预训练模型中进行权重参数的微调,得到关于车辆的VGG-16卷积神经网络微调模型;
4) 将车辆图像输入到VGG-16卷积神经网络微调模型中,通过前向传播的方式将网络第13层卷积层输出的特征作为该图像的深度卷积特征。
3 融合FV-SIFT和深度卷积特征的分类算法流程本文算法总体流程如图 5所示,先将车辆图像数据集分为两部分,一部分为训练集,另一部分为测试集。
![]() |
Download:
|
图 5 本文算法总体流程 |
具体实验步骤如下:
1) 对车辆图像训练集提取FV-SIFT特征(X1);
2) 对车辆图像训练集提取VGG-16深度卷积特征(X2);
3) 将步骤1)提取的FV-SIFT特征和步骤2)提取的VGG-16深度卷积特征连接起来组成一个大特征,即为融合特征(X=[X1,X2]);
4) 将对车辆图像训练集提取的融合特征作为SVM分类器的输入进行分类训练,得到关于车辆的SVM分类模型;
5) 对车辆图像测试集按照步骤1)~3)提取融合特征,并输入到步骤4)中训练好的车辆SVM分类模型中进行分类预测。
4 实验结果及分析本文实验在BMW-10车辆数据集上,详细论证了融合FV-SIFT特征和深度卷积特征的分类方法的有效性。
实验环境是CPU为Intel(R) Xeon(R) E5-1620,主频3.7 GHz,内存16 GB;GPU为Quadro P4000,显存8 GB;操作系统为Windows10;软件采用MATLAB,选用MatConvNet框架。
4.1 数据集本文研究的是基于轿车子品牌的车辆细粒度分类,特点是不同类的车辆外观、体型等特征相似度较高。图 6为本文所采用的BMW-10车辆数据集中的部分车辆图像,该数据集包含了512张10类不同宝马车辆图像,每一类中的车辆图像的角度、像素尺寸均存在较大范围差异,每类车型样本数量在50张左右。每张图片大小不一,由于VGG-16的输入要求为448×448,因此在实验中将车辆图像大小归一化为448×448。在每种车型样本中随机选取三分之二作为训练集,其余三分之一作为测试集。
![]() |
Download:
|
图 6 部分车辆图片 |
为了验证方法的有效性,本文采用的对比实验方案如下:1)基于FV-SIFT特征的车辆细粒度实验;2)基于VGG-16深度卷积特征的车辆细粒度分类实验;3)融合FV-SIFT特征和深度卷积特征的车辆细粒度分类实验。
考虑到深度卷积特征网络VGG-16得到的特征维数为40多万的数据量,存在数据冗余和计算量过大的问题,因此对其进行最大值池化的降维处理。降维采用的不同窗口进行池化对分类精度的影像如表 1所示。
![]() |
表 1 深度卷积特征不同窗口下的分类精度比较 |
由表 1易知,VGG-16特征提取网络的数据量随着池化窗口的增大而逐渐下降,特征数据维度从几十万可降至几万;分类精度随着窗口大小变化而规律变化,于窗口大小11×11时取得最佳分类精度80.3%。
可以通过建立分类结果混淆矩阵的方法,观察分类器对每一类的分类效果。如图 7~9所示,混淆矩阵中的第i行第j列的值,代表真实样本为第i个类别时,其为第j类的概率值。易知每一行的概率值和应为1。
![]() |
Download:
|
图 7 基于FV-SIFT特征的车辆图像分类结果混淆矩阵 |
![]() |
Download:
|
图 8 基于深度卷积特征的车辆图像分类结果混淆矩阵 |
![]() |
Download:
|
图 9 融合FV-SIFT特征和深度卷积特征的车辆图像分类结果混淆矩阵 |
由图 7可知,基于FV-SIFT特征的车辆图像细粒度分类算法对类别1、4、9的分类效果较好,对8类别8的分类效果不理想,因此FV-SIFT特征能用于部分车辆的特征表示。
由图 8可知,基于VGG-16深度卷积特征的车辆图像细粒度分类算法对大部分类别均能较准确的分类;相较传统人工设计的FV-SIFT特征,特征表达能力有明显提升,说明深度卷积特征在车辆细粒度分类算法上具备有效性。
由图 9易知,融合FV-SIFT和深度卷积特征的车辆图像细粒度分类算法对类别7、9可达100%的准确分类能力,展示了该改进方法的有效性。与图 7的结果对比,可知该方法对所有类别的分类精度都较图 7的方法有明显提升,由此展示了该方法的融合特征较传统人工设计的FV-SIFT更具良好的特征表达能力;与图 8的结果对比,可知该方法在类别1、4、7、8、9、10上的分类精度较图 8所用方法有所提升,说明该融合特征比单独的深度卷积特征方法的特征表达能力更加突出,而对部分类别的分类精度不如图 8的原因,是因为FV-SIFT特征在融合特征中所占权重较大,从而使得这些类别的特征表达结果趋向FV-SIFT特征。
本文不仅采用了FV-SIFT特征、VGG-16深度卷积特征与融合后的特征进行对比实验,还采用了文献[13]、[14]中的算法与融合特征进行对比,文献[13]中的算法采用的是VGG-M卷积神经网络提取VGG-M深度卷积特征,文献[14]中的算法采用的是两个相同的VGG-M卷积神经网络提取双VGG-M深度卷积特征。如表 2所示为5种对比实验的比较结果。
![]() |
表 2 不同特征下的分类精度比较 |
由表 2易知,在整体分类精度下,基于VGG-16深度卷积特征的车辆细粒度分类算法比基于FV-SIFT特征的分类算法的精度高约13%,说明逐层级深入提取图像语义特征的深度卷积特征学习到了车辆图像的语义特征,从而提高了分类准确率。本文提出的融合特征方法相较基于FV-SIFT特征的分类方法在整体分类精度上提升15.4%,较基于VGG-16深度卷积特征的分类方法精度提高了2%左右,较基于VGG-M深度卷积特征的分类方法精度提高了8.5%,较基于双VGG-M深度卷积特征的分类方法精度提高了1.9%,说明本文方法的有效性。
5 结论针对现有的SIFT特征在车辆细粒度分类中存在的特征表达能力弱和分类精度低的问题,本文提出了一种融合FV-SIFT特征和深度卷积特征的车辆图像分类算法,该算法采用FV-SIFT特征和深度卷积特征相融合的方式对车辆图像进行分类。实验结果表明该方法在分类准确率上较基于FV-SIFT特征的车辆图像分类算法有明显提高,较基于VGG-16深度卷积特征的车辆图像分类算法也有略微提高。尽管本文最终的对比实验结果比较理想,但是本文工作也存在着一些不足之处:1)实验所用车辆图像数据集存在样本量少、种类少、拍摄车辆角度不充分等问题,这使得深层网络模型的学习能力不能最大化;2)对于深度卷积神经网络的选取可以做进一步的研究,使融合后的特征能够更加具有表达能力。因此,接下来可以围绕上述的两个方面展开进一步的研究。
[1] |
PERRONNIN F, SÁANCHEZ J, MENSINK T. Improving the fisher kernel for large-scale image classification[J]. ECCV, 2010, 115(7): 143-156. (![]() |
[2] |
ZHANG N, DONAHUE J, GIRSHICK R. Part-based R-CNNs for fine-grained category detection[C]//European Conference on Computer Vision. Switzerland City. ECCV, 2014: 834-849.
(![]() |
[3] |
王秀席, 王茂宁, 张建伟, 等.基于改进的卷积神经网络LeNet-5的车型识别方法.[2017-07-27]. http://www.arocmag.com/article/02-2018-07-055.html.
(![]() |
[4] |
LOWE D G. Distinctive image features from scale-invariant keypoints[J]. international journal of computer vision, 2004, 60(2): 91-110. DOI:10.1023/B:VISI.0000029664.99615.94 (![]() |
[5] |
谢丽军, 张友静, 张子衡, 等. 结合KPCA和多尺度纹理的IKONOS遥感影像决策树分类[J]. 遥感信息, 2010, 25(3): 88-93. DOI:10.3969/j.issn.1000-3177.2010.03.018 (![]() |
[6] |
陶建斌, 舒宁, 沈照庆. 基于高斯混合模型的遥感影像连续型朴素贝叶斯网络分类器[J]. 遥感信息, 2010, 25(2): 18-24. DOI:10.3969/j.issn.1000-3177.2010.02.004 (![]() |
[7] |
余凯, 贾磊, 陈雨强, 等. 深度学习的昨天、今天和明天[J]. 计算机研究与发展, 2013, 50(9): 1799-1804. (![]() |
[8] |
石磊, 王亚敏, 曹仰杰, 等. 基于深度卷积神经网络的车型识别[J]. 计算机科学, 2018, 45(5): 280-284. (![]() |
[9] |
ZHUO L, JIANG L, ZHU Z, et al. Vehicle classification for large-scale traffic surveillance videos using Convolutional Neural Networks[J]. Machine vision and applications, 2017, 28(7): 1-10. (![]() |
[10] |
于诗梦.基于卷积神经网络的非限定性条件下的人脸识别研究[D].哈尔滨: 哈尔滨工业大学, 2017.
(![]() |
[11] |
SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[J]. Computer science, 2014, 23(2): 558-567. (![]() |
[12] |
JIA Y, SHELHAMER E, DONAHUE J, et al. Caffe:convolutional architecture for fast feature embedding[J]. Eprint arxiv, 2014, 16(5): 576-580. (![]() |
[13] |
CHATFIELD K, SIMONYAN K, VEDALDI A, et al. Return of the devil in the details:delving deep into convolutional nets[J]. Computer science, 2014, 28(6): 3482-3489. (![]() |
[14] |
LIN T Y, ROYCHOWDHURY A, MAJI S. Bilinear CNN models for fine-grained visual recognition[C]//International conference on computer vision. Santiago City. ICCV, 2015: 1449-1457.
(![]() |