龍佳樂,杜梓浩,張建民*,陳富健,關(guān)浩源,黃克森,孫 瑞
(1.五邑大學(xué) 智能制造學(xué)部,廣東 江門 529020;2.北京小米移動軟件有限公司,廣東 深圳 518054)
隨著計算機科學(xué)的迅速發(fā)展和現(xiàn)代精密儀器的出現(xiàn),點云模型的獲取變得越來越容易,在城市建模、計算機圖形學(xué)、地形測繪、文物保護、逆向工程等領(lǐng)域都有著廣泛的應(yīng)用[1-4]。利用點云模型進行三維重建是三維形貌測量的有效方法之一。然而,在三維測量過程中會受到儀器精度、環(huán)境變化、被測物體自身結(jié)構(gòu)等的影響,不可避免地產(chǎn)生噪聲點云,影響了三維測量的精度[5-7]。
去除點云噪聲以獲得完整的三維點云模型一直是三維測量的研究重點。目前,許多國內(nèi)外研究團隊對三維測量中的點云噪聲提出了各種去噪方法。袁華[8]等提出一種組合濾波算法,利用統(tǒng)計濾波、半徑濾波和雙邊濾波的方法,不僅能有效去除點云噪聲而且運行速度快,具有較好的魯棒性,然而實驗過程中的具體自由參數(shù)還需人工調(diào)節(jié)。Lu[9]等提出一種在保持幾何特征的同時進行點云去噪的高效方法,在點云去噪過程中引入了快速迭代的頂點濾波器,該方法明顯能夠降低噪聲干擾。吳祿慎[10]等提出一種基于三維點云特征信息分類的去噪算法,在不同噪聲強度下,該算法均能夠達到較好的去噪效果,并保留點云的高頻特征信息。張玉存[11]等提出基于曲率約束的點云分割的去噪方法,該方法相對于雙邊濾波能夠有效地保持模型的特征,保留模型邊緣信息,去除噪聲效果更為明顯。趙夫群[12]等提出的層次化點云去噪算法通過矩陣運算和循環(huán)濾波在保持尖銳幾何特征的同時,可以快速精確剔除噪聲點,是一種有效的點云去噪算法。吳俊威[13]等提出一種鄰域自適應(yīng)的三維點云濾波算法,在濾波效果得到保證的情況下,提高了點云濾波的精度,但是會導(dǎo)致高噪聲點云數(shù)據(jù)出現(xiàn)明顯誤差,進而降低濾波精度和達不到很好的去噪效果。Christian[14]等提出一種基于光場的三維點云去噪方法,該方法利用不確定性度量來更好地估計深度值,通過利用幾何和光度特性以及已知的相機參數(shù)來校正離群點的位置從而達到非常有效的去噪效果。Leal[15]等提出了一種新的點云去噪算法,將中值濾波和稀疏正則化計算相結(jié)合,用于處理被高斯和脈沖噪聲影響的點云模型,以保持點云中的尖銳特征。該算法能夠保持清晰的特征,對合成點掃描和原始點掃描都具有魯棒性,但具體的算法參數(shù)需要手動調(diào)整。任彬[16]等提出了一種基于自適應(yīng)閾值的三維點云分段式去噪方法,在非線性函數(shù)的自適應(yīng)閾值去噪算法和曲率去噪算法的基礎(chǔ)上進行噪聲點的去除,可達到95%以上的去噪精確度,但具有較多的調(diào)整參數(shù)。
目前大多數(shù)的點云去除噪聲的方法無法適用于存在各種噪聲點云的情況,并且具有較多的調(diào)整參數(shù),在三維空間的計算具有復(fù)雜性。為了解決在三維空間中對點云進行去噪產(chǎn)生計算復(fù)雜、效率低下等問題,本文提出了一種基于圖像分割的點云去除噪聲的方法。該方法是基于點云映射圖像進行處理,去噪后進行三維重建,實現(xiàn)過程簡捷,可以有效去除具有噪聲的點云。
基于雙波長條紋投影的三維測量方法是使用投影機投影兩組不同周期的條紋到待測物體,相機拍攝待測物體上的變形條紋圖,通過相移形貌測量法(PSP)對多張變形條紋圖進行條紋解析獲得包裹相位圖[17]。根據(jù)參考文獻[17]所提的雙波長條紋投影相位展開算法對包裹相位圖進行相位展開獲得絕對相位圖,如圖1 所示。結(jié)合圖1 中系統(tǒng)標定參數(shù)和絕對相位圖進行計算,得出物體的待測三維坐標進行三維重建。三維坐標(X,Y,Z)中的Z坐標與絕對相位圖的像素點坐標(r,c)的關(guān)系如式(1)所示:
圖1 基于雙波長條紋投影的三維形貌測量原理圖Fig.1 Principle diagram of three-dimensional shape mea‐surement based on dual-wavelength fringe projection
式中λc為縮放因子;f為相機的焦距;Rc、Tc為相機的外參數(shù)矩陣,由系統(tǒng)標定參數(shù)決定;dx與dy分別為r方向和c方向?qū)?yīng)的物理長度,r0與c0分別為圖像像素點在相機內(nèi)的物理坐標。因此,需要建立的點云映射圖像既包含了絕對相位圖的位置信息也包含了三維點Z的信息。
由于外界環(huán)境、測量設(shè)備、三維重建算法以及物體自身點等因素影響,在對物體進行三維重建的過程中,不可避免地會產(chǎn)生噪聲。重建的三維點云模型具有大量的散亂、塊狀噪聲點云。三維重建產(chǎn)生的噪聲點云類型有散亂噪聲點云、塊狀噪聲點云、突剌噪聲點云等[18-21]。根據(jù)式(1)得出,三維點云噪聲點與點云映射圖像存在著對應(yīng)關(guān)系。利用該對應(yīng)關(guān)系,可以實現(xiàn)對噪聲點云的去除。
基于圖像分割的點云去噪方法是通過圖像分割技術(shù)對點云映射圖像進行相應(yīng)計算,判斷出噪聲區(qū)域,刪除噪聲區(qū)域即去除了具有噪聲的點云,如圖2 所示:(i)為實驗對象;(ii)為初始三維點云模型;(iii)為點云預(yù)處理后的二維映射;(iv)為建立的點云映射圖像;(v)為分割后的點云映射圖像;(vi)為在分割圖像上進行的區(qū)域判斷示意圖;(vii)為對不確定是否存在噪聲的待定區(qū)域進行的進一步判斷示意圖;(viii)為去除噪聲區(qū)域后的點云映射圖像;(ix)為去噪后的點云模型。該方法主要分為4 個步驟:建立點云映射圖像、圖像分割、刪除噪聲區(qū)域、恢復(fù)點云。
圖2 基于圖像分割的點云去噪方法示意圖Fig.2 Schematic of point cloud denoising method based on image segmentation
基于圖像分割的點云去噪方法的總體流程如下:
(1)對實驗對象(圖2(i))進行三維重建并建立點云映射圖像,再對含有噪聲的點云模型(圖2(ii))進行點云預(yù)處理,如圖2(iii)所示。將點云映射到二維圖像上作為圖像分割的輸入圖像,如圖2(iv)所示。在建立點云映射圖像過程中,計算圖2(ii)中的點云x和y方向坐標的最小值,將點云x和y方向的值減去其對應(yīng)的最小值得出新的點云坐標,并將點云坐標的數(shù)據(jù)轉(zhuǎn)換為整型數(shù)據(jù),對每一個點進行編號,將新的點云坐標值映射到圖像上,標記出坐標點對應(yīng)的點云序號和點云數(shù)量。
(2)對點云映射圖像進行圖像分割,在圖像分割前先設(shè)定生長區(qū)域閾值,利用區(qū)域生長的圖像方法進行區(qū)域分割,如圖2(v)所示。設(shè)置區(qū)域生長的種子點、步長、窗口以及區(qū)域生長閾值,每一次劃分區(qū)域,記錄其生長點數(shù),根據(jù)生長點數(shù)標記劃分圖像區(qū)域,并附上隨機生成的顏色顯示在圖2(v)的點云映射圖像。通過計算各個區(qū)域面積與總的區(qū)域面積判斷噪聲區(qū)域和非噪聲區(qū)域,對非噪聲區(qū)域再進行進一步的判斷得出無噪聲點云的參考區(qū)域和可能存在噪聲的待定區(qū)域,如圖2(vi)所示。
(3)判斷待定區(qū)域中是否包含噪聲的區(qū)域,對參考區(qū)域進行孔洞填充,利用k近鄰算法對待定區(qū)域和孔洞填充后的參考區(qū)域進行進一步判斷得出噪聲待定區(qū)域,如圖2(vii)所示。計算最近鄰點的待定區(qū)域輪廓點和參考區(qū)域輪廓點的三維點Z 的距離,大于設(shè)定距離的閾值判斷為噪聲點,在圖中標記為黑色背景。
(4)去除所有噪聲區(qū)域并恢復(fù)點云,根據(jù)上述步驟對圖像分割后記錄的所有噪聲區(qū)域,計算噪聲點的索引值在點云映射圖像中對該索引值對應(yīng)圖像位置的像素值設(shè)置為0 進行去除,得到去噪后的點云映射圖像,如圖2(viii)所示。對該點云映射圖像進行恢復(fù)得到新的三維立體點云模型,如圖2(ix)所示。
所提方法中的對點云映射圖像進行圖像分割的方法是基于大津閾值法(日語羅馬音“OOTSU”,簡稱Otsu)[22-23]和區(qū)域生長[24-25]相結(jié)合的圖像分割方法。大津閾值法具有對噪音和目標大小十分敏感、計算過程簡單便捷、不受輸入圖像亮度和對比度的影響等優(yōu)點,使用大津閾值法對點云映射圖像進行計算得出的閾值,作為該圖像經(jīng)過圖像分割后判斷噪聲區(qū)域的閾值,計算過程可以表示為:
其中,σ2(k)為圖像平均灰度的方差,mean 為圖像總體灰度值,zero(k)和one(k)分別為灰度直方圖hist 的零階累積矩和一階累積矩。通過計算式(2)中最大的方差σ2max(k),得出對應(yīng)的k值即為Otsu 法選取的閾值,并且作為圖像分割后劃分噪聲區(qū)域的判斷閾值。
選定初始點為區(qū)域生長的種子點對點云映射圖像進行分割,初始點(x0,y0)為點云映射圖像中像素I(x,y)不為0 并且坐標(x,y)都是最小的點,可以表示為:
設(shè)置區(qū)域生長的窗口大小為3×3、區(qū)域生長的步長為1 個像素點、區(qū)域生長的閾值為ω=10。初始生長點(x0,y0)和(x0,y0)的8 鄰域像素滿足生長準則,即(x0,y0)和(x0,y0)的8 鄰域像素差值的絕對值小于等于區(qū)域生長閾值ω,則滿足條件的鄰域像素點為該生長區(qū)域的點,記錄生長點數(shù)。在接下來的生長次數(shù)中,設(shè)置上一次生長區(qū)域所有點為起始生長點,并與它的8 鄰域像素進行生長準則判斷,若滿足該生長準則,則為該生長區(qū)域的點,直到所有生長點不滿足生長準則,則該生長區(qū)域停止生長,該區(qū)域劃分為圖像分割的一個區(qū)域。根據(jù)顏色分割閾值k和區(qū)域生長的種子點以及步長和窗口,對點云映射圖像進行區(qū)域生長分割得到一個區(qū)域,進行記錄。在點云映射圖像中刪除該區(qū)域,繼續(xù)選定剩下分割區(qū)域中滿足式(3)的初始點作為區(qū)域生長的種子點,不改變區(qū)域生長的步長和窗口,對點云映射圖像進行再次分割。循環(huán)反復(fù),直到所有的區(qū)域都被分割完畢。對圖像分割完畢后,為了對每個區(qū)域進行更好的區(qū)分,使用隨機生成的圖像RGB數(shù)值對每個區(qū)域進行上色,并且設(shè)置每個區(qū)域的RGB 數(shù)值都不相同使每個區(qū)域在圖像上的顏色都不相同,便于區(qū)分每一個區(qū)域。在圖2(v)中,分割出來的不同區(qū)域用不同的顏色表示在點云映射圖像上。
計算圖2(v)中所有分割區(qū)域面積S,設(shè)Si(i為整數(shù))為分割出來的每一個區(qū)域面積,可以表示為:
式中,region(i)表示為圖像分割后的區(qū)域;numbel為計算區(qū)域的元素數(shù)量,即在點云映射圖像中的該區(qū)域所包含圖像像素點的數(shù)量。將分割區(qū)域較小的區(qū)域(區(qū)域面積Si≤k)判定為噪聲區(qū)域,需要去除;將較大的分割區(qū)域判定為無噪聲點云的參考區(qū)域(區(qū)域面積Si≥0.1×S);其他的分割區(qū)域(區(qū)域面積k≤Si≤0.1×S)判定為待定區(qū)域,可能為噪聲點云區(qū)域,也可能為無噪聲點云區(qū)域。分割的區(qū)域示例表示在圖2(vi)上,原本在圖2(ii)的6 塊散亂噪聲點云經(jīng)過上述判斷方法在圖2(vi)中被判斷為6 個噪聲區(qū)域。在圖2(vii)中,記錄通過區(qū)域面積判斷出的噪聲區(qū)域并刪除,進一步對待定區(qū)域是否為噪聲區(qū)域進行判斷。
為避免存在孔洞無法利用參考區(qū)域?qū)Υ▍^(qū)域判斷是否存在噪聲區(qū)域的情況,對參考區(qū)域進行孔洞填充,標記孔洞填充后的參考區(qū)域的像素坐標點(u,v)。利用k近鄰算法對參考區(qū)域和待定區(qū)域進行噪聲區(qū)域判斷,計算待定區(qū)域的像素坐標點(u0,v0)與填充孔洞后的參考區(qū)域的所有的像素坐標點(u,v)的一個最近鄰即最短距離,若最近鄰點的距離為0,說明待定區(qū)域處于參考區(qū)域內(nèi),記錄為內(nèi)部區(qū)域情況;若最近鄰點的距離大于0,說明待定區(qū)域處于參考區(qū)域外,記錄為外部區(qū)域情況,如圖3 所示。圖3(a)為待定區(qū)域在參考區(qū)域內(nèi)部的情況,最近鄰點為待定區(qū)域輪廓的點,也屬于參考區(qū)域內(nèi)的點,因此最近鄰點的距離為0。圖3(b)為待定區(qū)域在參考區(qū)域外部的情況,待定區(qū)域輪廓與參考區(qū)域輪廓最近鄰點的距離大于0。對待定區(qū)域處于參考區(qū)域內(nèi)外部情況的噪聲區(qū)域判斷流程圖如圖4 所示。圖4中計算的歐式距離D可以表示為:
圖3 待定區(qū)域與參考區(qū)域位置判斷示意圖Fig.3 Schematic diagram of location judgment of unde‐termined area and reference area
式中,Z1為待定區(qū)域像素點(u0,v0)的深度值,Z2為參考區(qū)域像素點(u,v)的深度值,根據(jù)式(1)可以計算得出二者的深度值。圖4 中歐式距離的判斷設(shè)定值與顏色分割閾值相等。在圖2(vii)中,經(jīng)過區(qū)域生長的圖像分割得出在圖2(vi)中的待定區(qū)域經(jīng)過k近鄰算法判斷得出該區(qū)域位于參考區(qū)域外部。根據(jù)圖4 區(qū)域分割判斷噪聲區(qū)域流程圖和式(4),選取待定區(qū)域輪廓與參考區(qū)域輪廓最近鄰的兩個像素點計算兩點之間的Z值的歐式距離。計算得出D與歐式距離設(shè)定值δ進行比較,若D>δ,則該待定區(qū)域為噪聲區(qū)域。對所有的最近鄰點進行計算并記錄待定區(qū)域中所有的噪聲區(qū)域。
圖4 區(qū)域分割判斷噪聲區(qū)域流程圖Fig.4 Flow chart of region segmentation to determine noise region
對區(qū)域分割過程中記錄的所有噪聲區(qū)域進行去除,在點云映射圖像中,把所含噪聲區(qū)域的像素點的像素數(shù)值設(shè)置為0,刪除噪聲區(qū)域。刪除噪聲區(qū)域后的點云映射圖像如圖2(viii)所示。去除噪聲后的點云映射圖像與絕對相位圖進行點乘計算得到去除噪聲點云后的絕對相位圖。根據(jù)圖1 中的基于雙波長條紋投影的三維形貌測量原理,利用絕對相位圖和相機、投影機標定的內(nèi)外參數(shù)并根據(jù)式(1)進行三維重建計算得出去除噪聲的三維點云,如圖2(ix)所示。在圖2(ix)中,圖2(ii)中的部分點云在經(jīng)過一系列的區(qū)域分割判斷為噪聲區(qū)域并經(jīng)過被去除后,得出最終去除噪聲的三維點云模型。
為驗證所提方法的有效性,在完成系統(tǒng)標定后,選取1 個玩偶作進行三維重建實驗。本次實驗使用的是德州儀器(TI)公司的DLPLCR4500 EVM 投影儀和寶視納公司的Basler ace 的相機,該投影儀和相機的分辨率分別為1 280×800 和1 280×1 024。使用MATLAB2020b 軟件編程實現(xiàn)所提方法,并在計算機(內(nèi)存為16 GB,主頻為英特爾i5-9300 2.40 GHz)上進行測試。MATLAB的仿真界面如圖5 所示,圖中的all_pic.m 文件為點云去噪仿真實驗的主函數(shù)文件,文件中包含了圖1 的雙波長條紋投影的三維重建過程、三維點云去噪過程和三維點云精度計算。待測物體1 如圖6(a)所示,相機對待測物體1 拍攝的其中1 張變形條紋圖如圖6(b)所示。根據(jù)圖1 中的基于雙波長條紋投影的三維形貌測量原理,利用PSP對多張變形條紋圖進行解析和相位展開獲得絕對相位圖,如圖6(c)所示。結(jié)合三維標定參數(shù)和待測物體1 的絕對相位圖進行三維重建,重建后的三維點云如圖6(d)所示。根據(jù)三維重建的結(jié)果,待測物體1 的三維點云周圍存在散亂、塊狀噪聲點云,需要對三維點云進行點云去噪。
圖5 MATLAB 仿真界面Fig.5 MATLAB simulation interface
圖6 待測物體1 及其重建的三維點云Fig.6 Object 1 and its reconstructed 3D point cloud
對待測物體1 進行的點云去噪實驗,如圖7所示。采用3.2 節(jié)的圖像分割方法,通過對點云映射圖像進行分割得出標記所有分割區(qū)域的點云映射分割圖像如圖6(b)所示。根據(jù)Otsu 算法和式(2),對圖6(a)中的點云映射圖像進行分割閾值計算。將點云映射圖像轉(zhuǎn)化為8 位灰度圖像進行灰度直方圖計算得到256×1的矩陣hist,圖像總體灰度值為mean=8 710.45,把mean 和hist 代入式(2)計算得到256×1 的矩陣σ2(k)(0 ≤k≤255)。對該矩陣使用max 函數(shù)進行最大值索引,得出劃分噪聲區(qū)域閾值k=116。根據(jù)3.2 節(jié)圖像分割部分,設(shè)置初始點即生長區(qū)域種子點為(x0,y0)、區(qū)域生長的窗口大小為3×3、區(qū)域生長的步長為1 個像素點以及每次區(qū)域生長的閾值為ω=10。對點云映射圖像進行圖像分割,判斷該圖像的噪聲區(qū)域,并對噪聲區(qū)域進行去除。在點云去噪實驗的圖像分割中,圖7(a)中選擇的初始生長點為:
圖7 待測物體1 點云去噪實驗圖Fig.7 Point cloud denoising experiment of object 1
式中,(x0,y0)的參數(shù)都滿足式(3)對初始點的選擇。根據(jù)區(qū)域生長準則,對初始點進行區(qū)域生長,初始點的8 鄰域像素點只要滿足:
式中,(xregion,yregion)為區(qū)域生長中該區(qū)域的點,I(xregion,yregion)為該區(qū)域的像素點對應(yīng)的數(shù)值,(xregion,yregion)在第一次區(qū)域生長中只有(x0,y0),I(x,y)為該區(qū)域的像素點8 鄰域像素點的數(shù)值。滿足式(7)的像素點I(x,y)為生長區(qū)域的點,進行下一次區(qū)域生長的判斷,區(qū)域生長過程的示意圖如圖8 所示。圖8 中的表格為部分點云映射圖像像素值,初始點為(717,499)。在第一次區(qū)域生長中,滿足式(7)的初始點的8 鄰域像素點只有(716,500),該點為該生長區(qū)域的點,是進行下一次區(qū)域生長的判斷點。在第二次區(qū)域生長中,只有(715,501)是滿足區(qū)域生長準則要求并且是生長區(qū)域像素點(716,500)的8 鄰域像素點,則(715,501)也為該生長區(qū)域的像素點。在第三次區(qū)域生長中,有4 個像素點滿足區(qū)域生長準則并且是點(715,501)的8 鄰域像素點,分別為(714,501),(714,502),(715,502),(716,502)。根據(jù)上述步驟對該4 個像素點繼續(xù)進行區(qū)域生長,直到所有生長點都不滿足式(7)的計算,則停止區(qū)域生長,對該區(qū)域進行記錄。根據(jù)式(4)計算該區(qū)域的面積,該區(qū)域面積為S1=46 529。記錄的區(qū)域如圖9(a)所示,對該區(qū)域在點云映射圖像中進行刪除,如圖9(b)所示。繼續(xù)選定剩下的待分割區(qū)域中滿足式(3)的初始點作為區(qū)域生長的種子點進行分割,直至圖中所有非0 的像素點都處于各個分割區(qū)域中。對圖像分割完畢后,使用不同的RGB 數(shù)值在點云映射圖像上表示每一個分割的區(qū)域。根據(jù)3.3 節(jié)噪聲區(qū)域判斷中總的區(qū)域面積、噪聲區(qū)域劃分閾值k和參考區(qū)域劃分閾值0.1×S,對所有區(qū)域進行區(qū)域劃分,得出參考區(qū)域、噪聲區(qū)域和待定區(qū)域的數(shù)據(jù),如表1所示。表1為對物體1 的點云映射圖像進行圖像分割、記錄區(qū)域數(shù)量并且根據(jù)式(4)進行區(qū)域面積計算的結(jié)果。根據(jù)表1 可知,圖像分割后總共有95 個區(qū)域,區(qū)域總面積S=190 295,無噪聲的參考區(qū)域有3 個,噪聲區(qū)域有66 個,待定區(qū)域有26 個。
圖8 區(qū)域生長的過程示意圖Fig.8 Schematic diagram of the process of regional growth
表1 物體1 的圖像分割結(jié)果Tab.1 Image segmentation result of object 1
對待定區(qū)域進行進一步的判斷,設(shè)置待定區(qū)域與參考區(qū)域最近鄰點的歐式距離判斷設(shè)定值為δ=10。在圖7(a)中存在兩最近鄰點(637,536)為參考區(qū)域上的點,(636,536)為待定區(qū)域上的點,兩點的距離不為0,因此該待定區(qū)域在參考區(qū)域外。已知該兩點的Z值分別為Z(637,536)=159.382 7,Z(636,536)=215.272 7。根據(jù)式(4)計算兩點Z值的歐氏距離為55.454 4。根據(jù)3.3 節(jié)噪聲區(qū)域判斷部分,已知D>δ=10,因此,該待定區(qū)域為噪聲區(qū)域,進行記錄。對所有的待定區(qū)域與參考區(qū)域的最近鄰點進行索引,得出在點云映射圖像中對應(yīng)的深度值Z,對兩點之間的深度值進行式(5)的計算得出新的歐式距離D與歐式距離設(shè)定值δ進行比較,若D>δ,則該待定區(qū)域為噪聲區(qū)域,直到所有待定區(qū)域與參考區(qū)域的最近鄰點都進行判斷,計算出所有待定區(qū)域和參考區(qū)域的最近鄰點的Z值和歐式距離,如表2 所示,結(jié)合歐式距離設(shè)定值δ對每一個待定區(qū)域進行判斷。根據(jù)表2,26 個待定區(qū)域中有25 個待定區(qū)域為噪聲區(qū)域,對待定區(qū)域中的噪聲區(qū)域進行記錄。
表2 物體1 待定區(qū)域中的噪聲區(qū)域分析結(jié)果Tab.2 Noise region analysis results in the pending region of object 1
根據(jù)表1和表2 可知,經(jīng)過圖像分割后有66個噪聲區(qū)域,通過k近鄰算法對待定區(qū)域進行判斷得出待定區(qū)域中有25 個噪聲區(qū)域。因此,記錄的總噪聲區(qū)域一共有81 個。對81 個區(qū)域所有的像素點在點云映射圖像中進行索引,把噪聲區(qū)域所在像素點的像素數(shù)值設(shè)置為0,達到去除噪聲的效果。根據(jù)3.4 節(jié)去除噪聲區(qū)域恢復(fù)點云部分,去除噪聲后的點云映射圖像與圖6(c)中的絕對相位圖進行點乘,得到新的去除噪聲后的絕對相位圖,再結(jié)合標定參數(shù)和去噪后的絕對相位圖進行三維重建得到去除噪聲后的三維點云模型,如圖7(d)所示。
根據(jù)點云去噪的結(jié)果對點云的去噪精度進行計算,表達式為:
式中:P1為圖7 中圖像分割后判定的無噪聲參考區(qū)域點云數(shù)量,P2為圖像分割后判定的待定區(qū)域經(jīng)過k近鄰算法后計算的無噪聲區(qū)域點云數(shù)量。
本文所提方法與半徑濾波算法、體素濾波算法以及文獻[20]所提的點云濾波算法進行去噪結(jié)果的對比分析。其中P1為濾波算法判定的無噪聲區(qū)域點云數(shù)量,P2為濾波算法把噪聲點判定為無噪聲點的點云數(shù)量。表3 為物體1 的去噪結(jié)果分析。根據(jù)表3 可知,體素濾波算法在對比分析中的速度最快只有0.081 s,但是P2與其他方法相比較高,P1與其他方法相比較低,對于噪聲區(qū)域的區(qū)分度不高。點云的精度也較低,只有13.977%。半徑濾波算法較好,精度可以達到89.314%,并且所需要的時間只有0.755 s,但是P2與所提方法和文獻[20]所提算法相比較大。本文所提方法與文獻[20]相比,使用圖像閾值分割方法和區(qū)域生長的方法代替文獻[20]中的圖像處理部分實現(xiàn)三維點云去噪,并且所提方法的點云精度更高,可以達到99.974%,去噪過程的時間為0.954 s。
表3 物體1 去噪結(jié)果Tab.3 Denoising effect of object 1
為了進一步驗證點云去噪的效果,選擇了另外一個物體進行三維重建,其過程和上述過程一樣,選取的圖像分割的參數(shù),即種子點的選取、生長步長、生長窗口、顏色特征提取以及區(qū)域生長閾值ω和歐式距離設(shè)定值δ保持不變。圖10 為待測物體2 及其三維重建過程。待測物體2 的三維點云周圍也存在散亂、塊狀噪聲點云,需要對三維點云進行點云去噪。對物體2 的點云去噪實驗如圖11 所示,通過上述對式(2)進行計算得出噪聲區(qū)域劃分閾值為k=119。根據(jù)上述的圖像分割過程對該點云映射圖像進行圖像分割,判斷該圖像的噪聲區(qū)域,并對噪聲區(qū)域進行去除。表4 為根據(jù)3.2 節(jié)和3.3 節(jié)中圖像分割和區(qū)域判斷的方法對物體2 的點云映射圖像進行分割所得到的區(qū)域以及根據(jù)式(4)進行區(qū)域面積計算的結(jié)果。根據(jù)表4 可知,物體2 的點云映射圖像一共被分割為44 個區(qū)域,區(qū)域總面積為153 489,圖像分割后的噪聲區(qū)域一共有24 個,待定區(qū)域一共有19 個。表5 為根據(jù)3.3 節(jié)噪聲區(qū)域判斷部分,利用k近鄰算法對待定區(qū)域進行進一步判斷待定區(qū)域是否存在噪聲區(qū)域的結(jié)果。在表5 中,19 個待定區(qū)域經(jīng)過判斷后,其中18 個待定區(qū)域被判定為噪聲區(qū)域,并進行記錄。根據(jù)表4 和表5 可知,記錄總的噪聲區(qū)域一共有42 個,對噪聲區(qū)域所有的像素點在圖11(b)中的點云映射圖像進行索引,并對該像素點的像素數(shù)值設(shè)置為0,達到去除噪聲的效果,去噪后的點云映射圖像如圖11(c)所示。根據(jù)3.4 節(jié)去除噪聲區(qū)域恢復(fù)點云部分,去噪后的點云映射圖像與圖10(c)中的絕對相位圖進行點乘,得到去除噪聲后的絕對相位圖,再結(jié)合標定參數(shù)和去噪后的絕對相位圖進行三維重建得到去除噪聲后的三維點云模型,如圖11(d)所示。
圖10 待測物體2 及其重建的三維點云Fig.10 Object 2 and its reconstructed 3D point cloud
圖11 待測物體2 點云去噪實驗圖Fig.11 Point cloud denoising experiment of object 2
表4 物體2 的圖像分割結(jié)果Tab.4 Image segmentation result of object 2
表5 物體2 待定區(qū)域中的噪聲區(qū)域分析結(jié)果Tab.5 Noise region analysis results in the pending region of object 2
根據(jù)式(8),對點云進行進一步的計算并且與其他方法進行比較。本文所提方法與半徑濾波算法、體素濾波算法以及文獻[20]所提的點云濾波算法在物體2 中進行對比實驗分析。表6 為物體2 的去噪結(jié)果分析。根據(jù)表6 可知,體素濾波算法的去噪時間最短只有0.07 s,然而去噪精度為最低,只有13.972%。半徑濾波算法的去噪速度僅次于體素濾波算法,但是去噪精度不如文獻[20]所提的方法和本文所提方法。本文所提方法的去噪精度最高,可以達到99.436%,去噪時間為0.905 s。
表6 物體2 去噪結(jié)果Tab.6 Denoising effect of object 2
選取一個體積較小的物體3 進行三維重建和點云去噪實驗,選取的圖像分割的參數(shù),即區(qū)域生長種子點的選取、生長步長、生長窗口、顏色特征提取以及區(qū)域生長閾值ω和歐式距離設(shè)定值δ保持不變。通過上述實驗計算噪聲區(qū)域劃分閾值k的方法對點云映射圖像進行計算,得出k=128。整個實驗過程如圖12 和圖13 所示。表7 和表8 分別為根據(jù)上述步驟和涉及圖像區(qū)域分割的參數(shù)對物體3 的點云映射圖像進行圖像分割的結(jié)果以及對所有待定區(qū)域進行進一步判斷是否為噪聲區(qū)域的結(jié)果。該物體總共被劃分成22 個區(qū)域,其中參考區(qū)域有1 個,噪聲區(qū)域有9 個,待定區(qū)域有12 個。在表8 中,通過上述方法對待定區(qū)域進行判斷,得出有11 個待定區(qū)域為噪聲區(qū)域。根據(jù)表7 和表8,對記錄的所有噪聲在圖13(b)中的點云映射圖像進行去除,得到去除噪聲區(qū)域的點云映射圖像,如圖13(c)所示。結(jié)合圖13(c)、圖12(c)和三維標定參數(shù),恢復(fù)物體3 的三維點云,得出去噪的三維點云模型,如圖13(d)所示。在圖13(d)中,圖12(d)中的散亂噪聲點以及塊狀噪聲點云都已被去除。對該點云進行點云精度計算并與其他方法的去噪實驗進行比較,如表9所示。在表9 中,所提方法的去噪精度Q在對比實驗中的數(shù)值最高,為99.944%,去噪時間為0.875 s。
表7 物體3 的圖像分割結(jié)果Tab.7 Image segmentation result of object 3
表8 物體3 待定區(qū)域中的噪聲區(qū)域分析結(jié)果Tab.8 Noise region analysis results in the pending region of object 3
表9 物體3 去噪結(jié)果Tab.9 Denoising effect of object 3
圖12 待測物體3 及其重建的三維點云Fig.12 Object 3 and its reconstructed 3D point cloud
圖13 待測物體3 點云去噪實驗圖Fig.13 Point cloud denoising experiment of object 3
通過上述實驗例子,所提方法通過圖像分割的處理方式快速定位噪聲點云,可在1 s 以內(nèi)對基于結(jié)構(gòu)光條紋投影的三維點云重建過程中產(chǎn)生的散亂、塊狀噪聲點云實現(xiàn)有效去除,并能提升點云的去噪精度。
基于結(jié)構(gòu)光條紋投影的三維形貌測量技術(shù)是目前最有發(fā)展前景的非接觸式光學(xué)測量技術(shù)之一。本文在雙波長條紋投影的三維重建基礎(chǔ)上提出了基于圖像分割的點云去除噪聲的方法。根據(jù)點云進行預(yù)處理建立點云映射圖像,對點云映射圖像進行圖像分割處理,在點云映射圖像上去除判斷出的噪聲區(qū)域,將三維點云映射到二維圖像上進行計算判斷,避免在三維空間進行復(fù)雜計算。實驗結(jié)果表明,經(jīng)過所提方法進行點云去噪后,點云精度最高可以達到99.974%;對于點云數(shù)量不超過16 萬個三維像素點的三維點云,去噪時間少于1 s。所提方法可以有效去除產(chǎn)生噪聲的點云,適用于基于結(jié)構(gòu)光條紋投影進行三維重建的點云去噪。