黃梓鈞 李 東
(廣東工業(yè)大學(xué) 自動(dòng)化學(xué)院,廣東 廣州 510006)
場(chǎng)景流定義了兩幀三維數(shù)據(jù)中源點(diǎn)云中的每個(gè)點(diǎn)到目標(biāo)點(diǎn)云的三維運(yùn)動(dòng),是理解環(huán)境變化的低級(jí)特征。場(chǎng)景流可以用于機(jī)器人、自動(dòng)駕駛、人機(jī)交互,動(dòng)作識(shí)別等領(lǐng)域,是目前計(jì)算機(jī)視覺(jué)中一項(xiàng)關(guān)鍵性任務(wù)。近年來(lái),隨著雷達(dá)技術(shù)和點(diǎn)云神經(jīng)網(wǎng)絡(luò)[1,2]的發(fā)展,直接利用神經(jīng)網(wǎng)絡(luò)從點(diǎn)云中估計(jì)場(chǎng)景流成為當(dāng)前的研究熱點(diǎn)。
FlowNet3D[3]是第一個(gè)直接從點(diǎn)云中估計(jì)場(chǎng)景流的神經(jīng)網(wǎng)絡(luò),其通過(guò)PointNet++[2]分別提取兩幀點(diǎn)云的深度特征,再通過(guò)流嵌入層融合兩幀點(diǎn)云的特征得到流嵌入,將流嵌入經(jīng)過(guò)Set Conv 下采樣和Set UpConv 上采樣進(jìn)行特征傳遞,最后估計(jì)出場(chǎng)景流。但其只在一個(gè)尺度上進(jìn)行了特征融合,難以學(xué)習(xí)到不同大小的運(yùn)動(dòng)。Wu 等[4]提出PointPWC-Net,用金字塔結(jié)構(gòu)的網(wǎng)絡(luò)提取兩幀點(diǎn)云不同尺度的特征并計(jì)算出匹配代價(jià),逐層向上傳播估計(jì)出場(chǎng)景流,允許網(wǎng)絡(luò)學(xué)習(xí)到不同大小的運(yùn)動(dòng),但是相比FlowNet3D 參數(shù)增加了一倍。Puy 等[5]提出了FLOT,將場(chǎng)景流估計(jì)問(wèn)題轉(zhuǎn)換為最優(yōu)傳輸問(wèn)題,通過(guò)深度特征建立點(diǎn)云間的密集匹配關(guān)系,減少了網(wǎng)絡(luò)的參數(shù)量,然而在大規(guī)模的點(diǎn)云數(shù)據(jù)上,最優(yōu)傳輸問(wèn)題的求解會(huì)消耗大量計(jì)算資源。Wang 等[6]在FlowNet3D 的基礎(chǔ)上提出了FESTA, 其使用注意力機(jī)制調(diào)整由最遠(yuǎn)點(diǎn)采樣(FPS)得到的下采樣點(diǎn),緩解了下采樣的不穩(wěn)定性,并迭代運(yùn)行網(wǎng)絡(luò)逐步優(yōu)化預(yù)測(cè)值,使網(wǎng)絡(luò)可以精確估計(jì)不同大小的運(yùn)動(dòng),但仍然使用最大池化來(lái)融合兩幀點(diǎn)云的特征,損失了很多運(yùn)動(dòng)信息。以上工作說(shuō)明,如何有效地融合兩幀點(diǎn)云不同尺度的特征來(lái)學(xué)習(xí)不同大小的運(yùn)動(dòng)仍是一個(gè)需要重點(diǎn)研究的方向。
針對(duì)上述問(wèn)題,本文在FESTA 的基礎(chǔ)上設(shè)計(jì)了基于聚合全局流嵌入(Global Flow Embedding Aggregation,GFEA)的場(chǎng)景流估計(jì)網(wǎng)絡(luò),如圖1 所示。提出的GFEA 模塊通過(guò)學(xué)習(xí)源點(diǎn)云的自注意力來(lái)加權(quán)流特征,使得網(wǎng)絡(luò)可以自適應(yīng)的學(xué)習(xí)全局運(yùn)動(dòng)信息。為了進(jìn)一步提高網(wǎng)絡(luò)性能,在流嵌入層中引入平均池化來(lái)減少運(yùn)動(dòng)信息的損失?;谏鲜龅哪K,本文提出的場(chǎng)景流估計(jì)網(wǎng)絡(luò)在FlyingThings3D[7]數(shù)據(jù)集上獲得了超過(guò)當(dāng)前最先進(jìn)方法的結(jié)果。
圖1 本文網(wǎng)絡(luò)結(jié)構(gòu)
本文在FESTA 網(wǎng)絡(luò)的基礎(chǔ)上將改進(jìn)了流嵌入模塊和引入了GFEA 模塊,如圖1 所示。網(wǎng)絡(luò)輸入為源點(diǎn)云S={X,Fx|X∈Rn1×3,Fx∈Rn1×c}和目標(biāo)點(diǎn)云T={Y,Fy|Y∈Rn2×3,Fy∈Rn2×c},其中X 和Y 表示點(diǎn)云坐標(biāo),Fx和Fy表示點(diǎn)云的特征(法向量,顏色等),輸出為源點(diǎn)云對(duì)應(yīng)的場(chǎng)景流F∈Rn1×3,和遮擋掩膜M∈Rn1。源點(diǎn)云和目標(biāo)點(diǎn)云首先通過(guò)兩層Set Conv 層對(duì)點(diǎn)云下采樣并學(xué)習(xí)其局部特征,接著通過(guò)流嵌入層融合點(diǎn)云特征得到流嵌入,然后流嵌入再通過(guò)兩層Set Conv 提取深層信息。其中GFEA 模塊通過(guò)源點(diǎn)云的深度特征學(xué)習(xí)自注意力來(lái)加權(quán)流嵌入以學(xué)習(xí)全局運(yùn)動(dòng)信息。最后通過(guò)Set UpConv 層將點(diǎn)云上采樣回原始分辨率,估計(jì)出場(chǎng)景流和遮擋掩膜。根據(jù)場(chǎng)景流預(yù)測(cè)值移動(dòng)源點(diǎn)云,重新計(jì)算流嵌入及后面步驟,估計(jì)出最終的結(jié)果。
為了證明本文方法的有效性,采用與FEST 相同的損失函數(shù),即使用平方差損失計(jì)算場(chǎng)景流預(yù)測(cè)值的損失,使用交叉熵計(jì)算遮擋掩膜的損失。
本文提出結(jié)合平均池化和最大池化的流嵌入層(Average-Maximum Flow Embedding, AMFE)。該層使用下采樣后的源點(diǎn)云S'={xi,fi|i=1,…,n'1}和目標(biāo)點(diǎn)云T'={yi,gi|j=1,…,n'2}作為輸入,為源點(diǎn)云中的每個(gè)點(diǎn)學(xué)習(xí)流嵌入ei∈Rd。具體而言,以源點(diǎn)云的點(diǎn)xi為圓心,使用k 近鄰(KNN)在目標(biāo)點(diǎn)云中搜索前k 近的點(diǎn)云,結(jié)合坐標(biāo)差和兩點(diǎn)云特征,使用多層感知機(jī)(MLP)進(jìn)一步學(xué)習(xí),分別通過(guò)最大池化和平均池化聚合該點(diǎn)和k 個(gè)鄰近點(diǎn)的特征,最后通過(guò)線性層融合得到流嵌入:
平坦的區(qū)域中各個(gè)部分特征相似,僅靠局部特征學(xué)習(xí)的流嵌入難以估計(jì)出精確的場(chǎng)景流。解決上述問(wèn)題的核心思想是相似結(jié)構(gòu)的點(diǎn)云大概率有相似的運(yùn)動(dòng)。因此可以利用注意力矩陣聚合全局相似的運(yùn)動(dòng)特征,通過(guò)統(tǒng)計(jì)信息來(lái)優(yōu)化該點(diǎn)的流嵌入。
基于這一思想,本文提出基于注意力機(jī)制的全局流嵌入聚合模塊(圖2)。將下采樣3 次得到的源點(diǎn)云特征f∈RNxC1和流表示e∈RNxC2作為輸入,其中N 為點(diǎn)云個(gè)數(shù),C 表示特征的長(zhǎng)度,通過(guò)以下方式學(xué)習(xí)全局流表示:
圖2 全局流嵌入聚合層
其中Wq,Wk∈Rc1xCe,Wv∈RC2xC2對(duì)每個(gè)點(diǎn)共享參數(shù),Ce是查詢向量和關(guān)鍵向量的長(zhǎng)度。h 用于計(jì)算注意力矩陣:
由于點(diǎn)云特征自身包含相對(duì)位置關(guān)系,因此沒(méi)有引入額外的位置編碼。
以往的場(chǎng)景流估計(jì)任務(wù)中主要采用了 FlyingThings3D作為實(shí)驗(yàn)數(shù)據(jù)集。本文采用與FESTA 相同的數(shù)據(jù)處理和劃分方式。處理后的FlyingThings3D 數(shù)據(jù)集中包含20000 對(duì)訓(xùn)練數(shù)據(jù)和2000 對(duì)測(cè)試數(shù)據(jù)。 除了點(diǎn)云坐標(biāo)外,FlyingThing3D 中還提供了顏色信息和遮擋掩膜。本文在兩種輸入情況下進(jìn)行訓(xùn)練,一種是僅使用點(diǎn)云坐標(biāo)作為輸入,另一種是使用坐標(biāo)和顏色信息作為輸入。訓(xùn)練時(shí)隨機(jī)采樣2048 個(gè)點(diǎn)作為輸入,測(cè)試時(shí)使用全部點(diǎn)云作為輸入。為了公平比較,訓(xùn)練參數(shù)設(shè)置與FESTA 相同。
網(wǎng)絡(luò)性能的評(píng)價(jià)指標(biāo)有三個(gè):EPE3D,Acc Strict 和Acc Relax。EPE3D 表示場(chǎng)景流預(yù)測(cè)值與真實(shí)值間差值的歐式距離。Acc Strict 和Acc Relax 表示不同閾值下的準(zhǔn)確率,其中Acc Strict 表示EPE3D<0.05m 或者預(yù)測(cè)值與真實(shí)值的相對(duì)誤差小于5%,Acc Relax 表示EPE3D<0.1m 或者相對(duì)誤差小于10%。
表1 展示了在FlyingThings3D 數(shù)據(jù)集上各個(gè)評(píng)價(jià)指標(biāo)的結(jié)果,兩種輸入條件下,本文提出的網(wǎng)絡(luò)都取得了最優(yōu)的結(jié)果。兩種輸入情況在Acc Strict 標(biāo)準(zhǔn)下,本文方法相比FESTA 分別提升了5.1%和4.5%。另外,只使用坐標(biāo)作為輸入時(shí),本文網(wǎng)絡(luò)在Acc Strict 和Acc Relax 標(biāo)準(zhǔn)上都超過(guò)了其他方法使用額外的顏色信息作為輸入時(shí)的結(jié)果,證明了本文方法的有效性。
表1 在FlyingThings3D 上的性能
為了驗(yàn)證本文提出的兩個(gè)模塊的有效性,本文進(jìn)行了消融實(shí)驗(yàn),比較了有無(wú)改進(jìn)流嵌入層,有無(wú)全局流嵌入聚合模塊,以及兩模塊共同作用的結(jié)果。實(shí)驗(yàn)結(jié)果如表2 所示,打勾表示用了該模塊。
從表2 中可以看到,兩個(gè)模塊單獨(dú)使用時(shí),在測(cè)試集上的性能都獲得了提升,但是單獨(dú)使用AMFE 的效果更好一些。這是由于原始流嵌入層中的最大池化造成了運(yùn)動(dòng)信息的損失,影響了GFEA 模塊的注意力學(xué)習(xí)過(guò)程。使用AMFE 減少了最大池化造成的信息損失,讓流嵌入保存了更豐富的運(yùn)動(dòng)特征,有利于后續(xù)網(wǎng)絡(luò)的學(xué)習(xí)。將兩模塊同時(shí)使用時(shí),AMFE 保留了更多的運(yùn)動(dòng)信息,GFEA 以此更好地估計(jì)平滑區(qū)域的場(chǎng)景流,使得Acc Strict 獲得了2%的提升。
表2 消融實(shí)驗(yàn)結(jié)果
本文提出了基于全局流嵌入聚合的場(chǎng)景流估計(jì)網(wǎng)絡(luò),進(jìn)一步提升了場(chǎng)景流估計(jì)網(wǎng)絡(luò)的性能。該網(wǎng)絡(luò)利用源點(diǎn)云的自注意力加權(quán)學(xué)習(xí)到的流嵌入,使得網(wǎng)絡(luò)能夠通過(guò)全局信息自適應(yīng)地調(diào)整流嵌入,更精確地預(yù)測(cè)場(chǎng)景流。另外,通過(guò)引進(jìn)平均池化改進(jìn)了流嵌入層,從而進(jìn)一步提升了網(wǎng)絡(luò)的性能。通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),上述兩個(gè)模塊能夠相互促進(jìn),結(jié)合使用可以獲得更加明顯的提升。隨著輸入點(diǎn)云數(shù)量的增長(zhǎng),全局流聚合模塊的復(fù)雜度以平方的速度增長(zhǎng),帶來(lái)較大的計(jì)算量,因此在未來(lái)的工作中,將進(jìn)一步思考如何降低注意力模塊的計(jì)算復(fù)雜度。