馬雪云 張 杰
(1.山東華峰地理信息科技有限公司,山東 濟(jì)南 250102; 2.山東省國土測(cè)繪院,山東 濟(jì)南 250102)
機(jī)載LiDAR技術(shù)因其直接測(cè)量、高精度、高效率、多回波等特點(diǎn)在獲取地表數(shù)據(jù)方面有著獨(dú)特的優(yōu)勢(shì),在建筑物建模、帶狀線路測(cè)量、林木植被提取、潮間帶測(cè)繪等領(lǐng)域已得到越來越廣泛的應(yīng)用[1]。然而,隨著生產(chǎn)項(xiàng)目的不斷豐富和研究的深入,發(fā)現(xiàn)作為機(jī)載LiDAR主要測(cè)繪成果之一的點(diǎn)云數(shù)據(jù)在后期處理時(shí)往往問題頻發(fā),如點(diǎn)云重復(fù)、時(shí)間或航線等屬性丟失、坐標(biāo)有誤、點(diǎn)云分類前后數(shù)量不一致等等,而目前常用的如TerraSolid,LAS++,ENVI LiDAR,CloudCompare,LiDAR-Suite等點(diǎn)云數(shù)據(jù)處理軟件并未具備解決這類具有一定針對(duì)性問題的功能。為此,系統(tǒng)地從點(diǎn)云數(shù)據(jù)的檢查到對(duì)其修復(fù)進(jìn)行研究,是具有重要現(xiàn)實(shí)意義和應(yīng)用價(jià)值的。
用于生產(chǎn)的點(diǎn)云數(shù)據(jù)需經(jīng)航飛獲取的姿態(tài)、測(cè)距等信息按作業(yè)航線及構(gòu)架線聯(lián)合解算獲得,且需通過外業(yè)檢核點(diǎn)的精度檢核,之后再按需進(jìn)行分區(qū)分塊、濾波、細(xì)分類等操作,最終經(jīng)質(zhì)檢合格才投入應(yīng)用[2],對(duì)其生產(chǎn)流程描述如圖1所示。
值得說明的是,其中,經(jīng)外業(yè)檢核點(diǎn)驗(yàn)證精度合格后的航帶點(diǎn)云數(shù)據(jù),在按實(shí)際進(jìn)行分塊、濾波以及細(xì)分類等操作后,仍需經(jīng)過全面的質(zhì)檢,其中一部分主要的工作即為對(duì)點(diǎn)云數(shù)據(jù)的檢查。相應(yīng)的,如果發(fā)現(xiàn)存在問題,則就要進(jìn)行必要的修復(fù)。本文也正是針對(duì)這一環(huán)節(jié)中的點(diǎn)云數(shù)據(jù)檢查和點(diǎn)云數(shù)據(jù)修復(fù)工作展開的研究。
隨著技術(shù)的不斷發(fā)展,點(diǎn)云數(shù)據(jù)包含的信息也逐漸豐富,包括空間坐標(biāo)、時(shí)間戳、分類號(hào)、所屬航線、掃描角、回波次數(shù)、回波強(qiáng)度、RGB值等等,相應(yīng)的,其對(duì)存儲(chǔ)的文件也提出了更高的要求。由美國攝影測(cè)量與遙感協(xié)會(huì)(American Society for Photogrammetry and Remote Sensing,ASPRS)制定的作為點(diǎn)云存儲(chǔ)及交換的LAS格式,具有結(jié)構(gòu)清晰、儲(chǔ)存空間節(jié)約、可擴(kuò)展等特點(diǎn)。目前已經(jīng)被各軟、硬件廠商普遍接受,且應(yīng)用越來越廣泛,也吸引了較多學(xué)者利用C++,IDL,MATLAB等解析語言,基于PCL,OpenGL,ArcGIS等平臺(tái)展開研究[3,4]。
不同的LAS版本結(jié)構(gòu)存在差異但均包含公共頭文件、可變長度記錄及點(diǎn)數(shù)據(jù)幾部分內(nèi)容,以常用的LAS1.2格式為例,解譯后的點(diǎn)云數(shù)據(jù)包含如表1所示的信息。
表1 機(jī)載LiDAR點(diǎn)云數(shù)據(jù)樣式
一般的,在確認(rèn)點(diǎn)云工程的坐標(biāo)形式、分類原則等基本要求(屬性)后,無論何種操作,都應(yīng)當(dāng)保證修改前后點(diǎn)云數(shù)據(jù)的屬性完整性、坐標(biāo)正確性、數(shù)量一致性以及文件的高匹配度。除此之外,仍需要對(duì)點(diǎn)云數(shù)據(jù)中的重復(fù)情況以及分類情況進(jìn)行檢查。
通過修改前后的點(diǎn)云數(shù)據(jù)對(duì)比,具體如下:1)屬性完整性檢查包括檢查時(shí)間屬性、回波屬性、航線屬性、掃描角屬性是否缺失;2)坐標(biāo)正確性檢查指的是檢查修改前后的點(diǎn)云數(shù)據(jù)坐標(biāo)信息是否一致;3)數(shù)量一致性檢查主要用于檢查點(diǎn)云數(shù)據(jù)的數(shù)量變化;4)文件匹配度檢查主要是指通過組合坐標(biāo)、時(shí)間及回波位置的方式,在確定點(diǎn)云數(shù)據(jù)唯一的前提下(已經(jīng)過實(shí)際檢驗(yàn)該種組合可以確定唯一),計(jì)算前后文件的匹配情況(可側(cè)面檢查時(shí)間屬性是否改變);5)點(diǎn)云重復(fù)情況檢查主要用于發(fā)現(xiàn)點(diǎn)云數(shù)據(jù)中是否存在無意義的重復(fù)點(diǎn);6)點(diǎn)云分類情況檢查主要顧及到點(diǎn)云細(xì)分類的標(biāo)準(zhǔn),為了明確修改后點(diǎn)云數(shù)據(jù)中各類別的統(tǒng)計(jì)情況,這一檢查可以從數(shù)量上直觀發(fā)現(xiàn)分類是否有誤。
針對(duì)點(diǎn)云數(shù)據(jù)的檢查情況,數(shù)據(jù)修復(fù)主要為了解決一些具有針對(duì)性的問題,如前文所提及的時(shí)間屬性恢復(fù)、坐標(biāo)恢復(fù)、點(diǎn)云去重以及其他層點(diǎn)云的恢復(fù)。
具體的,數(shù)據(jù)的修復(fù)仍是在確定唯一的前提下,通過選擇性的組合坐標(biāo)、時(shí)間及回波位置的方式,對(duì)比修改前后的點(diǎn)云數(shù)據(jù)文件,實(shí)現(xiàn)時(shí)間屬性、坐標(biāo)屬性等的恢復(fù)以及點(diǎn)云的去重。比如,當(dāng)要進(jìn)行點(diǎn)云數(shù)據(jù)的時(shí)間屬性修復(fù)時(shí),可根據(jù)坐標(biāo)及回波位置的組合來確定點(diǎn)數(shù)據(jù)的唯一性;當(dāng)要進(jìn)行點(diǎn)云數(shù)據(jù)的坐標(biāo)信息恢復(fù)時(shí),則可采用組合時(shí)間、回波位置及強(qiáng)度的方式來確定唯一。明顯的,如果處理后的點(diǎn)云數(shù)據(jù)損壞嚴(yán)重或?qū)傩詠G失嚴(yán)重,則將無法進(jìn)行修復(fù)。
由于點(diǎn)云數(shù)據(jù)的特點(diǎn),其可以很好的用行×列的矩陣形式來表示,為了實(shí)現(xiàn)上述功能,在MATLAB環(huán)境下進(jìn)行相應(yīng)設(shè)計(jì)并完成了開發(fā)工作。主要的實(shí)現(xiàn)流程如圖2,圖3所示。
實(shí)際中,輸出的點(diǎn)云檢查報(bào)告為Excel中的.xls或.xlsx格式文件,不同的檢查項(xiàng)目分別存儲(chǔ)在不同的工作簿中,這也為后續(xù)的操作極大地提供了方便。
而在點(diǎn)云數(shù)據(jù)修復(fù)中,重點(diǎn)在于用何種屬性來唯一的確定一個(gè)點(diǎn),上圖中的各組合方式已通過實(shí)際驗(yàn)證。
這里在點(diǎn)云數(shù)據(jù)的檢查中,以數(shù)量差異以及類別統(tǒng)計(jì)為例;在點(diǎn)云修復(fù)中,以修復(fù)時(shí)間屬性為例,提供部分代碼如下:
%%數(shù)量差異
diff_points{f_id,1}=part_filename;%文件名稱
diff_points{f_id,2}=length(start_1{1});%處理后點(diǎn)云數(shù)量
diff_points{f_id,3}=length(start_2{1});%處理前點(diǎn)云數(shù)量
diff_points{f_id,14}=diff_points{f_id,2}-diff_points{f_id,3};%處理前點(diǎn)云數(shù)量差值
%%類別統(tǒng)計(jì)
diff_points{f_id,8}=tabulate(start_1{1});%處理后點(diǎn)云統(tǒng)計(jì)
diff_points{f_id,9}=tabulate(start_2{1});%處理前點(diǎn)云統(tǒng)計(jì)
%%修復(fù)時(shí)間屬性,讀取要修復(fù)的點(diǎn)云數(shù)據(jù)
mat_1=cell2mat(mat_1);%回波+高程+東向+北向
mat_1=roundn(mat_1,-7);%統(tǒng)一精度,避免不一致
%讀取處理前的點(diǎn)云數(shù)據(jù)
mat_2=cell2mat(mat_2);%回波+高程+東向+北向
mat_2=roundn(mat_2,-7);%統(tǒng)一精度,避免不一致
%矩陣相交,給start_1賦時(shí)間屬性
[~, ia, ib] = intersect(mat_1, mat_2,′rows′);
for k=1:length(ia)
start_1{12}(ia(k))=start_2{12}(ib(k));
end
需要說明的是,上述代碼中的start_1和start_2為通過讀取LAS格式點(diǎn)云文件,參考表1樣式整理的分別對(duì)應(yīng)要修復(fù)及處理前的點(diǎn)云數(shù)據(jù)。
機(jī)載LiDAR技術(shù)應(yīng)用廣泛且在搭載設(shè)備的可選性、獲取數(shù)據(jù)的豐富程度、點(diǎn)云數(shù)據(jù)的密度及精度提升等方面仍有很大的發(fā)展空間。結(jié)合實(shí)際生產(chǎn),本文針對(duì)機(jī)載LiDAR點(diǎn)云數(shù)據(jù)的檢查及修復(fù)工作所開展的研究有效地完善了作為該技術(shù)主要測(cè)繪產(chǎn)品之一的點(diǎn)云數(shù)據(jù)的生產(chǎn)流程,文中所描述的相關(guān)理論及程序已在多個(gè)項(xiàng)目中得到驗(yàn)證和應(yīng)用,這也為相關(guān)的研究者提供了一定參考,后期針對(duì)點(diǎn)云數(shù)據(jù)的處理工作仍將不斷挖掘以期提供更加有益的解決方案。