亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        匹配代價(jià)融合與分層迭代優(yōu)化的半全局立體匹配

        2023-09-06 04:30:00田家旺
        關(guān)鍵詞:立體匹配視差代價(jià)

        陶 洋,田家旺

        (重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065)

        1 引 言

        立體匹配算法是雙目視覺(jué)從二維走向三維的重要途徑,是雙目立體視覺(jué)中核心步驟之一.立體匹配的目標(biāo)是從左右視點(diǎn)采集到的圖像中找到對(duì)應(yīng)的同名點(diǎn),從而求得左右視角中同名點(diǎn)之間的視差.結(jié)合雙目測(cè)量的基礎(chǔ)理論,可以進(jìn)一步完成基于雙目視覺(jué)的測(cè)量任務(wù),例如測(cè)距、定位和三維重建等.按照匹配算法的輸出結(jié)果,立體匹配可以分為稠密匹配和稀疏匹配兩種.稠密匹配算法為圖像中所有像素點(diǎn)完成匹配.而稀疏匹配算法則是只匹配提取出的部分特征點(diǎn).相對(duì)來(lái)說(shuō),稠密匹配算法獲得的視差信息更為豐富.稠密立體匹配算法可以分為基于深度學(xué)習(xí)、局部、全局、半全局4種類別.隨著深度學(xué)習(xí)的發(fā)展,基于深度學(xué)習(xí)的立體匹配算法近年來(lái)逐漸增多,能夠取得較高的視差圖精度.MC-CNN[1]是基于深度學(xué)習(xí)立體匹配算法的開(kāi)山之作,作者通過(guò)一個(gè)5層的卷積網(wǎng)絡(luò)學(xué)習(xí)初始匹配代價(jià),然后使用半全局立體匹配完成后續(xù)計(jì)算,取得了當(dāng)時(shí)的最佳性能.全局立體匹配都基于如圖割[2]、動(dòng)態(tài)規(guī)劃[3]等算法,都引入圖像的全局信息,通過(guò)最小化全局能量函數(shù)求取視差圖,效果較好,但與前者相同,計(jì)算量巨大,實(shí)時(shí)效果較差,難以在邊緣CPU設(shè)備上部署.基于局部信息的匹配算法以像素所在的局部窗口信息作為相似性測(cè)度依據(jù),這類方法中窗口尺寸和形狀均會(huì)影響匹配效果,匹配效果較差.半全局匹配算法(Semi-Global Matching,SGM)[4]綜合了全局和半全局的優(yōu)點(diǎn),在盡可能保留算法精度的同時(shí)大大減少了計(jì)算復(fù)雜度,在工程上得到較多的應(yīng)用.

        在半全局立體匹配算法匹配精度的研究方面,Zabih R[5]提出的Census變換被廣泛應(yīng)用于匹配代價(jià)計(jì)算,該方法結(jié)構(gòu)簡(jiǎn)單,但對(duì)局部窗口中心像素的依賴較強(qiáng),對(duì)噪聲敏感.王陽(yáng)萍[6]等人使用加速魯棒特征(Speed Up Robust Features,SURF)檢測(cè)遙感立體像對(duì)中潛在的匹配點(diǎn),用來(lái)修改不同聚合方向上的路徑權(quán)重,提高了在弱紋理與視差不連續(xù)區(qū)域的匹配精度,但增加SURF步驟的同時(shí),也帶來(lái)了新的計(jì)算負(fù)擔(dān).黃彬[7]等人在Census變換階段引入權(quán)重,準(zhǔn)確選擇中心點(diǎn)的參考像素值,并且使用多尺度聚合策略,將引導(dǎo)濾波作為代價(jià)聚合核函數(shù),匹配精度有所提高,但算法復(fù)雜度大幅增加,不利于并行實(shí)現(xiàn).Zhao C[8]等用Census窗口周圍像素代替中心像素進(jìn)行變換,使其更加魯棒,得到了不錯(cuò)的視差效果.但實(shí)際場(chǎng)景中的光照等因素更為復(fù)雜,基于Census變換的代價(jià)計(jì)算方式仍需改進(jìn).

        在半全局立體匹配算法的效率研究方面,Hermann S[9]提出了分層迭代的半全局立體匹配算法,有了較大的速度提升.Rothermel M[10]等人與Hermann S的策略類似,并且使用先前的視差推導(dǎo)當(dāng)前每個(gè)像素的動(dòng)態(tài)視差搜索范圍,進(jìn)一步提高了匹配效率,但在CPU平臺(tái)上的運(yùn)行效率仍然很低,匹配一幀需要8秒.Li Y[11]在分層迭代算法基礎(chǔ)上結(jié)合多線程及原生128位指令集解決攝影測(cè)量影像的立體匹配效率問(wèn)題,但移植性較差,原因在于每種平臺(tái)的指令集有所差別.Shrivastava S[12]擴(kuò)展了傳統(tǒng)SGM的流水線架構(gòu),通過(guò)松弛依賴約束以并行方式處理多個(gè)像素,提高了算法效率,但精度損失嚴(yán)重.Lu Z[13]等使用下采樣及視差跳躍的策略,并且在聚合時(shí)對(duì)水平路徑加權(quán),但算法引入了一個(gè)新的路徑權(quán)重參數(shù),增加了代價(jià)聚合的計(jì)算量.

        綜上所述,現(xiàn)階段的半全局立體匹配算法在精度和效率方面均有較大進(jìn)步,但并未將精度和效率進(jìn)行很好的權(quán)衡,在邊緣CPU平臺(tái)上,需要高精度的同時(shí),也需要高效的計(jì)算,尤其是在大尺寸圖像和大視差搜索范圍情況下.因此,本文提出一種基于改進(jìn)匹配代價(jià)和分層策略的半全局立體匹配.該算法將樸素Census變換與中心對(duì)稱Census變換結(jié)合,共同構(gòu)成變換序列,將AD代價(jià)與兩序列的漢明距離融合作為初始的匹配代價(jià).減少對(duì)中心像素依賴的同時(shí)擴(kuò)充了代價(jià)的區(qū)間,增加了代價(jià)的區(qū)分能力,可以在一定程度上提高算法在戶外場(chǎng)景中的匹配精度.其次,算法采用分層迭代的思想進(jìn)行匹配,通過(guò)上層低分辨率圖像的匹配結(jié)果限制當(dāng)前層高分辨率圖像中像素的視差搜索范圍,使得其搜索范圍不至于過(guò)大從而減少大量的無(wú)效計(jì)算,既可提高精度,也可提高效率.最后使用OpenCV中提供的統(tǒng)一指令集以及多核并行的方式實(shí)現(xiàn)算法計(jì)算加速,從而進(jìn)一步實(shí)現(xiàn)硬件資源的高效利用,提高立體匹配的計(jì)算效率.

        2 算法描述

        本算法的流程如圖1所示,輸入為極線校正后的雙目立體圖像對(duì),算法根據(jù)輸入的原始圖像尺寸,自動(dòng)確定金字塔的層數(shù)N,用于指導(dǎo)后續(xù)分層迭代,并且初始化第1層的視差搜索范圍,然后進(jìn)入到分層迭代步驟.在每一層的匹配中,首先在預(yù)處理階段,對(duì)原始輸入圖像進(jìn)行下采樣,得到當(dāng)前層待匹配的左右圖像.在代價(jià)計(jì)算階段,使用融合的Census變換結(jié)合AD變換作為初始代價(jià),采用4路徑代價(jià)聚合優(yōu)化視差值,視差計(jì)算采用WTA算法選擇視差空間中目標(biāo)像素的最小匹配代價(jià)值所對(duì)應(yīng)的視差值,對(duì)圖像中全部像素點(diǎn)進(jìn)行上述計(jì)算后,得到粗略的視差圖.通過(guò)視差唯一性約束、子像素優(yōu)化、左右一致性檢查、空洞填充、中值濾波等步驟對(duì)視差圖進(jìn)行優(yōu)化處理,獲得較為準(zhǔn)確的視差圖.

        2.1 預(yù)處理

        在進(jìn)行當(dāng)前層的匹配之前,需要對(duì)圖像進(jìn)行預(yù)處理.根據(jù)當(dāng)前的金字塔層號(hào)L,對(duì)原始圖像進(jìn)行下采樣,得到用于當(dāng)前層需要完成匹配的左右圖像.在每一層進(jìn)行下采樣之前,需要完成高斯濾波預(yù)處理,去除原始圖像中的噪聲.

        2.2 代價(jià)計(jì)算

        傳統(tǒng)的Census變換僅用錨點(diǎn)像素與周圍鄰域像素做比較,導(dǎo)致Census變換嚴(yán)重依賴于中心像素,當(dāng)圖像受噪聲、光照等外界條件干擾時(shí),中心像素的亮度值可能嚴(yán)重失真,使得該像素的Census變換結(jié)果難以準(zhǔn)確反映該點(diǎn)處的真實(shí)情況,影響最終精度.因此,本文在預(yù)處理階段使用高斯濾波消除噪聲,并且使用中心對(duì)稱Census變換[14](Center-Symmetric Census Transform,CSCT)中8組像素的比較結(jié)果作為補(bǔ)充,中心對(duì)稱Census變換能夠減少對(duì)中心像素的依賴,捕獲窗口內(nèi)距離較遠(yuǎn)像素點(diǎn)之間的亮度關(guān)系.

        融合的Census變換首先在局部5×5窗口內(nèi)進(jìn)行樸素Census變換,得到變換的描述序列CensusStr(r,c),該序列一共24位.其次,采用CSCT的思想,選取如圖2所示的8個(gè)位置,為樸素Census變換序列補(bǔ)充8個(gè)變換代價(jià)位,使得變換的結(jié)果增長(zhǎng)至32位,加強(qiáng)變換的魯棒性.

        圖2 p1-p8位置圖Fig.2 p1-p8 Position map

        p1~p8每個(gè)位置的像素均與其關(guān)于(r,c)中心對(duì)稱位置的像素比較亮度值大小關(guān)系,8個(gè)像素按序計(jì)算后得到字符串CSCTStr(r,c),此步驟可以用式(1)表示:

        (1)

        式中:?表示按位連接;pi為圖2中8個(gè)位置中的第i個(gè)位置的像素亮度值;p′i為pi關(guān)于位置(r,c)的中心對(duì)稱點(diǎn)的像素亮度值;ξ(pi,p′i)為比較函數(shù);CSCTStr(r,c)為變換結(jié)果.綜上,融合的Census變換序列定義如式(2)所示:

        MergeStr(r,c)=(CensusStr(r,c)?8)+CSCTStr(r,c)

        (2)

        式中:?為左移運(yùn)算符;MergeStr(r,c)為對(duì)點(diǎn)(r,c)位置的像素做融合Census變換的結(jié)果序列.則兩個(gè)像素點(diǎn)之間的匹配代價(jià)可以表示為式(3):

        COSTCT=H(MergeStr(x),MergeStr(y))

        (3)

        式中:MergeStr(x)、MergeStr(y)為像素點(diǎn)x和y進(jìn)行融合Census變換后得到變換序列;H為計(jì)算兩個(gè)變換序列之間Hamming距離的函數(shù);COSTCT是像素x和像素y之間的匹配代價(jià)值.由于CensusStr為24位,CSCTStr為8位,故MergeStr序列的長(zhǎng)度為32位,所以對(duì)兩個(gè)MergeStr序列計(jì)算Hamming距離的結(jié)果在0~32之間,包括0和32共33個(gè)數(shù)值,用1個(gè)字節(jié)即可存儲(chǔ)該代價(jià)值.

        Census變換可以很好的處理兩張圖像整體亮度不一致的情況,并且在弱紋理區(qū)域仍然魯棒,但缺點(diǎn)在于難以處理重復(fù)紋理區(qū)域.中心對(duì)稱Census變換減少了對(duì)中心像素的依賴,可在一定程度上抑制噪聲的影響.AD代價(jià)對(duì)亮度很敏感,在弱紋理區(qū)域表現(xiàn)較差,但是對(duì)重復(fù)紋理區(qū)域效果較好.AD變換代價(jià)的計(jì)算方法如式(4)所示:

        COSTAD=|I(x)-I(y)|

        (4)

        式中:I(x)、I(y)為像素x和像素y的亮度值;| |為取絕對(duì)值運(yùn)算符;COSTAD為亮度差絕對(duì)值代價(jià)計(jì)算結(jié)果.

        基于上述分析,本文融合匹配代價(jià)是一種結(jié)合了融合Census變換與AD變換的代價(jià)計(jì)算函數(shù),可表達(dá)為式(5):

        COST=(COSTCT+COSTAD?3)?2

        (5)

        根據(jù)式(5)可知,本算法中匹配代價(jià)的取值范圍在0至32之間,僅用1個(gè)字節(jié)即可存儲(chǔ),在一定程度上節(jié)約了算法的空間開(kāi)銷.

        2.3 代價(jià)聚合

        由于初始代價(jià)的計(jì)算只考慮了錨點(diǎn)像素局部的相關(guān)信息,對(duì)噪聲非常敏感,因此僅通過(guò)代價(jià)計(jì)算得到初始代價(jià)來(lái)獲取視差圖,將難以取得理想的效果.為了獲得較好的匹配效果,半全局立體匹配算法依舊采用全局立體匹配算法的思路,即全局能量最優(yōu)的策略.定義如式(6)中所示的全局能量函數(shù):

        (6)

        式中:E(D)為視差圖D的能量函數(shù);C(p,Dp)為點(diǎn)p的匹配代價(jià)值;q為p的鄰域Np中的像素;Dp、Dq分別的p點(diǎn)、q點(diǎn)在視差圖D中的視差值;T(x)為判斷函數(shù),條件x成立為1,不成立則為0;P1、P2為懲罰項(xiàng),P1小于P2,用于相鄰像素視差相差1個(gè)像素的情況下的懲罰,P2則用于相鄰像素視差相差超過(guò)1個(gè)像素的情況下懲罰.式(6)的最優(yōu)化問(wèn)題是一個(gè)NP完全問(wèn)題,在實(shí)際中,半全局立體匹配算法采用了動(dòng)態(tài)規(guī)劃的思想逼近式(6)的最優(yōu)解.半全局立體匹配算法對(duì)代價(jià)空間上的每個(gè)元素都考慮從多個(gè)方向(4、8、16個(gè)方向,本文中固定為4)進(jìn)行聚合,然后將所有方向的聚合結(jié)果相加得到最后的匹配代價(jià)值,像素p在視差為d時(shí),沿著某條路徑r的路徑代價(jià)聚合計(jì)算方法如式(7)所示:

        (7)

        (8)

        本文采用分層迭代的匹配策略,通過(guò)上一層的視差圖限制當(dāng)前層像素的搜索范圍,即每個(gè)像素的視差搜索范圍都是不同的.所以在式(7)中,Lr(p-r,d±k)有可能不存在,若Lr(p-r,d±k)不存在,則把該項(xiàng)作為正無(wú)窮處理.當(dāng)k=-1,k=0,k=1均不存在時(shí),式(7)便簡(jiǎn)化為式(9):

        L′r(p,d)=C(p,d)+P2

        (9)

        式中:L′r(p,d)為新的聚合代價(jià).

        較小的懲罰項(xiàng)能夠讓算法更好的處理視差變化小的區(qū)域,較大的懲罰項(xiàng)能夠讓算法更好的處理視差變化大、非連續(xù)的區(qū)域,因?yàn)閳D像中灰度變化大的區(qū)域往往是圖像邊緣,其視差非連續(xù)的可能性大,所以,為了更好的處理視差非連續(xù)區(qū)域的匹配情況,P2往往根據(jù)相鄰像素的灰度差值動(dòng)態(tài)調(diào)整,如式(10)所示:

        (10)

        式中:P1_init、P2_init為初始懲罰參數(shù);p(x)為像素x的亮度值;p(x-r)為像素x在路徑r上的前一個(gè)像素的亮度值.

        2.4 視差計(jì)算

        經(jīng)過(guò)代價(jià)聚合,使用WTA算法得到每個(gè)像素較為粗糙的視差值,即對(duì)于任意像素p,遍歷像素p在三維聚合代價(jià)空間中的有效視差范圍,選出其中最小聚合代價(jià)所對(duì)應(yīng)的視差值,即為像素p較為粗糙的視差值.在視差計(jì)算部分,采用二次曲線內(nèi)插的方法得到子像素精度,對(duì)剛剛選出的粗糙視差值所對(duì)應(yīng)的代價(jià)值及其前后兩個(gè)視差代價(jià)值進(jìn)行二次曲線擬合,二次曲線底部極值點(diǎn)所對(duì)應(yīng)的視差值即確定為子像素的視差值.

        2.5 視差優(yōu)化

        經(jīng)過(guò)視差計(jì)算步驟得到的視差圖仍然存在較大的誤差,因此需要進(jìn)一步優(yōu)化視差圖以提高其精度,本文的視差優(yōu)化步驟包括左右一致性檢查、視差空洞填充以及中值濾波.

        左右一致性檢查的作用是找出視差圖中的誤匹配點(diǎn)、遮擋點(diǎn)等異常匹配點(diǎn).通常先計(jì)算得到右側(cè)視差圖,如果左右視差圖對(duì)應(yīng)像素點(diǎn)視差值的差值小于給定的閾值,則認(rèn)為該點(diǎn)的視差是正確的,反之則認(rèn)為該點(diǎn)視差是異常的,并予以剔除.計(jì)算右側(cè)視差圖常采用的辦法是交換左右圖像,重新進(jìn)行一次立體匹配,這種方法運(yùn)行效率不高.實(shí)際上,右側(cè)代價(jià)空間的每個(gè)代價(jià)值可以通過(guò)左側(cè)對(duì)應(yīng)位置像素點(diǎn)的視差情況推導(dǎo)得到,推導(dǎo)關(guān)系如式(11)所示:

        dispRight(r,c,d)=dispLeft(r,c+d,d)

        (11)

        式中:dispRight(r,c,d)為右側(cè)代價(jià)空間中坐標(biāo)為(r,c)視差為d時(shí)的代價(jià)值;dispLeft(r,c+d,d)為左側(cè)代價(jià)空間中坐標(biāo)為(r,c+d)視差為d時(shí)的代價(jià)值.但這種方法適用于固定視差搜索范圍的情況,本算法中每一層匹配的每一個(gè)視差的視差搜索范圍都不相同,所以本文采用如下策略:先根據(jù)左側(cè)視差圖全部像素的視差搜索范圍更新得到右側(cè)視差圖中每個(gè)像素位置的視差搜索范圍,并限制右側(cè)每個(gè)像素的視差搜索范圍在0至64之間,以保證不會(huì)出現(xiàn)較高的搜索時(shí)間開(kāi)銷.得到右圖每個(gè)像素的視差搜索范圍后,再用式(11)計(jì)算得到右視差圖,同時(shí)使用二次曲線擬合,得到更為精細(xì)的子像素視差,最后完成左右一致性檢查.得到當(dāng)前層視差圖后,根據(jù)當(dāng)前層視差圖估計(jì)下層待匹配像素的視差搜索范圍,開(kāi)始下一層的匹配.

        2.6 CPU平臺(tái)優(yōu)化加速

        2.6.1 分層迭代匹配策略

        本文算法采用了SURE[10]算法中提出的思想,采用從粗到精的分層迭代匹配策略,通過(guò)限制每個(gè)像素的視差搜索范圍,達(dá)到大幅度減少視差搜索時(shí)間,提升搜索效率的目的.但本文未固定層數(shù),算法根據(jù)原始待匹配圖像的寬度自動(dòng)確定層數(shù),高層的匹配結(jié)果不僅能為下層像素的搜索提供粗略的位置,而且能夠限制下層像素的搜索范圍,提高算法整體效率和結(jié)果的可靠性.在處理最上層的匹配時(shí),由于沒(méi)有更上層的視差結(jié)果提供初值,所以,將最上層的初始視差搜索范圍設(shè)置為最上層的圖像寬度.

        在視差填充過(guò)程中,采用標(biāo)志位標(biāo)記像素點(diǎn).估計(jì)下層視差范圍時(shí),根據(jù)像素點(diǎn)的標(biāo)志位進(jìn)行估計(jì):若像素點(diǎn)是由填充算法估計(jì)得到的,則將其下層的搜索范圍擴(kuò)至最大為64個(gè)像素,否則,在以其為中心的5×5局部窗口中,搜索最大視差值和最小視差值對(duì)下層搜索范圍進(jìn)行估計(jì),并限制下層像素的視差搜索范圍最大為64.

        2.6.2 多核并行策略

        本文所提算法在4核4線程的Intel(R)Core(TM)i3-9100T CPU @ 3.10GHz所支持的硬件平臺(tái)上開(kāi)發(fā),算法任務(wù)與算法數(shù)據(jù)均并行處理,在算法任務(wù)的并行實(shí)現(xiàn)中,將待處理任務(wù)按行和視差進(jìn)行分塊,4個(gè)線程并行處理.

        在算法的數(shù)據(jù)并行實(shí)現(xiàn)環(huán)節(jié),使用OpenCV中的統(tǒng)一指令集.OpenCV統(tǒng)一指令集旨在提供一個(gè)各類計(jì)算架構(gòu)的統(tǒng)一編程模型,將程序開(kāi)發(fā)與計(jì)算機(jī)底層的SIMD指令集相分離.OpenCV統(tǒng)一指令集對(duì)外提供相同的調(diào)用接口,但在程序編譯期會(huì)自動(dòng)選擇目標(biāo)硬件平臺(tái)最優(yōu)的SIMD指令.本文中具體的硬件平臺(tái)支持AVX256指令集,可支持256位的向量化運(yùn)算.

        需要注意的是,在視差計(jì)算函數(shù)的向量化設(shè)計(jì)中,主要問(wèn)題是要找到向量中的最小值及其下標(biāo),在OpenCV統(tǒng)一指令集中,沒(méi)有集成相關(guān)方法,所以使用SSE原生指令集中的_mm_minpos_epu16函數(shù),該函數(shù)只能進(jìn)行128位的向量運(yùn)算,返回向量中的最小值及其下標(biāo).所以,視差計(jì)算部分,一次可以同時(shí)進(jìn)行8個(gè)視差值的處理.

        其次,在進(jìn)行左右一致性檢查時(shí),本文算法并非交換左右圖像重新進(jìn)行匹配,而是先根據(jù)左側(cè)視差圖的視差搜索范圍推算出右側(cè)像素點(diǎn)的視差搜索范圍,然后右側(cè)全部像素點(diǎn)根據(jù)自身的搜索范圍及視差關(guān)系,在左圖的三維代價(jià)空間中確定對(duì)應(yīng)代價(jià)值,填充右圖的三維代價(jià)空間.最后在三維代價(jià)空間內(nèi)使用WTA、子像素優(yōu)化確定右圖像素點(diǎn)的視差值.

        每個(gè)像素點(diǎn)的搜索范圍使用有符號(hào)整型在內(nèi)存中連續(xù)存儲(chǔ),如:像素1的最小視差,像素1的最大視差,像素2的最小視差,像素2的最大視差…像素n的最小視差,像素n的最大視差.這樣的存儲(chǔ)方式便于使用向量進(jìn)行算法優(yōu)化,而后續(xù)的填充右圖三維代價(jià)空間步驟中,計(jì)算時(shí)所需的數(shù)據(jù)在內(nèi)存中并不連續(xù),即使強(qiáng)行進(jìn)行向量化運(yùn)算,性能也難以提升.所以,本文僅對(duì)第一步(根據(jù)左側(cè)視差圖的視差搜索范圍推算出右側(cè)像素點(diǎn)的視差搜索范圍)進(jìn)行加速.

        先將右圖視差搜索范圍中的最小值初始化為32767,最大值初始化為-32768.后續(xù)的向量化運(yùn)算只需取出左側(cè)像素的當(dāng)前視差,與右圖的最大最小范圍進(jìn)行對(duì)比,取最小值、最大值再存入右圖的視差范圍即可.由于視差范圍在內(nèi)存中是小大視差交叉存儲(chǔ),所以取出小大視差時(shí),需要解交叉取出,此步驟可以使用cv::v_load_deinterleave方法完成,該方法接受一個(gè)16位的指針p及向量a和b,該方法從p處取出16個(gè)整數(shù)值,奇數(shù)位元素依次放入向量a,偶數(shù)位元素依次放入向量b.在向量化計(jì)算完畢后,使用cv::v_store_interleave交叉存入內(nèi)存,該方法接受一個(gè)16位的指針p以及向量a和b,a和b中的元素交叉存入地址p開(kāi)始的內(nèi)存中.

        3 實(shí)驗(yàn)與分析

        本文算法在Visual Studio 2017環(huán)境下,使用C++語(yǔ)言開(kāi)發(fā),使用了OpenCV4.5.2 開(kāi)源圖像處理庫(kù),操作系統(tǒng)為Windows10×64,內(nèi)存為12GB,所使用的處理器為4核4線程的Intel(R)Core(TM)i3-9100T CPU @ 3.10GHz.

        首先對(duì)算法的改進(jìn)部分進(jìn)行消融實(shí)驗(yàn),驗(yàn)證各部分的有效性;其次,在KITTI 2012[15]和KITTI 2015[16]兩個(gè)公開(kāi)的基準(zhǔn)數(shù)據(jù)集上評(píng)估所提算法的誤匹配率,并且與一些基于SGM的立體匹配算法進(jìn)行對(duì)比,最后把不同優(yōu)化程度的本文算法在實(shí)驗(yàn)平臺(tái)上進(jìn)行運(yùn)行效率測(cè)試.

        3.1 消融實(shí)驗(yàn)

        在消融實(shí)驗(yàn)中,基準(zhǔn)算法采用Census-SGM,實(shí)驗(yàn)變量為高斯濾波預(yù)處理、代價(jià)計(jì)算方式、分層迭代匹配3個(gè)條件,為防止“視差填充”方法對(duì)上述3個(gè)條件產(chǎn)生視差圖的影響,在有視差填充和無(wú)視差填充時(shí)分別做了實(shí)驗(yàn).實(shí)驗(yàn)評(píng)價(jià)指標(biāo)采用非遮擋區(qū)域誤匹配率(Percentage of erroneous pixels in non-occluded areas,Out_Noc)和全部區(qū)域誤匹配率(Percentage of erroneous pixels in total,Out_All),誤匹配率閾值設(shè)為3Pixels,在KITTI 2012訓(xùn)練集和KITTI 2015訓(xùn)練集上分別評(píng)估,結(jié)果如表1所示.

        表1 消融實(shí)驗(yàn)數(shù)據(jù)表Table 1 Ablation experiment data table

        實(shí)驗(yàn)1、2,實(shí)驗(yàn)3、4,實(shí)驗(yàn)5、6,實(shí)驗(yàn)7、8,這4組對(duì)照,每組內(nèi)兩個(gè)實(shí)驗(yàn)只有代價(jià)計(jì)算方式不同,其他條件均相同,本文改進(jìn)的代價(jià)計(jì)算方式都比傳統(tǒng)代價(jià)計(jì)算方式的誤匹配率低.尤其在實(shí)驗(yàn)1、2中,無(wú)視差填充時(shí),在KITTI 2015上的Out_Noc最大差值為15.71個(gè)百分點(diǎn).在有視差填充時(shí),實(shí)驗(yàn)7、8的誤匹配率相差雖然不大,但使用改進(jìn)代價(jià)計(jì)算的實(shí)驗(yàn)8仍然效果較好.

        實(shí)驗(yàn)1、3,實(shí)驗(yàn)2、4,實(shí)驗(yàn)5、7,實(shí)驗(yàn)6、8,在這4組對(duì)照內(nèi),前者不使用分層迭代匹配方式,后者使用分層迭代匹配,其余條件均相同.使用了分層迭代匹配的算法精度均明顯高于直接匹配的精度.

        實(shí)驗(yàn)1、5,實(shí)驗(yàn)2、6,實(shí)驗(yàn)3、7,實(shí)驗(yàn)4、8,這4組對(duì)照,組內(nèi)兩個(gè)實(shí)驗(yàn)分別不采用和采用高斯濾波進(jìn)行預(yù)處理,有高斯濾波預(yù)處理的算法誤匹配率要明顯低于同組無(wú)高斯濾波預(yù)處理的結(jié)果,說(shuō)明在預(yù)處理步驟中,加入高斯濾波可以有效提升匹配精度.

        綜合來(lái)看,實(shí)驗(yàn)8的誤匹配率比其他實(shí)驗(yàn)均低,說(shuō)明將改進(jìn)的代價(jià)計(jì)算結(jié)合高斯濾波預(yù)處理及分層迭代的匹配方式,可以有效提高算法的匹配精度.

        3.2 對(duì)比實(shí)驗(yàn)

        在KITTI 2012和KITTI 2015數(shù)據(jù)集上與最新的一些基于SGM的立體匹配算法進(jìn)行對(duì)比,評(píng)價(jià)指標(biāo)使用Out_Noc與Out_All,誤匹配率閾值使用3Pixels,在KITTI 2012測(cè)試集和KITTI 2015測(cè)試集上的對(duì)比結(jié)果如表2、表3所示.

        表3 KITTI 2015對(duì)比實(shí)驗(yàn)數(shù)據(jù)表Table 3 KITTI 2015 comparative experiment data table

        RSSGM(Road Scene SGM)、RESGM(Resource Efficient SGM)和LRSGM(Low Resource SGM)側(cè)重于降低SGM算法的復(fù)雜度和內(nèi)存開(kāi)銷,使其能夠?qū)崟r(shí)計(jì)算.為了節(jié)省硬件資源,LRSGM提出了一個(gè)多階段的四周期分時(shí)流水線架構(gòu),采用圖像降采樣和視差跳躍策略,RESGM同樣使用降采樣和視差跳躍.同時(shí)增加了路徑加權(quán)、亞像素插值等進(jìn)一步提升了匹配精度.然而,RESGM算法在KITTI 2012非遮擋區(qū)域和全部區(qū)域的誤匹配率分別為6.66%和7.60%,分別比本文方法高1.94和1.55個(gè)百分點(diǎn).RSSGM提出了一種Census變換的變體,并在SGM中引入圖像的邊緣信息來(lái)處理真實(shí)道路場(chǎng)景的復(fù)雜光照變化,該方法在KITTI 2012非遮擋和全部區(qū)域的誤匹配率分別比本文方法高了3.99和4個(gè)百分點(diǎn).DRSGM(Dependency Relaxation SGM )擴(kuò)展了傳統(tǒng)SGM的流水線架構(gòu),通過(guò)松弛依賴約束以并行方式處理多個(gè)像素,提高了算法效率,但精度損失嚴(yán)重.CSGM4采用4路徑聚合,遞歸地執(zhí)行一維雙邊濾波來(lái)建立各路徑之間的信息交互,在兩個(gè)數(shù)據(jù)集中都獲得了較低的誤匹配率.在KITTI2012數(shù)據(jù)集的非遮擋區(qū)域和全部區(qū)域上,本文方法比CSGM4的誤匹配率分別低了0.46和0.57個(gè)百分點(diǎn).而在KITTI2015數(shù)據(jù)集上,本文方法比CSGM4的誤匹配率分別高出了0.07和0.61個(gè)百分點(diǎn).在代價(jià)計(jì)算階段,CSGM4采用了9×9窗口大小的Census變換,生成了81位的比特串,而本文使用的代價(jià)計(jì)算方法僅用了32位的比特串,代價(jià)的區(qū)分度比CSGM4低,并且空間開(kāi)銷更小.非遮擋區(qū)域的視差點(diǎn)全部由匹配算法得出,無(wú)視差填充方法的影響,在非遮擋區(qū)域,二者誤匹配率僅相差0.07個(gè)百分點(diǎn),更能說(shuō)明本文算法生成的視差圖質(zhì)量較高.

        可以看出,RSSGM、RESGM、LRSGM以及DRSGM雖然提高了SGM的效率,但以準(zhǔn)確性為代價(jià).CSGM4在KITTI 2015數(shù)據(jù)集上的誤匹配率雖然比本文算法低,但在代價(jià)計(jì)算階段采用了更大的窗口尺寸,帶來(lái)更大的空間開(kāi)銷.本文方法采用了改進(jìn)的代價(jià)計(jì)算方式以及分層迭代匹配策略,在KITTI 2012和KITTI 2015兩個(gè)公開(kāi)的基準(zhǔn)數(shù)據(jù)集上都獲得了較理想的誤匹配率.圖3展示了本文方法在KITTI 2015訓(xùn)練集上的部分視差圖和相應(yīng)的誤差圖,從上至下依次為原圖(左)、本文算法生成的視差圖和誤差圖,從圖3(a)~圖3(d)依次為KITTI 2015訓(xùn)練集中編號(hào)71、128、142、171的圖像.

        本文還在KITTI 2015訓(xùn)練集上和其他基于SGM的改進(jìn)算法進(jìn)行了比較,評(píng)價(jià)指標(biāo)依然采用Out_Noc與Out_All,即視差圖在非遮擋區(qū)域誤匹配率和全部區(qū)域誤匹配率,對(duì)比結(jié)果如表4所示.

        表4 KITTI 2015訓(xùn)練集對(duì)比數(shù)據(jù)表Table 4 KITTI 2015 training set comparison data table

        ReS2tAC-CUDA方法基于GPU實(shí)現(xiàn),有較高的并行度,采用窗口大小為9×7的Census變換結(jié)合漢明距離作為初始代價(jià),但在全部區(qū)域上的誤匹配率比本文高1.5個(gè)百分點(diǎn).ROSGM(Region Optimized SGM,ROSGM)采用優(yōu)化策略,在局部范圍內(nèi)搜索最小代價(jià)作為代表,僅對(duì)這些最小代價(jià)進(jìn)行2路徑的聚合,運(yùn)行效率大大提高,但在最終視差圖的誤匹配率上比本文高了1.15和1.07個(gè)百分點(diǎn).

        3.3 運(yùn)行效率驗(yàn)證

        根據(jù)優(yōu)化程度,分為未經(jīng)優(yōu)化的本文算法、僅使用并行優(yōu)化的本文算法以及完全加速的本文算法(并行+分層)3種進(jìn)行算法效率的驗(yàn)證.實(shí)驗(yàn)使用Middlebury 2014立體匹配數(shù)據(jù)集中的全尺寸Teddy圖像進(jìn)行算法效率評(píng)估,該圖片的分辨率為1800×1500,最大視差為256個(gè)像素.在實(shí)驗(yàn)中,3種算法除效率優(yōu)化程度不同以外,其他參數(shù)均保持一致;視差圖后處理采用左右一致性檢查、小連通域剔除以及3×3中值濾波;最大視差搜索范圍分別設(shè)置為64、128、256,以驗(yàn)證算法在不同視差下的運(yùn)行效率.

        實(shí)驗(yàn)中計(jì)時(shí)方式為:算法完成100次匹配操作,計(jì)算平均耗時(shí).為了得到較為準(zhǔn)確的對(duì)比結(jié)果,實(shí)驗(yàn)中僅統(tǒng)計(jì)各算法在匹配階段的時(shí)間消耗,如內(nèi)存空間的申請(qǐng)、釋放以及對(duì)象初始化等時(shí)間消耗均未進(jìn)行統(tǒng)計(jì).時(shí)間、空間效率測(cè)試結(jié)果如表5、圖4和圖5所示.

        表5 效率實(shí)驗(yàn)數(shù)據(jù)表Table 5 Efficiency test data table

        圖4 時(shí)間開(kāi)銷Fig.4 Running time

        圖5 空間開(kāi)銷Fig. 5 Memory requirement

        需要說(shuō)明的是,完全加速的本文算法的視差搜索范圍會(huì)根據(jù)輸入圖像尺寸自動(dòng)調(diào)整,所以雖然指定了3種視差搜索范圍,但實(shí)際匹配時(shí)不會(huì)使用.

        從表5可以看出,在搜索范圍為64時(shí),完全加速的本文算法較未經(jīng)優(yōu)化的本文算法,效率提升6.5倍左右,在搜索范圍為128時(shí),效率提升12.2倍左右,在搜索范圍為256時(shí),效率提升23.6倍左右,提升的倍數(shù)與視差范圍有關(guān),理論上,視差搜索范圍越大,本文算法的優(yōu)勢(shì)越明顯.

        表5中,僅使用并行優(yōu)化的本文算法在視差為64時(shí),時(shí)間效率比完全加速時(shí)高,但其匹配結(jié)果是不完整的.原因在于,僅使用并行優(yōu)化時(shí),其搜索范圍最大只有64,而測(cè)試圖片Teddy的最大搜索范圍是256,所以算法沒(méi)有對(duì)視差大于64的區(qū)域進(jìn)行處理.在視差64、128與256這3種情況下得到的視差圖如圖6所示.

        圖6 3種視差得到的視差圖Fig.6 Disparity map obtained by three kinds of disparity

        從空間開(kāi)銷來(lái)看,未經(jīng)優(yōu)化的算法與僅使用并行優(yōu)化的算法,空間開(kāi)銷相同,與視差范圍成正相關(guān),完全優(yōu)化(并行+分層)的本文算法由于與視差范圍無(wú)關(guān),僅與圖像寬度有關(guān),所以內(nèi)存開(kāi)銷無(wú)變化,并且明顯小于其他兩種算法.

        4 結(jié) 論

        利用融合的代價(jià)作為立體匹配的初始代價(jià),提高了代價(jià)的區(qū)分能力;在預(yù)處理階段使用高斯濾波處理待匹配圖像,可有效提高后續(xù)計(jì)算準(zhǔn)確度;采用分層迭代匹配、多核并行及AVX256指令集的計(jì)算策略,可以有效提高邊緣CPU設(shè)備執(zhí)行立體匹配算法的效率,并且可以在一定程度上降低內(nèi)存開(kāi)銷.實(shí)驗(yàn)結(jié)果表明,本文所提的匹配算法在KITTI 2012和KITTI 2015基準(zhǔn)數(shù)據(jù)集上的誤匹配率可以達(dá)到4.72%和6.04%.使用Middlebury數(shù)據(jù)集中的全尺寸圖像測(cè)試效率,在256視差條件下,所提算法在完全優(yōu)化時(shí)的運(yùn)行效率是未優(yōu)化時(shí)算的23.6倍,并且在視差圖的誤匹配率方面可以達(dá)到主流經(jīng)典算法的水平.這對(duì)立體匹配算法在邊緣CPU設(shè)備上的應(yīng)用具有現(xiàn)實(shí)意義.

        猜你喜歡
        立體匹配視差代價(jià)
        基于自適應(yīng)窗的立體相機(jī)視差圖優(yōu)化方法研究
        基于梯度域引導(dǎo)濾波的視差精煉迭代算法
        愛(ài)的代價(jià)
        海峽姐妹(2017年12期)2018-01-31 02:12:22
        影像立體匹配中的凸優(yōu)化理論研究
        基于互補(bǔ)不變特征的傾斜影像高精度立體匹配
        代價(jià)
        基于分割樹(shù)的視差圖修復(fù)算法研究
        改進(jìn)導(dǎo)向?yàn)V波器立體匹配算法
        立體視差對(duì)瞳孔直徑影響的研究
        成熟的代價(jià)
        精品亚洲麻豆1区2区3区| 亚洲综合网站精品一区二区| 国产日韩久久久久69影院| 日本高清免费播放一区二区| 高潮精品熟妇一区二区三区| 职场出轨的人妻中文字幕| 国产一精品一av一免费| 妓院一钑片免看黄大片| 日本一区二区三区中文字幕最新| 黄色国产一区在线观看| 亚洲免费一区二区三区四区| 亚洲人成自拍网站在线观看| 六月婷婷久香在线视频| 国产精品久久1024| 日本一区二区三区的免费视频观看 | 国产精品亚洲精品一区二区| 国产精品久免费的黄网站 | 巨臀精品无码AV在线播放| 五月婷婷丁香视频在线观看| 欧美精品无码一区二区三区| 日韩欧美人妻一区二区三区| 国产成人免费a在线视频| 中文字幕一区二区三区.| 日本不卡视频一区二区三区| 亚洲爆乳精品无码一区二区三区| 日韩精品一区二区三区免费视频| 99久久精品国产自在首页| 亚洲综合新区一区二区| 欧美xxxxx高潮喷水| 国产成人aaaaa级毛片| 精品99在线黑丝袜| 亚洲成av人片在久久性色av| 亚洲色图视频在线免费看| 久久精品国产免费观看| 欧美成人形色生活片| 在线观看黄片在线播放视频 | 男女激情床上视频网站| 日韩中文字幕不卡在线| 艳z门照片无码av| 一道久在线无码加勒比| 久久99热精品免费观看麻豆|