陳國軍,孔李燕,張清偉,楊 靜
(中國石油大學(華東) 計算機與通信工程學院,山東 青島 266580)
近年來,點模型的發(fā)展優(yōu)勢越發(fā)明顯,以點云為研究對象的計算機圖形學、計算機視覺成為研究熱點,利用掃描技術得到的點云數(shù)據具有快速簡單、信息量大、容易存儲等優(yōu)點。當前對得到的點云進行修改、分析、重用已成為重要的研究課題,點云分割也由此提出。點云分割是將復雜的三維點云模型分割成為數(shù)目有限的、各自連通的、相對簡單的、方便其他程序處理應用的子部分。點云分割是一項具有挑戰(zhàn)性的研究課題。2011年引入Point Cloud Library(PCL),這個庫包含先進的3D感知算法。硬件和PCL的發(fā)展使得點云處理受到了越來越多的關注。
文中利用Kinect相機得到點云數(shù)據,經過點云配準得到點云模型,利用背景分割并結合圖像分割對點云模型進行點云模型分割得到目標點云。
點云分割是通過一定的方法將點云數(shù)據中屬性相同或相近且空間位置相鄰的點劃分為一類,點云分割可以對單幀點云進行分割,也可以對點云模型進行分割。隨著研究的深入,點云分割的算法得到不斷的補充和完善。常用的點云模型分割算法主要包括基于邊緣的分割算法、基于區(qū)域的分割算法、基于聚類的分割算法以及混合分割算法等。
點云分割是對大規(guī)模的點云數(shù)據進行分割,簡化點云數(shù)據以便后期對點云數(shù)據的加工處理。文獻[1]介紹了點云分割的定義、分類和應用情況,分析比較了幾類典型的點云分割算法,給出了各方法的理論、特點和應用范圍。
基于邊緣的分割算法,認為法向量或曲率的突變是一個區(qū)域的邊界,被封閉的邊界包圍的這個區(qū)域是最終的分割結果,基于邊緣的分割算法最重要的是找到區(qū)域邊界。文獻[2]構建符號距離函數(shù)估算點云的平均曲率,利用3D活動輪廓模型實現(xiàn)點云模型分割。由于噪聲影響,點云模型的邊緣定位精度差,使得基于邊緣的分割算法存在不足。
基于區(qū)域的分割算法包含兩種思路,一種是區(qū)域增長算法[3-4],選定種子點按照增長策略向鄰域擴散直至不存在連續(xù)點集。一種是層次分解算法,假設所有點集屬于同一目標,采用八叉樹[5]、KD樹[6]等進行層次分解,得到不同細節(jié)的分割結果。
基于聚類的分割方法,將點云分割看成具有一定特征參數(shù)的數(shù)據點的分類過程。文獻[7-9]分別采用MeanShift聚類、譜聚類以及模糊聚類實現(xiàn)點云模型的分割。王天召等[10]將K-mean用于配準算法。杜廷偉等[11]提出基于高斯混合模型聚類的深度數(shù)據分割方法,利用高斯混合模型對三維點云的法向量進行聚類,然后利用隨機抽樣一致性算法對各個聚類進行平面擬合,實現(xiàn)對場景數(shù)據的平面提取?;诰垲惖姆指罘椒?,不同的聚類能得到不同的結果。
混合分割一般包括多個步驟,基于邊緣和基于區(qū)域等方法混合使用可以彌補對應不足。其他方法如隨機抽樣一致性算法,是將點集分成局內點和局外點,通過參數(shù)形成模型。李娜等[12]將點云的r半徑密度引入RANSAC點云分割算法中,結合角度和距離對分割算法進行改進。胡偉等[13]將種子點的選取和點到距離的標準差引入RANSAC算法中,對隨機抽樣一致性算法進行了改善。趙成偉等[14]針對點云粘連現(xiàn)象,結合三維點云的空間分布和顏色信息,引入過分割方法將點云集劃分為超體素,利用歸一化方法完成粘連區(qū)域的目標分割,這一方法對樹木具有良好的分割效果。文獻[15]提出一種平面曲面生長算法非常適合用來分割平面。
三維模型分割的綜述文章可以參考文獻[16-18],這些工作大多基于三角網格模型,與網格模型相比,點云模型分割方法較少。
文中提出一種基于RGB-D的背景點云目標分割方法。利用背景幀結合圖像分割進行點云分割,從而得到獨立目標物體。
Kinect相機既可以得到物體的顏色信息,也可以得到物體的深度信息,但由于二者的分辨率不同,不能直接將顏色信息和深度信息一一對應。文中通過相機標定的方法,求得圖像坐標系和空間坐標系的變換矩陣,從而得到顏色信息深度信息一一對應的點云數(shù)據。
采用Kinect相機,首先拍攝一幀背景點云A0,然后擺放前景物體拍攝得到A1,隨后對物體進行旋轉拍攝得到物體的多角度三維點云數(shù)據A(2,3,…)。旋轉完成后,將相機固定到與第一組背景點云相對的位置,拍攝得到一幀數(shù)據B1,后將前景物體移開,再進行拍攝得到背景點云B0,由此可得到兩組背景數(shù)據A0和B0。通過Kinect獲得的三維場景的點云信息,既包含深度信息,也包含顏色信息,且深度信息和顏色信息一一對應,如圖1所示。
圖1 采集得到的顏色圖像和深度圖像
由于環(huán)境、振動、測量、設備本身的測量誤差,得到的點云存在噪聲和空洞,所以需要對點云進行去噪。采用直通濾波,對點云設置深度閾值范圍d0 利用統(tǒng)計濾波,設置好統(tǒng)計時查詢鄰近點的點數(shù)和是否為離群點的閾值后,去除離群點。 利用下采樣對獲得的噪點進行去除。體素網格濾波器可以達到向下采樣同時不破壞點云本身幾何結構的功能,減少點云數(shù)量。 根據上述步驟完成對點云的預處理。效果如圖2所示。 圖2 數(shù)據預處理 Kinect相機一次只能獲取一個角度的點云信息,要得到完整的三維物體信息,需要拍攝得到不同角度的點云數(shù)據。點云配準就是求兩個點云數(shù)據的旋轉平移矩陣,將源點云變換到目標點云的坐標系下??梢员硎緸橐韵路匠蹋簆t=R·ps+T,其中pt、ps是源點云與目標點云的一組對應點。配準分為粗配準與精配準兩部分。 粗配準的目的是找到近似的配準變換,使得配準后的點云盡可能接近,縮小兩個點云之間的差異,為點云的精確配準提供更好的初始位置。 文中利用快速點特征直方圖(FPFH)[19]對點云進行粗配,得到點云的粗配變換矩陣。在計算FPFH特征時,首先對樣本點pq計算與它的k鄰域內每個點之間的三個特征值,統(tǒng)計輸出成一個簡化的點特征直方圖。然后分別對其k鄰域中的每個點,計算得到自己的FPFH,通過式1計算得到最終的FPFH。 (1) 其中,權重ωi表示一個給定的度量空間中樣本點pq與鄰近點pk之間的距離。 精配準是在已知一個旋轉平移矩陣的前提下,進一步計算得到更加精確的旋轉平移矩陣,從而達到改善配準的效果。ICP[20]及其各種改進算法是比較經典的點云配準算法。它搜尋兩組點云數(shù)據尋找對應的最近點對,計算最優(yōu)剛體變換,不斷迭代直到滿足收斂條件,從而得到最佳旋轉平移矩陣。文中利用經典ICP算法將各角度的點云數(shù)據配準到背景點云幀A0(B0)得到完整的點云模型M,并保存各角度點云數(shù)據到背景幀的變換矩陣集合T。因為矩陣變換存在誤差,所以要盡可能少的迭代變換,提高配準精度。 文中參考背景減法,利用背景點云幀對相同參考系下的配準點云根據深度信息進行背景分割得到前景。 遍歷配準點云模型M和背景幀A0(B0),比較M中點pi(i=1,2,…,m)和A0(B0)中點qj(j=1,2,…,n)的XYZ值,其中m、n為點集M和點集A0(B0)中點的個數(shù)。將配準模型M中與背景點集A0中的XY相近Z值大于背景點云的點集刪除,以達到分割背景和前景的目的。具體方程式如下: |p[i].x-q[j].x|<0.01 (2) |p[i].y-q[j].y|<0.01 (3) |p[i].z-q[j].z|<0.01 (4) 滿足上述三個方程的配準點集M中的點pi(0 由于背景幀只是相機拍攝的一個角度,深度值大于背景的點集不能確定是前景還是背景。因而背景分割只能分割深度值小于背景的前景。需要注意的是背景幀和配準點云必須在同一個參考系下。 圖3中,左為背景點云,即A0和B0,中間為對應參考系下的配準點云,右為背景分割后得到的前景部分。 圖3 背景分割實驗效果 若場景中背景前只有一個物體,通過背景分割即可直接完成點云的目標分割。 文中結合點云分割和圖像分割,利用Grab Cut得到圖像文件中目標的顏色信息,采用比較RGB值和法向量的方法,得到目標點云數(shù)據。 Crab Cut算法[21-23]是Graph Cut的改進版,對Graph Cut不斷進行迭代。該算法利用圖像中的紋理(顏色)信息和邊界(反差)信息,只要少量的用戶交互操作即可得到良好的分割效果。采用RGB三通道混合高斯模型來對目標和背景進行建模,不斷交互迭代分割估計和模型參數(shù)學習。 Graph Cut將分割問題描述為像素zi(1 α=argminE(α,θ) (5) 其中,α為像素的標號;E為能量函數(shù);θ為前景/背景GMM概率密度模型。 具體步驟如下: (1)利用Graph Cut對背景幀圖像進行圖像分割,得到目標物體result.jpg的RGB值,保存為txt文件,如圖4所示。保存矩形對角兩點p1(x1,y1)和p2(x2,y2)。 圖4 Grab Cut分割效果 (2)讀取配準后的點云文件,在x1 R=|p.r-q.r|/256 (6) G=|p.g-q.g|/256 (7) B=|p.b-q.b|/256 (8) diff=sqrt(R*R+G*G+B*B) (9) 其中,p為圖像分割得到的RGB的一點;q為點云數(shù)據中的一點;sqrt表示開平方;diff表示兩點的相似度。 (3)以步驟2得到的點集中任一點p開始,在x1 (10) (11) 其中,k為三角面的個數(shù);ni為第i個三角面的法向量。點p的法向量由鄰近點形成的三角面的法向量共同決定。 (12) 將法向量相同的點進行標記保存,最后得到的點集即為目標物體的點云數(shù)據。 為了檢驗文中算法的實驗效果,使用Kinect 2.0深度相機;使用的開發(fā)工具有VS2013,PCL開發(fā)庫,OpenCV開發(fā)庫;使用的數(shù)據為自己拍攝的點云數(shù)據。利用文中算法、RANSAC算法和區(qū)域生長算法對點云模型進行了點云分割。 利用背景分割對配準得到的點云模型進行分割,可以有效分割出深度值小于背景的前景物體。對前景物體的目標分割,在給定范圍內按照點的鄰近信息和法向量、顏色屬性,也得到了單獨的目標物體。效果如圖5所示。 對于RANSAC隨機采樣一致性方法[12-13],PCL幾乎支持所有的幾何形狀,作為點云分割的基礎算法,RANSAC強大且必收斂,但是只可以分割較規(guī)則的平面、圓柱體或是球體。利用該方法可以簡單地分割出規(guī)則問題,卻不能分割出目標物體杯子。 圖5 文中算法分割效果 區(qū)域生成算法[24],由于原始數(shù)據所有物體通過立方體承接,即所有物體相連,如圖6左所示,使得區(qū)域生成算法分割無效?;陬伾膮^(qū)域生成算法,由于光照、陰影等原因,不能精確分割出目標物體,只能將顏色分割作為輔助方法,效果如圖6右所示。 圖6 區(qū)域生成算法分割效果 對于點云分割得到目標,有兩種思路,先配準完成后對點云模型進行分割得到目標,也可以對單幀點云先分割得到不同目標的不同側面,然后進行點云配準。但是先分割后配準,由于點云數(shù)據量少,特征匹配少,會影響配準精度,先分割后配準適用于大規(guī)模的點云數(shù)據。文中對配準完成后的點云數(shù)據進行點云分割。 對三維場景進行點云分割得到目標點云。提出了背景減法和將圖像分割和點云分割相結合的方法,通過實驗驗證了算法的有效性。該算法結合圖像分割,有效避免了點云數(shù)據的過分割和欠分割現(xiàn)象。算法的不足在于點云配準的精度會影響目標點云精度,由于物體的相互遮擋,點云數(shù)據不完整,使得最后分割出來的目標也不完整,后期可以根據目標物體的屬性對目標點云進行修復。文中利用Grab Cut對圖像進行分割,利用圖像RGB對點云進行比較得到目標點云,后期可以利用Grab Cut直接對點云數(shù)據進行選擇分割,不需要借助圖像。2.2 點云配準
3 點云分割
3.1 背景分割
3.2 目標分割
4 實驗與結果分析
5 結束語