羅德安 張騰波 廖麗瓊
(北京建筑大學(xué)測繪工程系,北京 100044)
因數(shù)據(jù)缺失而產(chǎn)生的孔洞在地面激光雷達(dá)(TLS,Terrestrial Laser Scanner)掃描點(diǎn)云中是廣泛存在的,導(dǎo)致數(shù)據(jù)缺失的因素較多,主要有掃描環(huán)境中非關(guān)注目標(biāo)的遮擋、掃描設(shè)備視線高度限制、掃描對象的反射特性影響、特征邊沿效應(yīng)及掃描對象的自身閉塞環(huán)境影響等。這些孔洞對后續(xù)的點(diǎn)云數(shù)據(jù)處理、分析及模型重建將產(chǎn)生消極作用,影響建模的精度及質(zhì)量,所以,在進(jìn)一步進(jìn)行點(diǎn)云數(shù)據(jù)處理之前,需要對這些孔洞進(jìn)行必要的修復(fù)與補(bǔ)全。目前大多數(shù)點(diǎn)云孔洞及縫隙的修補(bǔ)算法[1-7],能夠解決局部小范圍缺失信息的修補(bǔ)問題,對于缺失范圍較大的情形,由于不滿足數(shù)據(jù)平滑及外推的前提條件,所以相應(yīng)的修復(fù)算法都無法使用。少數(shù)能夠?qū)Υ蠓秶笔?shù)據(jù)進(jìn)行修復(fù)的方法也需要借助額外的影像數(shù)據(jù)來實(shí)現(xiàn)[8],并且具有過程復(fù)雜,效率較低等不利因素。因此,發(fā)展能夠?qū)Υ蠓秶笔?shù)據(jù)進(jìn)行高效修復(fù)的方法便成為點(diǎn)云數(shù)據(jù)處理中亟待解決的關(guān)鍵性技術(shù)難題之一。
從現(xiàn)有文獻(xiàn)來看,針對較大范圍或是具有高曲率變化的孔洞修復(fù)算法還相對較少。李海亮等[8]提出的基于攝影測量的方式修復(fù)大范圍數(shù)據(jù)缺失的方法較為有效,但該方法過程復(fù)雜,效率相對較低;Sharf 等[9]提出了一種由粗到精的點(diǎn)云樣本表面孔洞填充的方式,獲得了可接受的結(jié)果,但也存在一些問題,在三維環(huán)境中對齊兩個面片集具有大量的自由度,建立數(shù)據(jù)處理的參照坐標(biāo)系存在困難,重建曲面上的孔洞邊界也存在錯誤定義的可能;Park 等[10]擴(kuò)展了上述工作,引入了關(guān)聯(lián)的顏色信息,在最后一步,通過采用柔性變換,一個高程域和Poission 等式用來解決拷貝曲面塊與孔洞的平滑接合問題。Becker 等[11]提出了直接拷貝3D 曲面塊修補(bǔ)3D 孔洞的方法,但該算法修復(fù)的點(diǎn)云無法保證產(chǎn)生出符合原始掃描儀透視關(guān)系的、合理的深度圖像。
本文也采用了一種類似從場景的其他區(qū)域拷貝結(jié)構(gòu)到孔洞區(qū)域的修補(bǔ)方式,不同的是,為了避免三維空間搜索巨大的時間及空間代價,針對建筑立面涉及的孔洞修復(fù),我們將建筑部件分布規(guī)律(如對稱性及重復(fù)性)等先驗(yàn)知識引入到算法中,同時在交互環(huán)境下作適當(dāng)?shù)娜斯ふT導(dǎo),使得算法的實(shí)用性及效率得到了顯著的提高。
算法首先需要獲得建筑立面的主平面,后續(xù)的多項(xiàng)操作將以此為參照。接下來對建筑立面上孔洞類型按照修補(bǔ)方式分為部件相關(guān)類孔洞及部件無關(guān)類孔洞。對于涉及具體部件的孔洞,找到其相同的部件及其鄰域,將其副本拷貝到孔洞區(qū)域,通過ICP實(shí)現(xiàn)與該孔洞局部環(huán)境的配準(zhǔn),再作點(diǎn)云局部融合即可實(shí)現(xiàn)孔洞修復(fù);而對于非部件類孔洞,多數(shù)出現(xiàn)在主體墻面上或其邊沿,對于前者,直接通過主體墻面(一般為平面)模型離散化即可實(shí)現(xiàn)修補(bǔ),對于后者可以相鄰的墻面按實(shí)際需要進(jìn)行延展來實(shí)現(xiàn),相交部分為墻面邊沿特征線,再對延展出來的局部平面實(shí)施離散化操作即可實(shí)現(xiàn)孔洞修補(bǔ)。
算法的使用存在一定的前提條件:1)約定同類重復(fù)性結(jié)構(gòu)體具有相同的幾何屬性;2)算法不適用于因透射產(chǎn)生的孔洞修復(fù)。此外,算法只具備部分自動數(shù)據(jù)處理能力,算法實(shí)現(xiàn)過程中的參照對象選取等操作,需要適當(dāng)?shù)娜斯じ深A(yù)與誘導(dǎo)。
1)數(shù)據(jù)預(yù)處理
原始點(diǎn)云需要進(jìn)行必要的預(yù)處理后才能進(jìn)行后續(xù)的數(shù)據(jù)處理與分析,主要包括剔出粗差及不相關(guān)的點(diǎn)云數(shù)據(jù),數(shù)據(jù)配準(zhǔn)與融合,以及適當(dāng)?shù)臄?shù)據(jù)簡化處理;
2)主體墻面的提取
每一個建筑立面總是包含多個主體墻面,而窗體、陽臺以及其他建筑部件往往附著在這些主體墻面上,為了點(diǎn)云修補(bǔ)及后續(xù)重建建筑立面模型,首先需要將其主體墻面提取出來。目前,從點(diǎn)云中識別及重建平面特征的算法已極為成熟。這里我們采用區(qū)域生長算法重建建筑立面的主平面,因?yàn)樵撍惴◤?fù)雜度較低并具有較高的執(zhí)行效率;
3)建筑立面孔洞分類
按照修補(bǔ)方式將孔洞分為部件相關(guān)類孔洞及部件無關(guān)類孔洞,如圖1(a)所示。圖中由于樹的遮擋造成建筑立面部分區(qū)域存在點(diǎn)云缺失,包括主體墻面及窗體上。對于主體墻面孔洞區(qū)域,修補(bǔ)相對容易,如涉及建筑部件(如窗、陽臺等),由于部件自身的復(fù)雜性,其修補(bǔ)將變得相對困難。
4)孔洞分類修補(bǔ)
對于部件無關(guān)的孔洞修復(fù)(如圖1(b)紅色框外部分),首先需要擬合出主體墻面的平面模型,而后根據(jù)孔洞附近的點(diǎn)云分布情況對孔洞區(qū)域平面模型進(jìn)行離散化處理,保持離散化后獲得點(diǎn)云分布規(guī)律(如排列方向、點(diǎn)云密度等)和鄰近區(qū)域一致即可。圖1(c)即為修復(fù)后的情況;
圖1 孔洞修復(fù)Fig.1 Repairing holes and gaps
對于部件相關(guān)的孔洞如圖1(c)紅色框內(nèi)部分,由于涉及很多部件細(xì)節(jié)部分,孔洞并不在同一平面上,上述的模型離散化方法顯然是無效的。這里將以建筑部件(如窗)作為一個獨(dú)立修復(fù)單元,首先找到和該部件相同的其他具有完整掃描點(diǎn)云信息的部件,獲取其完整副本,而后通過ICP 算法將其與待修復(fù)窗體進(jìn)行配準(zhǔn),配準(zhǔn)完成后,需要移去原有的相關(guān)點(diǎn)云數(shù)據(jù),并用先前獲得的具有完整點(diǎn)云數(shù)據(jù)的拷貝副本替換它,進(jìn)行必要的邊界數(shù)據(jù)融合,從而實(shí)現(xiàn)有孔洞部件對象的完整修復(fù)(圖1(d))。
5)大范圍數(shù)據(jù)缺失的修補(bǔ)
對于存在規(guī)律性的大范圍數(shù)據(jù)缺失,可以借助部件分布的規(guī)律性(如重復(fù)性、對稱性)來實(shí)現(xiàn)相應(yīng)的孔洞修復(fù)。如圖2(a)所示,由于地面物體近距離遮擋,即使多次設(shè)站,仍舊無法獲取左下角的點(diǎn)云數(shù)據(jù),造成相應(yīng)的數(shù)據(jù)缺失。該缺失數(shù)據(jù)涉及到一樓的一個完整小窗體和一個大窗體的部分信息,以及主體墻面的部分信息。主體墻面的數(shù)據(jù)缺失及大窗體部分?jǐn)?shù)據(jù)缺失仍舊可以采用步驟4)中的相關(guān)算法進(jìn)行修復(fù),而對于整體缺失的小窗體,上述算法顯然無法實(shí)現(xiàn)。要實(shí)現(xiàn)該類缺失信息的修復(fù),首先須獲取其同類部件的分布規(guī)律(包括布局形態(tài)、窗體分隔間距等),接下來選擇一個完整的同類窗體的拷貝副本作為參考,根據(jù)先前獲得分布規(guī)律參數(shù)(如分布間距),通過三維仿射變換將完整同類部件的拷貝映射到正確位置,從而實(shí)現(xiàn)缺失部件的修復(fù)。在該過程中需要適當(dāng)?shù)娜斯じ深A(yù)及誘導(dǎo),尤其是在分布規(guī)律的獲取過程中,適度人工干預(yù)及誘導(dǎo)顯著提高了算法效率。
圖2 利用重復(fù)性規(guī)律實(shí)現(xiàn)大范圍缺失修復(fù)Fig.2 Repairing large holes by repeated structure pattern
為驗(yàn)證上述算法,利用C + +開發(fā)了一個基于可視化工具庫VTK(Visualization Toolkit)的簡單應(yīng)用,點(diǎn)云相關(guān)的各種函數(shù)及操作(如法矢計(jì)算、曲率計(jì)算、三維仿射變換、ICP 操作等)以及本文算法相關(guān)的操作與函數(shù)都予以實(shí)現(xiàn),這些函數(shù)大多能夠獨(dú)立運(yùn)行,也可以組合運(yùn)行,使得程序應(yīng)用極為靈活。
為了驗(yàn)證算法的有效性及可操作性,選定某居民樓的一個建筑立面作為樣本(圖3),該點(diǎn)云數(shù)據(jù)包含2 站測量數(shù)據(jù),由點(diǎn)云圖可以發(fā)現(xiàn)建筑立面包含具有規(guī)律性分布的窗體和陽臺。原始點(diǎn)云含有大量無關(guān)數(shù)據(jù)和粗差(如激光穿越玻璃窗體打在室內(nèi)的物體將產(chǎn)生了大量的粗差),在進(jìn)行后續(xù)數(shù)據(jù)處理前,需要將粗差從原始掃描數(shù)據(jù)中剔除,以達(dá)到提高數(shù)據(jù)處理效率的目的。
利用我們提出的算法,分別進(jìn)行主體墻面修復(fù)及部件修復(fù),在算法實(shí)現(xiàn)過程中需要適當(dāng)?shù)娜斯じ深A(yù)及誘導(dǎo),以便快速實(shí)現(xiàn)部件分布規(guī)律的獲取、關(guān)鍵性參數(shù)的設(shè)置及參照對象的選取等,在這些先驗(yàn)信息的輔助下,通過編制的算法軟件即可在交互環(huán)境下快速實(shí)現(xiàn)點(diǎn)云缺失數(shù)據(jù)的修復(fù)。圖4(a)的圖是建筑立面的局部,已經(jīng)去掉了主要的無關(guān)數(shù)據(jù)與粗差,缺失數(shù)據(jù)主要包括左下角的小窗體及樹木對主體墻面及窗體的影響,圖4(b)為修復(fù)后的點(diǎn)云圖。
圖3 某建筑立面點(diǎn)云圖Fig.3 Point cloud of a building facade
圖4 缺失數(shù)據(jù)補(bǔ)全與修復(fù)(局部截圖)Fig.4 Repairing and completing lost point cloud data of a building facade(Partial)
建筑立面的點(diǎn)云數(shù)據(jù)包含多個孔洞及縫隙,目前還沒一種統(tǒng)一的算法能夠完全覆蓋不同的孔洞類型并實(shí)現(xiàn)全自動孔洞修復(fù)。小孔洞及縫隙的修復(fù)基本可以借助平滑外推快速完成,具備一定的自動化水平,而對于面積較大的孔洞,現(xiàn)有的平滑外推類算法無法實(shí)現(xiàn)修復(fù),目前較為有效的方法是借助近景攝影測量方法來實(shí)現(xiàn)。為驗(yàn)證所提方案的效率,將攝影測量修復(fù)方法和本文方法做了一個對比試驗(yàn),運(yùn)行機(jī)器為聯(lián)想Think Centre M6400t,配置Intel CoreTMi5-3470 CPU,主頻3.2G,內(nèi)存4G,采用64 位windows 操作系統(tǒng)。近景攝影測量的影像匹配和點(diǎn)云獲取采用開源軟件包Bundler 和Clustering Views for Multi-view Stereo(CMVS),前者實(shí)現(xiàn)光束平差及稀疏點(diǎn)云獲取,后者實(shí)現(xiàn)稠密點(diǎn)云獲取,本文算法的實(shí)現(xiàn)采用了自行開發(fā)的軟件包,實(shí)驗(yàn)結(jié)果表1 所示。
由表1 可以看出,本文算法的總體耗時僅為攝影測量修補(bǔ)方法的1/16 ~1/18,這還不包括獲取影像所需的時間支出,近景攝影測量最大的時間成本在于基于影像的點(diǎn)云獲取,特別是其中的稠密點(diǎn)云獲取尤其耗時,本文算法最耗時之處在于獲取待修復(fù)部件的位置,兩種方法的其余耗時(如點(diǎn)云配準(zhǔn)與邊界融合等)并無顯著性差異。應(yīng)當(dāng)指出的是,基于影像的點(diǎn)云獲取所消耗時間還和獲取點(diǎn)云范圍的大小以及圖像像素密度有關(guān)聯(lián),范圍越大或像素密度越大都會增加其時間支出。
表1 孔洞修復(fù)方法比較Tab.1 Comparison of two algorithms repairing hole
針對大范圍缺失數(shù)據(jù)的修復(fù)及補(bǔ)全,本文提出的方法能夠充分利用已有的先驗(yàn)知識及在交互環(huán)境下的適度人工誘導(dǎo),準(zhǔn)確快速地實(shí)現(xiàn)大范圍缺失數(shù)據(jù)的修復(fù)。實(shí)際使用證明,盡管算法不具備全自動化數(shù)據(jù)處理能力,但卻具有較高的可操作性及生產(chǎn)效率,能夠有效解決因遮擋及自閉塞而產(chǎn)生的大范圍點(diǎn)云數(shù)據(jù)缺失的修復(fù)問題,為快速重建城市虛擬場景中的建筑模型提供了有力支持。
對于因透射(如玻璃窗)、全反射等原因產(chǎn)生的點(diǎn)云缺失,現(xiàn)存的算法都無法直接修復(fù)其產(chǎn)生的數(shù)據(jù)缺失。作為解決窗體透射產(chǎn)生數(shù)據(jù)缺失的方案之一,可在模型重建階段,通過人工交互先重建出一個完整窗體模型,而后再依據(jù)窗體的對稱性及重復(fù)性分布規(guī)律,借助窗體框架等特征,通過模型配準(zhǔn)來實(shí)現(xiàn)同類型窗體的快速重建[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 謝倩茹,耿國華.三維模型孔洞修補(bǔ)方法的研究[J].計(jì)算機(jī)應(yīng)用研究,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 張麗艷,周儒榮,周來水.三角網(wǎng)格模型孔洞修補(bǔ)算法研究[J].應(yīng)用科學(xué)學(xué)報(bào),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 李海亮,鄧非,李剛.攝影測量激光點(diǎn)云孔洞修補(bǔ)[J].測繪科學(xué),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.