李 曈 馬 偉 徐士彪 張曉鵬
1(北京工業(yè)大學(xué)信息學(xué)部 北京 100124)2(中國(guó)科學(xué)院自動(dòng)化研究所 北京 100190)
Fig. 1 Architecture of PSMNet[13]圖1 PSMNet網(wǎng)絡(luò)結(jié)構(gòu)[13]
立體匹配(stereo matching)是計(jì)算機(jī)視覺領(lǐng)域中的經(jīng)典問題.相比激光測(cè)距等方法,立體匹配能夠低成本從雙目圖像中便捷恢復(fù)場(chǎng)景深度,在自動(dòng)駕駛、機(jī)器人避障、立體圖像智能編輯等領(lǐng)域具有重要應(yīng)用價(jià)值[1-5].近年來,深度學(xué)習(xí)(deep learning)受到廣泛關(guān)注,并在諸多計(jì)算機(jī)視覺任務(wù)中取得顯著成功[6-8].鑒于此,國(guó)內(nèi)外研究者嘗試設(shè)計(jì)用于立體匹配的深度網(wǎng)絡(luò)[9-10].相比傳統(tǒng)方法,深度學(xué)習(xí)模型尤其是端到端模型,能夠在學(xué)習(xí)大量數(shù)據(jù)的基礎(chǔ)上得到更準(zhǔn)確的視差結(jié)果[11-15].
然而,現(xiàn)有深度網(wǎng)絡(luò)尚存在諸多不足:現(xiàn)有網(wǎng)絡(luò)的特征提取模塊多源自于求解其他問題的網(wǎng)絡(luò)模型,對(duì)立體匹配任務(wù)特性考慮不足,冗余度高;3D卷積常用于立體匹配的視差計(jì)算,性能優(yōu)越.然而,3D卷積復(fù)雜度高,難以實(shí)現(xiàn)大卷積核運(yùn)算,現(xiàn)有網(wǎng)絡(luò)多采用小卷積核3D卷積,感受野范圍受限.
針對(duì)上述問題,提出改進(jìn)的端到端神經(jīng)網(wǎng)絡(luò)模型.該模型以當(dāng)前性能優(yōu)異的金字塔立體匹配網(wǎng)絡(luò)(pyramid stereo matching network, PSMNet)[13]為基準(zhǔn)方法,對(duì)其核心模塊,包括特征提取模塊和3D卷積匹配模塊,進(jìn)行改進(jìn).所提出特征提取模塊專為立體匹配問題所設(shè)計(jì).相比現(xiàn)有特征提取網(wǎng)絡(luò),結(jié)構(gòu)更簡(jiǎn)潔,能夠在保持結(jié)果精度前提下分別以90%和25%的幅度大幅減少參數(shù)量與計(jì)算量.在視差計(jì)算模塊中,提出分離3D卷積,相比現(xiàn)有3D卷積復(fù)雜度低.因此,可實(shí)現(xiàn)大卷積核運(yùn)算以擴(kuò)充感受野,從而提高立體匹配準(zhǔn)確度.在SceneFlow數(shù)據(jù)集上驗(yàn)證了所提出方法的優(yōu)異性能,并通過對(duì)比實(shí)驗(yàn)從準(zhǔn)確度、計(jì)算成本等方面驗(yàn)證2個(gè)模塊的有效性.
本文所提出網(wǎng)絡(luò)以PSMNet為基準(zhǔn)網(wǎng)絡(luò),因此,先簡(jiǎn)要說明PSMNet網(wǎng)絡(luò)結(jié)構(gòu),再給出本文網(wǎng)絡(luò)設(shè)計(jì).
PSMNet網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示.首先,提取立體圖像特征,用于構(gòu)建匹配成本特征體(cost volume).之后,通過3D卷積運(yùn)算計(jì)算視差.在立體圖像特征提取過程中,PSMNet使用類似ResNet[16]的網(wǎng)絡(luò)結(jié)構(gòu),再使用空間金字塔池化(spatial pyramid pooling, SPP)結(jié)構(gòu)[13,17]融合多尺度特征增強(qiáng)特征表達(dá).然后將特征連接形成匹配成本特征體.在視差計(jì)算部分,PSMNet網(wǎng)絡(luò)包括2種版本網(wǎng)絡(luò),分別是多次殘差級(jí)聯(lián)Basic的3D卷積網(wǎng)絡(luò)和使用Stackhourglass結(jié)構(gòu)[18]的3D卷積網(wǎng)絡(luò).
本文在PSMNet網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上提出改進(jìn)的立體匹配網(wǎng)絡(luò)架構(gòu).如圖2所示.首先,從立體匹配問題特性出發(fā),提出簡(jiǎn)潔的特征提取網(wǎng)絡(luò)SimpleResNet,替換PSMNet網(wǎng)絡(luò)中的特征提取部分.之后,提出用于視差計(jì)算的具備大感受野的分離3D卷積層,替換PSMNet網(wǎng)絡(luò)的Basic結(jié)構(gòu)中的3D卷積層.
Fig. 2 Architecture of the proposed task-adaptive network for stereo matching圖2 本文適應(yīng)立體匹配任務(wù)的網(wǎng)絡(luò)結(jié)構(gòu)
PSMNet網(wǎng)絡(luò)的特征提取部分使用了類似ResNet網(wǎng)絡(luò)的結(jié)構(gòu).但是,ResNet網(wǎng)絡(luò)原是針對(duì)圖像分類任務(wù)所設(shè)計(jì).圖像分類與立體匹配2個(gè)任務(wù)之間存在較大差別.
首先,圖像分類屬于平移不變?nèi)蝿?wù),要求即使輸入圖像發(fā)生平移變換,輸出分類結(jié)果不變.與圖像分類不同,立體匹配需要平移敏感,即當(dāng)輸入圖像有空間移動(dòng)時(shí)對(duì)應(yīng)結(jié)果也應(yīng)該有相應(yīng)變化.其次,圖像分類需要提取高度抽象的特征用于表達(dá)語義信息,以對(duì)圖像內(nèi)容類型做出準(zhǔn)確判斷.但是,立體匹配求解過程并不需要語義級(jí)別特征.事實(shí)上,立體匹配需要求解2張圖像上像素點(diǎn)之間的對(duì)應(yīng)關(guān)系.因此,要求網(wǎng)絡(luò)在不同空間位置提取的特征具有更多局部細(xì)節(jié)描述能力.
具體而言,在分類任務(wù)中,通常采用較深的特征提取網(wǎng)絡(luò),并傾向采用大的感受野.網(wǎng)絡(luò)越深,感受野越大,可用的全局信息越多.同時(shí),感受野足夠大,才能夠提取出具有平移不變性的特征.而且,隨著網(wǎng)絡(luò)層數(shù)的加深,提取到的特征更抽象,也更能夠表征圖像語義.但是,在立體匹配任務(wù)中,增大感受野將降低網(wǎng)絡(luò)所得特征的差異性.特征圖上相近位置的特征將因?yàn)榇蟮母惺芤八鶎?dǎo)致的對(duì)應(yīng)圖像區(qū)域重疊度大而變得相似,特征自身位置信息也變得模糊.
綜上,立體匹配任務(wù)對(duì)于高抽象程度的語義特征沒有需求.采用較低抽象程度的特征更便于區(qū)別不同空間位置的像素.抽象特征不僅難以帶來顯著的性能提升,而且其獲取需要較深層次網(wǎng)絡(luò)結(jié)構(gòu).而較深網(wǎng)絡(luò)意味著更多的參數(shù)量與計(jì)算量.因此,直接將原本用于處理圖像分類任務(wù)的網(wǎng)絡(luò)結(jié)構(gòu)用于立體匹配不夠合理.
鑒于上述事實(shí),本文設(shè)計(jì)了專用于立體匹配任務(wù)的特征提取網(wǎng)絡(luò).在該網(wǎng)絡(luò)中,通過限制卷積核大小以減少感受野;同時(shí),簡(jiǎn)化卷積網(wǎng)絡(luò)結(jié)構(gòu),在大幅減少參數(shù)量的同時(shí)增加網(wǎng)絡(luò)能夠提取的細(xì)節(jié)信息的比重,使提取的特征具有更強(qiáng)的差異性,更便于鑒別不同空間位置的像素.鑒于所提出的特征提取網(wǎng)絡(luò)是依據(jù)立體匹配特性針對(duì)ResNet網(wǎng)絡(luò)進(jìn)行簡(jiǎn)化得來,將其稱為SimpleResNet網(wǎng)絡(luò).其具體結(jié)構(gòu)如表1所示.其中,H和W分別表示輸入圖像高和寬.網(wǎng)絡(luò)參數(shù)表示方法與ResNet網(wǎng)絡(luò)相同[16].例如Conv2_x殘差單元包含4組2層卷積操作. 其中,第1層卷積操作的卷積核尺寸為3×3,輸出通道為64;第2層卷積操作的卷積核尺寸為1×1,輸出通道為32.
Table 1 Architecture Parameters of SimpleResNet表1 SimpleResNet網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)
為方便與PSMNet網(wǎng)絡(luò)的特征提取部分進(jìn)行對(duì)等比較以驗(yàn)證本文推論,本文在SimpleResNet網(wǎng)絡(luò)中保留了PSMNet特征提取部分所用ResNet網(wǎng)絡(luò)的整體結(jié)構(gòu),只依據(jù)推論做出2方面修改:限制了非下采樣且具有重復(fù)結(jié)構(gòu)層的卷積核大小;大幅度消減重復(fù)網(wǎng)絡(luò)結(jié)構(gòu).如此,限制感受野和減少層數(shù)的同時(shí)保持網(wǎng)絡(luò)整體結(jié)構(gòu)不發(fā)生改變.具體地,只保留PSMNet中Conv_1與Conv3_x中的卷積核原尺寸,其余卷積核減少至1×1大小;去除Conv1_x,Conv2_x,Conv3_x模塊中的重復(fù)卷積結(jié)構(gòu);將原特征提取部分的48層卷積層減少至14層.重復(fù)結(jié)構(gòu)和層數(shù)減少量依據(jù)實(shí)驗(yàn)得來.
相比PSMNet網(wǎng)絡(luò)的特征提取結(jié)構(gòu),Simple-ResNet網(wǎng)絡(luò)復(fù)雜度和計(jì)算量減少顯著:原特征提取網(wǎng)絡(luò)約有300萬個(gè)參數(shù),SimpleResNet網(wǎng)絡(luò)參數(shù)減少至不足20萬個(gè),減少量超過90%.所作簡(jiǎn)化操作均源自前述推論:立體匹配并不需要過大感受野和高度抽象的語義信息,如ResNet網(wǎng)絡(luò)這類層次深、感受野覆蓋范圍大的結(jié)構(gòu),對(duì)于立體匹配任務(wù)而言存在極大冗余.因此,所提出方法并不會(huì)因?yàn)榫W(wǎng)絡(luò)深度的大幅度減小而對(duì)立體匹配準(zhǔn)確度有較大影響.后續(xù)通過實(shí)驗(yàn)驗(yàn)證了該觀點(diǎn).
在端到端立體匹配深度網(wǎng)絡(luò)中,3D卷積能夠在優(yōu)化匹配成本特征體的同時(shí)實(shí)現(xiàn)視差計(jì)算.與前段網(wǎng)絡(luò)部分以提取特征為目的不同,此段網(wǎng)絡(luò)的目的是利用鄰域信息優(yōu)化已提取的成本特征,以減少視差中錯(cuò)誤離散值的出現(xiàn).
鑒于采用更大鄰域范圍內(nèi)的約束將更有利于優(yōu)化成本特征,傾向在網(wǎng)絡(luò)中應(yīng)使用較大卷積核.然而,3D卷積計(jì)算復(fù)雜度高,擴(kuò)大3D卷積核將帶來巨大的參數(shù)量增加.
為了克服3D卷積計(jì)算在擴(kuò)大感受野時(shí)的參數(shù)量爆炸問題,提出分離3D卷積層結(jié)構(gòu).圖3(a)是正常的3D卷積層,圖3(b)是所提出的分離3D卷積層.分離3D卷積將3D卷積分解為1次長(zhǎng)與寬維度的2D卷積與1次視差維度的1D卷積.普通3D卷積參數(shù)量為m2×c(m為卷積核寬高,c表示類型數(shù)),而使用分離3D卷積的參數(shù)量是m2+c.當(dāng)m與c增長(zhǎng)時(shí),后者參數(shù)量增長(zhǎng)遠(yuǎn)小于前者.
Fig. 3 3D convolution and separated 3D convolution圖3 3D卷積與分離3D卷積
此外,考慮到與分類任務(wù)不同,立體匹配任務(wù)中輸入圖像分辨率大,訓(xùn)練時(shí)每批數(shù)據(jù)數(shù)量較少,不適合在分離3D卷積后接批量歸一化(batch normali-zation, BN)操作.因此,本文使用分離3D卷積搭配群組歸一化(group normalization, GN)層替代PSMNet里的3D卷積和BN層結(jié)構(gòu).
本節(jié)通過實(shí)驗(yàn)驗(yàn)證所提出方法和模塊.首先,介紹所用數(shù)據(jù)集、評(píng)價(jià)標(biāo)準(zhǔn)與網(wǎng)絡(luò)訓(xùn)練過程.然后,通過消融實(shí)驗(yàn)驗(yàn)證本文方法和模塊的有效性.之后,通過與當(dāng)前優(yōu)秀方法進(jìn)行性能比較與分析,證明本文方法的先進(jìn)性.最后,通過對(duì)比基準(zhǔn)網(wǎng)絡(luò)PSMNet,證實(shí)所提出網(wǎng)絡(luò)在時(shí)間、顯存占用方面的優(yōu)勢(shì).
使用SceneFlow數(shù)據(jù)集完成網(wǎng)絡(luò)的訓(xùn)練與對(duì)比實(shí)驗(yàn).SceneFlow數(shù)據(jù)集[11]屬于大型合成數(shù)據(jù)集,共計(jì)包含35 454對(duì)訓(xùn)練用立體圖像數(shù)據(jù)與4 370對(duì)測(cè)試用立體圖像數(shù)據(jù).每對(duì)數(shù)據(jù)都提供了稠密真值信息與相機(jī)參數(shù)信息.數(shù)據(jù)集中所有圖像分辨率均為960×540.SceneFlow數(shù)據(jù)集按照?qǐng)鼍皟?nèi)容分為3個(gè)子數(shù)據(jù)集,分別是FlyingThings3D,Driving,Monkaa.其中,Flying-Things3D子數(shù)據(jù)集的場(chǎng)景包含大量漂浮的隨機(jī)類型物體,圖像內(nèi)物體較多,細(xì)節(jié)內(nèi)容較為豐富;Driving子數(shù)據(jù)集是在模擬汽車駕駛過程中所抓取,其內(nèi)容是開闊的街道場(chǎng)景;Monkaa子數(shù)據(jù)集的場(chǎng)景內(nèi)容是深林環(huán)境中的猴子,其中有較多近距離物體,即存在較多視差值較大的區(qū)域.
本文實(shí)驗(yàn)使用端點(diǎn)誤差(end-point-error, EPE)作為量化指標(biāo)評(píng).端點(diǎn)誤差是真值與估計(jì)視差值之間的平均歐氏距離.其計(jì)算為
(1)
其中,d與gt分別表示視差的估計(jì)值和真值,N是參與計(jì)算的像素總數(shù),n是指示變量.EPE評(píng)價(jià)指標(biāo)分值越低表示方法性能越好.
在Pytorch框架下構(gòu)建網(wǎng)絡(luò).在Ubuntu操作系統(tǒng)下完成網(wǎng)絡(luò)訓(xùn)練.訓(xùn)練所使用GPU為單個(gè)NVIDIA GeForce TITAN X Pascal.
網(wǎng)絡(luò)使用Smooth L1距離作為監(jiān)督訓(xùn)練的損失函數(shù).需要注意的是,所提出網(wǎng)絡(luò)和PSMNet網(wǎng)絡(luò)相同,均設(shè)置視差上限為192.該值適用于大部分實(shí)用情形.但是,SceneFlow數(shù)據(jù)集中存在部分?jǐn)?shù)據(jù)視差真值超過該上限.為避免此部分?jǐn)?shù)據(jù)的干擾,訓(xùn)練過程只取用視差真值小于等于192數(shù)據(jù)參與計(jì)算損失函數(shù)回傳.訓(xùn)練損失函數(shù):
(2)
其中:
其中,dn與gtn分別表示第n點(diǎn)的網(wǎng)絡(luò)估計(jì)視差值與視差真值,N′表示視差真值小于等于192的像素點(diǎn)總數(shù).
網(wǎng)絡(luò)每次訓(xùn)練數(shù)據(jù)批量大小設(shè)置為3.訓(xùn)練過程是端到端訓(xùn)練,無需其他后處理方法.針對(duì)數(shù)據(jù)集中每對(duì)圖像以原尺寸輸入網(wǎng)絡(luò),訓(xùn)練學(xué)習(xí)率設(shè)置為0.001,在SceneFlow數(shù)據(jù)集上使用Adam優(yōu)化方法[19]訓(xùn)練10輪.Adam方法參數(shù)為β1=0.9,β2=0.999.訓(xùn)練時(shí)間持續(xù)約40 h.
在SceneFlow測(cè)試集上通過消融實(shí)驗(yàn)測(cè)試所提出網(wǎng)絡(luò)的核心模塊,包括特征提取模塊SimpleResNet和分離3D卷積模塊Globalconv.結(jié)果如表2所示.
用ResCNN+Basic+BN表示PSMNet網(wǎng)絡(luò)的原始基礎(chǔ)結(jié)構(gòu).SimpleResNet+Basic+BN表示使用本文提出的特征提取模塊SimpleResNet代替PSMNet中的特征提取模塊ResCNN.從替換前后的EPE數(shù)值可看出:相比ResCNN,所提出特征提取網(wǎng)絡(luò)結(jié)構(gòu)SimpleResNet網(wǎng)絡(luò)參數(shù)降低超過90%(見第3部分分析)的情況下,依然能夠保持較低的EPE.
Table 2 EPEs of PSMNet and Our Networks表2 本文網(wǎng)絡(luò)與原網(wǎng)絡(luò)EPE對(duì)比
進(jìn)一步地,以PSMNet網(wǎng)絡(luò)性能最佳的組成結(jié)構(gòu)ResCNN+SPP+Stackhourglass+BN為基準(zhǔn)方法驗(yàn)證所提出的特征提取網(wǎng)絡(luò).表2中SimpleResNet+Stack hourglass+BN是用所提出特征提取網(wǎng)絡(luò)替換原特征提取網(wǎng)絡(luò).從表2實(shí)驗(yàn)數(shù)據(jù)看:在此框架下,所提出特征提取網(wǎng)絡(luò)在參數(shù)量減少情況下,EPE更低.
為驗(yàn)證所提出分離卷積的效果,在SimpleResNet+Basic+BN基礎(chǔ)上,使用所提出的分離3D卷積替換Basic中所用到的普通3D卷積,記作SimpleResNet+Globalconv+BN.從表2可以看出:相比普通3D卷積,分離3D卷積能夠有效降低誤差.表2中SimpleResNet+Globalconv+GN方法是用分離3D卷積加GN層替換了SimpleResNet+Basic+BN中原屬于PSMNet的后2部分.從結(jié)果可看出:該方法的EPE相比SimpleResNet+Basic+BN的EPE,降低約12%的相對(duì)量.該實(shí)驗(yàn)說明:所提出分離3D卷積搭配GN操作相比普通3D卷積搭配BN操作,性能顯著更佳.
需要注意的是:以上對(duì)比方法(除PSMNet網(wǎng)絡(luò)性能最佳的組成結(jié)構(gòu)外),以及本文方法均未加入SPP結(jié)構(gòu).既是為了方便與PSMNet中基礎(chǔ)方法(不含SPP結(jié)構(gòu))對(duì)比,也是因?yàn)镾PP結(jié)構(gòu)將破壞SimpleResNet網(wǎng)絡(luò)局部性特征提取能力.
所提出方法與其他現(xiàn)有深度學(xué)習(xí)立體匹配方法在SceneFlow測(cè)試集上的EPE對(duì)比如表3和圖4所示.其中Ours為本文性能最佳方法,對(duì)應(yīng)表2中的SimpleResNet+Stackhourglass+BN.從表3和圖4可見:相比其他5種方法,PSMNet網(wǎng)絡(luò)效果最佳;而相比PSMNet網(wǎng)絡(luò),本文方法在大幅度降低特征提取模塊參數(shù)的同時(shí),EPE更低.
Table 3 EPEs of Our Networks and Other Methods表3 本文網(wǎng)絡(luò)與其他網(wǎng)絡(luò)方法EPE對(duì)比
圖5是采用SimpleResNet+Stackhourglass+BN方法與PSMNet方法在ScenenFlow數(shù)據(jù)集上所得視差結(jié)果.如圖5所示,本文方法與PSMNet網(wǎng)絡(luò)在大部分區(qū)域表現(xiàn)相近,均能夠得到與真值相近的結(jié)果.但是在方框標(biāo)示的物體內(nèi)部的連續(xù)區(qū)域,PSMNet網(wǎng)絡(luò)所得結(jié)果出現(xiàn)明顯錯(cuò)誤,而所提出方法結(jié)果基本無誤.
Fig. 4 Visualized EPEs of our network and other methods圖4 本文網(wǎng)絡(luò)與其他網(wǎng)絡(luò)方法EPE可視化對(duì)比
Fig. 5 Disparity maps obtained by our network and PSMNet圖5 本文網(wǎng)絡(luò)與PSMNet網(wǎng)絡(luò)視差計(jì)算結(jié)果
表4和圖6給出了所提出方法和基準(zhǔn)方法的時(shí)間與顯存開銷的實(shí)驗(yàn)數(shù)據(jù).在此實(shí)驗(yàn)中,所有方法在每批次訓(xùn)練過程中統(tǒng)一采用1張輸入圖像.從表4和圖6中可以看出:本文方法SimpleResNet+Basic比基準(zhǔn)方法ResCNN+Basic減少了約0.4 GB顯存占用.同時(shí),單次訓(xùn)練速度加快約0.1 s,提升量為25%.相較Basic方法,使用Globalconv模塊顯存增量約為0.7 GB.顯存占用增長(zhǎng)是由于Globalconv模塊所用更大的卷積核以及所增加的中間緩存所導(dǎo)致.其中,由中間緩存帶來的顯存占用增長(zhǎng)占比更多.在實(shí)際使用中可以通過及時(shí)釋放中間緩存以釋放更多的顯存.Basic結(jié)構(gòu)使用相同大小的卷積核會(huì)因?yàn)轱@存不足而無法運(yùn)行.
Table 4 Computation Time and Memory Costs of Different Networks
Fig. 6 Visualized time and memory costs of different networks圖6 各網(wǎng)絡(luò)計(jì)算時(shí)間開銷與顯存占用可視化對(duì)比
改進(jìn)后Globalconv模塊相比Basic方法時(shí)間增長(zhǎng)較為明顯.這是因?yàn)榉蛛x卷積后,在視差維度上將卷積核擴(kuò)大至覆蓋所有視差的同時(shí),需要對(duì)原特征填補(bǔ)較大區(qū)域,該操作帶來較多額外耗時(shí).
在分析現(xiàn)有端到端立體匹配網(wǎng)絡(luò)不足之處的基礎(chǔ)上,提出了改進(jìn)的立體匹配深度網(wǎng)絡(luò).首先,根據(jù)立體匹配任務(wù)特性設(shè)計(jì)了新的特征提取結(jié)構(gòu).該結(jié)構(gòu)在減少90%參數(shù)量的同時(shí),能夠保持穩(wěn)定的網(wǎng)絡(luò)性能.之后,提出了分離3D卷積運(yùn)算.相比傳統(tǒng)3D卷積,該運(yùn)算能夠在增大卷積核尺寸擴(kuò)大感受野的同時(shí)抑制參數(shù)量的增加,從而提高視差計(jì)算的精度.
所提出網(wǎng)絡(luò)也存在不足之處.例如分離3D卷積需要額外的填補(bǔ)操作、增加了較多額外耗時(shí).本文將在未來工作中著手解決該問題.