点云配准
?
目錄
一、點云配準概念
二、點云配準分類
1. 無輔助的自動拼接
2.?人工輔助標志點
三、配準常見流程
1. 粗配準
2. 精配準
(1)奇異值分解求解
(2)四元素求解旋轉矩陣
參考文獻
一、點云配準概念
? ? ? ?由于三維掃描測量設備受測量方式的限制和被測物體集合形狀的限制,一次只能掃描被測物體有限范圍的點云數據,這需要在多個視角下進行多次掃描,然而每個視角下得到點云數據都具有獨立的坐標系,無法直接進行拼接。于是需要通過對每個視角下獲取點云進行坐標轉換,統一到全局坐標系下。具體流程是通過一個點集(目標)中的每一個點與另一個點集(原始點集)中的對應點的相互關系來實現點集與點集坐標系之間的轉換,實現配準。?
具體實現步驟:
(1)首先從兩片點云數據中按照同樣的關鍵點選取標準,提取關鍵點 ;
(2)對選擇的所有關鍵點分別計算其特征描述子;
(3)結合特征描述子在兩個數據集中的坐標的位置,以兩者之間特征和位置的相似度為基礎,來估計它們的對應關系,初步估計對應點對;
(4)假定數據是有噪聲的,除去對配準有影響的錯誤的點對應點對;
(5)利用剩余的正確對應關系來估算剛體變化,求解對應旋轉矩陣和平移矩陣,完成配準構成。
二、點云配準分類
? ? ? ? 國內外許多學者都對其進行了深入的研究,也取得了豐碩的研究成果。應用較為廣泛是迭代最近點、基于幾何特征匹配、基于圖像灰度的配準等。這些配準算法所用到的幾何原理主要包括剛性變換、投影變換、放射變換和曲線變換。雖然每種配準算法的原理不同,但配準的流程都相差不大,主要分為:點云數據的提取、點云數據的匹配、除錯處理和變換求解。
1. 無輔助的自動拼接
針對特征明顯的被測物體,使用其他手段進行配準、
(1)迭代最近點(ICP):從一片點云中搜索到另外一片點云中最近點來確定對應點集,容易陷入局部最優解,且要求配準兩片點云初始位置與真實位置相差不大,其實質是基于最小二乘法的最優匹配方法。主要分為點對點,點對投影和點對面的方法。
(2)特征點匹配:通過分析被測物體的局部幾何信息來尋找特征點并實現匹配,但算法特征點包含較少幾何信息,穩定性有待提高。可以利用多尺空間尺度不變特征變化(SIFT)來尋找特征點,這要求被測物體有紋理信息,基于SIFT算法在空間尋找極值點,并提取其位置、尺度、旋轉不變量進行特征點匹配。
(3)正態分布變換(NDT):利用高斯概率分布的形式來描述離散點的信息,用標準最優化技術確定最優匹配,具有收斂速度快,效率高的特點,常常用來做精配準,結合其他算法一起使用。
(4)依靠平臺實現配準:通過掃描設備和旋轉平臺之間的相對位置,通過旋轉平臺運動參數來計算各個點云視角下旋轉矩陣,實現將任意角度的點云配準到統一坐標系下,該方法配準精度高,但受旋轉平臺定位裝置精度的影響。
2.?人工輔助標志點
針對被測物體沒有明顯的特征點,從不同的視角拍攝無法對同一點進行有效的識別定位,需要人工添加標志點在被測物體上,進而完成測量。這種方式更加靈活、適用于任何形狀的物體。
(1)編碼標志點:標志點自身帶有唯一的編碼信息,每個標志點都對應不同的編碼信息,且對于不同的編碼標志點有對應不同的編解碼方案和特征識別算法,通過在兩幅不同視場下相同的標志點實現自動拼接。
(2)非編碼標志點:標志點的大小形狀完全相同,可以通過對三點法、四點法、四元法、SVD最小二乘法實現點云配準。但由于噪聲的影響標志點位置布置的隨機性,在標志點匹配時非常同意出現誤匹配標志點,影響點云配準的穩定性。
?
三、配準常見流程
? ? ? ?通過一個點集(目標)中的每一個點與另一個點集(原始點集)中的對應點的相互關系來實現點集與點集坐標系之間的轉換,實現配準。?
兩幅點云數據中對應點的坐標關系可以描述如下:
其中其中(R)是對應點旋轉矩陣,(T)是對應點平移矩陣。
估算變換矩陣的步驟:
(1) 在對應關系的基礎上評估一些錯誤的度量標準(使用對應點的歐式距離為度量標準);
(2)利用最小化錯誤標準和矩陣運算等來估計一個剛性變換;
(3)使用剛性變換將源點云旋轉/平移到與目標所在的同一個坐標系下,然后再用所有對應點或者部分對應點、關鍵點運行一個內部ICP循環;
(4)進行迭代,直到符合收斂性判斷標準為止(一般設置對應點的歐氏距離作為終止迭代的閾值)
? ? ? ?求解旋轉矩陣可以通過在兩個點云集中尋找對應點對,根據對應點對來建立轉換方程組,通過求解方程組的值來計算出旋轉矩陣R和平移矩陣 H。理論上最少需要找到三組不共線的對應點對才能求解出旋轉平移矩陣,不過為使結果更加精確,對應點對越多越好。但一般情況下,很難在兩幅點云數據中很準確的找到對應點對,因此加入目標函數,使目標函數最優來估計旋轉、平移矩陣。目前,最常用的目標函數是對應點歐式距離平方和:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?
? ? ? ? ?大部分點云配準算法可以從不同角度對其進行劃分:從局部與整體的角度進行劃分時,可以分為局部配準與全局配準;從配準精確度高低的角度進行劃分時,可以分為粗配準與精確配準。雖然劃分的方式不同,但不同角度之間是相互對應的,全局配準與粗配準對應,局部配準與精確配準對應。、
? ? ? ? 大多是點云數據的配準主要基于迭代最近點算法。由于迭代最近點算法對待配準的兩片初始點云有較高的重疊度要求,因此在精確配準之前要進行粗配準。通過粗配準可以得到矩陣變換參數,進而將待配準點云數據轉換到統一坐標系內,為精確配準提供一個較好的初始位置。
1. 粗配準
? ? ? ? 粗配準是為了后續ICP精配準做準備,初步對兩片初始點云進行配準,可到平移矩陣和旋轉矩陣的初始值,進而將待配準點云數據轉換到統一坐標系內,為精確配準提供一個較好的初始位置。根據被測物體本身所具有的特點不同,較為常見的粗配準方法有:標簽法、基于平臺配準和曲率特征法。?
(1)標志點:通過人為的在被測物體表面貼標簽,將這些標簽作為被測物體的特征點,在對多次測量得到的點云數據進行配準時,通過對特征點的進行識別與配準,代替了對整體點云數據的配準,簡化了點云數據的配準過程。
? ? ? ?標志點缺點是對測物體進行貼標簽的操作比較繁瑣,過程比較耗時,并且對文物類的實體進行測量時,有可能產生不同
程度的損壞。
(2)基于平臺配準:將被測物體放在平臺之上,利用控制器對平臺進行控制,使得平臺進行固定角度的轉動,通過對同一位置的多次測量便可得到不同視角下的點云數據,進而實現對被測物體的點云配準。
? ? ? ?基于平臺配準主要適用于那些尺寸比較小且不適合貼標簽的物體。
(3)曲率特征法:通常用于被測物體的表面幾何特征較為明顯的情況,因為曲率是空間幾何里的一個不變特征量,所以通過曲率值的計算可以確定兩片點云的對應點對,進而利用得到的對應點對求解變換矩陣的未知參數,完成點云的粗配準。
2. 精配準
? ? ? ? ICP由于具有計算簡便直觀,配準精度高等優點被廣泛應用于點云的精配準中。但該算法的運行速度以及向全局最優化的收斂性卻在很大程度上依賴于給定的初始變換估計以及在迭代過程中對應關系的確立。所以需要各種粗配準技術為ICP算法提供較好的位置,在迭代過程中確立正確對應點集能避免迭代陷入局部極值,決定了算法的收斂速度和最終的配準精度。
? ? ? ?ICP處理流程:(1)對原始點云數據進行采集;(2)確定初始對應點集;(3)去除錯誤點對應點對;(4)變換矩陣的求解。
? ? ? ?首先是從源點云中搜索到目標點云中最近點來確定對應點集q和p,然后通過最小二乘法迭代求解最優旋轉矩陣R和平移矩陣T,使得誤差E最小:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? 其中n代表對應點對的數目,ICP算法具有計算簡單且配準精度高的優點,但是該算法對于兩片點云的初始位置要求較為嚴格,否則容易陷入局部收斂且會影響配準速度,因此需要通過粗配準來為ICP提供較好的點云初始位置。
? ? ? ? 常用求取目標函數最小的旋轉矩陣和平移矩陣的方法主要分為四元數法和奇異值分解法。
(1)奇異值分解求解
由最小二乘法可知目標函數
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
求兩組點云集的重心:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ????
由最小二乘法可知:,并定義,,于是目標函數可以變為:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
因為第一項與R無關,第二項由于與R無關(R為正交矩陣),那么目標函數可以轉化為求的最大值。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
令
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?
假設存在最優解,則存在下面關系:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
則然后對H矩陣進行奇異值分解(SVD)?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
于是可以得到最優解
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
其中需要H滿秩,同時需要det()=1。然后通過可以求得平移矩陣T。
(2)四元素求解旋轉矩陣
? ? ? ? 前提背景:三維空間的任意旋轉,都可以用繞三維空間的某個軸旋轉過某個角度來表示,即所謂的Axis-Angle表示方法。于是我們可以用一個四維向量就可以表示出三維空間任意的旋轉。這里的三維向量只是用來表示Axis的方向朝向,因此更緊湊的表示方式是用一個單位向量來表示方向Axis,而用該三維向量的長度來表示角度值θ。于是就可以用一個三維向量就可以表示出三維空間任意的旋轉。
單位向量旋轉θ角度后的四元數:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
對于三維坐標的旋轉,可以通過四元數乘法直接操作,與旋轉矩陣操作可以等價,但是表示方式更加緊湊,計算量也可以小一些。
根據上面的背景,我們可以定義一個單位四元數來表示旋轉:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
其中均為實數,
對于本身的幾何意義可以理解為一種旋轉,其中代表 x?軸與 y軸相交平面中 xx軸正向向 y 軸正向的旋轉,旋轉代表 z 軸與 x?軸相交平面中 z軸正向向 x軸正向的旋轉,旋轉代表 y 軸與 z 軸相交平面中 y 軸正向向 z 軸正向的旋轉,分別代表的反向旋轉。
四元數性質:
單位四元數的共軛和逆相等:
四元數的乘法:,
? ? ? ? ? ? ?? ??
? ? ? ? ? ? ? ??
由上式可以得知四元數不具備有乘法交換律性質。
? ? ? ? 根據上面介紹背景和四元數的性質,假設三維空間點云中某個數據點的四元數的形式:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? 設過原點的旋轉軸的單位方向向量為,某點P繞旋轉軸旋轉角度后得到了,此旋轉過程的四元數表示形式為:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
由于采用單位四元數的表達形式,所以,而且。
因此點與點滿足以下關系:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?
聯立上面四元數的乘法兩條公式可以得到如下關系:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? 為了消除符號歧義,中符號均用。通過對比旋轉矩陣的形式,可以得出用四元數形式表示的旋轉矩陣:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???
?
? ? ? ?利用四元數作為旋轉向量的表示優勢:不需要考慮多個軸的旋轉順序且復雜計算,只用繞一個軸旋轉角度來表示整體的旋轉,計算較為簡單;且能避免由于建立在物體坐標系上導致萬向節死鎖。唯一缺點是多引入一個變量,但這并不影響旋轉矩陣的確定。
根據上文推導,對于兩片點云之間的高精度配準是通過最小二乘法迭代求解最優旋轉矩陣R和平移矩陣T,使得誤差E最小:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
求兩組點云集的重心:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ????
然后對兩片點云做去中心化處理后,求出兩片點云的協方差矩陣:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
并假設對稱矩陣:
由此可以得到列向量為:
利用該列向量構建4X4對稱矩陣:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? 其中,表示矩陣的跡,即主對角線元素的綜合,也是特征值之和,表示的單位矩陣。所以將上面矩陣B進一步計算可以得到如下方程:
? ? ? ?然后對矩陣B做特征值和特征向量求解,求出最大的特征值以及其對應的特征向量,那個特征向量就對應誤差的平方和最小時的四元數。(這個我也不是很清楚,為什么這個特征向量就對應誤差平方和最小時的四元數???)?
? ? ? 求出四元數的四個變量值:。并且將其四個值帶入到上式的旋轉矩陣R中,求解最優的旋轉矩陣。在選擇矩陣確定后,根據公式,就容易求解出平移矩陣。計算目標函數如下式,如果結果小于閾值則停止迭代,否則繼續重復前面的步驟。
?
參考文獻
1.SVD求解ICP:https://blog.csdn.net/zhouyelihua/article/details/77807541
2.四元數性質:https://blog.csdn.net/lql0716/article/details/72597719
3.四元數求解ICP:https://blog.csdn.net/hongbin_xu/article/details/80537100
總結
- 上一篇: 软件工程专业的论文答辩_软件工程毕业论文
- 下一篇: 去哪里找自媒体视频剪辑中的素材?