基于自适应最小二乘拟合的车辆行驶弯度角实时检测方法与流程

文档序号:17156818发布日期:2019-03-20 00:06阅读:352来源:国知局
基于自适应最小二乘拟合的车辆行驶弯度角实时检测方法与流程

本发明涉及车辆行驶安全辅助领域,特别涉及基于自适应最小二乘拟合的车辆行驶弯度角实时检测方法。



背景技术:

检测车辆的转向角度对车辆和驾驶员的安全至关重要,因为致命的事故往往是由危险转向造成的。根据统计,导致死亡的道路交通事故中,23.1%与变道有关,7.7%与掉头有关,总计30.8%与车辆的转向动作有关。现有的计算车辆转弯角度的方法有使用转向角传感器计算、使用磁力传感器计算和使用智能手机的前后摄像头进行计算。然而这些方法都有着各自的局限性,并不能很好的在现实中使用。

车辆的转向角传感器可以检测方向盘的旋转角度和旋转速度,以此为依据再进一步计算车辆实际的转弯角度。该方法算出的转弯角度误差较小,但该传感器的位置在方向盘下方的方向柱内,因此普通乘客使用该传感器十分不便,并且没有安装该传感器的行驶工具则无法使用该方法。

磁力传感器可以直接得出转弯的角度,但是该方法稳定性差,易受干扰。该方法的原理是磁力传感器可以直接读出手机y轴与地磁场北极之间的夹角,因此根据此夹角的变化即可直接得到转弯角度。但是当磁力传感器附近有较强的磁场时,磁力传感器就会受到极大影响,因此得到的角度就会经常出现异常值。对于需要计算转弯角度的现实场景而言,绝大多数情况中这种不可控的异常值都是不能够被允许的。

使用智能手机的前后摄像头进行计算的方法是先通过摄像头来捕获道路物体,然后利用图像处理对其进行分析得出转弯角度。但是该方法受环境影响较大,在光线不足的地方,尤其是夜间该方法会基本完全失效,此外还受天气,路面状况等因素的影响。这些都限制了该方法在现实中的应用。



技术实现要素:

本发明的目的在于提供基于自适应最小二乘拟合的车辆行驶弯度角实时检测方法,以解决上述问题。

为实现上述目的,本发明采用以下技术方案:

基于自适应最小二乘拟合的车辆行驶弯度角实时检测方法,包括以下步骤:

步骤1,将车辆原始gps数据经过坐标序列投影得到k个二元组;

步骤2,设定阈值,对步骤1中的k个二元组通过最小二乘拟合得到两条拟合直线的截距和斜率;

步骤3,计算拟合直线的损失值,若损失值大于阈值则进行下一步,通过截距和斜率分别计算两条直线的方向向量;若损失值小于阈值则回到步骤2重新计算;

步骤4,计算两条直线方向向量的夹角,判断转弯方向,通过对两条直线的方向向量做点积,若其值大于0,则表示逆时针旋转,若其值小于0,则表示顺时针旋转返;若为0则表示为不转弯。

进一步的,步骤1中,将原始gps数据(x′[1],y′[1]),(x′[2],y′[2]),(x′[3],y′[3])……(x′[k],y′[k])经过坐标序列投影得到(x[1],y[1]),(x[2],y[2])……(x[n],y[n])……(x[k],y[k])这k个二元组。

进一步的,步骤2中,计算后向方向直线的截距和斜率:

设定一个参数阈值threshold;使用a,b来表示拟合直线的截距和斜率,设定两个变量numerator和denominator来表示斜率的分子和分母;q来表示参与拟合的点的个数;q初始化为2,根据最小二乘拟合,得到numertor和denominator的计算公式如下:

再计算b和a:

b=numerator/denominator

a=y[n]-b*x[n]。

进一步的,步骤3中,计算后向方向直线向量:

使用error用来表示每次拟合直线的损失值,这个值和原始点到拟合直线的距离成正相关,而当损失值超过阈值,就说明所拟合的直线与原来的gps数据点差距过大,拟合时不应加入更多的点;根据距离公式计算损失值

若error小于threshold,q的值加1,并且重复步骤二,就会使使(x[n+q],y[n+q])这个点参与拟合;若error大于等于threshold,则直线是已经符合误差范围内的后向方向直线,得到后向直线的方向向量

进一步的,步骤2中,计算前向方向直线的截距和斜率:

设定threshold′为阈值,a′,b′表示直线的截距和斜率,numerator′和denominator′表示斜率的分子和分母;p,error′来表示参与拟合的点的个数和损失值;

初始化:p=2,a′=0,b′=0,error′=0

进一步的,步骤3中,计算前向方向直线向量:

使用error用来表示拟合前向直线的损失值,根据距离公式计算损失值

若error小于threshold,p的值加1,并且重复步骤四,就会使(x[n-p],y[n-p])这个点参与拟合;若error′大于等threshold′,则直线是已经符合误差范围内的前向方向直线,得到前向直线的方向向量

进一步的,步骤4中,通过arccos函数以及求得两个方向的夹角,从而得到第n个点的弯度弯度角为a[n];

与现有技术相比,本发明有以下技术效果:

本发明通过拟合轨迹计算车辆后向方向和车辆前向方向,最终得到转弯角度,依托于最小二乘法的思想,自适应地找寻每一个点周围的点集,并根据找到的点集计算这一个点的转弯角度。本发明能够在仅有gps数据的情况下,快速并准确的计算出车辆转弯时的弯度角,并可以用来判断车辆何时转弯。有利于在安全事故或治安事件发生之后,较为准确的提取出车辆的转弯特征以及判断司机的心理状态。

本发明准确度高,基本不受环境影响,并且基于最小二乘计算成本极低。

附图说明

图1表示拟合在实际中的效果图;

图2是计算转弯角度的流程图。

具体实施方式

以下结合附图对本发明进一步说明:

基于自适应最小二乘拟合的车辆行驶弯度角实时检测方法,包括以下步骤:

步骤1,将车辆原始gps数据经过坐标序列投影得到k个二元组;

步骤2,设定阈值,对步骤1中的k个二元组通过最小二乘拟合得到两条拟合直线的截距和斜率;

步骤3,计算拟合直线的损失值,若损失值大于阈值则进行下一步,通过截距和斜率分别计算两条直线的方向向量;若损失值小于阈值则回到步骤2重新计算;

步骤4,计算两条直线方向向量的夹角,判断转弯方向,通过对两条直线的方向向量做点积,若其值大于0,则表示逆时针旋转,若其值小于0,则表示顺时针旋转返;若为0则表示为不转弯。

步骤1中,将原始gps数据(x′[1],y′[1]),(x′[2],y′[2]),(x′[3],y′[3])……(x′[k],y′[k])经过坐标序列投影得到(x[1],y[1]),(x[2],y[2])……(x[n],y[n])……(x[k],y[k])这k个二元组。

步骤2中,计算后向方向直线的截距和斜率:

设定一个参数阈值threshold;使用a,b来表示拟合直线的截距和斜率,设定两个变量numerator和denominator来表示斜率的分子和分母;q来表示参与拟合的点的个数;q初始化为2,根据最小二乘拟合,得到numertor和denominator的计算公式如下:

再计算b和a:

b=numerator/denominator

a=y[n]-b*x[n]。

步骤3中,计算后向方向直线向量:

使用error用来表示每次拟合直线的损失值,这个值和原始点到拟合直线的距离成正相关,而当损失值超过阈值,就说明所拟合的直线与原来的gps数据点差距过大,拟合时不应加入更多的点;根据距离公式计算损失值

若error小于threshold,q的值加1,并且重复步骤二,就会使使(x[n+q],y[n+q])这个点参与拟合;若error大于等于threshold,则直线是已经符合误差范围内的后向方向直线,得到后向直线的方向向量

步骤2中,计算前向方向直线的截距和斜率:

设定threshold′为阈值,a′,b′表示直线的截距和斜率,numerator′和denominator′表示斜率的分子和分母;p,error′来表示参与拟合的点的个数和损失值;

初始化:p=2,a′=0,b′=0,error′=0

步骤3中,计算前向方向直线向量:

使用error用来表示拟合前向直线的损失值,根据距离公式计算损失值

若error小于threshold,p的值加1,并且重复步骤四,就会使(x[n-p],y[n-p])这个点参与拟合;若error′大于等threshold′,则直线是已经符合误差范围内的前向方向直线,得到前向直线的方向向量

步骤4中,通过arccos函数以及求得两个方向的夹角,从而得到第n个点的弯度弯度角为a[n];

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