鄭秋梅,王生坤,王風(fēng)華,于 濤
(中國(guó)石油大學(xué)(華東) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 山東 青島 266580)
在計(jì)算機(jī)視覺(jué)領(lǐng)域中,立體匹配在場(chǎng)景幾何重建、無(wú)人駕駛、工業(yè)測(cè)量等領(lǐng)域發(fā)揮著重要作用。雙目立體匹配是用數(shù)學(xué)運(yùn)算模型計(jì)算左右2幅視圖中的對(duì)應(yīng)點(diǎn)及視差,最后求取深度信息的過(guò)程[1-2]?;谑止ぴO(shè)計(jì)特征的傳統(tǒng)雙目立體匹配缺乏上下文信息,匹配效果受不同經(jīng)驗(yàn)參數(shù)影響較大,對(duì)弱紋理、遮擋、反射表面、重復(fù)紋理等病態(tài)區(qū)域匹配效果較差,不適合在復(fù)雜環(huán)境下應(yīng)用[3-4]。通過(guò)卷積神經(jīng)網(wǎng)絡(luò)提取雙目圖像的多通道特征由于包含更多上下文信息,相比手工設(shè)計(jì)特征得到了更好的效果。特征的通道數(shù)與網(wǎng)絡(luò)的擬合能力和網(wǎng)絡(luò)提取上下文信息的能力有重要關(guān)系。Chang等[5]使用殘差網(wǎng)絡(luò)提取左右圖像的多通道特征。但是,大規(guī)模池化使得獲得的特征中損失了高層語(yǔ)義信息,這會(huì)使視差圖相鄰像素間出現(xiàn)較大差異。Chang等[5-6]在每個(gè)視差層連接左右特征圖,構(gòu)建四維匹配代價(jià),有效計(jì)算了特征相似性,但每個(gè)視差級(jí)別只產(chǎn)生單通道的相關(guān)圖會(huì)損失部分信息,在構(gòu)建更加準(zhǔn)確的匹配代價(jià)來(lái)提升視差圖精度方面仍有一定困難。
特征提取中高層語(yǔ)義信息損失和匹配代價(jià)構(gòu)造過(guò)程中的信息損失,使得提升匹配精度仍有一定困難。本文通過(guò)在特征提取部分引入改進(jìn)的特征金字塔網(wǎng)絡(luò),分別對(duì)左右視角圖像進(jìn)行特征提取,提取包含雙目圖像高層語(yǔ)義信息的多通道特征;考慮不同通道上的特征信息通常對(duì)于提高病態(tài)區(qū)域匹配精度有影響,在對(duì)多通道特征處理時(shí),使用改進(jìn)的群組相關(guān)——平均群組相關(guān)模塊來(lái)構(gòu)建輕量化的匹配代價(jià),在保證匹配精度的同時(shí)控制網(wǎng)絡(luò)的計(jì)算負(fù)擔(dān)。
大部分傳統(tǒng)立體匹配算法包括以下步驟:雙目圖像特征提取、匹配代價(jià)計(jì)算、代價(jià)聚合和視差回歸。基于深度學(xué)習(xí)的立體匹配則通過(guò)卷積神經(jīng)網(wǎng)絡(luò)將傳統(tǒng)立體匹配算法步驟統(tǒng)一成一個(gè)端到端的網(wǎng)絡(luò)來(lái)提升算法的視差估計(jì)性能。
特征提取作為立體匹配的基礎(chǔ)和關(guān)鍵部分,提取特征的準(zhǔn)確性和穩(wěn)健性會(huì)對(duì)后續(xù)視差效果產(chǎn)生重要影響?;谏疃葘W(xué)習(xí)的立體匹配用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的多通道特征[7-10]取代了傳統(tǒng)手工特征。特征提取模塊一般使用全卷積神經(jīng)網(wǎng)絡(luò)或者殘差網(wǎng)絡(luò),殘差網(wǎng)絡(luò)促進(jìn)了網(wǎng)絡(luò)的深度訓(xùn)練,通過(guò)使用擴(kuò)展卷積可以捕獲更多的全局上下文信息。Chang等[5]基于殘差網(wǎng)絡(luò),附加空間金字塔池化模塊(spatial pyramid pooling,SPP),在多個(gè)尺度上聚合特征。Guo等[11]則采用和文獻(xiàn)[5]類似的殘差網(wǎng)絡(luò)結(jié)構(gòu),但沒(méi)有使用SPP模塊。Zhang等[12]提出一種新型的 “domain normalization”方法,將學(xué)習(xí)到的表征的分布?xì)w一化。特征金字塔網(wǎng)絡(luò)(feature pyramid networks,FPN)[13]利用了圖像的金字塔特征,具有從低到高的語(yǔ)義信息,因此可以考慮將其改進(jìn)應(yīng)用于雙目立體匹配中來(lái)提高匹配效果。
匹配代價(jià)是立體匹配中左、右圖像的像素之間相似程度的度量標(biāo)準(zhǔn),代價(jià)越小,相應(yīng)的像素點(diǎn)越相似,最后依據(jù)匹配代價(jià)計(jì)算雙目立體圖像的視差圖。三維匹配代價(jià)[14-15]通過(guò)取左圖像特征與右圖像特征在預(yù)定視差范圍內(nèi)的相似性度量方法構(gòu)建,如L1、L2或相關(guān)距離。三維匹配代價(jià)中的相似性度量提供了一種有效的方法來(lái)測(cè)量特征相似性,但因?yàn)樵诿總€(gè)視差等級(jí)只產(chǎn)生一個(gè)單通道的特征圖,所以會(huì)丟失較多信息。三維匹配代價(jià)所包含的信息豐富度有限,四維匹配代價(jià)[5,16-17]則是讓網(wǎng)絡(luò)學(xué)習(xí)合適的相似度量來(lái)比較特征,四維匹配代價(jià)可以通過(guò)在預(yù)定義的視差范圍上的特征差異來(lái)構(gòu)建[18],或者通過(guò)連接空間金字塔池化網(wǎng)絡(luò)的不同分支特征[5]來(lái)構(gòu)建。四維匹配代價(jià)比三維匹配代價(jià)承載更豐富的信息,但是通過(guò)連接獲得的代價(jià)卷中不包含特征相似性的信息,需要在后續(xù)模塊中使用更多參數(shù)來(lái)進(jìn)行相似性度量。Guo等[11]提出一種混合方法,結(jié)合了三維和四維的優(yōu)勢(shì),構(gòu)造群組相關(guān)四維匹配代價(jià),相比于只通過(guò)特征連接構(gòu)成的四維匹配代價(jià)來(lái)說(shuō)能減少參數(shù),但由于對(duì)特征的分組,使得匹配代價(jià)的準(zhǔn)確性極容易受到分組數(shù)的影響,會(huì)造成一些信息損失。此外,也有一些方法考慮到四維匹配代價(jià)有較高的參數(shù)量及三維卷積代價(jià)聚合過(guò)程中造成的較大計(jì)算量[19-20],提出代替基于匹配代價(jià)的三維卷積模塊,雖然能夠有效加快推理速度,但在準(zhǔn)確性方面與四維匹配代價(jià)相比仍有較大差距。
網(wǎng)絡(luò)采用端到端方法設(shè)計(jì),使用殘差網(wǎng)絡(luò)作為特征提取基礎(chǔ)結(jié)構(gòu),將改進(jìn)的特征金字塔網(wǎng)絡(luò)引入特征提取階段來(lái)提取雙目圖像的包含高層語(yǔ)義信息的多通道特征。匹配代價(jià)計(jì)算過(guò)程中通過(guò)改進(jìn)的群組相關(guān)方法,來(lái)補(bǔ)充匹配代價(jià)的信息。算法的網(wǎng)絡(luò)結(jié)構(gòu)主要由多通道特征提取、匹配代價(jià)計(jì)算、代價(jià)聚合和視差回歸3個(gè)部分組成,整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
在基于深度學(xué)習(xí)的立體匹配中,多通道特征提取的準(zhǔn)確性和穩(wěn)健性對(duì)后續(xù)匹配效果起著重要作用。僅僅獲得圖像特征的全局上下文信息和多尺度信息是有欠缺的,還要充分利用高層特征的語(yǔ)義信息,為此,本文特征金字塔網(wǎng)絡(luò)引入特征提取模塊。特征提取模塊結(jié)構(gòu)如圖2所示。輸入圖像尺寸為H×W,基本殘差網(wǎng)絡(luò)包含提取特征的基本殘差塊,并利用空洞卷積來(lái)進(jìn)一步加大感受野。
圖1 本文算法網(wǎng)絡(luò)結(jié)構(gòu)
圖2 特征提取模塊結(jié)構(gòu)
本文改進(jìn)的特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,網(wǎng)絡(luò)設(shè)計(jì)4個(gè)不同尺度的特征提取層:(H×W)/2,(H×W)/4,(H×W)/8,(H×W)/16。高層特征被上采樣到與相鄰低級(jí)特征一致的分辨率,并添加到它們中來(lái)融合不同尺度的特征圖。在上采樣之前要通過(guò)一個(gè)卷積層將不同級(jí)別的特征圖通道縮減為相同數(shù)量,保證多尺度特征融合時(shí)特征大小和通道維度自上而下的一致性。這一過(guò)程層層迭代,逐步整合不同尺度的金字塔特征,以更好地利用上下文信息,最后得到的特征圖大小為(H×W)/4。在構(gòu)建最終的輸出特征時(shí),改進(jìn)特征金字塔網(wǎng)絡(luò)特征輸出采用特征拼接的方式,使特征通道數(shù)為320,最終得到大小為320×(H×W)/4的多通道特征。通過(guò)改進(jìn)的特征金字塔網(wǎng)絡(luò),不僅融合了不同尺度的特征信息,也讓深層網(wǎng)絡(luò)中高層語(yǔ)義部分的信息能夠融合到稍淺層的網(wǎng)絡(luò),相對(duì)于文獻(xiàn)[5]和文獻(xiàn)[11]中的特征提取結(jié)構(gòu),改進(jìn)的特征金字塔網(wǎng)絡(luò)可以補(bǔ)充對(duì)高層語(yǔ)義信息的提取來(lái)豐富特征信息,有利于后續(xù)匹配代價(jià)的準(zhǔn)確性。
圖3 本文改進(jìn)的特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)
在得到所有左、右輸入圖像的深層特征后,將特征編碼到網(wǎng)絡(luò)中,使其具有幾何感知能力。之后的工作就是利用多通道特征構(gòu)建匹配代價(jià)。
MC-CNN[7]和GC-Net[10]用連接左、右特征的方法,通過(guò)深層網(wǎng)絡(luò)學(xué)習(xí)匹配代價(jià)估計(jì),而不是用距離矩陣?;谔卣魈崛∧K提取到多通道特征,利用空間金字塔池化模塊,通過(guò)在每個(gè)視差層連接左特征圖和相應(yīng)的右特征圖構(gòu)造連接匹配代價(jià)??臻g金字塔池化模塊包含4個(gè)不同尺寸的平均池化(8×8,16×16,32×32,64×64),并且采用了1×1卷積和上采樣結(jié)合多維特征組成了一個(gè)四維連接匹配代價(jià),大小為(H×W×Dmax)/4×64。經(jīng)過(guò)空間金字塔池化模塊可以提取和聚合多個(gè)尺度上的信息,生成不同級(jí)別的多維特征圖,包含了全局特征信息。本文采用的空間金字塔池化模塊如圖4所示。
(1)
圖4 空間金字塔池化模塊結(jié)構(gòu)
通過(guò)連接構(gòu)造的匹配代價(jià)不包含特征相似性信息,為了補(bǔ)充連接匹配代價(jià)相似性信息,提出用平均群組相關(guān)模塊(average group-wise correlation)來(lái)構(gòu)建一個(gè)輕量級(jí)的成本量,應(yīng)用在雙目立體匹配過(guò)程中構(gòu)建最終用于聚合的匹配代價(jià)V。
(2)
式中:Vc為連接匹配代價(jià);Vg為群組相關(guān)匹配代價(jià),最終獲得平均群組相關(guān)匹配代價(jià)V的大小也是(H×W×Dmax)/4×64。群組相關(guān)匹配代價(jià)通過(guò)對(duì)特征進(jìn)行分組,在包含特征的相似性同時(shí),獲得了輕量化的匹配代價(jià),連接匹配代價(jià)有效利用特征提取模塊獲得的特征多尺度信息。通過(guò)引入平均分組相關(guān)模塊,結(jié)合了連接和群組相關(guān)匹配代價(jià)的優(yōu)勢(shì),在保證獲得更加準(zhǔn)確的代價(jià)信息,提高匹配精度的同時(shí),可以使網(wǎng)絡(luò)不增加內(nèi)存消耗,有利于減輕后續(xù)成本體積過(guò)濾模塊的計(jì)算負(fù)擔(dān)。
(3)
(4)
式中:λi為第i次視差預(yù)測(cè)的系數(shù);d*為真實(shí)視差圖。采用L1損失函數(shù)去訓(xùn)練整個(gè)網(wǎng)絡(luò)進(jìn)行端到端的有監(jiān)督學(xué)習(xí)。平滑L1損失計(jì)算如下:
(5)
在代價(jià)聚合和視差回歸階段,通過(guò)對(duì)擁有更加豐富信息和體積相對(duì)較小的四維平均相關(guān)匹配代價(jià)的處理,使得網(wǎng)絡(luò)獲得更多信息,有利于提高視差精度,減少計(jì)算負(fù)擔(dān)。
在SceneFlow[14]、KITTI 2012[21]和KITTI 2015[22]3個(gè)立體數(shù)據(jù)集上評(píng)估了本文算法。
SceneFlow:一個(gè)包含35 454張訓(xùn)練圖像和 4 370張測(cè)試圖像的合成數(shù)據(jù)集,它提供了密集且詳盡的視差圖作為真值,圖像尺寸為540×960。通常使用端點(diǎn)誤差(EPE,end point error,表示檢測(cè)到的視差圖和真實(shí)值之間對(duì)應(yīng)像素的歐式距離之和)衡量測(cè)試結(jié)果。
KITTI 2012:來(lái)自一個(gè)行駛中汽車的包含著在不同天氣條件下真實(shí)街景的數(shù)據(jù)集。這些圖像的視差真值是通過(guò)稀疏的激光雷達(dá)獲取的,由194幅訓(xùn)練圖像和195幅測(cè)試圖像組成,以較少損耗的PNG格式保存,圖像尺寸為376×1 240。訓(xùn)練使用KITTI 2012的彩色圖片,整個(gè)訓(xùn)練數(shù)據(jù)進(jìn)一步劃分為了訓(xùn)練集(160圖片對(duì))和驗(yàn)證集(34圖片對(duì))。
KITTI 2015:基于KITTI 2012進(jìn)行豐富補(bǔ)充的真實(shí)街景數(shù)據(jù)集,包含以半自動(dòng)過(guò)程建立視差真值的動(dòng)態(tài)場(chǎng)景。網(wǎng)絡(luò)訓(xùn)練時(shí)將訓(xùn)練數(shù)據(jù)集劃分為80%訓(xùn)練用數(shù)據(jù)集和20%的驗(yàn)證用數(shù)據(jù)集。
使用Linux系統(tǒng)服務(wù)進(jìn)行實(shí)驗(yàn),服務(wù)器內(nèi)存為20 G,搭配2個(gè)顯存為16 G的Tesla V100 GPU,考慮服務(wù)器原因訓(xùn)練時(shí)設(shè)置批量大小為4。本文算法使用PyTorch實(shí)現(xiàn)網(wǎng)絡(luò)端到端的訓(xùn)練,與基準(zhǔn)網(wǎng)絡(luò)類似,使用Adam優(yōu)化器(β1=0.9,β2=0.999 9)優(yōu)化,最大視差深度設(shè)置為192 pixel。訓(xùn)練采用變學(xué)習(xí)率的方法,初始學(xué)習(xí)率設(shè)置為0.000 1。首先,使用SceneFlow數(shù)據(jù)集進(jìn)行16個(gè)Epoch的訓(xùn)練,在網(wǎng)絡(luò)訓(xùn)練了10、12、14個(gè)Epoch之后學(xué)習(xí)率變?yōu)橹暗?/2,得到訓(xùn)練模型,并在SceneFlow上測(cè)試訓(xùn)練得到的模型。SceneFlow上訓(xùn)練得到的模型在KITTI數(shù)據(jù)集上進(jìn)行300個(gè)Epoch的微調(diào),得到最終訓(xùn)練模型和結(jié)果。
在數(shù)據(jù)評(píng)價(jià)指標(biāo)方面,對(duì)于SceneFlow數(shù)據(jù)集,采用端點(diǎn)誤差(EPE)作為評(píng)估度量,即以像素為單位的平均視差誤差。對(duì)于KITTI數(shù)據(jù)集,使用在線評(píng)估網(wǎng)站的主要標(biāo)準(zhǔn)進(jìn)行評(píng)價(jià)和對(duì)比。本文的方法在基準(zhǔn)網(wǎng)絡(luò)GwcNet[11]上進(jìn)行改進(jìn),并將實(shí)驗(yàn)結(jié)果與基準(zhǔn)網(wǎng)絡(luò)及KITTI數(shù)據(jù)集上其他排名靠前的一些方法如GC-Net[6]、PSMNet[5]、AANet[19]進(jìn)行比較。
3.2.1SceneFlow 數(shù)據(jù)集
在SceneFlow數(shù)據(jù)集上的測(cè)試結(jié)果如表1所示,實(shí)驗(yàn)結(jié)果表明,本文的算法在數(shù)據(jù)集上計(jì)算端點(diǎn)誤差的表現(xiàn)優(yōu)于其他幾種算法,誤差率較小。
表1 SceneFlow測(cè)試結(jié)果
3.2.2KITTI 2012數(shù)據(jù)集
將本文獲得的測(cè)試集圖像提交到KITTI數(shù)據(jù)集網(wǎng)站進(jìn)行在線評(píng)價(jià),并與其他算法進(jìn)行比較。在KITTI 2012數(shù)據(jù)集上的測(cè)試結(jié)果如表2所示,Out-Noc表示非遮擋區(qū)域的錯(cuò)誤像素百分比,Out-All表示總錯(cuò)誤像素的百分比,“3px”表示誤差數(shù)大于3個(gè)像素的百分比。
表2 KITTI 2012測(cè)試結(jié)果及對(duì)比
在表2的對(duì)比結(jié)果中可以看出,本文算法的結(jié)果在誤差不超過(guò)3、5 px的標(biāo)準(zhǔn)下都超過(guò)了基準(zhǔn)網(wǎng)絡(luò)GwcNet,且相比于其他方法也取得了更高的精度。圖5中(第1行為左輸入圖像,第2行起從上往下分別為預(yù)測(cè)視差圖、真實(shí)視差圖、誤差圖)將本文算法與GwcNet在KITTI 2012上進(jìn)行可視化對(duì)比,錯(cuò)誤率較低,并且可以看出在天空等弱紋理區(qū)域的匹配效果更好。
圖5 KITTI2012測(cè)試結(jié)果
3.2.3KITTI 2015數(shù)據(jù)集
在KITTI 2015數(shù)據(jù)集上的測(cè)試結(jié)果如表3所示,其中,D1表示第一幀立體視差異常值的百分比,D1-fg、D1-bg、D1-all分別表示在前景區(qū)域、背景區(qū)域和所有真實(shí)值像素上進(jìn)行誤差評(píng)估百分比。All pixels指在誤差估計(jì)過(guò)程中考慮了測(cè)試圖像中的所有像素,Non-Occluded pixels指只考慮了非遮擋區(qū)域的像素。
表3 KITTI 2015測(cè)試結(jié)果
在KITTI 2015數(shù)據(jù)集中,考慮所有像素時(shí)本文算法比基準(zhǔn)網(wǎng)絡(luò)獲得了更好的精度。網(wǎng)絡(luò)雖然在計(jì)算匹配代價(jià)時(shí)引入了更多信息,但是網(wǎng)絡(luò)運(yùn)行時(shí)間相比基準(zhǔn)網(wǎng)絡(luò)僅增加6.25%左右,這表明本文算法在提高精度的同時(shí)并沒(méi)有增加較大的計(jì)算負(fù)擔(dān)。將本文算法在KITTI 2015驗(yàn)證數(shù)據(jù)集上與GwcNet進(jìn)行可視化對(duì)比,評(píng)估給出的誤差圖(誤差圖中藍(lán)色點(diǎn)為正確匹配點(diǎn),黃色點(diǎn)為不匹配點(diǎn),黑色點(diǎn)為忽略點(diǎn))如圖6所示(第1行為左輸入圖像,第2行起從上往下分別為預(yù)測(cè)視差圖、真實(shí)視差圖、誤差圖),可以看出本文算法在弱紋理、邊緣等區(qū)域(如墻壁、車身)能生成更精確的視差圖。
圖6 KITTI 2015測(cè)試結(jié)果
本文算法在SceneFlow、KITTI 2012和KITTI 2015數(shù)據(jù)集上與幾種典型的算法相比,匹配精度有所提升,特別是在弱紋理等病態(tài)區(qū)域,取得了更好的重建效果,并且相對(duì)于基準(zhǔn)網(wǎng)絡(luò),在提升效果的同時(shí)幾乎沒(méi)有增加計(jì)算負(fù)擔(dān)。雖然所提算法的時(shí)間開(kāi)銷增加相比基準(zhǔn)網(wǎng)絡(luò)基本可以忽略,但是由于代價(jià)聚合階段仍然使用計(jì)算成本較高的三維卷積使得網(wǎng)絡(luò)不能較好滿足實(shí)時(shí)性要求,仍需要對(duì)算法進(jìn)行更深入地研究,進(jìn)一步提升匹配效果。