梁正友,姚 強(qiáng),孫 宇,李軒昂
(1.廣西大學(xué) 計(jì)算機(jī)與電子信息學(xué)院,廣西 南寧 530004;2.廣西大學(xué) 廣西多媒體通信與網(wǎng)絡(luò)技術(shù)重點(diǎn)實(shí)驗(yàn)室,廣西 南寧 530004)
點(diǎn)云配準(zhǔn)是指求解對(duì)齊2個(gè)未知對(duì)應(yīng)關(guān)系的點(diǎn)云之間的剛性變換,在計(jì)算機(jī)視覺(jué)和機(jī)器人技術(shù)等許多領(lǐng)域都有應(yīng)用,如物體姿態(tài)估計(jì)[1]、三維物體表面重建[2,3]以及基于點(diǎn)云的圖形繪制[4]等。Besl等[5]提出ICP算法,它通過(guò)在以下兩個(gè)步驟進(jìn)行迭代求解最優(yōu)解:①為當(dāng)前點(diǎn)云中的每一個(gè)點(diǎn)在另一個(gè)點(diǎn)云中找到其對(duì)應(yīng)最近的點(diǎn)形成對(duì)應(yīng)點(diǎn)對(duì);②計(jì)算找到的對(duì)應(yīng)點(diǎn)對(duì)之間最小二乘剛性變換矩陣。在ICP的基礎(chǔ)上衍生出了許多變種方法,如Go-ICP[6]、tr-ICP等,它們采用優(yōu)化算法增強(qiáng)算法魯棒性,ICP類(lèi)算法普遍存在對(duì)初始值敏感和計(jì)算復(fù)雜度高的問(wèn)題。近年來(lái),基于深度學(xué)習(xí)的點(diǎn)云配準(zhǔn)方法被提出。Aoki等[7]提出PointNetLK模型,利用PointNet[8,9]提取點(diǎn)云特征,再使用改進(jìn)后的Lucas&Kanade算法進(jìn)行點(diǎn)云配準(zhǔn);Kurobe等[10]提出的CorseNet拼接點(diǎn)云局部特征和全局特征,再用MLP預(yù)測(cè)剛性變換,最后通過(guò)SVD求解剛性變換。Wang等[11]使用動(dòng)態(tài)圖卷積神經(jīng)網(wǎng)絡(luò)(dynamic graph CNN,DGCNN)[12]提取點(diǎn)云的特征,通過(guò)基于自注意力機(jī)制的預(yù)測(cè)模塊來(lái)預(yù)測(cè)點(diǎn)云之間的軟匹配,最后使用可微的奇異值分解計(jì)算剛性變換矩陣,但它僅利用了單一尺度的局部特征,配準(zhǔn)精度仍有待提升。
本文提出一種基于多尺度特征融合和殘差空間通道混合注意力機(jī)制的點(diǎn)云配準(zhǔn)算法。相較于ICP、Go-ICP、PointNetLK和DCP等算法,本文提出的算法配準(zhǔn)精度更高,魯棒性更強(qiáng),遷移能力更好。本文主要?jiǎng)?chuàng)新點(diǎn)有:①將多尺度特征融合的思想應(yīng)用到點(diǎn)云特征提取,提取包含點(diǎn)云局部細(xì)節(jié)信息和點(diǎn)云整體結(jié)構(gòu)的點(diǎn)云特征;②在特征提取模塊中加入基于殘差結(jié)構(gòu)的混合注意力機(jī)制,分別在通道域和空間域?qū)τ行卣髟鰪?qiáng),進(jìn)一步增加了模型對(duì)于有效特征的學(xué)習(xí)能力;③通過(guò)和其它方法在ModelNet40[13]公開(kāi)數(shù)據(jù)集上進(jìn)行對(duì)比分析,驗(yàn)證了本文算法在點(diǎn)云配準(zhǔn)上的先進(jìn)性。
假設(shè)源點(diǎn)云和目標(biāo)點(diǎn)云分別表示為X={x1,x2,…,xi,…,xn}∈3和Y={y1,y2,…,yi,…,ym}∈3, 點(diǎn)云Y是由點(diǎn)云X經(jīng)過(guò)未知的剛性變換{R,t}而來(lái),其中R∈SO(3),t∈3, 點(diǎn)云配準(zhǔn)問(wèn)題就是要求解{R,t}使得Y=RX+t。 為方便表示,我們這里僅考慮m=n這種最簡(jiǎn)單的情況,因?yàn)镸S-DGCNN、Transformer和Softmax等模塊將輸入作為無(wú)序的集合看待,對(duì)源點(diǎn)云X和目標(biāo)點(diǎn)云Y中點(diǎn)的數(shù)量是否相等沒(méi)有硬性要求,所以源點(diǎn)云X和目標(biāo)點(diǎn)云Y中點(diǎn)的數(shù)量不相等的情況(即m≠n)非常容易推廣。假設(shè)X,Y中的點(diǎn)xi,yi一一對(duì)應(yīng),則經(jīng)過(guò){R,t}變換后的點(diǎn)云和目標(biāo)點(diǎn)云之間的誤差可以表示如下
(1)
(2)
協(xié)方差矩陣H可以表示如下
(3)
定義協(xié)方差矩陣H=U∑VT, 對(duì)H進(jìn)行奇異值分解可以得到
(4)
(5)
從X中每個(gè)點(diǎn)xi到Y(jié)中的對(duì)應(yīng)點(diǎn)的映射m()由式(6)給出
(6)
本文提出的基于多尺度特征融合和殘差混合注意力的點(diǎn)云配準(zhǔn)算法整體結(jié)構(gòu)如圖1所示。主要由4個(gè)模塊構(gòu)成,它們分別是用于提取特征的多尺度動(dòng)態(tài)圖卷積(multi scale-dynamic graph CNN,MS-DGCNN)模塊、用于交換源點(diǎn)云和目標(biāo)點(diǎn)云的特征信息的Transformer模塊、用于生成軟匹配的軟指針模塊以及計(jì)算剛性變換矩陣的可微的奇異值分解模塊。
圖1 整體結(jié)構(gòu)
在點(diǎn)云特征中,小尺度特征包含了更多的點(diǎn)云局部空間結(jié)構(gòu)的細(xì)節(jié)特征,大尺度特征則更注重于點(diǎn)云整體結(jié)構(gòu)信息。不僅尺度不同的特征有不同的性質(zhì),卷積層次不同的特征也有類(lèi)似的性質(zhì)。淺層次卷積網(wǎng)絡(luò)的感受野較小,對(duì)于細(xì)節(jié)的表征能力強(qiáng);深層次卷積網(wǎng)絡(luò)的感受野較大,對(duì)于語(yǔ)義信息的表征能力強(qiáng)。多尺度特征融合思想的精髓在于同時(shí)使用不同尺度的特征,充分發(fā)揮他們各自的優(yōu)點(diǎn),從而取得1+1>2的效果。在點(diǎn)云配準(zhǔn)中,想要配準(zhǔn)具有對(duì)稱簡(jiǎn)單結(jié)構(gòu)的點(diǎn)云,提取到的點(diǎn)云特征必須包含整體的結(jié)構(gòu)信息;想要配準(zhǔn)具有精細(xì)小巧結(jié)構(gòu)的點(diǎn)云,提取到的點(diǎn)云特征必須包含局部細(xì)節(jié)信息。這就要求提取到的點(diǎn)云特征不僅能表征點(diǎn)云整體的結(jié)構(gòu)信息,還能夠包括豐富的細(xì)節(jié)信息。
為了提取到不同層次的點(diǎn)云特征,進(jìn)一步豐富點(diǎn)云特征的內(nèi)涵,來(lái)滿足點(diǎn)云配準(zhǔn)對(duì)于點(diǎn)云特征的要求。受到多尺度特征在2D圖像處理[14,15]上取得顯著成效的啟發(fā),針對(duì)點(diǎn)云特征的內(nèi)在要求,本文創(chuàng)新性地將多尺度特征的思想應(yīng)用在點(diǎn)云特征提取中。文本在DGCNN的基礎(chǔ)上進(jìn)行改進(jìn),提出了共享權(quán)重的多尺度動(dòng)態(tài)圖卷積(multi scale-DGCNN,MS-DGCNN)特征提取模塊,MS-DGCNN結(jié)構(gòu)如圖2所示。分別選取k=10,k=20和k=30的k鄰近圖得到初始特征,再分別進(jìn)行不同深度的卷積操作獲得不同尺度的特征,最后將各尺度的卷積結(jié)果融合為一個(gè)綜合特征。
圖2 MS-DGCNN模塊結(jié)構(gòu)
綜合特征中會(huì)包含部分重復(fù)冗余特征,它們對(duì)于后續(xù)配準(zhǔn)會(huì)產(chǎn)生負(fù)面影響。為了盡可能地減小冗余信息帶來(lái)的負(fù)面影響;增強(qiáng)有用特征在配準(zhǔn)過(guò)程中的積極作用,提高點(diǎn)云配準(zhǔn)精度和效率。
受CBAM[16]和DANet[17]啟發(fā),文本在MS-DGCNN模塊中添加了具有殘差結(jié)構(gòu)的混合注意力模塊(residual mixed attention,RMA),RMA模塊結(jié)構(gòu)如圖3所示。
圖3 RMA模塊結(jié)構(gòu)
層數(shù)過(guò)多的深度神經(jīng)網(wǎng)絡(luò)通常會(huì)出現(xiàn)模型學(xué)習(xí)能力不升反降的問(wèn)題,這是由于梯度在反向傳播過(guò)程中經(jīng)過(guò)累計(jì)相乘之后變?yōu)榱?,出現(xiàn)梯度彌散,導(dǎo)致模型訓(xùn)練不動(dòng)。殘差結(jié)構(gòu)[18]通過(guò)巧妙地在輸入和輸出之間加入跳連接的方式,使模型轉(zhuǎn)而學(xué)習(xí)輸出和輸入之間的殘差映射,完美地解決了這個(gè)問(wèn)題,從而提升了模型對(duì)樣本的擬合能力。
RMA模塊中包含了通道注意力[19]模塊和空間注意力模塊。其中,通道注意力模塊結(jié)構(gòu)如圖4所示。
圖4 通道注意力模塊結(jié)構(gòu)
通道注意力模塊流程:對(duì)輸入信息分別進(jìn)行最大池化、平均池化操作,接著將池化后的特征經(jīng)過(guò)一個(gè)共享權(quán)重的多層感知機(jī),然后將卷積操作的結(jié)果進(jìn)行元素對(duì)位相加,最后經(jīng)過(guò)sigmoid激活函數(shù)得到最終的輸出信息。通道注意力模塊能夠從通道域的維度根據(jù)目標(biāo)任務(wù)的需要增強(qiáng)或抑制不同的通道的權(quán)重大小??臻g注意力模塊結(jié)構(gòu)如圖5所示。
圖5 空間注意力模塊結(jié)構(gòu)
空間注意力模塊流程:對(duì)輸入信息分別進(jìn)行最大池化、平均池化操作,然后將池化的結(jié)果按通道維度拼在一起,再經(jīng)過(guò)sigmoid激活函數(shù),最后通過(guò)一個(gè)卷積層得到最終的輸出信息。
源點(diǎn)云X和目標(biāo)點(diǎn)云Y分別經(jīng)過(guò)共享權(quán)重的MS-DGCNN特征提取模塊后,得到點(diǎn)云原始特征FX={fx1,fx2,…,fxi,…,fxn} 和FY={fy1,fy2,…,fyj,…,fym}。
圖6 類(lèi)Transformer模塊結(jié)構(gòu)
φX=FX+φ(FX,F(xiàn)Y)
(7)
φY=FY+φ(FY,F(xiàn)X)
(8)
軟指針是使用基于概率方法生成待匹配點(diǎn)云到目標(biāo)點(diǎn)云的軟匹配:源點(diǎn)云X中的點(diǎn)xi通過(guò)
(9)
得到點(diǎn)與點(diǎn)的匹配關(guān)系。其中φY∈N×P表示目標(biāo)點(diǎn)云Y新特征,φxi∈1×P表示待配準(zhǔn)點(diǎn)云X中點(diǎn)xi的新特征,二者做點(diǎn)積得到點(diǎn)xi與目標(biāo)點(diǎn)云Y中每個(gè)點(diǎn)的相似度,再利用softmax()將相似度轉(zhuǎn)變?yōu)楦怕?,m(xi,Y) 是點(diǎn)xi到目標(biāo)點(diǎn)云Y中每個(gè)點(diǎn)的軟指針。使用軟指針為X中的每個(gè)點(diǎn)xi生成目標(biāo)點(diǎn)云Y中的匹配平均點(diǎn)的坐標(biāo)
(10)
其中,YT∈N×3表示目標(biāo)點(diǎn)云Y中N個(gè)點(diǎn)的坐標(biāo)。這樣就得到預(yù)測(cè)出的點(diǎn)云最后對(duì)源點(diǎn)云X和預(yù)測(cè)出的點(diǎn)云使用SVD(式(4))求解得到R,t。
本文損失函數(shù)定義如下
(11)
其中,Rgt和tgt分別表示源點(diǎn)云到目標(biāo)點(diǎn)云之間的真實(shí)旋轉(zhuǎn)矩陣和真實(shí)平移向量,I3是三階單位矩陣。當(dāng)R無(wú)限接近于Rgt,t無(wú)限接近于tgt時(shí),R-1Rgt會(huì)無(wú)限接近一個(gè)三階單位矩陣,二者之差會(huì)無(wú)限接近于0;t和tgt之差也會(huì)無(wú)限接近于0。
2.1.1 數(shù)據(jù)集
本文在ModelNet40數(shù)據(jù)集上開(kāi)展實(shí)驗(yàn)。ModelNet40數(shù)據(jù)集涵蓋了40類(lèi)對(duì)象,總共12 311個(gè)CAD模型。本文采取和PointNetLK和DCP中一樣的數(shù)據(jù)預(yù)處理方式:先對(duì)數(shù)據(jù)集中的每個(gè)CAD模型表面均勻采樣1024個(gè)點(diǎn)并只保留每個(gè)點(diǎn)的三維坐標(biāo)信息 (x,y,z), 再將坐標(biāo)縮放到單位球體中。
2.1.2 實(shí)驗(yàn)環(huán)境和參數(shù)設(shè)置
本文所有實(shí)驗(yàn)在一臺(tái)配備Intel Xeon(R)E5-1620 3.6 GHz處理器,16 GB內(nèi)存和1塊Nvidia TITAN Xp顯卡(顯存12 GB)的工作站上進(jìn)行。軟件環(huán)境為Ubuntu 18.04,python 3.6.10,pytorch 1.4.0,Cuda 10.1。訓(xùn)練輪數(shù)為250輪,選用Adam優(yōu)化器,動(dòng)量大小為0.9,初始學(xué)習(xí)率為0.001,分別在第100、180、210輪將學(xué)習(xí)率下降10倍,batch大小設(shè)置為4,訓(xùn)練時(shí)間共計(jì)100 h。
2.1.3 評(píng)價(jià)指標(biāo)
本文選取均方誤差(mean squared error,MSE)、均方根誤差(root mean squared error,RMSE)和平均絕對(duì)誤差(mean absolute error,MAE)3種指標(biāo)對(duì)所有算法進(jìn)行評(píng)價(jià)、分析和比較。通過(guò)計(jì)算旋轉(zhuǎn)矩陣的預(yù)測(cè)值R和真實(shí)旋轉(zhuǎn)矩陣Rgt之間的MSE(R)、RMSE(R)和MAE(R)來(lái)反映點(diǎn)云配準(zhǔn)算法的旋轉(zhuǎn)精度好壞;計(jì)算平移向量的預(yù)測(cè)值t和真實(shí)平移向量tgt之間的MSE(t)、RMSE(t)和MAE(t)來(lái)反映點(diǎn)云配準(zhǔn)算法的平移精度好壞。如果它們的值越小,則表明相應(yīng)的誤差越小,配準(zhǔn)結(jié)果的精度越高;反之,它們的值越大,則表明相應(yīng)的誤差越大,配準(zhǔn)結(jié)果的精度越低。
為測(cè)試本文所提算法的有效性,噪聲魯棒性和遷移能力,本文分別在以ModelNet40為基礎(chǔ)的3個(gè)人工子數(shù)據(jù)集上進(jìn)行了對(duì)比實(shí)驗(yàn)。分別同傳統(tǒng)的點(diǎn)云配準(zhǔn)算法ICP、Go-ICP以及基于深度學(xué)習(xí)的點(diǎn)云配準(zhǔn)算法PointNetLK和DCP進(jìn)行了對(duì)比,其中ICP算法的實(shí)現(xiàn)采用Open3D庫(kù)的默認(rèn)參數(shù),Go-ICP、PointNetLK和DCP等點(diǎn)云配準(zhǔn)算法的實(shí)現(xiàn)分別采用相應(yīng)作者公開(kāi)的源代碼。
2.2.1 在Clean數(shù)據(jù)集上訓(xùn)練和測(cè)試
為測(cè)試本文算法的有效性,本小節(jié)在Clean數(shù)據(jù)集上同其它點(diǎn)云配準(zhǔn)算法進(jìn)行了對(duì)比實(shí)驗(yàn)。Clean數(shù)據(jù)集隨機(jī)將ModelNet40中所有點(diǎn)云隨機(jī)分為訓(xùn)練集和測(cè)試集,選取其中9843個(gè)模型作為訓(xùn)練集,其余2468個(gè)模型作為測(cè)試集。訓(xùn)練期間,對(duì)源點(diǎn)云X進(jìn)行隨機(jī)的剛性變換得到目標(biāo)點(diǎn)云Y,具體操作是:分別圍繞3個(gè)坐標(biāo)軸隨機(jī)在[0,45°]范圍內(nèi)旋轉(zhuǎn),同時(shí)沿著每個(gè)坐標(biāo)軸隨機(jī)在[-0.5,0.5]范圍內(nèi)平移。在Clean數(shù)據(jù)集上訓(xùn)練和測(cè)試的實(shí)驗(yàn)結(jié)果見(jiàn)表1,結(jié)果表明本文算法的配準(zhǔn)精度明顯高于ICP、Go-ICP、PointNetLK和DCP等點(diǎn)云配準(zhǔn)算法。本文算法的配準(zhǔn)效果如圖7所示,其中黑色的是源點(diǎn)云,灰色的是目標(biāo)點(diǎn)云。
表1 在Clean數(shù)據(jù)集上測(cè)試的結(jié)果
圖7 本文算法配準(zhǔn)效果
2.2.2 在Noise數(shù)據(jù)集上測(cè)試
為了測(cè)試和比較各算法對(duì)于噪聲的魯棒性,在本小節(jié)中采用Noise數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),該數(shù)據(jù)集是以Clean數(shù)據(jù)集為基礎(chǔ),并在其中加入了服從均值為0.01,方差為0.05的高斯噪聲。本小節(jié)實(shí)驗(yàn)采用2.2.1小節(jié)中訓(xùn)練的模型進(jìn)行測(cè)試,它是在Clean數(shù)據(jù)集上訓(xùn)練出來(lái)的。實(shí)驗(yàn)結(jié)果見(jiàn)表2,結(jié)果表明:ICP算法通常會(huì)收斂到一個(gè)較遠(yuǎn)處的局部最優(yōu)解,而Go-ICP、PointNetLK和DCP等點(diǎn)云配準(zhǔn)算法對(duì)高斯噪聲仍具有一定的魯棒性,本文算法則對(duì)高斯噪聲有較強(qiáng)的魯棒性。
表2 在Noise數(shù)據(jù)集上測(cè)試的結(jié)果
2.2.3 在Unseen數(shù)據(jù)集上訓(xùn)練和測(cè)試
為測(cè)試和比較各算法的遷移性,本小節(jié)實(shí)驗(yàn)在Unseen數(shù)據(jù)集上進(jìn)行,Unseen數(shù)據(jù)集把ModelNet40按照物體類(lèi)別平均劃分為了兩部分。訓(xùn)練階段使用ModelNet40的前20個(gè)類(lèi)別的點(diǎn)云數(shù)據(jù),測(cè)試階段則使用后20個(gè)類(lèi)別的點(diǎn)云數(shù)據(jù)。需要說(shuō)明的是:ICP和Go-ICP算法直接在后20個(gè)類(lèi)別的數(shù)據(jù)上進(jìn)行測(cè)試。實(shí)驗(yàn)結(jié)果見(jiàn)表3,數(shù)據(jù)表明:本文算法相較于ICP、Go-ICP、PointNetLK和DCP等點(diǎn)云配準(zhǔn)算法在未參與過(guò)訓(xùn)練的點(diǎn)云數(shù)據(jù)上進(jìn)行測(cè)試仍具有相對(duì)較高的配準(zhǔn)精度,說(shuō)明本文算法具有更好的遷移能力。
表3 在Unseen子集上訓(xùn)練和測(cè)試的結(jié)果
2.2.4 PointNet、DGCNN和MS-DGCNN特征提取模塊比較
本小節(jié)實(shí)驗(yàn)將配準(zhǔn)網(wǎng)絡(luò)中的點(diǎn)云特征提取模塊分別替換成PointNet、DGCNN和MS-DGCNN這3個(gè)特征提取模塊,其它設(shè)置都保持一樣。PointNet特征提取模塊僅提取了點(diǎn)云的全局特征,卻忽略了非常關(guān)鍵的點(diǎn)云局部特征;DGCNN特征提取模塊利用k鄰近圖和邊卷積提取點(diǎn)云局部特征再聚合為全局特征,但是提取到的特征結(jié)構(gòu)單一;MS-DGCNN特征提取模塊在DGCNN的基礎(chǔ)上融合了多種尺度的特征再利用混合注意力增強(qiáng)有效特征,抑制冗余特征,從而可以有效地學(xué)到更加豐富語(yǔ)義的特征,進(jìn)一步增強(qiáng)特征的表征能力。下面對(duì)比了分別使用 PointNet、DGCNN和MS-DGCNN作為特征提取模塊的配準(zhǔn)結(jié)果。實(shí)驗(yàn)結(jié)果見(jiàn)表4,結(jié)果表明使用本文提出的MS-DGCNN模塊作為特征提取模塊的算法配準(zhǔn)精度更高。
表4 PointNet、DGCNN、MS-DGCNN特征提取模塊比較
本文提出了一種基于多尺度特征融合和殘差混合注意力機(jī)制的點(diǎn)云配準(zhǔn)算法。通過(guò)提取點(diǎn)云中不同尺度特征并融合為綜合特征,再使用具有殘差結(jié)構(gòu)的混合注意力機(jī)制模塊增強(qiáng)有效特征抑制冗余特征,然后通過(guò)Transformer和軟指針預(yù)測(cè)出配準(zhǔn)點(diǎn)云,最后利用SVD求出剛性變換。實(shí)驗(yàn)結(jié)果表明,本文所提算法具有更高的配準(zhǔn)精度,更強(qiáng)的魯棒性以及更好的遷移性。本文后續(xù)重點(diǎn)工作將考慮引入交叉注意力機(jī)制,以在殘缺不完整或低重疊度的點(diǎn)云配準(zhǔn)任務(wù)中也能取得良好的配準(zhǔn)結(jié)果。