王一波,柳 建
(1.廣西科技大學鹿山學院 電氣與計算機工程系, 廣西 柳州 545001;2.裝甲兵工程學院 工程中心, 北京 100072)
光刀三維測量的應用日益廣泛,受到不同領域研究人員的青睞[1-5],而手持光刀測量法是對光刀法改進,具有精度高、速度快、便攜等優點,其基本原理如下:利用已經標定好的線激光器與CCD攝像機,在已知像點坐標的情況下,反求物點的空間位置。但由于受到測量環境、零件表面反光、無關背景等不確定因素影響,最初得到的零件點云數據一般都會有噪聲,情況不好時可能會是散亂的點云數據,如果不加處理,對后續測量帶來巨大的誤差。為此,點云濾波就顯得尤為重要。一般點云數據去噪分為網格化噪聲去除和無網格點云模型去噪兩種方法,網格去噪典型的代表有Taubin使用拉普拉斯濾波算法對網格模型進行去噪[6],還有Fleishman和Jones等使用具有各向同性的雙邊濾波進行網格模型的去噪[7-8],這種方法可以借助網格特征提高去噪效率,但由于需對網格的拓撲信息進行重建,增加了算法的復雜度并可能導致網格拓撲信息出現錯誤。無網格點云模型去噪直接作用于點云,算法的復雜性大大降低的同時,可以有效避免拓撲信息錯誤發生,趙乾、劉英等運用小波濾波方法對實木板材的點云數據進行預處理[9],陳超等將點云數據按照X與Y方向進行自適應的分塊基礎上進行自適應濾波[10],張芳菲等使用近鄰搜索的算法對孤立噪聲點進行了有效濾除[11]。這些方法都是面向特定的應用場景,無法滿足手持光刀法點云數據預處理需求。本研究首次針對手持光刀三維測量的原始點云數據特征,基于包圍盒的思想,提出了集平滑、壓縮以及背景分割的綜合濾波方法,分步驟進行了設計和驗證,最后利用標準件測量綜合檢驗了算法的精度。
手持光刀法是在固定光刀測量法基礎上,運用電磁跟蹤單元實時測量相對世界坐標系光刀平面與攝像機位姿,基于三角測量原理,通過整理得到手持光刀法三維測量模型如下:

(1)


圖1 手持光刀掃描
由圖1可以看出,手持光刀掃描和固定光刀掃描相比,點云數據會出現碎片化、密度大、背景冗余等問題,后續需進行拼接處理,這就要求點云數據濾波能夠克服上述問題,提供魯棒性好的處理算法。
包圍盒算法最初用于虛擬現實空間兩個不規則物體碰撞檢測,采用構建AABB包圍盒的方法來查找兩物體之間的可能相交區域,沿坐標軸的包圍盒AABB在碰撞檢測的研究歷史中使 用得最久、最廣。軸向包圍盒AABB是被定義為包含該對象各邊平行于坐標軸的最小的六面體如圖2所示,是應用最早的包圍盒。AABB可表示為
{(xe,ye,ze)|ax≤x≤bx,ay≤y≤by,az≤z≤bz{
(2)
式中ax,bx,ay,by,az,bz分別是該AABB在X、Y、Z坐標軸上的投影的最小和最大坐標值。分別計算組成對象的圖元集合中各個元素頂點的X坐標、Y坐標和Z坐標的最小值和最大值即可確定,因此描述一個AABB僅需6個標量[12]。

圖2 AABB包圍盒
點云濾波是針對光刀測量特點,對點云數據進行相應的平滑處理、數據壓縮以及消除背景等過程的統稱。
數字圖像處理中處理的是灰度信息,即根據像素所在的位置和它們的灰度信息來計算新的灰度信息,而三維點云數據沒有灰度信息,需要把其中的一維當作灰度信息來處理,通常選Z坐標值。運用包圍盒劃分思想,首先找到點云中所有點坐標在X,Y,Z三個方向的最大值和最小值:Xmax,Xmin,Ymax,Ymin,Zmax,Zmin。定義包圍盒為邊長分別是Xmax-Xmin,Ymax-Ymin,Zmax-Zmin,以(Xmax,Ymax,Zmax)和(Xmin,Ymin,Zmin)為對角點的長方體,其所有面分別和坐標軸平行。然后按坐標軸方向將包圍盒分割成小正方體,每個正方體的邊長設置為:
l=1.5+ε(mm)
(3)
其中,1.5表示掃描線的間隔,根據經驗確定;ε為自定義的容差。設N為點云中所有點的總數目,V為包圍盒的體積,ρ為每個小正方體中所包含的點的平均數目,則它們與小正方體邊長存在以下關系:
(4)
為確定每個點所在的小正方體,設任意一個點的三維坐標為(x,y,z)。這樣,根據其坐標值就可以計算這個點所屬的小正方體的坐標:

(5)

(6)

(7)
然后將這個點在點云數據中的索引存入對應的小正方體(α,β,γ)數據結構中,遍歷點云數據中的每個點,重復以上的計算,就把所有點都存入了對應的小正方體中。
點云降噪的最后一個步驟是比較每個小正方體中點的數目,一般情況下小于平均數ρ比較多的點即全部認為是噪聲點,比如只有一個或兩個點,將其坐標置為(0,0,0)。
激光掃描測量每分鐘會產生上萬的點數據,這種點云提供了完整的對象零件幾何信息。但如何處理大批量的數據(點云)成為繼激光掃描測量造形的主要問題。如果直接對點云進行操作,大量數據的存儲和處理將是不可突破的瓶頸,由點生成曲面耗時長會降低幾何模型重構的效率,且整個過程也變得難以控制。實際上并不是所有點都有用,高密度的“點云”中存在大量的冗余數據,因此,有必要在保證一定精度的前提下減少掃描數據量。數據精簡的目的就是壓縮不必要的數據點,在保證精度的前提下生成適合于后續擬合的結構,故而并不產生新點,只是簡單地對原始點云中的點進行刪節,并盡可能多地保留原始數據點的形狀特征。
為了簡化散亂的點云數據以達到數據壓縮的目的,本研究將同樣采用基于包圍盒的方法。這種方法首先采用體包圍盒來約束點云,然后將大包圍盒分解成若干個均勻大小的小包圍盒,在每個包圍盒中選取最靠近包圍盒中心的點來代替所有包圍盒中的點。接著采用了相同的均勻網格,然后用中值濾波的方法將同一網格中的所有數據用濾波得到的一個中值點代替。這種方法簡單高效。因為通過上面所述工作已經把所有點劃分到了所對應的小正方體中,這樣壓縮的工作可以在每個小正方體中進行。距離求解如下:
d2=(x-xm)2-(y-ym)2-(z-zm)2
(8)
其中,xm,ym,zm為小正方體中心的坐標值。這樣省去了開方運算,節約了不少計算時間。
掃描時會攝入背景信息,干擾三維成像系統的整體精度,而且背景信息經常是一片片的出現,所形成的點云也具有很高的密度,上節所述包圍盒劃分去噪方法并不能將其去除。本研究提出采用交互式的背景去除,其步驟如下:① 旋轉點云至合適角度,確定被測目標點云與背景點云相對位置;② 生成一個通過這條線段且和屏幕垂直的空間平面,稱為剪切面[13];③ 判斷點與剪切平面的相互位置關系,可以去除不需要的點云,即背景信息。
判斷的依據是簡單的空間解析幾何原理:設空間任意一點P的坐標為(x0,y0,z0),所畫剪切平面的方程為:
Ax+By+Cz+D=0
(9)
這個平面把三維空間分成三個部分,正面、背面和平面本身。把點P的坐標值代入平面方程,如果所得結果大于0則點P處在平面的正面,小于0則在負面,等于0則在平面上。
視點是從三維空間中的物體反射回來的所有光線的唯一匯聚點,這與眼睛觀看物體的過程是一樣的。視點所能看到的范圍是視圖體,它是一個標準的金字塔形的棱臺,把它還原為金字塔時就是視錐,錐頂就是視點所在的位置。

為了校驗濾波算法的效果,本研究用兩個標準零件來檢測系統的精度,一個為標準平面;另外一個即標定使用的標準球,兩個零件的實物照片如圖3所示。
利用本測量系統,分別對平面和球體進行掃描,前者用以表征物體表面曲率變化很小的測量精度,后者用以表征當曲率變化較大時系統的測量精度。然后對圖像進行光刀中心提取,根據三維重建模型進行空間點三維坐標解算,這樣就可以獲得在同一測量坐標系下零件表面所有采樣點的坐標,本文將重建后各點與擬合后的標準面的距離定義為系統的測量誤差。測量得到的平面和球體的點數據如圖4所示。

圖3 標準零件

圖4 標準件點云
分別采用雙邊濾波法、和近鄰搜索法本文算法對上述點云進行處理,近鄰搜索法近鄰數選擇文獻[8]中實驗的經驗值20,雙波濾波法σd取3,結果如表1所示。

表1 不同算法去噪結果
根據去噪結果分析,雙邊濾波法處理速度最快,近鄰搜索法由于沒有受到復雜的拓撲關系影響,去噪比較徹底,但時間也最長,綜合來看,本文提出的算法,去噪效率最高。
為了進一步驗證算法對于掃描結果的影響,分別對本文算法得到的點云數據進行標準平面和標準球擬合分析,其結果分別如圖5所示。
由圖5可以看出,系統在測量平面時其平均誤差大約在0.2 mm左右,最大誤差為0.35 mm,測量球時其平均誤差大約在0.3 mm左右,最大誤差為0.47 mm,符合一般的測量要求。總體來看,基于包圍盒的濾波算法可以有效濾除噪聲影響,為手持光刀測量提供了有效的支撐,精度符合最后零件測量要求。

圖5 擬合精度分析
1) 對于點云數據平滑處理,發現基于包圍盒的平滑濾波不僅可以得到較好的平滑效果,還能很好地保留原始點云數據的上升沿、下降沿等特征信息,保留了曲線的棱角特點。
2) 對于點云數據的精簡,采用基于包圍盒的壓縮算法,可以有效壓縮冗余點云數據,在曲率變化較小的地方,掃描線相對平緩,保留的點云相對較少,在曲率變化大的地方,保留的點云較為在曲率變化大的地方,保留的點云較為密集。
3) 針對點云數據的背景,采取交互式的目標與背景分割,基于OPENGL特性可以有效去除多余的背景,準確提取目標點云數據。
本文將包圍盒思想用于手持光刀三維測量點云數據濾波,實驗證明,可以滿足零件的三維測量需要。今后,將圍繞點云數據去噪、壓縮等算法的普適性進行研究。