王 剛
(1.廣東省國(guó)土資源測(cè)繪院,廣東 廣州 510500)
將場(chǎng)景約束條件納入光束法平差是攝影測(cè)量中常用的自檢校手段,引入合適的約束條件往往能夠優(yōu)化平差結(jié)果[1]。鑒于影像中,尤其是建筑物區(qū)域包含有大量明確、具有實(shí)際意義的直線特征,通過(guò)這些直線特征對(duì)空三平差過(guò)程進(jìn)行約束,可以提升光束法平差的整體效果。
傳統(tǒng)的基于直線特征約束的自檢校方法中,一般通過(guò)人工提取或是Hough變換等算法提取直線后,再人工選定線段[2-3]。這些方法需要大量的人工操作,尤其是在傾斜攝影測(cè)量中,由于朝向多、重疊度高、航片數(shù)量巨大,難以全部通過(guò)人工、半人工手段采集線段特征,達(dá)不到自動(dòng)空三的目的。如果為了效率只通過(guò)人工選取少量明顯的線段,則無(wú)法利用其他約束特征,不能保證獲取穩(wěn)定的結(jié)果。因此,本文提出一種基于全自動(dòng)、準(zhǔn)確、高效率的線段檢測(cè)算法,快速提取影像中的海量線段特征作為場(chǎng)景約束條件的方法,從而提高平差精度、減少控制點(diǎn)的使用,提高傾斜攝影測(cè)量作業(yè)效率。
常用的直線(線段)檢測(cè)算法有Hough變換、LSD、Edlines等方法。其中Hough變換最簡(jiǎn)單也最普及,但是需要運(yùn)算量大,并且會(huì)將非連續(xù)的線段組合在一起,從而產(chǎn)生大量錯(cuò)誤檢測(cè)等缺陷。LSD算法能夠自適應(yīng)控制誤檢的數(shù)量,具有較高的精度;EDlines精度與LSD算法大體相當(dāng),但是運(yùn)算效率更高。本文采用的Cannylines線段檢測(cè)算法是一種改進(jìn)的Edlines方法,無(wú)需指定提取參數(shù),能夠有效提取人工場(chǎng)景中的線段[4],同時(shí)具有較高的運(yùn)算效率。
CannyLines算法通過(guò)以下4個(gè)步驟檢測(cè)線段:
1)邊緣圖提取:使用一種名為CannyPF的無(wú)參數(shù)邊緣檢測(cè)器,用于從輸入圖像中提取圖像邊緣,它可以根據(jù)輸入圖像的梯度大小自適應(yīng)地調(diào)整Canny算子的低閾值和高閾值,并且可以確保圖像結(jié)構(gòu)信息的完整性。相較于傳統(tǒng)的Canny算子邊緣檢測(cè),不需要人工輸入?yún)?shù),更適應(yīng)全自動(dòng)流程。
2)邊緣鏈接和分割。從具有最大梯度幅度的邊緣像素開(kāi)始,通過(guò)圖像邊緣方向計(jì)算逐漸鏈接像素,并通過(guò)梯度閾值進(jìn)行分割,以獲取較短但是準(zhǔn)確的初始線段。
3)線段延伸和合并。將初始線段在首位2個(gè)方向上延伸以收集更多的邊緣像素,并與周?chē)钠渌簿€線段合并。
4)線段驗(yàn)證。通過(guò)基于Helmholtz原理的線驗(yàn)證方法[5]對(duì)合并后的線段進(jìn)行驗(yàn)證,剔除錯(cuò)誤線段。該方法結(jié)合了梯度方向和幅度信息,以驗(yàn)證每個(gè)線段的正確性。
為保證作為約束條件的線段準(zhǔn)確性,需要對(duì)提取出來(lái)的線段進(jìn)行迭代優(yōu)化,盡可能的剔除錯(cuò)誤線段。鑒于建筑物的直線特征主要體現(xiàn)為水平、垂直和豎直3個(gè)方向,同時(shí)會(huì)有一些如屋檐、雨棚等其他朝向的結(jié)構(gòu),因此同一幅影像中大多數(shù)有意義的線段可以通過(guò)聚類算法納入若干個(gè)朝向相近的線段組,然后剔除其他聚類,能夠有效保障線段準(zhǔn)確性。聚類結(jié)果中保留組數(shù)的取決于測(cè)區(qū)復(fù)雜程度,一般不少于3組。本文采用IOSDATA算法,基于線段朝向進(jìn)行聚類,并保留聚類結(jié)果中數(shù)量最多的10組作為約束條件。
在提取出航片中的線段后,需要對(duì)像對(duì)之間的同名線段進(jìn)行匹配,生成線對(duì)以供空三使用。本文采用基于LBD描述符的方法進(jìn)行線段匹配[6](如圖1~3所示)。主要步驟如下:

圖1 原始無(wú)人機(jī)影像
1)生成候選匹配對(duì):計(jì)算待匹配線段對(duì)的LBD描述子,通過(guò)檢查描述子的一元幾何屬性和局部外觀,生成一組候選匹配對(duì)。
2)最大一致性搜索:對(duì)于每一組候選匹配對(duì)進(jìn)行一致性計(jì)算,滿足一致性分?jǐn)?shù)最大的匹配對(duì)被認(rèn)為是最終匹配結(jié)果。

圖2 線段提取結(jié)果

圖3 線段聚類結(jié)果
由共線方程可知[6],在沒(méi)有誤差的情況下物方直線在像平面上的成像仍然是直線。因此從視點(diǎn)中心到沿該線的任何中間圖像點(diǎn)的矢量都位于該圖像的視點(diǎn)中心和兩個(gè)定義對(duì)象空間中直線的點(diǎn)所定義的平面上。如圖4所示,有ν1(將視點(diǎn)中心連接到沿著對(duì)象空間線的第一點(diǎn)的向量),ν2(將視點(diǎn)中心沿物體空間線連接到第二點(diǎn)的向量),以及ν3(將視點(diǎn)中心連接到沿圖像線的任何中間點(diǎn)的向量)3個(gè)矢量共面。即:(ν1×ν2)·ν3=0,考慮到誤差的影響,則為 (ν1×ν2)·ν3=min。

圖4 同名線段匹配結(jié)果
參考圖5,上式代入內(nèi)外方位元素、像點(diǎn)坐標(biāo)和物方坐標(biāo)[7],可以改寫(xiě)為:

圖5 直線共面關(guān)系圖

由此可以針對(duì)像對(duì)中提取出的同名線對(duì)上的任意點(diǎn)進(jìn)行解算,同時(shí)該約束不會(huì)引入任何新參數(shù)。
本項(xiàng)目采用DJI P4RTK無(wú)人機(jī),對(duì)湛江市坡頭區(qū)山朱沃村進(jìn)行了五向航測(cè)。飛行高度100 m,航向重疊度80%,旁向重疊度70%,總計(jì)獲取有效影像1 091張。為了檢查成果精度,在測(cè)區(qū)內(nèi)均勻布設(shè)了18個(gè)檢查點(diǎn)。
航飛后進(jìn)行了兩次解算,其中一次沒(méi)有引入約束條件直接進(jìn)行三維重建,另一次采用本文方法進(jìn)行了有約束的解算,通過(guò)CannyLines算法自動(dòng)提取了580 412條線段,聚類后保留325 196條線段,匹配線對(duì)903 054對(duì),總計(jì)耗時(shí)320 s,相比于布設(shè)和解算像控點(diǎn),耗時(shí)極短且過(guò)程全自動(dòng)。
通過(guò)表1檢查點(diǎn)精度對(duì)比可知,加入約束后檢查點(diǎn)的中誤差有所降低,平面和高程精度都有所提升。由圖6、7可見(jiàn),加入約束后空三殘差分布更為均勻;但是在局部區(qū)域殘差比約束之前有所增大,推測(cè)原因?yàn)榫€段提取和匹配過(guò)程引入的誤差所造成。總體來(lái)說(shuō),加入約束后成果精度有明顯提升。

表1 檢查點(diǎn)精度對(duì)比/m

圖6 檢查點(diǎn)布設(shè)圖

圖7 空三解算殘差分布(左:無(wú)約束,右:有約束)
本文提出了一種全自動(dòng)、無(wú)需人工干預(yù)的通過(guò)直線特征進(jìn)行自檢校的方法,通過(guò)Cannylines算法快速、準(zhǔn)確的提取建筑物中的直線特征,然后進(jìn)行像對(duì)間的同名線段匹配,最后將同名線對(duì)上的點(diǎn)引入光束法平差,實(shí)現(xiàn)了自檢校過(guò)程。由實(shí)驗(yàn)結(jié)果可見(jiàn),通過(guò)自動(dòng)提取的直線特征約束后空三整體精度有明顯提升,同時(shí)殘差分布更加均勻。然而由于部分線段提取、匹配不準(zhǔn)確,也給空三解算引入了新的誤差,使得結(jié)果出現(xiàn)局部精度受影響的情況。有鑒于此,需要對(duì)線段提取、篩選和匹配算法進(jìn)行進(jìn)一步優(yōu)化和改進(jìn),有效過(guò)濾錯(cuò)誤線段和錯(cuò)誤匹配結(jié)果。同時(shí),需要進(jìn)一步考慮諸如垂直、平行、共面等其他約束條件,進(jìn)一步優(yōu)化約束模型。