掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本公开涉及车辆信息检测技术领域,尤其涉及基于深度学习的车辆信息检测方法、存储介质及终端设备。

背景技术

国内外各家公司,研究机构以及很多大学都在基于视频的智能交通系统的研发中投入的大量资金。目前国内外成熟的技术可以分为以下两类:基于虚拟传感器(虚拟点、虚拟线、虚拟线圈)的非模型交通信息检测技术和基于目标提取和模型跟踪的交通信息检测技术。

非模型交通信息检测技术:1982年,Takaba等人提出了最早的视频检测技术,利用虚拟点作为处理单元提取流量参数,这是非模型交通信息检测的早期思路,为交通参数的视频检测奠定了基础。非模型交通信息检测技术的优点在于智能检测指定区域内的移动像素组,而不需要了解像素组的具体含义。该技术不需要依赖复杂的计算能力,通过像素组的运动来判断物体的运动状态。该技术的缺点也很明显,无法识别检测目标的属性。这种技术通常在车道上设置一些虚拟传感器,当车辆经过传感器时,图像中局部区域的内容发生变化,通过处理变化信号可以提取所需的信息。为了提高检测的可靠性和稳定性,学者们提出用虚拟线代替虚拟点来测量交通参数。该方法通过检测虚拟线上像素强度的变化来检测过往车辆;同时,在道路的垂直方向上设置多条平行的检测线来检测车辆的通过速度。在此基础上,利用虚拟检测线集可以提取多车道交通流量、车速等参数。之后,学者们提出了基于虚拟线圈的检测技术和基于彩色虚拟检测线的交通参数提取方法。

基于模型跟踪的交通信息检测技术:与非模型交通信息检测技术相比,该技术具有以下优点:在基本上实现了非模型检测系统的大部分功能的基础上,仍然可以通过提取车辆形状、属性等信息来提高检测精度;还可以实现对车辆运动轨迹的跟踪,分析车辆和驾驶员的行为。在这一领域已经取得了一些进展,Benjamin Coifmana等人提出了一种基于特征跟踪的流量参数提取方法,该方法以摄像机校正为基础,通过特征跟踪提取交通流量、速度、交通密度等参数。在此基础上,Young Kee Jung等人提出了一种基于背景差分的视频分割方法来提取运动车辆,然后基于Kalman滤波对运动车辆进行跟踪,得到车辆流量和速度等参数。现有的技术已经通过大量的优化,如Surendra Gup等长期致力于交通图像处理的研究,继2000年提出两级跟踪提取交通参数的方法后,于2002年提出一种先用图像序列自动更新背景,然后利用背景差分图像提取运动目标,进行目标的跟踪,获得车流量、车型及车速等参数的方法。基于模型跟踪的交通信息检测技术是目前应用最多的技术,现有的智能交通系统中的基础也是基于此项技术,该技术对于检测对象的各向属性都可以实现检测,但也存在着运算能力复杂,对于设备要求较高的缺点。

因此,现有技术还有待于改进和发展。

发明内容

鉴于上述现有技术的不足,本公开的目的在于提供基于深度学习的车辆信息检测方法、存储介质及终端设备,旨在解决车辆信息检测方法存在运算能力复杂、对设备要求较高的问题。

本公开的技术方案如下:

一种基于深度学习的车辆信息检测方法,其中,包括步骤:

对获取的车辆俯拍图片进行标注,构建训练数据集;

基于所述训练数据集对YOLOV3模型进行训练,得到训练后模型;

将待测图片数据输入到所述训练后模型中,输出车辆信息检测结果。

所述基于深度学习的车辆信息检测方法,其中,所述对获取的车辆俯拍图片进行标注,构建训练数据集的步骤包括:

通过视频传感器获取车辆俯拍图片;

通过Labellmg对所述车辆俯拍图片进行标注,并编码与所述车辆俯拍图片相吻合的train.txt文件;

对所述YOLOV3对应的data文件夹中的数据集进行修改,并将所述标注的车辆俯拍图片与train.txt文件对应保存到YOLOV3对应的data文件夹中,构建训练数据集。

所述基于深度学习的车辆信息检测方法,其中,所述YOLOV3对应的data文件夹中的数据集为VOC数据集,所述VOC数据集有20个类别。

所述基于深度学习的车辆信息检测方法,其中,对所述YOLOV3对应的data文件夹中的数据集进行修改的步骤包括:

将data文件夹中的YOLOv3.cfg另存为YOLOv3-car.cfg;

将data文件加中的类别文件进行删减,只保留car.name。

所述基于深度学习的车辆信息检测方法,其中,所述YOLOV3模型的主干网络为Darknet53,所述Darknet的每一个卷积部分均使用Darknet Conv2D结构,每一次卷积的过程均进行l2正则化,完成卷积后进行BatchNormalization标准化与LeakyReLU激活函数。

所述基于深度学习的车辆信息检测方法,其中,基于所述训练数据集对YOLOV3模型进行训练,得到训练后模型的步骤包括:

执行命令darknet.exe detector train data/car.data yolov3-car.cfgdarknet53.conv.74-gpu 0,1,完成对YOLOV3模型的训练,得到训练后模型。

所述基于深度学习的车辆信息检测方法,其中,将待测图片数据输入到所述训练后模型中,输出车辆信息检测结果的步骤包括:

所述训练后模型中包括分别位于Darknet中间层、中下层和底层的三个特征层,所述三个特征层的shape分别为(52,52,256)、(26,26,512)、(13,13,1024),这三个特征层用于与上采样后的特征层堆叠拼接;

所述位于底层的特征层(13,13,1024)进行5次卷积处理完成特征提取,提取的特征一部分用于卷积和上采样得到特征层(26,26,256),另一部分用于输出对应的预测结果(13,13,75);

所述特征层(26,26,256)与位于中下层的特征层(26,26,512)进行拼接,得到的shape为(26,26,768)的特征层再进行5次卷积,处理完后一部分用于卷积和上采样得到特征层(52,52,128),另一部分用于输出对应的预测结果(26,26,75);

所述特征层(52,52,128)与位于中间层的特征层(52,52,256)进行拼接,再进行卷积得到shape为(52,52,128)的特征层,最后再进行Conv2D 3×3和Conv2D1×1两个卷积,输出对应的预测结果(52,52,75)。

所述基于深度学习的车辆信息检测方法,其中,还包括步骤:

对预测结果进行解码,得到解码后边界框的坐标bx,by,以及宽高bw,bh,其中,

对解码后的边界框进行得分排序与非极大抑制筛选,得到最后保留的矩形框。

一种存储介质,其中,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明任意一项基于深度学习的车辆信息检测方法中的步骤。

一种终端设备,其中,包括处理器,适于实现各指令;以及存储介质,适于存储多条指令,所述指令适于由处理器加载并执行本发明任意一项基于深度学习的车辆信息检测方法中的步骤。

有益效果:相较于现有技术,本公开提供了一种基于深度学习的车辆信息检测方法,通过对原始YOLOv3的臃肿数据集进行修改,构建自己的训练数据集,本发明使用YOLOv3网络模型进行车辆检测,并对网络模型进行改进以提高其检测能力,实验表明,改进算法提高了车辆检测的准确性,同时降低了漏检和误检的发生率,检测速度达到了22帧/秒。

附图说明

图1为本发明一种基于深度学习的车辆信息检测方法较佳实施例的流程图。

图2为本发明YOLOv3模型的组成图。

图3为本发明预测结果的解码示意图。

图4为本发明终端设备的原理框图。

具体实施方式

本公开提供基于深度学习的车辆信息检测方法、存储介质及终端设备,为使本公开的目的、技术方案及效果更加清楚、明确,以下对本公开进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本公开,并不用于限定本公开。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本公开的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本公开所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

随着深度神经网络的发展,深度学习模型也已广泛应用于车辆检测。与传统目标检测相比,深度学习具有较大的优势。传统方法是手动提取特征,并需要相关领域的专家通过多年的积累和经验来手动设计和处理。深度学习方法可以通过大量的数据来学习相应数据差异的特征,并且更具代表性。深度学习模型可模拟人脑的视觉感知系统,它直接从原始图像中提取特征,并将这些特征逐层传递以获得图像的高维信息,从而使其在计算机视觉领域取得了较大的成功。

基于此,本发明提供了一种基于深度学习的车辆信息检测方法,如图1所示,其包括步骤:

S10、对获取的车辆俯拍图片进行标注,构建训练数据集;

S20、基于所述训练数据集对YOLOV3模型进行训练,得到训练后模型;

S30、将待测图片数据输入到所述训练后模型中,输出车辆信息检测结果。

具体来讲,目前现有的YOLOV3模型中存在大量冗余数据,这些多余的数据和识别模型严重降低了YOLOV3的运算速度,因此,本实施例可通过构建自己的训练数据集,来提升YOLOv3的运算速度。本实施例通过设置在车辆上方的视频传感器获取车辆俯拍图片,并通过Labellmg对所述车辆俯拍图片进行标注。由于数据集中标注的图片不同,训练得到的数据集也有差别,本实施例考虑到目前视频传感器主要位于车辆的上方,对于车辆的识别在俯视的角度,因此,本实施例针对于车辆俯拍图片进行标注,以此来提高检测精度。

在本实施例中,在对所述车辆俯拍图片进行标注后,编码与所述车辆俯拍图片相吻合的train.txt文件;对所述YOLOV3对应的data文件夹中的数据集进行修改,并将所述标注的车辆俯拍图片与train.txt文件对应保存到YOLOV3对应的data文件夹中,构建训练数据集。

本实施例中,所述YOLOV3对应的data文件夹中的数据集为VOC数据集,所述VOC数据集为用于图像识别和分类的一整套标准化的数据集,所述VOC数据集有20个类别,分别为人类、鸟、猫、牛、狗、马、羊、飞机、自行车、船、公共汽车、小轿车、摩托车、火车、瓶子、椅子、餐桌、盆栽植物、沙发和电视。所述VOC数据集加压后包括以下命名文件:Annotations文件、ImageSets文件、JPEGImages文件、SegmentationClass文件、SegmentationObject文件,其中,JPEGImages文件包含了PASCAL VOC所提供的所有的图片信息,包括了训练图片和测试图片;Annotations文件夹中存放的是xml格式的标签文件,每一个xml文件都对应于JPEGImages文件夹中的一张图片;ImageSets文件存放的是每一种类型的challenge对应的图像数据,在ImageSets文件下又包括四个文件夹,分别命名为Action文件、Layout文件、Main文件、Segmentation文件,其中,Action文件下存放的是人的动作,Layout文件存放的是具有人体部位的数据,Main文件存放的是图像物体识别的数据,共分为20类,Segmentation文件存放的是可用于分割的数据,Main文件夹下包含了20个分类的***_train.txt、***_val.txt和***_trainval.txt。

在一些具体的实施方式中,对所述YOLOV3对应的data文件夹中的数据集进行修改的步骤包括:将data文件夹中的YOLOv3.cfg另存为YOLOv3-car.cfg;将data文件加中的类别文件进行删减,只保留car.name;进一步地,若GPU显存是小于4G的,则要将subdivision调大,将batch和subdivision修改为64,64。

在一些实施方式中,本实施例选取的深度学习模型为YOLOV3模型,

所述基于深度学习的车辆信息检测方法,其中,所述YOLOV3模型的主干网络为Darknet53,所述Darknet的每一个卷积部分均使用Darknet Conv2D结构,每一次卷积的过程均进行l2正则化,完成卷积后进行BatchNormalization标准化与LeakyReLU激活函数。其对应的代码如下所示:

在一些实施方式中,在构建训练数据集后,将所述训练数据集输入到YOLOV3模型的输入层中,执行命令darknet.exe detector train data/car.data yolov3-car.cfgdarknet53.conv.74,完成对YOLOV3模型的训练,得到训练后模型。

在一些实施方式中,如图2所示,训练后模型包括分别位于Darknet中间层、中下层和底层的三个特征层,所述三个特征层的shape分别为(52,52,256)、(26,26,512)、(13,13,1024),这三个特征层用于与上采样后的特征层堆叠拼接;其中,所述位于底层的特征层(13,13,1024)进行5次卷积处理完成特征提取,提取的特征一部分用于卷积和上采样得到特征层(26,26,256),另一部分用于输出对应的预测结果(13,13,75),Conv2D 3×3和Conv2D1×1两个卷积起通道调整的作用,调整成输出需要的大小;所述特征层(26,26,256)与位于中下层的特征层(26,26,512)进行拼接,得到的shape为(26,26,768)的特征层再进行5次卷积,处理完后一部分用于卷积和上采样得到特征层(52,52,128),另一部分用于输出对应的预测结果(26,26,75),Conv2D 3×3和Conv2D1×1同上起通道调整的作用,调整成输出需要的大小;所述特征层(52,52,128)与位于中间层的特征层(52,52,256)进行拼接,再进行卷积得到shape为(52,52,128)的特征层,最后再进行Conv2D 3×3和Conv2D1×1两个卷积,输出对应的预测结果(52,52,75)。

在本实施例中,YOLOV3模型的预测原理是分别将整幅图分为13x13、26x26、52x52的网格,每个网络点负责一个区域的检测,若待测物体相对在图中较大,就用13×13检测,若待测物体在图中比较小,就会归为52×52来检测。以输出的预测结果为(13,13,75)为例,(13,13,75)实际上是13,13,3×25,表示有13*13的网格,每个网格有3个先验框(又称锚框,anchors),每个先验框有25个参数(20个类别+5个参数),这5个参数分别是x_offset、y_offset、height、width与置信度confidence,用这3个框去试探,试探是否框中有待测物体,如果有,就会把这个物体给框起来。

具体来讲,所述5个参数中,x_offset表示网格左上角相对x轴的距离(偏移量);y_offset表示网格左上角相对y轴的距离(偏移量);先验框(anchor box)就是定好了常见目标的宽和高,在进行预测的时候,可以利用这个已经定好的宽和高来进行处理,可以帮助进行预测,作用就是辅助处理x_offset、y_offset、h和w;置信度(confidence)就是预测的先验框和真实框ground truth box(真实对象的框)的IOU值,即先验框是否有对象的概率Pr(Object),如进行人脸识别,一张图中有房子,树,车,人等,识别时背景和人的身体都没有脸这个需要识别的对象,那么这些地方的置信度就是0,框中的人脸越多,置信度(有对象概率)就越大,置信度是检测中非常重要的参数:

在一些实施方式中,所述预测结果并不对应着最终的预测框在图片上的位置,其还需要对所述预测结果进行解码,得到最后显示的边界框的坐标bx,by,以及宽高bw,bh,这样就得出了边界框的位置,计算过程如下所示:

进一步地,对解码后的边界框进行得分排序与非极大抑制筛选,得到最后保留的矩形框。作为举例,假设按照得分从小到大排序有ABCDEF这么多个得分框,从最大概率矩形框F开始,分别判断A~E与F的重叠度IOU是否大于某个设定的阈值;假设B、D与F的重叠度超过阈值,那么就扔掉B、D,并标记第一个矩形框F并保留;接着,从剩下的矩形框A、C、E中,选择概率最大的E,然后判断E与A、C的重叠度,重叠度大于一定的阈值,那么就扔掉;并标记E作为保留下来的第二个矩形框。一直重复这个过程,找到所有被保留下来的矩形框并显示。

本发明使用YOLOv3网络模型进行车辆检测,并对网络模型进行改进以提高其检测能力,实验表明,改进算法提高了车辆检测的准确性,同时降低了漏检和误检的发生率,检测速度达到了22帧/秒。

在一些实施方式中,还提供一种存储介质,其中,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明任意一项基于深度学习的车辆信息检测方法中的步骤。

在一些实施方式中,还提供一种终端设备,如图4所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(CommunicationsInterface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。

此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。

存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。

存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。

此外,上述存储介质以及终端设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本公开各个实施例所述的方法。

综上所述,本公开提供了一种智能路由选择方法,当接收到智能路由开启指令时,对当前网络状况进行检测;根据当前网络状况选择路由,所述路由包括WAN网络和蜂窝网络。本公开通过动态检测网络状况,对路由进行智能选择,在WAN网络状况不佳的情况下,一样能获得良好的网络体验。

应当理解的是,本公开的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本公开所附权利要求的保护范围。

相关技术
  • 基于深度学习的车辆信息检测方法、存储介质及终端设备
  • 基于时域的电磁信息泄漏检测方法、终端设备及存储介质
技术分类

06120113033887