張 軍,楊軍義,申 靜
(1.甘肅工業職業技術學院,甘肅 天水 741025; 2.甘肅省測繪工程技術研究中心,甘肅 天水 741025; 3.甘肅省地質礦產勘查開發局第一地質礦產勘察院,甘肅 天水 741025)
無人機傾斜攝影測量技術近年來廣泛應用于測繪地理信息領域[1],數據獲取技術的高效化、多元化和智能化發展[2],為相關行業提供了技術支撐,為CIM、BIM、GIS等在實景地理信息數字化中的三維展示、數據挖掘等應用提供了更多機遇和可能[3]。自然資源部測繪司司長武文忠在中國地理信息產業大會發表了“新型基礎測繪與實景三維中國建設”為題的演講[4],提出國家基礎測繪正在逐步朝著三維測繪的方向發展[5]。可見三維測繪必將是行業發展的趨勢,做為三維測繪的核心技術[6],傾斜攝影測量也是眾多學者研究的熱點[7]。
由于傾斜攝影需要從多角度獲取地物影像信息[8],導致影像數據非常龐大,增加了數據處理的時間成本,也對數據處理硬件設備的要求有所提高。研究從傾斜攝影數據中消除冗余影像,提高數據處理效率的方法,對傾斜攝影測量技術發展應用有很強的現實意義。
傾斜攝影測量是獲取地物多個視角影像數據的攝影測量方法,這些數據不僅包含傳統垂直影像信息,而且包含地物多個視角的傾斜影像信息[9],通過多視影像密集匹配、多基線聯合解算、多視影像聯合平差獲取高精度三維點云數據[10],在此基礎上生成測區DSM、DOM及三維模型。傾斜攝影時,因為要獲取地物側面影像,需要根據航高、相機傾角等參數計算,相對測區外擴多條航線,由于傾斜攝影常用5鏡頭相機,在獲取測區邊緣側視影像時,外擴航線朝測區方向的影像是建模需要的,其他4個鏡頭的影像則是冗余數據。在進行內業數據處理時,一般是將所有影像納入工程同時解算,這就增加了內業數據解算的負擔,降低了工作效率,對于大范圍的傾斜攝影測量工程來說,解算時間成本會大大提高。
傾斜攝影測量航飛時需要外擴到測區外幾條航線來獲取測區側面影像從而保障模型紋理的完整性,測區外擴的范圍和相機傾斜角、航高、地形高差等因素有關,航飛時需根據實際情況調整,下文以測區外擴3條航線為例分析影像冗余度問題。
以SONY ILCE6000相機為例,以正射鏡頭為參考進行分析,假設測區范圍400 m×400 m,航高設置100 m、下視焦距25 mm、傳感器尺寸為23.5 mm×15.6 mm,在雙向重疊度要求80%的情況下可以根據式(1)計算影像基線間隔L及航線間隔M,式中,H為航高,f為焦距。
L=傳感器尺寸×(1-80%)×H/f
(1)
根據式(1)計算出基線間隔L為12.48 m,航線間隔M為18.8 m,由于測區大小為400 m×400 m,根據L及M,利用式(2)可以計算出測區攝站數S為682,影像3 410張。
S=400/M×400/L≈682站
(2)
若外擴3條航線,可計算出外擴約60 m,那么測區寬度就變為460 m×460 m,同樣根據式(2)可推算出實際攝站數S′為902,總影像4 510張。可見,在外擴的情況下,實際航飛攝站比測區范圍多出約220站,合計1 100張影像,這1 100張影像中只有傾向測區的影像是有用的,占1/5,無用影像有880張,約占工程影像總數的20%。由于測區邊緣朝向測區外部的影像也不參與建模,所以這些影像也可認為是冗余影像,但是從航攝的完整性考慮,這些影像暫不研究其價值。
處理冗余影像前,需要準確判斷冗余影像所在位置,再將這些影像移除,不參與后期解算。因為影像判斷處理比較費時,且POS與影像對應,所以通過清除冗余POS來清除冗余影像是效率較高的方法。以規則矩形區域為例,提出設計思路:(1)編輯POS使之與影像對應;(2)通過POS數據來生成航點視圖;(3)通過視圖上攝站點位置關系檢索出冗余影像對應POS;(4)根據POS進行冗余影像移除。檢索冗余影像時根據攝站視圖位置關系,首先判斷影像是否是航線的前3站或末3站,前3站保留前視影像,后3站保留后視影像,移除其余影像;再判斷影像是否是前3條航線或后3條航線,根據左右視關系,保留朝向測區的影像,移除其他影像。為了便于程序設計,定義各鏡頭方向為左視L、右視R、前視F、后視M、下視X,航飛方向根據影像編號大小來確定,以此為基礎設計冗余影像處理算法,技術流程如圖1所示。

圖1 冗余影像檢索算法流程圖
基于上文設計思路,使用ArcGIS Engine平臺利用C#開發應用程序。
在POS數據中添加“鏡頭號”字段,用F、L、R、M、X符號標記POS點歸屬鏡頭,將5個鏡頭POS數據合并展點,如圖2所示(下文應用程序軟件按上文設計思路開發)。

圖2 展點圖
利用下視相機POS生成冗余影像所在航線,要求生成前3條航線、后3條航線(若測區不是外擴3條航線,根據實際情況定義外擴航線數),其余航線只生成前3站連線和后3站連線,如圖3所示。

圖3 冗余影像位置判斷
算法原理:同一條航線兩點連成的線段偏角一致,因此,同一條航線連續2條基線的偏角之差絕對值很小(一般在8°以內),而當無人機改變航向,連續兩條基線偏角之差絕對值一般為90°左右,本系統將差值設為45°,若連續兩條基線偏角之差的絕對值大于45°,則說明無人機進入下一條航線;當站點不在前3條航線或后3條航線上,則只連接前3站和后3站航線。核心代碼如下:
//假設有3個連續的POS點pt1、pt2、pt3
ILine pLine1 =new LineClass();
ILine pLine2 =new LineClass();
pLine1.PutCoords(pt1,pt2);
pLine1.PutCoords(pt1,pt3);
//計算2點連線的偏角,并將默認的弧度轉為度
double dAngleDegree1 =(180 * pLine1.Angle)/Math.PI;
double dAngleDegree2 =(180 * pLine2.Angle)/Math.PI;
//如果偏角差小于45°則為一條航線,否則為下一條航線
if (Math.Abs(dAngleDegree1 -dAngleDegree2)<45)
{
ISegment pSegment1 =pLine1 as ISegment;
ISegment pSegment2 =pLine2 as ISegment;
ISegmentCollection pPath =new PathClass();
pPath.AddSegment(pSegment1,ref o,ref o);
pPath.AddSegment(pSegment2,ref o,ref o);
IGeometryCollection pPolyline =new PolylineClass();
pPolyline.AddGeometry(pPath as IGeometry,ref o,ref o);
}
用3.2節生成的航線數據做緩沖區分析,5鏡頭相機同一攝站5個POS位置有微小差異,但距離相差僅5 cm左右,因此,程序將緩沖區設置為10 cm,緩沖區生成后和POS數據做疊置分析,確定篩選數據的空間范圍,如圖4所示。核心代碼如下:

圖4 確定篩選影像空間范圍
//生成緩沖區
ITopologicalOperator topologicalOperator =pFeature.Shape as ITopologicalOperator;
IPolygon polygon =topologicalOperator.Buffer(0.3)as IPolygon;
//如果緩沖區包含POS測站點,則確定為篩選空間范圍
IRelationalOperator pRel =pBufferFeature.Shape as IRelationalOperator;
if (pRel.Contains(pCeZhanFeature.Shape)){ //…… }
根據冗余影像篩選規則,要求只保留前3條航線、后3條航線朝向測區鏡頭數據。判斷測區在首條航線的左側還是右側,若測區在左側,則奇數序號的航線保留左視鏡頭影像,偶數序號的航線保留右視鏡頭影像;反之,測區在右側,則奇數序號的航線保留右視鏡頭影像,偶數序號的航線保留左視鏡頭影像。以上首條航線和測區空間關系的判斷可轉換為判斷前2個POS測站連線和最后一個測站點的空間關系。其余航線只保留進入航線的前3站F鏡頭數據和出航線后3站的M鏡頭數據,若航線是偶數序則保留前視鏡頭,航線是奇數序則保留后視鏡頭。核心代碼如下:
double x1,y1;//第1個POS測站點
double x2,y2;//第2個POS測站點
double x0,y0;//最后一個POS測站點
//L_R>0則測區左,L_R<0則測區右
double L_R =(y1 -y2)* x0 + (x2 -x1)* y0 + x1 * y2 -x2 * y1;
根據需保留的數據,反向篩選需刪除數據對應影像,批量刪除,如圖5所示。

圖5 刪除冗余數據
依本文設計的處理程序對大小不同的三個測區傾斜攝影數據進行處理,統計結果如表1所示,可見不同大小測區的冗余影像比例差距很大,范圍越小冗余影像占比越大。通過本實驗處理后影像利用ContextCapture Center Master進行空三及三維建模,效果相同,處理后影像空三精度報告如表2所示。

表1 冗余影像剔除實驗統計表
本文設計了一種傾斜攝影測量冗余影像處理的技術方案,并利用C#開發了應用程序,通過應用程序對多組實驗數據進行了處理,應用實驗成果進行三維建模,效果良好。實踐證明,在傾斜攝影測量數據處理之前,進行冗余影像的剔除工作,可以極大的提高內業數據解算的速度,不會影響成果的精度及效果。