張 卓 石孫鳳 徐曉龍 張學(xué)武
(河海大學(xué)物聯(lián)網(wǎng)工程學(xué)院 常州 213022)
在自動駕駛、三維環(huán)境重建等應(yīng)用場景中,近景視場中的深度信息是控制決策、保障安全的重要數(shù)據(jù)依據(jù)。圖像測量技術(shù)以其感知信息豐富、適用性廣泛、便于利用現(xiàn)代信息技術(shù)分析的優(yōu)勢,逐漸成為了深度信息測量的主流技術(shù)。圖像測量技術(shù)一般通過雙目圖像的左右視圖中對應(yīng)像素點的立體匹配,得到視差圖,進(jìn)而計算出目標(biāo)對應(yīng)的深度信息。在現(xiàn)有的雙目圖像測量技術(shù)中,傳統(tǒng)雙目視覺立體匹配算法按照匹配范圍限制可分為局部匹配法[1]、半全局匹配法[2]和全局匹配法[3]。但傳統(tǒng)雙目視覺立體匹配算法由于鏡頭畸變、光線變化和物體遮擋等諸多因素的影響,存在匹配精度差和速度慢的缺點。
針對傳統(tǒng)雙目視覺存在的缺點,目前國內(nèi)外已有不少的研究人員將深度學(xué)習(xí)技術(shù)應(yīng)用到雙目深度測量領(lǐng)域。JZbontar[4]在2015年將深度學(xué)習(xí)技術(shù)引入了立體匹配領(lǐng)域中,提出了MC-CNN 網(wǎng)絡(luò),將半全局匹配算法和網(wǎng)絡(luò)模型進(jìn)行融合,通過十字近似的方式實現(xiàn)代價聚合。SGM-Net[5]在半全局匹配算法SGM 中加入網(wǎng)絡(luò)模型,利用網(wǎng)絡(luò)學(xué)習(xí)左右圖像中視差的分布并作為懲罰系數(shù)加入到SGM 算法中。GC-Net[6]首先利用特征提取網(wǎng)絡(luò)對左右圖像進(jìn)行特征提取;然后構(gòu)建四維代價體,即建立視差搜索空間;利用三維卷積在視差搜索空間中進(jìn)行代價傳播,最后,通過激活函數(shù)和絕對平均誤差損失回歸視差。StereoNet[7]通過粗粒度的深度估計模塊提取特征和生成匹配代價,然后選用雙線性上采樣和卷積操作替換的方式在多個層次對視差進(jìn)行優(yōu)化。GA-Net[8]提出了引導(dǎo)匹配損失聚集策略,包括半全局聚集層和局部引導(dǎo)聚集層進(jìn)行代價聚合操作;半全局聚集層利用紋理信息和上下文信息計算匹配代價,局部引導(dǎo)聚集層在像素位置和視差水平中設(shè)置權(quán)重,聚合匹配代價,提升立體匹配的性能同時也降低計算量。雖然采用深度立體匹配網(wǎng)絡(luò)能夠提升匹配效果,但是花費時間長和受到標(biāo)注數(shù)據(jù)難以獲取和像素最大匹配范圍的限制。
針對上述現(xiàn)有的問題,本文提出了一種基于匹配約束無監(jiān)督網(wǎng)絡(luò)的雙目深度測量算法。首先,引入自注意力機(jī)制,設(shè)計匹配約束規(guī)則,擺脫了匹配范圍的限制,提高大范圍內(nèi)像素立體匹配精度;同時將二維平面范圍匹配降低為一維線性匹配,加快立體匹配速度,適用于近景視場中深度信息測量的場景。其次將圖像重構(gòu)、視差平滑、匹配約束特性三個損失函數(shù)加權(quán)融合,應(yīng)用于無監(jiān)督網(wǎng)絡(luò),加快網(wǎng)絡(luò)收斂速度,不依賴于標(biāo)注數(shù)據(jù)。最后在主流的數(shù)據(jù)集中進(jìn)行對比實驗,驗證了本文方法的魯棒性、準(zhǔn)確性和高效性,并通過消融對比實驗證明本文方法中的匹配約束模塊的合理性和有效性。
由于二維搜索對應(yīng)像素點的計算量較大,為了加快匹配計算過程,縮小對應(yīng)像素匹配范圍,常用的約束條件就是極線約束條件,具體如圖1 所示。極點eleft和像素點Pleft的連線、極點eright和像素點Pright的連線稱都稱為極線,目標(biāo)點P和左右攝像頭的光心Oleft、Oright所成的平面稱為極面。

圖1 極線約束條件示意圖
極線約束條件可以概述為世界坐標(biāo)系中的目標(biāo)點在左右攝像頭的成像平面上映射的像素點必定在極線上。雙目攝像頭的立體校正對左右攝像頭物理位置進(jìn)行標(biāo)定,校正之后的左右攝像頭成像平面位于同一平面且圖像的水平高度一致,即左右兩幅圖像中的極線相互重合,為同一條直線,立體匹配中的搜索特征點即可以在左右兩幅圖像的同一橫坐標(biāo)的極線上進(jìn)行搜索。本文將這種極線約束條件在校正之后的圖像中的特殊關(guān)系稱為匹配約束條件。本文中雙目攝像頭立體矯正采用的是張氏標(biāo)定法[9],下文中討論的所有雙目圖像均為通過立體校正之后的圖像。
本文設(shè)計了一種基于匹配約束無監(jiān)督網(wǎng)絡(luò)的雙目深度測量算法,引入自注意力機(jī)制,結(jié)合匹配約束條件,設(shè)計匹配約束模塊,擺脫了匹配范圍的限制,同時將二維匹配像素搜索降低為一維搜索,提高了算法的計算速度;在此基礎(chǔ)上,對匹配約束模塊的特性進(jìn)行分析,從圖像重構(gòu)、視差平滑、匹配約束特性三個角度設(shè)計損失函數(shù),加快無監(jiān)督網(wǎng)絡(luò)的收斂速度,降低網(wǎng)絡(luò)訓(xùn)練對數(shù)據(jù)的依賴性,增強(qiáng)網(wǎng)絡(luò)的泛化性能。
基于匹配約束無監(jiān)督網(wǎng)絡(luò)的雙目深度測量網(wǎng)絡(luò)模型采用U型網(wǎng)絡(luò)來提取多尺度的圖像特征,將多尺度特征通過級聯(lián)的匹配約束模塊計算得到稠密的視差圖。U 型特征提取網(wǎng)絡(luò)模塊分別對左右兩幅圖像進(jìn)行特征提取,并將提取到的特征圖分別送入匹配約束模塊,具體網(wǎng)絡(luò)模型如圖2所示。

圖2 基于匹配約束無監(jiān)督網(wǎng)絡(luò)的雙目深度測量網(wǎng)絡(luò)模型
特征提取模塊參考經(jīng)典的U-Net[10]網(wǎng)絡(luò)。特征提取網(wǎng)絡(luò)模塊結(jié)構(gòu)如圖3 所示。圖中的黑色寬箭頭代表編碼器分為四次下采樣過程,提取語義信息。編碼器采用常見的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),一共五個卷積塊組成,每個卷積塊中包含卷積層(Convolution)、批處理規(guī)范化層[11](Batch Normalization)和激活函數(shù)層[12](LeakyReLU)。使用卷積核大小為3*3,卷積核移動方式采用valid 模式。圖中灰色寬箭頭代表解碼器分為四次上采樣過程,對語義信息進(jìn)行像素級恢復(fù)。解碼器一共四個卷積塊構(gòu)成,每個卷積塊中包含一個跳躍連接和上采樣連接層、卷積層、批處理規(guī)范化層和激活函數(shù)層。反卷積核大小為2*2。

圖3 特征提取網(wǎng)絡(luò)模塊結(jié)構(gòu)圖
匹配約束模塊將經(jīng)典的立體匹配算法中的匹配約束融合到深度學(xué)習(xí)網(wǎng)絡(luò)中,提高網(wǎng)絡(luò)在近景視場下對較大視差匹配范圍的適應(yīng)性。匹配約束模塊,引入自注意力機(jī)制,并將其根據(jù)立體匹配中的匹配約束條件進(jìn)行改進(jìn)。匹配約束模塊結(jié)構(gòu)圖如圖4所示。其中A,B為輸入的左右特征圖像,圖4中的虛線代表將左右圖像互換,通過同樣的匹配約束模塊,生成互相關(guān)系數(shù)矩陣MA→B,最終得到右側(cè)轉(zhuǎn)換圖W,W∈RH×W×C,C為通道數(shù),H為圖像的高度,W為圖像的寬度。

圖4 匹配約束模塊結(jié)構(gòu)圖
互相關(guān)系數(shù)矩陣MB→A,其中A為左側(cè)圖像,B為右側(cè)圖像,即互相關(guān)系數(shù)矩陣也可以表示為Mright→left。如圖5所示。

圖5 互相關(guān)系數(shù)矩陣示意圖
從特征圖的角度分析,Mright→left可以理解為右側(cè)圖像對左側(cè)圖像的相關(guān)性,將右側(cè)圖像Iright和Mright→left相乘,可以理解為右側(cè)圖像對齊為左側(cè)圖像,稱為轉(zhuǎn)化特征圖O。因此,可以得到左右一致性,如式(1)所示。Ileft代表左側(cè)圖像,Iright代表右側(cè)圖像。

進(jìn)一步地,可以得到循環(huán)一致性,如式(2)、式(3)所示。

視差計算模塊根據(jù)互相關(guān)系數(shù)矩陣,計算出視差圖D,進(jìn)而計算出目標(biāo)深度信息。

左右兩幅圖像經(jīng)過立體匹配之后,得到稠密的視差圖D,通過目標(biāo)點的視差與雙目攝像頭的基線關(guān)系和數(shù)學(xué)幾何相關(guān)知識,可以計算出世界坐標(biāo)系下目標(biāo)點的三維坐標(biāo),進(jìn)而通過人機(jī)交互的方式,可以對兩點之間的距離進(jìn)行測量。具體過程如式(5)所示。

根據(jù)世界坐標(biāo)系下攝像頭和目標(biāo)點之間的幾何關(guān)系,可以對目標(biāo)點P的三維坐標(biāo)進(jìn)行計算。如式(7)所示,進(jìn)一步,可以完成對深度信息的測量。

本節(jié)介紹上文中的基于匹配約束無監(jiān)督網(wǎng)絡(luò)的雙目深度測量網(wǎng)絡(luò)模型中的損失函數(shù)設(shè)計。在無監(jiān)督網(wǎng)絡(luò)中,由于沒有真實標(biāo)注值的存在,所以其損失函數(shù)的設(shè)計對于網(wǎng)絡(luò)收斂和訓(xùn)練結(jié)果有重要意義。
1)圖像重構(gòu)誤差損失函數(shù)

2)視差平滑損失函數(shù)
本文將視差梯度?d和圖像梯度?I進(jìn)行融合,分別對橫坐標(biāo)方向和縱坐標(biāo)方向求視差梯度和圖像梯度,如式(10)所示。

同時將互相關(guān)系數(shù)矩陣和視差平滑損失函數(shù)相結(jié)合,可以實現(xiàn)對視差圖的平滑。如式(13)所示。

1)實驗環(huán)境配置和數(shù)據(jù)集介紹
本文以PyTorch 1.3.1 深度學(xué)習(xí)框架為基礎(chǔ),搭建網(wǎng)絡(luò)模型。實驗環(huán)境為Ubuntu 16.04,CPU 為Intel Xeon E5-2680,3.3GHz;GPU 為Nvidia TITAN V,圖像處理工具為OpenCV 4.1,編程語言采用Python。
本文實驗引入了公共開源數(shù)據(jù)集KITTI2012和KITTI2015。KITTI2012 數(shù)據(jù)集中,有194 組訓(xùn)練數(shù)據(jù)和195 組測試數(shù)據(jù);KITTI2015 數(shù)據(jù)集中,有200 組訓(xùn)練數(shù)據(jù)和200 組測試數(shù)據(jù)。兩個數(shù)據(jù)集中,圖像分辨率均為1242×375,并將其訓(xùn)練數(shù)據(jù)的前160對圖像作為訓(xùn)練集,剩余的作為驗證集。
2)評價指標(biāo)
本文實驗由于真實標(biāo)注圖像的限制只對立體匹配性能實驗設(shè)置評價指標(biāo),評價指標(biāo)采用EPE(end-point-error)和視差錯誤率PER(pixel error rate)。EPE是一種光流預(yù)測方向中的評估方式,應(yīng)用在立體匹配的方向上具體是指像素點的標(biāo)注值和預(yù)測值之間的平均距離,EPE越低立體匹配效果越好。視差錯誤率PER 是預(yù)測視差中錯誤視差的像素點占比,PER越低立體匹配效果越好。
1)損失函數(shù)消融對比實驗
本文算法從圖像重構(gòu)、視差平滑、匹配約束模塊三個角度設(shè)計損失函數(shù),本節(jié)對損失函數(shù)在KTTI2015 數(shù)據(jù)集上進(jìn)行消融實驗,具體指標(biāo)如表1 所示。

表1 損失函數(shù)消融對比實驗結(jié)果
通過表1 可以得出,本文設(shè)計的損失函數(shù)能夠提高立體匹配的準(zhǔn)確度。Lp雖然融合了結(jié)構(gòu)誤差的高頻特征和基本重構(gòu)誤差的顏色、亮度特征,但是在弱紋理區(qū)域表現(xiàn)不佳,所以評價指標(biāo)均表現(xiàn)不好。Ls的加入,使得網(wǎng)絡(luò)在連續(xù)視差變化的情況下表現(xiàn)更好。損失函數(shù)結(jié)合匹配約束模塊中左右一致性、循環(huán)一致性的圖像重構(gòu)特性,引導(dǎo)網(wǎng)絡(luò)收斂;充分考慮視差圖平滑、圖像平滑和互相關(guān)系數(shù)矩陣平滑,使得稠密視差圖在保證邊緣銳利的同時平滑局部視差;融合匹配約束模塊中多尺度的損失信息,更加精確地提取到損失值,加速網(wǎng)絡(luò)收斂速度。
2)主流算法對比實驗
本節(jié)設(shè)計了本文算法和主流算法的對比實驗,數(shù)據(jù)集分別為KITTI2012 和KITTI2015 數(shù)據(jù)集,其中主流算法在訓(xùn)練過程中設(shè)置最大匹配范圍為192,本文算法不設(shè)置最大匹配范圍。本文算法和主流算法的對比效果圖如圖6、圖7所示,從左到右依次為左側(cè)圖像、OASM[13]算法實驗效果圖、SegStereo[14]算法效果圖、FCUNet[15]算法效果圖、本文算法實驗效果圖。

圖6 KITTI2012數(shù)據(jù)集中主流算法對比實驗效果圖

圖7 KITTI2015數(shù)據(jù)集中主流算法對比實驗效果圖
OASM 算法剔除了遮擋點對視差圖的影響,但是視差圖會在遮擋處出現(xiàn)視差突變,在目標(biāo)邊緣視差表現(xiàn)不好。SegStereo 算法將分割信息和視差信息相融合,增強(qiáng)了目標(biāo)邊緣視差的變化,但是由于目標(biāo)內(nèi)部缺乏紋理信息,在局部信息的視差會有較大的誤判。FCUNet 算法引入光流信息,根據(jù)光線變化梯度信息平滑視差,在視差圖中表現(xiàn)較好。本文算法通過匹配約束模塊,擺脫了最大視差限制,在總體視差效果上表現(xiàn)近似于主流算法,在近景視場中視差匹配效果上表現(xiàn)優(yōu)于主流算法。對上述幾種算法效果進(jìn)行客觀評價,具體評價數(shù)據(jù)如表2所示。

表2 本文算法對比實驗客觀評價指標(biāo)
在表2 中,本文采用了PER 視差錯誤率來作為評價指標(biāo),評價的像素為全部像素,包含遮擋區(qū)域的像素。從表2 中可以看出,本文算法對比主流算法在KITTI2012 數(shù)據(jù)集中有約3%的提升,在KITTI2015數(shù)據(jù)集中有約2%的提升。
本文提出了一種基于匹配約束無監(jiān)督網(wǎng)絡(luò)的雙目深度測量算法,將自注意力機(jī)制和匹配約束條件相融合,設(shè)計了一種匹配約束模塊,提高計算速度的同時擺脫了匹配范圍的限制;從圖像重構(gòu)、視差平滑、匹配約束特性三個角度設(shè)計了無監(jiān)督網(wǎng)絡(luò)的損失函數(shù),加快網(wǎng)絡(luò)收斂速度,不依賴于標(biāo)注數(shù)據(jù)。在KITTI2012 和KITTI2015 數(shù)據(jù)集上進(jìn)行實驗驗證,與幾種主流的基于深度學(xué)習(xí)的無監(jiān)督網(wǎng)絡(luò)測量算法相比,本文算法實現(xiàn)了對深度信息的精準(zhǔn)測量,在近景視場下的深度測量表現(xiàn)尤為出色。本文雖然對應(yīng)像素點搜索方式進(jìn)行了優(yōu)化,提升了計算速度,但是仍不能滿足自動駕駛等實時需要深度信息的場景,下一步將從網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化、模型輕量化的角度出發(fā),對算法的計算速度進(jìn)行改善和提升。