野代 史康
1月28日提出
本レポートではMAXFLOWを用いて階層グラフカットを用いたステレオマッチングプログラムを作成した.
開発環境は以下の通りである.
OS | Windows8.1 64Bit |
使用エディタ | VisualStudio2013 |
使用言語 | C++ |
ノードの構成はα拡張法と同様に,隣り合う画素の間にノードγを追加したものである.
ソースから画素までのコストは現時点でのその画素の視差をd,(x,y)での画素をIxyとし
Σ|Ixy - I(x-d)y|
である.
画素からシンクまでのコストはラベルα(i,k)のその画素の視差をA,(x,y)での画素をIxyとし
Σ|Ixy - I(x-A)y|
である.
α(i,k)はラベルの数をnとすると
i=0の時α(i,k)=0
i=1の時α(i,k)=n/2
i=2jの時α(i,k)=n*(1+4k)/2^(j+1)
i=2j+1の時α(i,k)=n*(3+4k)/2^(j+1)
とする.
kは0から2^(j-1)-1までの値を取る.
画素pと画素qに挟まれたノードγのコスト設定は
ソースからpまでのコストをβp,ソースからqまでのコストをβq,pからシンクまでのコストをαp,qからシンクまでのコストをαqと表記すると
ソースからγまでのコストはC|βp - βq|
γからシンクまでのコストはC|αp - αq|
である.
記述の簡化のため,
Vb = C|βp - βq|
Va = C|αp - αq|
とする.
また,γから画素p,qまでのコストは
Vb <= Vaのとき
pからγまでのコストをmax{0,C|αp-βq| - Vb}
qからγまでのコストをmax{0,C|αq-βp| - Vb}
γからp,qまでのコストをINT_MAX
とした.
Vb &rt= Vaのとき
γからpまでのコストをmax{0,C|βp-αq| - Vb}
γからqまでのコストをmax{0,C|βq-αp| - Vb}
p,qからγまでのコストをINT_MAX
とした.
プログラムの実行結果は以下のようになった.
c=1の時
右目画像
左目画像
結果
アロエの葉の先の結果に多少難があるが,比較的良好な結果が得られた.
本レポートでは階層グラフカット法によるステレオマッチングを実装した.
結果に多少難があるが,比較的良好な結果が得られたと判断した.