本發明專利技術涉及一種基于法向夾角的點云數據精簡方法,屬于計算機三維建模技術領域。本發明專利技術提出的精簡方法的具體步驟為:①讀取原始點云數據;②獲取每個數據點的k階鄰域,并計算每個數據點的單位法向量;③獲取每個數據點的法向量與該數據點的k個鄰近點法向量點積的均值V;④獲取每個數據點所在局部區域的曲率V′;⑤對點云中的所有數據點進行分類;⑥確定每個類別的采樣比;⑦對點云數據進行精簡。本方法對比傳統方法,具有以下優點:能夠保留原始點云的細節特征;避免繁瑣的二次曲面擬合與曲率估算的時間代價的。
【技術實現步驟摘要】
本專利技術涉及一種,屬于計算機三維建模
技術介紹
在逆向工程中,三維掃描儀作為一種主要的工具被廣泛使用,利用它可以獲取模型的三維點云數據,從而完成實物模型的重建。點云(point cloud)又可稱作無組織數據集,數據點之間沒有任何關系,它是單純的三維點的集合,這些點由x,y,z坐標定義。當前通過掃描測量方法獲得的點云數據是密集散亂數據,數據量極大,而且測點數據之間沒有相應的、顯式的幾何拓撲關系。傳統的三維掃描儀為光學三維掃描儀,這種三維掃描儀比較適用于對小型物體進 行三維精確建模,具有很高的掃描精度,價格相對低廉。獲得的點集規模一般在十萬級左右。相較而言,激光三維掃描儀的主要應用對城市、街道等大場景進行掃描,構建全景三維數據及模型,一般配合慣性導航、GPS定位系統等構成LIDAR掃描系統,獲得的點集規模可以達到千萬級甚至億級。激光三維掃描儀獲得的點云數據除包含數據點坐標外,通常還包含反射強度,法線方向等信息。由于近些年來三維掃描技術的不斷發展,獲得的點云數據規模也日益龐大。存儲、處理或顯示這些數據都將消耗大量的時間和計算機資源,因此需要對點云數據進行精簡。點云精簡的目的是通過特定的方法,降低原始點云的規模,同時在簡化過程中盡量保持原始點云的拓撲結構和特征。目前已有點云數據精簡方法按照是否構建點云數據的三角網格分為兩大類基于三角網格的點云精簡方法和直接對點云進行精簡的方法。其中直接對點云進行精簡省去了三角網格化的操作,精簡過程更為簡單,時間復雜度也更低。傳統直接對點云進行精簡的方法包括①隨機采樣法;②包圍盒法;③均勻網格法曲率精簡法等。①隨機采樣法是最簡單且容易實現的方法,該方法每次產生一個不大于總點數的隨機整數,并刪除隨機數對應的點,直到剩余點數滿足指定的精簡程度。這種方法精簡速度最快但隨機性大,精簡效果差。②包圍盒法首先對點云數據建立一個最小的立方體包圍盒,之后將這個包圍盒分割成大小相等的小立方體,將點云數據的每個點按照三維坐標歸入到一個小立方體中。對每個小立方體找出其中最接近立方體中心的點,并移除立方體內的其余點。③均勻網格法是對包圍盒法的改進。均勻網格法在將所有點歸入到小立方體后,利用中值濾波計算立方體內Z坐標的中值點,并用該點代替立方體內所有點。包圍盒法和均勻網格法由于空間劃分均勻,沒有考慮到點云的局部特性,在點云密集區域和點云稀少區域采用相同的劃分方法容易造成細節特征的丟失,使用于點云分布均勻且表面特征變化不大的點云數據。總的來講,隨機采樣法、包圍盒法和均勻網格法都沒有考慮到點云數據的局部特性,因此無法保留原始點云的細節特征。要在點云精簡的同時盡量保持原始點云的細節信息,就需要獲得點云在局部區域的彎曲程度等信息。目前,能夠做到特征保持的點云精簡算法主要是曲率精簡法。曲率精簡法首先確定各個散亂點的k階鄰域和法線方向,通過鄰近點擬合出局部區域的最小二乘曲面,通過曲面的曲率表示該點的彎曲程度。在曲率較高的地方保留較多點,曲率較低的平坦區域則保留較少點。搜索k階鄰域即為搜索點集中每個點的最近k個點,當前大多采用八叉樹的存儲結構加快搜索速度。八叉樹的定義是若不為空樹的話,樹中任一節點的子節點恰好只會有八個或零個,也就是子節點不會有O與8以外的數目。八叉樹是一種基于規則八分原則,采用遞歸分解方式形成的分層樹型結構,是二維空間中的四叉樹結構在三維立體空間中的拓展。常用的八叉樹主要有指針八叉樹,線性八叉樹等。八叉樹的原理與數據結構中的二叉樹、四叉樹基本相同。建立八叉樹時,首先建立一個根節點,該節點表示能夠包圍所有點云數據的最小 立方體的空間范圍,之后將該空間平均分為8份,每一份對應一個子節點,按此規則一直分割到不再需要分割或達到規定的層次為止。八叉樹中的每一個葉子節點代表一個空間最小劃分,將點云中的所有點插入到對應的葉子節點中。搜索某一點(用符號Pi表示)的k階鄰域時,只需在Pi所在的葉子節點和與該節點相鄰的葉子節點中搜索最近的k個點即可,若這些葉子節點中的點云數不足k個,則向上一層搜索,直到找到k個最近節點。k的值由人為確定,k的取值為正整數,一般以6 10為且。三維激光掃描儀獲取的點云數據,除包含空間坐標值外,通常還包含法向量及反射強度等信息。而普通光學掃描儀獲取的點云數據,一般只包含空間坐標值,對于不包含法向量信息的點云數據需要在程序中計算點云的單位法向量。法向量的計算可以采用主元分析法,假設點云的采樣曲面是處處光滑的,因此,任何點的局部鄰域都可以用平面進行很好的擬合,對于點云中的任意數據點Pi,獲取與之最近的k個點后,利用最小二乘法為這些點計算出一個局部平面,此局部平面可以表述如下/)(", d) = arg rnin(/7 £f) (" · Ρ!- )2KI)其中,P(n,d)為包含點Pi的局部平面;η為局部平面P(n, d)的法向量;d為局部平面P(n,d)到坐標原點的距離;arg min(n,d) O是使·尸'—d)2取得最小值的關于n和d的函數;P'為k個最近點的質心。令平面P (n, d)經過k個最近點的質心P',同時局部平面的法向量η滿足| η | =1,因此,問題可以轉化為對公式(2)中半正定的協方差矩陣M進行特征值分解。Γηη9η u = Vi (Ρ -Γ'χη-Ργ /kα ' /=1其中,對于M的最小特征值對應的特征向量可當做點Pi的法向量。利用上述方法計算出的法向量方向與真實的法向量可能相反,因此需要對法向量方向進行調整。曲率精簡法在求出法向量之后,利用每一點的k階鄰域和法向量等信息,建立該點所在局部區域的二次曲面方程,求出曲面的平均曲率作為該點曲率的估值。最后按照曲率準則對點云數據采樣。建立曲面方程需要使用最小二乘法逼近擬合曲面,曲面的曲率估算需要大量的矩陣運算,因此,曲率精簡法比較耗時,尤其在處理大規模點云數據時,這一缺陷更加明顯。
技術實現思路
本專利技術的目的是為了克服已有點云精簡方法存在的不足,提出一種。本專利技術的目的是通過下述技術方案實現的。一種,其具體操作步驟為步驟一、讀取原始點云數據。步驟二、獲取每個數據點的k階鄰域,并計算每個數據點的單位法向量。所述獲取每個數據點的k階鄰域的方法為八叉樹法。所述計算每個數據點的單位法向量的方法為主元分析法。步驟三、獲取每個數據點的法向量與該數據點的k個鄰近點法向量點積的均值(用符號V表不)。對于不同區域的數據點,若表面較平坦,則數據點的法向量方向大致相同,而在彎曲程度較大區域,數據點的法方向差別很大。兩個單位向量夾角的余弦值可以用這兩個單位向量的點積表示。本專利技術中使用數據點法向量與該數據點的k個鄰近點法向量點積的均值V作為判斷該點是否保留的依據。點云中的任一數據點(用符號Pi表示)的單位法向量用(Xi,Yi, Zi)表示,數據點Pi的k個鄰近點法向量分別用(X1, Y1, Z1),(X2, Y2, Z2),……,(Xk, Yk, Zk)表示。每個數據點Pi的法向量與該數據點的k個鄰近點法向量點積的均值V通過公式(3)得到V=CLkjJxrXj+Vi · +^i-ZjDik⑴其中,k的值由人為確定,k的取值為正整數,k取6 10中的任意一個值。公式(3)計算出的V值在O和I之間,V值越小表示該區域法向量方向變化本文檔來自技高網...
【技術保護點】
一種基于法向夾角的點云數據精簡方法,其特征在于:其操作步驟包括步驟一至步驟七,具體為:步驟一、讀取原始點云數據;步驟二、獲取每個數據點的k階鄰域,并計算每個數據點的單位法向量;步驟三、獲取每個數據點的法向量與該數據點的k個鄰近點法向量點積的均值V;使用數據點法向量與該數據點的k個鄰近點法向量點積的均值V作為判斷該點是否保留的依據;點云中的任一數據點Pi的單位法向量用(xi,yi,zi)表示,數據點Pi的k個鄰近點法向量分別用(X1,Y1,Z1),(X2,Y2,Z2),……,(Xk,Yk,Zk)表示;每個數據點Pi的法向量與該數據點的k個鄰近點法向量點積的均值V通過公式(3)得到:V=(Σj=1k|xi·Xj+yi·Yj+zi·Zj|)/k---(3)其中,k的值由人為確定,k的取值為正整數,k取6~10中的任意一個值;步驟四、獲取每個數據點所在局部區域的彎曲度V′;每個數據點的所在局部區域的彎曲度V′越小表示該點所在局部區域越平坦,V′越大表示該點所在局部區域彎曲程度越大;每個數據點的所在局部區域的彎曲度V′通過公式(4)得到;V“=1?V????????????????????????????????????????????????????(4)步驟五、對點云中的所有數據點進行分類;根據每個數據點所在局部區域的彎曲度V′將點云中的所有數據點分為F個類別,F為人為設定值,F取正整數;用符號E(V′)表示所有的數據點所在局部區域的彎曲度V′的均值,然后將[0,1]分成F個區間,F個區間分別用[0,f1)、[f1,f2)、……、[fF?1,1],fs(0,1),1≤s≤F?1;數據點所在局部區域的彎曲度V′ 在[0,f1)范圍內的數據點分在第1類別;數據點所在局部區域的彎曲度V′在[f1,f2)范圍內的數據點分在第2類別;……;以此類推,數據點所在局部區域的彎曲度V′在[fF?1,1]范圍內的數據點分在第F類別;步驟六、確定每個類別的采樣比;對步驟五得到的F個類別,確定每個類別的采樣比;具體為:第6.1步:對第F類別采用公式(5)計算該類別的采樣比;REMF×[Σs=1F-1(Cs×(2×s-1)/(2×F-1))+CF]=COUNTall×(1-SIMall)---(5)其中,REMF為第F類別的采樣比;Cs為第s類別數據點的數量,1≤s≤F?1;CF為第F類別的數據點數量;COUNTall為原始點云的總點數;SIMall為人為指定的點云數據的總精簡率,SIMall?∈(0,1);第6.2步:對第1至第(F?1)類別采用公式(6)計算該類別的采樣比;REMs=REMF×((2×Fs?1)/(2×F?1))????????????????????????????(6)其中,REMS為第s類別的采樣比;1≤s≤F?1;此時得到的F個類別的采樣率滿足REM1≤REM2≤……≤REMF;第6.3步:依次判斷REMt是否不大于1,1≤t≤F,如果REMt均不大于1,則完成對每個類別的采樣比的計算工作;否則,用REMF、REMF?1,……,REMu表示采樣比大于1的類別,1ADD=Σv=uFCv×(REMv-1)---(7)其中,ADD表示用戶期望采樣點數與按當前采樣率精簡后的實際采樣點數之差;Cv為第v類別數據點的數量;REMv為第v類別的采樣比;第6.5步:通過公式(8)將ADD點分配到采樣率小于1的第1到第(u?1) 個類別中;addu′=ADD×[(Cu′×REMu′/REMF)/Σw=1u-1(Cw×REMw/REMF)]---(8)其中,addu′表示第u′類新分配到的點數,1≤u′REMt=1(REMt>1)REMt+addt/Ct(REMt≤1)---(9)其中,addt表示第t類新分配到的點數;Ct為第t類別數據點的數量。經過上述步驟的操作,即可確定F個類別的采樣比;步驟七、對點云數據進行精簡;根據步驟六得到的F個類別的采樣比REMt,對每個類別的點集進行精簡。...
【技術特征摘要】
【專利技術屬性】
技術研發人員:李鳳霞,陳宇峰,饒永輝,李仲君,趙三元,謝寶娣,
申請(專利權)人:北京理工大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。