本發明屬于計算機圖形學、測繪學、逆向工程等領域,涉及一種基于差分進化算法和trimmedicp算法的點云配準方法。
背景技術:
在物體三維重建領域獲取目標表面深度信息常見的有兩種方式:一是使用三維激光掃描儀進行全方位掃描,二是通過雙目立體視覺方法利用圖像匹配獲取深度信息。對于前者來說由于物體的復雜性不可能一次掃描獲取目標的整體點云數據,對于后者則更是需要從不同角度拍攝雙目圖片,以獲取不同角度的點云信息,這就面臨著要處理多測站點云配準問題。多測站點云配準問題就是要將不同位置獲得的點云數據對齊合并在一個統一的坐標系下,這類問題可以分解為兩兩點云的配準問題。目前解決點云配準的方法可以分為兩大類:公共點法和迭代最近點(icp)算法。公共點法要求兩個點云間至少有3對的人工標志點或者特征點,可以通過最小二乘法求得轉換矩陣參數,但是這種方法需要去單獨識別特定的某些標志點并編號記錄帶來很大的數據復雜度;icp方法以最近距離標準為基礎迭代地分配對應關系,并且獲得關于兩個點云的剛性變換最小二乘,然后再重新決定對應關系并繼續迭代直到到達最小值,這種方式簡單計算復雜度較低,但是icp算法前提要求點云重疊率大于50%,并且要給它設置一個較好的初值才不會使之陷入局部最優解。因此,如何獲得一個可以解決點云重疊率較小情況下的高效、精確的點云配準方法是目前三維重建過程中亟待解決的問題。
技術實現要素:
本發明的目的是提供可以解決點云重疊率較小情況下的一種高效、精確的基于差分進化算法和trimmedicp(裁剪迭代最近點)算法的點云配準方法。
為了實現上述發明目的,本發明采用如下技術方案:
一種基于差分進化算法和trimmedicp算法的點云配準方法,包括如下步驟:
(1)對于參考點云d和配準點云m,設置差分進化算法的參數,包括種群大小pop、交叉概率cr、最大進化代數ng、縮放因子f、終止閾值t,以及trimmedicp算法參數包括的修剪閾值下界trmin和修剪閾值上界trmax;
(2)初始化種群,隨機生成
(3)利用trimmedicp算法由初始種群得到精確變換參數r0′和t0′,其中r0′表示由初始種群得到的配準點云m進行變換的旋轉矩陣,t0′表示由初始種群得到的配準點云m進行變換的平移矩陣;
(4)將配準點云m中的點進行一次空間變換d′=r0′m+t0′,然后求出此時的最優配準代價cost(0),其中d′表示點云m經過變換得到的點云,cost(0)表示由初始種群得到的最優配準代價;
(5)對此時的種群進行變異操作,隨機選取種群中不同的兩個個體,將其向量差縮放后與待變異個體進行向量合成:
vi(g+1)=xr1(g)+f·(xr2(g)-xr3(g)),其中i≠r1≠r2≠r3;式中,vi(g+1)表示經過變異產生的第g+1代中第i個變異中間體,f表示縮放因子,xr1(g)表示第g代種群中第r1個個體,xr2(g)表示第g代種群中第r2個個體,xr3(g)表示第g代種群中第r3個個體;
(6)對此時的種群和變異中間體進行交叉操作:
(7)對此時的種群和交叉中間體進行選擇操作:
(8)把(7)中生成的第g+1代種群作為初值,利用trimmedicp算法得到精確變換參數rg+1′和tg+1′,其中rg+1′表示得到的配準點云m進行變換的精確旋轉矩陣,tg+1′表示得到的配準點云m進行變換的精確平移矩陣;
(9)將配準點云m中的點進行一次空間變換d′=rg+1′m+tg+1′,然后求出g+1代的最優配準代價cost(g+1),其中d′表示點云m經過變換得到的點云。
(10)判斷是否滿足終止條件:終止條件為第g代和第g+1代種群最優配準代價差值小于設置的閾值t或者代數達到設置的最大代數ng;若滿足終止條件則進入(11),若不滿足則返回步驟(5);
(11)輸出g+1代最優配準代價以及精確變換參數rg+1′和tg+1′。
所述步驟(4)、步驟(7)和步驟(9)中求取最優配準代價的具體步驟是:
1)輸入旋轉矩陣初值ri和平移矩陣初值ti,經過trimmedicp算法處理獲得了配準點云m進行精確配準所需要的精確旋轉矩陣ri′和精確平移矩陣ti′;
2)建立變換方程:d′=mri′+ti′,式中,d′為m經過變換得到的點云;
3)對于d′中的每一個點尋找距離參考點云d中最近的點,以歐式距離作為這個點的配準代價,則整體點云的最優配準代價:
本發明具有以下有益效果:
本發明應用差分進化算法和trimmedicp算法相結合的方式去解決點云配準的問題。trimmedicp算法可以解決點云配準中重疊率較低的問題,但是需要首先設置很好的旋轉矩陣初值和平移矩陣初值,否則會陷入局部最優;差分進化算法可以通過隨機方式生成初始種群,并且應用變異、交叉、選擇操作使種群分布在所有的范圍。兩者相結合既解決了選取旋轉矩陣和平移矩陣初值的困難問題,又可以獲得全局的最優解,以獲得精確的配準結果。
附圖說明
圖1為基于差分進化算法和trimmedicp算法的點云配準方法流程圖;
圖2為trimmedicp算法流程圖;
圖3為差分進化算法流程圖;
圖4為差分進化算法中交叉操作過程示意圖;
圖5(a)(b)為重疊率較低的兩個點集在配準后的不同視角結果圖;
圖6(a)為本專利方法和基于粒子濾波的點云配準方法以及基于遺傳算法的點云配準方法在平均進化代數上的比較;
圖6(b)為本專利方法和基于粒子濾波的點云配準方法以及基于遺傳算法的點云配準方法在平均耗費時間上的比較;
圖6(c)為本專利方法和基于粒子濾波的點云配準方法以及基于遺傳算法的點云配準方法在平均最優配準代價上的比較;
具體實施方式
下面結合附圖對本發明做進一步詳細描述:
如圖1所示,對于給定的有一定重疊度的參考點云d和配準點云m,通過初始化操作生成旋轉矩陣r0和平移矩陣t0;將初始值r0和t0輸入到trimmedicp算法可以求出在此初值下的精確的旋轉矩陣r0′和精確的平移矩陣t0′,但r0′和t0′有可能是局部最優解,求出此時的最優配準代價cost(0);經過一代差分進化操作后獲得更新后的初值:旋轉矩陣r1和平移矩陣t1;經過trimmedicp算法得到精確配準所需的旋轉矩陣r1′和平移矩陣t1′,并求出此時的最優配準代價cost(1);比較cost(0)與cost(1)差值和閾值大小關系以確定是否滿足終止條件,如果滿足則輸出cost(1)和對應的r1′、t1′,如果不滿足繼續進行差分進化操作獲得更新后的初值:旋轉矩陣r2和平移矩陣t2,然后通過trimmedicp算法求精確配準所需的旋轉矩陣r2′和平移矩陣t2′,求出此時的最優配準代價cost(2),判斷是否滿足終止條件,以此循環操作,直至滿足終止條件。
本發明的一種基于差分進化算法和trimmedicp算法的點云配準方法,具體包括如下步驟:
s100:對于參考點云d和配準點云m,設置差分進化算法的參數,包括種群大小pop、交叉概率cr、最大進化代數ng、縮放因子f、終止閾值t,以及trimmedicp算法參數包括修剪閾值下界trmin和修剪閾值上界trmax。
s200:隨機初始化種群。每個個體設置為1×7(1行7列)的矩陣,前3列分別表示x、y、z方向的旋轉角度,取值范圍是[-π,π];4到6列分別表示x、y、z方向的平移量,取值范圍根據兩點云d和m數據的x、y、z分量方向上的最大差值確定;第7列為修剪參數,范圍為[-0.5(trmax-trmin),0.5(trmax-trmin)]。以上數據均為隨機生成。然后,將初始種群轉化為trimmedicp算法輸入所需的格式,具體就是旋轉角度轉換為旋轉矩陣:
s300:根據s200生成的初值r0和t0,通過trimmedicp算法求取精確的旋轉矩陣r0′和精確的平移矩陣t0′,詳細求解流程如圖2所示:
1)設定變量值,包括當前重疊率phipre,最小重疊率minphi,重疊率差值閾值trphi,最大步數movestep。對點云m進行變換d′=mr0+t0,式中d′為點云m變換之后的點云;
2)尋找d′中每個點對應點云d中最近的點,對應關系保存在corr中,每對點的距離保存在td中;
3)對td每行值的平方按由小到大排序,保存到sorttd2;
4)根據trmin和trmax計算修剪點云對的下界和上界:下界mintdindex=floor(trmin×n),上界maxtdindex=ceiling(trmax×n),其中,n表示點云m中點個數,mintdindex表示修剪點云索引號下界,maxtdindex表示修剪點云索引號上界,floor表示向下取整函數,ceiling表示向上取整函數;
5)計算所有點的均方誤差:將sorttd2前j行的和保存在cumtd2的第j行,然后在cumtd2中取出步驟4)中確定的下界到上界中的元素得到cumtd2′,均方誤差求解公式:
6)更新最小重疊率minphi的值:
7)更新標志重疊率,triksi=tr(nindex),其中triksi表示標志重疊率,tr(nindex)表示索引為nindex的重疊率。
8)獲取當前重疊參數下裁剪后的點云對:將corr和td組成n×3的矩陣corrtd,按第3列td從小到大排序得到sortcorrtd。trlength=floor(tr×n),其中,trlength表示修剪長度,選取sortcorrtd前trlength行前兩列元素命名為tcorr,。
9)應用奇異值分解求取精確的旋轉矩陣r0′和精確的平移矩陣t0′:分別求兩個裁剪后的m點云和d點云坐標均值,記為mm和md;進行中心化處理,點云中每個點坐標減去坐標均值轉化為指向坐標均值的向量;mshifted和sshifted分別保存兩個點云生成的向量組;k=sshifted×mshifted′,
10)對點云m進行變換d′=mr0′+t0′;運行步數加1:currstep=currstep+1,其中currstep表示當前運行步數。
11)如果currstep<movestep并且abs(minphi-phipre)>trphi,則進入步驟2),否則輸出r0′和t0′,其中abs(minphi-phipre)表示最小重疊率和當前重疊率差值的絕對值大小。
s400:根據以上獲得的r0′和t0′,建立變換方程:d′=mr0′+t0′,式中,d′為m經過變換得到的點云;對于d′中的每一個點尋找距離d中最近的點以歐式距離作為這個點的配準代價,則點云整體最優配準代價:
s500:差分進化算法流程如圖3所示,首先對此時的種群進行變異操作:
隨機選取種群中不同的兩個個體,將其向量差縮放后與待變異個體進行向量合成:vi(g+1)=xr1(g)+f·(xr2(g)-xr3(g)),其中i≠r1≠r2≠r3。式中,vi(g+1)表示經過變異產生的第g+1代中第i個變異中間體,f表示縮放因子,xr1(g)表示第g代種群中第r1個個體,xr2(g)表示第g代種群中第r2個個體,xr3(g)表示第g代種群中第r3個個體。此過程要保證生成的中間體滿足各分量的閾值范圍,如果不滿足則重新隨機生成。
s600:對此時的種群和變異中間體進行交叉操作:
s700:對此時的種群和交叉中間體進行選擇操作,如圖4所示,來生成第g+1代種群:
s800:把s700中生成的第g+1代種群作為初值,利用trimmedicp算法可以得到精確變換參數rg+1′和tg+1′,其中rg+1′表示得到的配準點云m進行變換的精確旋轉矩陣,tg+1′表示得到的配準點云m進行變換的精確平移矩陣。
s900:將配準點云m中的點進行一次空間變換d′=rg+1′m+tg+1′,然后求出g+1代的最優配準代價cost(g+1),其中d′表示點云m經過變換得到的點云。
s1000:判斷是否滿足終止條件。終止條件為第g代和第g+1代種群最優配準代價差值小于設置的閾值t或者代數達到設置的最大代數ng。若滿足終止條件則進入s1100,若不滿足則返回步驟s500。
s1100:輸出g+1代最優配準代價以及精確變換參數rg+1′和tg+1′。
所述步驟s400、s700和s900中求取最優配準代價的具體步驟是:
1)輸入旋轉矩陣初值ri和平移矩陣初值ti,經過trimmedicp算法處理獲得了配準點云m進行精確配準所需要的精確旋轉矩陣ri′和精確平移矩陣ti′;
2)建立變換方程:d′=mri′+ti′,式中,d′為m經過變換得到的點云;
3)對于d′中的每一個點尋找距離參考點云d中最近的點,以歐式距離作為這個點的配準代價,則整體點云的最優配準代價:
如圖5(a)(b)所示,是利用所述的基于差分進化算法和trimmedicp算法的點云配準方法進行實驗,所得的其中一組實驗結果不同視角的示意圖:兩個點云在經過配準之后,重疊的區域經過空間變換移動到了一起。
圖6(a)(b)(c)是對比實驗結果,對比實驗是將本專利方法和基于粒子濾波的點云配準方法以及基于遺傳算法的點云配準方法在相同的10個數據集下進行實驗,每個數據集用不同的方法分別運行10次,然后求三種方法在不同評價標準下評價量的平均值,評價標準分別為平均進化代數、平均耗費時間、平均最優配準代價。由圖6(a)可以得到本專利方法相比另外兩種方法需要較少的進化代數就能得到最優配準結果;由圖6(b)可以得到本專利方法與基于遺傳算法的配準方法平均耗費時間在不同數據集上互有優劣,但平均耗費時間都要比基于粒子濾波算法的配準方法少;由圖6(c)可以得到本專利方法相比另外兩種方法得到的最優配準代價最小,結果最準確。