梯度直方图卷积特征的胶囊网络在交通监控下的车型分类
2020-10-18陈立潮曹建芳
陈立潮,张 雷,曹建芳,2*,张 睿
(1.太原科技大学计算机科学与技术学院,太原 030024;2.忻州师范学院计算机系,山西忻州 034000)
(*通信作者电子邮箱kcxdj122@126.com)
0 引言
随着社会的发展,人民生活水平逐步提高,汽车的数量也日益增多。一些不法分子利用当前车辆监控视频缺乏详细车型信息的缺陷,制造出一些套牌车辆、虚假车牌车辆,这些车辆给交通管理部门带来了许多不便,给社会治安带来极大的隐患[1]。车型分类是智能交通中的重要内容,通过车型分类能够为车辆视频监控提供更多的车辆信息,从而能够更好地核验车辆的真实身份,并发现并减少套牌车、假牌车的数量。随着汽车数量的增加,汽车的外形也产生了更多的变化,目前市面上的汽车类型已经到达上千种,传统一步识别到具体车型的方式已经不再适用,先对汽车的外观类型进行粗分类,然后再细分具体的汽车型号成为一种可行的解决方式。在交通监控场景下,只能拍摄到汽车的前脸和部分侧面信息,用于对不同车型进行区别的特征大大减少,这给车型识别带来类了一些困难,再加上雨雪或者大雾天气、光照等影响,给交通监控下的车型分类的准确性带来了极大的挑战。
车型分类一般包括两个步骤:特征提取和分类器。特征提取的研究有很多,代表性的特征有方向梯度方向统计直方图(Histogram of Oriented Gradient,HOG)、Haar 特征和Strip 特征等[2-4],而常见的分类器有支持向量机[5]、Softmax[6]等。近些年,随着深度学习[7]和计算机视觉[8]的发展,使用深度学习来提高车型分类的精度成为一种新的解决途径。基于神经网络[9-11]的车型分类一般采用卷积操作和池化操作的方式提取特征,这样可以更好地对各个类别独有的特征进行提取。有些学者对卷积神经网络进行改进,以提高准确率,如Zhen等[12]在卷积神经网络(Convolutional Neural Network,CNN)中引入稀疏的拉普拉斯滤波学习器学习车辆特征,桑军等[13]采用Faster-RCNN(Faster Region CNN)在几种车型数据集上进行车型识别。
由于车辆图像中含有的特征是丰富、多样的,仅采用单通道的卷积操作提取特征,会丢失图像的颜色和梯度信息,而且,CNN、Faster-RCNN 这类网络在提取特征时容易丢失图像特征的空间位置关系。基于这两方面的考虑,本文提出一种梯度直方图卷积特征的胶囊网络模型(Capsule Network model fusing with HOG Convolutional features,HOG-C CapsNet),在胶囊网络(CapsNet)[14]的基础上,增加了梯度直方图卷积特征(HOG-C 特征)提取方式,即先提取图像的梯度统计信息,生成HOG特征图,然后通过卷积层获取图像的颜色特征图,即C特征图,再将HOG 特征图和C 特征图融合,形成融合了颜色、梯度信息的HOG-C 特征图,然后再次通过卷积层进行高层抽象特征提取,形成HOG-C 抽象特征图。HOG-C CapsNet 将梯度直方图卷积特征提取方法提取出来的HOG-C 抽象特征图输入主胶囊成形成具有空间位置关系的高层特征,并使用数字胶囊层进行车型分类,使模型在交通监控场景下的车型分类上具有更高的精度。
1 相关技术
1.1 胶囊网络
胶囊网络[14]是一种具有强泛化能力的深度学习网络模型,相比卷积神经网络,去掉了会造成特征丢弃的池化层,并充分利用了图像中各个特征之间的空间关系,获得高层特征和低层特征之间的位置关系作为一种用于分类的特征。胶囊是一组神经元的集合,每个神经元代表一种特定类型特征,使用向量的方式进行表示,这样不同特征之间的相对位置就会互相作用,对由它们进行高层抽象组合的胶囊的表达结果产生影响。
胶囊网络的网络结构如图1 所示,核心是主胶囊层和数字胶囊层。MNIST 手写数字图像是大小为28×28×1 的灰度图像。首先,通过一个普通的卷积层进行简单的颜色特征提取,然后使用ReLU(Rectified Linear Unit)激活函数对卷积得到的颜色特征做归一化处理。通过卷积层后产生大小为20×20×256 的特征图层,然后通过具有32 个胶囊的主胶囊层封装成具有空间特征关系的特征胶囊,再通过动态路由算法根据这些三维胶囊的margin loss 进行优化处理,最后通过数字胶囊层输出代表分类结果的10 个胶囊,每个胶囊向量的欧氏长度即属于这一个分类的概率。
图1 胶囊网络基本结构Fig.1 Basic structure of CapsNet
胶囊网络使用margin loss 作为其损失计算方法,计算公式如式(1)所示:
其中:变量L表示计算得到的margin loss;Rj表示第j类是否存在,如果存在则值为1,否则为0;m+和m-是假阴性和假阳性惩罚,假阴性惩罚即第j类存在但是预测不存在时的惩罚力度,假阳性惩罚为第j类不存在但是预测存在时的惩罚力度,胶囊网络将其分别设定为0.9 和0.1;λ是比例系数,调整假阴性和假阳性惩罚结果的比重;vj是用向量表示的胶囊。
1.2 HOG特征提取
梯度方向统计直方图[15]能够有效描述图像局部的梯度纹理特征。原理是计算图像的一个区域中每个像素点的梯度,然后按照梯度方向分区进行分段统计,从而得到这个区域的梯度统计方向直方图。将这些梯度统计直方图作为特征,进行HOG特征提取,最后融合成HOG特征图。
HOG 特征图的生成步骤为划分区域、计算梯度、构造梯度和形成特征图四步:1)划分区域是将图像按照像素点分成若干大小固定的Cell 区域,若干个Cell 划分为一个Block 区域;2)计算梯度是获得每个Cell 中各个像素的梯度方向和梯度大小;3)构造梯度是将整个梯度范围等分为数个大小相同的区间,每个区间叫作一个Bin,将第2)步计算出的梯度对应到不同的Bin中进行累加计数;4)形成特征图是将多个Cell单元组合成Block 块,然后每个Block 块进行归一化后形成梯度方向直方图,所有的Block 块的梯度方向直方图融合得到HOG特征图。
2 梯度直方图卷积特征的胶囊网络
为了充分利用图像中的梯度统计特征、颜色信息特征以及特征的空间位置信息,从而改善车型分类效果,本文提出了梯度直方图卷积特征的胶囊网络模型(HOG-C CapsNet)。该方法在胶囊网络的基础上增加了梯度直方图卷积特征提取方式,用于对车辆图像进行多种特征的提取,提取到的HOG-C抽象特征输入到胶囊网络中进行进一步封装胶囊,用于车型分类。整个网络的结构如图2 所示,首先使用HOG 特征提取层获取HOG 特征图,然后使用卷积层获取颜色特征图,并将其与HOG特征图融合后形成HOG-C特征图,之后输入卷积层进一步提取抽象特征形成HOG-C 抽象特征图,最后,将HOG-C 抽象特征图作为胶囊网络的输入,再将胶囊网络中各层的参数做一些适应性改进,以达到适用于车型分类和更好的分类效果的目的。
图2 HOG-C CapsNet的基本结构Fig.2 Basic structure of HOG-C CapsNet
2.1 HOG特征提取
输入图像是224×224×3 大小的RGB 图像,具有红(Red,R)、绿(Green,G)、蓝(Blue,B)三个颜色通道,本文方法中,按照0.299×R、0.587×G以及0.114×B的加权进行融合,形成单通道的灰度图,即224×224×1 的图像。将灰度图中的所有像素按每2×2 的区域划分为一个Cell,每个Cell 包含4 个像素,整个224×224×1的图像可以划分为112×112 个Cell。计算Cell 中坐标为(x,y)的像素的梯度值和梯度方向的公式如式(2)所示:
其中:G(x,y)表示梯度值;D(x,y)表示梯度方向;Gx(x,y)和Gy(x,y)分别是x轴方向的梯度和y轴方向的梯度。
HOG-C CapsNet 将360°的梯度方向等分为16 份,即16 个Bin,每个Bin 代表一个范围的梯度方向,按照Bin 所代表的梯度范围将Cell中的每个像素分别对应到不同的Bin中,将每个Bin中包含的像素的梯度值进行累加,最后形成x轴为Bin值、y轴为梯度累加值的梯度统计直方图。这样整个224×224×1的图像就得到了112×112个梯度统计直方图。之后将这112×112 个梯度直方图按照大小为1×1、步长为1 的滑动窗口划分为Block,即每个Block 包含一个Cell。每个Block 对其中的Cell得到的梯度统计直方图进行归一化处理,即对112×112个梯度统计直方图分别进行归一化处理。归一化后的每个梯度统计直方图就是整个图像的一个小区域的HOG 特征,所有这些特征的集合即HOG 特征图。因为有16 个Bin,即每个梯度统计直方图包含16 个归一化后的梯度统计值,所以最后得到具有梯度统计特征的112×112×16大小的HOG特征图。
2.2 HOG-C特征提取
HOG-C CapsNet 使用64 个3×3×3 的卷积核在整个图像上做卷积操作来提取车辆的颜色特征。为了获得更细致的颜色信息,HOG-C CapsNet 使用3×3 的小卷积,为了获得更多的颜色特征,使用步长为2 的小步长滑动,并且使用“SAME”方式对滑动的边缘进行填充,得到大小为112×112×64 的特征图,即C特征图。
将具有颜色特征表达的C 特征图和大小为112×112×16的HOG 特征图进行融合,即二者在长和宽上保持一致,深度方向上进行拼接,形成大小为112×112×80 的特征图,即具有颜色和梯度统计特征表达的HOG-C 特征图。HOG-C 特征图的生成过程如图3所示。
拼接融合后的HOG-C 特征图通过一个卷积层来提取HOG-C特征图的高层抽象特征。卷积层使用128个大小为3×3 的卷积核,使用SAME 填充方式并进行步长为2 的窗口滑动。这样就将112×112×80 的HOG-C 特征图转化为大小为56×56×128的HOG-C抽象特征图。
图3 HOG-C特征提取Fig.3 HOG-C feature extraction
2.3 胶囊网络的适应性调整
原胶囊网络是直接将手写数字的灰度图的颜色特征进行封装打包制作胶囊,每个胶囊封装了原图像颜色特征之间的关系,而本文方法是将HOG-C 特征图的高层抽象特征作为输入,不仅仅是打包颜色实体的空间特征,而是将颜色和梯度特征进行了整合抽象后的特征进行打包。因为两种特征的数据输入的结构和分类问题的输出不同,所以需要对原胶囊网络中的参数和数据结构做一些适应性的改进。
一个是对输入进行适应性调整,将CapsNet 中的卷积层采用256 个步长为2 的3×3 大小的卷积核进行替换,以适应56×56×128 的输入,得到的特征图输入主胶囊层进行三维胶囊的打包封装处理。另一个是对输出进行适应性调整,因为本文需要的是输出为6 类的预测结果,所以,将数字胶囊层中的相关计算参数进行替换,使之输出为16×6 的胶囊,这样就可以使胶囊对应到6个类别,从而计算出分类结果。
2.4 算法复杂度分析
HOG-C CapsNet由HOG-C抽象特征提取部分和胶囊网络部分组成,时间复杂度和空间复杂度的计算如式(3)~(4)所示:
其中:T和S分别表示时间复杂度和空间复杂度;THOG-C和SHOG-C分别表示HOG-C 抽象特征提取部分的时间复杂度和空间复杂度;TCaps和SCaps表示胶囊网络部分的时间复杂度和空间复杂度。
HOG-C 抽象特征提取部分的结构包括一个HOG 特征提取层和三个卷积层,时间复杂度和空间复杂度的计算如式(5)~(6)所示:
其中:T表示时间复杂度;S表示空间复杂度;THOG和SHOG表示HOG 特征提取层的时间复杂度和空间复杂度;TC1、TC2、TC3和SC1、SC2、SC3分别表示第一个、第二个、第三个卷积层的时间复杂度和空间复杂度。
HOG 特征提取的是滑动窗口在原图上做滑动操作,每次进行梯度计算的时间复杂度和空间复杂度均为O(1),故HOG特征提取的时间复杂度THOG和空间复杂度SHOG如式(7)~(8)所示:
其中:K表示滑动窗口的边长;N表示滑动的步长;M表示图像的边长。
TC1、TC2、TC3这三个卷积层的时间复杂度受卷积核的边长K、输出特征图的边长M、输入的通道数Cin和输出的通道数Cout的影响,SC1、SC2、SC3这三个卷积层的空间复杂度受卷积核的边长K和输出的通道数Cout的影响,单个卷积层的时间复杂度和空间复杂度TC和SC如式(9)~(10)所示:
胶囊网络部分由主胶囊层和数字胶囊层组成,主胶囊层包含一个卷积层和胶囊的封装操作,胶囊的封装操作的时间复杂度T和空间复杂度S均为O(1),故主胶囊层的时间复杂度和空间复杂度可以使用式(9)和式(10)来表示。数字胶囊层使用动态路由算法对胶囊进行计算,得到分类结果,时间复杂度和空间即动态路由算法的时间复杂度和空间复杂度。
3 实验与结果分析
3.1 数据集和实验环境
实验采用北京理工大学的BIT-Vehicle 公开车型数据集作为训练、测试数据,该数据集中的车辆图像均来源于道路监控视频,由两个不同位置的摄像头在不同时间点获取得到,包括白天和晚上等一天的各个时间段,能更好地体现实际交通监控场景中的情况。由于采用两个不同的摄像头,数据集中含有1 600×1 200像素和1 600×1 080像素这两种尺寸的图像。
该数据集共计9 850 张图像,包含555 张大型客车(Bus)图像、860 张小型客车(Microbus)图像、467 张小型货车(Minivan)图像、5 776 张家用轿车(Sedan)图像,1 372 张运动型实用汽车(Sport Utility Vehicle,SUV)图像和820 张卡车(Truck)图像。该数据集中各类车辆的数量不同,且差距最多可达5 000 多张,这种分布不均衡的数据极易影响训练结果。因此,实验前将数据集进行了预处理,将所有的图片变换为224×224 的图像,即将图片按照可以使最长的一边缩小为224的比例做长宽等比例缩小,然后再旋转一个角度以扩充数据集,空余背景使用黑色填充,这样就对原数据集进行了上采样扩充,使得数据集各个类别数量均衡。
进行上采样预处理后的BIT-Vehicle 车型数据集部分图像如图4 所示(因版面宽度限制,图中省去了“.jpg”),为了更方便查看数据集的处理结果,图像的名称统一采用“类别+序号+(旋转角度).jpg”,如:“Bus1666(5).jpg”。上采样预处理后的数据集中每类车型的图像数量为6 200 张,其中6 000 张用于训练,200 张用于测试。那么,6 类车型总共有37 200 张图像,其中训练集有36 000张图像,测试集有1 200张图像。
图4 数据集的部分图像Fig.4 Some images in dataset
本实验由带有独立显卡的高性能计算机完成,在Windows10 操作系统上搭建基于GPU 的TensorFlow[16]框架作为深度学习开发平台。开发环境的各项参数如表1所示。
表1 实验环境参数Tab.1 Experimental environment parameters
3.2 实验对比及分析
3.2.1 实验设置
为了更好地进行训练,实验对数据集使用上采样的方法做了数据均衡处理。BIT-Vehicle 数据集中各类别数据有467~5 776 个不等,数量差距比较大,如果按照原数据集直接打乱进入模型进行训练,会导致各个类别训练效果不均衡,训练次数多的类别产生过拟合现象而训练次数少的类别却训练不到位。所以,将每类图像通过图像旋转的方式增加新的同类数据,使所有的类别个数保持一致,上采样数据均衡后,得到训练集中6 类车型每类6 000 张图片,共36 000 张图片,测试集每类200 张图片,共1 200 张图片,且训练集和测试集中没有相同的数据。
训练和测试对图像加载前,先将整个数据集全部打乱,随机选择8张图片进入网络进行训练,作为一个batch,即一步训练或测试的操作。为了方便地查看训练过程的效果,选取小步长对训练进行检测,即每200 步训练进行一次测试,从测试集中随机选取600 张图像,每一步测试输入8 张图片,一共需要75步测试,得到一组对600张图片的测试结果,可以用混淆图来表示,HOG-C CapsNet 最后一次测试的混淆矩阵如表2所示。
表2 最后一次测试的混淆矩阵Tab.2 Confusion matrix for last test
最后一次测试一共测试了600 张图片,选取其中有代表性的几组数据进行分析,如表3所示。
为了每类样本的训练是均衡的,实验均是将整个数据集打乱后输入网络进行训练,当前训练集训练完成后,再次打乱整个训练集中的图片,再输入网络进行训练。按照每200 步训练进行一次测试,即训练1 600 张图片进行一次测试,训练集一共有36 000 张图片,在这个过程中可以测试22.5 次,这样,在定义的测试400 次的整个训练过程中,训练集被加载了18 次。在加载的过程中因为是随机输入训练的,在模型参数更新的过程中会对某一类别的训练充分,而其他类别不充分,某些训练得更充分的类别会影响其他类预测效果,使得模型训练的精度出现不同程度的下降,但随着数据集的加载,各类的训练数量的差距会随之减少,测试精度随之上升。故在每次数据集被训练完一遍之后的测试,因为各类别做了同等数量的训练,模型的效果达到一个在本周期内比较好的点。随着整个数据集被一遍遍加载,就会出现测试结果先下降再上升的周期性变化。如图5 所示,可以看到产生的周期性变化的结果。
图5 HOG-C CapsNet测试的Accuracy结果Fig.5 Accuracy results of HOG-C CapsNet
表3 最后一次测试部分结果及分析Tab.3 Results and analysis of last test
为了避免周期性结果对实验造成干扰,在对比实验中对关注的结果进行选择。测试不同HOG-C 结构对HOG-C CapsNet 的影响的实验中,因为仅仅在HOG-C 特征提取部分有差别,故四种HOG-C 特征图提取方式的训练效果的趋势是大致相同的,选取最后一个周期的23 次测试结果作为实验效果进行对比。测试不同网络模型效果的对比实验中,重点关注不同网络在训练过程中的趋势,将每20 次测试的结果平均值作为输出数据,这样曲线就能更好地反映模型训练的效果。
实验对比了HOG 特征提取在整个网络中不同位置对车型分类的影响,得到最优的HOG-C CapsNet 模型。为了进一步体现HOG-C CapsNet 的效果,实验还与其他相关的网络模型在同样的实验条件下的效果进行对比,通过多种对比,充分体现HOG-C CapsNet 的性能。实验采用损失(Loss)、准确率(Accuracy)、平均精确率均值(Mean Average Precision,MAP)、平均召回率均值(Mean Average Recall,MAR)和综合评价指标MF1 进行分类效果的评价。其中MF1 是MAP和MAR的调和平均,计算公式如式(11)所示:
3.2.2 HOG特征提取在模型中的位置对车型分类的影响
在引入HOG-C特征提取时,HOG 特征提取的位置不同会影响实验结果,实验对比了ZeroHOG、OneHOG(本文提出的HOG-C CapsNet 中HOG-C 的结构)、TwoHOG 和ThreeHOG 四种仅仅是在结合位置上有所区别的网络结构在车型分类的效果。不同HOG-C 结构中对原图提取梯度统计生成HOG 特征图的方式是相同的,图6 显示了在本文模型训练过程中,一次测试的随机的8张图像的HOG特征图的输出。
图6 本文模型提取的HOG特征图Fig.6 HOG feature maps extracted by proposed model
HOG 特征图中的内容本质上是图像的特征之一,随后和卷积层提取的色彩特征使用相同的处理方式,在对HOG 特征图和色彩特征图进行卷积特征提取、三维胶囊封装和动态路由算法的计算的过程中,通过优化算法对模型参数进行优化,使得属于背景部分的HOG 特征和颜色特征对分类结果的权重降低,而属于目标部分的特征的权重加大,这样实现对样本类别的预测。因为训练集和测试集的同类样本是类似的,不论背景和目标在原图中的比例如何,用于区分各个类别目标的特征和其他特征都可以根据训练集得到一组相对最优的模型参数,最后可以根据测试过程中得到的HOG 和颜色特征图在训练模型的计算中得到的结果来预测其所属的类别。
ZeroHOG 的HOG-C 结构是使用原图像的HOG 特征图与原图像进行结合形成的HOG-C 特征图。即对车辆图像进行HOG 特征提取,与原图像直接进行拼接融合,形成HOG-C 特征图,之后经过两个卷积层进行抽象特征提取后传入胶囊网络的卷积层和主胶囊层中进行处理。
OneHOG 即本文使用的网络模型,HOG-C 结构是使用原图像的HOG 特征图与原图像的一次卷积后的颜色特征图进行结合形成HOG-C 特征图,之后经过一个卷积层进行抽象特征提取后传入胶囊网络的卷积层和主胶囊层中进行处理。
TwoHOG 的HOG-C 结构是使用原图像的HOG 特征图与原图像的二次卷积后的颜色特征图进行结合形成HOG-C 特征图,将其传入胶囊网络的卷积层和主胶囊层中进行处理。
ThreeHOG 的HOG-C结构是使用原图像的HOG特征图与原图像的三次卷积后的颜色特征图进行结合形成HOG-C 特征图,将其直接传入胶囊网络的主胶囊层中进行胶囊的封装。
图7 是对HOG-C 结合位置进行对比的实验结果,横坐标step 表示在训练中测试的步数,平均每次训练一遍数据集测试23次,总共测试了400次;纵坐标是每次测试得到的不同指标。图7(a)是在测试过程中通过Margin Loss 求出的损失值。可以看出,OneHOG 的损失最小,其次是TwoHOG,再者是ZeroHOG,而ThreeHOG 的损失则是最大的,说明在特征胶囊层将HOG-C 特征图作为输入,效果是最差的。图7(b)是Accuracy 变化的折线图,整体来看OneHOG 的准确率最高,ThreeHOG 的准确率最低。图7(c)是MAP 变化的折线图,可以看出,在400 步中,OneHOG 的MAP 大多处于最高状态,而HOG 处于其他位置的几种网络模型的MAP 大多比OneHOG的MAP 小。图7(d)是MAR 变化的折线图,可以看出ThreeHOG 的MAR 的波动性最大,OneHOG 的波动性最小,最为稳定,且整体的值要高于其他几种网络模型。图7(e)是MF1 变化的折线图,根据MAP、MAR 的值得到的MF1 的值的也是最为稳定的,且数值整体是最高的。
3.2.3 不同网络对车型分类的效果对比
为了从宏观的角度说明本文算法的效果,在相同的软硬件实验环境下对HOG-C CapsNet、胶囊网络(CapsNet)[14]、VGG(Visual Geometry Group)提出的VGG16[17]和CPCPC(Convolutional Pooling-Convolutional Pooling Convolutional)网络进行对比。其中:CapsNet 由一个卷积层、一个主胶囊层和一个数字胶囊层组成,仅仅是为了适应车型识别对其中的参数做了两点适应性改变,一个是输入图像的大小部分,由28×28×1 变成224×224×3,以适应BIT 车型数据集,另一个是最后输出的类别胶囊部分,从16×10变成16×6的胶囊,以适应6分类。VGG16是深度的卷积神经网络模型,由13个卷积层、5个池化层和2 个全连接层构成,每个卷积层的卷积核的步长为1、大小为3×3,每个池化层的滑动窗口的步长为2、大小为2×2,而全连接层分别有1 024 个节点和6 个节点。VGG19 是深度的卷积神经网络模型,由16 个卷积层、5 个池化层和2 个全连接层构成,每个卷积层的卷积核的步长为1、大小为3×3,每个池化层的滑动窗口的步长为2、大小为2×2,而全连接层分别有1 024 个节点和6 个节点。CPCPC 是一个浅层卷积神经网络,具有3 个卷积层、2 个池化层以及2 个全连接层构成,卷积核的大小、池化层的滑动窗口以及全连接层的参数均与上述的VGG16相同。
设卷积层、池化层、全连接层、HOG 提取层和胶囊网络部分的时间复杂度分别为TC、TP、TF、TH和TX,卷积层、池化层、全连接层、HOG 提取层和胶囊网络部分的空间复杂度分别为SC、SP、SF、SH和SX,表4展示了不同网络模型的时间复杂度和空间复杂度的对比。对比表4 中的数据可以看出,CPCPC、VGG16 和VGG19 的时间复杂度和空间复杂度依次递增,HOG-C CapsNet与CapsNet相比,时空复杂度增加得并不大。
表4 不同网络模型的复杂度对比Tab.4 Complexity comparison of different network models
图8 显示了HOG-C CapsNet、CapsNet、VGG16 和CPCPC四种不同结构的神经网络在同一数据集上的分类效果,平均每次训练一遍数据集测试23 次,一共测试400 次,每10 次测试的结果取平均值作为横坐标,故一共有40 个结果,即横坐标step 表示测试10 次的平均值,纵坐标是每次测试得到的不同指标。
图7 四种不同HOG-C结构的网络对比实验结果Fig.7 Experimental result comparison of four different networks with HOG-C structure
图8 不同模型对比实验结果Fig.8 Experimental result comparison of different models
图8(a)为四种网络结构准确率的折线图,VGG16 和CPCPC 的准确率在第20 次测试和第60 次测试附近时下降到0.15 左右,并在此范围内上下波动,即预测结果在1/6 左右波动,预测结果随机出现,模型的泛化性能降低,模型对测试数据完全无法识别,模型的测试失效,该现象说明这两个网络模型较早出现了过拟合。而HOG-C CapsNet 和CapsNet 均未出现此现象,这是由于CapsNet和HOG-C CapsNet生成了特征胶囊,对特征的空间关系也加入了分类对比,而卷积网络所提取的仅仅是二维颜色特征。因为实验中的CapsNet 和HOG-C CapsNet 的层数并不多,是一个浅层的神经网络,故不会引发过拟合现象。CapsNet 的准确率在近0.60 处上下波动,HOG-C CapsNet 的结果在近0.98 处上下波动,说明OneHOG的准确率较高。
图8(b)、(c)和(d)是MAP、MAR 和MF1 的折线图。三张图中折线的变化趋势和图8(a)中的变化趋势基本相符,比较CapsNet 和HOG-C CapsNet,由 于HOG-C CapsNet 在CapsNet的基础上引入了HOG-C 特征,增加了梯度统计特征的提取,并且是将混合特征再次抽象而后将其转化为三维特征,提高了特征的表达能力,故HOG-C CapsNet的分类效果较好。
图8(e)为四种网络结构Loss 的折线图,可以看出,VGG16 和CPCPC 分别在第20 次测试和第60 次测试附近时,Loss值直接下降为零,且之后一直保持为零的状态不变,说明两个网络的训练时正向传播的预测值和真实值相等,训练数据可以完全无误差地得到正确的预测值。从图8(a)所展示的四种网络模型的Accuracy 对比结果中,可以得到训练集完全被识别,但测试集完全没有识别,这说明模型的完全没有了泛化能力,即对模型做了过多的拟合,产生了过拟合现象,这验证了上述所说的两个模型出现过拟合现象。
表5 为四种网络的最终效果,由Accuracy、MAP、MAR 以及MF1 四种指标的比较结果可以得出,HOG-C CapsNet 的效果最好,其次是CapsNet,而VGG16和CPCPC 由于过早地出现了过拟合,故实验效果均较差。
表5 各种模型最后一次测试结果Tab.5 Final test results for various models
综上,比较CPCPC、VGG16 和VGG19,可知卷积层的层数并不是越多越好,当卷积层减少时,图像的特征不会被过多地提取和丢弃;比较CPCPC、VGG16、VGG19 和CapsNet,可知可以提取到特征间三维空间关系的胶囊网络能够更好地对图像特征进行抽象;比较CapsNet 和HOG-C CapsNet,可知当CapsNet 引入HOG-C 特征提取方法后,能够提取到更多的图像特征信息,从而获得更好的分类效果。
进一步将HOG-C CapsNet 网络模型的实验结果与其他文献中对BIT-Vehicle 中车辆进行分类的结果相比较,结果如表6所示。从表6可以看出,本文所提出的HOG-C CapsNet 网络模型在BIT-Vehicle 数据集上具有良好的分类效果,准确率要高于其他模型,对交通监控下的车型分类的研究具有重要的价值。
表6 不同网络模型下车型分类Accuracy对比 单位:%Tab.6 Comparison of vehicle classification accuracy of different network models unit:%
4 结语
本文在深度学习框架TensorFlow 的框架下提出一种梯度直方图卷积特征的胶囊网络模型用于车型识别,并在原生的胶囊中增加了梯度卷积特征提取方法。使用北京理工大学的BIT-Vehicle 公开车辆数据做对比实验,验证了用于提取梯度卷积特征的不同HOG-C 结构对HOG-C CapsNet 的影响,还将HOG-C CapsNet 和几种传统的卷积神经网络以及胶囊网络做了对比实验,实验得到的准确率为98.17%,综合评价指标达98.20%,优于几种传统的卷积神经网络和原生的胶囊网络。但是,实验只针对BIT-Vehicle 数据集进行测试,未对其他车辆数据集进行测试,存在一定的局限性,在实际应用中的泛化能力可能不高,因此下一步可以将模型在KITTI、UA-DETRAC等车辆数据集以及实际场景下进行进一步验证和分析,解决其适应性的问题,并且测试其他数据集的不同天气的情况,从而为该模型的实际应用奠定更好的基础。