基于监控录像的交通事故现场数字化重构方法
技术领域
本发明涉及一种交通安全领域的现场数字化重构方法,具体是一种基于监控录像的交通事故现场数字化重构方法。
背景技术
机动车辆的行驶速度与交通安全具有很高的相关性:随着机动车速的提高,发生交通事故和人员伤亡的概率也呈急剧上升趋势。因此,世界各国都在积极采取措施严禁车辆在相关路段超速行驶,以确保人民的生命和财产安全。在这一过程中,车辆运动状态的现场数字化重构成为分析交通事故成因的重要依据,也是划分交通事故责任的关键因素。
经对现有技术文献的检索发现:Wen Liu等在IEEE JOURNAL OF SELECTED TOPICS IN APPLIED EARTH OBSERVATIONS AND REMOTE SENSING, 2011: 75-82上发表文章“Automated Vehicle Extracion and Speed Determination From QuickBird Satellite Images”(“从QuickBird卫星图像中进行自动化车辆提取和速度测定”,应用地球观测和遥感所选主题的美国电气电子工程师学会期刊,2011: 75-82),该文利用成对全色多光谱QuickBird卫星图像自动检测移动车辆,并根据全色图像与多光谱图像之间的延迟测定车辆的运动状态。但该方法在实际应用中受到很大的限制,主要是由于QuickBird卫星的覆盖范围和定位精度有限并且重访周期较长,难以满足不同区域车辆运动状态的精确现场数字化重构要求。经检索还发现,Kostia Robert在2010 Seventh IEEE International Conference on Advanced Video and Signal Based Surveillance, 2010:9-12 上发表文章“Bringing Richer Information with Reliability to Automated Traffic Monitoring from the Fusion of Multiple Cameras, Inductive Loops and Road Maps”(“从多台摄像机、感应线圈和路线图的融合对自动化交通监控带来更丰富的信息和可靠性”,2010年第七届以先进视频和信号为基础的监控美国电气电子工程师学会国际会议,2010:9-12),该文首先把多个摄像机和感应线圈融合到卫星地图平面中,然后根据摄像机标定确定检测车辆在卫星地图坐标系中的位置,再通过卡尔曼滤波沿着车道线性追踪车辆,从而达到实时高可靠性地监控车辆运动状态的目的。但该方法操作过于复杂,且很难在卫星地图中准确定位多个摄像机和感应线圈的位置,故在大范围内也难以实现车辆运动状态的精确现场数字化重构。
发明内容
本发明针对现有技术的不足,提出一种基于监控录像的交通事故现场数字化重构方法。使其实现了不同路段车辆运动状态的现场数字化重构,解决了大范围内车辆运动状态的监控问题,同时提高了测定精度,降低了成本。
本发明是通过以下技术方案实现的:
一种基于监控录像的交通事故现场数字化重构方法,包括如下四个步骤:
第一步,根据摄像头监测到的车辆的起始时刻和车辆行驶超出摄像头监控视野范围的终止时刻,将此时间段内的视频序列通过OpenCV HighGUI(开放式计算机视觉 高级图形用户接口)模块中的视频处理函数分解为连续的帧图像,并记录该视频序列的帧频率和行驶车辆的车牌号;
第二步,选择在整个监控过程中位置和形状保持不变的位于路面上的固定标记物为固定参考物,在固定参考物上对每幅帧图像依次标定控制点,所述控制点至少为四个,且其中三个不能共线,再根据预先选定的坐标系,确定所述控制点的像空间坐标及其相应的物方空间坐标,求解出相应的DLT(直接线性变换)系数的值;
第三步,选取车辆中某一个轮子与地面的接触点作为观察点,通过Visual C++应用程序从连续的帧图像中依次获取该观察点在不同时刻的像空间坐标,并结合上述求得的二维DLT系数的值分别解算相应时刻该观察点的物方空间坐标;
第四步,根据上述求得的不同时刻观察点的物方空间坐标通过多项式拟合得到车辆运动的轨迹线,然后由此轨迹线进行对弧长的曲线积分求出车辆运动的位移曲线,而车辆运动的速度曲线和加速度曲线则分别由该位移曲线的一阶导数和二阶导数确定,从而对车辆运动状态进行现场数字化重构。
所述第一步中,所述帧图像是指从视频序列中提取出的每一帧的图像内容,然后将其保存成JPG或BMP格式的图像,其中每一帧图像对应了不同时刻车辆的相应运动位置,相邻两帧图像之间的时间间隔由该视频序列的帧频率决定。
所述视频序列相关帧的提取范围从摄像头监测到车辆的起始时刻开始到车辆行驶超出摄像头监控视野范围的终止时刻结束,此范围可以在提取视频序列图像之前通过函数cvSetCaptureProperty(设置视频属性)进行设置,为确定相邻两帧之间的时间间隔,可以通过函数cvGetCaptureProperty(获取视频属性)获取该视频序列的帧频率。
所述摄像头固定在一定高度(3米之上)的位置上,能够对道路上行驶的车辆进行俯视监控;摄像头在整个监控过程中外方位元素保持不变,从而能够连续监控同一视角范围内车辆的运动情况;在摄像头的监控视野范围内能够拍摄到路面上的固定参考物如人行横道、井盖或其它具有明显特征的固定区域等,以便在后序的操作中可以对其进行标定。
所述摄像头的监控视野范围是指摄像头在外方位元素保持不变的情况下所能拍摄到的整个场景范围,其中摄像头的外方位元素包括三个外方位直线元素
和三个外方位角元素
,它确定了摄像头在物方空间坐标系中的位置和朝向。
所述控制点位于固定参考物上,其像空间坐标根据以图像左顶点为原点的像空间坐标系确定,其物方空间坐标根据现场建立的二维笛卡尔直角坐标确定,每个控制点的像空间坐标及其相应的物方空间坐标保存在从MFC(微软基础类库)的基类CPoint类(点类)中派生出来的CPoint2类(扩展点类)构建的一个对象里,CPoint2类除了继承了CPoint类的属性和行为外,还封装了控制点的像空间坐标及其相应的物方空间坐标,建立了它们之间的正确映射关系。为保证能够解出所有二维DLT系数的值,应至少确定四个控制点的像空间坐标及其相应的物方空间坐标,且这四个控制点中任意三点不能共线。
所述DLT系数的解算分为两种情况:当只有四个控制点时,可首先由控制点的像空间坐标及其相应的物方空间坐标根据二维直接线性变换公式列方程组,然后通过OpenCV(开放式计算机视觉)核心模块中的API(应用程序接口)函数求解此线性方程组即可得出DLT系数的近似值;当具有四个以上控制点时,为提高精度和可靠性,可把控制点的像空间坐标
视为观测值,加入相应的偶然误差改正数
和非线性物镜畸变差
列出误差方程式,再根据最小二乘法迭代求解相应的法方程式得出DLT系数的值。
所述第三步中,所述观察点以车轮与地面的接触点为基准,且其在每一帧图像中都是清晰可见的,从而能够通过Visual C++应用程序直接在图像上确定其像空间坐标,为保证观察点在相邻两个时刻具有足够的间距,每间隔n帧图像获取一次观察点的像空间坐标,不同时刻观察点的物方空间坐标的求解分两种情况:当只有四个控制点时,由相应时刻的像空间坐标及求得的DLT系数的值根据二维直接线性变换公式列方程组,然后通过OpenCV核心模块中的API函数求解此线性方程组得到;当具有四个以上控制点时,应首先对观察点的像空间坐标进行畸变校正,再由相应时刻的校正后的像空间坐标及求得的DLT系数的值根据二维直接线性变换公式列方程组得到;上述n为大于零的整数。
所述车辆运动状态包括:车辆在任意时刻的轨迹,位移,速度和加速度。
与现有技术相比,本发明具有以下优点:
(1) 可重复测量验证,为事后的二次取证提供法律依据
由于监控录像完整地保存了车辆在相关路段的行驶情况,故能根据本发明从视频中对车辆当时的运动状态进行现场数字化重构得到车辆行驶的轨迹线、位移、速度和加速度曲线,并可对测量结果进行重复验证。
(2) 监测范围广
随着智能交通网的建立,在各个道路交叉口和繁忙路段都安装有监控摄像头,大大提高了道路交通信息的实时监控和大范围监测能力。只要安装有监控摄像头的路段,都可利用本发明进行车辆运动状态的现场数字化重构,从而实现车辆运动状态的大范围监测功能。
(3) 安装调试方便,维护费用低
本发明不需增添额外设备,只需在原有监控摄像头的基础上从监控视频中提取行驶车辆的有效信息即可实现车辆运动状态现场数字化重构。对于尚未安装监控设施的路段,监控摄像头的安装调试也很方便,维护费用低。
(4) 车辆运动状态测定精度高
由于本发明采用误差方程式有效校正了像点观测误差和非线性物镜畸变差,并通过二维直接线性变换和多项式拟合准确实现了车辆运动状态的现场数字化重构,故能得到较高的测定精度。
附图说明
图1是本发明方法的实现流程图;
图2本发明控制点标定示意图;
图3是具有四个以上控制点时的二维DLT系数求解流程图。
具体实施方式
下面结合附图对本发明的实施例作详细说明:本实施例以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
如图1所示,基于监控录像的交通事故现场数字化重构的整体流程主要包括:提取视频帧图像、进行控制点标定、求解二维DLT系数、获取观察点像空间坐标、求解观察点物方空间坐标和车辆运动状态现场数字化重构等几个步骤。下面按照***求解的先后顺序依次作详细介绍:
所述摄像头固定在一定高度(3米之上)的位置上,能够对道路上行驶的车辆进行俯视监控;摄像头在整个监控过程中外方位元素保持不变,从而能够连续监控同一视角范围内车辆的运动情况;在摄像头的监控视野范围内能够拍摄到路面上的固定参考物如人行横道、井盖或其它具有明显特征的固定区域等,以便在后序的操作中可以对其进行标定。
所述摄像头的监控视野范围是指摄像头在外方位元素保持不变的情况下所能拍摄到的整个场景范围。其中摄像头的外方位元素包括三个外方位直线元素
和三个外方位角元素
,它确定了摄像头在物方空间坐标系中的位置和朝向。
第一步,从监控视频序列中连续提取与检测车辆运动位置相关的帧,并将其保存成JPG或BMP格式的图像。
首先构建一个CvCapture(视频获取结构)类指针,然后通过OpenCV HighGUI模块中的视频处理函数cvCaptureFromFile(从文件中获取视频)将其指向监控视频文件,同时对其进行初始化和分配视频流。接着通过函数cvQueryFrame(抓取帧图像)依次抓取并返回当前监控视频序列中的一帧图像,再将其保存成JPG或BMP格式的图像,不断重复此操作直到与检测车辆运动位置相关的帧全部提取完成为止。
视频序列相关帧的提取范围从摄像头监测到车辆的起始时刻开始到车辆行驶超出摄像头监控视野范围的终止时刻结束,此范围可以在提取视频序列图像之前通过函数cvSetCaptureProperty(设置视频属性)进行设置。为确定相邻两帧之间的时间间隔,可以通过函数cvGetCaptureProperty(获取视频属性)获取该视频序列的帧频率。行驶车辆的车牌号可以从监控视频图像中直接读取出来。
第二步,对每幅帧图像依次进行控制点标定,由控制点的像空间坐标及其相应的物方空间坐标根据二维直接线性变换公式采用最小二乘法解算出相应的DLT系数的值。
如图2所示,本实施例中选择图像中的人行横道作为固定参考物,并对其进行控制点标定。控制点像空间坐标系的原点建立在图像的左顶点处,其x轴沿水平方向向右为正,其y轴沿竖直方向向下为正;控制点物方空间坐标系的原点建立在人行横道的一个角点
处,其X轴沿人行横道的短边向右为正,其Y轴沿人行横道的长边向下为正。如图中所示,选人行横道的角点
等作为控制点进行标定,并将其像空间坐标及其相应的物方空间坐标保存在从MFC的基类CPoint类派生出来的CPoint2类创建的一个对象里。
对图像中的固定参考物进行控制点标定后,就可以根据控制点的个数选择合适的方法求解二维DLT系数的值。当只有四个控制点时,可首先由控制点的像空间坐标及其相应的物方空间坐标根据二维直接线性变换公式列方程组(1),然后通过OpenCV核心模块中的API函数cvSolve(线性方程组求解)求解此线性方程组即可得出DLT系数的近似值。
(1)
其中:
分别为第n个控制点在像空间的横坐标和纵坐标;
分别为第n个控制点在物方空间的横坐标和纵坐标;
为二维直接线性变换系数。
当具有四个以上控制点时,为提高精度和可靠性,可把控制点的像空间坐标
视为观测值,加入相应的偶然误差改正数
和非线性物镜畸变差
列出误差方程式(2), 再根据最小二乘法迭代求解相应的法方程式(4)得出DLT系数的值。
为像空间坐标;
为像主点在像空间坐标系内的坐标;
为待定的对称性物镜畸变系数;
为待定的非对称性物镜畸变系数;
为向径,其值为:
。若只取
,则相应的误差方程式用矩阵的形式表示为:
根据最小二乘间接平差原理,与该误差方程式对应的法方程式为:
由于误差方程式为非线性的,因此整个解算过程必须采用迭代法,其详细求解流程如图3所示。
第三步,选取车辆中某一个轮子与地面的接触点作为观察点,通过Visual C++应用程序从连续的帧图像中依次获取该观察点在不同时刻的像空间坐标,并结合求得的二维DLT系数的值分别解算相应时刻该观察点的物方空间坐标。
如图2所示,选取小汽车左前轮与地面的接触点作为观察点。此观察点像空间坐标可以首先通过Visual C++应用程序依次将提取到的帧图像加载到窗口应用程序的客户区,然后通过鼠标、键盘或触摸屏等直接在图像上选择得到。为保证观察点在相邻两个时刻具有足够的间距,每间隔n(n为大于零的整数)帧图像获取一次观察点的像空间坐标。
不同时刻观察点的物方空间坐标则由相应时刻的像空间坐标及求得的DLT系数的值根据二维直接线性变换公式列方程组(5),然后通过OpenCV核心模块中的API函数cvSolve求解此线性方程组得到。当具有四个以上控制点时,应首先对观察点的像空间坐标进行畸变校正,分别用
和
的值作为(5)式中的
和
的值代入求解即可。
其中:
为分别为观察点的像空间的横坐标和纵坐标;
分别为观察点在物方空间的横坐标和纵坐标;
为二维直接线性变换系数。
第四步,对车辆运动状态进行现场数字化重构。首先根据不同时刻观察点的物方空间坐标通过多项式拟合得到车辆运动的轨迹线,然后由此轨迹线进行对弧长的曲线积分求出车辆运动的位移曲线,车辆运动的速度曲线和加速度曲线则分别由该位移曲线的一阶导数和二阶导数确定。
其中:n为多项式的次数;
为多项式系数。
分别为观察点在物方空间的横坐标和纵坐标。
本实施例采用Visual C++平台开发,通过良好的Windows GUI(Windows 图形用户接口)界面与用户进行交互。在原有道路交通监控摄像头的基础上,通过从监控视频中提取有效信息,实现了车辆运动状态现场数字化重构。该方法不但监控范围广,而且安装调试方便,成本低;还可重复测量验证,为事后的二次取证提供法律依据。