劉 雷,柏艷紅,王 銀,孫志毅
(太原科技大學電子信息工程學院,山西 太原 030024)
隨著移動機器人技術快速發展,機器人被應用到各種復雜的環境,比如搶災救險、配送物流、無人測繪等任務[1-2]。通常在這些環境下都沒有預先建立好地圖環境信息。而隨著SLAM(simultaneous ocalization and mapping)技術的發展,為移動機器人在未知環境中的定位與構圖提供了較好的解決方案[3-6]。依靠高精度激光雷達及多傳感器融合的技術也越來越成熟,激光點云的配準技術在SLAM技術框架中起著十分重要的作用[7]。研究具有快速性、魯棒性的配準方法也有著重要的意義。
目前應用最廣且最經典的點云配準算法是迭代最近點(ICP)方法,但在兩個點云的初始位置差別較大、相鄰重復率較低的情況下達不到很好的配準效果[8]。于是后人開始大量研究如何利用初配準提供較好的點云初始位置。以特征描述為代表的點特征直方圖(PFH)方法、以及改進的快速點特征直方圖(FPFH)方法。文獻[9]提出基于法線特征約束的點云精確配準方法,采用局部表面擬合方法進行法線估計,并計算其快速點特征直方圖。文獻[10]、[11]提出了一種基于內部形態描述子(ISS)及方向直方圖描述子(SHOT)特征的點云配準算法,采用ISS算法提取特征點,并用SHOT對特征點進行描述。文獻[12]提出了一種基于二維圖像特征的點云配準方法,再采用SURF算法提取點云深度圖的特征,并求解其匹配像素點對。
基于特征描述的點云配準算法思想是構建點云局部鄰域描述子,然后通過建立基于描述子的匹配對,最后通過匹配對估計變換矩陣。針對當前基于特征描述的配準算法存在的問題,本文提出了一種結合三維尺度不變特征變換關鍵點和二進制方向直方圖描述子匹配的配準方法。該方法首先利用差分高斯模型檢測尺度空間的SIFT關鍵點,其次在關鍵點的鄰域構建局部坐標系,將查詢點處法線和鄰域點法線夾角特征統計入直方圖,本文將特征向量轉化為二進制的描述符。然后利用隨機采樣一致性算法(RANSAC)去除誤匹配的點對,初步估計點云配準的初始變換矩陣,最后在精配準上利用ICP算法估計最優的變換矩陣。
局部特征描述SIFT(Scale Invariant Feature Transform)被廣泛應用于二維圖像的物體辨識上,該局部特征對旋轉、尺度縮放、亮度變化保持不變性,對視角變化、仿射變換、噪聲也保持一定程度的穩定性。將2D SIFT算法擴展到三維空間形成三維尺度不變特征描述符。首先將三維高斯核函數與點云模型進行卷積,得到該模型的尺度空間,計算公式如下。
(1)
L(x,y,z,kσ)=G(x,y,z,kσ)?P(x,y,z)
(2)
式中,尺度空間為L(x,y,z,kσ);高斯核函數為G(x,y,z,kσ);點云中模型表示為P(x,y,z);σ為空間尺度參數;k為尺度大小調整參數。其次計算相鄰尺度層的高斯差分模型,以保證原始點云具有與之相關的尺度不變性。定義DoG算子計算公式如下:
DoGi=Li(x,y,z,kσ)-Li-1(x,y,z,kσ)
(3)
式中,i∈(0,S+2),S為高斯金字塔每組的層數。最后在DoG函數空間上尋找極值點,該極值點是所有高斯差分模型中的極大值點或極小值點。如圖1所示,中間檢測點與同尺度的26個近鄰點比較,然后同上下相鄰尺度對應的27×2個點比較,只有該檢測點大于或者小于80個近鄰點時,該點被檢測為SIFT關鍵點。

(a)σ/k (b)σ (c)kυ
為了使描述符具有旋轉不變性,加上SIFT原有的局部特征描述方法計算過于復雜,為了降低特征描述符匹配的計算能力和時間。本文采用二進制方向直方圖描述子BSHOT對關鍵點鄰域特征進行描述。首先利用鄰域點云建立局部坐標系,計算鄰域的協方差矩陣M,計算公式如下。
(4)


圖2 BSHOT特征空間劃分
本文二進制描述符將高維直方圖特征向量轉化為352位的二進制數表示,減少了描述子的存儲空間,同時計算復雜度下降。考慮到一個SHOT描述符Si,其中i={0,1,2,…,351},并且每個Si由4個字節組成。我們假設BSHOT描述符Bi,其中i={0,1,2,…,351},Bi為一個二進制數。將連續的4個Si,{S0,S1,S2,S3}編碼為4位二進制數,對應BSHOT描述符{B0,B1,B2,B3}。
設S=S0+S1+S2+S3,我們先檢查一個值Si,Si∈{S0,S1,S2,S3}是否大于S的90 %。如果S1的值大于S的90 %,則編碼{B0,B1,B2,B3}為{0,1,0,0}。然后在檢查兩個值的和是否大于S的90 %,如果S0+S1大于S的90 %,則編碼{B0,B1,B2,B3}為{1,1,0,0}。以此類推,通過迭代將352維的SHOT描述符編碼為BSHOT描述符。BSHOT描述符并不具有唯一性,但用來估計粗略的對應關系速度更快,同時方便修改比值,在有噪聲的環境下魯棒性更高。
待配準的兩片點云經過下采樣、SIFT關鍵點提取及SHOT描述子計算后得到每個特征點的特征向量。一般來說,不同點云中同一個點的特征描述子應該近似相同,傳統的算法通常利用兩個特征向量間的歐氏距離作為衡量標準。本文將SHOT描述符轉化為二進制描述符BSHOT,利用漢明距離進行匹配。漢明距離近似則為同一個點,但是由于點云拓撲結構、稀疏性、噪聲的影響,難免會產生錯誤的匹配對,直接影響配準的結果。本文采用隨機采樣一致性(RANSAC)去除點云中錯誤的匹配對。首先RANSAC假設一個含有3個“內點”以上的模型作為初始狀態。假設“內點”在n個數據中的占比為t:
(5)
其中,ninliners為“內點”,noutliners為“外點”,在k次迭代的情況下,(1-t)k計算k次迭代計算模型都至少采樣到一個外點的概率,那么能正確采樣到內點的概率為P=1-(1-t)k。P接近1時表示此時模型已經具有較多的內點,迭代完成后估計出最優的模型參數。RANSAC是通過反復選擇數據集去估計出模型,一直迭代到估計出認為比較好的模型。
點云配準的一般過程分為粗配準、精配準兩個階段。粗配準是在點云相對位姿完全未知的情況下對點云進行配準,可以為精配準提供良好的初始值。精配準的目的是在粗配準的基礎上讓點云之間的空間位置差別最小化。
本文采樣特征描述子匹配的點云配準方法,首先對輸入點云進行下采樣,得到較為稀疏的點云,然后利用k近鄰搜索查詢點附近的鄰域空間來提取SIFT關鍵點,其次在每個關鍵點處構建BSHOT描述子,最后通過漢明距離建立點云匹配對,RANSAC利用點云匹配對估計出初始的變換矩陣。為了進一步提高配準的精度,利用粗配準提供的初始位置,本文采用ICP估計兩個點云的最優的變換關系。本文配準過程如圖3所示。

圖3 本文的配準算法
本文的實驗數據采用的是斯坦福大學不同視角下的bunny數據和dragon數據,作為點云配準的源與目標點云。實驗平臺為Intel(R)Core(TM)i7-7500U CPU @2.7GHz處理器,8G運行內存,操作系統為Windows10 64位操作系統,編譯環境為cmake-gui和Visual Studio 2017,結合第三方點云處理庫PCL1.81。
由于bunny原始數據和dragon原始數據均為高密度點云數據,數據點數高達4萬。本文采用體素濾波器進行下采樣,體素采樣半徑設置為0.001 m。在采樣后數據中分別提取SIFT關鍵點,然后在每個關鍵點處計算BSHOT描述子。將BSHOT描述子存儲為一個352位二進制的數。兩個相同描述子的漢明距離應該近似相同,在源和目標點云上提取出對應的點,結果如圖4所示。


圖4 對應點匹配結果
對bunny00、bunny45數據和dragon00、dragon24數據進行粗配準,RANSAC通過對應點的關系估計出較為準確的變換矩陣,并與文獻[11]的粗配準結果對比,不同算法粗配準結果如圖5所示,其中圖5(a)、(d)為配準前原始點云,圖5(b)、(e)為文獻[11]粗配準結果,圖5(c)、(f)為本文粗配準結果,本文配準效果通過計算MSE(均方誤差)來衡量,該結果反映兩個點云的接近程度。由圖5和表1分析可知,文獻[11]的粗配準方法最小均方誤差達到11.91 μm,本文粗配準最小均方誤差達到8.08 μm。本文方法在粗配準效率和配準精度上有所提高。
完成粗配準后,利用圖5的粗配準結果進行精配準。為了確保粗配準算法的可比性,文獻[11]和本文方法精配準均采用ICP方法,ICP方法迭代次數均為20。最終精配準結果誤差和運行時間如表1所示,精配準效果如圖6所示,其中圖6(a)、(d)為ICP配準結果,圖6(b)、(e)為文獻[11]精配準結果,圖6(c)、(f)為本文精配準結果。由圖6和表1分析可知,本文配準方法為3種方法里面用時最少,和文獻[11]的方法對比,時間效率平均提升了67.2 %。配準精度上略低于文獻[11]方法,但較傳統ICP方法,配準精度有所提高。

圖5 不同方法粗配準結果

圖6 不同方法精配準結果

表1 不同算法配準效果評估
本文受二維圖像中檢測尺度不變特征關鍵點SIFT思路的啟發,提出了結合三維空間的尺度不變特征關鍵點和二進制方向直方圖描述子特征匹配的配準方法。該方法對空間中兩個重疊率較低的點云完成快速精確配準。在實際應用中,有較高的使用價值。在如今多傳感器數據融合SLAM的大趨勢下,可以利用其他傳感器為點云配準算法提供初始參數,以進一步提高配準效率。