30. 差分法の導出
(38) ,(39)式を離散化する
(38)
(39)
t
n n 1 ( xn , yn )
n 1 (40)
t
n 1
これを最終的に, f ( ) の形式に変形したい
n n 1
31. 差分法の導出
n n 1 ( xn , yn )
n 1
t
n 1
力技で式を展開(省略)
in j in 1
,
t
,j
Ai k , j l (in k , j l in j )
k {0 , 1},l {1, 0}
, (43)
1 2 in 1
,j
Ai k , j l 2 (45)
h in 1, j l in 1
k ,j
32. 差分法の導出
n
1
{1,0} k {0,{1,0}
Ai k , j l t i , j Ai k , j l tin k , j l in1
,j (49)
k {0, 1},l 1},l
新しい補助関数値を用いた式 古い補助
関数値
i, j を一列に並べたベクトル u i, j
n
n
n 1
Αu u n
1 n1
u Α u
n
33. 差分法の導出
n 1
Αu u
n
1n1 1n11
, ,
0
n n 1
1, H 1, H
A t A t 1 A Ai , j 1t Ai 1t in j in 1
i 1, j i , j 1 i k , j l t , , j
k ,l
n n 1
W ,1 W ,1
0 n
W , H W1
n
,H
行列Aがとてもデカイ!
要素数: W H 2
34. 差分法の流れ
1. 変数φi,jと変数Ai,jと繰り返し回数nをグリッド毎に
準備
2. n=0として初期閉曲線C(p,0)を設定し,Cからの
距離を元に符号付き補助関数値φi,jを求める
3. nに1を追加し,φからAi,jを計算する
4. 以下の式からφを更新
1 n1
u Α u
n
5. nの適当な間隔で,再初期化処理を行う
6. 3~5を収束するか指定回数を超えるまで繰り
返す
35. 差分法の導出
曲率だけでなく,画像の濃度勾配を含めた場合
k I (a b ) (46)
t 濃度勾配 曲率
の逆数
in j in 1
,
t
,j
Ai k , j l (in k , j l in j ) k I a in 1
k {0 , 1},l {1, 0}
, ,j
(48)
kI b 2 in 1
,j
Ai k , j l 2 (47)
h in 1, j l in 1
k ,j
36. 差分法の導出
n
1
{1,0} k {0,{1,0}
Ai k , j l t i , j Ai k , j l tin k , j l k I a in1 t in1
,j ,j
k {0, 1},l 1},l
i, j を一列に並べたベクトル u i, j
n
n
n1
Αu B u
n
u Αn 1
u n 1
B
39. 4.9.1 ADI法
i*, j in 1
Ai 1, j l (i*1, j i*, j ) Ai 1, j (i*1, j i*, j )
,j
t (52)
Ai , j 1 (in 1 in 1 ) Ai , j 1 (in 1 in 1 )
,j
1
,j ,j
1
,j
i*1, j
*
a
i 1, j ai , j ai 1, j i , j bi , j (53)
*
i 1, j
更新する補助関数値
ai 1, j Ai 1, j t
(x方向のみ)
ai , j 1 Ai 1, j t Ai 1, j t
ai 1, j Ai 1, j t
j ,j ,j ,j ,j
1
bin, 1 in 1 Ai 1, j t in 1 in 1 Ai , j 1t in 1 in 1
1
,j
40. 4.9.1 ADI法
*
i, j を一列に並べたベクトル u
*
*
i, j
n 1
A xu b*
0
Ax ai 1, j ai , j ai 1, j
0
1 n 1
u Α b
*
x
まずはx方向のみ計算!
45. 4.9.2 AOS法
x方向
i*, j in 1
Ai 1, j l (i*1, j i*, j ) Ai 1, j (i*1, j i*, j )
,j
t
A xu* u n1
Ai , j 1 (in 1 in 1 ) Ai , j 1 (in 1 in 1 )
,j
1
,j ,j
1
,j
y方向
i*,*j in 1
Ai 1, j l (in 1j in 1 ) Ai 1, j (in 1j in 1 )
,j
1, ,j 1, ,j
t A y u** u n 1
Ai , j 1 (i*,*j 1 i*,*j ) Ai , j 1 (i*,*j 1 i*,*j )
u* u**
un
2
46. 4.10 Geodesic Active Contour
以下の式で定義された成長速度を持つ曲線を
Geometric Active Contourと言う
Ct F ( )N (11) Fi , j k I ,i , j (a b i , j ) (20)
閉曲線の 速度場 法線ベク
濃度勾配 曲率
時間変化 トル
が大きい
ほど小
Ct N の時,以下のLを最小にする
L C (q) dq (q) dq ds
'
47. Geometric Active Contour
Ct N の時,以下のLを最小にする
L C (q) dq ds
'
輪郭線上速 閉曲線の
度場の合計 長さ C(p,t-1)
曲率の合計
輝度勾配について考えない場
合,閉曲線の長さを最小にす C(p,t)
る方向に動く
48. 4.10 Geodesic Active Contour
Geometric Active Contourの問題点:
•対象によっては曲線の成長が不安定
•ノイズやギャップ(切れ)に敏感すぎる
Geodesic Active Contour
LR g C (q)C ' (q) dq g C ( s)ds (67)
境界の特徴
このLRを最小にするアプローチ
49. 4.10 Geodesic Active Contour
LR g C (q)C ' (q) dq g C ( s)ds (67)
この最小化を最急降下法で行うと(証明は参考文献にて)
Ct g ( I )N g ( I ) NN
g ( I ) g ( I ) NN
F ' ( )N
と解ける.
ちなみに, F ' ( ) は F ( ) の微分という意味ではない.(お陰で長時間悩んだ)
50. 4.10 Geodesic Active Contour
補助関数の更新式は,以下の通り
t F ' ( )
g ( I ) g ( I ) N
g ( I ) g ( I )
境界特徴 境界特徴 補助関数
の勾配 の勾配
補助関数
補助関数
の勾配の
の曲率
大きさ
まだ直感的にわからない・・・。
51. 4.10 Geodesic Active Contour
Geometric Active ContourとGeodesic Active Contourを比較して,
理解を深める.
ここで以下の式の,a=0,b=1とすると
Fi , j k I ,i , j (a b i , j ) Fi , j kI ,i , j i , j
g(I)は境界に関する関数なので,kと対応させる.
1
g ( I ) k I
1 G I
濃度勾配の大きさ
F g (I )
52. 4.10 Geodesic Active Contour
Geometric Active Contour Geodesic Active Contour
t F ( ) t F ( )
'
k I g ( I ) g ( I )
g ( I )
Geometric
との違い
濃度勾配の空間的な変化
を見ている
ボケやノイズ,ギャップに
強くなる
53. 4.10 Geodesic Active Contour
Gradient vector fieldを用いたGradient vector flow:
• エッジの位置情報だけでは動的輪郭の移動方向が正しく判別出来
ない
• あらかじめエッジの大まかな位置を表すベクトル場を作成しておき,
Geodesic Active Contourをこのベクトル場に基づいて移動させる.