基于真实场景建模的虚拟驾驶目标碰撞检测方法与流程

文档序号:18554604发布日期:2019-08-30 22:25阅读:283来源:国知局
基于真实场景建模的虚拟驾驶目标碰撞检测方法与流程

本发明涉及汽车虚拟驾驶技术领域,特别涉及一种基于真实场景建模的虚拟驾驶目标碰撞检测方法。



背景技术:

为了提高驾驶训练真实度和训练效果,模拟驾驶系统中需要添加行人和车辆,在模拟驾驶中需要虚拟驾驶车辆躲避行人和车辆,而躲避的前提是模拟驾驶系统能够检测碰撞目标,并对目标进行精确定位。

传统的虚拟驾驶场景是通过三维建模软件生成,因此场景内的人、车等碰撞目标的坐标位置是已知,可以方便的进行目标碰撞检测。但是对应基于真实场景建模的虚拟驾驶系统,系统中的人、车喷碰撞目标的位置坐标却是未知量,因此在基于真实场景建模的虚拟驾驶系统中进行目标碰撞检测是一项技术难题。



技术实现要素:

有鉴于此,本发明的目的是提供一种基于真实场景建模的虚拟驾驶目标碰撞检测方法,以解决在基于真实场景建模的虚拟驾驶场景中进行目标碰撞检测的技术难题。

本发明基于真实场景建模的虚拟驾驶目标碰撞检测方法,包括以下步骤:

1)通过设置在虚拟驾驶车辆驾驶位的虚拟相机拍摄车辆前方的虚拟驾驶场景,并通过目标检测得到碰撞目标在虚拟相机成像平面上的坐标[x1,y1,x2,y2],坐标中(x1,y1)表示碰撞目标矩形框的左上角坐标,(x2,y2)表示碰撞目标矩形框的右下角坐标;所述的虚拟驾驶场景由球体模型和贴在球体模型内壁上的真实场景视频构成;

2)根据碰撞目标的平面坐标[x1,y1,x2,y2]获得碰撞目标的像平面垂直高度h,h=y2;

3)根据像平面垂直高度h对实际纵向距离d的回归方程,计算得到操作车辆与碰撞目标的纵向距离d;

d=2.908×10-7·h3-3.069×10-4·h2+0.08266·h+0.252(1)

4)根据像平面侧向安全宽度w与实际距离d之间的回归方程,得到虚拟驾驶车辆的像平面侧向安全宽度w;

w=-0.03093·d3+2.916·d2-85.9·d+832(2);

5)碰撞判断:

先判断虚拟驾驶车辆是否将与目标发生纵向碰撞,若纵向距离d小于该车的安全制动距离时,则判断可能会发生纵向碰撞,当纵向距离d大于该车的安全制动距离时,则判断不会发生纵向碰撞;

然后在虚拟驾驶车辆可能会与目标发生纵向碰撞的前提下,继续根据目标矩形框左右两边的横坐标x1和x2来判断是否将发生侧向碰撞,若则判断虚拟驾驶车辆不会与目标发生侧向碰撞,否则,判断虚拟驾驶车辆会与目标发生侧向碰撞;前述中wt为虚拟相机所拍摄图片的像素总宽度。

进一步,所述步骤1)中,检测碰撞目标并获取其在虚拟相机成像平面上的坐标[x1,y1,x2,y2]的步骤如下:

a:提取虚拟相机拍摄的车辆前向虚拟驾驶场景图像作为原始图像;

b:对原始图像进行放缩后作为输入图像传入特征提取网络,通过特征提取网络输出得到特征图;

c:将特征图传入rpn网络,rpn网络将输入图像上与特征图上的每个像素点相对应的点作为锚点,以锚点为锚框的中心在输入图像上各锚点位置生成若干个锚框;

d:将带有锚框信息的特征图像输入卷积层,将卷积层输出图像输入softmax分类器进行目标/背景的二分类计算,初步判断锚框内容属于目标或是背景,得到若干个目标;同时将特征图像输入另一个卷积层,对卷积层输出图像通过边框回归模型计算,得到修正锚框的平移量和变换尺度;

e:根据所得到的修正锚框的平移量和变换尺度对所有的锚框进行边框修改;

f:根据步骤d中softmax分类器计算结果中的目标分类得分,按得分从高到低的方式排序,将锚在得分高的目标上的锚框排在前,将锚在得分低的目标上的锚框排在后,如此将所有的锚框依次排列,并提取靠前的若干个锚框;

g:将所提取的每个锚框中超出图像边界的部分去掉;

h:对所提取的锚框进行非极大值抑制处理,去除各目标的重复锚框;

i:再次根据softmax分类器计算结果中目标分类得分由高到低排序剩余锚框,提取靠前的若干锚框作为候选目标输出,候选目标=[x1,y1,x2,y2],(x1,y1)为锚框左上角坐标,(x2,y2)为锚框右下角坐标;

j:将每一个候选目标对应的特征图区域划分为7*7的网格,并且对每一个网格都进行maxpooling处理,输出尺寸为7*7的候选目标特征图;

k:通过全连接层与softmax分类器计算候选目标特征图具体属于行人、车辆还是背景,输出各类的概率向量;同时再次利用边框回归获取每个候选目标特征图的位置偏移量,再次修正目标锚框,得到碰撞目标最终的坐标[x1,y1,x2,y2]。

进一步,所述步骤b中的特征提取网络为srn网络,其表达式如下:

yn=y0+y1+y2+...+yn-1+fn(yn-1)(3)

式中fn(·)表示以一定顺序排列的bn层、relu激活函数和卷积层,卷积层即残差单元,y0为网络的输入,yn为网络的输出;

所述的srn网络结构包括1个初始卷积层c1和3个稀疏残差单元集合c2、c3和c4,其中每个稀疏残差单元集合由m个稀疏残差单元堆叠而成;所述稀疏残差单元由多个以一定顺序排列的bn层、relu激活函数和卷积层组成,其个数由长度因子l决定;所述长度因子l可用来控制初始特征y0对网络输出的影响,每个稀疏残差单元有相同的长度因子。

进一步,所述步骤c中,以锚点为锚框的中心,在每个锚点处定义边框边长分别为128、256、512以及边框长宽比分别为1:2、1:1、2:1的共计9个锚框。

进一步,所述步骤h中的非极大值抑制处理包括以下步骤:

①选出某一目标所属的多个锚框;

②根据步骤d中softmax分类器计算结果,先将锚框中内容属于目标的概率小于0.5的锚框去掉,再将锚框中内容属于目标的概率最大的锚框与剩余的锚框一一进行重叠度判断,若阈值高于设定值,说明两个锚框属同一目标,保留最大概率锚框,去掉概率较小的那个锚框;否则,说明两个锚框属不同目标,两个锚框同时保留;

③选出下一个目标所属的多个锚框,继续步骤①-②的处理过程,直至完成全部目标所属锚框的筛选。

本发明的有益效果:

1、本发明基于真实场景建模的虚拟驾驶目标碰撞检测方法,在检测出碰撞目标后,通过目标在场景图像中的像素坐标和在三维空间中的距离坐标之间的转换公式,得到了虚拟驾驶车辆与碰撞目标之间的纵向距离d和车辆实际宽度在距离为d时的像平面侧向安全宽度w,从而解决了在基于真实场景建模的虚拟驾驶场景中获取碰撞目标坐标的技术难题;并且进一步通过d和w实现了在虚拟驾驶场景中,对虚拟驾驶车辆与碰撞目标之间是否会发生侧向碰撞和纵向碰撞的判断,能提高基于真实场景建模的虚拟驾驶训练真实度。

2、本发明基于真实场景建模的虚拟驾驶目标碰撞检测方法,其在目标检测中采用的基于稀疏残差神经网络的目标检测方法,削弱了最初的特征输入对整体网络模型的影响,同时也丰富了网络的输出特征,提高了预测精度高。

附图说明

图1为虚拟驾驶场景球体模型图;

图2为残差单元结构图,图中bn为输入层,relu为激活函数,conv为卷积层;

图3为局部连接的srn网络,图中长度因子l=2,表示稀疏残差单元的个数为2;

图4为目标检测流程图;

图5为srn网络的整体结构图;

图6为目标检测结果图;

图7为球面投影模型;

图8为相机的透视投影模型;

图9为侧向安全范围示意图,当有碰撞目标在w内时,则表示会发生侧向碰撞;

图10为距离与像素高度的映射曲线图;

图11为像素宽度与距离的映射曲线图。

具体实施方式

下面结合附图和实施例对本发明作进一步描述。

本实施例基于真实场景建模的虚拟驾驶目标碰撞检测方法,包括以下步骤:

1)通过设置在虚拟驾驶车辆驾驶位的虚拟相机拍摄车辆前方的虚拟驾驶场景,并通过目标检测得到碰撞目标在虚拟相机成像平面上的坐标[x1,y1,x2,y2],坐标中(x1,y1)表示碰撞目标矩形框的左上角坐标,(x2,y2)表示碰撞目标矩形框的右下角坐标;所述的虚拟驾驶场景由球体模型和贴在球体模型内壁上的真实场景视频构成;

2)根据碰撞目标的平面坐标[x1,y1,x2,y2]获得碰撞目标的像平面垂直高度h,h=y2;

3)根据像平面垂直高度h对实际纵向距离d的回归方程,计算得到操作车辆与碰撞目标的纵向距离d;

d=2.908×10-7·h3-3.069×10-4·h2+0.08266·h+0.252(1)

4)根据像平面侧向安全宽度w与实际距离d之间的回归方程,得到虚拟驾驶车辆的像平面侧向安全宽度w;

w=-0.03093·d3+2.916·d2-85.9·d+832(2);

5)碰撞判断:

先判断虚拟驾驶车辆是否将与目标发生纵向碰撞,若纵向距离d小于该车的安全制动距离时,则判断可能会发生纵向碰撞,当纵向距离d大于该车的安全制动距离时,则判断不会发生纵向碰撞;

然后在虚拟驾驶车辆可能会与目标发生纵向碰撞的前提下,继续根据目标矩形框左右两边的横坐标x1和x2来判断是否将发生侧向碰撞,若则判断虚拟驾驶车辆不会与目标发生侧向碰撞,否则,判断虚拟驾驶车辆会与目标发生侧向碰撞;前述中wt为虚拟相机所拍摄图片的像素总宽度。

本实施例中,所述步骤1)中,检测碰撞目标并获取其在虚拟相机成像平面上的坐标[x1,y1,x2,y2]的步骤如下:

a:提取虚拟相机拍摄的车辆前向虚拟驾驶场景图像作为原始图像;本实施例中提取的原始图像分辨率为2706*1738。

b:对原始图像进行放缩后作为输入图像传入特征提取网络,通过特征提取网络输出得到特征图。所述的特征提取网络为srn网络,srn网络表达式如下:

yn=y0+y1+y2+...+yn-1+fn(yn-1)(3)

式中fn(·)表示以一定顺序排列的bn层、relu激活函数和卷积层,卷积层即残差单元,y0为网络的输入,yn为网络的输出。

本实施例中所述的srn网络结构包括1个初始卷积层c1以及3个稀疏残差单元集合c2、c3和c4,其中每个稀疏残差单元集合中有m个稀疏残差单元。所述稀疏残差单元由多个以一定顺序排列的bn层、relu激活函数和卷积层(即残差单元)组成,其个数由长度因子l决定;所述长度因子l可用来控制初始特征y0对网络输出的影响,每个稀疏残差单元有相同的长度因子。本实施例中c2、c3、c4集合中的稀疏残差单元个数m都为2,稀疏残差单元长度因子l都为2,网络宽度因子k都为1,每个稀疏残差单元卷积核尺寸都为3*3,卷积核权值使用msra方法进行初始化。本实施例中,原始图片被放缩成rgb3通道、尺寸800*600的输入图片。输入图片首先传入c1进行卷积,c1包含有96个尺度为7*7的卷积核,卷积步长stride设置为2。同时,为了获取边缘特征信息,设置像素填充pad为3。经过c1进行卷积后,得到尺寸为400*300*96的特征图输入到c2。在c2中设置各卷积层卷积核个数为96,pad为1,对集合中第一个卷积层设置stride为2,其余各层stride为1。经过c2集合卷积后,输出200*150*96的特征图。c3中个卷积层包含有128个卷积核,pad和stride设置与c2相同。通过c3,特征图尺寸变为100*75*128。c4中个卷积层包含有256个卷积核,pad和stride设置与c2、c3相同。经过c4,最后srn网络输出50*38*256的卷积特征图。

c:将特征图传入rpn网络,rpn网络将输入图像上与特征图上的每个像素点相对应的点作为锚点,以锚点为锚框的中心在输入图像上各锚点位置生成若干个锚框。本实施例在每个锚点处定义了边框边长分别为128、256、512以及边框长宽比分别为1:2、1:1、2:1的共计9个锚框,本实施例一共产生的锚框个数为50*38*9=17100个。

d:将带有锚框信息的特征图像输入卷积层,将卷积层输出图像输入softmax分类器进行目标/背景的二分类计算,初步判断锚框内容属于目标(行人或车辆)或是背景,得到若干个目标;具体是:将特征图送入一个卷积核尺寸为1*1、卷积核数量为18的卷积层,卷积核数量对应特征图每个点都有9个锚框,同时每个锚框内容有可能是目标或背景两种结果,因此输出尺寸为50*38*18。将输出图像送入softmax分类器,具体为softmax分类器进行二分类,判断锚框内容是目标还是背景。

同时将特征图像输入另一个卷积层,对卷积层输出图像通过边框回归模型计算,得到修正锚框的平移量和变换尺度,具体是:将特征图送入一个卷积核尺寸为1*1、卷积核数量为36的卷积层,卷积核数量对应特征图每个点都有9个锚框,同时每个锚框通过锚点的坐标(ax,ay)和锚框的长宽ah、aw总共4个数据来表示,因此输出尺寸为50*39*36;输出图像通过边框回归模型计算,得到修正锚框的平移量和变换尺度。

e:根据所得到的修正锚框的平移量和变换尺度对所有的锚框进行边框修改。

f:根据步骤d中softmax分类器计算结果中的目标分类得分,按得分从高到低的方式排序,将锚在得分高的目标上的锚框排在前,将锚在得分低的目标上的锚框排在后,如此将所有的锚框依次排列,并提取靠前的6000个锚框。

g:将所提取的每个锚框中超出图像边界的部分去掉;

h:对所提取的6000个锚框进行非极大值抑制处理,去除重复锚框,具体步骤如下:

①选出某一目标所属的多个锚框;

②根据步骤d中softmax分类器计算结果,先将锚框中内容属于目标的概率小于0.5的锚框去掉,再将锚框中内容属于目标的概率最大的锚框与剩余的锚框一一进行重叠度判断,若阈值高于设定值,说明两个锚框属同一目标,保留最大概率锚框,去掉概率较小的那个锚框;否则,说明两个锚框属不同目标,两个锚框同时保留;

③选出下一个目标所属的多个锚框,继续步骤①-②的处理过程,直至完成全部目标所属锚框的筛选。

i:再次根据softmax分类器计算结果中目标分类得分由高到低排序剩余锚框,提取前300个锚框作为候选目标输出,候选目标=[x1,y1,x2,y2],(x1,y1)为锚框左上角坐标,(x2,y2)为锚框右下角坐标。

j:将每一个候选目标对应的特征图区域划分为7*7的网格,并且对每一个网格都进行maxpooling处理,输出尺寸为7*7的候选目标特征图;

k:通过全连接层与softmax分类器计算候选目标特征图具体属于行人、车辆还是背景,输出各类的概率向量;同时再次利用边框回归获取每个候选目标特征图的位置偏移量,再次修正目标锚框,得到碰撞目标最终的坐标[x1,y1,x2,y2]。

本实施例中获得d=2.908×10-7·h3-3.069×10-4·h2+0.08266·h+0.252和w=-0.03093·d3+2.916·d2-85.9·d+832两个线性回归方程的方法如下:

因本实施例中搭建的虚拟驾驶场景将拍摄的真实环境成全景视频添加到球体模型中,而普通的录制拍摄动作是将三维的真实世界环境信息映射到二维图像平面上,失去了环境中物体的深度信息,造成了无法获取该物体在场景中的位置。为了实现虚拟驾驶系统的碰撞判断功能,需要找出真实环境坐标系与场景画面坐标系的映射关系。

由于将全景视频贴到球体模型的内表面上,其本质是一种真实世界景物向球体模型表面的球面投影,即现实空间中的3d点向球面的正射投影,且球面图像的点与空间中的3d点是一一对应的。不同于普通的透视投影模型,球面投影模型如图7所示,图中球s原点为o,半径为r,球面为附着的全景图像,坐标系oxyz为定义球面全景画面中目标对象的直角坐标系,同时点o也作为球形摄像机的光心。连接空间3d点pc=(xc,yc,zc)与光心o,交球面s于点p=(x,y,z)。为了便于计算,对于球面上全景图像的点,采用球面坐标的方式来表示,与直角坐标系的关系式为:

因为球心o,全景画面上坐标p,现实空间中的3d点pc共线,可得p和pc的关系:

其中有:

p=λpc(6)

在实际拍摄中,摄像机坐标与真实世界的参考坐标存在着旋转和平移的关系,设r为旋转矩阵,t为平移向量,则有:

pc=rpw+t(7)

由此,球形全景画面坐标与真实世界参考坐标之间的映射关系为:

p=λ[r|t]pw(8)

其中,旋转矩阵r和平移向量t是与拍摄所用相机属性决定。

本实施例中用来进行距离建模的图像,是通过系统中放置于球体模型光心位置的虚拟摄像机,拍摄球体表面的场景画面所获得的平面图像,因此还存在有球形全景画面坐标与平面图像坐标之间的映射关系,此映射关系可以通过相机的透视投影模型进行说明,如图8所示,设相机坐标系为(xp,yp,zp),像平面坐标系为(w,h),像素坐标系为(u,v),根据相似三角形原理可得:

光在成像平面上形成一个模拟量,通过对该模拟量进行采样和量化,即可获取像在像素平面上的坐标值。像素平面与成像平面之间存在放缩和平移变换。设成像平面上的像映射到像素平面后,对应坐标在u轴上放大了α倍,在v轴上放大了β倍,原点平移cw,ch,即得到如下等式:

整理式(9)和(10),即可得到相机坐标系与像素坐标系的映射关系如下式所示:

由式(11)可得,目标距离相机越远,zp越大,则u、v越小,像的位置成像平面下边缘越远。因此,能通过平面图片中目标的垂直像素高度来判断空间中目标距离拍摄点的距离。

上述模型中r、t、α、β、cw和ch是由相机的外参和内参属性决定的,获取过程比较复杂,同时还存在光路畸变等因素也会造成准确的坐标映射关系难以求取。本实施例采用逆向思维,通过标定实验先统计真实坐标中的距离值与对应平面图像坐标中的像素值,然后使用数据回归的方法,找出两种数据之间的映射关系,建立场景距离模型。

因为判断车辆碰撞需要得到两个方向上的距离模型:一个是沿车道方向的纵向距离模型,一个是垂直于车道方向的侧向安全范围模型。纵向距离模型d=f(h)主要获取的是场景画面中目标对象的垂直像素高度与该对象在真实环境中距离拍摄点的距离之间的关系。

侧向安全范围表示虚拟驾驶车辆在前方路段行驶时需要占用的路面宽度,即车辆在此范围内无障碍物才能正常行驶。该范围由车辆宽度和预留安全裕量确定。如图9所示,图中ld为实际道路宽度,lc为实际车辆宽度,ls为安全裕量,因此侧向实际安全范围lr=lc+2·ls,d为待测点与相机间的实际距离,w为lr在距离为d时场景画面中所对应的侧向像素宽度。由图9可知,画面中像素宽度w由目标实际宽度和目标与相机的距离所决定,因此设侧向安全范围模型为w=g(lr,d)。由于车辆宽度lc和安全裕量ls为固定值,lr为常量,因此侧向安全范围模型可转化为w=g(d)。

先分析d=f(h)。设因变量为d,若有关系式:

d=b0+b1h1+b2h2+…+bmhm+ε(12)

其中,ε为零均值的随机变量,h1,h2,…,hm为可控制的变量,b0,b1,…,bm为未知参数,则称上式(12)为多元线性回归模型(m>1)。假定对h1,h2,…,hm,d,进行n次随机试验,得观察值为hi1,hi2,…,him,di,i=1,2,…,n,则有di=b0+b1hi1+b2hi2+…+bnhin+εi,通常假定ε1,ε2,…,εn服从独立同分布n(0,σ2)。称

为m元线性回归方程,称为样本点(h1,h2,…,hm)处的回归值,其中分别是b0,b1,b2,…,bm的估计。

最后,对这样建立的回归方程进行检验,即(h1,h2,…,hm)对d是否有影响,且还是线性的,这就需要检验假设h0:b1=b2=…=bm=0。为此,作统计量:

其中,ssr为回归平方和,ssre为残差平方和。数理统计学中证明了,若h0成立,则f服从自由度为(m,n-m-1)的f分布f(m,n-m-1)。给定显著性水平η,由p(f>fη)=η,查表可得fη。当f>fη时,拒绝h0,即在显著性水平η下,h1,h2,…,hm对d的线性影响显著,回归方程有意义;否则回归方程无意义。

本实施例中回归建模所需的观察数据来自于实际定标试验,标定实验的所有参数都依据身高1.7m的驾驶员和东风本田第9代思域轿车作为标准。经测量,驾驶员在驾驶位调整好驾驶位置后,眼睛离地面垂直高度为1.2m,车宽为1.8m。根据虚拟驾驶系统碰撞判断的实际要求,针对行驶前方0m到50m之间的距离进行定标测量。从2m处开始测量,每隔1m测量一次,一直到50m处,一共测量49次。同时,考虑到车辆宽度的安全裕量,实验中将汽车参考宽度增加20cm,每次都在测量点位置横向放置固定长度2m的直杆,用以记录横向宽度。记录所得的观察数据如表1所示。

表1标定实验数据记录

同时,为了便于分析,画出了观察数据中观察数据之间的映射曲线图,如图10和11所示。

由图10和11可得,d与h、d与w之间呈光滑非线性关系,可以采用非线性回归对该模型进行拟合。

通过分析前文d=f(h)的映射关系,由标定数据曲线图可看出,d和h两者之间呈三次曲线关系,因此选取如下回归模型进行非线性回归建模:

d=b0+b1h+b2h2+b3h3+ε(15)

其中,h为像平面垂直像素高度,d为实际距离,ε为零均值的随机变量,(b0,b1,b2)为回归建模需要求得的未知参数。

为了便于进行建模分析,设h1=h,h2=h2,h3=h3。将h1、h2、h3代入等式(15)可将其转化为二元线性回归模型如(16)所示:

d=b0+b1h+b2h2+b3h3+ε(16)

其对应的二元线性回归方程为:

其中,是参数(b0,b1,b2,b3)的估计值,为点(h1,h2,h3)处的回归值。

采用最小二乘法对参数(b0,b1,b2,b3)进行估计,可求得像平面垂直高度h对实际纵向距离d的回归方程为:

d=2.908×10-7·h3-3.069×10-4·h2+0.08266·h+0.252(18)

最后,通过检验假设h0:b1=b2=b3=0检验(18)是否有意义,易算得:

总平方和

残差平方和

回归平方和

ssr=sst-ssre=6207

由式(14)作统计量f≈75.145,给定显著性水平η=0.01,由p(f>fη)=0.01,查f(m,n-m-1)=f(3,45)分布表可知:fη(3,45)=4.31。由于:f=75.145>4.31,故所得回归方程式(18)有意义。

同理,对于像平面侧向安全宽度w与实际距离d之间的关系,代入其数据进行计算,得到:

w=-0.03093·d3+2.916·d2-85.9·d+832(19)

通过计算可得f≈177.6>4.31,所以,回归方程式(19)有意义。

通过上述分析验证证明了本实施例中采用的纵向距离d和像平面侧向安全宽度w能够用来在基于真实场景建模的虚拟驾驶场景中做目标碰撞检测。

最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

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