摘 要:在运用视频资料计算车速时,逐帧播放视频过程常遇到跳帧或停顿等异常现象,而视频播放器本身所带的读取文件信息相关功能软件却不能正确识别跳帧或停顿现象,导致其提供的文件信息和实现信息不符,尤其计算车速所必需的帧速率,如不能正确地识别视频的实际帧速率,计算结果将得不到保证。基于此问题,文章将通过视频跟踪点坐标值像素差之间的数值大小关系来分析、计算视频的实际帧速率,为使视频资料计算车速时误差尽可能小、使计算值尽可能地接近实际值提供了一种切实可行的方法。
关键词:视频车速;帧速率;像素差值;视频停顿;视频掉帧;
作者简介:丁星兵(1983—),男,本科,高级工程师,研究方向:肇事车辆车速鉴定。;
基金:云南省交通科学研究院有限公司科技创新项目“基于特殊视频车速计算方法研究”(JKYZLX-2021-39);
0 引言在通过视频计算车速过程中,常常遇到视频播放不流畅,播放过程中有停顿、跳跃或者整个视频是加速(或减速)播放现象,也常遇到同一视频使用不同播放器打开时显示视频帧速率却不一样。
为了解决不同播放器显示帧速率不一致问题,找出视频实际的帧速率,该文将阐述通过视频像素差值判断视频是否有跳帧和(或)停顿现象,并为视频跳帧和(或)停顿后如何计算视频的实际帧速率提供一种行之有效的解决方法。
1 方法论用运动跟踪软件Kinovea打开视频文件,选取目标车辆为跟踪对象,在跟踪对象上选取几乎在同一水平高度有明显特征且易于分辨的两个特征点,逐帧跟踪特征点随视频移动的位置,导出跟踪点的X轴、Y轴像素坐标值和时间坐标。
分别计算X轴及Y轴值终值减去初值的绝对值,选择两绝对值数值大的坐标值为计算数据。确定X轴(或Y轴)为计算数据后,依次计算相邻两个数据的差值,找出相邻两个数据差值的最小值,如果某个差值近似于其他差值的n倍,说明此差值处前后两帧间跳了n-1帧,以此类推,可以确定跳帧的位置和帧数;如果差值为“0”,说明此差值视频有停顿。
2 视频跳帧数据处理运用Kinovea软件对某小型普通客车(以下简称甲车)肇事碰撞前一段时间内,在甲车前、后轮轮芯处分别设置跟踪点,逐帧播放直视频,并导出甲车前、后轮轮芯X轴、Y轴像素坐标值和时间坐标原始值Excel数据表,如图1所示。
观察甲车坐标数据,在X轴上数据变化较大,在Y轴上变化较小,故实例中选取X轴为计算数据。从数据变化说明甲车在X轴线方向上的位移大于Y轴上的位移,从视频中车辆运行轨迹也能证实这一结论。
在数据表中,将X轴数据前值减后值即X0-X1、X1-X2、X2-X3等以此类推,将连续两坐标值的差值分别放于X0、X1、X2、X3等数值后。
观察发现数值总体呈现递减排列,此为Kinovea软件视频像素“近大远小”现象,同时也观察到X轴数据前值减后值所得的结果忽大忽小,根据车辆行驶时在极短时间内是近似匀速运动的原理,理论上差值所得结果应为或递增或递减或均等数列,数据一致性不强说明视频有跳帧和(或)停顿现象。
仔细观察发现,数值排列为“小—大大—小—大大”循环,且“大”的近似“小”两倍左右。根据上述方法论,数值“小”的即为该视频真正的一帧,而数值近似“小”的两倍处说明视频播放过程中跳了一帧,原视频此处应为2帧。
同样通过图1,开始跟踪甲车运行轨迹时,序号为“0”,此时数据表上显示时间为“0:00:55:63”,当时间走过一秒即“0:00:56:63”时序号为“15”。这就是Kinovea软件因不能识别出视频有“跳帧”现象,默认此视频帧速率为15帧的原因。
图1 甲车跟踪原始数据、X轴数据差值计算 下载原图
确定有“跳帧”现象视频的原始帧速率,需在“跳帧”处补上所掉的帧,“跳帧”处的坐标值近似等于“跳帧”处连续前、后坐标值之和除以n 1,“跳帧”处Xi的坐标值为:
式中,Xi-1——跳帧处前一帧坐标值;Xi——跳帧处坐标值;Xi 1——跳帧处后一帧坐标值;n——跳帧数。
经分析该视频“跳帧”数n=1,将数值代入公式(1),以此类推,在所有“跳帧”处均补上帧,所得结果如图2所示。
补帧后将X轴数据前值减后值即X10-X11、X11-X12、X12-X13等以此类推求连续两坐标值的差值分别放于X10、X11、X12、X13等数值后,此时所得数值几乎为一个连续递减过程,说明这一数列是连续有效的,不再存在“跳帧”现象。
数据处理完成后,当时间走过1 s即“0:00:56:63”时序号为“25”,说明此视频真正的帧速率为25 fps,视频播放时一秒内跳了10帧。
3 车速计算3.1 补帧后计算车速利用运动跟踪Kinovea软件,对甲车肇事前后运行轨迹进行逐帧跟踪,在需要的时间段在甲车右侧前、后车轮中心处设置跟踪点,逐帧播放视频,直至结束跟踪,利用运动跟踪软件导出各个跟踪点在视频图像中的X、Y轴坐标值及各坐标的时间坐标值。
经分析计算,视频的实际帧速率为25帧,每两帧之间的时间间隔为1/25 s。以轴距为标尺,经测量,标尺l=2.68 m。
根据《基于视频图像的车辆行驶速度技术鉴定》(GA/T 1133—2014)[1]及《基于视频图像的道路交通事故分析方法》(DB53/T 806—2016)[2]中相关条款的规定,根据导出处理后的前、后车轮中心X坐标值和时间坐标值,根据如下公式(2),计算出甲车行驶过一个轴距的平均速度。用这种方法,每间隔1/25 s可以计算出一组连续的平均速度。
式中,v——车辆行驶过一个标尺的平均速度(km/h);l——标尺长度的数值(m);n——帧数;f——帧频率(s);X(0) q——0帧时前特征点跟踪坐标的X轴数值;X(n) h——n帧时后特征点跟踪坐标的X轴数值;X(n 1) h——n 1帧时后特征点跟踪坐标的X轴数值。
根据匀变直线运动平均速度等于时间中点的瞬时速度的特点,利用上述计算速度值,可绘制如图3所示的时间-速度散点图,将未补帧前原视频的车速计算值一同汇入时间-速度散点图。
图2 X轴数据补帧后数值 下载原图
图3 甲车补帧后和未补帧(原视频)车速合并图 下载原图
3.2 补帧后和未补帧计算车速比较将甲车补帧后和未补帧(原视频)车速进行综合比较如图3。
由图3可见同一起事故中甲车的两组车速数据趋势大体相同,但未补帧前车速数值跳动较大,而补帧后车速数值几乎呈一条光滑曲线,数据中少数个别数据点有跳动现象,多为视频图像分辨率较低、视频图像模糊或视频有抖动现象,在跟踪过程中由人为原因引起的跟踪点位选择不一致所导致的误差。
4 视频停顿数据处理选取另一播放过程有停顿现象的视频文件,运用Kinovea软件对某型号小型轿车(以下简称丙车)肇事碰撞过程内,在丙车前、后轮轮芯处分别设置跟踪点,逐帧播放直至碰撞结束,导出数据表,如图4。
观察丙车运行坐标数据,在X轴上数据变化较大,在Y轴上变化较小,故实例中选取X轴为计算数据。
将X轴数据前值减后值即X0-X1、X1-X2、X2-X3等以此类推,将连续两坐标值的差值分别放于X1、X2、X3、X4等数值后(见图4)。观察发现数值总体呈现递增排列,未见有数值是其前、后数值的倍数关系,说明视频播放过程中没有跳帧现象,同时也看数值中有许多“0”(见图4),差值为“0”处前后两帧X轴和Y轴数值完全一致(见图4),说明此处视频图像未走动,这就是视频逐帧播放过程有停顿现象的原因,但视频时间却与等差关系在跳动。
图4 丙车跟踪数据 下载原图
同样通过图4,开始跟踪丙车运行轨迹时,序号为“0”,此时数据表上显示时间为“0:00:02:72”,当时间走过一秒即“0:00:03:72”时序号为“25”,这就是Kinovea软件因不能识别出视频停顿现象,默认此视频帧速率为25帧的原因,然而经过上述分析此视频有停顿现象,真正帧速率并不是25 fps。
要确定视频真实帧速率,需将视频停顿(即重复无效)的帧删除,再计算X轴或Y轴连续两坐标值的差值的变化规律,若差值连续、平顺删除所停顿的帧后,剩下的即为视频真正的帧速率,若差值存在倍数关系,说明视频播放过程中有跳帧现象,还需将所跳帧补上后才为视频真实的帧速率。
将图5中丙车跟着数据中停顿帧删除,数据处理完成后得图6,可见开始跟踪丙车运行轨迹时,序号为“0”,此时时间为“0:00:02:72”,当时间走过一秒即“0:00:03:72”时序号为“20”,说明此视频真实的帧速率为20帧,而不是文件信息所显示的25帧,视频播放时一秒内停顿了5帧。删除停顿帧后再将X轴数据前值减后值未见倍数关系,说明此视频仅存在停顿现象,不存在跳帧现象。
用上述3.1条车速计算方法,计算丙车原始数据及处理后数据的车速,车速合并对比如图6所示。
由图6可见丙车原始数据及处理后数据两次计算车速数据趋势大体相同,但原始数据车速数值跳动较大,且图像停顿处车速数值不连续存在断点现象,为图像停顿处X、Y轴坐标值前后值相等,即Xn-Xn 1=0,YnYn 1=0,运用公式(2)计算车速时,因公式分母为0致使公式不能计算所致。
而处理后数据车速数值几乎呈一条光滑曲线,数据中少数个别数据点有跳动现象,多为视频图像分辨率较低、视频图像模糊或视频有抖动现象,在跟踪过程中由人为原因引起的跟踪点位选择不一致所导致的误差。
5 视频跳帧和停顿数据综合处理上述描述的是仅有跳帧或停顿现象,而当视频同时存在跳帧和停顿现象时,因两种情况同时存在一跳一停现象,会出现两种结果:
(1)视频跳帧数和掉帧数一致,导致视频文件信息显示的帧速率与视频实际帧速率一致,此种现象较少。
(2)视频跳帧数和掉帧数不一致,导致视频文件信息显示的帧速率与视频实际帧速率不一致,此种现象较为常见。
图5 丙车跟踪数据处理 下载原图
图6 丙车跟踪数据处理 下载原图
跳帧数和掉帧数一致时只是时间一致,而跟踪点的数据不是有规律的连续,若不进行数据处理直接计算车速,车速数值间跳动较大,而车辆行驶时在极短时间内是近似匀速运动,若极短时间内连续数值跳动较大说明是不符合逻辑的。
跳帧数和掉帧数不一致时更需要按上述车速计算方法,先将停顿的帧删除,在根据掉帧的倍数补上所掉的帧,才使计算结果更准确,更接近真实值。
经验证,为了客观、真实、准确、连续地计算车速,当视频同时存在跳帧和停顿现象时,不管跳帧数和掉帧数是否一致,均需进行数据处理后才能计算车速。
6 结语如何准确使用有停顿、掉帧视频来计算车辆的行驶速度,是道路交通事故鉴定工作的一大技术难题,该文创新性地提出了通过视频像素差值判断停顿、掉帧及停顿、掉帧后车速计算方法,文中深入分析了视频图像帧速率异常的原因及停顿、掉帧后计算视频真实帧速率的处理办法,并通过实例完整演示计算肇事车辆的行驶速度。经大量验证实验和实际运用的检验,采用此方法可以客观、真实、准确、连续计算出车辆的行驶速度,为视频车速计算提供了强大的保障,也为视频车速计算增添了一种行之有效的新方法。
参考文献[1] 基于视频图像的车辆行驶速度技术鉴定:GA/T 1133—2014[S].北京:中华人民共和国公安部, 2014.
[2] 基于视频图像的道路交通事故分析方法:DB53/T806—2016[S].昆明:云南省质量技术监督局, 2016.
声明:我们尊重原创,也注重分享。有部分内容来自互联网,版权归原作者所有,仅供学习参考之用,禁止用于商业用途,如无意中侵犯了哪个媒体、公司、企业或个人等的知识产权,请联系删除(邮箱:glyhzx@126.com),另本头条号推送内容仅代表作者观点,与头条号运营方无关,内容真伪请读者自行鉴别,本头条号不承担任何责任。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved