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