一种复杂交通场景下的实时车辆目标检测模型的制作方法

文档序号:17937613发布日期:2019-06-18 22:45阅读:138来源:国知局
一种复杂交通场景下的实时车辆目标检测模型的制作方法

本发明创造属于深度学习车辆目标检测技术领域,尤其是涉及一种复杂交通场景下的实时车辆目标检测模型。



背景技术:

车辆目标检测是自动驾驶中的关键技术之一,需要对车载摄像头采集到视频的每一帧图片中的车辆,行人等进行检测,并给出对应的检测框位置和分类结果。现阶段最先进的检测技术,如maskrcnn,yolo,ssd等均基于卷积神经网络实现。其中yolo模型由于其端到端的设计,使得实现过程简单,并且仅对图片提取一次特征,速度很快,成为经典的目标检测模型之一。但是缺陷在于,模型包含大量权重,导致检测时模型的计算量以及占用的内存极高,仅能在gpu上同时满足检测精度与检测速度。但gpu由于价格昂贵,体积庞大,发热量高,无法装载在汽车上。而低成本的嵌入式平台由于计算速度慢,内存小,加载模型后无法达到实时检测的效果。



技术实现要素:

本发明创造要解决的问题是旨在克服上述现有技术中存在的缺陷,提出一种复杂交通场景下的实时车辆目标检测模型。

为解决上述技术问题,本发明创造的技术方案是这样实现的:

一种复杂交通场景下的实时车辆目标检测模型,包括:

改进tinyyolo模型并将其作为基础网络模型用于图片特征提取;

通过截取部分传统tinyyolo网络模型结构,并适当缩小模型中部分层所使用卷积核的数量,使得模型能够适合植入在嵌入式平台中;

利用多尺度特征结构增强模型,提高对不同尺寸目标的学习能力;

通过使用不同空洞率的卷积层对基础网路提取到的图片特征图进行进一步提取,从而可以获得不同感受野尺寸下的图片特征,将其融合,能够使得深层特征图囊括不同尺寸的特征信息,增强学习能力;

修改传统目标检测损失函数上增强模型对于难学物体的学习能力;

对于传统目标检测增加两个超参数,用于调节数据集中不同学习难度目标的数量差距,平衡模型的学习倾向,防止模型只学习占多数的易学物体而完全放弃学习少数的难学物体,进一步增强模型的鲁棒性。

进一步,改进tinyyolo模型同时,维持当前基础模型对于图片特征的提取能力。

进一步,改进的tinyyolo模型sptnet由卷积层、批处理层、最大池化层、以及激活层构成,其中,卷积层是使用固定尺寸的卷积核在特征图上滑动,并通过对应乘加计算得到新的特征图的像素值;批处理层是对卷积层输出的特征图进行批处理操作,将特征图的分布转化为正态分布;最大池化层是在特征图中滑动地选取2*2的网格中的最大值来形成新的特征图;激活层是对特征图进行激活操作,将其中负值全部设为0,不占据任何内存。

进一步,sptnet结构包括基础网络模型以及fspp结构,其中,基础网络模型用于提取图片特征,fspp结构用于融合图像的多尺度特征。

进一步,基础网络模型主要由6个卷积层和最大池化层构成,主要负责从图像中提取出与目标相关的语义特征和空间特征,形成特征图。

进一步,特征图的尺寸相较于原始图片的尺寸缩小了32倍,特征图上每一个像素的感受野大小为32*32。

进一步,sptnet主要是通过削减各层卷积层的通道数来降低网络的参数量和计算量。

进一步,sptnet主要是削减模型后端卷积层的通道数量,而保留浅层卷积层的通道数量,以维持模型的特征提取能力。

本发明创造具有的优点和积极效果是:

本发明通过优化传统tinyyolo模型,大幅度削减了网络的参数量,同时设计了一种新的多尺寸特征融合结构fspp以维持网络的检测精度,并且针对数据集中远距离车辆难以检测的问题改进了损失函数,使得网络检测车辆的精度进一步提高。

附图说明

图1是本发明模型的结构图;

图2是fspp结构图;

图3是数据集中远近距离车辆对比图;

图4是模型中各部件消融实验结果对比图;

图5是部分数据集模型测试图。

具体实施方式

需要说明的是,在不相冲突的情况下,本发明创造中的实施例及实施例中的特征可以相互组合。

为了在嵌入式平台上实现实时车辆检测,同时达到一定的检测精度。本发明设计了一种轻量级的车辆检测模型,解决现有目标检测模型权重数量多,检测时间长,无法移植到嵌入式平台等缺陷。下面对本发明创造的具体实施例做详细说明。

一种复杂交通场景下的实时车辆目标检测模型,如图1至5所示,包括:

1.改进tinyyolo模型并将其作为基础网络模型用于图片特征提取;

tinyyolo由于其端到端的模型设计,快速的检测速度和精确的检测能力,是目前常用的轻量级目标检测模型之一。

然而由于tinyyolo模型的参数量和计算量过高,导致模型在嵌入式平台上无法达到实时检测的速度需求。同时,通过对tinyyolo网络权重的统计分析,网络中大部分权重值接近于0,这意味着这些权重均是冗余的,因此,合理削减网络权重并不会影响网络的学习能力。

通过借鉴tinyyolo的网络结构设计加以改进,提出了一种新的轻量化检测模型——sptnet,其网络结构如图1所示。sptnet由四种部件构成,分别是卷积层(convolutionlayer),批处理层(batchnormlayer),最大池化层(maxpoolinglayer)以及激活层(relulayer)。

其中卷积层是使用固定尺寸的卷积核在特征图上滑动,并通过对应乘加计算得到新的特征图的像素值,批处理层是对卷积层输出的特征图进行批处理操作,将特征图的分布转化为正态分布。最大池化层是在特征图中滑动地选取2*2的网格中的最大值来形成新的特征图,而激活层是对特征图进行激活操作,将其中负值全部设为0,计算量很低,并且不占据任何内存。

sptnet结构可分为两部分,第一部分为基础网络模型,用于提取图片特征,第二部分为fspp结构,用于融合图像的多尺度特征。基础网络模型主要由6个卷积层和最大池化层构成,主要负责从图像中提取出与目标相关的语义特征和空间特征,形成特征图,此时特征图的尺寸相较于原始图片的尺寸缩小了32倍,特征图上每一个像素的感受野大小为32*32。

在基础网络模型中,由于车辆检测任务仅仅检测车辆,目标相似度高,特征提取难度相对较低,因此sptnet主要通过削减各层卷积层的通道数来降低网络的参数量和计算量,而根据给出的结论,网络模型的浅层卷积层的通道数量对模型的特征提取能力影响较大,因此sptnet主要削减了模型后端卷积层的通道数量,而保留浅层卷积层的通道数量,以维持模型的特征提取能力。sptnet与tinyyolo网络结构对比如表1。

表1sptnet与tinyyolo结构对比表

2.设计一种新的多尺度特征结构增强模型对于不同尺寸目标的学习能力

为了增强网络对于不同尺度的特征学习,在网络结构中加入了fspp结构来增强模型对于多尺度特征的学习能力,结构如图2所示。

fspp结构主要由三个卷积核大小为3*3的空洞卷积层和一个卷积核大小为1*1的标准卷积层组成,并将这四层卷积层输出的特征图在通道维上进行连接,形成新的特征图进行类别和位置的回归。其中空洞卷积层是通过在卷积核中插入特定数量的0,在不增加网络参数量的前提下改变卷积核的大小。假设卷积核尺寸为k,空洞率dilation为d,则扩张后的卷积核尺寸为k+2(d-1),而标准卷积层则是空洞率为1的特殊空洞卷积层。

通过扩大卷积核的尺寸,可以增加深层特征图上像素的感受野范围,使得像素能够融合浅层特征图上更多像素的信息。而通过整合不同空洞率的卷积核捕捉到的特征图,可以更有效的捕捉物体在不同尺度下的特征。

在交通环境中,由于摄像头的拍摄距离较远,因此远近车辆在图像中的大小不一,如图3所示。因此提高模型捕捉车辆的多尺寸特征的能力能够提升模型的检测精度。

3.修改传统目标检测损失函数上增强模型对于难学物体的学习能力对于网络结构的改进,模型增强了对图像特征的提取能力,然而在数据集中,由于车辆和非车辆的图像面积差距很大,容易导致模型更倾向于学习背景特征,因此为了解决这个问题,对损失函数进行了一定改进。传统的目标检测的损失函数比较复杂,一般由三个部分构成,定位损失函数,iou损失函数,以及分类损失函数。

其中第一部分是计算关于检测框坐标的loss,其中表示在第i个grid里预测的第j个boundingbox含有obj,而λcoord表示调节coorderr占据整个loss的权重值。

第二部分是计算关于iou的loss,其中λnoobj表示当模型预测出的boundingbox无法匹配到任何groundtruth时所计算出loss的调节系数。由于模型预测出来的大部分boundingbox实际上都是不包含任何obj,因此为了平衡正负检测结果的样本比例,一般将λnoobj设为0.5,以此削弱负样本对于loss的影响程度。

第三部分是计算关于分类的loss,

然而当前目标检测的损失函数其主要缺陷在于无法区分被学习物体的难易程度,对于易学物体和难学物体都会给予同样的梯度惩罚,而当易学物体较多的时候,模型会倾向于拟合易学物体,而完全放弃对难学物体的学习,这样一方面浪费了模型的学习能力,另一方面会隐式地为模型学习的精确度设置上限。

而在交通场景下,由于如卡车,货车等体积庞大,特征明显,易于被网络捕捉到特征并加以学习,而小轿车,面包车等体积较小,容易被网络忽略。在传统的损失函数的设计中,并没有将二者显式的区分开来,从而向后传导的梯度惩罚完全相同,这就导致网络在学习的过程当中更加倾向于学习大型车辆,而忽略小型车辆,但在现实应用中这种情况是完全不能接受的。

此外,对于同类对象中,也会存在某些物体比其他物体更加难学的情况,例如在实验中我们发现在黑夜中深色的车辆比浅色的车辆的检测精度更低,距离较远的车辆比距离较近的车辆检测效果更差。为了解决上述问题,在损失函数中增加了两个系数α和γ来对目标物体的难易程度进行约束,公式如下:

loss=-a*(1-f(loss))γ*logf(loss),

f(x)=e-x

当一个目标物体越难区分时,传统的损失函数数值将会越大,则经过的变换之后,其数值会趋近于0,因而log变换下的损失函数值将会增大,此时再通过系数进行数值变换,可以扩张当前的损失函数,因此进一步扩张惩罚梯度,增强网络对困难目标的学习。而针对不同的类别,可以选择不同的加以区分,这样的话可以增强网络对某一类物体的学习强度。通过实验表明,α=0.3,γ=2时实验效果较好。

本发明通过优化传统tinyyolo模型,大幅度削减了网络的参数量,同时设计了一种新的多尺寸特征融合结构fspp以维持网络的检测精度,并且针对数据集中远距离车辆难以检测的问题改进了损失函数,使得网络检测车辆的精度进一步提高。相较于原先的tinyyolo模型的44.9m下降到15.3m,可在zynq-7020芯片上达到20fps(framespersecond)的检测速度,并且在自采集的车辆数据集当中达到77.65%的map。

对于本领域技术人员而言,显然本发明创造不限于上述示范性实施例的细节,而且在不背离本发明创造的精神或基本特征的情况下,能够以其他的具体形式实现本发明创造。

因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明创造的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明创造内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1