APP下载

基于CNN-SVM 的车辆检测与类型分类

2022-07-11张依林王学颖

电子技术与软件工程 2022年7期
关键词:特征提取分类车辆

张依林 王学颖

(沈阳师范大学软件学院 辽宁省沈阳市 110034)

车辆检测与分类是高级驾驶员辅助系统(ADAS)和智能交通系统(ITS)领域的重要研究课题。随着图像处理和模式识别技术的发展,基于视觉的车辆检测和分类成为近年来的研究热点。

车辆检测是利用各种图像处理算法从视频序列或图像的感兴趣区域中提取车辆目标的过程。根据图像是否静止,车辆检测方法可分为两类:基于运动信息的车辆检测和基于特征的车辆检测。基于运动信息的车辆检测主要针对运动中的目标车辆。方法包括背景差法、帧差法、光流法等。但这些方法只能检测移动的车辆,检测效果受光照的影响很大。基于特征的车辆检测主要采用车辆对称、灯光、边缘、颜色等车辆外观特征。然而,这些特性只能在特定的情况下工作,这并不是普遍的。随着人工智能的快速发展,一系列优秀的目标识别算法被提出。与传统的定位方法相比,深度学习定位目标的准确性和通用性更强。考虑到算法的实时性,所以我们选择Yolov2-tiny 进行车辆检测。

传统的机器学习需要人工提取特征并将其输入到各种分类器中进行分类,例如HOG + SVM或DPM + SVM。然而,特征选择是准确性的关键,但不同的环境和特征可能会导致性能漂移。因此,选择最合适的特征来描述对象是一个巨大的挑战。基于CNN 的深度学习通过学习自动优化特征提取,独特地解决了这一问题。

1 车辆检测

车辆检测是智能交通系统的重要组成部分,是后续车辆类型识别的前提步骤。因此,准确、高效的车辆检测方法至关重要。基于运动信息的车辆检测方法可以检测出视频帧中的运动车辆。但是,该算法对静止的目标检测失败,不能在单个图像中检测出目标。基于特征的车辆检测由于难以找到合适的特征来描述目标而不具有通用性。因此,我们采用Yolov2-tiny深度学习算法进行车辆检测,具有较强的适用性和通用性。

1.1 BIT数据集

本研究中使用的数据集是基于BIT-Vehicle,这是一个由北京理工大学制作的数据集。该数据集由9850 张在高速公路交通检查站拍摄的车辆正面图像组成。车辆数据集被分为六类。卡车、巴士、轿车、小型客车、小型货车、和SUV。每个车辆类型的总数分别为558、883、476、5922、1392 和822。

1.2 K-means均值聚类法

使用K-means 算法对BIT 数据集中的车辆边界盒的基础事实进行聚类。聚类数对聚类效果有很大影响。图1 反映了k 和IOU 之间的关系。我们可以发现,当k 等于5 的时候,网络的综合性能是最好的。

图1:IOU-聚类关系曲线

1.3 车辆检测结果

实验硬件环境为CPU Intel Core i7-10700k, 物理内存为32GB,GPU 为NVIDIA RTX2080Ti, 软件环境为VS2015+OPENCV,操作系统为windows 10。

在训练中可以发现,随着训练的进行,平均损失接近0。当训练完成后,最终的IOU 超过了80%。虽然召回率有所波动,但当训练批次达到2500步时,召回率稳定在95%以上。

训练结束后,使用OPENCV 扩展模块中的深度神经网络(DNN)模块,将在暗网中训练的模型迁移到VS2015 中,并在此环境下测试测试数据集。

检测网络的检测阈值被设定为0.8。测试数据集的测试数据如下。

(1)平均召回率为94.45%,车辆的检测率非常高。测试数据集中的所有目标都被提取出来。但是,有些物体没有被检测出来,因为它们的置信度低于阈值。这个问题可以通过在保证检测精度的前提下适当降低阈值来解决。此外,我们还对不同数据集下的网络进行了迁移实验,发现当环境发生剧烈变化时,召回率会明显降低。这部分问题只能通过增加训练样本或使用数据增强来解决。

(2)平均IOU 为82.25%。在最初选择神经网络的时候,算法的运行速度被作为首要考虑因素。所以我们采用了简化的Yolov2 神经网络,并放弃了一定的网络深度,这导致了检测率的下降。但这个IOU 仍然能够满足大多数实验情况。

(3)平均识别速度为38.78ms,检测率超过25FPS。这个检测率完全可以满足一般视频处理的速度要求。

2 车辆分类

如前所述,人工提取的特征不能准确描述物体。因此,我们使用CNN 和SVM 的组合来对物体进行分类。在构建网络后,我们在UA-DETRAC 数据集上验证其有效性。我们的CNN 是基于AlexNet 的。

2.1 算法的结构

本文的网络由一个车辆特征提取器和一个车辆分类器组成。第一步,我们训练一个由卷积神经网络(CNN)+全连接层(FC)组成的AlexNet 模型,使CNN 能够学习获得物体的精确特征描述。第二步,我们将训练好的CNN 作为特征提取器,然后将提取的特征发送给SVM 进行训练。最后,我们建立一个由CNN+SVM 组成的识别网络。

2.2 拟议的AlexNet改善措施

在原有的AlexNet 中加入了SPP,这样就可以使用任何输入图像的大小。由于数据集中的图像大小几乎都是中等和小型的,我们在保留AlexNet 整体框架的前提下,减少了内核的大小和数量。与原来的AlexNet 相比,进行了以下改动。

(1)使用SPP 来代替Pool3 层,避免了因图像失真而造成的精度损失。

(2)删除了卷积层使得模型变小。

(3)将原Conv1 层的11×11 核改为5×5 核,并将其他层的核改为3×3 核。

(4)更少的特征图,更少的模型参数,更快的识别速度。

2.3 SVM的最佳参数

由于UA-DETRAC 数据集来自真实的道路视频,因此数据集中存在不同的照明条件和一些遮挡。用边界盒数据裁剪UA-DETRAC 数据集中的车辆,以建立一个分类数据集。由于不同的照明条件等,提出了CNN-SVM 来实现高分类精度。使用K-fold 交叉验证法(使用SKLearn)选择SVM 的最佳参数。在本文中,选择CV 为5,C 的取值范围为lg,d=-2,-1,0,1,2。伽马值的范围是lg,d=0,1,2,3,4,图2 是交叉验证的结果。由图像可知,最佳gamma=0.0006,最佳C=10。

图2:交叉验证的结果

2.4 UA-DETRAC数据集

UA-DETRAC 数据集的分辨率为960×540 像素。训练集中选取了49076 张图像,测试集中选取了12053 张图像。

2.5 车辆分类结果

表1 显示了三种方法(原始Alexnet、改进的Alexnet 和改进的Alexnet+SVM)在EPOCH 10 上的测试结果比较。每个类别的结果都显示在召回中。

表1:在EPOCH 10 上的测试结果

比较改进后的AlexNet 和AlexNet,我们可以注意到改进后的网络的每个类别的召回率都有所提高,尤其是 “货车”和“其他”类别。因此,改进后的CNN 部分要比AlexNet好得多,这证明了加入SPP 方法可以提高网络的性能。

将改进后的AlexNet+SVM 与改进后的AlexNet 进行比较,SVM 的加入使得每个类别的召回率进一步提高,这证明SVM 比FC 有更好的泛化能力,并能在一定程度上微调准确性,精度高于其他两个网络。与原AlexNet 相比,总准确率提高了1.73%。图3 显示了改进后的AlexNet+SVM 的最终测试结果,其形式为混淆矩阵。可以看到,“汽车”和“巴士”的准确率足够高,而“货车”和“其他”的准确率仍有提升空间。本研究专注于提高分类精度且方法比原来的AlexNet 更快。

图3:混淆矩阵的结果

3 结论

本文中讨论了车辆检测和类型分类。对于车辆检测,提出了一种使用Yolov2-tiny 的目标提取方法。在网络训练的过程中,进行了网络参数调整和K-means 聚类。使用Darknet 来训练检测部分。实验表明,本文的方法具有较强的实时性,较高的召回率及准确率,可以很容易地提取视频序列中的车辆位置。

在车辆类型分类中,采用改进的CNN 网络进行特征提取,弥补了人工特征提取泛化性差的缺点。在AlexNet 的基础上对网络进行了修改,并加入SPP 以解决因图像调整大小和重新缩放而导致的分类精度低的问题。在CNN 训练完成后,我们对SVM 进行二次训练。减少了网络的过拟合,提高了模型的泛化能力,并进一步提高网络的准确性。实验表明,我们在两部分的转化上是成功的,但仍有一定的改进空间。

为了解决车辆检测中网络流动性差的问题,未来考虑增加数据集的数量,在多个训练数据集上训练网络。

猜你喜欢

特征提取分类车辆
分类算一算
分类讨论求坐标
基于Daubechies(dbN)的飞行器音频特征提取
数据分析中的分类讨论
车辆
教你一招:数的分类
Bagging RCSP脑电特征提取算法
冬天路滑 远离车辆
车辆出没,请注意
提高车辆响应的转向辅助控制系统