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