趙晨園,李文新,張慶熙
蘭州空間技術(shù)物理研究所,蘭州730000
三維物體識(shí)別技術(shù)能提取目標(biāo)物體的三維特征信息,進(jìn)而對(duì)場(chǎng)景中一個(gè)或多個(gè)目標(biāo)進(jìn)行識(shí)別或分類,相較于傳統(tǒng)二維圖像識(shí)別更能準(zhǔn)確全面地豐富物體的三維信息,從而進(jìn)行更高維的特征提取以便處理更復(fù)雜的任務(wù)[1],三維物體識(shí)別技術(shù)成為近年來(lái)計(jì)算機(jī)視覺(jué)領(lǐng)域的研究熱點(diǎn)之一,被廣泛應(yīng)用于智能機(jī)器人、維修檢測(cè)、無(wú)人駕駛、軍事偵察等領(lǐng)域[2]。
雙目立體視覺(jué)技術(shù)模擬人眼獲取相同點(diǎn)產(chǎn)生的視差從而進(jìn)行目標(biāo)三維重建,獲取三維圖像[3]。與結(jié)構(gòu)光傳感器、TOF(time-of-flight)相機(jī)等獲取深度圖像方式相比,雙目立體視覺(jué)技術(shù)對(duì)硬件、成本要求更低,所獲取的深度圖像更加密集、精確;與單目視覺(jué)深度估計(jì)相比,雙目立體視覺(jué)技術(shù)計(jì)算復(fù)雜度更小,系統(tǒng)實(shí)時(shí)性更高。雙目立體視覺(jué)技術(shù)更加適用于實(shí)際生產(chǎn)生活中的三維物體信息采集,有著巨大的發(fā)展空間和良好的應(yīng)用前景[4]。
立體匹配是雙目立體視覺(jué)技術(shù)中的核心算法,旨在通過(guò)尋找雙目相機(jī)所獲取的兩張圖像中的同名點(diǎn)從而構(gòu)建視差圖,一個(gè)良好的立體匹配算法直接決定三維重建的效果[5],建立合適的立體匹配算法是提高基于雙目立體視覺(jué)技術(shù)的三維物體識(shí)別效果的關(guān)鍵。
本文在通過(guò)分析總結(jié)現(xiàn)階段主要的立體匹配算法的基礎(chǔ)上,展望未來(lái)立體匹配算法的發(fā)展方向,旨在為今后相關(guān)領(lǐng)域人員開(kāi)展立體匹配算法的研究提供思路與參考。
立體匹配的目的是從兩張圖像中尋找同名點(diǎn)從而根據(jù)其視差計(jì)算出該點(diǎn)的深度信息[6]。Scharstein等[7]認(rèn)為立體匹配算法通過(guò)匹配代價(jià)計(jì)算、代價(jià)聚合、視差計(jì)算/優(yōu)化及視差校正四個(gè)過(guò)程實(shí)現(xiàn)。匹配代價(jià)是利用相似性函數(shù)計(jì)算左右圖中像素點(diǎn)的代價(jià),常用的相似性度量方法有絕對(duì)差值平方和(sum of absolute differences,SAD)、零均值絕對(duì)誤差和(zero sum of absolute differences,ZSAD)、Census 變換(Census transform,CT)等;代價(jià)聚合通過(guò)鄰接像素間的聯(lián)系,用一定方法,對(duì)代價(jià)矩陣進(jìn)行優(yōu)化,以處理圖像在弱、無(wú)紋理區(qū)域中的代價(jià)值無(wú)法準(zhǔn)確配對(duì)的問(wèn)題,降低異常點(diǎn)的影響,提高信噪比;視差計(jì)算/優(yōu)化采用“贏家通吃”(Winner-takes-all,WTA)原則,在視差搜索范圍內(nèi)選擇代價(jià)值最小的點(diǎn)作為對(duì)應(yīng)匹配點(diǎn),并確定該點(diǎn)視差;視差校正是對(duì)匹配好的視差圖進(jìn)行后處理,以解決遮擋點(diǎn)視差不準(zhǔn)確、噪聲點(diǎn)、誤匹配點(diǎn)等問(wèn)題,常用方法有左右一致性檢查(left-right check)、中值濾波(median filter)、局部一致性約束(locally consistent)等。立體匹配算法根據(jù)算法特點(diǎn)可以分為局部、全局、半全局和基于深度學(xué)習(xí)的立體匹配算法。
局部立體匹配算法又稱為基于滑動(dòng)窗口的圖像匹配方法,以待匹配像素的局部窗口內(nèi)的像素為約束,通過(guò)在另一個(gè)視角中水平移動(dòng)窗口,計(jì)算每個(gè)視差窗口內(nèi)所有像素的匹配代價(jià),利用贏家通吃原則,選擇最小匹配代價(jià)值作為該點(diǎn)視差。局部立體匹配算法一般包含匹配代價(jià)計(jì)算、代價(jià)聚合和視差計(jì)算/優(yōu)化三個(gè)步驟。
Kitagawa等[8]提出了基于高斯差分響應(yīng)(response of the difference of Gaussian,DoG)的引導(dǎo)濾波匹配方法,使用SAD 和相鄰像素梯度值的加權(quán)和來(lái)計(jì)算匹配代價(jià),根據(jù)每個(gè)像素選擇適當(dāng)窗口,利用引導(dǎo)濾波對(duì)代價(jià)矩陣進(jìn)行平滑聚合處理,時(shí)間效率高;Han等[9]改進(jìn)了快速自適應(yīng)窗口匹配算法,采用SAD計(jì)算顏色特征、梯度特征和紋理特征信息并分配不同權(quán)重作為匹配代價(jià);Chai等[10]針對(duì)圖像有大量噪聲或視差不連續(xù)情況下存在虛假匹配的問(wèn)題,將SAD 和Census 變換結(jié)合作為相似性度量函數(shù)進(jìn)行立體匹配,建立了基于自適應(yīng)窗口的引導(dǎo)濾波法進(jìn)行代價(jià)聚合,結(jié)果表明該算法能提高匹配精度,對(duì)光畸變和邊緣信息也有較好的魯棒性;Hong 等[11]對(duì)基于加權(quán)引導(dǎo)圖像濾波(weighted guided image filtering,WGIF)的局部立體匹配代價(jià)聚合方法進(jìn)行改進(jìn),通過(guò)基于局部方差的自適應(yīng)權(quán)重法重新構(gòu)造代價(jià)濾波器,該算法效果優(yōu)于其他濾波算法;Hamzah等[12]提出了iSM算法,在固定窗口下利用幅度差的梯度匹配和(sum of gradient matching,SG)計(jì)算匹配代價(jià),利用自適應(yīng)權(quán)重的迭代引導(dǎo)濾波(adapive support weight with iterative guided filter,ASW-iGF)算法進(jìn)行代價(jià)聚合,采用WTA方法確定最終視差并用聯(lián)合加權(quán)導(dǎo)頻濾波器(joint weighted guided filter,JWGF)對(duì)視差進(jìn)行后處理以降低噪聲;Oussama等[13]利用改進(jìn)的Census變換計(jì)算匹配代價(jià),提出了基于交叉聚合的自適應(yīng)代價(jià)聚合方法(cross-based aggregation method),算法能改善弱紋理區(qū)域誤匹配率高的問(wèn)題。
Table 1 Effects of different local stereo matching algorithms表1 不同局部立體匹配算法效果
表1 是不同局部立體匹配算法的效果,表1 中,Middlebury為室內(nèi)有遮擋物體圖像數(shù)據(jù)集,KITTI 為室外道路場(chǎng)景數(shù)據(jù)集,兩數(shù)據(jù)集均采用誤匹配率作為算法評(píng)價(jià)標(biāo)準(zhǔn),誤匹配率計(jì)算公式如下:
式中,err為誤匹配率,N為圖像總像素個(gè)數(shù),dC(x,y)是由算法得到的視差值,dT(x,y)為Ground truth視差值,δd為誤差閾值,大于該閾值表示該點(diǎn)沒(méi)有匹配成功,取值在0.5~4.0 之間。使用Middlebury 數(shù)據(jù)集能分別計(jì)算視差不連續(xù)區(qū)域disc、非遮擋區(qū)域nonocc和全區(qū)域all 的誤匹配率;使用KITTI 數(shù)據(jù)集能計(jì)算背景區(qū)域bg 的誤匹配率、前景區(qū)域fg 的誤匹配率和全區(qū)域all誤匹配率。本文表中誤匹配率為圖像的全區(qū)域all平均誤匹配率。
局部立體匹配算法通過(guò)滑動(dòng)窗口,利用像素周圍的局部信息對(duì)處于同一極線約束的所有點(diǎn)計(jì)算匹配代價(jià),從而找出同名點(diǎn),相對(duì)于全局立體匹配算法,該匹配算法具有計(jì)算復(fù)雜度低,時(shí)間效率高的優(yōu)點(diǎn),但由于未充分考慮圖像的全局信息而導(dǎo)致其很難區(qū)分無(wú)、弱紋理區(qū)域的不同像素點(diǎn),且對(duì)深度不連續(xù)區(qū)域存在魯棒性差的缺點(diǎn)。因此,研究者通過(guò)組合不同相似性度量方法及選用不同代價(jià)聚合方法以提高匹配精度。由表1可知,局部算法的平均誤匹配率為7.01%;Kitagawa 等[8]提出的算法在Middlebury數(shù)據(jù)集中誤匹配率為4.94%,匹配效果最好。該算法改善了傳統(tǒng)局部算法選擇的匹配窗口和聚合濾波窗口對(duì)不同區(qū)域適應(yīng)性差的缺點(diǎn),利用自適應(yīng)窗口的引導(dǎo)濾波法進(jìn)行代價(jià)聚合,為邊緣區(qū)域像素點(diǎn)選擇較小尺寸窗口,為無(wú)紋理區(qū)域選擇較大尺寸窗口,相比于傳統(tǒng)引導(dǎo)濾波方法,提高了匹配精度。
全局立體匹配算法又稱為全局能量函數(shù)最小法,該方法將局部匹配代價(jià)和平滑約束條件組合在一起構(gòu)成全局代價(jià)函數(shù),通過(guò)不斷迭代優(yōu)化分配的視差值,直到全局能量函數(shù)最小化。全局立體匹配能量函數(shù)定義如式(2)所示。
式中,E(D)為全局能量函數(shù);E(data)(D)為數(shù)據(jù)約束項(xiàng),用于判斷像素點(diǎn)之間的相似性;E(smooth)(D)為相鄰點(diǎn)的平滑約束項(xiàng),用于判斷相鄰點(diǎn)之間的連續(xù)性;λ為參數(shù)因子,用于數(shù)據(jù)項(xiàng)和平滑項(xiàng)的平衡。全局立體匹配算法通常包括匹配代價(jià)計(jì)算、視差計(jì)算/優(yōu)化與視差校正三個(gè)步驟。經(jīng)典的全局立體匹配算法有動(dòng)態(tài)規(guī)劃[14]、圖割[15]和置信傳播法[16]。
Hallek等[17]利用零均值絕對(duì)差和(ZSAD)計(jì)算匹配代價(jià),并用動(dòng)態(tài)規(guī)劃法進(jìn)行優(yōu)化,建立了具有實(shí)時(shí)性的立體匹配系統(tǒng);Cheng等[18]提出了粗加精的匹配思想,該方法為在建立新的全局邊緣約束(global edge constraint,GEC)基礎(chǔ)上,利用局部算法估計(jì)最優(yōu)支持窗口,建立初始視差圖,并根據(jù)匹配結(jié)果構(gòu)造數(shù)據(jù)項(xiàng),將GEC 作為平滑約束納入全局能量函數(shù)中并利用圖割法進(jìn)行最小化處理得到精確視差圖;San等[19]為了實(shí)現(xiàn)對(duì)無(wú)紋理區(qū)域更好的視差估計(jì),將爬山算法(hill-climbing)應(yīng)用于圖像分割,利用SIFT(scaleinvariant feature transform)和SAD融合的算法計(jì)算代價(jià)值,利用圖割法對(duì)能量函數(shù)進(jìn)行最小化處理獲得最終視差;Ma 等[20]將絕對(duì)強(qiáng)度差(absolute intensity differences,AD)、絕對(duì)梯度差(absolute gradient differences,GAD)和基于梯度Census 變換(gradient-based Census transform,GCT)相似性度量方法組合成魯棒性強(qiáng)的代價(jià)組合指數(shù)函數(shù),計(jì)算匹配代價(jià),采用互一致性檢驗(yàn)準(zhǔn)則和隨機(jī)樣本一致性算法組成的“MCRANSAC”的視差優(yōu)化方法濾除異常值,用置信傳播法優(yōu)化能量函數(shù)得到較為精確的視差圖;Wang 等[21]將SAD 和Census 變換組合形成匹配代價(jià),將其轉(zhuǎn)化為能量函數(shù)中的數(shù)據(jù)項(xiàng)并利用置信傳播法進(jìn)行迭代推理獲取視差圖,利用中值濾波和交叉檢查濾波進(jìn)行后處理優(yōu)化,所選用的數(shù)據(jù)項(xiàng)在無(wú)紋理區(qū)域具有魯棒性;Lee等[22]將Census變換和梯度圖像匹配組合計(jì)算像素的初始代價(jià),提出了一種新的自適應(yīng)權(quán)重重啟隨機(jī)游走(adapt random walk with restart,AWR)視差優(yōu)化算法,該算法復(fù)雜度較低;Tan等[23]利用像素點(diǎn)在0°、45°、90°和135°四個(gè)方向上的值擬合多項(xiàng)式函數(shù),利用多項(xiàng)式函數(shù)計(jì)算該點(diǎn)視差值并作為數(shù)據(jù)項(xiàng),利用置信傳播法進(jìn)行視差優(yōu)化,結(jié)果表明該算法在高度傾斜的曲面上具有良好的匹配性能,雖然增加了算法的復(fù)雜度,但算法具有高并行性,便于GPU加速;Shahbazi等[24]用內(nèi)稟曲線(intrinsic curves)的幾何特征形成基于方向的稀疏視差假設(shè)值并將其作為遮擋項(xiàng),非參數(shù)Census變換作為數(shù)據(jù)項(xiàng),集成為全局能量函數(shù),減少了由于圖像像素遮擋而產(chǎn)生的誤差,匹配率提升了2%。
全局立體匹配算法通常無(wú)代價(jià)聚合步驟,是通過(guò)不斷迭代,利用全局能量函數(shù)為每一個(gè)像素點(diǎn)進(jìn)行視差分配,使得能量函數(shù)最小,全局算法獲得的視差值更接近真實(shí)視差值。誤匹配率的定義不是考察像素點(diǎn)對(duì)是否正確匹配,而是計(jì)算該點(diǎn)視差與真實(shí)視差的差值是否小于誤差閾值,全局算法平滑了相鄰像素點(diǎn)之間的視差值,故其對(duì)視差連續(xù)及無(wú)、弱紋理區(qū)域匹配效果較好,匹配精度高,但不斷的迭代增加了算法復(fù)雜度。為了提高識(shí)別精度和運(yùn)行效率,研究者們通常對(duì)傳統(tǒng)全局算法進(jìn)行優(yōu)化以提高識(shí)別精度或更換加速平臺(tái)以提高時(shí)間效率。從表2 可以看出,全局算法的平均誤匹配率為5.75%,比局部算法低1.26 個(gè)百分點(diǎn),其中以Ma 等[20]的算法匹配效果最好,在Middlebury數(shù)據(jù)集中誤匹配率為4.21%。該算法在改進(jìn)能量函數(shù)并將置信傳播法作用于區(qū)域而非像素以減小算法復(fù)雜度的基礎(chǔ)上,結(jié)合局部自適應(yīng)窗口的多相似度融合方法和全局置信傳播方法,有效降低了誤匹配率,但匹配代價(jià)的計(jì)算較為復(fù)雜,導(dǎo)致運(yùn)行時(shí)間較長(zhǎng)。利用局部和全局思想結(jié)合的方法取得最優(yōu)視差圖,給研究者提供了一個(gè)很好的思路。
半全局立體匹配算法(semi-global matching,SGM)是近年來(lái)的研究熱點(diǎn)之一,2005 年由Hirschmüller[25]提出,與全局匹配方法不同,該算法將二維圖像的優(yōu)化問(wèn)題轉(zhuǎn)化為多條路徑的一維優(yōu)化問(wèn)題,計(jì)算像素點(diǎn)的匹配代價(jià),聚合來(lái)自8 個(gè)或16 個(gè)方向的路徑代價(jià),并利用WTA 方法計(jì)算視差。半全局立體匹配算法一般步驟包括匹配代價(jià)、代價(jià)聚合、視差計(jì)算/優(yōu)化和視差校正。半全局與全局立體匹配算法均采用最優(yōu)化能量函數(shù)的思想,通過(guò)最小化全局能量函數(shù)估計(jì)最佳視差值,半全局方法采用的能量函數(shù)如下:
Table 2 Effects of different global stereo matching algorithms表2 不同全局立體匹配算法效果
式中,E(D)為半全局能量函數(shù);p是目標(biāo)像素點(diǎn),q為像素p鄰域中的一點(diǎn),Dp和Dq分別為兩點(diǎn)視差,C(p,Dp)為視差圖D下所有像素點(diǎn)的匹配代價(jià),P1是平滑約束懲罰因子,是對(duì)相鄰像素視差等于1(|Dp-Dq|=1)時(shí)添加的懲罰因子;P2是邊緣約束懲罰因子,是對(duì)相鄰像素視差大于1(|Dp-Dq|>1)時(shí)添加的懲罰因子,P2>>P1。
Banz 等[26]根據(jù)數(shù)據(jù)流流入行緩存的方式,利用秩變換進(jìn)行匹配代價(jià)計(jì)算,將8路代價(jià)聚合改為4路并行代價(jià)聚合,實(shí)現(xiàn)了對(duì)FPGA(field programmable gate array)的算法優(yōu)化。在最大視差為128像素和時(shí)鐘頻率39 MHz 情況下吞吐量為37 frame/s(640×480像素),算法具有實(shí)時(shí)性;Li等[27]利用Census變換計(jì)算匹配代價(jià),采用圖像金字塔對(duì)每一層進(jìn)行8 方向SGM處理,建立了一個(gè)由粗到精并行立體匹配算法,減少了匹配時(shí)間;Juarez等[28]利用GPU 對(duì)4路徑實(shí)時(shí)SGM 算法進(jìn)行并行加速,將其應(yīng)用于實(shí)時(shí)輔助駕駛系統(tǒng),吞吐量為42 frame/s(640×480像素);Wang等[29]針對(duì)現(xiàn)有立體匹配算法對(duì)弱紋理和視差不連續(xù)區(qū)域匹配精度低的問(wèn)題,提出了匹配代價(jià)組合的SGM 方法,用自適應(yīng)權(quán)重SAD 和GAD 的組合計(jì)算匹配代價(jià),用8路徑的半全局方法進(jìn)行代價(jià)聚合;Chai等[30]提出了基于最小生成樹(shù)(minimum spanning tree,MST)的新型SGM 方法,該算法根據(jù)4 個(gè)規(guī)劃路徑上的像素點(diǎn)計(jì)算匹配像素點(diǎn)的代價(jià)值,根據(jù)葉節(jié)點(diǎn)到根節(jié)點(diǎn)和根節(jié)點(diǎn)到葉節(jié)點(diǎn)兩個(gè)步驟之和計(jì)算代價(jià)聚合。視差圖像在圖像邊緣產(chǎn)生的誤匹配點(diǎn)比經(jīng)典SGM算法少;Li等[31]利用灰度和梯度的融合信息計(jì)算匹配代價(jià),利用互信息進(jìn)行匹配代價(jià)的相似性度量,采用5條自適應(yīng)加權(quán)路徑進(jìn)行代價(jià)聚合,匹配精度提高了1.74%,采用尖峰濾波器(spike filter,SPF)和左右一致性檢查進(jìn)行視差校正,系統(tǒng)吞吐量為197 frame/s(1 280×960 像素);Rahnama 等[32]針對(duì)傳統(tǒng)算法在FPGA上實(shí)現(xiàn)會(huì)產(chǎn)生條紋效應(yīng)的問(wèn)題,利用Census變換計(jì)算代價(jià),改進(jìn)能量函數(shù)并將8路徑代價(jià)聚合變?yōu)? 個(gè)相鄰像素點(diǎn)的聚合,利用中值濾波法降低噪聲,系統(tǒng)吞吐量為71 frame/s(1 242×375像素),系統(tǒng)功耗低,適用于低功耗的實(shí)時(shí)性系統(tǒng)。
由式(3)的算法能量函數(shù)可知,SGM算法實(shí)質(zhì)上是全局算法的一種改進(jìn),綜合了全局和局部算法的優(yōu)點(diǎn),利用多條路徑下的一維代價(jià)聚合問(wèn)題來(lái)代替全局能量函數(shù)的最優(yōu)問(wèn)題,即將全局算法中的視差計(jì)算步驟簡(jiǎn)化并作為代價(jià)聚合步驟。算法在保留了匹配精度的同時(shí),減小了計(jì)算復(fù)雜度,但匹配效果依賴于選取路徑數(shù)目,算法對(duì)無(wú)、弱紋理區(qū)域的匹配效果與路徑聚合數(shù)目成正比。另外,SGM 在利用硬件加速時(shí)往往受限于運(yùn)算機(jī)制,例如算法在FPGA上實(shí)現(xiàn)時(shí),為保證算法實(shí)時(shí)性而舍棄像素下半部分未讀取路徑的代價(jià)聚合,造成條紋效應(yīng),影響匹配精度。因此,如何在減少聚合路徑前提下,通過(guò)優(yōu)化算法保證匹配精度是SGM 在硬件平臺(tái)上實(shí)現(xiàn)的難點(diǎn)之一,目前主要通過(guò)改變不同路徑及添加權(quán)重以提高算法精度。在算法速度方面,研究者們利用GPU和FPGA并行計(jì)算的特點(diǎn),通過(guò)增大空間復(fù)雜度、減小時(shí)間復(fù)雜度以實(shí)現(xiàn)實(shí)時(shí)性。由表3可知,半全局算法平均誤匹配率為7.09%,比全局算法高1.34 個(gè)百分點(diǎn),但利用FPGA或GPU硬件加速平臺(tái)的算法運(yùn)行時(shí)間均在1 s以下,可用于實(shí)時(shí)性要求高的系統(tǒng)中。
Table 3 Effects of different semi-global stereo matching algorithms表3 不同半全局立體匹配算法效果
基于深度學(xué)習(xí)的立體匹配算法是近年來(lái)興起的一種算法,可分為兩類,分別是深度學(xué)習(xí)與傳統(tǒng)算法相結(jié)合的立體匹配算法和端到端的深度學(xué)習(xí)立體匹配算法。深度學(xué)習(xí)與傳統(tǒng)算法相結(jié)合的算法是將深度學(xué)習(xí)算法應(yīng)用于傳統(tǒng)匹配算法的步驟中,讓計(jì)算機(jī)自動(dòng)學(xué)習(xí)匹配代價(jià)、代價(jià)聚合等,減少了人為設(shè)計(jì)造成的誤差?;诙说蕉说姆椒ㄖ苯右宰笥覂蓮垐D像為輸入,視差圖作為輸出,利用深度算法學(xué)習(xí)原始數(shù)據(jù)到期望輸出的映射。
在深度學(xué)習(xí)與傳統(tǒng)算法相結(jié)合的立體匹配算法方面,Zbontar 和LeCun[33]首次以成對(duì)小圖像塊、標(biāo)注圖像(ground truth)為輸入,匹配代價(jià)為輸出,訓(xùn)練有監(jiān)督學(xué)習(xí)的匹配代價(jià)卷積神經(jīng)網(wǎng)絡(luò)(matching cost convolutional neural network,MC-CNN),使用交叉代價(jià)聚合方法聚合匹配代價(jià),通過(guò)SGM 方法實(shí)現(xiàn)平滑性約束,對(duì)遮擋區(qū)域進(jìn)行左右一致性檢驗(yàn),通過(guò)中值濾波器和雙邊濾波獲得最終的視差圖;Chen 等[34]針對(duì)現(xiàn)有監(jiān)督學(xué)習(xí)方法普遍存在過(guò)擬合問(wèn)題,提出在MC-CNN 基礎(chǔ)上通過(guò)卷積層中選擇2×2 小尺寸卷積核并在決策層中利用dropout正則化方法的圖像塊匹配代價(jià)算法,結(jié)合SGM 方法進(jìn)行視差優(yōu)化并采用左右一致性檢驗(yàn)等多種方法進(jìn)行視差校正,算法具有更好的泛化能力;Yan等[35]提出了對(duì)MC-CNN得到的視差圖進(jìn)行優(yōu)化的后處理方法,該方法用馬爾科夫推理估計(jì)像素點(diǎn)和遮擋區(qū)域的平均視差以進(jìn)行全局優(yōu)化,用貝葉斯推理進(jìn)行視差優(yōu)化達(dá)到局部?jī)?yōu)化,算法效率高;Williem 等[36]提出一種基于深度卷積網(wǎng)絡(luò)的自我引導(dǎo)的代價(jià)聚合方法,并應(yīng)用于局部立體匹配。該方法的深度學(xué)習(xí)網(wǎng)絡(luò)由動(dòng)態(tài)權(quán)值和下降濾波兩個(gè)子網(wǎng)絡(luò)組成,網(wǎng)絡(luò)中結(jié)合特征重建損失和像素均方損失函數(shù)以保持邊緣特性;Lee等[37]針對(duì)精確立體匹配算法占用內(nèi)存多的問(wèn)題,提出具有高效且魯棒的置信度參數(shù)SGM(confidence-based parametric SGM,cbpSGM)算法,該算法對(duì)8路徑SGM算法進(jìn)行改進(jìn),組合高斯混合模型(Gaussian mixture model,GMM)參數(shù)聚合與eSGM[38]中兩步聚合策略進(jìn)行代價(jià)聚合,引入隨機(jī)森林框架作為代價(jià)優(yōu)化方法,算法內(nèi)存低,為傳統(tǒng)SGM的3%以下。
在端到端的深度學(xué)習(xí)立體匹配算法方面,Mayer等[39]于2016年首次將端到端神經(jīng)網(wǎng)絡(luò)模型應(yīng)用于立體匹配領(lǐng)域,建立了大規(guī)模合成數(shù)據(jù)集并訓(xùn)練端到端卷積神經(jīng)網(wǎng)絡(luò)DispNet,該算法利用自動(dòng)編碼-解碼結(jié)構(gòu),直接輸出視差圖,無(wú)后處理步驟,精度高;Pang等[40]提出了一種新的二級(jí)級(jí)聯(lián)結(jié)構(gòu)CNN(convolutional neural network),第一級(jí)通過(guò)增加額外的上卷積模塊對(duì)DispNet改進(jìn)使視差圖具有更多細(xì)節(jié);第二級(jí)用串聯(lián)殘差學(xué)習(xí)網(wǎng)絡(luò)(cascade residual learning,CRL)進(jìn)行視差細(xì)化,利用多個(gè)尺度上產(chǎn)生的殘差校正視差;Kang 等[41]針對(duì)算法在深度不連續(xù)和低紋理區(qū)域方面匹配效果不佳的問(wèn)題,提出改進(jìn)DispNet神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法,該算法用擴(kuò)展卷積建立上下文金字塔特征提取模塊,構(gòu)建基于圖像塊的匹配代價(jià)計(jì)算方法,將視差梯度信息引入損失函數(shù)進(jìn)行后處理以保持局部細(xì)節(jié);Brandao等[42]在Siamese神經(jīng)網(wǎng)絡(luò)中使用反卷積提取目標(biāo)像素周圍特征并進(jìn)行特征點(diǎn)匹配,優(yōu)化特征聚合算法,將學(xué)習(xí)網(wǎng)絡(luò)變?yōu)闇\層架構(gòu),降低了算法復(fù)雜度;Nguyen等[43]為解決弱紋理區(qū)域的誤匹配問(wèn)題,提出廣域上下文學(xué)習(xí)網(wǎng)絡(luò)和帶空間擴(kuò)散模塊的堆疊式編碼-解碼二維CNN,該網(wǎng)絡(luò)利用擴(kuò)展卷積層和空間金字塔池化層提取全局上下文信息,利用提取的信息構(gòu)成匹配代價(jià),對(duì)匹配代價(jià)進(jìn)行上下文代價(jià)聚合,算法無(wú)需后處理。
深度學(xué)習(xí)算法在立體匹配算法中的應(yīng)用取得了巨大突破,其算法精度普遍超過(guò)傳統(tǒng)立體匹配算法。針對(duì)傳統(tǒng)方法在算法和參數(shù)選擇上依賴經(jīng)驗(yàn)、與實(shí)際問(wèn)題適應(yīng)性差、效率低下的問(wèn)題,深度學(xué)習(xí)與傳統(tǒng)方法相結(jié)合的匹配方法通過(guò)在傳統(tǒng)算法中嵌套一個(gè)或多個(gè)深度學(xué)習(xí)算法,利用神經(jīng)網(wǎng)絡(luò)自主學(xué)習(xí)匹配代價(jià)或代價(jià)聚合以達(dá)到比傳統(tǒng)方法更好的效果,通過(guò)直接學(xué)習(xí)原始圖像,使得模型具有更好的泛化能力,算法難點(diǎn)在于算法與算法之間的契合問(wèn)題;基于端到端的神經(jīng)網(wǎng)絡(luò)利用單個(gè)神經(jīng)網(wǎng)絡(luò)解決多步驟問(wèn)題,規(guī)避了多步驟所產(chǎn)生的誤差累積,避免了模塊與模塊間相互影響和人工設(shè)計(jì)的淺層表達(dá)產(chǎn)生的誤差,將立體匹配完全轉(zhuǎn)化為定位回歸問(wèn)題,充分利用卷積神經(jīng)網(wǎng)絡(luò)的特征提取能力和模型表達(dá)能力,自發(fā)地從圖像數(shù)據(jù)中學(xué)習(xí)約束表達(dá),是未來(lái)的發(fā)展趨勢(shì)之一。但基于端到端的神經(jīng)網(wǎng)絡(luò)算法往往需要大量的數(shù)據(jù)集進(jìn)行訓(xùn)練以增強(qiáng)模型泛化能力,且算法多為卷積計(jì)算,因此相比于非端到端的神經(jīng)網(wǎng)絡(luò),端到端神經(jīng)網(wǎng)絡(luò)在有足夠充足的訓(xùn)練集情況下具有更好的收斂性和泛化能力,但也會(huì)提高算法的時(shí)間復(fù)雜度。
Table 4 Effects of different stereo matching algorithms based on deep learning表4 不同基于深度學(xué)習(xí)的立體匹配算法效果
從表4可以看出,基于深度學(xué)習(xí)的算法平均誤匹配率為4.50%,優(yōu)于局部、全局、半全局算法;深度學(xué)習(xí)與傳統(tǒng)方法結(jié)合的算法均利用CPU 進(jìn)行實(shí)現(xiàn),而端到端算法均通過(guò)GPU 并行加速實(shí)現(xiàn),端到端的深度學(xué)習(xí)算法比深度學(xué)習(xí)與傳統(tǒng)方法結(jié)合的算法時(shí)間效率平均提高66倍,且匹配精度沒(méi)有明顯下降。
近年來(lái),雙目立體視覺(jué)技術(shù)在工業(yè)上表現(xiàn)出巨大的應(yīng)用前景和發(fā)展?jié)摿?,成為研究者們探索的熱點(diǎn)之一,在立體匹配方面不斷涌現(xiàn)出新的算法,推動(dòng)匹配算法向高精度、實(shí)時(shí)性方向發(fā)展。
(1)現(xiàn)有研究的立體匹配算法大都依靠Middlebury、KITTI等數(shù)據(jù)集對(duì)算法進(jìn)行學(xué)習(xí)、訓(xùn)練和驗(yàn)證,沒(méi)有利用實(shí)際生產(chǎn)生活中的圖像,實(shí)際拍攝的圖像往往存在著無(wú)、弱紋理及反光、遮擋等區(qū)域。針對(duì)該問(wèn)題,雖然Ran和Xue等[44-45]進(jìn)行了有益的探討,改善了弱紋理區(qū)域誤匹配問(wèn)題,但提高了算法復(fù)雜度。未來(lái)提出對(duì)弱匹配區(qū)域具有魯棒性及實(shí)時(shí)性強(qiáng)的立體匹配算法仍具有重要意義。
(2)現(xiàn)有的研究普遍關(guān)注提升算法的匹配精度,但利用Middlebury 數(shù)據(jù)集建立的匹配算法中精度前十名的算法運(yùn)行時(shí)間均超過(guò)120 s,不滿足計(jì)算實(shí)時(shí)密集型任務(wù)的要求[35]。在傳統(tǒng)立體匹配算法方面,可通過(guò)多種匹配代價(jià)算法融合,同時(shí)適當(dāng)減小匹配窗口或聚合路徑,在保證算法準(zhǔn)確度情況下,減小算法復(fù)雜度;在深度學(xué)習(xí)算法方面,可通過(guò)優(yōu)化卷積核,將深度學(xué)習(xí)算法與傳統(tǒng)算法進(jìn)行融合以減小對(duì)大量數(shù)據(jù)集的依賴,同時(shí)也要防止算法過(guò)擬合。此外,F(xiàn)PGA 和GPU 具有流水線并行計(jì)算的能力和可對(duì)大規(guī)模數(shù)據(jù)流進(jìn)行并行處理的優(yōu)點(diǎn),未來(lái)利用FPGA和GPU硬件加速平臺(tái)實(shí)現(xiàn)算法并對(duì)其進(jìn)行優(yōu)化將是解決圖像實(shí)時(shí)匹配問(wèn)題的一種思路。
(3)當(dāng)前算法處理的圖像分辨率普遍較低,許多算法利用1/4精度或半精度圖像進(jìn)行算法驗(yàn)證,無(wú)法達(dá)到應(yīng)用要求。隨著計(jì)算機(jī)視覺(jué)技術(shù)的發(fā)展,高分辨率圖像的立體匹配算法將成為一種發(fā)展趨勢(shì)。下一步,在保證實(shí)時(shí)性前提下,提出高精度、高分辨率的立體匹配算法是未來(lái)發(fā)展方向。
(4)現(xiàn)有研究表明,深度學(xué)習(xí)算法對(duì)立體匹配的精度較高,成為近年來(lái)的熱門研究方向之一,也是未來(lái)的發(fā)展方向,其中的深度學(xué)習(xí)與傳統(tǒng)立體匹配算法用來(lái)優(yōu)化立體匹配中匹配代價(jià)、代價(jià)聚合等,但模型之間存在著難以融合的缺點(diǎn)。下一步,將深度學(xué)習(xí)算法與傳統(tǒng)算法并行處理,結(jié)合使用,解決算法與算法之間的調(diào)優(yōu)問(wèn)題以進(jìn)一步提升模型的泛化能力;端到端的深度學(xué)習(xí)方法匹配精度高,一個(gè)神經(jīng)網(wǎng)絡(luò)就可完成多個(gè)匹配步驟,將被越來(lái)越多地應(yīng)用于立體匹配領(lǐng)域。因此,如何利用像素上下文信息,充分發(fā)揮卷積神經(jīng)網(wǎng)絡(luò)的作用,并減小內(nèi)存消耗,是研究者需要考慮的問(wèn)題。
立體匹配是雙目立體視覺(jué)技術(shù)中實(shí)現(xiàn)三維重建的關(guān)鍵,對(duì)雙目立體視覺(jué)技術(shù)的應(yīng)用及發(fā)展有著決定性的意義。下一步立體匹配算法的研究重點(diǎn)為解決在無(wú)、弱紋理區(qū)域匹配精度不佳的問(wèn)題,開(kāi)發(fā)基于深度學(xué)習(xí)的高精度立體匹配算法和具有高實(shí)時(shí)性、可實(shí)際用于生產(chǎn)需要的立體匹配算法。本文對(duì)提高雙目立體視覺(jué)技術(shù)中立體匹配的水平具有參考價(jià)值。