基于CNN的车辆目标检测与车型分类研究
2021-06-28吴乐平窦祥星
吴乐平,窦祥星
(南京旭上数控技术有限公司,江苏南京,211100)
0 引言
车辆检测和车型分类具有广阔的应用前景,例如,车辆类型分类已广泛应用于智能交通系统中的交通流统计,并且在解决城市车辆管理,城市交通管制等问题中发挥着关键作用。
交通车辆监控中常见的车辆检测与分类方法主要有基于传统SIFT特征提取方法实现特征匹配分类,采用基于Harris特征与SIFT特征结合的方式实现车型识别[1],采用空间金字塔特征并结合Adaboost分类器的方式对车辆进行检测[2];基于高斯混合模型的移动车辆检测方法,通过粒子群编码,采用粒子群与云模型的混合模型实现车型分类;基于车牌分类方法[3],基于方向梯度直方图特征(HOG)的SVM监控视频分类方法。通过使用车前轮廓,挡风玻璃,后视镜和车牌的特征来实现车辆类别分类[4]。
虽然上述算法在目标检测分类任务中已经取得了良好的效果,但由于一些不同车型具有相似的外观特征,而且车辆识别尺度只在车辆目标分类层面,并且只能实现对特定角度拍摄的车辆图像进行检测和分类,上述方法难以满足车辆检测识别要求。本文提出的基于Faster R-CNN的卷积神经网络车辆检测和分类方法满足了道路车辆检测分类的要求[5],实现从不同角度检测车辆,并对车辆进行检测和分类。
1 车辆数据集的构建与分析
为了验证模型在车辆分类测试中获得更好的泛化能力,车辆分类系统需要能够识别在不同的颜色,视觉和场景下的同类型车辆。为了验证模型在车辆分类测试中获得更好的泛化能力,车辆分类系统需要能够识别在不同的颜色,视觉和场景下的同类型车辆。斯坦福大学的车辆分类数据集包含从自然场景或网络上收集的16,185张图像,其中有8,144张经过校验的训练图像和8,041张测试图像[6],这些图像包含196种车型。然而,我们发现该数据集中相同车型的训练图片很少,并且相同车型分类准确度较低。因此,我们将这196种车型分为 7大类,即大众(Volkswagen),奥迪(Audi),雪佛兰(Chevrolet),宝马(BMW),福特(Ford),梅赛德斯 - 奔驰(Mercedes-Benz)等7种车型,从而扩大了每种车型的样本数量。由于该数据集主要是从国外车辆图片中收集的,包含国内车型的样本较少,因此利用国内车辆类型的车辆数据集测试所提模型的泛化能力,我们在原有数据集中扩充3909辆国内车辆图像的数据。
2 基于CNN的车辆检测与分类
本文所提的基于卷积神经网络的车辆检测与分类模型是,首先通过区域分割从含有车辆的图像背景区域提取车辆区域,去除背景噪声以提高识别精度,然后利用卷积神经网络对大量车型标签图像集的特征提取和分类训练,从而实现不同视角识别车辆类型的任务。此外,我们比较分析车辆检测过程中的选择精度[7],识别精度和实时性等性能指标。在车辆检测训练过程中,当将参数“NegativeOverlapRange”(候选区域与图像标记区域之间的重叠比率作为负训练样本的间隔)设置为 [0,0.3] 时,“PositiveOverlapRange”(候选区域与图像标记区域之间的重叠比率作为正训练样本的间隔)为[0.7,1],车辆检测的准确度最高。将检测到的车辆区域将被送到车辆类型分类网络从而将车辆检测和车辆类型分类模块级联起来[8]。本文提出的方法有助于避免车辆识别过程中背景区域的干扰,从而实现更精确的车型分类。我们比较分析了不同分类网络模型的损失函数与精度曲线,以及各种车型的分类结果。
3 方法概述
3.1 Faster R-CNN
Faster R-CNN的提出解决R-CNN在目标检测和识别方面的一些问题,1)R-CNN检测算法是分阶段进行,提取候选帧耗时较长;2)训练阶段数据存储占用空间较大;3)目标检测速度慢。Faster R-CNN引入区域生成网络(RPN), RoI 池化层等优化措施,具体过程如下:1)使用区域生成网络生成区域候选帧,和整个检测网络共享卷积特征,从而减少生成区域候选帧的耗费时间;2) RoI池化层将整个图像直接归一化到深度网络中,只在网络层的末端对每个候选区域进行处理,有效避免了对候选帧同一区域的特征进行多次卷积特征提取的冗余操作;3)深度网络可以实现目标分类和位置的精确调整,不需要额外存储空间;4)通过RoI Pooling层我们已经得到所有候选区组成的特征向量,然后送入全连接层和softmax计算每个候选框具体属于哪个类别,输出类别的得分,同时再次利用框回归获得每个候选区相对实际位置的偏移量预测值,用于对候选框进行修正,得到更精确的目标检测框定义两个同级输出,一个生成检测目标对象类别和“背景”类别,另一个是检测目标精确的边界框位置。
Faster R-CNN算法,主要分为四个步骤:
(1)卷积层特征共享
作为一种基于卷积神经网络的目标检测方法,利用基本卷积层提取输入图像的特征图,并将其共享给后续的RPN层和全连通层。
(2)区域生成网络(RPN)
RPN是一个完整的卷积网络,它输出一组候选区域和每个候选区域属于检测目标的得分。共享卷积层输出卷积特征图上的滑动小网络完全连接到输入卷积特征图的n×n窗口。每个滑动窗口映射到一个低维向量,然后输出到同级回归层和分类层。对于尺寸大小为W×K的卷积特征,共有W×K个候选帧。
(3)目标检测网络
目标检测部分主要是由空间金字塔池化网络组成[9]。1)池化层被视为单层空间金字塔。2)对原始图像只进行一次卷积,得到整幅图像的特征,并加到候选框中。将每个候选帧的卷积特征输入到下一层。利用固定H×W大小空间范围,提取出H×W大小的RoI子窗口。并将这些子窗口通过最大池映射到相应的网格单元。
(4)目标分类
利用候选框的特征图计算其分类类别,再通过边界框回归得到检测框的最终精确位置。多任务RPN训练损失函数如公式(1)所示。
i是每一批样本中一个候选框的索引,pi is是候选框i一个目标的概率,the prediction probability of the target.如果候选框区域属于前景目标,则标记为1,如果候选框区域是背景目标则为0,vi是回归边框4个坐标的参数向量,是前景目标候选框区域的坐标向量。
3.2 车辆检测
在实验中,我们使用R-CNN和Faster R-CNN目标检测算法检测前景目标训练集图像和前景目标的车辆区域,并且这两种检测算法使用AlexNet卷积网络模型,AlexNet结构。
AlexNet网络的前五层是卷积层,后三层是全连接层。卷积层由卷积层与池化层交替连接组成,卷积核最大尺寸为3×3,步长为2×2。在AlexNet中,池化层用于减少神经元的数量,卷积网络计算量并防治网络过拟合。使用ReLU作为激活函数更容易计算网络的前向传播并反向梯度函数,还有助于避免指数和除法等复杂计算。丢弃输出小于0的隐藏层神经元以增加网络稀疏性并减轻过拟合。我们调整实验中的AlexNet网络结构,并输出提取的车辆区域。
3.3 车型分类
为了实现对车辆区域检测后的车型分类识别,将车辆检测算法得到的车辆前景区域引入到另一个卷积神经网络进行车型识别。卷积神经网络使用一定数量的卷积核并以一定的步长滑动对输入图像进行卷积操作以提取卷积层中的特征。每个卷积核关注检测区域的不同特征,因此卷积操作可以获得不同的特征映射。将这些特征映射传递到下层卷积层,然后下层卷积层使用一定数量的卷积核来提取上层的特征映射,此操作将重复进行,获得卷积核的权重参数。然后将卷积层与全连接层相连,全连接层对提取的车型特征进行分类。利用基于深度卷积网络的方法,可以提取到被传统方法忽略的特征,可以明显提高车型识别精度。在车型分类中,我们对AlexNet,Vggnet16,Vggnet19,GoogLenet,Resnet50,Resnet101等分类模型进行研究。为了进一步提高车型检测识别的实时性,将从每次车型检测中的车型检测区域图像,同时将检测到的候选区域图像一起截取,并送到车型分类网络。
4 实验结果分析
本实验所用的计算机内存为64G,GPU为Georce GTX 1080 Ti,软件系统为matlab 2017b。数据集采用斯坦福大学提供的8041张图片对测试模型进行测试。为了分析每个模型的具体训练过程,我们给出每个检测分类网络训练损失函数曲线和精度曲线。比较分析损失函数曲线和精度曲线,我们发现Resnet-101在所有模型中训练收敛最快,其最快的损失接近于零精度,其最快的准确度接近100%。
实验结果表明,基于Faster R-CNN进行车辆目标检测方法,能够将特征提取,候选ROI区域边界生成,线性回归和分类集成一个网络结构中,从而大大提高了网络的检测速度,其检测时间损耗只有原网络的1/12。对于车辆分类识别网络结构,在训练过程中我们略微调整几个网络和网络参数,并收集相关的训练实验信息,比较和分析了R-CNN和Faster R-CNN两种检测结构的准确率。在测试集得到的实验结果如表1所示,精度计算公式如(2)所示。
其中,CR表示模型识别准确率,CN表示正确分类样本数,EN表示错误分类样本数,TN表示样本总数。
为了更好地理解不同网络结构在级联Faster R-CNN的情况下的车型分类和识别性能。针对不同卷积网络模型车型类别的识别准确度,AlexNet的车型识别平均准确率为50.44%,Vggnet-16的车型识别平均准确率为74.05%,Vggnet-19的车型识别平均准确率为79.80%,GoogLenet的车型识别平均准确率为75.05%,Resnet-50的车型识别平均准确率为77.13%,Resnet-101的车型识别平均准确率为78.40%。
5 结束语
本文研究了基于卷积神经网络的城市交通视频监控中的车辆检测与车型识别。实验结果表明,通过增加训练数据集,修改参数和更换模型,有助于提高车辆识别分类率,减小识别时间。我们可以不断补充和完善实际交通监控中的训练数据集,进一步提高模型分类的准确性。在未来研究中,我们将考虑在实际交通流量检测中验证使用该方法,并进一步提高实时算法的准确性和鲁棒性,从而更好地解决实际交通中的车辆检测与车型识别问题。