基于OpenGL的视频车速解算虚拟仿真试验

2021-07-14 05:33韩天园许江超蔡鹏亮
关键词:参照物车速道路

韩天园,王 鹏,许江超,蔡鹏亮,张 琼

(1.长安大学 汽车学院,西安 710000;2.中国汽车技术研究中心有限公司,北京 100070;3.人民交通出版社股份有限公司,北京 100011)

据统计,2019年我国共发生了247 646起交通事故,造成62 763人死亡和256 101人受伤[1]。超速行驶与速度控制不当是事故的重要诱因[2],因此,车速鉴定是查明事故原因、判定事故责任的关键。目前道路交通事故车速鉴定主要通过车辆运动-动力学[3]、动量守恒[4]、事故库数据(经验)[5]、计算机差分仿真计算[6]、监控[7]与车载摄像[8]的视频图像车速解算和车载记录设备数据读取[9]等方法,其中基于视频图像的车速检测方法技术简单、成本低、画面直观,提取出的车速、运动轨迹等事故信息信服度高[10],是事故鉴定的优选方案。

基于视频图像的事故车速检测方法本质是通过帧差研究车辆运行的时空关系[11]。根据摄像位置与参照物选取将视频图像车速解算方法大致分为道路固定摄像与车体参照物、道路固定摄像与环境参照物和本车车载摄像与环境参照物3种[12],而车辆纵向行驶距离在空间上形成的透视关系会导致车速解算偏差[13]。确切的车速解算误差范围是视频图像事故鉴定公正性的关键。李鹏[14]通过相机标定和对检测区域进行网格划分来解算图像车速,宋涛等[15]提出一种基于运动矢量直方图反映车辆运动速度的大小的方法,最终经实车测试车速误差范围约为10%。Han[16]通过比较基于车载摄像和基于GPS的估计车速,以证明视频车速解算的适用性。Kim等[17]采用Vbox测试基于视频图像的事故车速解算误差。然而无论实车试验、GPS或Vbox验证都不能消除车速控制误差和传感器检测误差,运用不确定的“真实车速”去验证车速解算误差缺少说服力。基于可视化的车辆运动仿真模拟试验可以精确控制车速,完成不同车速下的视频车速解算误差分析。

例如Car-Sim、Pc-crash等目前流行的仿真软件主要应用于车辆动力性仿真,而在车辆可视化运动性仿真试验中人机交互性差、视觉表现不逼真[18-19]。随着虚拟现实技术与信息技术的快速发展,基于OpenGL的三维虚拟仿真被广泛应用于现代机械运动控制[20]。3DMAX三维模型通过OpenGL实现三维图像可视化和漫游[21]。本文基于Visual C++平台搭建OpenGL三维模型环境后,开发了车辆运行场景仿真系统以研究基于视频车速解算方法的准确性。

1 车辆运行场景仿真系统的开发

车辆运行场景仿真是指车辆三维模型在虚拟道路场景中运动的可视化仿真,为模拟相机对车辆发生道路交通事故时的空间运动过程的视频图像,考虑该视频图像解算事故车速和探究解算结果的可靠性,基于Visual C++与OpenGL开发了车辆运行场景仿真系统。系统通过OpenGL图形接口将3D MAX绘制的车辆、道路等三维模型(“.3DS”)导入系统,并实现三维模型在VC++窗口的可视化、可编辑化与良好的交互性,具体如下。

1.1 三维模型的几何变换与空间运动

在OpenGL开发环境中glLoadMatrix()命令用来指定M矩阵为当前加载矩阵,而glMultMatrix()命令通过其他变换命令矩阵与当前矩阵M相乘生成新的矩阵M。

调用平移函数glTranslatef(x,y,z)进行三维图形的位移变换,如式(1)所示,其中参数x、y、z分别表示对象沿3个坐标轴移动的偏移量。

调用旋转函数glRotatef(A,x,y,z)进行三维图形的方向变换,其中(x,y,z)坐标来确定旋转轴,参数A表示旋转角度。如式(2)所示,RX(A)、RY(A)、RZ(A)分别为绕3个坐标轴旋转变换之后的矩阵。

调用缩放函数glScalef(x,y,z)进行三维图形的尺寸变换,如式(1)所示,其中参数a、b、c为沿3个坐标轴缩放的比例因子。

数据分析用SPSS18.0系统;计量(±s),t检验;计数(n,%),X2检验;P<0.05指有差异,符合统计学意义。

1.2 相机模型的参数设置与视图变换

1.2.1 虚拟相机模型构建

实际相机拍摄实质是一个透视投影过程,不同的横向视角和焦距大小参数有不同拍摄效果,其中镜头决定视角和焦距大小。

在OpenGL中,则通过透视投影函数gluPerspective(fovy,aspect,zNear,zFar)模拟相机参数,其中“fovy”表示视野的角度,范围在0°~180°,角度越大,视野越开阔,物体在视口中显示越小;“aspect”为宽高比,默认值为1;“zNear”表示视点与近裁面的距离,“zFar”表示视点与远裁面的距离,如图1所示。通过调整透视投影各参数实现相机模型参数的设置。

图1 gluPerspective()函数透视关系

1.2.2 世界坐标系中的相机定位

基于视图函数gluLookAt(eye x,eye y,eye z,center x,center y,center z,up x,up y,up z)模拟相机机位设置原理,类比于实际相机的三脚架,并将镜头指向要拍摄的场景,其中“eye”为相机视点坐标,“center”为观察中心点坐标,“up”是相机正向姿态坐标,同时相机对象坐标系S-x′y′z′的z轴穿过“up”点。由“eye”为起点指向“center”为终点的空间向量确定了相机唯一的拍摄方向,由“eye”为起点指向“up”为终点的空间向量确定了相机唯一的拍摄姿态。基于上述坐标点与空间向量表征了虚拟相机、观察目标相对于世界坐标系的空间关系,如图2所示。

图2 世界坐标系中的相机定位

通过调整“eye”“center”和“up”坐标参数完成相机的空间定位,模拟不同交通场景中不同的相机。

1.3 车辆运行场景仿真系统功能与结构

所开发的车辆运行场景仿真系统如图3所示,通过调用平移函数glTranslatef(x,y,z)、旋转函数glRotatef(A,x,y,z)和缩放函数glScalef(x,y,z)命令表征与控制车辆等虚拟模型的空间坐标与运动,实现车辆运动、道路参数构建和路灯、道路景观等模型在世界坐标系中的数字化匹配与定位。通过调用透视投影函数gluPerspective(fovy,aspect,zNear,zFar)仿真照相机模型的透视原理和通过视图变换函数gluLookAt(eyex,eyey,eyez,centerx,centery,centerz,upx,upy,upz)设置虚拟相机拍摄方位,最终实现了车辆运行场景仿真系统的车辆自主运动、场景数字化编辑、视角自由切换,如图4所示。

图3 车辆运行场景仿真系统结构

图4 三维车辆运行仿真场景

2 仿真试验

2.1 试验设计

2.1.1 试验场景设置

图5 三维虚拟交通试验场景

表1 车辆与场景的空间关系

2.1.2 相机机位设置

由于相机的搭载方式和搭载位置的不同,用于视频图像车速解算的空间距离参照物的选取不同。依据视频图像中参照物与车辆行驶的关系,可将场景分为3类,如图6所示,(a)场景为固定摄像,可以车轴为参照物,对应道路固定摄像与车体参照物解算法;(b)场景为固定摄像,可以道路标线为参照物,对应道路固定摄像与环境参照物解算法;(c)场景为车载摄像,可以道路标线为参照物,对应本车车载摄像与环境参照物解算法。

图6 3种视频解算方法的应用场景

试验分别设置了3个相机模型以对应3种车速解算方法。试验时,分别调整固定相机1、固定相机2和车载相机的相机参数和拍摄机位,模拟车辆在模拟道路上行驶并录制为视频图像。3个相机模型的gluLookAt()函数各参数如表2所示。

表2 相机机位设置

2.1.3 试验方案设置

针对3种视频图像车辆行驶车速解算方法分别设置了3个试验,每个试验设置了30 km/h(低速)、60 km/h(中速)和90 km/h(高速)3组车速,每组车速连续解算10次。试验时,车辆以确定车速由西向东行驶,模拟相机录制试验过程图像后,选择车体参照物或环境参照物,并用对应方法解算出行驶车速。试验设置如表3所示。

表3 试验相机与参照物设置

2.2 试验数据处理

2.2.1 车速解算原理

《基于视频图像的车辆行驶速度技术鉴定》(GA/T 1133—2014)中规范了视频图像车速解算方法和要求。视频图像记录了车辆运动的时空信息,确定视频图像帧率f,由式(1)计算得到相邻两帧间隔时间t,选取距离参照物特征点并获取两特征点距离S′,确定车辆经过两特征点所用的帧数n(n1,n2),n1为经过特征点的上一帧,n2为经过特征点对应帧数。

则车辆行驶车速v范围为:

基于图像像素可近似计算经过参照物两特征点的帧数N,m1、m2分别为n1、n2帧距离参照物特征点的像素。则帧数N约为:

因此在事故视频中,车辆行驶车速v为:

2.2.2 试验车速解算

依据式(10),分别基于道路固定摄影与车体参照物解算法(a)、道路固定摄像与环境参照物解算法(b)和本车车载摄像与环境参照物解算法(c)解算试验视频车速。解算结果如图7所示。

图7 试验视频车速解算

2.3 试验结果分析

在试验车速范围内,基于道路固定摄像与车体参照物解算法解算结果的相对误差明显最小,约为1%;基于道路固定摄像与环境参照物解算法解算结果的最大相对误差不超过2.2%,基于本车车载摄像与环境参照物解算法解算结果的最大相对误差不超过1.8%,如图8所示。3种方法相比,基于道路固定摄像与车体参照物解算法的准确度最高,基于道路固定摄像与环境参照物解算法解算的准确性最差。

图8 试验车速解算误差分析

为分析基于视频图像车速解算的3种方法和实际车速对解算相对误差的显著性影响,通过计算所解算车速的最大相对误差数据的离差平方和与均方离差,构建自由度为(r-1,(r-1)(s-1))的F分布,通过双因素方差分析方法(无重复双因素分析)评价不同试验方法(因子A)和车辆运行速度(因子B)对解算车速误差的显著性影响。

现给定显著水平α=0.05,已知Fα(2,4)=6.944 3,方程分析结果如表4所示。则FA(2,4)>F0.05(2,4),FB(2,4)<F0.05(2,4)。因此,3种试验方法的选择(因子A)对解算车速相对误差的影响显著,但车辆运行速度(因子A)对解算车速相对误差影响不显著。说明,基于视频的车速解算方法适用于对不同事故车速的解算。

表4 二元方差分析

3 结论

基于Visual C++平台搭建OpenGL三维模型环境后开发了车辆运行场景仿真系统,完成3D MAX绘制的车辆、道路等模型在V C++窗口的可视化。系统通过OpenGL命令函数控制三维模型在世界坐标系中的几何变换与空间运动,通过OpenGL命令函数构建相机模型与控制视图切换,构建的车辆运行场景视觉逼真,交互优良,实现了车辆的自主运动、场景的数字化编辑和视角的自由切换。

基于所构建的交通场景和相机模型记录了车辆纵向运动的视频图像,并分别使用道路固定摄像与车体参照物、道路固定摄像与环境参照物、本车车载摄像与环境参照物3种方法解算视频车速,通过与实际车速对比发现,基于道路固定摄像与车体参照物解算法的误差最小,基于道路固定摄像与环境参照物解算法解算的误差最大。

采用双因素方差分析方法评价不同试验方法和车辆运行速度对试验结果的显著性影响。分析表明,显著水平α=0.05时,试验方法的选择对解算车速相对误差的影响显著,车辆运行速度对解算车速相对误差的影响不显著。

所开发的车辆运行场景仿真系统不能模拟现实车辆运动所致的车载相机画面的抖动,因此,在理论上基于本车车载摄像与环境参照物的试验车速解算的误差小于实际误差。

猜你喜欢
参照物车速道路
坚持中国道路——方向决定道路,道路决定命运
道听途说
利用参照物计算
运动还是静止 参照物说了算
我们的道路更宽广
轮速信号在定速巡航控制中的应用
2012款奔驰R300车修改最高车速限制
跑跑卡丁车
参照物和我们的宇宙
一次骑行带来的感悟