劉菲菲,楊 鐸
(大連大學(xué) 機(jī)械工程學(xué)院,遼寧 大連 116622)
近年來,非接觸式測量方法因為其方便簡單的操作,在逆向工程領(lǐng)域中多有應(yīng)用,尤其是在復(fù)雜曲面零件的逆向數(shù)字化掃描。
隨著電子計算能力的提高和掃描設(shè)備的高精度化,更高數(shù)量級點云在非接觸測量方法中出現(xiàn),也帶來了大量噪聲和冗余數(shù)據(jù)點。為保證后續(xù)逆向工作能夠高效完成,必須做好點云的預(yù)處理。一般包括點云去噪和點云簡化兩步,先用濾波法去除有序或部分有序的大尺度噪聲干擾。
吳玉泉等[1]用空間單元格對點云進(jìn)行了點云空間的有序劃分,得到了各個單元格內(nèi)的“中心點”,并求出了距離標(biāo)準(zhǔn)偏差,根據(jù)設(shè)定的相應(yīng)閾值進(jìn)行了去噪。Rosman G[2]在標(biāo)準(zhǔn)基礎(chǔ)模型和距離掃描上應(yīng)用補(bǔ)丁協(xié)同譜分析,其魯棒性較高,應(yīng)對無序點云的去噪效果較差。崔鑫等人[3]提出了基于特征信息的加權(quán)模糊C均值聚類去噪算法,保持了點云本來特征,適用范圍較廣,從圖形上看模型線條略尖銳。史皓良[4]提出了基于點云曲率特征信息分類去噪法,針對兩種不同特征區(qū)域分別去噪,即鄰域距離平均濾波和自適應(yīng)雙邊濾波,突出了點云主體,在特征豐富區(qū)域(角點和相交的邊界線上)有較大偏差;文獻(xiàn)[5]同樣是對不同尺度的噪聲進(jìn)行了分步處理,結(jié)合了點云模糊均值聚類和點云雙邊濾波去噪的方法,去噪效果較佳。
由于小尺度噪聲往往不具有明顯規(guī)律,對其的處理放在點云精簡過程中。精簡的目的則是去除點云主體中的重復(fù)點和冗余點,用最少的點表示最多的信息。Shuai Yuan等人[6]認(rèn)為傳統(tǒng)算法經(jīng)常丟失幾何信息并且沒有動態(tài)擴(kuò)展結(jié)構(gòu),提出了一種基于共形幾何代數(shù)的簡化算法:利用球形樹構(gòu)造了多分辨率細(xì)分,利用k均值聚類計算了最小邊界球,然后用兩種具有遠(yuǎn)程計算便利性的簡化方法進(jìn)行了自我分割,適應(yīng)性簡化。
近年來出現(xiàn)一種代替簡化法[7-8]:先基于距離的聚類算法對點云進(jìn)行分類,在估計曲率較小的簇里可以用簇中心代替簇中所有點從而簡化點云。
本研究提出一種與傳統(tǒng)處理方式不同的點云簡化算法—二維截面篩選標(biāo)記法。
點云的預(yù)處理流程如圖1所示。
圖1 預(yù)處理流程
圖1中,直通濾波和統(tǒng)計濾波根據(jù)文獻(xiàn)[9]設(shè)置。
1.2.1 坐標(biāo)系轉(zhuǎn)換和選定截面
點云數(shù)據(jù)最初坐標(biāo)系為局部坐標(biāo)系LCS,點云坐標(biāo)點用(xl,yl,zl,R,G,B)表示。用一長方形截面截取點云數(shù)據(jù),截面所在面作為新建物體坐標(biāo)系MCS中的XOY面,截面一角作為新坐標(biāo)系下的原點O,其它角點坐標(biāo)分別為(a,0)、(0,b)、(a,b),截面面積為ab,點云群方向為正Z軸。
在截面上點的坐標(biāo)(xl,yl)根據(jù)旋轉(zhuǎn)和平移原則轉(zhuǎn)化為新坐標(biāo)(xm,ym),Zl坐標(biāo)不做改動。
截面選取如圖2所示。
圖2 截面選取
選取的截面向Z軸正方向每次移動z距離作為新截面,z為點之間最小平均間隔,共移動n次,共n+1張截面。n和由點云在Z方向總長度確定,使全部點云密集區(qū)被截面所截取;z由點云密度確定。為節(jié)省運算空間,點不超過5個的截面忽略不計算。每一截面轉(zhuǎn)化為新坐標(biāo)系,其點隨之轉(zhuǎn)換為新坐標(biāo)。設(shè)置點云截面面積大小固定,保證每一片都能將點云主體包括在內(nèi)。若點云主體有需要剔除縫隙雜點的部分,在截面選取時,取能使縫隙在截面上投影面積最大的面。
1.2.2 選定掃描域
本研究在截面上取一圓形掃描域,圓心為原點坐標(biāo)(xo,yo),根據(jù)計算的平均點間距[10]取圓的半徑為r(小于密集區(qū)點云平均距離),此時在直角坐標(biāo)系下圓的方程為x2+y2=r2,掃描域按照設(shè)定方向運動,圓心為(xa,yb)圓的方程變?yōu)椋?/p>
(x-xa)2+(y-yb)2=r2
(1)
掃描域初始運動方向如圖3所示。
圖3 掃描域初始運動方向
4個主運動方向+X,-Y,-X,+Y分別在圖2中用箭頭標(biāo)注。以圖3(a)的+X方向為例,圓的圓心從(0,0)直線運動到(a,0),觸到對邊返回或按2.2中介紹的觸點返回(0,0)點,在Y軸方向運動r距離,圓心到點(0,r),再繼續(xù)沿+X方向運動觸邊或觸點返回,至此以往到達(dá)(0,b),進(jìn)入主方向-Y運動。-Y,-X,+Y方向的運動規(guī)律同理。
1.2.3 篩選和標(biāo)記
目標(biāo)是篩選密集區(qū)外的孤立點和密集區(qū)輪廓的邊沿非模型點,將孤立點記為A點群,能顯示輪廓的點記為B點群,白色或淺白色點即顏色坐標(biāo)(R,G,B)>(250,250,250)的點標(biāo)記為C點群,僅有B標(biāo)記的點組成的點云即為實際輪廓組成的主要部分。
第一次觸點,I=1,此時圓心坐標(biāo)為(xa1,yb1):
(3)N>2,N個點的排序方式同理,因為圓初始沿直線方向運動,遇到的點必然在圓的下半弧段,取使連成的弧段最長的兩個點,兩點中點與圓心連成的射線方向為掃描域的新運動方向。
掃描域改變運動方向進(jìn)行第二次觸點,I=2,有以下a、b兩種情況:
(a)當(dāng)?shù)?次觸到的某點再次落在圓上,即將運動到圓外時,若圓上仍未出現(xiàn)新點,則將第1次觸的N個點標(biāo)記為A+x,且掃描域彈回初始路徑中的截面邊繼續(xù)運動,運算下一條直線運動的觸點過程;
有向面積法用到向量積,順序輸入多邊形每個頂點的坐標(biāo),按同樣的順序(順時針或反時針)兩兩叉乘。多邊形面積即為向量積之和的絕對值的一半。
設(shè)多邊形由點P0,P1,…,PN-1連線圍成,則面積S為:
(2)
為降低循環(huán)次數(shù),設(shè)置最多可觸點ε(1≤ε)次,期間若S始終小于S0,掃描域不繼續(xù)運動,返回截面邊。到下一條直線上的運動規(guī)律相同,但屏蔽截面上有標(biāo)記的點,不再被圓識別,避免重復(fù)標(biāo)記。掃描域從坐標(biāo)原點到達(dá)截面下一角,在大方向-Y的每一條直線中繼續(xù)篩選A和B點群,當(dāng)4個大方向的點群篩選完畢后,這一截面上的密集區(qū)外孤立點和輪廓均點已清晰標(biāo)記。
向Z軸正方向移動z距離的新截面再次進(jìn)行篩選,當(dāng)n+1張截面篩選完畢后,開始點的自動剔除和手動剔除工作。
1.2.4 半自動剔除
為利用單目視覺技術(shù)恢復(fù)典型機(jī)械零件夾頭的點云三維模型,筆者初步重建得到點云數(shù)目為625 482。點云可分為高密度點云和低密度點云。由文獻(xiàn)[11]知,點云數(shù)量在一萬以內(nèi)為低密度點云,如CMM測量所得;幾萬至幾千萬的點數(shù)為高密度點云,通常由光學(xué)測量法所得。本研究使用圖像掃描法三維重建設(shè)備,生成數(shù)十萬點數(shù)的中高密度點云。
其中,a方向和b方向的點云模型如圖4所示。
圖4 a方向和b方向的點云模型
零件a方向長度為50 mm,尺寸為0.2×0.2×0.2 m3。實驗裝置有柔光棚、轉(zhuǎn)臺、單反相機(jī)(佳能500D)。對夾頭拍攝144張圖片,按單目視覺原理合成零件表面輪廓的點云模型,在VC++平臺上結(jié)合OpenGL實現(xiàn)算法流程,通過處理點云數(shù)據(jù)包含零件位置、點的位置和顏色等信息,對模型進(jìn)行濾波去噪和簡化。
由塔型分解算法[12]計算得點云分辨率為3 μm/mm,可直接標(biāo)記出C點有6 379個。為將零件的中間空洞部分篩選出更多孤立點,截面從圖3(a)中a方向從左至右運動,在物體坐標(biāo)系中Z方向最長52 mm,由此計算。
根據(jù)大量實驗發(fā)現(xiàn)有3種因素最為影響篩選點數(shù):截面面數(shù)n、掃描域半徑r(μm)、觸點次數(shù)I。為清晰顯示輪廓,筆者為每個因素選取5種水平,做L25(35)正交實驗,得出B標(biāo)記出的孤立點數(shù)只和面數(shù)有關(guān),因為面數(shù)越多,篩選得到的總體點數(shù)相應(yīng)增加,運算時間也會增多,但較另外兩因素的對標(biāo)記點數(shù)量影響較小。
固定截面面數(shù)為16 000,通過對另兩個影響因素試驗得到檢測出的輪廓點數(shù)量隨觸點次數(shù)變化規(guī)律如圖5所示。
圖5 檢測出的輪廓點數(shù)量隨觸點次數(shù)變化規(guī)律
由圖5可知,B標(biāo)記的孤立點數(shù)隨I增大而增大,到一定程度檢測出的點數(shù)趨于穩(wěn)定,但檢測時間和檢測誤差也相應(yīng)增加。綜合運算時間和標(biāo)記點數(shù)量等因素,得最佳觸點次數(shù)為4。
固定I為4,掃描域半徑分別為2.3 μm,2.5 μm,2.7 μm,2.9 μm進(jìn)行簡化,檢測出的輪廓點數(shù)量隨觸點次數(shù)變化的局部簡化效果如圖6所示。
圖6 局部簡化效果圖
圖6中,隨觸點次數(shù)增加,檢測出的輪廓點數(shù)量增加,但發(fā)現(xiàn)其中點云模型丟失一部分關(guān)鍵特征,所以取掃描域半徑2.7 μm為最佳參數(shù),約分辨率的0.93倍。
文獻(xiàn)[13]采用連續(xù)變形簡化算法來簡化點云。為驗證本文算法的有效性,筆者在Intel Core i7-6700K CPU、運行內(nèi)存32GB、Windows10 64操作系統(tǒng)環(huán)境,于VC++平臺上結(jié)合OpenGL實現(xiàn)本文簡化算法中自動去除模式,處理夾頭點云模型。
同操作環(huán)境下,用連續(xù)變形法處理夾頭點云數(shù)據(jù)。筆者用兩種方法分別進(jìn)行點云預(yù)處理的局部效果,如圖7所示。
圖7 兩種方法分別進(jìn)行點云預(yù)處理局部效果圖
由圖7可知,夾頭夾縫內(nèi)處理情況較優(yōu)的是本研究方法。
處理過程記錄了運行時間并計算相關(guān)參數(shù),筆者列成本文算法和連續(xù)變形法的客觀性能對比,如表1所示。
表1 本文算法和連續(xù)變形法的客觀性能對比
表1中,Emax、Eave分別為點云模型光順的最大頂點誤差和平均誤差,Emax越小說明點云質(zhì)量越好;Eave反映模型整體的噪聲情況,其值越小,說明算法魯棒性越強(qiáng)。從表1中得出:本文算法平均Emax和Eave均低于連續(xù)變形法,在運算時間上也有優(yōu)勢。
本研究介紹了截面篩選標(biāo)記的點云簡化算法,提出了點云數(shù)據(jù)降維處理思想,強(qiáng)調(diào)在截面上要進(jìn)行統(tǒng)一坐標(biāo)變換,需要根據(jù)點的密集程度選取截面數(shù)量;在二維平面內(nèi)處理點的位置坐標(biāo)和顏色等信息。點云濾波去噪和截面篩選標(biāo)記簡化相結(jié)合的方法魯棒性較好,總體運行速度滿足普遍需求,可以充分去除小尺度噪聲點和冗余點。實驗結(jié)果表明:
(1)本研究算法適應(yīng)性強(qiáng),與大尺度去噪的直通濾波、統(tǒng)計濾波及半徑濾波結(jié)合使用,可以處理同時具有多種噪聲的中高密度散亂數(shù)據(jù)點集;
(2)算法在去除噪聲的同時,良好反映物體三維特征,防止模型的過光順。
與連續(xù)變形法比較,本研究方法的三維點云數(shù)據(jù)模型整體預(yù)處理情況較好,光順誤差小。由于掃描域半徑和掃描次數(shù)等閾值的選擇需要根據(jù)點云分辨率以及實際經(jīng)驗來確定,如何自適應(yīng)的選擇最優(yōu)參數(shù)是本研究方法今后研究的核心。