Total Variation Minimization 2

今日はA2BCモデルを実装した.思ったよりも簡単に出来たが,パラメータはこれであってるのかな.

まずはROFモデル計算のおさらい.u=f-PG(f)という写像を使って骨格画像uを計算します.PGが写像関数で,内部にpという変数を隠し持っています.だから,正確には写像を使ってpを計算します.v=λdiv(p)によって,テクスチャ画像vが得られます.そして,u=f-PG(f)=f-v=f-λdiv(p)によって,骨格画像uが得られます.

さて,この計算方法をA2BCモデルに適用します.まず,u0 = v0 = 0で初期化します.次に,v1 = PG(f-u0),u1 = f - v1 - PG(f-v1)を繰り返し計算します.ここでも先と同様にpvとpuという変数を隠し持っています.したがって,fの代わりにf-u0を代入し,pvを計算します.さらに,v1=μdiv(pv)によってテクスチャ画像を得ます.それから,fの代わりにf-v1を代入し,puを計算します.さらに,u1=f-v1-λdiv(pu)によってテクスチャ画像を得ます.

パラメータは(τと)μとλです.A2BCモデルのμはROFモデルのλと同じ役割です.したがって,16/256ぐらいを指定します.A2BCモデルのλは元画像との差を決定づけます.ここでは,μよりも小さくして,4/256ぐらいを指定しました.なお,τはROFモデルでは1/4でしたが,A2BCモデルでは1/8以下でないと収束しないようです.

プログラムは先日のソースに追加しました.