Abstract
本文介紹了一種基于GPU的立體匹配系統(tǒng),其精度和速度都很好。使用AD-Census度量初始化匹配成本量,在動(dòng)態(tài)的基于交叉的區(qū)域中聚合,并在掃描線優(yōu)化框架中更新以產(chǎn)生差異結(jié)果。 在多步驟細(xì)化過(guò)程中有效地處理視差結(jié)果中的各種誤差。系統(tǒng)的每個(gè)階段都設(shè)計(jì)有并行性考慮因素,以便可以使用CUDA實(shí)現(xiàn)加速計(jì)算。 實(shí)驗(yàn)結(jié)果證明了系統(tǒng)的準(zhǔn)確性和效率:目前它是Middlebury基準(zhǔn)測(cè)試中表現(xiàn)最好的,并且在0.1秒內(nèi)在GPU上實(shí)現(xiàn)了結(jié)果。我們還提供了有關(guān)立體視頻序列的額外示例,并討論了系統(tǒng)的局限性。
1.Introduction
立體匹配是計(jì)算機(jī)視覺(jué)中研究最廣泛的問(wèn)題之一[11]。立體匹配算法設(shè)計(jì)中的兩個(gè)主要問(wèn)題是匹配精度和處理效率。盡管每年都會(huì)引入許多算法,但這兩個(gè)問(wèn)題在報(bào)告的結(jié)果中往往是矛盾的:準(zhǔn)確的立體方法通常耗費(fèi)時(shí)間[6,17,20],而基于GPU的方法實(shí)現(xiàn)了高處理速度和相對(duì)較低的視差精度[ 10,18,24]。據(jù)我們所知,大多數(shù)前10個(gè)Middlebury算法處理384×288圖像對(duì)至少需要10秒,前20名中僅有的兩種基于GPU的方法是CostFilter [9]和PlaneFitBP [19],具有接近實(shí)時(shí)的性能。
這種矛盾背后的原因很簡(jiǎn)單:精確立體算法采用的一些關(guān)鍵技術(shù)不適合并行GPU實(shí)現(xiàn)。仔細(xì)分析領(lǐng)先的Middlebury算法[6,17,20]表明這些算法在匹配過(guò)程中有幾種常用技術(shù):他們使用大型支持窗口來(lái)實(shí)現(xiàn)穩(wěn)健的成本聚合[5,16,21];他們將差異計(jì)算步驟制定為能量最小化問(wèn)題,并用慢收斂?jī)?yōu)化器解決[14]; 他們廣泛使用分割圖像區(qū)域作為匹配單元[17],表面約束[6,20]或后處理補(bǔ)丁[2]。這些技術(shù)以相當(dāng)大的計(jì)算成本為代價(jià)顯著提高了匹配質(zhì)量。然而,直接將這些技術(shù)移植到GPU或其他多核平臺(tái)是棘手和麻煩的[4,7,18,19]:大型聚合窗口需要對(duì)每個(gè)像素進(jìn)行大量迭代;一些優(yōu)化,分段和后處理方法需要復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和順序處理。因此,簡(jiǎn)單的基于相關(guān)的技術(shù)在GPU和嵌入式立體聲系統(tǒng)中更受歡迎。設(shè)計(jì)具有精確度和效率之間良好平衡的astereo匹配系統(tǒng)仍然是一個(gè)具有挑戰(zhàn)性的問(wèn)題。
在本文中,我們實(shí)現(xiàn)了接近實(shí)時(shí)性能的精確立體匹配系統(tǒng)。目前(2011年8月),我們的系統(tǒng)在Middlebury基準(zhǔn)測(cè)試中表現(xiàn)最佳的系統(tǒng)。 簡(jiǎn)而言之,我們將幾種技術(shù)集成到一個(gè)有效的立體框架中。 這些技術(shù)保證了高匹配質(zhì)量,而不涉及昂貴的聚合或分段區(qū)域。此外,它們顯示出適度的并行性,使得整個(gè)系統(tǒng)可以映射到GPU上以進(jìn)行計(jì)算加速。 我們系統(tǒng)的關(guān)鍵技術(shù)包括:
AD-Census度量有效地結(jié)合了絕對(duì)差異(AD)測(cè)量和Census變換。和具有強(qiáng)大聚合方法的常見(jiàn)單獨(dú)度量相比,此度量提供更準(zhǔn)確的匹配結(jié)果。最近的立體算法采用了類似的措施[13]。
改進(jìn)基于交叉的區(qū)域來(lái)實(shí)現(xiàn)有效的成本聚合。Zhang等人首先提出了基于交叉骨架的支撐區(qū)域。 [23],允許快速聚合中等級(jí)別的差異結(jié)果。我們通過(guò)更準(zhǔn)確的交叉構(gòu)建和成本聚合策略來(lái)增強(qiáng)此技術(shù)。
基于Hirschmuller的半全局匹配器[2]的掃描線優(yōu)化器,來(lái)減小的路徑方向。
一種系統(tǒng)的細(xì)化過(guò)程,利用迭代區(qū)域投票,插值,深度不連續(xù)調(diào)整和子像素增強(qiáng)來(lái)處理各種視差誤差。這種多步驟過(guò)程證明對(duì)改善差異結(jié)果非常有效。
在GPU與CUDA系統(tǒng)上可以高效的實(shí)現(xiàn)。
2. Algorithm
?? ?遵循Scharstein和Szeliski的分類法[11],我們的系統(tǒng)包括四個(gè)步驟:成本初始化,成本聚合,差異計(jì)算和細(xì)化。我們提供了這些單獨(dú)步驟的詳細(xì)說(shuō)明。
2.1. AD-Census?成本初始化
? 此步驟計(jì)算初始匹配成本量。由于可以在每個(gè)像素和每個(gè)視差水平同時(shí)執(zhí)行計(jì)算,因此該步驟本質(zhì)上是并行的。我們主要關(guān)注的是制定具有高匹配質(zhì)量的成本措施。常見(jiàn)的成本指標(biāo)包括絕對(duì)差異(AD),Birchfield和Tomasi's??sampling-insensitive??measure(BT),基于梯度的測(cè)量和非參數(shù)變換,如Census[22]。在Hirschmuller和Scharstein [3]最近的評(píng)估中,?Census顯示了本地和全球立體匹配方法的最佳總體結(jié)果。盡管將成本衡量標(biāo)準(zhǔn)相結(jié)合以提高準(zhǔn)確性的想法似乎很簡(jiǎn)單,但相對(duì)較少的工作探索了這一主題??藙谒沟热?。[6]提出線性組合SAD和基于梯度的測(cè)量用于成本計(jì)算。 他們的差異結(jié)果令人印象深刻,但這種組合的好處并沒(méi)有明確闡述。
???Census將局部圖像結(jié)構(gòu)編碼為像素亮度的相對(duì)排序,而不是亮度值本身,因此容忍了輻射測(cè)量變化和圖像噪聲帶來(lái)的異常值。然而,該資產(chǎn)還可以在具有重復(fù)或類似局部結(jié)構(gòu)的圖像區(qū)域中引入匹配的模糊。 為了解決這個(gè)問(wèn)題,應(yīng)該在措施中加入更詳細(xì)的信息。 對(duì)于具有相似局部結(jié)構(gòu)的圖像區(qū)域,顏色(或亮度)信息可能有助于減輕匹配的模糊性;而對(duì)于具有相似顏色分布的區(qū)域,窗口上的Census變換比基于像素的亮度差異更穩(wěn)健。 這種觀察激發(fā)了綜合措施。
?? ?給定一個(gè)像素P=(x,y)在左邊的圖像中和差異水平d,兩個(gè)單獨(dú)的成本值Ccensus(P,d)和(P,d)首先計(jì)算。對(duì)于Ccensus我們使用了9*7的窗口和64位字符串去編碼每個(gè)像素。Ccensus(P,d)定義為代表像素p的兩個(gè)字符串的漢明距離及其對(duì)應(yīng)關(guān)系pd=(x-d,y)在右圖中[22]。定義為RGB通道中p和pd的平均亮度差:
然后,AD-Census成本值C(p,d)計(jì)算如下:
其中是變量的魯棒函數(shù)c:
該函數(shù)的目的有兩個(gè):首先,它將不同的成本度量映射到范圍[0,1],使得等式(2)不會(huì)受到其中一個(gè)度量的嚴(yán)重偏差; 第二,它允許用參數(shù)容易地控制異常值的影響。
?? ?為了驗(yàn)證組合的效果,圖1中顯示了具有AD,Census和AD-Census的Middlebury數(shù)據(jù)集的一些特寫差異結(jié)果。采用基于交叉的聚合。 人口普查在具有重復(fù)局部結(jié)構(gòu)的區(qū)域中產(chǎn)生錯(cuò)誤匹配,而基于像素的AD不能處理大的無(wú)紋理區(qū)域。 綜合AD-Census措施成功地減少了由個(gè)別措施引起的錯(cuò)誤。?對(duì)于定量比較,AD-Census分別將人口普查的非遮擋誤差百分比降低1.96%(Tsukuba),0.4%(Venus),1.36%(Teddy)和1.52%(Cones)。 而這種改進(jìn)來(lái)自于額外的計(jì)算成本。
圖1. Tsukuba和Teddy圖像對(duì)的一些特寫差異結(jié)果,使用AD,Census,AD-Census成本度量和基于交叉的聚合計(jì)算。 AD-Census測(cè)量為重復(fù)結(jié)構(gòu)和無(wú)紋理區(qū)域產(chǎn)生適當(dāng)?shù)囊暡罱Y(jié)果。
2.2 基于交叉的成本匯總
?? ?此步驟將每個(gè)像素的匹配成本聚合在支持區(qū)域上,以減少初始成本量中的匹配模糊度和噪聲。 對(duì)聚合的簡(jiǎn)單但有效的假設(shè)是具有相似顏色的相鄰像素應(yīng)具有相似的差異。 這種假設(shè)已被最近的聚合方法所采用,例如段支持[16],自適應(yīng)權(quán)重[21]和測(cè)地線權(quán)重[5]。如引言中所述,這些聚合方法需要在每個(gè)像素上進(jìn)行分段操作或昂貴的迭代,這對(duì)于高效的GPU實(shí)現(xiàn)是禁止的。 盡管已經(jīng)針對(duì)GPU系統(tǒng)提出了具有1D聚合[13,18]和顏色平均[4,19]的簡(jiǎn)化自適應(yīng)權(quán)重技術(shù),但是聚合準(zhǔn)確性通常退化。 最近,Rhemann等。 [9]將聚合步驟制定為成本過(guò)濾問(wèn)題。 通過(guò)使用引導(dǎo)濾波器平滑每個(gè)成本切片[1],可以實(shí)現(xiàn)良好的視差結(jié)果。
?? ?我們專注于Zhang等人最近提出的基于交叉的聚合方法。[23].?我們表明,通過(guò)改進(jìn)支持區(qū)域構(gòu)建和聚合策略,該方法可以產(chǎn)生與自適應(yīng)權(quán)重方法相當(dāng)?shù)木酆辖Y(jié)果,并且計(jì)算時(shí)間更短。相對(duì)于自適應(yīng)加權(quán)方法的另一個(gè)優(yōu)點(diǎn)是為每個(gè)像素構(gòu)造顯式支持區(qū)域,其可以在稍后的后處理步驟中使用。
圖2.基于交叉的聚合:在第一步中,為每個(gè)像素構(gòu)建一個(gè)直立的交叉。像素p的支撐區(qū)域通過(guò)合并位于像素p的垂直臂上的像素(例如,q)的水平臂來(lái)建模。 在第二步中,支撐區(qū)域中的成本沿水平和垂直方向在兩次通過(guò)內(nèi)聚合。
基于交叉的聚合通過(guò)兩個(gè)步驟進(jìn)行,如圖2所示。在第一步(圖2(a))中,為每個(gè)像素構(gòu)造具有四個(gè)臂的直立十字架。給定像素p,當(dāng)它找到違反以下兩個(gè)規(guī)則之一的端點(diǎn)像素pl時(shí),其左臂會(huì)停止:
是pl和p之間的色差,是預(yù)設(shè)的閾值。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??色差表示為
?? ?? ? 2.?
是pl和p之間的空間距離,L是預(yù)設(shè)的最大長(zhǎng)度L(以像素為單位測(cè)量)??臻g距離是
定義為?
?? ?這兩個(gè)規(guī)則對(duì)參數(shù)和L的顏色相似性和臂長(zhǎng)構(gòu)成限制.p的右臂,上臂和下臂以類似的方式構(gòu)建。在交叉構(gòu)造步驟之后,通過(guò)合并位于p的垂直臂(例如,q)上的所有像素的水平臂來(lái)對(duì)像素p的支撐區(qū)域進(jìn)行建模。 在第二步(圖2(b))中,計(jì)算所有像素的聚合成本兩遍內(nèi):第一次通過(guò)橫向總結(jié)匹配成本并存儲(chǔ)中間結(jié)果;第二遍然后垂直聚合中間結(jié)果以獲得最終成本??梢允褂?D積分圖像有效地計(jì)算兩個(gè)通道。 為了獲得穩(wěn)定的成本量,聚合步驟通常運(yùn)行2到4次迭代,這可以是被視為各向異性擴(kuò)散過(guò)程。 關(guān)于該方法的更多細(xì)節(jié)可以在[23]中找到。
?? ?基于交叉的聚合的準(zhǔn)確性與參數(shù)L和密切相關(guān),因?yàn)樗鼈冇脴?gòu)造規(guī)則控制支撐區(qū)域的形狀。大的無(wú)紋理區(qū)域可能需要大的L和值以包括足夠的強(qiáng)度變化,但是簡(jiǎn)單地增加所有像素的這些參數(shù)將在暗區(qū)域或深度不連續(xù)處引入更多的誤差。因此,我們建議使用以下增強(qiáng)規(guī)則構(gòu)建每個(gè)像素的交叉(我們?nèi)匀皇褂孟袼豴的左臂和端點(diǎn)像素pl作為示例)
?? ?規(guī)則1不僅限制了pl和p之間的色差,而且還限制了pl和它的前任p1 +(1,0)在同一臂上的色差,使得臂不會(huì)越過(guò)圖像中的邊緣。規(guī)則2和3允許更靈活地控制臂長(zhǎng)。 我們使用較大的L1值來(lái)為無(wú)紋理區(qū)域包含足夠的像素。但是當(dāng)臂長(zhǎng)超過(guò)預(yù)設(shè)值L2(L2 <L1)時(shí),對(duì)于D(pl,p)使用更嚴(yán)格的閾值2(2 <1)以確保臂僅在具有非常相似顏色的區(qū)域中延伸圖案。
?? ?對(duì)于成本匯總步驟,我們還提出了不同的策略。我們?nèi)匀粓?zhí)行此步驟4次迭代以獲得穩(wěn)定的成本值。對(duì)于迭代1和3,我們遵循原始方法:成本首先是水平匯總,然后是縱向匯總。但是對(duì)于迭代2和4,我們切換聚合方向:成本首先垂直匯總,然后水平匯總。對(duì)于每個(gè)像素,這種新的聚合順序?qū)е禄诮徊娴闹С謪^(qū)域與原始方法中的不同。通過(guò)改變聚合方向,在迭代過(guò)程中使用兩個(gè)支持區(qū)域。我們發(fā)現(xiàn)這種聚合策略可以顯著減少深度不連續(xù)處的誤差。
?? ?通過(guò)原始的基于交叉的聚合方法和我們的改進(jìn)方法計(jì)算的Tsukuba視差結(jié)果如圖3所示,這表明增強(qiáng)的交叉構(gòu)造規(guī)則和聚合策略可以在大的無(wú)紋理區(qū)域和近深度不連續(xù)處產(chǎn)生更準(zhǔn)確的結(jié)果。
????使用三種聚合方法(自適應(yīng)權(quán)重,原始的基于交叉的聚合方法和我們的增強(qiáng)方法)評(píng)估WTA差異結(jié)果。 對(duì)于自適應(yīng)權(quán)重,參數(shù)遵循[21]中的設(shè)置。對(duì)于原始的基于交叉的方法,L = 17,T = 20并且使用4次迭代。圖4給出了四個(gè)數(shù)據(jù)集(非遮擋,不連續(xù)和所有區(qū)域)的平均誤差百分比。我們的增強(qiáng)方法可以在各種區(qū)域產(chǎn)生最準(zhǔn)確的結(jié)果,特別是在深度不連續(xù)處。我們?cè)谧赃m應(yīng)加權(quán)方法上的實(shí)現(xiàn)通常需要超過(guò)1分鐘的CPU才能產(chǎn)生聚合體積,而我們的方法只需要幾秒鐘。
?? ?圖3.原始的基于交叉的聚合方法和我們?cè)赥sukuba圖像對(duì)上的改進(jìn)方法的比較。我們的聚合方法可以更好地處理大的無(wú)紋理區(qū)域和深度不連續(xù)性
2.3? 掃描線優(yōu)化
?? ?該步驟接收聚合的匹配成本量(表示為C1)并計(jì)算中間視差結(jié)果。為了進(jìn)一步減輕匹配的模糊性,應(yīng)該采用具有平滑約束和適度并行性的優(yōu)化器。我們采用基于Hirschmuller的半全局匹配方法的多方向掃描線優(yōu)化器[2].
?? ?四個(gè)掃描線優(yōu)化過(guò)程獨(dú)立執(zhí)行:2沿水平方向,2沿垂直方向。給定掃描線方向r,路徑成本
?? ?圖4.自適應(yīng)權(quán)重的各個(gè)區(qū)域的平均差異誤差百分比,原始的基于交叉的聚合方法和我們的增強(qiáng)方法。
在像素p和視差d處更新如下:
其中p-r是沿相同方向的前一個(gè)像素,P1,P2(P1≤P2)是用于懲罰相鄰像素之間的視差變化的兩個(gè)參數(shù)。實(shí)際上,P1,P2是根據(jù)左圖中的色差D1 = Dc(p,p-r)和右圖中的D2 = Dc(pd,pd-r)對(duì)稱設(shè)置的[8]:
?? ?其中
是常數(shù),
是色差的閾值。像素p和視差d的最終成本C2(p,d)是通過(guò)平均來(lái)自所有四個(gè)方向的路徑成本獲得的:
????選擇具有最小C2值的視差作為像素p的中間結(jié)果。
2.4? 多步差異細(xì)化??
? ??由前三個(gè)步驟計(jì)算的兩個(gè)圖像(表示為DL和DR)的視差結(jié)果包含遮擋區(qū)域和深度不連續(xù)處的異常值。 在檢測(cè)到這些異常值后,最簡(jiǎn)單的細(xì)化方法是用最接近的可靠差異填充它們[11],這只適用于小的遮擋區(qū)域。?相反,我們?cè)诙嗖襟E過(guò)程中系統(tǒng)地處理差異錯(cuò)誤。每個(gè)步驟都試圖消除由各種因素引起的錯(cuò)誤
?? ?異常值檢測(cè):首先使用左右一致性檢查檢測(cè)DL中的異常值:如果
不成立,則像素p是異常值。異常值進(jìn)一步分為遮擋點(diǎn)和不匹配點(diǎn),因?yàn)樗鼈冃枰煌牟逯挡呗?。我們遵循Hirschmuller [2]提出的方法:對(duì)于差異性
的異常值DR,檢查其核線和d的交點(diǎn)。 如果未檢測(cè)到交叉點(diǎn),則將p標(biāo)記為“遮擋”,否則標(biāo)記為“不匹配”。
?? ?迭代區(qū)域投票:檢測(cè)到的異常值應(yīng)填充可靠的相鄰差異。最精確的立體算法采用分段區(qū)域進(jìn)行異常值處理[2,20],這些區(qū)域不適合GPU實(shí)現(xiàn)。我們使用構(gòu)建的交叉基礎(chǔ)區(qū)域和強(qiáng)大的投票方案處理這些異常值。
?? ?對(duì)于異常像素p,收集其基于交叉的支持區(qū)域中的所有可靠差異以構(gòu)建具有個(gè)區(qū)間的直方圖。具有最高bin值(大多數(shù)投票)的差異表示為。并且可靠像素的總數(shù)表示為。如果在支持區(qū)域中找到足夠可靠的像素和投票,則用更新p的差異:
其中是兩個(gè)閾值。
?? ?為了處理盡可能多的異常值,投票過(guò)程運(yùn)行5次迭代。填充的異常值被標(biāo)記為“可靠”像素并且在下一次迭代中使用,使得有效視差信息可以逐漸傳播到遮擋區(qū)域。適當(dāng)?shù)牟逯担菏S嗟漠惓V涤貌逯挡呗蕴畛洌圆煌绞教幚碚趽鹾筒黄ヅ潼c(diǎn)。對(duì)于異常值p,我們?cè)?6個(gè)不同方向上找到最近的可靠像素。如果p是遮擋點(diǎn),則選擇具有最低視差值的像素用于插值,因?yàn)閜很可能來(lái)自背景; 否則選擇具有最相似顏色的像素進(jìn)行插值。通過(guò)區(qū)域投票和插值,大多數(shù)異常值都可以從中有效地刪除差異結(jié)果,如圖5所示。
?? ?深度不連續(xù)性調(diào)整:在該步驟中,利用相鄰像素信息進(jìn)一步細(xì)化深度不連續(xù)性周圍的差異。我們首先檢測(cè)視差圖像中的所有邊緣。對(duì)于視差邊緣上的每個(gè)像素p,收集來(lái)自邊緣兩側(cè)的兩個(gè)像素p1,p2。如果兩個(gè)像素中的一個(gè)具有比更小的匹配成本,則被或代替。這種簡(jiǎn)單的方法有助于減少不連續(xù)性周圍的小誤差,如圖6中的誤差圖所示。
圖5. Teddy圖像對(duì)的視差錯(cuò)誤圖。錯(cuò)誤標(biāo)記為灰色(遮擋)和黑色(非遮擋)。異常值處理過(guò)程中的差異誤差顯著減少。
圖6.調(diào)整步驟后,深度不連續(xù)處的誤差減小。
?? ?子像素增強(qiáng):最后,執(zhí)行基于二次多項(xiàng)式插值的子像素增強(qiáng)處理,以減少由離散視差水平引起的誤差[20]。對(duì)于像素p,其內(nèi)插視差計(jì)算如下:
其中
,通過(guò)用3×3中值濾波器平滑內(nèi)插視差結(jié)果來(lái)獲得最終視差結(jié)果
?? ?為了驗(yàn)證細(xì)化過(guò)程的有效性,執(zhí)行每個(gè)細(xì)化步驟后各個(gè)區(qū)域的平均誤差百分比如圖7所示。四個(gè)細(xì)化步驟成功地將所有區(qū)域的誤差百分比降低了3.8%,但它們的貢獻(xiàn)因不同而不同 區(qū)域:對(duì)于非遮擋區(qū)域,投票和子像素增強(qiáng)對(duì)于處理不匹配異常值最有效; 對(duì)于不連續(xù)區(qū)域,通過(guò)投票,不連續(xù)性調(diào)整和子像素增強(qiáng)顯著減少誤差; 通過(guò)投票和插值去除所有區(qū)域中的大多數(shù)異常值,并且通過(guò)調(diào)整和子像素增強(qiáng)來(lái)減少由于不連續(xù)性和量化引起的小誤差。 這些步驟的系統(tǒng)集成保證了強(qiáng)大的后處理方法。
3. CUDA Implementation
? ??計(jì)算統(tǒng)一設(shè)備架構(gòu)(CUDA)是用于NVIDIA圖形硬件上的并行計(jì)算任務(wù)的編程接口。計(jì)算任務(wù)被編碼為內(nèi)核函數(shù),該函數(shù)同時(shí)執(zhí)行多線程的數(shù)據(jù)元素。線程的分配由兩個(gè)分層概念控制:網(wǎng)格和塊。創(chuàng)建具有多個(gè)塊的網(wǎng)格,每個(gè)塊由多個(gè)線程組成。CUDA實(shí)現(xiàn)的性能與線程分配和內(nèi)存訪問(wèn)密切相關(guān),需要在各種計(jì)算任務(wù)和硬件平臺(tái)中仔細(xì)調(diào)整。給定圖像分辨率和視差范圍D,我們簡(jiǎn)要描述了算法的實(shí)現(xiàn)問(wèn)題。
?? ?成本初始化:此步驟與W_H線程并行化。線程被組織成2D網(wǎng)格,塊大小設(shè)置為32×32。每個(gè)線程負(fù)責(zé)計(jì)算給定視差處的像素的成本值。對(duì)于人口普查變換,每個(gè)像素都需要一個(gè)方形窗口,這需要將更多數(shù)據(jù)加載到共享存儲(chǔ)器中以便快速訪問(wèn)。
?? ?成本聚合:為聚合過(guò)程的兩個(gè)步驟創(chuàng)建具有W_H線程的網(wǎng)格。對(duì)于交叉構(gòu)造,我們將塊大小設(shè)置為W或H,這樣每個(gè)塊都可以有效地處理掃描線。對(duì)于成本聚合,我們遵循Zhang等人提出的方法。 [24],其作用類似于第一步。 每個(gè)線程在兩次傳遞中水平和垂直地匯總像素的成本值。 在兩個(gè)步驟中都考慮使用共享內(nèi)存進(jìn)行數(shù)據(jù)重用。
?? ?掃描線優(yōu)化:該步驟與前面的步驟不同,因?yàn)樵撨^(guò)程在掃描線方向上是順序的并且在正交方向上是平行的。根據(jù)掃描線方向創(chuàng)建具有W_D或H_D線程的網(wǎng)格。為每個(gè)掃描線分配D個(gè)線程,使得可以同時(shí)計(jì)算所有視差級(jí)別上的路徑成本。需要D線程之間的同步以找到相同路徑上的前一像素的最小成本。
?? ?視差細(xì)化:細(xì)化過(guò)程的每個(gè)步驟都適用于中間視差圖像,可以使用_H線程有效地處理。
4. Experimental Results
?? ?我們用Middlebury基準(zhǔn)測(cè)試我們的系統(tǒng)[12]。該測(cè)試平臺(tái)是一臺(tái)配備Core2Duo 2.20GHz CPU和NVIDIA GeForce GTX 480顯卡的PC。表1中給出了參數(shù),這些參數(shù)對(duì)于所有數(shù)據(jù)集保持不變。差異結(jié)果如圖8所示。我們的系統(tǒng)在Middlebury評(píng)估中排名第一,如表2所示。我們的算法在所有數(shù)據(jù)集上都表現(xiàn)良好,并且在金星圖像對(duì)上給出最佳結(jié)果,在非遮擋區(qū)域和近深度區(qū)域都具有最小誤差不連續(xù)性。與諸如CoopRegion [17]之類的算法相比,Tsukuba圖像對(duì)的結(jié)果并不具有競(jìng)爭(zhēng)力。Tsukuba圖像對(duì)包含燈和桌子附近的一些非常暗和嘈雜的區(qū)域,這導(dǎo)致不正確的基于交叉的支撐區(qū)域用于聚合和細(xì)化。
?? ?我們?cè)贑PU和圖形硬件上運(yùn)行算法。對(duì)于四個(gè)數(shù)據(jù)集(Tsukuba,Venus,Teddy和Cones),CPU實(shí)現(xiàn)分別需要2.5秒,4.5秒,15秒和15秒,而GPU實(shí)現(xiàn)分別僅需要0.016秒,0.032秒,0.095秒和0.094秒。GPU友好的系統(tǒng)設(shè)計(jì)在處理速度方面帶來(lái)了令人印象深刻的140倍速度。四個(gè)計(jì)算步驟的GPU運(yùn)行時(shí)間的平均比例分別為1%,70%,28%和1%。迭代成本聚合步驟和掃描線優(yōu)化過(guò)程主導(dǎo)運(yùn)行時(shí)間。?
最后,我們?cè)趦蓚€(gè)立體視頻序列上測(cè)試我們的系統(tǒng):來(lái)自HHI數(shù)據(jù)庫(kù)的“書籍到達(dá)”場(chǎng)景(512×384,60個(gè)差異級(jí)別)和來(lái)自的“Ilkay”場(chǎng)景Microsoft i2i數(shù)據(jù)庫(kù)(320×240,50個(gè)差異級(jí)別)。為了測(cè)試系統(tǒng)的泛化能力,我們使用與Middlebury數(shù)據(jù)集相同的參數(shù)集,并且在計(jì)算過(guò)程中不使用時(shí)間相干性信息。這兩個(gè)示例的快照如圖9所示,運(yùn)行速度約為10FPS的視頻演示可在http://xingmei.net/resource/video/adcensus.avi上找到。我們的系統(tǒng)在這些例子上表現(xiàn)得相當(dāng)不錯(cuò),但結(jié)果并不像Middlebury數(shù)據(jù)集那樣令人信服:在深度邊界和遮擋區(qū)域周圍可見(jiàn)人工制品。
?? ?我們用視頻示例簡(jiǎn)要討論當(dāng)前系統(tǒng)的局限性。差異誤差來(lái)自幾個(gè)方面:第一,支持區(qū)域由交叉骨架嚴(yán)重依賴于顏色和連接約束。對(duì)于實(shí)際場(chǎng)景,交叉構(gòu)造過(guò)程很容易被暗區(qū)和圖像噪聲破壞??梢援a(chǎn)生沒(méi)有足夠支撐區(qū)域的小區(qū)域,這為以后的計(jì)算步驟(例如成本計(jì)算和區(qū)域投票)帶來(lái)了顯著的錯(cuò)誤。雙邊濾波可以用作預(yù)處理,以在保留圖像邊緣的同時(shí)降低噪聲[1,15]。其次,精心設(shè)計(jì)的多階段機(jī)制是一把雙刃劍。它有助于我們以系統(tǒng)的方式逐步獲得準(zhǔn)確的結(jié)果并消除錯(cuò)誤,但它也帶來(lái)了大量參數(shù)。通過(guò)仔細(xì)調(diào)整各個(gè)參數(shù),可以改善視差質(zhì)量,但是這種方案對(duì)于各種現(xiàn)實(shí)世界的應(yīng)用來(lái)說(shuō)通常是費(fèi)力且不切實(shí)際的。 一種可能的解決方案是用地面實(shí)況數(shù)據(jù)分析參數(shù)的魯棒性,并用不同的視覺(jué)內(nèi)容自適應(yīng)地設(shè)置“不穩(wěn)定”參數(shù)。迭代框架內(nèi)的自動(dòng)參數(shù)估計(jì)[25]也可用于避免棘手的參數(shù)調(diào)整過(guò)程。
5.結(jié)論
?? ?本文提出了一種具有精確視差結(jié)果的近實(shí)時(shí)立體聲系統(tǒng)。 我們的系統(tǒng)基于幾個(gè)關(guān)鍵技術(shù):AD-Census成本測(cè)量,基于交叉的支持區(qū)域,掃描線優(yōu)化和系統(tǒng)細(xì)化過(guò)程。 這些技術(shù)在不犧牲性能的情況下顯著改善了視差質(zhì)量并行性,適用于GPU實(shí)現(xiàn)。雖然我們的系統(tǒng)為Middlebury數(shù)據(jù)集提供了很好的結(jié)果,但在現(xiàn)實(shí)世界的應(yīng)用程序中應(yīng)用它仍然是如視頻示例所示,這是一項(xiàng)具有挑戰(zhàn)性的任務(wù)。 真實(shí)世界數(shù)據(jù)通常包含可能導(dǎo)致的顯著圖像噪聲,整流誤差和照明變化成本計(jì)算和支持區(qū)域的嚴(yán)重問(wèn)題施工。 穩(wěn)健的參數(shù)設(shè)定方法對(duì)于產(chǎn)生令人滿意的結(jié)果也很重要。 我們想將來(lái)探討這些話題。
轉(zhuǎn)載于https://blog.csdn.net/qq_37641714/article/details/82854210?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160682887219725222419230%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=160682887219725222419230&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-3-82854210.pc_first_rank_v2_rank_v28&utm_term=%E7%AB%8B%E4%BD%93%E5%8C%B9%E9%85%8D%E8%AE%BA%E6%96%87&spm=1018.2118.3001.4449