邰建豪,楊 冉
(1.河南財(cái)經(jīng)政法大學(xué) 資源與環(huán)境學(xué)院,鄭州 450046; 2.河南財(cái)經(jīng)政法大學(xué) 城鄉(xiāng)數(shù)據(jù)挖掘院士工作站,鄭州 450046)
無人機(jī)傾斜攝影技術(shù)是通過在無人機(jī)上搭載同一類型或者不同類型的多臺(tái)傳感器,從而實(shí)現(xiàn)多個(gè)角度采集影像,得到目標(biāo)地物更加全面、準(zhǔn)確信息的技術(shù)[1-3]。它突破了傳統(tǒng)正射影像只能從垂直方向入射的局限,通過將多臺(tái)傳感器搭載在無人機(jī)飛行平臺(tái)上,可以同時(shí)從一個(gè)垂直和4個(gè)傾斜共5個(gè)角度[4-5](正射、前視、后視、左視、右視)拍攝地物,從而采集目標(biāo)全方位影像。該技術(shù)不僅可以獲得目標(biāo)的垂直影像,還能獲得具有目標(biāo)地物立面紋理信息的傾斜影像[6]。最后,通過構(gòu)建模型,將用戶引入一個(gè)符合人眼視覺的真實(shí)直觀世界[7]。由于傾斜攝影測量技術(shù)多角度拍攝的特點(diǎn),無人機(jī)在臨近研究區(qū)域邊界飛行時(shí),垂直鏡頭拍攝的是研究區(qū)域邊界部分,而有些傾斜鏡頭拍攝的部分是研究區(qū)域外的地物,在進(jìn)行空中三角測量計(jì)算和三維建模時(shí)這些圖像也會(huì)參與,從而大大降低空中三角測量計(jì)算和三維建模效率。因此刪除傾斜攝影相機(jī)冗余數(shù)據(jù)十分必要,但目前該領(lǐng)域的研究較少。有個(gè)別5鏡頭傾斜相機(jī)生產(chǎn)廠家在自有品牌產(chǎn)品中加入了冗余數(shù)據(jù)刪除功能,但僅限于自有品牌的相機(jī),且不能通用,其處理方法也沒有公開發(fā)表,例如飛馬相機(jī)和賽爾相機(jī)[8-9]。張軍等人設(shè)計(jì)了基于ArcgisEngine開發(fā)的冗余數(shù)據(jù)處理方法,但該方法自動(dòng)化程度較低,需要大量人工干預(yù),操作過程中容易出現(xiàn)錯(cuò)誤[10]。
文中以5鏡頭傾斜攝影測量為例,建立了一種通用型5鏡頭傾斜相機(jī)冗余數(shù)據(jù)刪除模型,利用無人機(jī)定位導(dǎo)航系統(tǒng)(Position Oriental System,POS)數(shù)據(jù),結(jié)合相機(jī)參數(shù)和飛行參數(shù),建立了數(shù)學(xué)模型,求出每張圖像在地面上的4個(gè)角點(diǎn)的投影坐標(biāo)。最后利用射線法解算圖像角點(diǎn)坐標(biāo)和測區(qū)范圍的空間包含關(guān)系,從而確定圖像是否有效,實(shí)現(xiàn)冗余數(shù)據(jù)的刪除。
由于無人機(jī)傾斜攝影是多鏡頭的(以5鏡頭為例進(jìn)行闡述),當(dāng)無人機(jī)在臨近研究區(qū)域邊界飛行進(jìn)行拍攝時(shí),垂直鏡頭拍攝的地區(qū)是研究區(qū)域的邊界,且至少有1個(gè)傾斜鏡頭拍攝到的地物是在研究區(qū)域外的,所以得到的圖像是無效的,這些無效圖像在進(jìn)行三維建模時(shí)是無用的,即冗余數(shù)據(jù)。如果不對(duì)這些冗余數(shù)據(jù)進(jìn)行剔除,會(huì)很大程度上增加空中三角測量計(jì)算和三維建模過程中數(shù)據(jù)量的處理,從而降低空三和三維建模效率。所以刪除在研究區(qū)域外的冗余數(shù)據(jù)可以提高空中三角測量和三維建模效率。
為更直觀理解此實(shí)驗(yàn)的必要性,假設(shè)飛行范圍和測區(qū)范圍一樣,做簡單示意圖如圖1所示,當(dāng)無人機(jī)在測區(qū)邊界飛行時(shí),只有一個(gè)鏡頭拍攝的圖像落在了測區(qū)之內(nèi),其他4張圖像都落在測區(qū)之外,屬于冗余數(shù)據(jù)。本實(shí)驗(yàn)所刪除的圖像都是類似于圖1中在測區(qū)范圍之外的圖像。
2.1.1 圖像中心點(diǎn)投影坐標(biāo)的計(jì)算模型
根據(jù)傾斜攝影5鏡頭的原理,可以畫出中心投影點(diǎn)計(jì)算的模型,其中4個(gè)傾斜鏡頭的傾斜角度都是45°,正射方向的鏡頭的中心點(diǎn)投影到地面上的坐標(biāo)和相機(jī)拍攝圖像時(shí)的坐標(biāo)是一樣的,所以不用考慮。因無人機(jī)自帶POS數(shù)據(jù)中位置是用經(jīng)緯度表示的,需要換算成長度單位m。經(jīng)緯度和距離的關(guān)系:1經(jīng)度≈111 000×cos(當(dāng)?shù)鼐暥?,1緯度≈111 000。航向與正北方向的角度可以根據(jù)前后兩張圖像拍攝時(shí)的坐標(biāo)來確定。POS文件里的高度是海拔高度,實(shí)際的飛機(jī)的航高還要考慮測區(qū)平均高程,即航高=海拔高度-測區(qū)平均高程。左視和右視鏡頭中心點(diǎn)的投影坐標(biāo)與相機(jī)拍攝時(shí)的坐標(biāo)位置關(guān)系如圖2所示。
圖2 左視、右視鏡頭中心投影點(diǎn)示意圖
于是可以得到如下變量:
航向偏離正北的角度:
(1)
左鏡頭圖像中心投影點(diǎn)的經(jīng)度:
(2)
左鏡頭圖像中心投影點(diǎn)的緯度:
(3)
右鏡頭圖像中心投影點(diǎn)的經(jīng)度:
(4)
右鏡頭圖像中心投影點(diǎn)的緯度:
(5)
表1 文中數(shù)學(xué)模型所用符號(hào)說明
前視、后視鏡頭中心點(diǎn)的投影坐標(biāo)與相機(jī)拍攝時(shí)的坐標(biāo)位置關(guān)系如圖3所示。
圖3 前視、后視鏡頭中心投影點(diǎn)示意
于是可以得到如下變量:
前鏡頭圖像中心投影點(diǎn)的經(jīng)度:
(6)
前鏡頭圖像中心投影點(diǎn)的緯度:
(7)
后鏡頭圖像中心投影點(diǎn)的經(jīng)度:
(8)
后鏡頭圖像中心投影點(diǎn)的緯度:
(9)
2.1.2 圖像4個(gè)角點(diǎn)投影坐標(biāo)的計(jì)算模型
在計(jì)算模型中需要確定焦距、航高、傳感器尺寸等飛行參數(shù)和相機(jī)參數(shù),并且確定如下數(shù)學(xué)關(guān)系:焦距/航高=傳感器尺寸/地面邊長,單位統(tǒng)一用m表示。根據(jù)航向和像素?cái)?shù)可以得知圖像在地面上的投影的形狀為向左傾斜的長方形,傾斜角度和航向偏離正北的角度是相同的。左上角點(diǎn)的坐標(biāo)計(jì)算模型示意圖如圖4所示,根據(jù)幾何關(guān)系可知,左上角點(diǎn)和中心點(diǎn)的經(jīng)緯度差與右下角點(diǎn)和中心點(diǎn)的經(jīng)緯度差是一樣的。
圖4 左上角點(diǎn)坐標(biāo)示意
于是可以得到計(jì)算左上角點(diǎn)和右下角點(diǎn)坐標(biāo):
左上角點(diǎn)的經(jīng)度:
(10)
左上角點(diǎn)的緯度:
(11)
右下角點(diǎn)的經(jīng)度:
(12)
右下角點(diǎn)的緯度:
(13)
右上角點(diǎn)的坐標(biāo)計(jì)算模型如圖5所示,根據(jù)幾何關(guān)系可知,右上角點(diǎn)和中心點(diǎn)的經(jīng)緯度差與左下角點(diǎn)和中心點(diǎn)的經(jīng)緯度差是一樣的。可以得到計(jì)算右上角點(diǎn)和左下角點(diǎn)坐標(biāo)。
圖5 右上角點(diǎn)坐標(biāo)示意
右上角點(diǎn)的經(jīng)度:
(14)
右上角點(diǎn)的緯度:
(15)
左下角點(diǎn)的經(jīng)度:
(16)
左下角點(diǎn)的緯度:
(17)
射線法的基本原理是以目標(biāo)點(diǎn)為端點(diǎn)引一條射線,統(tǒng)計(jì)射線和多邊形的交點(diǎn)數(shù)目。如果交點(diǎn)個(gè)數(shù)為奇數(shù)[11],則判斷該點(diǎn)在多邊形的內(nèi)部(內(nèi)部包括:多邊形的邊及多邊形的角點(diǎn)),如果交點(diǎn)個(gè)數(shù)為偶數(shù),則判斷該點(diǎn)位于多邊形外部[12]。射線法具有如下特點(diǎn):1)多邊形的角點(diǎn)數(shù)越多,則射線法判斷點(diǎn)與多邊形的包含關(guān)系的結(jié)果越精確[13]。2)若不在多邊形內(nèi)部的一個(gè)目標(biāo)點(diǎn)發(fā)出的射線過多邊形的一個(gè)角點(diǎn),則該點(diǎn)會(huì)被誤判為在多邊形內(nèi)部,會(huì)被保留[14-15]。
本實(shí)驗(yàn)的目的是刪除冗余數(shù)據(jù),從而提高空中三角測量計(jì)算效率和三維建模效率,但要盡可能地保留有用數(shù)據(jù),寧可少刪但不能多刪。實(shí)驗(yàn)中已經(jīng)考慮到了多邊形的角點(diǎn)和邊點(diǎn),采取的措施是保留這些點(diǎn)位的圖像。
實(shí)驗(yàn)用測區(qū)是一個(gè)小型村莊,如圖6所示,包括43塊宗地。以農(nóng)房普查飛行為例,需要獲取測區(qū)范圍內(nèi)農(nóng)房的精確數(shù)據(jù),房屋之外的數(shù)據(jù)無需獲取。測區(qū)面積8 511 m2,見圖6藍(lán)色區(qū)域,飛行范圍面積47 207 m2,見圖6白色區(qū)域。一共拍攝了890張圖像,每個(gè)鏡頭圖像數(shù)量相等,均為178張。
圖6 實(shí)驗(yàn)測區(qū)范圍和飛行范圍
航高由POS文件和地面控制點(diǎn)高程值差值確定,本實(shí)驗(yàn)飛行高度為100 m。每個(gè)鏡頭的焦距如表2所示,所有焦距均四舍五入保留1位小數(shù)。相機(jī)傳感器尺寸為23.5 mm×15.6 mm,對(duì)應(yīng)的像素6 000×4 000。
表2 各相機(jī)焦距 mm
實(shí)驗(yàn)流程如圖7所示,首先遍歷POS文件,剔除高度小于0的數(shù)據(jù),這些數(shù)據(jù)是飛機(jī)剛起飛時(shí)拍攝的無效圖像。然后依據(jù)幾何關(guān)系,計(jì)算圖像中心點(diǎn)在地面上的投影坐標(biāo),并結(jié)合相機(jī)參數(shù),計(jì)算出圖像的4個(gè)角點(diǎn)在地面上的投影。然后利用射線法判斷每張圖像的4個(gè)角點(diǎn)和研究區(qū)域的包含關(guān)系,從而確定該張圖像是否是冗余數(shù)據(jù)。如果4個(gè)角點(diǎn)都不在研究區(qū)域內(nèi),那么該張圖像是冗余數(shù)據(jù),反之,該張圖像是有效數(shù)據(jù)。最后將冗余數(shù)據(jù)刪除。
圖7 冗余數(shù)據(jù)刪除流程
每張圖像投影點(diǎn)與測區(qū)位置之間的關(guān)系如圖8(a)所示,5個(gè)鏡頭圖像分別用不同顏色標(biāo)注。單次攝影局部放大圖如圖8(b)所示。
圖8 測區(qū)所有圖像中心投影點(diǎn)解算結(jié)果示意
實(shí)驗(yàn)結(jié)果如圖9所示,紫色區(qū)域?yàn)闇y區(qū),黃色點(diǎn)為保留的圖像點(diǎn)位,藍(lán)色點(diǎn)為刪除的圖像點(diǎn)位。所有落在研究區(qū)域范圍內(nèi)的圖像都被保留,部分不在研究區(qū)域內(nèi)的圖像也被保留,這是因?yàn)樯渚€法自身存在的缺點(diǎn)所導(dǎo)致的,鑒于該實(shí)驗(yàn)的意義,為保證空三及三維建模的準(zhǔn)確性,所以這部分不在測區(qū)范圍內(nèi)的數(shù)據(jù)可以保留。實(shí)驗(yàn)數(shù)據(jù)一共890張圖像,最終結(jié)果刪除了660張圖像,最后保留了230張圖像,其中左視、右視、下視、前視、后視鏡頭分別保留37張、31張、71張、43張、48張。初步結(jié)果顯示,刪除了大量的無效數(shù)據(jù),刪除率達(dá)到了74%。
圖9 保留數(shù)據(jù)和刪除數(shù)據(jù)對(duì)比
查看刪除的圖像,可以看到刪除的圖像里都是林地和農(nóng)田,部分圖像如圖10所示。保留的圖像里面大部分都是房屋,偶爾幾張是林地或者農(nóng)田,這是因?yàn)樯渚€法判斷點(diǎn)和多邊形的拓?fù)潢P(guān)系時(shí)會(huì)存在誤差,少量在多邊形外的點(diǎn)會(huì)被判斷為在多邊形內(nèi)。由于本實(shí)驗(yàn)的目的是刪除冗余數(shù)據(jù)提高空中三角測量計(jì)算效率和三維建模效率,所以還是要確保三維建模后的準(zhǔn)確性,所以這一部分誤差數(shù)據(jù)可以保留。
圖10 刪除圖像和保留圖像局部截圖
在Context Capture實(shí)景三維建模軟件中進(jìn)行空中三角測量計(jì)算,結(jié)果見表3。 原始數(shù)據(jù)空三計(jì)算時(shí)間為25 min,刪除冗余數(shù)據(jù)后的圖像空三計(jì)算時(shí)間為3 min,計(jì)算效率提升了7.3倍。
表3 刪除前后空三效率對(duì)比
本實(shí)驗(yàn)通過無人機(jī)5鏡頭傾斜攝影幾何關(guān)系建立像片投影模型,利用Python語言實(shí)現(xiàn)了刪除無人機(jī)5鏡頭傾斜攝影相機(jī)獲得的冗余數(shù)據(jù)的算法。實(shí)驗(yàn)結(jié)果表明,該算法能夠刪除大量冗余數(shù)據(jù),極大提高無人機(jī)后期數(shù)據(jù)空三和建模的效率。但該算法仍然存在一些不足。實(shí)驗(yàn)結(jié)果表明,航線規(guī)劃不合理會(huì)造成大量的冗余數(shù)據(jù)。但在實(shí)際飛行時(shí)野外飛行人員一般會(huì)為了操控方便和節(jié)省時(shí)間,往往忽略了航線規(guī)劃的技巧,而是采用較為簡單的方法規(guī)劃航線,從而人為地增加了冗余數(shù)據(jù)數(shù)量。同時(shí),測區(qū)范圍形狀越簡單,刪除冗余數(shù)據(jù)越少,比如矩形測區(qū),刪除圖像不多。測區(qū)范圍復(fù)雜的,多邊形邊數(shù)越多,產(chǎn)生的冗余數(shù)據(jù)越多。本文意在闡述刪除冗余數(shù)據(jù)的算法,因此沒有討論影響冗余數(shù)據(jù)多少的因素。