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