動的輪郭モデル
- 2. Active Contour Modelとは
• Active Contour Model
対象となる空間を領域の性質を表す指標(エッジや他の特
徴量など)により複数の領域に分割
分割した領域は時間変化により,その境界線が連続的に
変化
• 手法は大まかに2種類
Snakes法
Level set法
- 4. Snakes(貪欲法)
𝜀𝑙𝑒𝑛 =
𝑖=1
𝑁
𝑣𝑖 − 𝑣𝑖−1
2
𝜀 𝑐𝑢𝑟𝑣 =
𝑖=1
𝑁
𝑣𝑖+1 + 𝑣𝑖−1 − 2𝑣𝑖
2
𝜀𝑖𝑚𝑔 = −
𝑖=1
𝑁
𝐼′ 𝑣𝑖
:弧長に対応する項
:曲率に対応する項
:勾配強度に対応する項
𝜀 𝑣 = 𝛼𝜀𝑙𝑒𝑛 + 𝛽𝜀 𝑐𝑢𝑟𝑣 + 𝛾𝜀𝑖𝑚𝑔
- 5. 𝜀 𝑣 = 𝛼𝜀𝑙𝑒𝑛 + 𝛽𝜀 𝑐𝑢𝑟𝑣 + 𝛾𝜀𝑖𝑚𝑔
Snakes(貪欲法)の解法
Step1: 曲線は指定
Step2: 変数を設定・初期化
d : 頂点の総移動量
n : 繰り返し回数
Step3: n=0にする
頂点の8近傍の𝜀 𝑣 を
それぞれ計算
Step4: 𝜀 𝑣 最小の画素へ移動
し,移動量をdに加算
Step5: すべての頂点において
計算をし,Step3に戻る
Step6: しきい値以下のdになる
か,n回処理したら終了
- 8. Level set法(Upwind Scheme)
Step1: 曲線は指定
Step2: 変数を設定・初期化
𝜑 : グリッドの補助関数値
F : 成長速度を保持するスカラー量
n : 繰り返し回数
Step3: 閉曲線上のグリッドに対して,
𝜑 = 0を設定.
境界を基準として符号付距離
(内側が負,外側が正)を与
える
Step4: 成長速度の計算
- 9. 𝜑
0
0 0
0
0 0 0
0
0 0
0
-2
-3 -2
-2
-1 -1 -1
-1
-2 -1
-2
5 4 3
-2 -3 ・・・
・・・
F(値は適当)
-3 -3 -2 ・・・
-2 -2 -3
Step3(左)とStep4(右)の図解
- 10. Step5: 補助関数値の更新
Step6: Zero level setの検出
Step7: 再初期化
閉曲線上のグリッドに対して,
𝜑 = 0を設定.
境界を基準として符号付距離
(内側が負,外側が正)を与
える
Step8: Step.3~Step.6をφの変化量
が閾値以下になるか,繰り返
し回数nが一定値を超えるま
で繰り返す
Level set法(Upwind Scheme)の続き
- 11. 𝐹|𝛻𝜑| = 𝛻+or𝛻−
𝛻+ = max(𝐷−𝑥
𝑖.𝑗)2 + m𝑖𝑛(𝐷+𝑥
𝑖.𝑗)2 + max(𝐷−𝑦
𝑖.𝑗)2 + m𝑖𝑛(𝐷+𝑦
𝑖.𝑗)2
𝛻−
= max(𝐷+𝑥
𝑖.𝑗)2
+ m𝑖𝑛(𝐷−𝑥
𝑖.𝑗)2
+ max(𝐷+𝑦
𝑖.𝑗)2
+ m𝑖𝑛(𝐷−𝑦
𝑖.𝑗)2
補助関数値の更新
𝐷−𝑥
𝑖.𝑗 =
𝜑𝑖,𝑗 − 𝜑𝑖−1,𝑗
ℎ
𝐷+𝑥
𝑖.𝑗 =
𝜑𝑖+1,𝑗 − 𝜑𝑖,𝑗
ℎ
𝐷−𝑦
𝑖.𝑗 =
𝜑𝑖,𝑗 − 𝜑𝑖,𝑗−1
ℎ
𝐷+𝑦
𝑖.𝑗 =
𝜑𝑖,𝑗+1 − 𝜑𝑖,𝑗
ℎ
ただし,
- 21. 参考
• 「バイオメディカルエンジニアリング 5,6コマ目 画像処理概論1」
http://www.riken.jp/brict/Ijiri/classes/
• 「コンピュータビジョン アルゴリズムと応用」
私のバイブル
• 「CV勉強会 発表資料 レベルセット法 4.6-4.12」
今回一番理解の助けになりました
後半の資料はここからの転載です
http://www.slideshare.net/takmin/