DERS使用兩個(gè)或三個(gè)輸入視點(diǎn)及其相機(jī)參數(shù),來進(jìn)行深度估計(jì)。
其工作模式分為三種:automatic Depth,Semi-automatic Nagoya,Semi-automatic ETRI。由cfg文件中的DepthEstimationMode控制。三種方法流程圖如下:
三者主要模塊相同:首先通過對(duì)兩個(gè)或三個(gè)視點(diǎn)的每一個(gè)像素進(jìn)行外極線搜索,計(jì)算匹配代價(jià);然后用graph-cut算法,求最小代價(jià)能量函數(shù),獲得每一個(gè)像素的最可能視差;最后利用視差并繪制深度圖。
在3D場(chǎng)景中,深度有兩種描述方式:1.相對(duì)于3D空間原點(diǎn)的位置。 2.相對(duì)于相機(jī)的位置。用z表示深度值,Zfar和Znear分別表示距離相機(jī)位置或是3D空間原點(diǎn)最遠(yuǎn)和最近的深度值,v表示深度圖的濃度值,則可得下式:
當(dāng)已知平行相機(jī)陣列的焦距f和基線距離b時(shí),可以得到以下式子:
而深度圖的濃度值可以通過視差來表示:
因此可以使用視差來計(jì)算深度和繪制深度圖。
在DERS中,深度估計(jì)使用的是一種全局匹配算法graph cut。
Graph cut是圖論中的一個(gè)概念,是一種有效的能量?jī)?yōu)化算法,普遍應(yīng)用于圖像分割、立體視覺、摳圖等算法中。
具體算法參見上篇文章:
http://blog.csdn.net/lin453701006/article/details/56480377
通過Graph cut算法找最大流,就可以為每個(gè)像素分配一個(gè)視差,求出對(duì)應(yīng)的深度圖濃度值了。