一种基于多目标角点池化神经网络的车辆检测方法与流程

文档序号:18321506发布日期:2019-08-03 10:31阅读:330来源:国知局
一种基于多目标角点池化神经网络的车辆检测方法与流程

本发明涉及目标检测技术领域,具体而言,尤其涉及一种基于多目标角点池化神经网络的车辆检测方法。



背景技术:

复杂交通场景下的车辆检测就是要从实际的交通场景下,对图像内的车辆进行检测并准确框选。通过建立深度神经网络模型并利用完整的数据集进行训练,使其能够适应各种复杂的实际环境如车辆遮挡、建筑遮挡等。girshick等人提出了采用rcnn网络来提取图像中的所有感兴趣区域,然后利用convnet来处理这些区域,这就会产生大量的冗余计算。为了解决这个问题,fast-rcnn设计了一个特殊的池化层,从特征图中收集感兴趣区域,但这一算法仍不能实现端到端的训练。之后faster-rcnn通过引入rpn网络来消除区域搜索,不仅提高了检测器的效率,而且实现了端到端的训练。但这些算法都需要先确定感兴趣区域再进行检测和识别,计算效率较低。yolo和ssd系列算法取消了感兴趣区域的池化步骤,利用单一的网络来检测图像内的目标,大大提高了计算效率,取得了良好的结果。在实际的交通场景中,车辆数辆庞大,道路情况复杂,现有技术在检测道路车辆时往往表现不佳,不能准确地将这些车辆逐一检测、框选。



技术实现要素:

根据上述提出在实际的交通场景中,车辆数辆庞大,道路情况复杂,现有技术在检测道路车辆时往往表现不佳,不能准确地将这些车辆逐一检测、框选的技术问题,而提供一种复杂交通场景下基于多目标角点池化神经网络的被遮挡车辆检测方法。

本发明采用的技术手段如下:

一种基于多目标角点池化神经网络的被遮挡车辆检测方法,包括以下步骤:

步骤s1:获取mscoco目标检测数据集,制作mscoco车辆图像数据集;

步骤s2:选取沙漏网络为基石网络,并搭建神经网络框架,采集整个网络最后一层的特征并将其传输到残差模块;

步骤s3:对传输到残差模块的特征进行多目标角点池化操作,生成图像内各车辆的角点对、嵌入矢量和映射偏差特征;

步骤s4:设计损失函数,并利用adam算法进行优化;

步骤s5:角点配对模块对步骤s3中经过多目标角点池化操作得到的特征进行角点对配对处理,若存在未配对角点,则通过角点补全模块进行补全处理,最后生成车辆检测框,得出车辆的检测结果。

进一步地,所述步骤s1的具体步骤如下:

步骤s101:下载mscoco目标检测数据集,分别提取训练数据集、验证数据集和测试数据集中的车辆类别图片和对应标签;

步骤s102:将验证数据集和训练数据集中全部车辆类别图片用于模型训练,将测试数据集平均分成两部分,一部分用来做消融实验,另一部分用来评估模型性能。

进一步地,所述步骤s2的具体步骤如下:

步骤s201:选取由两个沙漏模块组成的沙漏网络作为基石网络,获取图像内的全局特征和局部特征;

步骤s202:将沙漏网络内的最大池化层替换为步长为2的卷积核,降低特征分辨率;

步骤s203:将沙漏网络深度设置为102,采集整个网络最后一层的特征并将其传输到预测模块。

进一步地,所述步骤s4中设计损失函数,所述损失函数的定义如下:

l=ldet+α(lgp+lsp)+βloff+γle;

其中,α,β,γ为损失函数各项系数,α=0.1,β=1,γ=0.9;

ldet为基石网络损失函数:

上式中,h和w分别是图片的高和宽;i,j表示像素位置的第i行,第j列;a=2,b=4是超参数;pij为该像素的预测值;yij为该像素的真实值;n为训练样本总数;

lsp为分离角点损失函数:

上式中,k和j代表图片内的第k和j辆车;ek是该车中心点嵌入向量;σ为嵌入向量维度,σ=1;n为训练样本总数;

lgp为组合角点损失函数:

上式中,etk是第k辆车的左上角点嵌入向量;ebk是第k辆车的右下角点嵌入向量;n为训练样本总数;

loff为映射偏差损失函数:

上式中,为映射偏差;xk,yk为第k辆车的原始坐标;为映射后坐标;n为下采样因子;k为第k辆车;n为训练样本总数;

le为角点补全损失函数:

上式中,oe=(|x-x′|,|y-y′|)为角点补全偏差;k为第k辆车;(x,y)为该车的真实位置坐标;(x′,y′)为该车的预测位置坐标;n为训练样本总数;

进一步地,所述步骤s5中对步骤3得到的特征进行角点对配对处理过程如下:

步骤s501:将步骤3中生成的图像内各车辆不同嵌入矢量的角点对进行配对组合,确定车辆位置;

步骤s502:将步骤s501配对组合过程中由于遮挡原因无法配对的单独角点采用角点补全算法生成对应的另一角点;

步骤s503:将上述步骤s501和步骤s502成功配对的角点对都对应车辆目标检测框的右下角点和左上角点,生成车辆检测框。

较现有技术相比,本发明具有以下优点:

1、本发明提供的基于多目标角点池化神经网络的被遮挡车辆检测方法,将用于人体姿态估计的沙漏网络引入到车辆检测中并作为基石网络,用于提取图像内的局部特征和全局特征。

2、本发明提供的基于多目标角点池化神经网络的被遮挡车辆检测方法,并没有直接使用神经网络中常用的最大池化层,取而代之的是用自行设计的多目标角点池化层来获取被遮挡车辆的角点,大大提高了神经网络在复杂交通环境下检测被遮挡车辆的准确性。

3、本发明提供的基于多目标角点池化神经网络的被遮挡车辆检测方法,提出了一种角点匹配方法来对被遮挡车辆的不完整角点对进行补全,进一步提高了检测准确性。

综上,应用本发明的技术方案解决了现有技术中针对在实际的交通场景中,车辆数辆庞大,道路情况复杂,检测道路车辆时往往表现不佳,不能准确地将这些车辆逐一检测、框选的技术问题。

基于上述理由本发明可在目标检测等领域广泛推广。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明训练神经网络和检测流程示意图。

图2为本发明检测方法角点池化层处理原理图。

图3为本发明检测方法角点配对原理图。

图4为本发明检测方法角点补全原理图。

图5为本发明检测方法角点池化模块性能对比图。

图6为本发明检测方法角点配对模块性能对比图。

图7为本发明实施例使用多目标角点池化模块和角点匹配模块的神经网络对车辆的检测结果示意图。

图8为本发明实施例未使用多目标角点池化模块和角点匹配模块的神经网络对车辆的检测结果示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

一种复杂交通场景下基于多目标角点池化神经网络的被遮挡车辆检测方法,重新整合mscoco数据集,之后用沙漏网络提取数据集特征,沙漏网络输出的特征中会包含数据集的全局特征和局部特征,将输出的特征放入多目标角点池化层进行处理,再经角点配对模块和角点补全模块后输出,训练到整个模型收敛,即可用于车辆检测。

实施例

本发明提供了一种复杂交通场景下基于多目标角点池化神经网络的被遮挡车辆检测方法,如图1所示,包括以下步骤:

步骤s1:获取mscoco目标检测数据集,制作mscoco车辆图像数据集;

步骤s101:下载mscoco目标检测数据集,分别提取训练数据集、验证数据集和测试数据集中的车辆类别图片和对应标签;

步骤s102:将验证数据集和训练数据集中全部车辆类别图片用于模型训练,将测试数据集平均分成两部分,一部分用来做消融实验,另一部分用来评估模型性能。本实施例中,训练数据集和验证数据集共有车辆类型图片23000张,这些图片都用于模型的训练;测试数据集共有车辆类型图片10000张,其中5000张用于做消融实验,剩余5000张用于评估模型性能。

步骤s2:选取沙漏网络为基石网络,并搭建神经网络框架,采集整个网络最后一层的特征并将其传输到残差模块;

步骤s201:选取由两个沙漏模块组成的沙漏网络作为基石网络,获取图像内的全局特征和局部特征;具体的网络结构如下:

(1)下采样部分:共有四次下采样,其采样尺寸分别为512*512,381*384,256*256,128*128。

(2)上采样部分:共有四次上采样,其采样尺寸分别为128*128,256*256,384*384,512*512。

(3)跳过层:跳过层的尺寸为对应下采样层尺寸的一半,即256*256,192*192,128*128,64*64。

(4)四个残差模块,第一个残差模块用于将从卷积核得到的第一上采样层特征与第四下采样层特征融合;后三个用于将从下采样层得到的特征与上采样层得到的特征融合。

步骤s202:将沙漏网络内的最大池化层替换为步长为2的卷积核,降低特征分辨率;

步骤s203:将沙漏网络深度设置为102,采集整个网络最后一层的特征并将其传输到预测模块。

步骤s3:对传输到残差模块的特征进行左上角点池化和右下角点池化操作,再作残差处理并进行卷积和批量标准化,同时由一个新的分支提取其1*1卷积核特征并进行批量标准化操作,后将这两个分支的特征做残差后经由relu线性激活函数、3*3卷积、批量标准化和1*1卷积操作后分别输出图像内各车辆的角点、嵌入矢量和映射偏差;

本实施例中的左上角点池化原理如图2所示,假设左上角点像素所在位置为(i,j),ft和fl分别表示上池化层和左池化层的特征,那么对应的ftij和flij就是其对应的特征值,池化处理步骤可以由下式表达:

其中,h和w分别是图片的高和宽。i,j表示像素位置的第i行,第j列;tij为位于(i,j)处的像素特征值;为该像素特征值对应的池化特征值。在实际交通场景中,一副图内会有很多车辆,在用角点池化层处理特征时要注意对车辆边界的判断。由于车辆边界部分相邻像素的特征值差异较大,因此本实例使用下面的方程来确定其边界:

其中,δ是相邻像素的特征值之差,当δ大于给定阈值θ时,令

并进行下一目标的池化。右下角点池化原理与左上角点池化原理类似,不再赘述。

步骤s4:设计损失函数,并利用adam算法进行优化;

损失函数的定义如下:

l=ldet+α(lgp+lsp)+βloff+γle;

其中,α,β,γ为损失函数各项系数,α=0.1,β=1,γ=0.9;

ldet为基石网络损失函数:

上式中,h和w分别是图片的高和宽;i,j表示像素位置的第i行,第j列;a=2,b=4是超参数;pij为该像素的预测值;yij为该像素的真实值;n为训练样本总数;

lsp为分离角点损失函数:

上式中,k和j代表图片内的第k和j辆车;ek是该车中心点嵌入向量;σ为嵌入向量维度,σ=1;n为训练样本总数;

lgp为组合角点损失函数:

上式中,etk是第k辆车的左上角点嵌入向量;ebk是第k辆车的右下角点嵌入向量;n为训练样本总数;

loff为映射偏差损失函数:

上式中,为映射偏差;xk,yk为第k辆车的原始坐标;为映射后坐标;n为下采样因子;k为第k辆车;n为训练样本总数;

le为角点补全损失函数:

上式中,oe=(|x-x′|,|y-y′|)为角点补全偏差;k为第k辆车;(x,y)为该车的真实位置坐标;(x′,y′)为该车的预测位置坐标;n为训练样本总数。

步骤s5:角点配对模块对步骤s3中经过多目标角点池化操作得到的特征进行角点对配对处理,若存在未配对角点,则通过角点补全模块进行补全处理,最后生成车辆检测框,得出车辆的检测结果。

本实施例中的角点配对原理如图3所示,通过多目标角点池化层获得图像内车辆角点后,需要判断这些角点属于哪一辆车。嵌入向量etk和ebk属于同一辆车,它们之间的距离最短,据此对车辆角点进行配对,因此角点配对损失函数定义如下:

上式中,etk是第k辆车的左上角点嵌入向量;ebk是第k辆车的右下角点嵌入向量;n为训练样本总数;

同时本实施例比较了ek和ej之间的距离,嵌入向量的维度σ=1,当ek-ej≥1时,它们属于不同的车辆,对应的角点分离损失函数定义如下:

上式中,k和j代表图片内的第k和j辆车;ek是该车中心点嵌入向量;σ为嵌入向量维度,σ=1;n为训练样本总数;

本实施例中的角点补全原理如图4所示,在实际的交通场景下往往会有多辆车互相阻挡的情况,此时可能无法准确地检测每辆车的两个角点,为此本发明对这个单独的角点进行补全,如图4所示,本发明设计的网络可以检测到被遮挡车辆的其中一个角点(a)及其对应的两条边ab′和ac,利用这两条边将整个矩形检测框补全为ab′cd′。车辆检测框的真实中心点为e,据此可以得到真实的矩形框abcd,另一角点的真值即为d(x,y),对应的预测值d′(x′,y′),两个角点的偏差为:oe=(|x-x′|,|y-y′|),在训练中这一偏差的损失函数定义为:

上式中,oe=(|x-x′|,|y-y′|)为角点补全偏差;k为第k辆车;(x,y)为该车的真实位置坐标;(x′,y′)为该车的预测位置坐标;n为训练样本总数;

如图5所示,本实施例中进行多目标角点池化操作和未进行多目标角点池化操作的性能变化对比,从图5中可以很明显地看出进行多目标角点池化操作后的神经网络模型具有更好的检测性能。多目标角点池化操作可以更加高效准确地检测出图片内每一辆车的角点。即使因遮挡严重无法完整生成车辆的两个角点,也可以保证至少有一个角点存在,为下一步的角点补全提供了很好的铺垫,大大提高了复杂交通场景下被遮挡车辆的检测能力。

如图6所示,本实施例中角点配对模块使用前后性能变化对比,从图中可以明显看出引入角点配对模块后的神经网络模型具有更好的检测性能。角点配对模块可以准确地将属于同一辆车的两个角点进行匹配,同时将无法配对的单独角点进行补全,从而提高了被遮挡车辆的检测准确率。

如图7所示,本实施例中进行多目标角点池化操作和加入角点匹配模块后的车辆检测结果,对应的图8是未进行多目标角点池化操作和未加入角点匹配模块后的车辆检测结果,由此可以看出本发明在复杂交通场景下拥有非常优秀的车辆检测能力。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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