鄭秋梅 溫 陽 王風(fēng)華
(中國石油大學(xué)(華東)計算機(jī)科學(xué)與技術(shù)學(xué)院 青島 266580)
雙目立體匹配是計算機(jī)視覺領(lǐng)域中的一個重要問題,在自動駕駛、三維重建、三維追蹤中發(fā)揮著重要的作用[1~2]。根據(jù)是否使用卷積神經(jīng)網(wǎng)絡(luò)的相關(guān)理論技術(shù)可將其分為傳統(tǒng)算法[3~6]以及基于深度學(xué)習(xí)的算法[7~9]。基于深度學(xué)習(xí)的雙目立體匹配算法由于可以直接從網(wǎng)絡(luò)所輸入的初始圖像中提取特征,相比于傳統(tǒng)算法具有更好的匹配效果。但是在處理場景中的弱紋理區(qū)域、反光表面(如車窗玻璃等)等容易出現(xiàn)錯誤匹配的區(qū)域,易出現(xiàn)由于特征提取不夠充分而影響匹配精度的問題。
本文在基于空間金字塔池化和3D沙漏網(wǎng)絡(luò)的思想上,考慮不同通道上的特征對信息的表達(dá)能力不同,提高匹配精度;結(jié)合殘差網(wǎng)絡(luò)[10]對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化,降低模型參數(shù)數(shù)量,提出基于多卷積核通道特征加權(quán)的雙目立體匹配算法(SK?PSM-Net)。最后,在Scene Flow和KITTI2015數(shù)據(jù)集上對所提網(wǎng)絡(luò)性能進(jìn)行測試。實驗結(jié)果表明本文所提算法能提高網(wǎng)絡(luò)的特征提取能力,從而提高最終獲得的視差圖的精度。
雙目立體匹配的思想是為所給出的一對經(jīng)過校準(zhǔn)的雙目圖像中的每個像素計算視差值d。在雙目圖像對中,若像素點p在左圖像中的位置是(x,y),則其在右圖像中的相應(yīng)位置為(x-d,y),即視差值d是指左右圖像對中相對應(yīng)位置之間像素值的水平位移。通過相機(jī)的焦距以及兩個相機(jī)中心之間的基線距離計算還原出像素點p的在場景中的實際位置。
基于深度學(xué)習(xí)的雙目立體匹配網(wǎng)絡(luò)的處理結(jié)構(gòu)如圖1所示。處理框架包括圖像輸入部分、特征提取部分、構(gòu)造匹配代價部分、視差計算部分以及最終的視差結(jié)果輸出部分。根據(jù)雙目立體匹配網(wǎng)絡(luò)結(jié)構(gòu)圖可以看出,特征提取部分是影響最終計算得到的視差圖精度的關(guān)鍵。

圖1 雙目立體匹配網(wǎng)絡(luò)結(jié)構(gòu)圖
該算法將語義分割和圖像級別上的全局信息相結(jié)合,利用多個串聯(lián)的卷積層和金字塔池化結(jié)構(gòu)獲取特征并融合,從而構(gòu)造匹配代價,使用多個相連的編解碼結(jié)構(gòu)處理匹配代價進(jìn)而計算出視差結(jié)果圖。
該算法降低了匹配誤差,但是只通過利用多個卷積層進(jìn)行特征提取的方式使得網(wǎng)絡(luò)容易丟失通道維度上以及不同通道之間的信息,從而在生成的視差圖中容易出現(xiàn)匹配精度降低的問題。
SK-Net[11]初始作為分類網(wǎng)絡(luò)獲得了很好的效果,SK-Net在通道維度上設(shè)置了具有不同卷積核的支路,可以實現(xiàn)對不同的特征確定合適的感受野,同時使用注意力機(jī)制確定所含信息豐富的特征,同時對特征通道之間的相互關(guān)系進(jìn)行建模增強(qiáng)卷積特征,使得網(wǎng)絡(luò)對可信息化特征的敏感性更強(qiáng),從而可以有效地提升了對特征的信息表達(dá)的充分性,獲得更加豐富的上下文信息,實現(xiàn)對細(xì)節(jié)信息的保留。
金字塔匹配算法作為基于卷積神經(jīng)網(wǎng)絡(luò)的立體匹配方法在匹配精度上有一定的提高,能夠獲得較好的匹配效果。但是,金字塔匹配網(wǎng)絡(luò)在采用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取時,未充分考慮特征在通道維度上的相互依賴關(guān)系,因此可能會造成某些信息的丟失。目前,由于大多數(shù)的立體匹配算法在進(jìn)行特征提取時只固定選擇一種卷積核尺寸,忽視了感受野的尺寸對不同遠(yuǎn)近的物體在生成特征時的影響。
因此,本文在金字塔池化和沙漏網(wǎng)絡(luò)的基礎(chǔ)上,在生成匹配特征時,通過在通道維度上聚合不同尺寸的卷積核實現(xiàn)根據(jù)不同尺度的輸入信息自適應(yīng)的調(diào)整感受野的大小,以此保留更多的細(xì)節(jié)信息,提高立體匹配結(jié)果的精度。多卷積核通道特征加權(quán)結(jié)構(gòu)(SK-Block)如圖2所示,本文算法匹配網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。

圖2 SK-Block結(jié)構(gòu)

圖3 本文算法網(wǎng)絡(luò)結(jié)構(gòu)圖
在匹配網(wǎng)絡(luò)的特征提取階段,本文所提算法首先采用傳統(tǒng)卷積對輸入圖像進(jìn)行初步的特征提取,之后對提取到的特征X∈RH*W*C進(jìn)行通道維度上的加權(quán)處理。具體做法如下。
1)本文算法首先分別設(shè)置了3*3和5*5兩種不同尺寸的卷積核處理輸入特征X∈RH*W*C,得到特征圖X1,X2;
2)為了實現(xiàn)根據(jù)不同的特征自適應(yīng)的調(diào)整感受野的大小,將經(jīng)過兩種卷積核處理得到的特征進(jìn)行初步融合,得到Y(jié)=X1+X2,在空間維度上對聚合得到的特征Y進(jìn)行降維處理,計算公式如下:

其中,Q表示在通道維度上的信息描述符,c表示通道的個數(shù)。之后采用全連接層對特征進(jìn)行進(jìn)一步的壓縮f∈Rd*1,如式(2)所示。

其中,δ表示ReLU操作,β表示批歸一化處理,W∈Rd*c。采用r對通道分組數(shù)d進(jìn)行控制,如式(3)所示。

其中,L表示d的最小值(在本文中設(shè)置為16)。
3)由于本文采用兩種支路進(jìn)行處理,在通道維度上采用軟注意力機(jī)制根據(jù)特征描述符f自適應(yīng)的選擇不同尺度的信息,在不同支路計算的特征權(quán)重計算公式如下:

其中,A,B∈Rc*d,Ac∈R1*d表示A中的第c行,ac表示a中的第c個元素。
4)將兩路支路計算得到的權(quán)重分別與特征圖X1,X2進(jìn)行融合,得到最終的特征圖V,計算公式如下:

其中,V=[V1,V2,…,Vc],Vc∈RH*W。
之后,本文將經(jīng)過SK-CNN提取到的特征進(jìn)行空間金字塔池化處理。在該階段通過設(shè)置四種具有不同大小的池化核處理SK-CNN所提取到的特征,最后對得到的不同大小的信息進(jìn)行聚合構(gòu)造匹配代價。
本文算法采用多卷積核通道特征加權(quán)算法對圖像進(jìn)行特征提取,通過設(shè)置不同的卷積核大小確定不同尺度的感受野,自適應(yīng)地調(diào)整各特征通道之間的關(guān)系,通過學(xué)習(xí)的方式自動地為每個支路的每個特征通道生成權(quán)重,之后根據(jù)注意力機(jī)制將不同支路得到的特征權(quán)重與相應(yīng)支路的特征融合,實現(xiàn)為每個特征分配合適的權(quán)重,突出所含信息豐富的特征,在理論上,可有效提高最終得到的視差圖的精度。
此外,本文在保證視差精度的情況下,采用殘差思想對金字塔匹配網(wǎng)絡(luò)的特征提取階段的結(jié)構(gòu)進(jìn)行優(yōu)化,本文算法對金字塔匹配網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行壓縮處理,最終的模型體積減少了3.49%。
Menze等在2015年所提出的Scene Flow數(shù)據(jù)集[12]與Mayer等所構(gòu)建的KITTI2015數(shù)據(jù)集[13]是當(dāng)前立體匹配領(lǐng)域常用的公開數(shù)據(jù)集。其中,Scene Flow數(shù)據(jù)集具有數(shù)據(jù)量大、場景類型豐富等特點;KITTI2015數(shù)據(jù)集由真實場景中的不同駕駛情境中的行駛中的車輛圖像構(gòu)成,因此該數(shù)據(jù)集內(nèi)的場景更加真實復(fù)雜。
網(wǎng)絡(luò)采用pytorch深度學(xué)習(xí)框架搭建。整個訓(xùn)練和測試過程中所涉及到的相關(guān)實驗均使用服務(wù)器Tesla P100進(jìn)行。模型訓(xùn)練過程中,先在所含數(shù)據(jù)量較為豐富的Scene Flow數(shù)據(jù)集上對模型進(jìn)行初步的預(yù)訓(xùn)練;之后再在含有真實場景圖像的KIT?TI2015數(shù)據(jù)集上對其做出進(jìn)一步的模型優(yōu)化調(diào)整。訓(xùn)練時使用Adam優(yōu)化算法[14],設(shè)置相關(guān)參數(shù)β1=0.9,β2=0.999,batchsize=2。在Scene Flow數(shù)據(jù)集上訓(xùn)練時學(xué)習(xí)率(learning rate,lr)設(shè)為0.001訓(xùn)練得到預(yù)訓(xùn)練模型,之后再在KITTI2015數(shù)據(jù)集上以0.001的學(xué)習(xí)率(learning rate,lr)訓(xùn)練前300個epoch,之后再以0.0001的學(xué)習(xí)率(learning rate,lr)訓(xùn)練150個epoch實現(xiàn)模型優(yōu)化。本文將PSM-Net算法作為對比,網(wǎng)絡(luò)參數(shù)均與作者論文中設(shè)置一致。
同時,為驗證多卷積核對精度提升的有效性,作為對比,本文在實驗時在匹配網(wǎng)絡(luò)框架上只采用單一卷積核的通道注意力機(jī)制[15]進(jìn)行特征提取能力改進(jìn),得到加權(quán)特征通道立體匹配算法(SEPSM-Net),該算法在實驗時的參數(shù)設(shè)置與本文所提算法一致。
4.2.1 視差結(jié)果分析
1)Scene Flow數(shù)據(jù)集結(jié)果分析
Scene Flow數(shù)據(jù)集通過計算預(yù)測到像素點的視差值與真實值之間的歐式距離之和的大小(EPE)評價算法。表1展示了本文算法與基礎(chǔ)算法(PSM-Net)在該數(shù)據(jù)集上的性能(EPE)對比。

表1 Scene Flow數(shù)據(jù)集上算法的性能(EPE)評價
表1中數(shù)據(jù)表明,本文算法(SKPSM-Net)相對于基礎(chǔ)算法(PSM-Net)的誤差(EPE)降低了0.251。
2)KITTI2015數(shù)據(jù)集結(jié)果分析
在KITTI2015數(shù)據(jù)集上采用立體匹配常用的評價標(biāo)準(zhǔn)評價改進(jìn)后的網(wǎng)絡(luò):1像素誤差(1px),3像素誤差(3px),5像素誤差(5px)。1px、3px、5px分別表示端點誤差超過1、3、5的像素所占的百分比。其在KITTI2015數(shù)據(jù)集上結(jié)果如表2所示。

表2 KITTI2015數(shù)據(jù)集上算法的性能評價
從表2中可以看出,本文算法在各項誤差率指標(biāo)上均低于對比算法,其中,在最常用的3px指標(biāo)上本文性能提高了10.67%。從表1和表2中可以說明本文算法相對于金字塔匹配算法和只采用單一卷積核的通道注意力機(jī)制的SEPSM-Net算法在精度上有明顯改進(jìn)。
本文算法在KITTI2015數(shù)據(jù)集上運(yùn)行結(jié)果及使用KITTI所提供的Matlab處理工具得到的主觀視差結(jié)果如圖4所示。

圖4 KITTI2015數(shù)據(jù)集結(jié)果對比((a)左視角圖像;(b)PSM-Net算法結(jié)果;(c)SEPSM-Net結(jié)果;(d)SKPSM-Net(本文算法)結(jié)果)
其中,誤差圖表示算法運(yùn)行得到的預(yù)測值與真實值之間的差值絕對值。由圖4看出,相比于金字塔匹配算法(PSM-Net算法),本文所提算法在處理弱紋理區(qū)域(如圖像中的天空和車輛區(qū)域)時均可以保留更多的細(xì)節(jié)信息;同時也可以很好地處理不規(guī)則表面和光線較暗的區(qū)域(如樹木、街道等區(qū)域),仍可以獲得較好的匹配效果。
4.2.2 體積分析
表3表明本文算法與基礎(chǔ)算法在進(jìn)行深度學(xué)習(xí)訓(xùn)練后得到的模型體積大小。

表3 算法模型體積表
從表3中可以看出,本文算法得到的網(wǎng)絡(luò)模型體積相比于金字塔匹配算法降低了3.49%。但是由于本文算法采用多卷積核的方式處理特征,因此相比于只采用單一卷積核進(jìn)行通道特征加權(quán)的匹配算法體積較大。
綜合對視差結(jié)果的誤差率對比分析、視差圖的直觀的可視化對比分析以及網(wǎng)絡(luò)體積參數(shù)體積的對比分析,本文所設(shè)計的算法可以在保證視差精度的同時降低網(wǎng)絡(luò)的計算參數(shù)。
本文算法在特征提取階段充分考慮特征通道之間的關(guān)系,同時考慮不同尺度的對象在生成特征時的表達(dá)能力不同,根據(jù)輸入自適應(yīng)的調(diào)節(jié)感受野的尺寸為每個特征在通道維度上生成權(quán)重,采用注意力機(jī)制對權(quán)重進(jìn)行融合,確定含有豐富上下文信息的特征,提高了特征的表達(dá)能力,有助于后續(xù)的立體匹配計算,能夠得到更精確的視差結(jié)果。同時,本文算法對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化,減少了網(wǎng)絡(luò)的計算參數(shù),壓縮了最終訓(xùn)練得到的模型體積。