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