羅德安 張騰波 廖麗瓊
(北京建筑大學測繪工程系,北京 100044)
因數據缺失而產生的孔洞在地面激光雷達(TLS,Terrestrial Laser Scanner)掃描點云中是廣泛存在的,導致數據缺失的因素較多,主要有掃描環境中非關注目標的遮擋、掃描設備視線高度限制、掃描對象的反射特性影響、特征邊沿效應及掃描對象的自身閉塞環境影響等。這些孔洞對后續的點云數據處理、分析及模型重建將產生消極作用,影響建模的精度及質量,所以,在進一步進行點云數據處理之前,需要對這些孔洞進行必要的修復與補全。目前大多數點云孔洞及縫隙的修補算法[1-7],能夠解決局部小范圍缺失信息的修補問題,對于缺失范圍較大的情形,由于不滿足數據平滑及外推的前提條件,所以相應的修復算法都無法使用。少數能夠對大范圍缺失數據進行修復的方法也需要借助額外的影像數據來實現[8],并且具有過程復雜,效率較低等不利因素。因此,發展能夠對大范圍缺失數據進行高效修復的方法便成為點云數據處理中亟待解決的關鍵性技術難題之一。
從現有文獻來看,針對較大范圍或是具有高曲率變化的孔洞修復算法還相對較少。李海亮等[8]提出的基于攝影測量的方式修復大范圍數據缺失的方法較為有效,但該方法過程復雜,效率相對較低;Sharf 等[9]提出了一種由粗到精的點云樣本表面孔洞填充的方式,獲得了可接受的結果,但也存在一些問題,在三維環境中對齊兩個面片集具有大量的自由度,建立數據處理的參照坐標系存在困難,重建曲面上的孔洞邊界也存在錯誤定義的可能;Park 等[10]擴展了上述工作,引入了關聯的顏色信息,在最后一步,通過采用柔性變換,一個高程域和Poission 等式用來解決拷貝曲面塊與孔洞的平滑接合問題。Becker 等[11]提出了直接拷貝3D 曲面塊修補3D 孔洞的方法,但該算法修復的點云無法保證產生出符合原始掃描儀透視關系的、合理的深度圖像。
本文也采用了一種類似從場景的其他區域拷貝結構到孔洞區域的修補方式,不同的是,為了避免三維空間搜索巨大的時間及空間代價,針對建筑立面涉及的孔洞修復,我們將建筑部件分布規律(如對稱性及重復性)等先驗知識引入到算法中,同時在交互環境下作適當的人工誘導,使得算法的實用性及效率得到了顯著的提高。
算法首先需要獲得建筑立面的主平面,后續的多項操作將以此為參照。接下來對建筑立面上孔洞類型按照修補方式分為部件相關類孔洞及部件無關類孔洞。對于涉及具體部件的孔洞,找到其相同的部件及其鄰域,將其副本拷貝到孔洞區域,通過ICP實現與該孔洞局部環境的配準,再作點云局部融合即可實現孔洞修復;而對于非部件類孔洞,多數出現在主體墻面上或其邊沿,對于前者,直接通過主體墻面(一般為平面)模型離散化即可實現修補,對于后者可以相鄰的墻面按實際需要進行延展來實現,相交部分為墻面邊沿特征線,再對延展出來的局部平面實施離散化操作即可實現孔洞修補。
算法的使用存在一定的前提條件:1)約定同類重復性結構體具有相同的幾何屬性;2)算法不適用于因透射產生的孔洞修復。此外,算法只具備部分自動數據處理能力,算法實現過程中的參照對象選取等操作,需要適當的人工干預與誘導。
1)數據預處理
原始點云需要進行必要的預處理后才能進行后續的數據處理與分析,主要包括剔出粗差及不相關的點云數據,數據配準與融合,以及適當的數據簡化處理;
2)主體墻面的提取
每一個建筑立面總是包含多個主體墻面,而窗體、陽臺以及其他建筑部件往往附著在這些主體墻面上,為了點云修補及后續重建建筑立面模型,首先需要將其主體墻面提取出來。目前,從點云中識別及重建平面特征的算法已極為成熟。這里我們采用區域生長算法重建建筑立面的主平面,因為該算法復雜度較低并具有較高的執行效率;
3)建筑立面孔洞分類
按照修補方式將孔洞分為部件相關類孔洞及部件無關類孔洞,如圖1(a)所示。圖中由于樹的遮擋造成建筑立面部分區域存在點云缺失,包括主體墻面及窗體上。對于主體墻面孔洞區域,修補相對容易,如涉及建筑部件(如窗、陽臺等),由于部件自身的復雜性,其修補將變得相對困難。
4)孔洞分類修補
對于部件無關的孔洞修復(如圖1(b)紅色框外部分),首先需要擬合出主體墻面的平面模型,而后根據孔洞附近的點云分布情況對孔洞區域平面模型進行離散化處理,保持離散化后獲得點云分布規律(如排列方向、點云密度等)和鄰近區域一致即可。圖1(c)即為修復后的情況;

圖1 孔洞修復Fig.1 Repairing holes and gaps
對于部件相關的孔洞如圖1(c)紅色框內部分,由于涉及很多部件細節部分,孔洞并不在同一平面上,上述的模型離散化方法顯然是無效的。這里將以建筑部件(如窗)作為一個獨立修復單元,首先找到和該部件相同的其他具有完整掃描點云信息的部件,獲取其完整副本,而后通過ICP 算法將其與待修復窗體進行配準,配準完成后,需要移去原有的相關點云數據,并用先前獲得的具有完整點云數據的拷貝副本替換它,進行必要的邊界數據融合,從而實現有孔洞部件對象的完整修復(圖1(d))。
5)大范圍數據缺失的修補
對于存在規律性的大范圍數據缺失,可以借助部件分布的規律性(如重復性、對稱性)來實現相應的孔洞修復。如圖2(a)所示,由于地面物體近距離遮擋,即使多次設站,仍舊無法獲取左下角的點云數據,造成相應的數據缺失。該缺失數據涉及到一樓的一個完整小窗體和一個大窗體的部分信息,以及主體墻面的部分信息。主體墻面的數據缺失及大窗體部分數據缺失仍舊可以采用步驟4)中的相關算法進行修復,而對于整體缺失的小窗體,上述算法顯然無法實現。要實現該類缺失信息的修復,首先須獲取其同類部件的分布規律(包括布局形態、窗體分隔間距等),接下來選擇一個完整的同類窗體的拷貝副本作為參考,根據先前獲得分布規律參數(如分布間距),通過三維仿射變換將完整同類部件的拷貝映射到正確位置,從而實現缺失部件的修復。在該過程中需要適當的人工干預及誘導,尤其是在分布規律的獲取過程中,適度人工干預及誘導顯著提高了算法效率。

圖2 利用重復性規律實現大范圍缺失修復Fig.2 Repairing large holes by repeated structure pattern
為驗證上述算法,利用C + +開發了一個基于可視化工具庫VTK(Visualization Toolkit)的簡單應用,點云相關的各種函數及操作(如法矢計算、曲率計算、三維仿射變換、ICP 操作等)以及本文算法相關的操作與函數都予以實現,這些函數大多能夠獨立運行,也可以組合運行,使得程序應用極為靈活。
為了驗證算法的有效性及可操作性,選定某居民樓的一個建筑立面作為樣本(圖3),該點云數據包含2 站測量數據,由點云圖可以發現建筑立面包含具有規律性分布的窗體和陽臺。原始點云含有大量無關數據和粗差(如激光穿越玻璃窗體打在室內的物體將產生了大量的粗差),在進行后續數據處理前,需要將粗差從原始掃描數據中剔除,以達到提高數據處理效率的目的。
利用我們提出的算法,分別進行主體墻面修復及部件修復,在算法實現過程中需要適當的人工干預及誘導,以便快速實現部件分布規律的獲取、關鍵性參數的設置及參照對象的選取等,在這些先驗信息的輔助下,通過編制的算法軟件即可在交互環境下快速實現點云缺失數據的修復。圖4(a)的圖是建筑立面的局部,已經去掉了主要的無關數據與粗差,缺失數據主要包括左下角的小窗體及樹木對主體墻面及窗體的影響,圖4(b)為修復后的點云圖。

圖3 某建筑立面點云圖Fig.3 Point cloud of a building facade

圖4 缺失數據補全與修復(局部截圖)Fig.4 Repairing and completing lost point cloud data of a building facade(Partial)
建筑立面的點云數據包含多個孔洞及縫隙,目前還沒一種統一的算法能夠完全覆蓋不同的孔洞類型并實現全自動孔洞修復。小孔洞及縫隙的修復基本可以借助平滑外推快速完成,具備一定的自動化水平,而對于面積較大的孔洞,現有的平滑外推類算法無法實現修復,目前較為有效的方法是借助近景攝影測量方法來實現。為驗證所提方案的效率,將攝影測量修復方法和本文方法做了一個對比試驗,運行機器為聯想Think Centre M6400t,配置Intel CoreTMi5-3470 CPU,主頻3.2G,內存4G,采用64 位windows 操作系統。近景攝影測量的影像匹配和點云獲取采用開源軟件包Bundler 和Clustering Views for Multi-view Stereo(CMVS),前者實現光束平差及稀疏點云獲取,后者實現稠密點云獲取,本文算法的實現采用了自行開發的軟件包,實驗結果表1 所示。
由表1 可以看出,本文算法的總體耗時僅為攝影測量修補方法的1/16 ~1/18,這還不包括獲取影像所需的時間支出,近景攝影測量最大的時間成本在于基于影像的點云獲取,特別是其中的稠密點云獲取尤其耗時,本文算法最耗時之處在于獲取待修復部件的位置,兩種方法的其余耗時(如點云配準與邊界融合等)并無顯著性差異。應當指出的是,基于影像的點云獲取所消耗時間還和獲取點云范圍的大小以及圖像像素密度有關聯,范圍越大或像素密度越大都會增加其時間支出。

表1 孔洞修復方法比較Tab.1 Comparison of two algorithms repairing hole
針對大范圍缺失數據的修復及補全,本文提出的方法能夠充分利用已有的先驗知識及在交互環境下的適度人工誘導,準確快速地實現大范圍缺失數據的修復。實際使用證明,盡管算法不具備全自動化數據處理能力,但卻具有較高的可操作性及生產效率,能夠有效解決因遮擋及自閉塞而產生的大范圍點云數據缺失的修復問題,為快速重建城市虛擬場景中的建筑模型提供了有力支持。
對于因透射(如玻璃窗)、全反射等原因產生的點云缺失,現存的算法都無法直接修復其產生的數據缺失。作為解決窗體透射產生數據缺失的方案之一,可在模型重建階段,通過人工交互先重建出一個完整窗體模型,而后再依據窗體的對稱性及重復性分布規律,借助窗體框架等特征,通過模型配準來實現同類型窗體的快速重建[12]。
1 Tao J.Fixing geometric errors on polygonal models[J].Journal of Computer Science Technology ,2009,24(1):19-29.
2 Nooruddin F S and Turk G.Simplification and repair of polygonal models using volumetric techniques[J].IEEE Transactions on Visualization and Computer Graphics,2003,9(2):191-205.
3 Bischoff S,Pavi D and Kobbelt L.Automatic restoration of polygon models[J].ACM Transactions on Graphics,2005,24(4):1 332-1 352.
4 謝倩茹,耿國華.三維模型孔洞修補方法的研究[J].計算機應用研究,2013,30(10):3 175-3 177.(Xie Qianru and Geng Guohua.Study on the method of repairing hole with a 3D model[J].Reserch of Computer Application,2013,30(10):3 175-3 177)
5 Leong K F,Chua C K and Ng Y M.A study of stereo lithography file error s and repair.Part 2:Special cases[J].International Journal of Advanced Manufacturing Technology,1996,(12):415-422.
6 Pfeifle R and Seide1 H P.Trriangular B-splines for blending and filling of polygonal holes[A].Proceedings of Graphics Interface[C].Toronto:Canadian Information Processing Society Press,1996:186-193.
7 張麗艷,周儒榮,周來水.三角網格模型孔洞修補算法研究[J].應用科學學報,2002,20(3):221-224.(Zhang Yanli,Zhou Rurong and Zhou Laishui.Study on algorithm repairing holes with a triangle network model[J].Journal of Applied Science,2002,20(3):221-224)
8 李海亮,鄧非,李剛.攝影測量激光點云孔洞修補[J].測繪科學,2010,30(5):101-102.(Li Hailiang,Deng Fei and Li Gang.Repairing holes of laser point cloud with photomeasurement[J].Suevey Science,2010,30(5):101-102)
9 Sharf A,Alexa M and Cohen-Or D,Context-based surface completion[EB/OL].http://www.cs.bgu.ac.il/ ~asharf/Projects/SCOM/SurfaceCompletion.pdf.
10 Park S,et al.Shape and appearance repair for incomplete point surfaces[EB/OL].http://cvc.cs.stonybrook.edu/Publications/2005/PGSQ05/85seyoun_xguo_iccv05-final.pdf.
11 Becker J,Stewart C and Radke R J.LiDAR inpainting from a single image[EB/OL].http://www.ecse.rpi.edu/ ~rjradke/papers/becker3dim09.pdf.
12 Dean Luo and Liqiong Liao.Rapid reconstruct 3d building models from point cloud[J].Applied Mechanics and Materials,2013,303:2 317-2 320.