本发明属于车辆安全技术领域,尤其涉及一种车辆直行的车速计算方法。
背景技术:
视频测速方法一般分为两类。一种是在交通领域中,通过道路上的摄像头对道路上的任一车辆进行识别,计算出该车辆通过某段距离的时间对车速进行实时求解。
现行的实时解算车速的方法有雷达检测、感应线圈检测以及对摄像机进行标定的方法对车速进行计算。其中雷达检测是通过雷达发射信号,该信号接触到车辆后被反射回雷达并被接收,通过雷达接收到反射信号的时间可以求解车速。感应线圈求解车速的方法是通过在路面上放置的两个距离已知的感应线来确定车辆通过这两条线所用的时间,进而实现车速的计算。而标定摄像机的方法是通过道路上的间距已知的参照点和摄像机的高度、角度等几何关系,建立图像坐标系与世界坐标系之间的转换关系,从而通过像素位移求解出车辆的实际位移,对车速进行解算。
另一种视频测速方法是通过一段已有的视频,针对某一目标车辆的行驶车速进行计算,一般应用于事故再现领域。
这种算法是标记车辆上的某一特征点,求出该特征点经过某两个间距已知的参照物的时间来计算车速。例如冯浩于2009年提出的基于视频的车速计算方法,该算法是在车辆上选取两个间距已知的特征点,计算这两个特征点经过某一参照物所消耗的时间,从而计算出车辆的平均速度,但是由于摄像机很难拍摄到特征点刚好与参照物相重合的时刻,因此该算法只能近似的求出特征点与参照重合的时间,计算结果的误差较大,但是该算法假设车辆在相邻两帧之间的车速为匀速行驶。云南省交通科学研究所于2016年发布标准db53/t806—2016,其中所提到的基于视频的车辆直线行驶的车速计算方法是通过差值的方式来计算车辆上的两个特征点经过一个特征长度所用的时间,提高了计算精度。但是该算法认为,车辆在相邻两帧之间的运动状态为匀速行驶,实际上,在车辆高速制动时若忽略加速度的影响,则计算结果的误差较大。
技术实现要素:
针对上述现有技术的缺点,本发明的目的在于提供一种车辆直行的车速计算方法,可以求出车辆的连续运动车速,并且可以将忽略加速度而产生的误差消除。
为达到上述目的,本发明采用如下技术方案予以实现。
一种车辆直行的车速计算方法,所述车速计算方法包括如下步骤:
步骤1,设定摄像头安装在直行道路一端的上方,车辆由远到近驶向所述摄像头的方向,所述摄像头的拍摄方向固定,获取摄像头拍摄的关于所述车辆的视频以及所述视频包含的m帧图像;
步骤2,建立图像中的像素坐标系xoy,所述像素坐标系以所述m帧图像的左下角为坐标原点,车辆行驶方向的反方向为x轴正方向,垂直于道路方向为y轴正方向;
步骤3,获取每帧图像中车辆的前特征点的像素坐标和后特征点的像素坐标,车辆的前特征点为车辆前轮中心点,车辆的后特征点为车辆的后轮中心点,记所述车辆的前特征点和所述车辆的后特征点之间的距离为特征长度;
步骤4,令i的初值为1,获取满足条件
步骤5,令i的值加1,重复执行步骤4,直到p+1>m,得到所有计算车速vi(i=1,2,…,i),i为计算车速的总个数;
步骤6,计算每个计算车速对应的时间,从而得到相邻两个计算车速之间的加速度;
步骤7,根据所述每个计算车速、每个计算车速对应的时间,以及相邻两个计算车速之间的加速度,得到车辆在每个整帧时刻的整帧估计速度和整帧估计时间,所述整帧时刻为摄像机获取每帧图像时对应的时刻;
步骤8,令i1的初值为1,根据车辆在每个整帧时刻的整帧估计速度和整帧估计时间,计算车辆经过第i1个特征长度的时间,进而得到修正后的第i1个计算车速vi1,i1=1,2,…,i,i为修正后的计算车速的总个数,其与计算车速的总个数相等;
步骤9,计算每个修正后的计算车速对应的修正时间,从而得到相邻两个修正后的计算车速之间的修正加速度;并通过曲线拟合得到修正加速度的通用表达式;
步骤10,根据所述修正后的计算车速和修正加速度以及修正加速度的通用表达式,得到车辆在每个整帧时刻的整帧实际速度,作为车辆车速计算结果。
本发明技术方案的特点和进一步的改进为:
(1)步骤4具体包括:
获取满足条件
其中,3.6为m/s换算成km/h的换算系数,l为特征长度,f为帧速率,n为车辆走完一个特征长度的过程中包含的图像帧个数,且n=p-i,
(2)步骤6具体包括如下子步骤:
(6a)计算第i个计算车速vi对应的时间ti:
其中,i=1,2,…,i,i为计算车速的总个数;
(6b)计算第i个计算车速vi的和第i+1个计算车速vi+1之间的加速度ai:
其中,ti为第i个计算车速vi对应的时间,ti+1为第i+1个计算车速vi+1对应的时间。
(3)步骤7具体包括如下子步骤:
(7a)车辆在第m帧图像时对应的整帧时刻的整帧估计速度vfm为:
其中,vk为时间上离第m帧图像最近的第k个计算车速,tk为vk对应的时间,ak为vk和vk+1之间的加速度;
(7b)车辆在第m帧图像时对应的整帧时刻的整帧估计时间
其中,f为帧速率。
(4)步骤8具体包括如下子步骤:
(8a)计算车辆经过第i1个特征长度的时间δti1:
其中,f为帧速率,n为车辆走完一个特征长度的过程中包含的图像帧个数,
(8b)修正后的第i1个计算车速vi1:
(5)步骤9具体包括如下子步骤:
(9a)计算修正后的第i1个计算车速vi1对应的修正时间ti1:
(9b)计算修正后的第i1个计算车速vi1和修正后的第i1+1个计算车速vi1+1之间的修正加速度ai1:
其中,ti1为正后的第i1个计算车速vi1对应的时间,ti1+1为修正后的第i1+1个计算车速vi1+1对应的时间;
(9c)根据修正后的计算车速对应的修正时间以及修正加速度,得到通过曲线拟合得到修正加速度的通用表达式记为:
a=k1*t3+k2*t2+k3*t+k4
其中,a表示修正加速度变量,t表示修正时间变量,k1,k2,k3,k4分别表示通用表达式中从高次幂到低次幂的系数。
(6)步骤10具体包括:
车辆在某个整帧时刻的整帧实际速度v:
其中,t为某个整帧时刻对应的时间。
本发明技术方案中从第i帧开始求解车速,通过计算车辆走完一个特征长度所需的时间得出这个区间内的平均速度,再从第i+1帧开始计算下一点的车速,以获得车辆在拍摄区域内的一系列连续车速。与之前的求解方法相比,本发明的计算结果不仅反映了车辆的运行状态而且并不假设相邻两帧内车辆的运动状态为匀速行驶;本发明方法可以求出车辆的连续运动车速,并且可以将忽略加速度而产生的误差消除。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种车辆直行的车速计算方法的流程示意图;
图2为本发明实施例提供的建立图像坐标系的示意图;
图3为本发明实施例提供的标记特征点的示意图;
图4为本发明实施例提供的经过两轮计算,计算结果的对比图;
图5为本发明实施例提供的每帧图像所对应的车速示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种车辆直行的车速计算方法,结合图1,所述车速计算方法包括如下步骤:
步骤一:将摄像头获得的视频进行解码,分解成一系列的图像,图像总帧数为m。
步骤二:建立像素坐标系,以图像的左下角为坐标原点,如图2所示。
步骤三:标记车辆上的前、后两个特征点,两个特征点之间的实际距离为特征长度l,如图3所示。
实例中选择前后车轮的轮心为前、后特征点,特征长度l=3.088。如图3所示。
步骤四:将每帧图像中的前、后特征点的像素坐标储存在两个矩阵mf和mr中,实例中前后特征点的坐标见表1和表2。
表1前特征点的坐标值
表2后特征点的坐标值
步骤五:当
其中,3.6为m/s换算成km/h的换算系数,l为特征长度,f为帧速率,n为车辆走完一个特征长度的过程中包含的图像帧个数,且n=p-i,
以第一个计算车速v1为例,摄像机帧速度f=25,特征长度l=3.088,后特征点走过一个特征长度所消耗的时间为3~4帧之间,即n=3,非整数部分通过插值法得到,则:
步骤六:令i的值加1,重复执行步骤五,直到p+1>m,循环结束,将所求出的车速和每个车速对应的时间存入矩阵vc1中。
其中,
步骤七:求出相邻两个速度间的加速度ai:
实例中,每个车速所对应的时间和加速度如表3所示。
表3初算结果
步骤八:求出车辆在整帧时刻的速度。
车辆在第m帧图像时对应的整帧时刻的整帧估计速度
其中,vk为时间上离第m帧图像最近的第k个计算车速,tk为vk对应的时间,ak为vk和vk+1之间的加速度;
车辆在第m帧图像时对应的整帧时刻的整帧估计时间
其中,f为帧速率。
例如,所求出的第一个车速所对应的时间为0.074s,此时的计算车速为75.01km/h,即20.84m/s,车辆在0.074~0.115秒内的平均加速度为-5.73m/s2,则车辆在第2帧时的车速为:
计算过程中,将车速换算为m/s。
步骤九:计算车辆经过第i1个特征长度的时间δti1。
其中,f为帧速率,n为车辆走完一个特征长度的过程中包含的图像帧个数,
步骤十:重新计算各个点的车速:
步骤十一:将修正过的车速及每个车速所对应的时间储存在矩阵vc2中。
其中,
修正过的车速及其对应的时间如表4所示。
表4修正过的车速及所对应的时间
步骤十二:再次计算两个车速间的加速度ai1。
其中,ti1为正后的第i1个计算车速vi1对应的时间,ti1+1为修正后的第i1+1个计算车速vi1+1对应的时间;第二轮计算加速度的结果如表5所示。
表5第二轮计算加速度的结果
步骤十三:通过曲线拟合得到加速度的计算公式:
a=k1*t3+k2*t2+k3*t+k4
其中,a表示修正加速度变量,t表示修正时间变量,k1,k2,k3,k4分别表示通用表达式中从高次幂到低次幂的系数。
本实例中,加速度的拟合曲线公式为:
a=91.662*t3-81.698*t2+12.097*t-5.62
步骤十四:通过步骤十一的计算结果,以及步骤十二获得的整帧时刻加速度,推算视频起点和终点处车辆在整帧时刻的速度。
其中,v为车辆在某个整帧时刻的整帧实际速度,其中,t为某个整帧时刻对应的时间。
步骤十五:绘制每帧图像中车辆所对应的车速。
本例中,如图4所示,经过一次修正后与第一次的计算结果相比,平均相对误差降低了0.93%,可以证明这是一种有效的算法。
如图5所示为绘制的每帧图像中车辆所对应的车速示意图。
需要说明的是,本发明技术方案的使用条件为:摄像机能够拍摄到车辆的侧面,以使用车辆上的特征长度计算车速;本发明技术方案假设车辆在相邻两帧之间做匀变速运动;计算过程中所用的加速度为车辆在两帧之间的平均加速度。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。