0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

雙目視覺(jué)經(jīng)典視差優(yōu)化算法:Fast Bilateral-Space Stereo

3D視覺(jué)工坊 ? 來(lái)源:計(jì)算攝影學(xué) ? 作者:HawkWang ? 2022-10-19 15:12 ? 次閱讀

一. 前言

到目前為止,我的雙目立體匹配系列文章已經(jīng)完成了接近經(jīng)典視差優(yōu)化算法的介紹,讓我們觀察一下現(xiàn)在的進(jìn)度:

8a8926f6-4f63-11ed-a3b6-dac502259ad0.jpg

今天的文章,我們先從回顧立體匹配的評(píng)價(jià)指標(biāo)開(kāi)始,MiddleBurry立體匹配排行榜的評(píng)價(jià)指標(biāo):

8a8e04f0-4f63-11ed-a3b6-dac502259ad0.jpg

MiddleBurry立體匹配評(píng)價(jià)指標(biāo) 這些評(píng)價(jià)指標(biāo)大概包括:

在全圖上計(jì)算視差圖和理想視差圖之間的均方根誤差,及錯(cuò)誤像素占比

在無(wú)紋理區(qū)域,有紋理區(qū)域,遮擋區(qū)域,非遮擋區(qū)域,深度不連續(xù)區(qū)域共5個(gè)區(qū)域計(jì)算和理想視差圖之間的均方根誤差,及錯(cuò)誤像素占比

在不同視角下進(jìn)行反向變換,計(jì)算變換后的投影誤差,即所謂預(yù)測(cè)誤差

在我介紹其他的數(shù)據(jù)集里,基本上采用了類(lèi)似的評(píng)價(jià)指標(biāo)。我不知道你想過(guò)沒(méi)有,這些評(píng)價(jià)指標(biāo)有什么特點(diǎn)? 事實(shí)上,這些指標(biāo)都在強(qiáng)調(diào)視差圖在視差方向上的準(zhǔn)確性,卻沒(méi)有怎么強(qiáng)調(diào)視差圖與原圖之間的貼合性——或者說(shuō),它們都在強(qiáng)調(diào)Z方向的準(zhǔn)確性,卻沒(méi)有重視其在X/Y方向上的準(zhǔn)確性。 對(duì)于很多三維重建的應(yīng)用,比如測(cè)距、尺寸測(cè)量、甚至自動(dòng)駕駛中的障礙物檢測(cè)識(shí)別,似乎這也沒(méi)有構(gòu)成很大的問(wèn)題。然而有一類(lèi)應(yīng)用,對(duì)重建后的深度或視差在X/Y方向上的準(zhǔn)確性確有很高很高的要求,虛化渲染類(lèi)應(yīng)用——事實(shí)上我認(rèn)為絕大多數(shù)像素級(jí)渲染類(lèi)的應(yīng)用,都對(duì)場(chǎng)景模型和圖像紋理之間的貼合度有很高的要求,而這也意味著我們要求深度圖中的內(nèi)容和原始的彩色圖之間也需要緊密貼合。

8aa0e746-4f63-11ed-a3b6-dac502259ad0.jpg

虛化渲染對(duì)邊緣貼合有很高要求 如果不能做到這點(diǎn),我們渲染的結(jié)果就會(huì)出現(xiàn)非常突兀的瑕疵,比如下面這樣的:

8ab478b0-4f63-11ed-a3b6-dac502259ad0.jpg

邊緣不貼合出錯(cuò) 或是這樣的:

8ac0aa90-4f63-11ed-a3b6-dac502259ad0.jpg

邊緣不貼合出錯(cuò) 很顯然,一般的基于MiddleBurry類(lèi)數(shù)據(jù)集評(píng)價(jià)指標(biāo)開(kāi)發(fā)的立體匹配算法是無(wú)法滿足這種需求的。我們所需要的算法,必須要從原理上能夠保證這種貼邊,今天我將要展示的算法就做到了這一點(diǎn)。按照作者的說(shuō)法,根據(jù)這種算法的原理你甚至無(wú)法生成不貼邊的視差圖! 在正式介紹今天的算法之前,讓我們先來(lái)看看效果。首先我們來(lái)看看一對(duì)輸入的經(jīng)過(guò)立體校正的圖像,及其局部(下方):

8add0834-4f63-11ed-a3b6-dac502259ad0.jpg

然后我們看看普通的SGM算法得到的視差圖,以及用這種視差圖進(jìn)行淺景深虛化渲染的結(jié)果。你可以很清楚的看到細(xì)節(jié)部分出現(xiàn)了嚴(yán)重的不貼邊現(xiàn)象:

8b10a482-4f63-11ed-a3b6-dac502259ad0.jpg

SGM算法結(jié)果和渲染圖 下面則是我今天將要介紹的算法的結(jié)果。真是不怕不識(shí)貨,就怕貨比貨啊,從渲染的結(jié)果看上去明顯好了很多!

8b186c58-4f63-11ed-a3b6-dac502259ad0.jpg

本文算法結(jié)果和渲染圖 下面是另外一個(gè)場(chǎng)景,注意看原圖中雕塑的細(xì)節(jié)部分。由于上采樣看細(xì)節(jié)的緣故,小圖顯得不那么清晰,可以忽略這一點(diǎn)。

8b2dd3b8-4f63-11ed-a3b6-dac502259ad0.jpg

輸入原始圖 我們先看看一個(gè)叫做SPS-StFI的算法結(jié)果:

8b58ae8a-4f63-11ed-a3b6-dac502259ad0.jpg

SPS-StFI算法渲染結(jié)果 表面上看起來(lái)視差圖還OK,但我們看看渲染的細(xì)節(jié),很明顯在雕塑的邊緣處出現(xiàn)了奇怪的瑕疵,你可以和上面的原圖對(duì)比一下,這顯然是由于視差圖中的邊緣錯(cuò)誤導(dǎo)致的

8b629616-4f63-11ed-a3b6-dac502259ad0.jpg

SPS-StFI算法渲染結(jié)果細(xì)節(jié) 現(xiàn)在來(lái)看看本文將要介紹的算法的結(jié)果:

8b8e65ca-4f63-11ed-a3b6-dac502259ad0.jpg

本文算法結(jié)果 看細(xì)節(jié),很明顯主體和虛化背景的邊界非常自然,沒(méi)有出現(xiàn)上面SPS-StFI算法的邊緣瑕疵:

8ba57238-4f63-11ed-a3b6-dac502259ad0.jpg

本文算法渲染細(xì)節(jié) 小結(jié)一下我們現(xiàn)在得到的信息: 傳統(tǒng)的基于類(lèi)似MiddleBurry這樣的數(shù)據(jù)集的評(píng)價(jià)指標(biāo)來(lái)設(shè)計(jì)的雙目立體匹配算法,大多數(shù)側(cè)重于視差值或者深度值的準(zhǔn)確性,卻對(duì)視差圖貼合原圖物體邊緣的程度不夠重視,不適合圖形圖像渲染類(lèi)應(yīng)用。而有一類(lèi)算法,比如說(shuō)我今天將要介紹這種算法,特別強(qiáng)調(diào)視差圖與原圖目標(biāo)邊緣的貼合程度,從而比較適合產(chǎn)生渲染類(lèi)應(yīng)用所需要的視差圖(深度圖)。 那么是什么樣的算法能夠從原理上保證這一點(diǎn)呢?它是如何做到的呢?讓我請(qǐng)出今天的主角吧:

8bab60da-4f63-11ed-a3b6-dac502259ad0.jpg

對(duì),就是Jon Barron,有的朋友可能已經(jīng)知道他了。如果我再提及他參與提出的NeRF(神經(jīng)輻射場(chǎng)),就肯定有更多人會(huì)哇哦了。 我們今天要談的是Jon Barron在2015年CVPR上演講展示的一篇文章Fast Bilateral-Space Stereo for Synthetic Defocus

8bc1b182-4f63-11ed-a3b6-dac502259ad0.jpg

它首先從原理上保證了視差圖的貼邊,而且速度還大大超越其他算法,在下圖中我們看到它比之前最快的算法還快十幾倍!

8bca9680-4f63-11ed-a3b6-dac502259ad0.jpg

本文算法速度非???那么,它是如何做到的呢?要回答這個(gè)問(wèn)題,我們需要先回顧一下立體匹配的全局優(yōu)化法的思想。

二. 全局優(yōu)化算法的思想

在我的文章72. 三維重建7-立體匹配3,立體匹配算法中的視差優(yōu)化中,我曾經(jīng)講過(guò),立體匹配的全局代價(jià)優(yōu)化法的思想是希望尋找到每個(gè)像素的最優(yōu)視差結(jié)果,使得全局的、整體的匹配代價(jià)最小,這一步被稱(chēng)為視差優(yōu)化(Disparity Optimization)。于是這個(gè)過(guò)程就變成了一個(gè)最優(yōu)化某個(gè)能量函數(shù)的過(guò)程,該函數(shù)通常寫(xiě)成如下的形式:

8bd3fed2-4f63-11ed-a3b6-dac502259ad0.png

等號(hào)右邊第1項(xiàng)是數(shù)據(jù)項(xiàng),它衡量計(jì)算出的視差與實(shí)際輸入圖像關(guān)系的差異。一般來(lái)說(shuō),可以用下面的式子來(lái)表示,其中C表示代價(jià)函數(shù)。

8be2b954-4f63-11ed-a3b6-dac502259ad0.png

這一項(xiàng)用于約束全局代價(jià)最小化。但是代價(jià)函數(shù)中通常含有噪聲和錯(cuò)誤,直接最小化求得的結(jié)果也會(huì)有很多問(wèn)題,所以還需要第2項(xiàng)平滑項(xiàng)。這一項(xiàng)一般用于給出某些額外的約束條件,比如通常假設(shè)整個(gè)圖像的視差是平滑變化的。這樣視差的大變化只會(huì)在場(chǎng)景內(nèi)視差邊緣處產(chǎn)生,一般也和圖像內(nèi)物體邊緣高度相關(guān)。 很顯然,這個(gè)全局代價(jià)的優(yōu)化是非常困難和復(fù)雜的問(wèn)題。比如,一幅1024x1024的圖像,如果其有效視差范圍為128,那么上面的數(shù)據(jù)項(xiàng)就是一個(gè)有著1024x1024x128=134217728個(gè)元素的巨大的立方體。這還沒(méi)有算上后面的平滑項(xiàng)的復(fù)雜度。 其實(shí),雖然如此復(fù)雜,但似乎也不是不可以接受,無(wú)非就是多花些時(shí)間吧。然而,在有些應(yīng)用場(chǎng)景下,我們需要高速進(jìn)行深度重建,甚至實(shí)時(shí)深度重建,比如我提到的手機(jī)上的各種渲染應(yīng)用就是如此。你想象一下,你拿起手機(jī)要給女朋友/男朋友拍一張人像照,肯定是希望所見(jiàn)即所得,并且按下快門(mén)立馬得到結(jié)果,而不是等上幾分鐘都看不到效果吧。 所以,總結(jié)下Jon Barron要想解決的問(wèn)題:用極高的速度解決立體匹配的全局代價(jià)優(yōu)化問(wèn)題 在計(jì)算機(jī)科學(xué)中,甚至在所有門(mén)類(lèi)的科學(xué)中,有一種思想是問(wèn)題的轉(zhuǎn)換。我們不是說(shuō)上面的全局代價(jià)函數(shù)的規(guī)模太大,導(dǎo)致優(yōu)化復(fù)雜嗎?那么,就先把這種大規(guī)模的全局代價(jià)函數(shù)轉(zhuǎn)換成小規(guī)模的全局代價(jià)函數(shù)吧,這樣求解起來(lái)不就簡(jiǎn)單了嗎?

8c033bd4-4f63-11ed-a3b6-dac502259ad0.jpg

我們接著來(lái)看看Jon是如何一步步做到這種轉(zhuǎn)換的。

三. 視差圖的平滑性與雙邊濾波

現(xiàn)在重新想想我們的視差圖需要滿足什么樣的特性:視差圖總體上是平滑變化的,視差的突然變化只會(huì)在場(chǎng)景內(nèi)物體的邊緣處產(chǎn)生。你想到什么了嗎?這和什么算法有相通之處? 是的,這和我之前講過(guò)的雙邊濾波有非常大的相似之處,讓我們回憶下4. 數(shù)碼相機(jī)內(nèi)的圖像處理-更多圖像濾波中的內(nèi)容: 高斯濾波只使用了空間距離來(lái)衡量像素的權(quán)重,而雙邊濾波則在空間距離的基礎(chǔ)上,加入了像素亮度距離。而由于邊緣兩邊的亮度值差異很大,因此越過(guò)邊緣的像素的濾波權(quán)重很小,這就是雙邊濾波能夠保持邊緣的秘訣。 雙邊濾波的圖示如下:

8c101764-4f63-11ed-a3b6-dac502259ad0.jpg

8c20828e-4f63-11ed-a3b6-dac502259ad0.jpg

雙邊濾波有這種優(yōu)異的性質(zhì),但其計(jì)算量卻非常大,這也促使了人們想了各種各樣的辦法來(lái)快速計(jì)算雙邊濾波。其中有一種稱(chēng)為雙邊網(wǎng)格的方法特別有意思,這是2007年Chen Jiawen等人提出的。

8c2e4dec-4f63-11ed-a3b6-dac502259ad0.jpg

我們看下面的圖,這就是Bilateral Grid(雙邊網(wǎng)格)的思想。一幅2D的灰度圖像中的每個(gè)像素,按照其x坐標(biāo)、y坐標(biāo)、灰度值,被分組放到了一個(gè)3D的立方體中,每一小組就是一個(gè)格子。這樣,原本在2D空間中相鄰的像素,到了雙邊網(wǎng)格空間中,就不相鄰了,至少被放到了不同的格子里。

8c3d58aa-4f63-11ed-a3b6-dac502259ad0.jpg

利用這種思想,我們實(shí)際上是對(duì)原始圖像進(jìn)行了降維,并且使得灰度值差異較大的像素不會(huì)相互污染:

8c4e9714-4f63-11ed-a3b6-dac502259ad0.jpg

利用這種思想,可以實(shí)現(xiàn)快速的雙邊濾波,我們以一個(gè)一維圖像來(lái)舉例。首先,我們用剛才的思想把圖像投射到 雙邊網(wǎng)格中。接下來(lái),我們?cè)陔p邊網(wǎng)格空間中進(jìn)行高斯濾波。最后再把濾波后的雙邊網(wǎng)格重新投射回原始的圖像,如下圖所示:

8c6ae662-4f63-11ed-a3b6-dac502259ad0.jpg

由于雙邊網(wǎng)格的規(guī)模大大小于原始圖像,比如一幅八百萬(wàn)像素的圖像投射到雙邊網(wǎng)格中可能只有70*70*10=49000個(gè)格子。而高斯濾波又比雙邊濾波的計(jì)算量低很多,并且很容易通過(guò)GPU來(lái)并行計(jì)算。因此通過(guò)這樣的方式,就可以實(shí)現(xiàn)非??焖俚碾p邊濾波了。 比如Chen JiaWen等在演講中提到,一幅兩百萬(wàn)像素的圖像,如果用原始的CPU上實(shí)現(xiàn)的雙邊濾波需要10分鐘,而用他們的雙邊網(wǎng)格思想在2006年的G80 GPU上實(shí)現(xiàn),只需要9毫秒!這就是將難解問(wèn)題轉(zhuǎn)換成易解問(wèn)題的威力,讓我們?cè)倏匆槐檫@個(gè)圖,即便你研究的領(lǐng)域并非立體匹配,并非圖像濾波,今天這篇文章的其他內(nèi)容你都可以忘記,但我希望你記住這幅圖:

8c033bd4-4f63-11ed-a3b6-dac502259ad0.jpg

在相關(guān)文獻(xiàn)中,把從原始圖像到雙邊空間的過(guò)程稱(chēng)為Splat,在雙邊空間中進(jìn)行濾波稱(chēng)為Blur,把濾波后的結(jié)果轉(zhuǎn)換到原始圖像像素空間中的過(guò)程稱(chēng)為Slice。Splat-Blur-Slice,就是這類(lèi)方法的三個(gè)重要步驟。由于高斯濾波是可以分解的,在雙邊網(wǎng)格中的高斯濾波可以變換為每個(gè)維度上(對(duì)于1維圖像來(lái)說(shuō)是space和intensity兩個(gè)維度)分別進(jìn)行的一維濾波相加的結(jié)果(這是一種近似)

8c8c5dba-4f63-11ed-a3b6-dac502259ad0.jpg

那么,這對(duì)我們今天講的立體匹配全局代價(jià)函數(shù)優(yōu)化有什么啟示呢? Jon Barron在演講材料中寫(xiě)道:

8c99bf50-4f63-11ed-a3b6-dac502259ad0.jpg

什么意思?前人的工作是將圖像信號(hào)投射(Splat)到雙邊空間,在雙邊空間中濾波(Blur),再反投射(Slice)濾波后的圖像信號(hào)到原始像素空間。而Jon Barron的工作則是將所要求解的最小化問(wèn)題投射(Splat)到雙邊空間,在雙邊空間中求解(Solve)該問(wèn)題,再將求解結(jié)果重新投射(Slice)到原始空間。 由于雙邊空間中的問(wèn)題規(guī)模大大小于原始問(wèn)題,因此問(wèn)題求解就變得很快速很容易了。我們?cè)谙乱还?jié),進(jìn)一步看看Jon是如何做到的。

四. 利用雙邊空間優(yōu)化全局代價(jià)函數(shù)

我們看看下面Jon構(gòu)建的代價(jià)函數(shù),加號(hào)前面一項(xiàng)是平滑項(xiàng),后面一項(xiàng)是數(shù)據(jù)項(xiàng),我們就是要最小化這個(gè)式子,

8ca79044-4f63-11ed-a3b6-dac502259ad0.jpg

全局匹配代價(jià)函數(shù)

4.1 平滑項(xiàng)

8cdc775a-4f63-11ed-a3b6-dac502259ad0.png

平滑項(xiàng) 平滑項(xiàng)中的di和dj是一幅視差圖中不同位置的像素的視差值。這個(gè)時(shí)候,我們要把視差圖看作展開(kāi)的一維向量。一個(gè)寬高分別為W和H的視差圖,展開(kāi)后就是WHx1的一維向量,于是i和j就是不同像素的編號(hào),或者坐標(biāo)值。 最神秘的是這里的矩陣,為了理解它,我們首先得重新回到雙邊濾波器的矩陣表達(dá),如果x是一個(gè)一維表示的尺寸為WHx1的圖像,我們可以用下面的公式來(lái)表示雙邊濾波,等號(hào)坐標(biāo)是濾波后的圖像y,尺寸還是WHx1:

8cf9d340-4f63-11ed-a3b6-dac502259ad0.png

雙邊濾波矩陣表示法 這里的矩陣A是一個(gè)對(duì)稱(chēng)的矩陣,尺寸是WHxWH。對(duì)于彩色圖像的雙邊濾波,A矩陣的每個(gè)元素如下:

8d089376-4f63-11ed-a3b6-dac502259ad0.png

雙邊濾波權(quán)重 它實(shí)際上是表示第j個(gè)像素和第i個(gè)像素間的在空間和顏色上的相似度。如果兩個(gè)像素越靠近,并且顏色越相似,其對(duì)應(yīng)的A元素就越大,當(dāng)然如果是單色圖像那么就只是計(jì)算空間和亮度上的相似度。 我們看看下面這個(gè)3x3的小圖像(我們假設(shè)其中存儲(chǔ)的就是對(duì)應(yīng)像素的視差)

8d16098e-4f63-11ed-a3b6-dac502259ad0.png

3x3的小圖像 按照上面的公式很容易計(jì)算得到其雙邊濾波矩陣如下

8d2c676a-4f63-11ed-a3b6-dac502259ad0.jpg

權(quán)重矩陣A示意 利用這個(gè)矩陣,可以把任何我們認(rèn)為相鄰的像素的視差值加權(quán)平均到一起,得到最后的濾波結(jié)果。而我們前面數(shù)據(jù)項(xiàng)中的矩陣則是雙邊濾波矩陣A的某種特殊歸一化形式,其最大特點(diǎn)是每一行和每一列的和都為1。 4.2 平滑項(xiàng)轉(zhuǎn)換到雙邊網(wǎng)格空間 我們可以用下面的公式表示雙邊網(wǎng)格算法,其中S矩陣代表我最開(kāi)始提到的Splat操作,將像素值投射到雙邊空間。B矩陣代表雙邊空間中進(jìn)行的模糊操作,而ST矩陣則代表上面提到的Slice操作,將雙邊空間中的濾波結(jié)果重新投射到原始像素空間。在雙邊網(wǎng)格的構(gòu)造過(guò)程中,每個(gè)網(wǎng)格的頂點(diǎn)采用了最近鄰方式采樣,所以這種方式是對(duì)原始雙邊濾波的一種近似:

8d337c6c-4f63-11ed-a3b6-dac502259ad0.png

雙邊網(wǎng)格是矩陣分解過(guò)程 進(jìn)行變量替換后,雙邊濾波就變成了下面這樣:

8d44ff96-4f63-11ed-a3b6-dac502259ad0.png

在雙邊空間中進(jìn)行濾波 而作者最精妙的一點(diǎn)是,把匹配代價(jià)中的平滑項(xiàng)按照類(lèi)似的方法,投射到了雙邊空間。為了做到這一點(diǎn),首先是把原始的平滑項(xiàng)寫(xiě)成矩陣表達(dá)形式, 再通過(guò)變量替換轉(zhuǎn)換到雙邊空間

8d4e1702-4f63-11ed-a3b6-dac502259ad0.jpg

下面對(duì)雙邊網(wǎng)格中的各個(gè)變量作出解釋?zhuān)?qǐng)注意在雙邊空間中的這些矩陣和向量的規(guī)模都是大大低于像素空間中的對(duì)應(yīng)實(shí)體的,這也為之后的快速求解打下了基礎(chǔ)。

8d57bab4-4f63-11ed-a3b6-dac502259ad0.jpg

你可能對(duì)為什么Jon Barron能夠把原始像素空間中的平滑項(xiàng)做上面所說(shuō)的轉(zhuǎn)換感興趣。這里面有非常復(fù)雜的數(shù)學(xué)推導(dǎo)過(guò)程,都記錄在了其論文的附加材料里面。不過(guò)很多人直接閱讀此份附加材料也是看不懂的(也許你就在這些人里面 )。如果你對(duì)此感興趣的話,可以私聊我。如果咨詢的人足夠多,我還打算在我的知識(shí)星球中做更詳細(xì)的講解,包括針對(duì)代價(jià)做細(xì)致的分析。

4.2 數(shù)據(jù)項(xiàng)

現(xiàn)在我們來(lái)看看數(shù)據(jù)項(xiàng)。正如前面所說(shuō),數(shù)據(jù)項(xiàng)表示的是像素點(diǎn)的匹配代價(jià)

8d66c810-4f63-11ed-a3b6-dac502259ad0.png

數(shù)據(jù)項(xiàng) 我們把它也要投射到雙邊空間中——每個(gè)雙邊網(wǎng)格所對(duì)應(yīng)的代價(jià)值是多個(gè)原始像素代價(jià)值的加權(quán)平均:

8d7acb4e-4f63-11ed-a3b6-dac502259ad0.png

編號(hào)為j的網(wǎng)格對(duì)應(yīng)的匹配代價(jià) 比如,這里j代表第j個(gè)雙邊網(wǎng)格中的格子,其中包含了多個(gè)以下標(biāo)i表示的原始像素,w代表像素的權(quán)重。這樣就把像素空間中的代價(jià)fi轉(zhuǎn)換成了雙邊空間中的代價(jià)gj 現(xiàn)在我們匯總一下,原始的代價(jià)函數(shù)為:

8ca79044-4f63-11ed-a3b6-dac502259ad0.jpg

像素空間全局代價(jià)函數(shù) 在雙邊空間中的代價(jià)函數(shù)為:

8da5c380-4f63-11ed-a3b6-dac502259ad0.png

雙邊空間全局代價(jià)函數(shù) 為了讓計(jì)算盡可能簡(jiǎn)單,而且可優(yōu)化,這就需要g是一個(gè)連續(xù)函數(shù),且可導(dǎo),這也意味著f是一個(gè)連續(xù)可導(dǎo)的函數(shù),現(xiàn)在我們必須寫(xiě)出g函數(shù)。 我在之前的文章中介紹過(guò)了很多種不同的匹配代價(jià)函數(shù),而作者選擇的是下面這個(gè)滿足所謂Birchfield-Tomasi 標(biāo)準(zhǔn)的函數(shù):

8dba54a8-4f63-11ed-a3b6-dac502259ad0.png

我先在下面給出作者論文中的圖示,然后用人話給你解釋一下:

8dc2ac02-4f63-11ed-a3b6-dac502259ad0.jpg

單像素匹配代價(jià)示意 什么意思?如果兩個(gè)像素通過(guò)某種標(biāo)準(zhǔn)判斷是匹配的,那么其匹配代價(jià)為0. 否則,其匹配代價(jià)正比于代價(jià)值偏離匹配范圍的大小。對(duì)任何一個(gè)像素i,在水平極線上都有可能有多個(gè)匹配的像素。其第1個(gè)匹配的像素對(duì)應(yīng)的視差我們稱(chēng)為li, 最后一個(gè)匹配的像素對(duì)應(yīng)的視差值我們稱(chēng)為ui。所以只要di在[li,ui]之間,我們認(rèn)為是匹配的,代價(jià)為0,否則匹配代價(jià)將位于斜率為1或-1的直線上。在實(shí)際操作中,我們需要記錄每個(gè)像素的匹配視差的上下值,其過(guò)程我這里略過(guò),感興趣的私聊我吧。 相比我之前介紹的很多匹配代價(jià)函數(shù),這是一種很弱的匹配代價(jià)函數(shù)。作者選擇它并非因?yàn)樗惺裁瓷衿娴牡胤?,僅僅是因?yàn)樗浅8咝?,特別是當(dāng)我們需要最小化之前提到的全局代價(jià)函數(shù)時(shí)這一點(diǎn)尤為重要。

4.3 在雙邊空間中進(jìn)行優(yōu)化

希望你還沒(méi)有暈掉 我們已經(jīng)得到了雙邊空間中的數(shù)據(jù)項(xiàng)和平滑項(xiàng)了,為了進(jìn)行優(yōu)化我們需要將數(shù)據(jù)項(xiàng)表示為連續(xù)可導(dǎo)的函數(shù)。所以這里采用了線性插值的方法,將在雙邊空間中離散的g函數(shù)變?yōu)檫B續(xù)的,原論文公式如下:

8dd53ffc-4f63-11ed-a3b6-dac502259ad0.png

雙邊空間中的全局代價(jià)函數(shù) 最優(yōu)化問(wèn)題有很多求解方法,作者采用的是一種叫做L-BFGS的方法,這是一種在有限的內(nèi)存空間中進(jìn)行的優(yōu)化算法,是Broyden,Fletcher,Goldfarb,Shanno這幾位數(shù)學(xué)家發(fā)明的,他們名字的首字母組合就是BFGS

8defd222-4f63-11ed-a3b6-dac502259ad0.jpg

BFGS 我們不需要了解算法的細(xì)節(jié),只需要記住許多最優(yōu)化問(wèn)題求解的一般流程如下:

8dfd23f0-4f63-11ed-a3b6-dac502259ad0.png

優(yōu)化算法過(guò)程 所以我們?cè)侔焉鲜龃鷥r(jià)函數(shù)的梯度表達(dá)出來(lái),原論文的梯度公式如下

8e2a1b9e-4f63-11ed-a3b6-dac502259ad0.jpg

有了上面的(15)和(16)兩個(gè)式子,我們就可以進(jìn)行優(yōu)化求解了。首先用下面的(17)式,我們求解雙邊空間中的視差值v*,然后把v*重新投射到像素空間中,得到最終的視差值

8e3b7fe2-4f63-11ed-a3b6-dac502259ad0.png

Solve/Splice

五. 實(shí)驗(yàn)和討論

我已經(jīng)在文章開(kāi)頭展示了作者演示的效果,我總體上的感覺(jué)是這種算法在當(dāng)目標(biāo)和背景的顏色不一致時(shí),視差邊緣很貼合目標(biāo)的邊緣,我將作者給出的視差圖和原始彩色圖疊到一起給你看看,很明顯能看出來(lái)。

8e48f078-4f63-11ed-a3b6-dac502259ad0.jpg

不過(guò),由于作者采用的數(shù)據(jù)項(xiàng)中匹配代價(jià)函數(shù)過(guò)于簡(jiǎn)單,這也就使得數(shù)據(jù)項(xiàng)誤差較大,導(dǎo)致算法會(huì)出現(xiàn)過(guò)平滑的現(xiàn)象。表現(xiàn)在結(jié)果上,就是會(huì)在結(jié)果視差圖中帶入很多原圖的紋理。我們來(lái)看幾張網(wǎng)上的高人實(shí)現(xiàn)算法后跑出的結(jié)果(參考資料4):

8e550408-4f63-11ed-a3b6-dac502259ad0.jpg

8ecd05d4-4f63-11ed-a3b6-dac502259ad0.jpg

六. 總結(jié)

今天我們學(xué)習(xí)的這種叫做Fast Bilateral-Space Stereo的算法與之前介紹的其他立體匹配算法有很大的不同。它并不追求深度重建結(jié)果在Z方向的絕對(duì)精確,反而更強(qiáng)調(diào)其在X/Y方向的貼邊。因此其結(jié)果更適合在圖形圖像渲染領(lǐng)域中使用,而非在對(duì)尺寸、距離等有嚴(yán)格要求的三維重建領(lǐng)域。該算法速度很快,因此一經(jīng)推出,就在Google的Camera應(yīng)用中得到了應(yīng)用,該功能被稱(chēng)為L(zhǎng)ens Blur,專(zhuān)用于淺景深虛化,也就是現(xiàn)在大家熟悉的手機(jī)上的人像虛化模式。

8f0973f2-4f63-11ed-a3b6-dac502259ad0.jpg

我們從作者的思路中學(xué)到的最關(guān)鍵的洞見(jiàn)是:一個(gè)復(fù)雜大規(guī)模的問(wèn)題可以通過(guò)空間轉(zhuǎn)換,變換為小規(guī)模的問(wèn)題。求解完小規(guī)模的問(wèn)題后,再重新映射回原始的問(wèn)題空間,得到想要的解。

8c033bd4-4f63-11ed-a3b6-dac502259ad0.jpg

實(shí)際上,關(guān)于這篇文章還有很多可以講的,但限于篇幅原因我不得不略過(guò)了。但有兩大內(nèi)容,我非常建議讀者進(jìn)一步學(xué)習(xí):

雙邊網(wǎng)格的原理和具體實(shí)現(xiàn)方法,這是本文的基礎(chǔ),也是我接下來(lái)還會(huì)描述的另外一個(gè)算法的基礎(chǔ)。而且快速雙邊濾波在很多領(lǐng)域都有用,因此我覺(jué)得掌握雙邊網(wǎng)格很有用。

本文所略過(guò)的Jon Barron的匹配代價(jià)平滑項(xiàng)、數(shù)據(jù)項(xiàng)轉(zhuǎn)換到雙邊空間的具體推導(dǎo)過(guò)程。這是本算法背后的精髓所在,理解了它對(duì)理解我下一篇文章也很有幫助。

上面兩點(diǎn),我都會(huì)給出公開(kāi)的參考資料。但坦率說(shuō),這些論文和公式你不就是不愿意自己讀嘛所以,如果你真的感興趣,可以加入我創(chuàng)建的知識(shí)星球咨詢,咱們通過(guò)付費(fèi)學(xué)習(xí)的方式把這些重要的問(wèn)題搞懂,豈不甚好O(∩_∩)O 現(xiàn)在來(lái)看看咱們?cè)陔p目立體匹配上的學(xué)習(xí)進(jìn)度:

8f2e3854-4f63-11ed-a3b6-dac502259ad0.png

你可能會(huì)想,怎么視差優(yōu)化算法還沒(méi)有完?是的,因?yàn)槲覀兿乱淮螌W(xué)習(xí)Jon Barron等在2016年ECCV上發(fā)表的算法The Fast Bilateral Solver,簡(jiǎn)稱(chēng)FBS,它是The Fast Bilateral-Space Stereo算法的自然衍生,但里面的數(shù)學(xué)知識(shí)和優(yōu)化方法都有了很多擴(kuò)展,得到的效果也很不錯(cuò)。而且,除了立體匹配,還能用于包括圖像分割、畫(huà)筆繪制等在內(nèi)的很多計(jì)算機(jī)視覺(jué)問(wèn)題。讓我們拭目以待吧 下面是我的文章涉及的領(lǐng)域

8f3d3ea8-4f63-11ed-a3b6-dac502259ad0.png

這是我最近正在創(chuàng)作攝影圖像后期處理和優(yōu)化課程的部分內(nèi)容提綱:

8fac34c0-4f63-11ed-a3b6-dac502259ad0.jpg

七. 參考資料

1、Jon Barron主頁(yè):jonbarron.info/ 2、原始論文:Fast Bilateral-Space Stereo for Synthetic Defocus 作者的附加材料,給出了推導(dǎo)過(guò)程,很難懂 3、很好的一份國(guó)外大神的解讀:Ugo Capeto. On fast bilateral-space stereo for synthetic defocus bybarron et al. dropbox.com/s/ke46mg8pk stereo.pdf?dl=0. Accessed September 28, 2016. 4、雙邊網(wǎng)格的論文:Jiawen Chen, Sylvain Paris, and Frédo Durand. Real-time edge-aware image processing with the bilateral grid. In ACM Transactions on Graphics (TOG), volume 26, page 103. ACM, 2007 5、三維重建9-立體匹配5,解析MiddleBurry立體匹配數(shù)據(jù)集

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4592

    瀏覽量

    92524
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1080

    瀏覽量

    40378
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1201

    瀏覽量

    24622

原文標(biāo)題:雙目視覺(jué)經(jīng)典視差優(yōu)化算法:Fast Bilateral-Space Stereo

文章出處:【微信號(hào):3D視覺(jué)工坊,微信公眾號(hào):3D視覺(jué)工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    神經(jīng)網(wǎng)絡(luò)優(yōu)化算法有哪些

    神經(jīng)網(wǎng)絡(luò)優(yōu)化算法是深度學(xué)習(xí)領(lǐng)域中的核心技術(shù)之一,旨在通過(guò)調(diào)整網(wǎng)絡(luò)中的參數(shù)(如權(quán)重和偏差)來(lái)最小化損失函數(shù),從而提高模型的性能和效率。本文將詳細(xì)探討神經(jīng)網(wǎng)絡(luò)優(yōu)化算法的基本原理、主要方法、
    的頭像 發(fā)表于 07-03 16:01 ?404次閱讀

    機(jī)器學(xué)習(xí)的經(jīng)典算法與應(yīng)用

    關(guān)于數(shù)據(jù)機(jī)器學(xué)習(xí)就是喂入算法和數(shù)據(jù),讓算法從數(shù)據(jù)中尋找一種相應(yīng)的關(guān)系。Iris鳶尾花數(shù)據(jù)集是一個(gè)經(jīng)典數(shù)據(jù)集,在統(tǒng)計(jì)學(xué)習(xí)和機(jī)器學(xué)習(xí)領(lǐng)域都經(jīng)常被用作示例。數(shù)據(jù)集內(nèi)包含3類(lèi)共150條記錄,每類(lèi)各50個(gè)數(shù)
    的頭像 發(fā)表于 06-27 08:27 ?1547次閱讀
    機(jī)器學(xué)習(xí)的<b class='flag-5'>經(jīng)典</b><b class='flag-5'>算法</b>與應(yīng)用

    計(jì)算機(jī)視覺(jué)的十大算法

    隨著科技的不斷發(fā)展,計(jì)算機(jī)視覺(jué)領(lǐng)域也取得了長(zhǎng)足的進(jìn)步。本文將介紹計(jì)算機(jī)視覺(jué)領(lǐng)域的十大算法,包括它們的基本原理、應(yīng)用場(chǎng)景和優(yōu)缺點(diǎn)。這些算法在圖像處理、目標(biāo)檢測(cè)、人臉識(shí)別等領(lǐng)域有著廣泛的應(yīng)
    的頭像 發(fā)表于 02-19 13:26 ?1182次閱讀
    計(jì)算機(jī)<b class='flag-5'>視覺(jué)</b>的十大<b class='flag-5'>算法</b>

    如何對(duì)MD5加密算法優(yōu)化

    有人針對(duì)程序安全啟動(dòng)過(guò)程,進(jìn)行MD5算法優(yōu)化嘛。目前采用標(biāo)準(zhǔn)算法,時(shí)間稍長(zhǎng),如果有人做過(guò)優(yōu)化的話,可以分享一下,謝謝。
    發(fā)表于 02-18 08:20

    視覺(jué)、激光、結(jié)構(gòu)光?掃地機(jī)器人導(dǎo)航避障技術(shù)盤(pán)點(diǎn)

    的核心標(biāo)準(zhǔn)。 目前主流的掃地機(jī)器人導(dǎo)航避障技術(shù)路徑為雙目視覺(jué)、激光雷達(dá)、3D結(jié)構(gòu)光(線激光)三條,每條技術(shù)路徑都存在著各自的特點(diǎn)。 視覺(jué)方案 掃地機(jī)器人所配備的視覺(jué)避障技術(shù)通常采用雙目
    的頭像 發(fā)表于 02-01 16:01 ?1190次閱讀

    基于IMX214+ZYNQ XC7Z100的1080P雙目視覺(jué)智能平臺(tái)

    主要性能和優(yōu)勢(shì) 使用 Zynq-7000 SoC 對(duì)嵌入式應(yīng)用進(jìn)行快速原型設(shè)計(jì)以實(shí)現(xiàn)優(yōu)化 硬件、設(shè)計(jì)工具、 IP、以及預(yù)驗(yàn)證參考設(shè)計(jì) 演示嵌入式設(shè)計(jì),面向視頻通道
    的頭像 發(fā)表于 01-09 11:03 ?950次閱讀
    基于IMX214+ZYNQ XC7Z100的1080P<b class='flag-5'>雙目視覺(jué)</b>智能平臺(tái)

    三維視覺(jué)測(cè)量技術(shù):被動(dòng)視覺(jué)測(cè)量和主動(dòng)視覺(jué)測(cè)量

    與人眼的立體感知類(lèi)似,雙目立體視覺(jué)用兩個(gè)相機(jī)從不同的角度對(duì)被測(cè)物體成像。依據(jù)兩幅圖像中對(duì)應(yīng)點(diǎn)的立體視差( stereo disparity) ,根據(jù)三角測(cè)量原理實(shí)現(xiàn)三維信息測(cè)量。
    的頭像 發(fā)表于 01-03 11:30 ?746次閱讀
    三維<b class='flag-5'>視覺(jué)</b>測(cè)量技術(shù):被動(dòng)<b class='flag-5'>視覺(jué)</b>測(cè)量和主動(dòng)<b class='flag-5'>視覺(jué)</b>測(cè)量

    STM32控制中常見(jiàn)的PID算法總結(jié)

    在很多控制算法當(dāng)中,PID控制算法又是最簡(jiǎn)單,最能體現(xiàn)反饋思想的控制算法,可謂經(jīng)典中的經(jīng)典經(jīng)典
    發(fā)表于 12-27 14:07 ?1494次閱讀
    STM32控制中常見(jiàn)的PID<b class='flag-5'>算法</b>總結(jié)

    【技術(shù)干貨】PID算法原理分析及優(yōu)化

    本期為大家分享經(jīng)典控制算法之一的 PID控制方法。 PID控制方法從提出至今已有百余年歷史,其由于結(jié)構(gòu)簡(jiǎn)單、易于實(shí)現(xiàn)、魯棒性好、可靠性高等特點(diǎn),在機(jī)電、冶金、機(jī)械、化工等行業(yè)中應(yīng)用廣泛。下面就跟著
    發(fā)表于 12-22 15:38

    LabVIEW開(kāi)發(fā)自動(dòng)駕駛的雙目測(cè)距系統(tǒng)

    挑戰(zhàn),包括激光雷達(dá)、單目測(cè)距和雙目視覺(jué)技術(shù)等。在當(dāng)前的高級(jí)輔助駕駛技術(shù)(ADAS)中,雙目視覺(jué)技術(shù)在距離檢測(cè)方面表現(xiàn)出色,它可以精確地測(cè)量物體的距離,提供更客觀的數(shù)據(jù)。 為了應(yīng)對(duì)這一需求,設(shè)計(jì)了一種
    發(fā)表于 12-19 18:02

    雙目測(cè)寬儀高質(zhì)量生產(chǎn)利器 測(cè)寬儀價(jià)格

    雙目測(cè)寬儀是基于機(jī)器視覺(jué)原理及模擬人的雙眼進(jìn)行寬度尺寸自動(dòng)測(cè)量的儀器,是一種高度自動(dòng)化的工業(yè)實(shí)時(shí)在線寬度檢測(cè)儀表。 雙目測(cè)寬儀是一種智能化的全自動(dòng)工業(yè)在線實(shí)時(shí)寬度檢測(cè)設(shè)備,兩個(gè)工業(yè)相機(jī)就像人的雙眼
    發(fā)表于 12-04 17:10

    AD1955在處于DSD模式時(shí)只能是stereo嗎?

    AD1955在處于DSD模式時(shí),只能是stereo嗎?就算之前設(shè)置的是MONO,只要設(shè)置為SACD Slave后Output Fomat自動(dòng)轉(zhuǎn)換在Stereo了。
    發(fā)表于 11-29 08:24

    機(jī)器視覺(jué)雙目測(cè)寬儀具體有什么優(yōu)勢(shì)?

    雙目測(cè)寬儀是機(jī)器視覺(jué)原來(lái)制造而成的智能寬度檢測(cè)設(shè)備,廣泛應(yīng)用于板材類(lèi)產(chǎn)品的寬度檢測(cè)。通過(guò)測(cè)寬儀的使用,實(shí)時(shí)了解產(chǎn)品寬度品質(zhì),進(jìn)行超差提示,減少?gòu)U品的生產(chǎn)。 雙目測(cè)寬儀優(yōu)勢(shì) 測(cè)量軟件界面顯示:產(chǎn)品規(guī)格
    發(fā)表于 11-28 17:13

    178個(gè)經(jīng)典c語(yǔ)言源代碼+算法大全

    電子發(fā)燒友網(wǎng)站提供《178個(gè)經(jīng)典c語(yǔ)言源代碼+算法大全.rar》資料免費(fèi)下載
    發(fā)表于 11-21 10:19 ?6次下載
    178個(gè)<b class='flag-5'>經(jīng)典</b>c語(yǔ)言源代碼+<b class='flag-5'>算法</b>大全

    新品雙目測(cè)寬儀測(cè)量原理 寬厚板材在線檢測(cè)

    相機(jī)就像人的雙眼,可以形成立體視覺(jué),這樣就可以得到足夠的信息判斷被測(cè)物的距離,修正和消除距離變化對(duì)測(cè)量的影響。 雙目測(cè)寬儀是新研發(fā)的一種寬度檢測(cè)設(shè)備,采用立體機(jī)器視覺(jué)原理檢測(cè),利用算法
    發(fā)表于 11-20 17:25