基于深度学习的车辆检测系统设计

2022-07-21 20:17黎雄陈雨聪
软件工程 2022年7期
关键词:卷积神经网络深度学习

黎雄 陈雨聪

摘  要:针对目前智能交通系统实时道路车辆检测中存在的检测效率不高等问题,设计了一种基于深度学习的道路车辆检测算法。首先在搭建好的平台下,通过卷积神经网络对采集的车辆图像数据集進行训练,得到训练后的模型;其次,对该模型内部的层结构进行可视化;最后,通过调节各网络参数及层结构对该模型进行优化。训练的模型通过实验测试,分别对图片和视频进行检测,图像识别准确率高,检测速度快,跟踪精度高,可应用于实时交通系统的检测。

关键词:深度学习;卷积神经网络;车辆识别;OpenCV

中图分类号:TP183     文献标识码:A

Design of Vehicle Detection System based on Deep Learning

LI Xiong1, CHEN Yucong2

(1.Xi'an Institute of Electromechanical Information Technology, Xi'an 710065, China;

2.School of Computing, Xianyang Normal University, Xianyang 712000, China)

42340658@qq.com; 943858467@qq.com

Abstract: Aiming at the low detection efficiency of real-time road vehicle detection in intelligent transportations system, this paper proposes to design a road vehicle detection algorithm based on deep learning. Firstly, based on the built platform, convolutional neural network is used to train the collected vehicle image dataset to obtain the trained model. Secondly, the layer structure inside the model is visualized. Finally, the model is optimized by adjusting all of the network parameters and layer structure. The trained model has been tested by experiments to detect pictures and videos respectively. Experiment results show that the proposed model can be applied to the detection of real-time traffic systems with high image recognition accuracy, fast detection speed, and high tracking accuracy.

Keywords: deep learning; convolutional neural network; vehicle recognition; OpenCV

1   引言(Introduction)

随着大数据时代的到来,越来越多的数据需要处理。而人们对信息处理的要求也越来越严格,既要达到高准确率,又要达到较高的运行速率。卷积神经网络是为了识别二维图像而设计的多层感知器,在处理图像方面具有良好的容错能力与并行的处理以及学习能力。在深度学习图像识别应用上,卷积神经网络具有较高的准确率和处理速度,所以可以作为理论依据来研究动态车辆识别。对深度学习动态车辆的研究,主要是通过摄像头实时监控车辆的位置,继而来判断车辆的类别,这一领域的研究对今后智能辅助领域的数据处理发展有着至关重要的作用[1-2]。与此同时,也面临着艰巨的挑战,如车辆检测方面包括视频序列中背景的更新、复杂环境下背景图片的遮挡和运动车辆在道路中停止时对跟踪的影响,以及复杂环境下车辆检测的实时性要求等[3]。因此,设计一个能够在交通环境下对各种车辆的各种特征进行高效实时的检测算法势在必行。

2   检测算法概述(Overview of detection algorithms)

目前,多目标检测算法主要分为传统方法和基于深度学习的方法。传统方法主要有光流法[4]、卡尔曼滤波[5]等,传统目标检测算法建立在手工设计特征的基础上,由于算法的实时性要求、图像的表示与预处理技术等问题,对采集到的复杂的图像特征无法高速计算与处理。其中,光流法利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性,根据上一帧与当前帧之间的对应关系,计算得到相邻帧之间物体的运动信息,在无遮挡、光线好的情况下检测效果较好。但在实际应用中,采集的图像都存在噪声、阴影、遮挡、光照等干扰因素,所以光流法的抵抗性较差,检测出的目标会出现内容缺失的情况[6-7],需要借助其他算法。卡尔曼滤波(KCF)算法利用循环移位进行稠密采样,利用快速傅里叶变换(FFT)进行分类器的训练,同时结合了多通道的HOG特征。其大致的流程是,先利用循环矩阵不断对图像移位,得到多个样本,在第t 帧中的当前位置附近利用这些样本训练一个分类器,该分类器可以对框中是否有人做出一个概率响应。因此,先用循环矩阵对前一帧的区域进行循环移位得到若干样本,然后用前一帧训练的分类器分类得到输出响应,以响应最大的作为预测位置,然后再训练、再预测。

近几年来,目标检测算法取得了很大的突破。比较流行的算法可以分为两类,一类是Two-stage算法,基于候选区域(Region Proposal)的R-CNN系列算法(R-CNN、Fast R-CNN、Faster R-CNN),先使用启发式方法(Selective Search)或者CNN网络(RPN)产生Region Proposal,然后再在Region Proposal上做分类与回归;另一类是One-stage算法,基于Yolo、SSD算法,这类方法则不需要产生候选框,仅仅使用一个CNN网络直接预测不同目标的类别与位置。第一类算法准确度高,速度较慢;第二类算法速度快,准确性较低[8-12]。

本设计采用深度学习的卷积神经网络LeNet-5模型的网络框架建立模型,并进行训练。卷积神经网络能够很好地利用图像的结构信息。LeNet-5是一个较简单的卷积神经网络,该结构包括输入层、卷积层、池化层和输出层[13]。输入层输入的是二维图像,该图像经过两次卷积层提取特征,经过卷积之后图像的边界变得更加直观,然后送到池化层。为了提取最明显的特征,通过最大池化法来降低参数,再经过连接层,连接所有的特征,最后将输出值送给分类器,使用Softmax分类函数进行输出。

3  深度学习模型结构(Structure of deep learning model)

3.1   模型结构

该模型由TensorFlow 2.4.0搭建,使用的是Sequential顺序模型,层与层之间只有相邻关系,没有跨层连接,编译速度快,操作简单。其模型结构如图1所示。

输入层是32×32尺寸的图片,其中每一个像素点都可以看作一个神经元,通过神经元的传递来计算数据处理得到输出图像。输入层到C1层经过卷积的操作,卷积核的大小是5×5,使得图像从32×32变成28×28的图像。C1层由八个特征图组成,输入层到C1层是一一对应关系。

C1层到S1层采用的是下采样方式,使得28×28的图片变成14×14的大小,如果使用下采样方式就能够更少地利用参数,使得图像符合显示区域的大小,同时还可以保留有效图片数据。S1中的神经元大小与C1层2×2的大小一一对应,通过计算得到S1层的神经元。同理可知,其他的卷積和下采样方式一样,只是处理的数据参数不一样。

由神经元的概念可知,一个输出值需要知道权值和偏置的参数大小,而LeNet-5采用的是32×32的二维神经元结构网,可通过表格的形式来显示为何选用卷积神经网络而不采用直接神经元处理方式,如表1所示。

由表1可知,使用卷积神经网络能够使参数大大地减小,因为卷积神经网络具有权值共享和参数减小的优点。S1层与C3层使用的不是全连接形式,而是局部连接。其他步骤均使用了全连接方式,如表2所示是S1层与C3层的连接表。

3.2   模型训练

先收集相关车辆的数据集,然后读取数据集,将数据集进行归一化处理,统一图片大小,将每张图片所处的文件名作为该图片的标签,然后把所有图片和其标签打包在一起,供训练模型使用。将数据集分成两部分,一部分作为训练集,一部分作为测试集。

采用Adam(Adaptive Moment Estimation)这个优化算法来快速拟合高纬度的数据,损失函数为sparse_categorical_crossentropy,其目标是数字编码。使用之前建立好的模型进行30 个轮次训练,然后保存训练结果。模型训练日志结果如图2所示,训练流程图如图3所示。

4  车辆检测系统的实现(Realization of vehicle detection system)

4.1   在VS下OpenCV的配置

首先,在VS2017中点击文件→新建→项目→控制台应用→确定,创建好工程。其次,点击resource files→添加→新建项→添加C++文件。第三,项目配置属性。在视图上点击属性管理器,设置系统为64 位。找到Microsoft.Cpp.X64.user并且双击“配置属性”,在VC++目录中找到包含目录与库目录进行配置,如图4所示。之后在链接器的输入中找到附加依赖项进行配置,如图5所示。至此,完成了OpenCV在VS下的配置。

4.2   在VS下Qt的配置

打开VS2017,点击文件→新建→项目,在Visual C++下找到Qt,选择Qt Widgets Application,新建名为vehilce_detect工程。在项目的属性管理器中选择X64的属性并且配置VC++目录的包含目录和库目录,与配置OpenCV相同。然后,进行Qt图形用户界面的设计,设计效果如图6所示。

4.3   系统测试

系统运行后,单击“选择图像”按钮,在弹出的界面中选择要检测的图像,图像支持JPEG、BMP、PNG格式。选择完成后,所选择的图像会呈现在检测界面上,之后点击“识别”按钮,打开的图像如图7所示。

单击“视频检测”按钮,在弹出的界面中选择要检测的视频,支持avi、MP4等格式,选择完成后,会在视频窗口显示实时视频车辆检测,如图8所示。

5   结论(Conclusion)

此次采用深度学习中的卷积神经网络LeNet-5模型的网络框架对车辆数据集进行训练,通过在VS中搭建OpenCV与Qt,建立检测系统,并加载训练模型进行测试。实验首先验证算法模型的准确性,加载训练的模型,该系统能够准确地检测图片中的车辆,并能实时检测与追踪视频中的车辆。同时,验证了开发的检测系统的有效性,为后续模型检测及跟踪算法验证提供了方便。

参考文献(References)

[1] 袁氢.基于特征融合与神经网络的深度学习图像识别技术研究[D].武汉:武汉科技大学,2020.

[2] 冯霞,杜佳浩,段仪浓,等.基于深度学习的行人重识别研究综述[J].计算机应用研究,2020,37(11):3220-3226,3240.

[3] 何文伟.交通环境下的车辆检测与跟踪算法研究与实现[D].成都:电子科技大学,2015.

[4] 尹梓睿,张索非,张磊,等.适于行人重识别的二分支EfficientNet网络设计[J].信号处理,2020,36(09):1481-1488.

[5] 赵瑜,方亮,周云,等.基于深度学习理论和压缩感知技术的车辆识别与跟踪研究[J].地震工程与工程振动,2021,41(05):

206-214.

[6] 李舒航,高旭,刘兆武,等.基于灰度插值的条纹图像位移亚像素检测算法[J].光学学报,2021,41(10):125-133.

[7] 张可,杨灿坤,周春平,等.无人机视频图像运动目标检测算法综述[J].液晶与显示,2019,34(1):98-109.

[8] ZHOU L, ZHOU C C, CHEN S B, et al. A sparsetransformer-

based approach for image captioning[J]. IEEE Access, 2020, 99(8):213437-213446.

[9] 梅瑩.基于卷积神经网络的隧道行人目标检测算法研究[D].重庆:重庆大学,2019.

[10] WAN L J, CHEN Y W, LI H Y, et al. Rolling-element bearing fault diagnosis using improved LeNet-5 network[J]. Sensors (Basel, Switzerland), 2020, 20(6):1693-1711.

[11] 王宇歌,张涌,黄林雄,等.基于卷积神经网络的麦穗目标检测算法研究[J].软件工程,2021,24(8):6-10.

[12] ZHONG Z Y, SUN L, HUO Q. An anchor-free

region proposal network for faster R-CNN-based text detection approaches[J]. International Journal on Document Analysis and Recognition (IJDAR), 2019, 22(3):

315-327.

[13] 王润正,高见,黄淑华,等.基于知识蒸馏的恶意代码家族检测方法[J].计算机科学,2021,48(1):280-286.

作者简介:

黎   雄(1980-),男,硕士,高级工程师.研究领域:信号与图像处理.本文通信作者.

陈雨聪(1998-),男,本科,助理工程师,研究领域:计算机应用.

猜你喜欢
卷积神经网络深度学习
基于深度卷积神经网络的物体识别算法
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现
基于卷积神经网络的树叶识别的算法的研究