魏 東,何 雪
(沈陽工業(yè)大學 信息科學與工程學院,遼寧 沈陽 110870)
深度信息是自動駕駛、機器人、物體檢測等計算機視覺應用中非常重要的信息。通過對雙目立體相機拍攝得到的兩個圖像進行立體匹配,計算參考圖像的稠密視差圖,是獲取深度信息的重要途徑之一。
Zbontar和LeCun首次將CNN應用到立體匹配中,利用卷積神經網絡(MC-CNN)[1]計算匹配代價。FlowNetC[2]、DispNetC[3]等算法將立體匹配通過端到端的有監(jiān)督深度學習方式實現(xiàn),采用編碼-解碼的結構回歸視差。文獻[4-5]利用從邊緣檢測任務中獲得的邊緣信息補充視差圖中丟失的細節(jié)信息。SegStere[6]將語義特征融入特征圖中,并設計語義損失項來改善視差學習效果。
近年來,注意力機制在許多計算機視覺任務中也得到了廣泛的應用[7-11],將注意力機制應用在立體匹配任務上,可以有效捕捉圖像中有用的區(qū)域,從而提升立體匹配算法性能。PASMNet[12]中的視差注意力機制(Parallax-Attention Mechanism,PAM)針對固定的最大視差阻礙了具有較大視差變化的圖像對在進行匹配代價計算時,由于差異回歸的模糊性導致不合理的代價分配問題,采用將極線約束與注意力機制相結合,計算沿極線的特征相似性的方法來解決。
雖然基于PAM的立體匹配方法可以避免以上問題,仍然難以克服邊緣處誤差較大、視差不連續(xù)以及一些遮擋和弱紋理區(qū)域誤匹配率較高的問題。
針對以上問題,提出在視差注意力機制上引入語義和邊緣引導信息的立體匹配算法以提高匹配精度。
為了解決立體匹配算法在物體邊緣處和遮擋區(qū)域匹配精度較低的問題,在邊緣處匹配誤差較大的主要原因是卷積操作引起的細節(jié)信息丟失,可以引入邊緣特征信息來彌補。在弱紋理和視差不連續(xù)區(qū)域匹配誤差較大的主要原因是在這些區(qū)域上進行視差估計的匹配特征不足,可以通過語義分割獲得更多的特征,如個體的語義一致性等特征,使得在弱紋理和視差不連續(xù)區(qū)域更好地實現(xiàn)特征匹配。算法整體網絡結構如圖1所示,包括邊緣提取(Edge extraction)、特征提取(Feature extraction)、視差注意力機制(PAM)、語義信息提取(Semantic information extraction)、視差估計(Disparity prediction)、視差優(yōu)化(Refinement)六部分。
圖1 網絡結構
該網絡將左右圖像送入VGG網絡進行特征提取,獲取不同尺度的圖像特征,同時把左右圖像送入HED[13](Holistically-nested Edge Detection)網絡提取邊緣細節(jié)信息。將經過特征提取得到的特征與邊緣信息進行融合,送入PAM回歸匹配代價,在特征中引入邊緣細節(jié)改善由于遮擋使回歸的視差圖中物體邊緣處誤差較大的問題。PAM通過矩陣乘法計算匹配代價,得到視差注意力圖,再利用輸出模塊回歸視差注意力圖得到初始視差圖。把經過特征提取網絡得到的最后1個尺度特征送入DenseASPP[14]網絡得到語義特征圖。將初始視差圖和語義特征圖級聯(lián)送入沙漏型網絡進行視差優(yōu)化,融合語義信息改善弱紋理和視差不連續(xù)區(qū)域,得到最終的視差圖。
基準網絡是PASMNet,網絡結構如圖2所示。左右圖像經過沙漏網絡特征提取,將提取的特征送入級聯(lián)的視差注意力模塊回歸匹配成本,然后使用輸出模塊從匹配成本中獲得一個初始視差。最后,利用沙漏網絡進一步細化初始視差,以產生最后的視差圖。
圖2 PASMNet網絡結構
PASMNet使用視差注意力計算匹配代價,與3D cost volume計算匹配代價不同的是:視差注意力是將極線約束與注意力機制相結合,沿極線計算特征相似性,如圖3所示。具體來說,對于左圖像中的每個像素P,在右圖像沿極線上的所有像素中找到特征最相似的像素。
圖3 視差注意力
PAM由3個視差注意力模塊級聯(lián)組成,每個視差注意力模塊由4個相同的結構塊構成,如圖4所示。C為匹配代價表示兩個像素之間的特征相關性,沙漏型網絡提取的特征經過卷積層得到特征映射A、B∈RH×W×C,將A、B送到1×1卷積以進行特征匹配。具體來說,A送入1×1卷積以生成查詢特征映射Q∈RH×W×C,同時B送入另一個1×1卷積中,生成一個關鍵特征映射K∈RH×W×C,再將其重塑為特征空間是RH×C×W的特征映射。然后,在Q和K之間執(zhí)行矩陣乘法,通過矩陣乘法,可以有效地將沿極線的任意兩個位置之間的特征相關性編碼到視差注意力圖中。
將級聯(lián)的視差注意模塊得到的匹配代價送到輸出模塊。輸出模塊如圖5所示,其中匹配代價C首先被送到Softmax層,以分別產生通道數(shù)為1的視差注意力圖M,對得到的視差注意力圖回歸計算得到初始視差,計算公式如公式(1):
(1)
圖4 視差注意力模塊
圖5 輸出模塊
特征提取部分使用VGG網絡,VGG網絡可以產生豐富的多尺度幾何信息特征,如圖6所示。VGG網絡可以獲取多個尺度的特征,第1、2、3尺度特征用于視差注意力模塊,第5尺度特征用于語義信息提取模塊。
圖6 VGG網絡結構
邊緣是由于圖像中像素值發(fā)生較大變化而導致不連續(xù)的結果,它存在于目標與背景、目標與目標、區(qū)域與區(qū)域之間。針對立體匹配中邊緣誤差較大和遮擋問題,引入邊緣細節(jié)可以得到改善。在深度學習出現(xiàn)之前,邊緣檢測有幾種常用的方法,如Sobel、Canny等。傳統(tǒng)的邊緣檢測算法到現(xiàn)在還在使用,但是過于依賴人工設定閾值,不能在通用場景下工作。
該文使用HED算法提取邊緣,如圖7所示。HED是以VGGNet與FCN作為基礎網絡進行改進,將VGG網絡的多個特征層的輸出,利用FCN全卷積網絡,通過權重融合實現(xiàn)各個層相連接,得到邊緣特征。
圖7 HED網絡結構
針對立體匹配中視差不連續(xù)、弱紋理區(qū)域,引入語義分割獲取的語義信息可以得到改善。使用深度學習方法之前,語義分割方法比較常用的是TextonForest和基于隨機森林分類器等方法?,F(xiàn)在很多使用深度學習進行語義分割的模型基本上都是由FCN改進的,但是FCN模型需要池化操作,池化操作可以通過擴大感受野進而能夠很好地整合上下文信息,但通過池化進行下采樣操作也使分辨率降低,削弱了位置信息,而語義分割中對齊操作需要豐富的位置信息。
該文使用文獻[13]提出的DenseASPP算法提取語義信息,網絡結構如圖8所示,DenseASPP將ASPP和DenseNet中的密集連接相結合,具有更大的感受野和更密集的采樣點。擴張卷積用于解決特征圖分辨率和感受野之間的矛盾;用密集連接獲得更好的性能,將每個擴張卷積使用密集連接的方式輸出結合到一起。
圖8 DenseASPP網絡結構
使用Groundtruth視差數(shù)據(jù)在有監(jiān)督學習的模式下對模型進行端到端的訓練,為了更好地監(jiān)督生成邊緣清晰、物體表面平滑和語義明確的視差圖,利用常規(guī)的視差回歸損失。
對于視差回歸,采用smoothL1損失函數(shù)來訓練視差分支,與L2損失相比,smoothL1損失具有很好的魯棒性和對異常值的低敏感性[15-16]。
損失函數(shù)定義如下:
(2)
smoothL1定義如下:
(3)
將所提方法在SceneFlow[2]上進行評估。SceneFlow是一個大規(guī)模的合成數(shù)據(jù)集,包括分辨率為540×960像素的35 454組訓練圖像以及4 370組測試圖像,且提供了稠密的視差圖作為Groundtruth。使用端點誤差(End-Point-Error,EPE),即預測視差圖與實際視差圖的平均絕對誤差,和t像素(t-pixel,tpx)誤差作為評價指標。
在SceneFlow數(shù)據(jù)集上訓練網絡。在訓練階段,將左右圖像隨機裁剪為256×512像素的圖像作為輸入。所有模型均采用Adam方法進行優(yōu)化,批次大小為2。初始學習率設定為前5個epoch的1×10-3,后15個epoch的學習率降低到1×10-4。所有實驗都是在NvidiaGTX1080 GPU的PC上進行的。圖9分別為SceneFlow數(shù)據(jù)集中部分數(shù)據(jù)的左圖、預測視差圖和視差真值圖。
(從上到下依次為輸入左圖、預測視差圖、視差真值圖)
特征提取:VGG網絡可以獲取多個尺度的特征,用于視差注意力模塊和語義信息提取模塊。VGG網絡可以產生豐富的多尺度幾何信息特征,可以實現(xiàn)更好的性能。
引入邊緣信息:將邊緣信息與特征提取的特征融合,引入到視差注意力模塊中,對邊緣信息融合特征位置進行實驗。從表1中可以看出,將邊緣信息與特征提取中池化后第1、2、3尺度特征融合與池化后第3、4、5尺度特征融合對比, EPE從2.614增加到3.809,1px/3px錯誤率從19.112/12.195增加到28.825/18.273。并在PAM網絡上EPE減少了31.32%。因此,將邊緣信息與池化后第1、2、3尺度特征融合引入PAM模塊中可以取得更好的效果。引入語義信息:從特征提取中獲取的不同尺度特征中選出一個特征送入語義信息提取模塊提取語義信息,利用語義信息進行視差優(yōu)化。對送入語義信息提取模塊的不同尺度特征選取進行實驗。從表1中可以看出,傳入特征提取中池化后第5個尺度特征比池化后第1個尺度相比,EPE從2.685增加到2.711,1px/3px錯誤率從18.551/12.121增加到19.415/12.754。并在PAM網絡上EPE減少了29.45%,因此,利用特征提取模塊中第5個尺度的特征進行語義信息的提取,可以使得最終的視差估計取得更好的效果。
表1 SceneFlow消融實驗
從表1中可以看到,在PAM網絡上分別引入邊緣和語義信息都可以降低錯誤率,提升網絡性能。當邊緣和語義信息同時引入時,EPE在PAM網絡上提升了39.23%,實驗證明引入邊緣和語義信息可以有效提升網絡回歸視差圖性能。
圖10是不同網絡結構得到的視差圖對比,矩形框1處物體邊緣、3處圓柱體邊緣和5處耳機邊緣在PAM+Edge網絡得到的視差圖對應位置與PAM網絡得到的視差圖對應位置對比邊緣輪廓更圓滑且誤差較小;矩形框2處長矩形與矩形框1處物體遮擋處在PAM+Edge網絡得到的視差圖對應位置與PAM網絡得到的視差圖對應位置對比邊緣輪廓更清晰準確;矩形框2處長矩形和矩形框5處耳機在PAM+ Semantic網絡得到的視差圖對應位置與PAM網絡得到的視差圖對應位置對比內部視差相對統(tǒng)一、視差連續(xù);矩形框4處的長方體和矩形框6處的處圓柱體由于弱紋理導致特征匹配有誤的問題在PAM+Semantic網絡得到的視差圖也得到改善。而且在同時引入邊緣和語義信息的PAM+Edge+Semantic網絡得到的結果整體效果好于分別引入邊緣和語義信息。通過可視化的結果可以更直接看到引入邊緣信息得到的視差圖邊緣更平滑,降低邊緣處誤差,引入語義信息后視差圖中視差不連續(xù)和弱紋理處效果有提升,這得益于邊緣和語義信息的引入能指導生成更加精準的視差圖。
(從上到下依次為PAM網絡、PAM+Edge、PAM+Semantic、PAM+Edge+Semantic)
在SceneFlow數(shù)據(jù)集中的量化誤差指標比較如表2所示。從表2中可以看出,文中方法與基準網絡PASMNet進行對比,將PASMNet的誤差降低了49.05%,相對于其他經典的匹配算法在計算端點誤差時,誤差率較小。
表2 SceneFlow測試結果
為改善立體匹配中邊緣處的誤差較大和遮擋、視差不連續(xù)、弱紋理等區(qū)域匹配精度不高的問題,提出一種在利用視差注意力機制進行立體匹配時引入邊緣和語義信息的立體匹配算法。在利用視差注意力機制進行匹配代價計算過程中引入邊緣信息,改善邊緣處的誤差較大、遮擋問題,以提高整體匹配精度;在視差優(yōu)化過程中引入語義信息,改善視差不連續(xù)、弱紋理問題,以提高整體匹配精度。通過實驗表明,該算法在SceneFlow數(shù)據(jù)集上將基準網絡PASMNet[12]的誤差降低了49.05%。該算法相較于基準方法雖然精度有所提升,但是需要大量的數(shù)據(jù)集進行訓練,因此,在小數(shù)據(jù)集上的效果表現(xiàn)不好。在未來的研究中需要對網絡結構進一步優(yōu)化,可以考慮如何減小網絡大小,這可能進一步改善視差的估計效果。