王 琛, 徐玉華, 李純明
(1.電子科技大學(xué) 信息與通信工程學(xué)院, 成都 611731;2.奧比中光科技集團股份有限公司, 深圳 518052)
點云配準(zhǔn)是計算機視覺、計算機圖形學(xué)和機器人學(xué)等領(lǐng)域中的一個重要問題。該技術(shù)被廣泛用于三維重建和同時定位與建圖(simultaneous localization and mapping, SLAM)等算法中。隨著虛擬現(xiàn)實和機器人相關(guān)技術(shù)的發(fā)展及其應(yīng)用產(chǎn)品落地,點云配準(zhǔn)技術(shù)的重要性日益顯現(xiàn)。與此同時,由于深度相機這類傳感器的廣泛使用及其技術(shù)的快速發(fā)展,我們可以非常輕松地獲取點云數(shù)據(jù)。并且大多數(shù)硬件模組將普通相機和深度相機結(jié)合起來,使得彩色點云的獲取也非常高效。
對于點云配準(zhǔn)的研究已經(jīng)有幾十年的歷史,但是目前仍然有很多新的方法出現(xiàn)。已有的算法絕大多數(shù)都只考慮了點云的幾何信息,其主要原因是以前的大多數(shù)相關(guān)傳感器只能獲取幾何信息。當(dāng)需要對存在幾何退化情況的點云進行配準(zhǔn)時,僅僅使用幾何信息無法得到正確的結(jié)果。比如,對室內(nèi)場景的點云數(shù)據(jù)進行配準(zhǔn)時,通常會遇到兩片點云的共同區(qū)域只有一個平面或者兩個互相垂直的平面這樣的情況,如圖1所示。而隨著RGB-D相機等相關(guān)設(shè)備的普及,可以很方便地同時獲得幾何和顏色信息。針對當(dāng)前點云配準(zhǔn)算法的主要缺陷并且考慮到當(dāng)前傳感器相關(guān)技術(shù)的發(fā)展,我們認為應(yīng)該同時使用幾何和顏色信息來提升點云配準(zhǔn)的效果。
圖1 圖中是兩種典型的幾何退化情況第一行是兩片點云的共同區(qū)域只有一個平面的情況;第二行是兩片點云的共同區(qū)域只在兩個互相垂直的方向上存在法線的情況。第一列是配準(zhǔn)前兩片點云的初始狀態(tài);第二列是使用點點距ICP算法得到的結(jié)果;第三列是使用點面距ICP算法得到的結(jié)果;第四列是使用本文提出的算法得到的結(jié)果。從圖中的結(jié)果可以看出,這兩種幾何退化情況本文中的算法都可以有效處理。
本文提出了一種基于圖像邊緣的彩色點云配準(zhǔn)方法。主要思路是使用顏色的邊緣信息提升幾何退化情況下點云配準(zhǔn)結(jié)果的正確率和精度。為了提取顏色的邊緣信息,該算法對點云進行正交投影得到其投影圖像,然后使用Canny[1]算子提取該圖像的邊緣。得到顏色圖像的邊緣信息后,將其轉(zhuǎn)換為稀疏的三維點云,最后再使用幾何方法對顏色邊緣點云進行配準(zhǔn)。幾何退化的情況通常意味著幾何數(shù)據(jù)沒有明顯可區(qū)分的細節(jié)信息。提取顏色邊緣并將其轉(zhuǎn)換為三維點云的過程,相當(dāng)于使用顏色信息將幾何退化的數(shù)據(jù)轉(zhuǎn)換為具有明顯可區(qū)分細節(jié)的幾何數(shù)據(jù)。也就是說,通過提取顏色邊緣信息的方法,將幾何退化問題轉(zhuǎn)化為了非幾何退化問題。因此,從理論上來說本文中的方法即使在幾何退化的情況下也可以得到正確的結(jié)果。實驗結(jié)果也證明了該方法可以明顯提高幾何退化情況下點云配準(zhǔn)的精度。
文本的主要貢獻可以總結(jié)為如下內(nèi)容:通過提取彩色點云投影圖像的邊緣解決在幾何退化情況下只使用幾何信息的點云配準(zhǔn)容易失敗的問題。
點云配準(zhǔn)算法在過去一段時間內(nèi)有著非常廣泛的研究。點云配準(zhǔn)技術(shù)的具體實現(xiàn)有多種不同的思路??傮w上而言,點云配準(zhǔn)方法分為局部配準(zhǔn)方法和全局配準(zhǔn)方法。局部配準(zhǔn)方法依賴點云的初始位姿,而全局配準(zhǔn)方法對點云的初始位姿沒有要求。但是在通常情況下,局部配準(zhǔn)方法相對于全局配準(zhǔn)方法更為魯棒。
最常見的點云配準(zhǔn)方法分支是迭代最近點(iterative closest point, ICP)算法[2-3,11]。這類方法通過尋找三維空間中的最近鄰作為匹配點對,使用匹配點對的坐標(biāo)計算三維剛性變換。并反復(fù)迭代該過程直至收斂。這類算法存在很多的變種。最初的ICP算法優(yōu)化目標(biāo)是最小化點到點的歐式距離[2, 11]。后續(xù)出現(xiàn)了最小化點到面之間的距離的變種算法[3]。實際上兩片點云中很難出現(xiàn)真正意義上的同名點。而我們通常將曲面看作是流形,可以將曲面的局部看作是平面。因此,在實際應(yīng)用中點面距的ICP算法優(yōu)于點點距的ICP算法。除了改變優(yōu)化目標(biāo)的ICP變種算法,還存在通過改變尋找匹配關(guān)系的方法得到的變種。例如在文獻[4, 12]中,通過將實時重建的三維模型重投影到深度圖上尋找匹配關(guān)系。針對使用深度圖進行配準(zhǔn)情況,這種通過投影尋找匹配關(guān)系的ICP變種算法效果更好,但是這種方法無法用于一般情況的點云配準(zhǔn)。上述的ICP及其變種算法雖然經(jīng)常被各類應(yīng)用所使用,但是由于其只考慮到幾何信息,所以在遇到幾何退化情況時的表現(xiàn)并不令人滿意。
除了ICP及其變種算法之外,還存在一些點云配準(zhǔn)算法的思路是使用統(tǒng)計模型描述點云的形狀并進行比較。3D-NDT算法[5, 14]使用高斯分布來描述點云的局部形狀。這種方法被廣泛用于LiDAR數(shù)據(jù)中,被認為比ICP方法更加魯棒和高效。但是這種方法處理噪聲比較大的數(shù)據(jù)時很難得到很好的結(jié)果,因為噪聲會明顯影響點云的局部形狀。還有一類方法使用高斯混合模型(Gaussian mixture model, GMM)[6]。這種方法使用高斯混合模型描述點云,并且通過最小化兩片點云之間的統(tǒng)計差異測度進行配準(zhǔn)?;诟咚够旌夏P偷姆椒ㄍǔ2惶敯?,因為這種方法的配準(zhǔn)結(jié)果高度依賴協(xié)方差矩陣的設(shè)置。與ICP類的方法類似,基于統(tǒng)計模型的方法通常也只考慮了幾何形狀信息,很難處理幾何退化的情況。
除了常見的這些只考慮幾何信息的配準(zhǔn)算法之外,也已經(jīng)有了一些同時考慮顏色信息的點云配準(zhǔn)算法[13-14]。同時考慮顏色和幾何信息的算法通常都是專門為RGB-D圖像數(shù)據(jù)設(shè)計。文獻[7]中提出的方法專門用于相鄰的RGB-D圖像之間的快速配準(zhǔn),其主要思路是最大化光度一致性。但是該方法無法用于一般的彩色點云數(shù)據(jù)。文獻[8]中提出的算法可以用于一般的彩色點云配準(zhǔn),該方法聯(lián)合優(yōu)化匹配點對的幾何距離和顏色距離。但由于顏色和幾何信息的量綱不同,并且物體被相機捕獲的顏色容易受到很多因素的干擾,所以該方法在實際使用中并不足夠魯棒。本文提出的算法通過將顏色和幾何信息解耦合,并且在利用顏色信息時轉(zhuǎn)為使用顏色的邊緣而非顏色本身提高魯棒性和精確度。
除了剛剛提到的一系列局部配準(zhǔn)方法,近年來也出現(xiàn)很多全局配準(zhǔn)方法。例如文獻[16-17]中描述的基于深度學(xué)習(xí)的全局配準(zhǔn)方法。但是基于深度學(xué)習(xí)的方法通常需要大量的訓(xùn)練數(shù)據(jù),并且通常對計算力的要求很高。文獻[15]中的全局配準(zhǔn)算法TEASER基于非常嚴密的數(shù)學(xué)推理和證明,但是其具體效果仍然依賴特征點的匹配。由于大量的全局配準(zhǔn)方法都依賴點云特征的提取和匹配,因此,也出現(xiàn)了大量針對點云特征的研究[18-19]。
對于兩片彩色點云P和Q,配準(zhǔn)的目的是找到將P與Q對齊的剛性變換T。點云P和Q中的每個點都分別有坐標(biāo)、顏色和法線信息。
本文的方法大致分為以下幾步進行。首先,需要確定投影方向,決定投影方向的主要目標(biāo)是使得點云P和Q的共同區(qū)域投影后占圖像面積最大,這樣做可以使得算法更加魯棒和精確。然后,使用Canny算子提取該圖像的邊緣信息,并提取出邊緣的三維點云Pe和Qe。最后,通過點點距的ICP算法配準(zhǔn)點云Pe和Qe,由此得到配準(zhǔn)結(jié)果。下文將詳細描述算法的具體細節(jié)。
在提取邊緣點云Pe和Qe之后,需要對其進行配準(zhǔn)。通過提取圖像的邊緣信息得到的邊緣點云Pe和Qe已經(jīng)沒有幾何退化的問題了。因此可以直接使用ICP類方法對這兩片點云進行配準(zhǔn)。雖然在點云比較稠密的情況下點面距的ICP算法一般更優(yōu)于點點距的ICP算法,但是在此時選擇使用點點距的ICP算法。原因是在目前遇到的這種情況下,點面距并不能正確反映配準(zhǔn)結(jié)果的精度,在實際同名點距離很遠的時候其點面距仍可能為0。
將使用點點距ICP算法配準(zhǔn)Pe和Qe的問題描述為如下數(shù)學(xué)模型:
治療:更昔洛韋 5.0~7.5 mg/kg,靜脈滴注,每12小時1 次,14~21 d;然后 5 mg·kg-1·d-1序貫維持治療。 也可使用膦甲酸鈉 180 mg·kg-1·d-1,分 2~3 次用 (靜脈應(yīng)用需水化),2~3 周后改為 90 mg·kg-1·d-1,靜脈滴注,1 次/d。病情危重或單一藥物治療無效時可二者聯(lián)用。CMV視網(wǎng)膜脈絡(luò)膜炎可球后注射更昔洛韋。
(1)
式中,Te為邊緣點云配準(zhǔn)需要計算的剛性變換;pe為點云Pe中的點,qe為點云Qe中的點;Ke為匹配點對集合。目標(biāo)是尋找剛性變換Te使得兩片點云中同名點之間的歐式距離最小。
在每一次迭代中,通過搜索最近鄰得到匹配點對集合Ke,然后使用文獻[9]中提出的基于奇異值分解的最小二乘方法計算當(dāng)前的剛性變換ΔT,并且更新Te=ΔT×Te。具體的迭代過程為:
(1)使用單位矩陣初始化Te;
(2)搜索最近鄰更新匹配點對集合Ke;
(3)使用奇異值分解計算當(dāng)前的剛性變換矩陣ΔT;
(4)更新Te=ΔT×Te;
(5)如果沒有收斂則回到步驟(2),如果收斂則結(jié)束迭代。
為了在保證算法魯棒性的同時求解完整的三維剛性變換矩陣,本文的方法在具體實現(xiàn)中對計算策略進行了一些改變。最終的流程具體分為三步進行,包括初始化、邊緣配準(zhǔn)和再優(yōu)化。
首先進行初始化步驟。為了使得P和Q的投影角度基本一致,使用點面距ICP算法先對P和Q進行配準(zhǔn)。其數(shù)學(xué)模型為:
(2)
式中,p和q分別為點云P和Q中的點;n為點q的法線;Ke為匹配點對集合。使用高斯牛頓法對其進行求解,并得到初始剛性變換Ti。初始化過程使得投影時兩片點云的方向基本一致。同時使得兩片點云中的同名平面貼合,為下一步只需要計算二維剛性變換矩陣打下基礎(chǔ)。
然后使用邊緣點云Pe和Qe計算二維的剛性變換矩陣。由于初始化步驟將兩片點云的同名平面貼合在一起,對于幾何退化情況來說目前只需要計算一個二維的剛性變換。此時執(zhí)行2.1節(jié)中描述的算法,并且在計算時忽略投影方向的數(shù)據(jù)。在這一步后得到二維的剛性變換矩陣Te。
最后一步考慮到稀疏的邊緣點云容易受到噪聲的影響,再一次對稠密點云P和Q進行一次點面距ICP計算。此時得到再優(yōu)化剛性變換結(jié)果Tr。
完成這三步之后,可以得到需要求解的剛性變換:
(3)
使得點云P與Q對齊。具體的流程圖如圖2所示。
圖2 算法流程圖
為了使用2.1節(jié)中提到的算法,需要先從稠密的彩色點云P和Q中提取出邊緣點云Pe和Qe。該過程同樣分為三步進行:確定投影方向,正交投影得到圖像和提取圖像邊緣得到邊緣點云。該過程中得到的數(shù)據(jù)如圖3所示。
圖3 提取邊緣點云的過程首先通過正交投影得到彩色圖像和掩膜數(shù)據(jù);然后對彩色圖像提取邊緣信息;最后使用掩膜濾除點云投影邊界上的邊緣數(shù)據(jù)得到邊緣點云。
在確定了投影方向之后,開始對兩片點云進行正交投影。在實際的投影過程中,使用Z-Buffer算法處理三維空間中的遮擋情況。同時儲存了與投影顏色圖像對應(yīng)的掩膜數(shù)據(jù)和三維坐標(biāo)數(shù)據(jù)。
最后需要提取邊緣信息。本文使用Canny算子提取顏色圖像中的邊緣信息,并且通過前一步保存的三維坐標(biāo)數(shù)據(jù)還原得到邊緣點云。這里需要注意的是三維點云的投影并不能填滿整幅圖像,所以三維點云的投影邊界也會提取出邊緣信息。需要使用保存的掩膜信息去除三維點云的投影邊界。最后得到了邊緣點云Pe和Qe。
我們在公開數(shù)據(jù)集ICL-NUIM[9]上測試了本文的算法。首先將RGB-D數(shù)據(jù)的每一個序列分為多個片段,并將這些片段重建得到彩色點云。然后通過給真值數(shù)據(jù)增加不大于20°的隨機旋轉(zhuǎn)和不大于0.3 m的隨機平移作為擾動進行測試。配準(zhǔn)是逐對進行的,并且與點云的連續(xù)性沒有關(guān)系。所以最終分析的是配準(zhǔn)結(jié)果的相對位姿誤差(relative pose error, RPE)。本文的算法與點點距ICP(Point-ICP)、點面距ICP(Plane-ICP)、文獻[8]中提到的算法(Color-o3d)以及文獻[15]中提到的算法(TEASER)進行比較。在表1中我們統(tǒng)計了每個方法RPE的均方根誤差(root mean squared error, RMSE),在表2中我們統(tǒng)計了每個方法RPE的算數(shù)平均值。在圖4中我們展示了更詳細的數(shù)據(jù)比較。
從表1和表2中可以直觀地看到,本文的算法的精度在每個數(shù)據(jù)中都優(yōu)于其他三個算法。在幾何退化不明顯的情況下,本文的算法優(yōu)勢沒有那么明顯。比如在livingroom1這個數(shù)據(jù)中,本文的算法并沒有明顯減少點面ICP算法的誤差。但是在幾何退化明顯的數(shù)據(jù)中,比如在office2這個數(shù)據(jù)中,本文的算法相對于其他的算法有明顯的優(yōu)勢。在使用了本文的算法后,精度相對于原本的點面ICP算法提升了10倍。
表1 RPE的RMSE,可以看出本文的算法在每個數(shù)據(jù)集中誤差都是最小
表2 RPE的算數(shù)平均值,可以看出本文的算法在每個數(shù)據(jù)集中誤差都是最小
需要解釋的是,本文的算法雖然使用了點面ICP算法,但是實際上該算法的高精度并非完全來自點面ICP算法。在其他三種算法中,雖然點面ICP算法在數(shù)據(jù)集livingroom1和office1中表現(xiàn)最優(yōu),但是在livingroom2和office2這兩個數(shù)據(jù)中明顯劣于Color-o3d算法。而本文的算法在四個數(shù)據(jù)中都表現(xiàn)最優(yōu)。其主要原因是該算法在面對幾何退化的情況能得到更加精確的結(jié)果。
同時需要注意的是,TEASER是全局點云配準(zhǔn)算法。雖然全局配準(zhǔn)算法的優(yōu)勢是不依賴點云的初始位姿信息,但是帶來的弊端是可能會得到偏差非常大的解。雖然TEASER算法在office2這個數(shù)據(jù)中表現(xiàn)比較優(yōu)秀,但是在office1中出現(xiàn)了明顯的錯誤。
同時我們使用文獻[10]中提到的方法作為三維重建框架,并使用本文的方法替換該框架中原有的配準(zhǔn)算法進行三維重建。得到的重建結(jié)果如圖5和圖6所示。
圖5 RGB-D序列office2重建結(jié)果
圖6 RGB-D序列l(wèi)ivingroom2重建結(jié)果
本文提出的算法仍然有其局限性。由于該算法在投影時高度依賴投影方向的選取,所以初始化的時候高度依賴點面ICP算法。而稀疏的邊緣點云容易受到噪聲的影響,所以必須再次使用點面ICP進行再優(yōu)化。這樣的過程明顯提升了該算法所需要的計算量,使得效率相對較低。同時,由于三維數(shù)據(jù)的遮擋關(guān)系,兩片點云的投影圖像中提取的邊緣信息所對應(yīng)的三維點并不一定是同名點。這對選取投影方向的策略提出了更高的要求,投影方向的選擇失誤可能導(dǎo)致難以挽回的結(jié)果。
常用的點云配準(zhǔn)算法通常只使用了幾何信息。因此,常見的點云配準(zhǔn)算法無法處理幾何退化的情況,而幾何退化的情況在室內(nèi)場景中尤其常見。為了解決這個問題,本文提出了一種基于圖像邊緣的彩色點云配準(zhǔn)算法。通過提取顏色的邊緣信息,該算法將幾何退化的數(shù)據(jù)轉(zhuǎn)變?yōu)榉菐缀瓮嘶臄?shù)據(jù)來解決這個問題。并且通過多組實驗證明該算法是確實有效的,可以明顯提升點云配準(zhǔn)的精度。并且隨著RGB-D相機的技術(shù)發(fā)展和產(chǎn)品普及,該算法在未來會有更多的應(yīng)用空間。