專利名稱:三維掃描的點云精簡方法
技術領域:
本發(fā)明涉及一種對三維掃描的點云精簡的方法,尤其涉及一種基于曲率的三維柵格法對點云精簡的方法。
背景技術:
3D掃描設備的精度越來越高,數(shù)據的捕獲速度急劇增加,采用非接觸式點云測繪方法獲取點云速度較快,測量數(shù)據點多,每秒可產生成千上萬個數(shù)據點,能清楚地表達物體,已得到越來越廣泛的應用。雖然非接觸式光學掃描儀能得到非常密集的點云,但并不是所有的數(shù)據點都能用于曲面重構。這些冗余的點云數(shù)據會導致計算機運行,存儲和操作的低效率,生成曲面模型需要消耗更多的時間,程序算法的健壯性變差,因而其使用也受到了挑戰(zhàn),并且過于密集的點云會影響重構曲面的光順性,而光順是產品外形設計中非常重要的要求,同時通過多次拼接,點云的密集度變高,尤其是重疊區(qū),為了避免上述問題,就需要刪除部分數(shù)據點,即對數(shù)據點云進行精簡處理。因此,對測量數(shù)據進行精簡有助于提高建模效率和建模質量。本發(fā)明主要是涉及到對三維掃描系統(tǒng)(圖1)獲取的產品點云模型進行精簡的一種方法。
近年來人們做了許多關于數(shù)據點云精簡方法的研究,傳統(tǒng)的點云數(shù)據精簡主要是采用包圍盒的方法,這種方法采用包圍盒來約束點云,然后將大包圍盒分解成若干個均勻大小的小包圍盒,在每個包圍盒中選取最靠近包圍盒中心的點來代替整個包圍盒中的點。這種方法簡單,高效,但是由于包圍盒的大小是由用戶任意規(guī)定的,因此無法保證所構建的模型與原始點云數(shù)據之間的精度。2001年,Sun W,Bradley等通過使用局部曲面插值自動確定包圍盒的大小,改善這種方法,但不足的是這種方法只能應用于簡單的曲面數(shù)據且效率比較低,適用性不高?;诙獜埩糠eHaar小波分解,構造誤差驅動的曲面數(shù)據精簡算法。該算法由誤差驅動,無需事先指定數(shù)據點數(shù),可以對未知曲面方程的測量數(shù)據直接進行精簡,但是該算法不具有自組織特性,無法處理內部特征點,最后所得的精簡數(shù)據也是一些散亂數(shù)據而非規(guī)則網格數(shù)據。一種用均勻網格(uniform grid)減少數(shù)據的方法,廣泛用于圖像處理過程的中值濾波。其原理是首先在垂直于掃描方向的平面上建立一系列均勻的小方格,每一個掃描得到的點都被分配給某一個方格,計算出這一點到方格的距離,按距離大小排列所有分配到同一方格的數(shù)據點,取距離位于中間值的數(shù)據點代表所有分配于這個方格中的數(shù)據點,其他點則被刪除。見圖2,E點被選中,其余A、B、C、D、F、G點則被刪除。
與Martin等人提出的均勻網格方法一樣,Lee也采用垂直于掃描方向(Z軸)的均勻網格來從點云數(shù)據中提取點,這種方法首先創(chuàng)建一個由大小相同并垂直于掃描方向的網格平面,網格尺寸的大小決定了數(shù)據精簡比率的大小,網格的尺寸越小,就有越多的采樣點,網格平面創(chuàng)建之后,將所有的點投影到網格平面上,每個網格都分配到相應點。根據每個網格內的所有點到網格平面的距離對這些點進行排序,選取位置處于中間的點。如果同一個網格內的點有n個,則當n為奇數(shù)的時候,將選取第(n+1)/2個點;當n為偶數(shù)的時候,將選取第n/2個點或者第(n+2)/2個點。Fujimoto和Kariye認為巨大的數(shù)據量對后續(xù)制造過程中使用產生了很多問題,在1993年提出一種面向2D數(shù)字化點云的改進順序數(shù)據精簡方法。這種方法保證了精簡數(shù)據的誤差范圍處于給定的角度和距離公差之內。Chen和Ng提出了一種減少三角網格數(shù)目從而刪除部分數(shù)據點的方法,首先將掃描獲取的數(shù)據點云直接三角網格化,生成STL文件,爾后比較數(shù)據點所在三角面片的鄰近三角面片法向量,根據一種向量加權算法,在平面或近似平面的較平坦區(qū)域用大的三角面片取代小的三角面片,刪除多余點,從而實現(xiàn)數(shù)據精簡。Hamann提出了一種根據三角面處的曲率值來決定此三角面的取舍,然后重新擬和的方法,適用于STL文件的自動生成。Hamann和Chen在構建不同平面曲線,壓縮2D圖像和可視化實體方面提出了精簡數(shù)據點的方法。根據分段線性曲線逼近的局部絕對曲率估計來選取點,因此精簡的程度不僅受被選取的點數(shù)的控制,還受誤差水平的控制。
以上多數(shù)對點云數(shù)據精簡方法研究的努力都集中在于操作多面模型,在實際的應用過程中,用三維掃描系統(tǒng)得到的通常是具有海量散亂點的點云原始模型,對這些散亂點進行精簡是關鍵。為此,本發(fā)明中使用一種新算法對點云進行精簡。如何對點云進行柵格化并提取最接近小柵格平均曲率的點來代替整個小柵格中的點是此類算法中的難點。本發(fā)明中提出的基于曲率的三維柵格法對點云精簡的算法可以保證在不同的精簡比例和精度下,達到更合理的精簡效果。
發(fā)明內容
本發(fā)明提供一種基于曲率的三維柵格法對點云精簡的方法,本發(fā)明具有方法簡單的優(yōu)點。
本發(fā)明采用如下技術方案一種基于曲率的三維柵格法對點云精簡的方法第一步對三維點云進行柵格劃分,該柵格劃分為一個點云數(shù)據的最小外接正方體,其兩兩垂直的3條邊分別與笛卡兒坐標系的3個坐標軸平行,沿三個坐標軸方向劃分成邊長為D空間六面體立方柵格。
根據點云中點的最大坐標(xmax,ymax,zmax)和最小坐標(xmin,ymin,zmin),得到點云數(shù)據的最小外接正方體邊長LL=max((xmax-xmin),(ymax-ymin),(zmax-zmin))那么每一個小柵格的大小D則設定為D=αL3/n3]]>式中α為稀釋比例,稀釋比例α是指簡化前后點數(shù)量的比值并由設計要求確定,n為整個點云中的數(shù)據點個數(shù);第二步在點云每個數(shù)據點Pi(i=1……n)的上下,左右,前后共27個鄰近子柵格內取出其k個鄰近點,得到Pi的鄰域點集KNB(Pi),并記為KNB(Pi)={X1,X2,…,Xn},此后,用鄰域點集KNB(Pi)的最小二乘逼近平面并以此作為Pi的微切平面S(Pi),令 為KNB(Pi)的形心, 稱為數(shù)據點集Pi的中心點P_i=1k+1(ΣX∈KNB(Pi)X+Pi)]]>設數(shù)據點集Pi的第j個鄰近點到微切平面S(Pi)的距離為dj,到 的距離為λj。
那么對數(shù)據點集Pi的第j個點存在函數(shù)fj(Pi)fj(Pi)=djλj]]>那么數(shù)據點集Pi的曲率函數(shù)可以表示為f(Pi)=1kΣj=1kfj(Pi)]]>根據上式可以求得點云中每個數(shù)據點的曲率;第三步點云柵格化完成以后,求取每一個小柵格中點的平均曲率 C_=1mΣk=1mCk]]>式中Ck為小柵格中數(shù)據點的曲率,m為小柵格中點的數(shù)量,并得到每一個小柵格中點的曲率與平均曲率的差值,此差值小于設計要求中的精度的點將被選中作為該柵格的點,其余的點將被刪除,最終實現(xiàn)對點云的精簡。
本發(fā)明主要用于對三維掃描系統(tǒng)中各種具有復雜曲面形狀的點云精簡的應用場合。利用本發(fā)明中的基于曲率的三維柵格法即可實現(xiàn)對點云的合理精簡。該方法主要有以下優(yōu)點(1)點云的精簡有助于提高建模效率和建模質量,精簡的最佳效果是使精簡后的數(shù)據點云具有較少的數(shù)據量。本發(fā)明中提出的算法使數(shù)據點在精簡后的疏密隨著曲面曲率的變化而變化,即曲面的曲率變化越大,數(shù)據點多一些,反之曲率變化越小,數(shù)據點就少一些,保證不丟失物體表面的細節(jié)特征。
(2)傳統(tǒng)的點云數(shù)據精簡主要是采用包圍盒的方法,但是由于包圍盒的大小是由用戶任意規(guī)定的,因此無法保證所構建的模型與原始點云數(shù)據之間的精度,本發(fā)明中提出的三維柵格算法中小柵格的大小由稀釋比例定義,更加合理,適用性強。
(3)在實際的應用過程中,用三維掃描系統(tǒng)得到的通常是具有海量散亂點的點云原始模型,本發(fā)明中提出算法簡潔,速度快,效率高,適用于大量散亂三維數(shù)據點云,精簡效果良好。
(4)可以根據實際需要,給出點云的稀釋比例和精簡精度。稀釋比例決定了初始的柵格數(shù)目,精度定義為每一個小柵格中點的曲率與平均曲率的差值,精度是決定點提取率的主要因素精度越小,提取的點越少,反之亦然,而具體提取哪些點則由初始柵格的大小決定,因此,如果既想保證精度又要得到盡可能多的數(shù)據點,那么在進行點的提取時應選用較小的柵格和較大的精度。
(5)操作過程比較簡單,只要給出稀釋比例和精度,接下來的步驟都可自動完成,速度快。并且該方法具有很強的通用性。
(6)數(shù)據結構的實現(xiàn)有助于管理點的對象,點集的搜索,遍歷,排序,快速有效的解決問題,提高計算的效率。
圖1是三維掃描系統(tǒng)組成圖。
圖2是均勻網格法圖。
圖3是算法整體流程圖。
圖4是人臉點云圖。
圖5是刪格化圖。
圖6是曲率與鄰近點關系圖。
圖7是給定稀釋比例為2和精度為0.15的人臉點云圖。
圖8是給定稀釋比例為3和精度為0.1的人臉點云圖。
具體實施例方式
一種基于曲率的三維柵格法對數(shù)據點云精簡的方法第一步對三維點云進行柵格劃分,該柵格劃分為一個點云數(shù)據的最小外接正方體,其兩兩垂直的3條邊分別與笛卡兒坐標系的3個坐標軸平行,沿三個坐標軸方向劃分成邊長為D空間六面體立方柵格。
根據點云中點的最大坐標(xmax,ymax,zmax)和最小坐標(xmin,ymin,zmin),得到點云數(shù)據的最小外接正方體邊長LL=max((xmax-xmin),(ymax-ymin),(zmax-zmin))那么每一個小柵格的大小D則設定為D=αL3/n3]]>式中α為稀釋比例,稀釋比例α是指簡化前后點數(shù)量的比值并由設計要求確定,n為整個點云中的數(shù)據點個數(shù);第二步在點云每個數(shù)據點Pi(i=1……n)的上下,左右,前后共27個鄰近子柵格內取出其k個鄰近點,得到Pi的鄰域點集KNB(Pi),并記為KNB(Pi)={X1,X2,…,Xn},此后,用鄰域點集KNB(Pi)的最小二乘逼近平面并以此作為Pi的微切平面S(Pi),令 為KNB(Pi)的形心, 稱為數(shù)據點集Pi的中心點
P_i=1k+1(ΣX∈KNB(Pi)X+Pi)]]>設數(shù)據點集Pi的第j個鄰近點到微切平面S(Pi)的距離為dj,到 的距離為λj。
那么對數(shù)據點集Pi的第j個點存在函數(shù)fj(Pi)fj(Pi)=djλj]]>那么數(shù)據點集Pi的曲率函數(shù)可以表示為f(Pi)=1kΣj=1kfj(Pi)]]>根據上式可以求得點云中每個數(shù)據點的曲率;第三步點云柵格化完成以后,求取每一個小柵格中點的平均曲率 C_=1mΣk=1mCk]]>式中Ck為小柵格中數(shù)據點的曲率,m為小柵格中點的數(shù)量,并得到每一個小柵格中點的曲率與平均曲率的差值,此差值小于設計要求中的精度的點將被選中作為該柵格的點,其余的點將被刪除,最終實現(xiàn)對點云的精簡。
下面參照附圖,對本發(fā)明加以詳細描述在三維掃描系統(tǒng)中,面對的是密集的點云散亂數(shù)據。多數(shù)對點云數(shù)據精簡方法研究的努力都集中在于操作多面模型或適用于掃描方向垂直掃描表面的單塊數(shù)據,對捕捉零件的形狀不夠靈敏,因此本發(fā)明采用基于曲率的三維柵格法對數(shù)據點云精簡的算法??傮w算法流程圖見圖3。
本發(fā)明主要涉及以下三方面的內容1)三維點云的柵格化對人臉原始點云(圖4)進行柵格劃分,該柵格劃分為一個點云數(shù)據的最小外接正方體,其兩兩垂直的3條邊分別與笛卡兒坐標系的3個坐標軸平行,沿三個坐標軸方向劃分成邊長為D空間六面體立方柵格,見圖5。
根據點云中點的最大坐標(xmax,ymax,zmax)和最小坐標(xmin,ymin,zmin),得到點云數(shù)據的最小外接正方體邊長LL=max((xmax-xmin),(ymax-ymin),(zmax-zmin))那么每一個小柵格的大小D則設定為D=αL3/n3]]>
式中α為稀釋比例,稀釋比例α是指簡化前后點數(shù)量的比值并由設計要求確定,n為整個點云中的數(shù)據點個數(shù);2)微切平面的建立和曲率的計算在點云每個數(shù)據點Pi(i=1……n)的上下,左右,前后共27個鄰近子柵格內取出其k個鄰近點,得到Pi的鄰域點集KNB(Pi),并記為KNB(Pi)={X1,X2,…,Xn},此后,用鄰域點集KNB(Pi)的最小二乘逼近平面并以此作為Pi的微切平面S(Pi),令 為KNB(Pi)的形心, 稱為數(shù)據點集Pi的中心點P_i=1k+1(ΣX∈KNB(Pi)X+Pi)]]>設數(shù)據點集Pi的第j個鄰近點到微切平面S(Pi)的距離為dj,到 的距離為λj,見圖6。
那么對數(shù)據點集Pi的第j個點存在函數(shù)fj(Pi)fj(Pi)=djλj]]>那么數(shù)據點集Pi的曲率函數(shù)可以表示為f(Pi)=1kΣj=1kfj(Pi)]]>根據上式可以求得點云中每個數(shù)據點的曲率;3)點的提取點云柵格化完成以后,求取每一個小柵格中點的平均曲率 C_=1mΣk=1mCk]]>式中Ck為小柵格中數(shù)據點的曲率,m為小柵格中點的數(shù)量,并得到每一個小柵格中點的曲率與平均曲率的差值,此差值小于設計要求中的精度的點將被選中作為該柵格的點,其余的點將被刪除。通過這一策略對點進行提取,點的提取率取決于點的稀釋比例和精度,這兩個變量由設計要求決定。稀釋比例為2,精度為0.015的點云精簡圖見圖7,稀釋比例為3,精度為0.01的點云精簡圖見圖8,可見精簡后的點云具有較少的數(shù)據量,圖8的稀釋比例較圖7的大,但在精簡后仍然能完整的再現(xiàn)點云的細小特征。
權利要求
1.一種三維掃描的點云精簡方法,其特征在于第一步對三維點云進行柵格劃分,該柵格劃分為一個點云數(shù)據的最小外接正方體,其兩兩垂直的3條邊分別與笛卡兒坐標系的3個坐標軸平行,沿三個坐標軸方向劃分成邊長為D空間六面體立方柵格,根據點云中點的最大坐標(xmax,ymax,zmax)和最小坐標(xmin,ymin,zmin),得到點云數(shù)據的最小外接正方體邊長LL=max((xmax-xmin),(ymax-ymin),(zmax-zmin))那么每一個小柵格的大小D則設定為D=αL3/n3]]>式中α為稀釋比例,稀釋比例α是指簡化前后點數(shù)量的比值并由設計要求確定,n為整個點云中的數(shù)據點個數(shù);第二步在點云每個數(shù)據點Pi(i=1……n)的上下,左右,前后共27個鄰近子柵格內取出其k個鄰近點,得到Pi的鄰域點集KNB(Pi),并記為KNB(Pi)={X1,X2,…,Xn},此后,用鄰域點集KNB(Pi)的最小二乘逼近平面并以此作為Pi的微切平面S(Pi),令 為KNB(Pi)的形心, 稱為數(shù)據點集Pi的中心點Pi-=1(k+1)(ΣX∈KNB(Pi)X+Pi)]]>設數(shù)據點集Pi的第j個鄰近點到微切平面S(Pi)的距離為dj,,到 的距離為λi,那么對數(shù)據點集Pi的第j個點存在函數(shù)fj(Pi)fj(Pi)=djλj]]>那么數(shù)據點集Pi的曲率函數(shù)可以表示為f(Pi)=1kΣj=1kfj(Pi)]]>根據上式可以求得點云中每個數(shù)據點Pi的曲率;第三步點云柵格化完成以后,求取每一個小柵格中點的平均曲率 C-=1mΣk=1mCk]]>式中Ck為小柵格中數(shù)據點的曲率,m為小柵格中點的數(shù)量,并得到每一個小柵格中點的曲率與平均曲率的差值,此差值小于設計要求中的精度的點將被選中作為該柵格的點,其余的點將被刪除,最終實現(xiàn)對點云的精簡。
全文摘要
一種三維掃描的點云精簡方法首先對三維點云進行柵格劃分,該柵格劃分為一個點云的最小外接正方體,邊長為L,然后沿三個坐標軸方向劃分成邊長
文檔編號G06T17/00GK101021954SQ20071002102
公開日2007年8月22日 申請日期2007年3月23日 優(yōu)先權日2007年3月23日
發(fā)明者達飛鵬, 朱春紅 申請人:東南大學