張航,盧小平,張曉強,路澤忠
(1.河南理工大學 礦山空間信息技術國家地理信息局重點實驗室,河南 焦作 454003;2.黃河勘測規(guī)劃設計研究院有限公司,鄭州 450003)
礦產(chǎn)資源是人類賴以生存和發(fā)展的物質(zhì)基礎。針對礦區(qū)違法開采屢禁不止,相關部門的監(jiān)測難度也越來越大的現(xiàn)象,可以利用無人機遠距離操控的特點解決此難題,并對采集的視頻數(shù)據(jù)進行三維重建,為基層部門執(zhí)法監(jiān)測提供了強有力的證據(jù)支持[1-2]。由于視頻影像每秒包含多達24幀連續(xù)圖像,存在大量的冗余數(shù)據(jù),極大地影響了監(jiān)測區(qū)域三維重建的效率[3]。因此,如何從視頻影像快速提取出反映視頻主要事件的關鍵幀影像,利用較少的幀來代表整個視頻序列,是國內(nèi)外學者研究的熱點[4-9]。
Li[10]、Szeliski[11]等采用逐幀計算的方法可以精確獲取滿足要求的關鍵幀,但由于該方法需要逐幀計算,效率太低,無法滿足實效性要求較高的應用領域。Fadaeieslam[12-13]等通過 Kalman濾波預測影像4個角點的運行軌跡,然后計算相鄰幀圖像之間的重疊度。但此方法角點位置的精度會隨著拼接范圍的增大而降低,因而也會影響Kalman濾波提取關鍵幀的精度。劉永等[14]提出了一種分層式自適應幀采樣的關鍵幀提取算法,對關鍵幀進行二次篩選,該方法可獲取滿足重疊度需求的關鍵幀,但需要對整個視頻序列進行搜索,且需建立重疊度分段的線性模型。曹長青[15]、蔣元友[16]、劉華詠[17]等提出了基于內(nèi)容聚類的關鍵幀提取算法,該算法對所有的幀進行聚類,并計算剩余幀與初始關鍵幀的變化值,如果變化值大于設定的閾值,則選取該幀為關鍵幀,但此算法選取的關鍵幀不一定有代表性,且計算量大,效率低。Hartley等[18]提出了基于采樣的關鍵幀提取算法(SKF),該算法等時間差的從視頻中抽取關鍵幀,其算法相對簡單,但視頻的最佳關鍵幀提取時間很難確定,容易造成關鍵幀的缺失或數(shù)據(jù)的冗余。
上述基于圖像信息及時間信息提取關鍵幀的方法,存在計算量大和提取信息冗余等問題。因此,本文提出一種基于無人機瞬時航飛速度的關鍵幀提取方法,該方法根據(jù)無人機飛行高度、飛行速度、像元尺寸、相機焦距等參數(shù)來動態(tài)計算抽取關鍵幀的時間間隔。在保證重疊度的同時又避免了信息的冗余,且運算簡單,針對抽取有瞬時速度信息的航飛視頻影像的關鍵幀有良好的效果。
低空無人機航向重疊一般為70~85%,旁向重疊一般為35~55%。因此,可以根據(jù)航高、飛行速度、傳感器參數(shù)、航向重疊度來動態(tài)計算關鍵幀之間的時間間隔?;陲w行速度提取關鍵幀的原理如下:
相鄰任意幀之間的時間間隔為1/ft,故航向方向上相鄰視頻幀之間的距離△L為:
ΔL=V/ft
(1)
再根據(jù)攝影比例尺公式[19]:
(2)
相鄰視頻幀之間的重疊度:
ΔP=1-ΔL/LD
(3)
相鄰n幀視頻幀之間的重疊度:
P=1-n×ΔL/LD
(4)
當要求重疊度為P時,需要間隔的視頻幀數(shù)為n,且視頻幀數(shù)為整數(shù)值,因此用到向下取整函數(shù)floor:
(5)
相鄰n幀所需要用的時間為:
(6)
式中:f、H、V、ft、P分別為相機焦距、飛行航高、飛機的速度、相機拍攝幀率、航向重疊度;D、WD、LD、△L分別為視頻幀航向上像素個數(shù)、像素尺寸、視頻幀航向方向?qū)牡孛婢嚯x、航向方向上相鄰視頻幀之間的地面距離。
無人機監(jiān)測礦區(qū)的具體技術步驟如下:
①航拍視頻數(shù)據(jù)預處理。對無人機航拍視頻影像中內(nèi)嵌的地理編碼信息提取,得到編碼信息中有關無人機的瞬時飛行速度、飛行航高等信息。
②初始關鍵幀的設定。根據(jù)獲取的視頻流數(shù)據(jù),選擇某一幀影像作為初始關鍵幀。
③計算關鍵幀時間間隔。由無人機的瞬時飛行速度、飛行航高、航向重疊度以及相機的相關參數(shù)計算抽取關鍵幀的時間間隔。
④計算時間約束閾值。由無人機的平均飛行速度、飛行航高計算抽取關鍵幀間隔的時間閾值。
⑤確定關鍵幀影像。判斷由步驟③計算得出的關鍵幀時間間隔是否在由步驟④得出的時間約束閾值內(nèi)。若在,則選定該幀為關鍵幀,否則依次跳過抽幀間隔大于時間約束閾值的幀,直到抽幀間隔小于時間約束閾值,并把此幀作為步驟②的初始關鍵幀進行循環(huán),直到讀取視頻的最后一幀影像。
⑥影像匹配與三維建模。根據(jù)獲取的關鍵幀影像提取特征點,并基于特征點進行影像的匹配,完成地表三維建模。
本文選擇鄂爾多斯某露天非法開采的礦區(qū)作為實驗研究區(qū)域,該礦區(qū)南北長約0.35 km,東西寬約0.34 km,面積約0.12 km2。礦區(qū)內(nèi)有簡易平房、道路、車輛、煤場、樹木等建(構)筑物和其他人工設施。當天天氣晴朗,風力小于4級,且區(qū)域地勢起伏較大,側(cè)風飛行。
根據(jù)要監(jiān)測區(qū)域的衛(wèi)星影像圖量測出礦區(qū)最低海拔和最高海拔近似分別為1 256 m和1 352 m,得出該礦區(qū)高差大致為96 m,為無人機安全飛行提供了參考依據(jù)。
本次飛行采用的無人機為大疆 PHANTOM 4 PRO,其相機為1英寸CMOS,焦距為24 mm。其飛行視頻數(shù)據(jù)內(nèi)嵌有相關的地理坐標信息和飛行速度信息。如圖1所示,其中110.245 3為經(jīng)度,39.593 2為緯度,15為衛(wèi)星個數(shù),D 680.30 m為飛機到起飛點的水平距離,H 253.90 m為飛機到起飛點的豎直距離,H.S 2.30 m/s為水平速度,V.S 0.00 m/s為豎直速度。
圖1 內(nèi)嵌地理信息的視頻數(shù)據(jù)
無人機飛行信息在視頻流存儲的主流方向有2種:一種是將視頻幀位置與地理信息位置對應,將相應的數(shù)據(jù)存儲在外部文件或者外部數(shù)據(jù)庫中,即為外部融合;另外一種是在視頻數(shù)據(jù)采集過程中,對每幀圖像進行編碼,將相對應的地理信息數(shù)據(jù)作為影像的屬性信息編碼內(nèi)嵌到視頻中,即為內(nèi)部融合。本次實驗所采用的大疆無人機位置和速度信息編碼為內(nèi)部融合方式,對視頻中的飛行信息進行提取,提取的結果如圖2所示。
圖2 提取的飛行信息
依據(jù)提取出的瞬時飛行速度信息和相機的相關參數(shù),并將航向重疊度設置為80%,代入上述原理公式即可計算抽取關鍵幀的時間間隔。因為提取出的飛行速度信息為瞬時速度信息,不能準確反映無人機飛行的狀態(tài)過程。所以對相鄰9個速度加權求平均,作為帶入公式的速度值,求取所抽關鍵幀的時間間隔,對求取的相鄰的9個關鍵幀時間間隔加權求平均作為實際抽取關鍵幀的時間間隔,得出的部分結果如表1所示。
表1 速度與關鍵幀的關系
以第9秒作為初始關鍵幀按上述方法進行抽取,可以得出要抽取的關鍵幀的所對應時間軸的秒數(shù)為33,41,48,57,70……。但此方法要對抽取間隔進行預判,如果飛機在飛行過程中出現(xiàn)懸停,按照上述方法計算出的抽幀間隔會非常大,所以要對抽幀間隔按下述公式進行閾值約束。
(7)
(8)
式中:Vave為整個航飛過程中的均值,為3.57 m/s;T為時間約束閾值,求解可得為28.5 s,按向下取整設置為28 s若抽幀過程中抽取關鍵幀的間隔大于28 s,跳過處理。直到遇見抽取關鍵幀間隔小于28 s,把此幀重新設置為初始幀。按照上述方法一共抽取34幀關鍵幀,抽取的部分關鍵幀影像如圖3所示,其中DJI為無人機的品牌,中間四位數(shù)字0003為視頻號,后三位數(shù)字為抽取視頻關鍵幀的序號。
圖3 抽取的部分關鍵幀圖像
實驗采用Agisoft Photoscan Profession軟件建模,此軟件為一款基于影像數(shù)據(jù)生成三維模型的專業(yè)軟件,經(jīng)過對齊照片、建立密集點云、生成格網(wǎng)、生成紋理、生成瓦片模型一系列操作,可得到如圖4所示的三維模型。
圖4 生成的三維模型
按照本文方法提取出的影像關鍵幀個數(shù)為34幀,而按等時差方法提取關鍵幀,提取間隔設為3 s,提取的關鍵幀數(shù)為173幀。由此可見,采用本文方法大大減少了數(shù)據(jù)的冗余。為驗證本文算法的有效性,以時效性和信息量這2個指標對本文算法評價。
在同一電腦配置下,利用等時差算法和本文算法執(zhí)行各步驟所需時間如表2所示。采用本文的算法提取的關鍵幀進行地表三維建模所需時間僅為等時差法提取關鍵幀建模時間的1/5,極大提高了三維重建的效率。對比通過本文算法提取的關鍵幀建立的三維模型(圖4)和通過等時差法提取關鍵幀建立的三維模型(圖5)可知,本文的算法并沒有造成關鍵幀的丟失,在保證處理效果的同時減少了數(shù)據(jù)的處理量,對信息量并未造成太大影響。
表2 等時差關鍵幀提取算法與本文算法所耗時間對比
圖5 等時差法提取關鍵幀生成的紋理信息圖
本文從消費級無人機監(jiān)測非法開采的礦區(qū)為出發(fā)點,以實拍的視頻影像為數(shù)據(jù)源,經(jīng)過航飛視頻內(nèi)部地理信息數(shù)據(jù)的提取處理,再基于瞬時航飛速度進行關鍵幀提取,極大地減少了關鍵幀的數(shù)量,并用提取的關鍵幀圖片重建了逼真的三維場景模型,縮短了三維建模的時間。
盡管本文的方法能夠提高三維重建的效率,但本文方法也會偶爾存在抽幀間隔偏大的情況,實際航飛過程中無人機的飛行路線也是多變的,需要針對更復雜的飛行路線加以改進抽幀算法。