





摘要 在運用視頻資料計算車速時,逐幀播放視頻過程常遇到跳幀或停頓等異?,F象,而視頻播放器本身所帶的讀取文件信息相關功能軟件卻不能正確識別跳幀或停頓現象,導致其提供的文件信息和實現信息不符,尤其計算車速所必需的幀速率,如不能正確地識別視頻的實際幀速率,計算結果將得不到保證?;诖藛栴},文章將通過視頻跟蹤點坐標值像素差之間的數值大小關系來分析、計算視頻的實際幀速率,為使視頻資料計算車速時誤差盡可能小、使計算值盡可能地接近實際值提供了一種切實可行的方法。
關鍵詞 視頻車速;幀速率;像素差值;視頻停頓;視頻掉幀
中圖分類號 TP391.41 文獻標識碼 A 文章編號 2096-8949(2023)15-0001-05
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 軟件因不能識別出視頻有“ 跳幀” 現象,默認此視頻幀速率為153.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,開始跟蹤丙車運行軌跡時,序號為“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,Yn?Yn+1=0,運用公式(2)計算車速時,因公式分母為0 致使公式不能計算所致。
而處理后數據車速數值幾乎呈一條光滑曲線,數據中少數個別數據點有跳動現象,多為視頻圖像分辨率較低、視頻圖像模糊或視頻有抖動現象,在跟蹤過程中由人為原因引起的跟蹤點位選擇不一致所導致的誤差。
5 視頻跳幀和停頓數據綜合處理
上述描述的是僅有跳幀或停頓現象,而當視頻同時存在跳幀和停頓現象時,因兩種情況同時存在一跳一?,F象,會出現兩種結果:
(1)視頻跳幀數和掉幀數一致,導致視頻文件信息顯示的幀速率與視頻實際幀速率一致,此種現象較少。
(2)視頻跳幀數和掉幀數不一致,導致視頻文件信息顯示的幀速率與視頻實際幀速率不一致,此種現象較為常見。
跳幀數和掉幀數一致時只是時間一致,而跟蹤點的數據不是有規律的連續,若不進行數據處理直接計算車速,車速數值間跳動較大,而車輛行駛時在極短時間內是近似勻速運動,若極短時間內連續數值跳動較大說明是不符合邏輯的。
跳幀數和掉幀數不一致時更需要按上述車速計算方法,先將停頓的幀刪除,在根據掉幀的倍數補上所掉的幀,才使計算結果更準確,更接近真實值。經驗證,為了客觀、真實、準確、連續地計算車速,當視頻同時存在跳幀和停頓現象時,不管跳幀數和掉幀數是否一致,均需進行數據處理后才能計算車速。
6 結語
如何準確使用有停頓、掉幀視頻來計算車輛的行駛速度,是道路交通事故鑒定工作的一大技術難題,該文創新性地提出了通過視頻像素差值判斷停頓、掉幀及停頓、掉幀后車速計算方法,文中深入分析了視頻圖像幀速率異常的原因及停頓、掉幀后計算視頻真實幀速率的處理辦法,并通過實例完整演示計算肇事車輛的行駛速度。經大量驗證實驗和實際運用的檢驗,采用此方法可以客觀、真實、準確、連續計算出車輛的行駛速度,為視頻車速計算提供了強大的保障,也為視頻車速計算增添了一種行之有效的新方法。
參考文獻
[1] 基于視頻圖像的車輛行駛速度技術鑒定:GA/T 1133—2014[S]. 北京:中華人民共和國公安部, 2014.
[2] 基于視頻圖像的道路交通事故分析方法: DB53/T806—2016[S]. 昆明:云南省質量技術監督局, 2016.