三维点云配准 matlab,一种基于保局PCA的三维点云配准方法与流程
本發明屬于三維重建技術領域,尤其涉及一種基于保局PCA的三維點云配準方法。
背景技術:
三維激光掃描儀采用激光測距方法,能夠高效地獲取目標物的三維數據。為了得到物體完整的三維點云數據,需要通過數據配準將不同視角的點云數據轉換到同一個坐標系下。三維點云配準是三維重建的重要環節,在逆向工程、計算機視覺等領域均有廣泛的應用。點云配準方法分為手動配準、依賴儀器的配準和自動配準。目前自動配準主要分為基于特征尋找對應關系的配準、基于統計學計算剛體變換的配準和迭代計算最小誤差的配準3類方法。
基于主成分分析(PCA)的配準方法是屬于基于特征尋找對應關系的配準方法。該方法主要利用點云數據體積的主軸方向進行配準。可以利用PCA算法計算源點云與目標點云的協方差矩陣,根據協方差矩陣求出源點云和目標點云之間的旋轉矩陣和變換矩陣。
在處理三維點云時,初始獲取的三維點云維數過高,在進行特征提取分析時需要耗費大量的時間。PCA利用降維處理的數學方法,把多指標轉化為少數幾個綜合指標,并保持數據集的整體方差結構??紤]到PCA的特征矢量具有旋轉不變性的特點,基于PCA的點云配準算法具有較好的穩定性和效率。但PCA點云配準算法在特征提取時只考慮整體結構,無法提取局部結構特征。因此,需要改進PCA點云配準算法的局部結構保留特性。
保局投影算法(LPP),進行線性降維時可以保留數據局部結構。當采樣的數據集位于一個嵌入在高維空間中的低維流形上時,LPP算法可以較好地保留數據集的局部結構??梢员A艟哂袕碗s紋路結構點云模型的細節紋路,提高點云模型的配準效率和精度。
技術實現要素:
本發明提出了一種基于保局PCA的三維點云配準方法,為了保留點云局部特征,采用保局投影LPP的思想,通過K近鄰準則構造點云的鄰接圖及其補圖。對鄰近點和非鄰近點采取不同的處理方式進行特征提取,通過特征矩陣求得轉換參數,進行坐標歸一化完成配準。
本發明思路為首先使用采用K近鄰準則判斷得到物體完整的三維點云數據中各點是否相鄰近,并且根據K近鄰準則生成鄰接圖和補圖,構造權值矩陣;然后采用保局PCA算法進行特征提取,求得特征值對應的特征向量并且將特征值從大到小排序,選取排序靠前的r 個特征值對應的特征向量構造特征矩陣;最后根據特征矩陣求出轉換參數,進行坐標歸一化,完成三維點云的配準。
為了實現三維點云配準快速且精準的問題,一種基于保局PCA的三維點云配準方法,具體實現過程包括:
1)、使用三維激光掃描儀掃描得到物體完整的三維點云數據,采用K近鄰準則判斷點云數據中各點是否相鄰近,通過K近鄰準則生成鄰接圖和補圖,構造權值矩陣,具體步驟如下:(高維空間Rd中的點云數據記為U=(u1,u2,…,un),其中,點ui的K-鄰域是指集中在點ui周圍并與點ui直線距離最短的k個數據點)
①建立空間包圍盒,即建立包含所有點云數據的最小長方體空間,邊長為xmax-xmin, ymax-ymin,zmax-zmin;
②采用空間單元格法對包圍盒進行劃分,按三個坐標軸方向將包圍盒劃分為a×b×c 個邊長為l的子立方體,a、b、c分別為空間包圍盒x、y、z方向上的子立方體數量;并且,計算點ui所在子立方體的索引號,其所在子立方體的三個坐標軸方向的索引號分別為i,j, k;
③在點ui所在子立方體及周圍相鄰的27(3×3×3)個子立方體中查找點ui的k個鄰近點。為點ui建立一個鏈表,點ui與周圍27個子立方體中的點按距離從小到大的順序存放在鏈表中,鏈表中前k個點即為點ui的k個鄰近點。如此可以求出每個數據點的k近鄰。
④根據k近鄰準則建立鄰接圖F,如果點ui和點uj鄰近,則兩點之間用邊連接。建立圖F',與圖F相反,如果點ui和點uj非鄰近,則兩點之間用邊連接。給邊賦權值,構造權值矩陣。圖F中,鄰近點ui和uj的權值Sij可以通過式子sij=exp(-||ui-uj||2/t)得到;非鄰近點之間由于沒有邊相連,可定義其權值Sij為0。圖F'中,非鄰近點ui和uj的權值 Sij'為1;鄰近點的權值Sij'為0。
2)采用保局PCA算法進行特征提取,使非鄰近點在投影空間盡可能分散,又保留點云數據原有的鄰近關系,求得特征值對應的特征向量,具體步驟如下:
①結合LPP算法特性,對鄰近點使用約束等式,讓鄰近點投影到低維空間中仍保持較 近的距離。因此,保局PCA特征提取的優化函數可表示為式子由于鄰近 點的權值Sij'設為0,非鄰近點的權值Sij'設為1,因此,可使得非鄰近點在投影空間中盡 可能地被分散。在對鄰近點的約束等式中,鄰近點的距離越小,Sij的值越大,它們對應的低 維空間投影vi和vj的距離就越小。因此,高維空間中離得較近的點投影到低維空間中時仍 保持近的距離,這樣保留了點云數據的局部結構。
②假設W為最優投影方向,通過拉格朗日乘數法計算,該優化問題可轉化為廣義特征分解問題;然后求出特征值λ(λ1,λ2,…,λm)和對應的標準特征向量矩陣W(w1,w2,…,wm)。
3)將該函數的m個特征值從大到小排列,得到λ1≥λ2≥…≥λr≥…≥λm,w1、w2、…、wr、…、 wm是相應的標準特征向量;如果需要保留前r個成分,則保留的百分比計算公式為式子一般選擇百分比超過80%就可以代表數據的絕大多數特征。按照百分比公式求出r,則λ1≥λ2≥…≥λr是該函數最大的r個特征值,w1≥w2≥…≥wr是相應的標準特征向量。則高維數據在低維空間中的投影就可以得出。
1)根據特征矩陣求出轉換參數,進行坐標歸一化,完成三維點云的配準,具體步驟如下:
①設P=(p1,p2,...,pn),Q=(q1,q2,...,qm)分別為目標點云數據和測量點云數據。對目標點云和測量點云進行矩陣構建,得到點云矩陣;
②對點云P和Q分別進行保局PCA特征提取,把兩個點云的特征向量和相應特征值按特征值從大到小排序;再選取能代表點云主要特征的特征矩陣WP和WQ,根據P和Q的特征矩陣得到轉換矩陣;
③把測量點云中的點坐標通過轉換矩陣,變換到目標點云所在的空間坐標系,進行坐標歸一化,實現點云配準。
附圖說明
圖1(a)、圖1(b)是Bunny模型配準結果,其中,圖1(a)配準前點云,圖1(b)保局PCA 配準算法;
圖2(a)、圖2(b)、圖2(c)是杯子模型配準結果,其中,圖2(a)配準前點云,圖2(b)PCA 配準算法,圖2(c)改進的PCA算法圖2(d)保局PCA配準算法;
圖3(a)、圖3(b)、圖3(c)是杯子模型的2個局部細節,其中,圖3(a)PCA配準算法,圖3(b)改進的PCA算法,圖3(c)保局PCA配準算法;
圖4(a)、圖4(b)、圖4(c)、圖4(d)是玩具模型配準結果,其中,圖4(a)配準前點云,圖4(b)PCA配準算法,圖4(c)改進的PCA算法,圖4(d)保局PCA配準算法;
圖5(a)、圖5(b)、圖5(c)是玩具模型某個局部細節,其中,圖5(a)PCA配準算法,圖5(b)改進的PCA算法,圖5(c)保局PCA配準算法;
圖6為本發明的基于保局PCA的三維點云配準方法流程圖。
表一是配準誤差比較(μm)
表二是配準平均時間比較(s)
具體實施方式
下面結合實例對本發明進行驗證其相對于其他算法的優越性。
如圖6所示,本發明提供一種基于保局PCA的三維點云配準方法,首先使用采用K 近鄰準則判斷得到物體完整的三維點云數據中各點是否相鄰近,并且根據K近鄰準則生成鄰接圖和補圖,構造權值矩陣;然后采用保局PCA算法進行特征提取,求得特征值對應的特征向量并且將特征值從大到小排序,選取排序靠前的r個特征值對應的特征向量構造特征矩陣;最后根據特征矩陣求出轉換參數,進行坐標歸一化,完成三維點云的配準。
為了驗證改進算法的準確性和效率,分別選擇三組點云模型,利用Matlab進行仿真實驗。第一組實驗采用經典的Bunny點云模型,第二組實驗采用普通三維激光掃描儀掃描得到的玩具點云模型,第三組實驗采用掃描得到的瓶子點云模型。實驗采用了PCA點云配準算法、一種基于K-D樹優化的ICP三維點云配準算法和本文的基于保局PCA的點云配準算法。
1)第一組實驗對Bunny模型點云采用基于保局PCA的點云配準算法進行配準,實驗結果如圖1所示。圖1(a)為配準前的初始點云,兩個點云分別包含40835個點和40869個點,圖1(b)為配準結果。實驗結果表明,基于保局PCA的點云配準算法能夠取的較好的變換參數,將兩點云調整到準確的位置,獲得較好的配準效果。
2)第二組實驗對瓶子模型點云采用三種不同的配準算法進行配準,兩個點云分別包含16209個點和16178個點,實驗配準結果如圖2(a)、圖2(b)、圖2(c)所示,配準結果的2個局部細節如圖3(a)、圖3(b)、圖3(c)所示。實驗結果表明,基于保局PCA的點云配準算法與PCA點云配準算法、按點云大小給定尺度的改進PCA算法相比,配準精度明顯提高,模型局部細節的清晰度和完整性有明顯的改進。
3)第三組實驗對一個普通玩具模型點云進行配準,兩個點云分別包含25947個點和 25869個點,實驗配準結果如圖4(a)、圖4(b)、圖4(c)、圖4(d)所示,配準結果的某個局部細節如圖5(a)、圖5(b)、圖5(c)所示。實驗結果表明,基于保局PCA的點云配準算法在局部結構特征保留方面有明顯的改進,模型上一些細節復雜的紋路可以更清晰的表示出來,局部細節“米老鼠”圖案更加清晰。并且,在獲得整體和局部特征同時,能夠有效地剔除冗余點和錯誤的匹配點。
對三種點云配準算法進行誤差比較,不同規模點云的配準誤差如表1所示。通過表1 可以看出,無論模型點云數據的規模多大,按點云大小給定尺度的改進PCA算法的配準精度優于PCA點云配準算法,基于保局PCA的點云配準算法的配準精度優于其他2種配準算法。
對三種點云配準算法進行時間效率分析,三種算法配準的平均時間如表2所示。通過表 2可以看出,按點云大小給定尺度的改進PCA算法的配準時間最大,說明該算法的配準精度的提高是以犧牲時間效率為代價的,而基于保局PCA的點云配準算法的配準時間沒有明顯的變化?;诒>諴CA的點云配準算法使用K近鄰準則建立鄰接圖,采用空間包圍盒發對空間進行分割,通過建立索引減少了權值矩陣計算時間。
表1
表2。
總結
以上是生活随笔為你收集整理的三维点云配准 matlab,一种基于保局PCA的三维点云配准方法与流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于librtmp的推流实现
- 下一篇: matlab 电感电容,Simulink