北京信息科技大學儀器科學與光電工程學院 王新 張曉青 郭陽寬
在物體的三維形貌測量中,點云拼接對三維重建具有至關重要的意義。本文提出一種多角度被測物圖像點云拼接算法,在相機投影儀旋轉不同角度的情況下,拍攝被測物體多角度的圖像信息,設置被測物體外圍的圓孔輔助進行點云拼接,并采用ICP算法提高拼接效果。實驗結果表明,本方法拼接效果好且拼接速度有明顯提升。
隨著國內外測量技術的不斷發(fā)展與生活需求的快速增長,通過點云數據進行客觀世界三維物體數字化建模的技術逐漸應用到各行各業(yè)中,并獲得了良好的反響。當使用三維掃描設備掃描物體時,由于物體遮擋、視野范圍受限等因素,在固定視角下很難通過一次掃描便獲取物體表面完整的三維信息,因此在三維重建的實現中需要進行點云拼接。點云拼接一般分為點云粗拼接[1-4]和點云精拼接[5]。粗拼接適用于多角度點云角度相差較大的情況,依據多角度點云之間的對應點縮小點云之間角度和距離的差別,使其粗略合并在一起,點云粗拼接的精度一般不高,但能很好的提高點云整體拼接的速度。點云精拼接是指按照特定的準則作為輸入,通過算法迭代[6]不斷縮小點云拼接誤差值從而實現多角度點云的精確拼接。在進行多角度點云拼接時,一般先進行點云粗拼接,將粗拼接的結果作為精拼接的初始值。
在工程應用中常常需要測量機械零件的三維形貌,機械零件大多表面光滑,缺乏紋理特征,重復的結構較多,且對精度要求很高,測量過程不能造成零件臟污或缺損,不適用于在零件上粘貼標志點后提取特征描述子進行拼接的方法。本文將基于光柵數字投影的結構光三維測量技術應用到機械零件的三維無損檢測,采用旋轉平臺帶動相機—投影儀進行旋轉,得到機械零件多個角度的點云,利用測量區(qū)域外的圓孔實現機械零件點云的拼接。
為了實現單目光柵投影系統(tǒng)自動形成完整的點云且不用在零件上貼標志點,本文采取在檢測區(qū)域外圍制造圓孔,通過底部光源實現圓孔角度的識別,進而實現多角度點云的粗拼接。識別圓孔提取圓心的處理速度相對于從三維點云上提取變換矩陣的方法更快。
機械零件點云粗拼接步驟如圖1所示。
圖1 點云粗拼接步驟圖Fig.1 Point cloud coarse stitching step diagram
在檢測區(qū)域外圍設置19個圓孔,其中2個圓孔的間隔是其他圓孔間隔的二倍,從而實現圓孔檢測時起始方向的判定。設置旋轉平臺的旋轉角度為5個,工業(yè)相機采集完光柵投影的圖像后,會對圓孔進行圖像采集,采集第一角度的圓孔圖像后對圓孔圖像進行灰度直方圖計算,其中灰度值主要集中在0~50,不容易區(qū)分圓孔邊界。為此對該圖像進行灰度圖拉伸,拉伸后灰度值范圍在0~255,增大了圓孔邊緣灰度變化,如圖2所示,有利于提高后續(xù)圓孔識別精度。
圖2 圓孔圖像灰度拉伸結果Fig.2 Gray stretching results of circular hole image
對圖像進行高斯濾波,去除環(huán)境光以及其他干擾,減少誤差累計傳遞,濾波結果如圖3所示。對圖像進行二值化并進行連通域統(tǒng)計,去除過大或者過小的區(qū)域,結果如圖4所示。
圖3 高斯濾波結果Fig.3 Gaussian filtering result
圖4 二值化結果Fig.4 Binarization results
對圖像進行霍夫圓檢測,通過限定圓的大小,提取圓孔所在角度,圓心保存為二維坐標點集P2[i](i=1...19)。檢測圓孔外輪廓的結果如圖5所示。將檢測的圓心通過相機-投影儀標定參數轉換成三維坐標,儲存到三維坐標點集P3[i](i=1...19),用于之后平移量的確定。將各圓孔的圓心P2[i]進行圓形擬合,確定所有圓孔形成大圓的中心O,結果如圖6所示。
圖5 圓孔輪廓提取結果Fig.5 Round hole contour extraction results
圖6 大圓圓心提取結果Fig.6 Extraction of large circle center results
將圓孔圓心P2[i]分別與大圓圓心O進行斜率計算,確定每個圓孔圓心的角度。在計算過程中,由于圓孔圓心可能出現相對于大圓圓心的四個象限中,所以應分4種情況進行計算。計算得到的各圓孔角度進行排序,找取其中相差36°的兩個圓孔圓心,以順時針方向的圓孔圓心為始,對P2[i ]和P3[i]進行排列。同理可得其他角度的P2[i ]和P3[i ]點集,第一角度與其他角度求得的P2[i]點集中第一點的角度差為旋轉角度。以第一角度為基準,對第二角度的三維點集P3[i]進行旋轉得到結果如圖7所示,可以看出兩組P3[i]方向已經一致。將第一角度和其他角度的三維點P3[i]坐標之間進行求差值取平均計算,得到其他角度點云相對第一角度點云在x、y、z三個軸上的平移量。以第一角度為基準,對第二角度的三維點集進行平移得到結果如圖8所示,可以看出兩組P3[i]基本重合。
圖7 第二角度三維點集旋轉結果Fig.7 Second angle 3D point set rotation results
圖8 第二角度三維點集平移結果Fig.8 Second angle 3D point set translation results
對第二角度的點云進行旋轉平移,結果如圖10所示,與第一角度點云如圖9所示,圓孔位置基本一致,點云之間進行互補。
圖9 第一角度點云Fig.9 First angle 3D points
圖10 變換后第二角度點云Fig.10 Second angle point cloud after transformation
零件點云的粗拼接使多角度的零件點云在經過旋轉平移之后,與第一角度的點云基本重合,但多角度點云之間還存在偏差。為了使多角度點云拼接更加精準,還需要用ICP算法進行迭代拼接。
ICP算法流程圖如圖11所示。
圖11 ICP算法流程圖Fig.11 ICP algorithm flow chart
將第一角度和其他四個角度進行拼接之后的零件點云如圖12所示,零件完整點云部分地方冗余,主平面與側面的點云不均勻,需要對零件完整點云進行精簡,零件點云進行精簡之后的結果如圖13所示。
圖12 完整點云Fig.12 Complete point cloud
圖13 完整點云精簡結果Fig.13 Complete point cloud simplification results
通過相機—投影儀在旋轉平臺上旋轉,采集多角度圖像,在檢測區(qū)域外圍設定圓孔,使用識別圓孔提取圓心的方法進行點云的粗拼接,再使用ICP算法進行點云精拼接,并通過實驗驗證了方案和算法的可行性。