画像処理論 第6回 佐藤 洋一 生産技術研究所 情報理工学系研究科電子情報学専攻/情報学環 http://www.hci.iis.u-tokyo.ac.jp/~ysato/ 前回講義内容の復習 ハフ変換 一般化ハフ変換 幾何学的ハッシング エッジ点からの直線の検出 ハフ変換(Hough transform)が良く用いられる パラメータ空間への投票により直線を検出 パラメタ空間における投票 画像中の各エッジ点ごとにパラメタ空間で直線を追加 画像中の直線に対応するパラメタ(m,c)にピーク →ハフ変換の基本的な考え方 c y c = − xm + y (x,y) c = − x′m + y′ (x’,y’) x m 直線を表すパラメタ空間 一般化ハフ変換 1. 各エッジ点(x,y)において、gradientからエッジ方向θを計算 2. 形状定義表を参照し、基準点の候補位置Qに投票 3. 全ての投票後に、候補位置Qにピークがあれば、対象物体を その位置に検出 Q xQ = x + r (θ ) cos[α (θ )] Q yQ = y + r (θ ) sin[α (θ )] 回転・スケールの考慮 1. 各エッジ点(x,y)において、gradientからエッジ方向θを計算 2. 全ての回転Φ・スケール S に対して、式(1)と形状定義表を 参照し、基準点の候補位置Qに投票 3. 形状定義表のインデックスとなるエッジ方向は θ − Φ 最後に、パラメタ空間 ( x, y, S , Φ )においてピークを検出する Pi ( x, y ) Sri Q αi + Φ θ = θi + Φ θ −Φ 幾何学的ハッシング 一般化ハフ変換と似た物体検出法 モデル準備: 姿勢に対する不変特徴をハッシュテーブルに記録 幾何学的ハッシング モデル検出: 画像中特徴点から2点を基底として選択 各特徴点について、ハッシュテーブルのエントリに投票 最高得点のモデル・基底を検証 y 画像中特徴点 A1,4 A6,5 A1,4 A6,5 3 5 1 6 5 A1,4 A6,5 4 1 1 A1,4 A6,5 2 3 A1,4 A1,4 4 2 A6,5 5 モデルA x 4 3 2 基底1-3の時、(A, 1-4)で最高得点 本日の講義の内容 RANSAC 対象領域の抽出 画像の2値化 Deformable contours RANSAC(RANdom SAmple Consensus) データ点からモデルをロバストにもとめる推定法 ポイントは出来るだけ少ない観測点からの推定 点組のランダムなサンプリングとサポートの検証の繰り返し 真の直線 外乱により影響を受けた直線 特長:外乱(outlier)に対してロバスト M. Fischler and R. Bolles, “Random sample consensus: a paradigm for model fitting with applications to image analysis and automatic cartography”, Communications of the ACM, vol. 24, no. 6, 1981. RANSAC for Image Mosaic RANSAC for 2D Homography xl = Hxr ここで、xは同次座標表現、Hは3x3行列 wx x x wy ≈ y ⇔ y w 1 RANSAC for 2D Homography xl = Hxr ここで、xは同次座標表現、Hは3x3行列 wx x x wy ≈ y ⇔ y w 1 4点のペアからHが決定される→RANSACによるHの推定 Creating Panoramas Creating Panoramas Creating Panoramas 基本手順 S個の点により定義されるモデルの場合 1.ランダムなサンプリング データ点からS点をランダムに選択 選択したS点からモデルパラメタを計算 2.サポートの検証 データ点のうち、モデルに十分近い点(サポート)を選択 十分なサポートがあれば終了、or 以上の手順を十分な回数繰り返し 3.終了処理 モデルパラメタのサポート点を用いて、モデルパラメタを再推定 サポート判定のための閾値 モデルにどれだけ近ければサポートとするか? 一般には経験的に閾値を調整 誤差が正規分布する場合には統計モデルにもとづいて計 算可能 ⇒資料参照(Hartley 4.7.1) 繰り返し回数に対する閾値 ランダムなサンプリングを何回繰り返せば十分か? 正しいデータ点の確率が w で、確率 p で正解モデルを見つ けるのに必要な回数 N log(1 − p ) (1 − w ) = 1 − pより、N = log(1 − w S ) S N 例)2個の外乱を含む12点からp=0.99で直線を見つけるには N=4 log(1 − 0.99) ≈ 3.9 N= 2 log(1 − (10 / 12) ) サポート点数に対する閾値 どれだけのサポート点が得られれば十分か? 経験的には、サポート点数/データ点数が確率 w に近くな るように設定 例)w=0.8の場合、12×0.8=約10個 確率wが未知の場合の工夫 実際には w が予め分かっている場合は稀 控え目な見積もりから徐々に絞り込む 低めのwで推定し、求められたモデルに対するサポート点の割合 を元にwとNを更新し、再度推定を繰り返す N回繰り返された段階で終了 具体的な手順 1.N=∞, w=0.5 に初期化 2.繰り返し回数が N 回に達するまで以下を繰り返す S点をランダムに選び、モデルパラメタの推定+サポート点の判定 w=サポート点数/データ点数 に更新 新しい w と一定の確率pをもとに N を再計算 対象領域の抽出 2値画像 前景(foreground、対象物)と背景(background) 例)文書画像における文字領域と、顕微鏡画像における細胞領域 画像の2値化 画像の輝度値や色度値などに閾値処理 I (i, j ) ≥ T 1 B(i, j ) = I (i, j ) < T 0 大局的閾値法 画像全体に同一の閾値 局所的閾値法 局所領域ごとに閾値を変更(可変閾値法) ヒストグラム 画素値の分布をヒストグラムにより表現 横軸が画素値、縦軸は度数(頻度、カウント値) ヒストグラムと閾値 いかにして適当な閾値を設定するか? G画像 http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MARBLE/medium/bina ry/histograms.html p-タイル法 対象物の面積の割合が既知の場合に利用 ヒストグラムの累積値(累積ヒストグラム)がpになる画素値 が閾値 1-p T モード法 ヒストグラムが双峰性(bimodal)を持つ場合に利用 閾値を谷の底に設定 1. 2. 3. 局所的最大値を与える画素値t1, t2を求める t1とt2の間で局小値を与えるtを求める 次の条件を満たせば閾値として採用 f (t ) t 2 − t1 > C1 かつ < C2 min[ f (t1 ), f (t 2 )] C1,C2の調整が必要 Otsu’s method 2つのクラス間の分離を最大化する閾値を計算 p-タイル法やモード法と違いパラメタの調整が不要 ヒストグラムが双峰性でなくとも適用可能 →しかし、必ずしも適当な閾値とは限らない Nobuyuki Otsu (1979). "A threshold selection method from gray-level histograms". IEEE Trans. Sys., Man., Cyber. 9 (1): 62–66 分離度の最大化 閾値Tにより全画素がクラスC1とC2に分離 クラス内分散 σ W 2 クラス間分散 σ B 2 ω1σ 12 + ω2σ 2 2 = ω1 + ω2 ω1 ( µ1 − µ ) 2 + ω2 ( µ 2 − µ ) 2 = ω1 + ω2 ただし、µ1とµ 2 , σ 1とσ 2 , ω1とω2は各クラスの平均、分散、画素数 これらの比により定義される分離度を最大化 σ B (T ) ) T = arg max( 2 T σ W (T ) 2 分散比の例 濃度値のヒストグラム Tに対する分散比の変化 閾値処理では扱えないケース 画素値だけでは分離が困難な場合も多い Deformable Contoursの利用 大動脈部抽出の例 Deformable Contours 対象領域を抽出するアプローチの一つ Active Contoursとも呼ばれる Snakeが最も有名 Think of a snake as an elastic band: of arbitrary shape sensitive to image gradient that can wiggle in the image represented as a necklace of points “Original” SNAKES [Kass87] Snakes: Active contour models, M. Kass, A. Witkin, D. Terzopoulos, International Journal of Computer Vision, 1(4), 1987 エネルギー関数 エネルギー関数の最小化により輪郭を決定 エネルギーは輪郭の場所と形に依存 どのようにエネルギー関数を定義するか? 3種類の力を考慮し、頂点位置を更新 Edge attraction Continuity Smoothness External force It needs to be attracted to contours: Edge pixels must “pull” the snake points. The stronger the edge, the stronger the pull. The force is proportional to |∇ I| Edge attraction Continuity Smoothness Internal force (continuity) The snake should not break apart! The farther the neighbors, the stronger the force The force is proportional to the distance |Pi – Pi-1| Edge attraction Continuity Smoothness Internal force (smoothness) The snake should avoid “oscillations” Penalize high curvature Force proportional to snake curvature Edge attraction Continuity Smoothness Contour Parametrization Consider a contour parameterization p=p(s) where s is the “arc length” s p(s) Snake Energy Functional Energy Functional is defined as: E= ∫ (a ( s ) Econt ( s ) + b( s ) Esmooth( s ) +c( s ) Eedge ( s )) ds 2 2 2 dp d p = ∫ (a( s) + b( s ) 2 +c( s )( − ∇I ( p ) )) ds ds ds internal external where a,b,c are “weights” to control influence. Edge attraction Continuity Smoothness In discrete form Given a snake with N points p1,p2,…,pN, E is simplified into: E= ∑ ai Econt ( pi ) + bi Esmooth ( pi ) + ci Eedge ( pi ) N i =1 Econt ( pi ) = (d − pi − pi −1 ) 2 Esmooth ( pi ) = pi −1 − 2 pi + pi +1 Eedge ( pi ) = − ∇I ( pi ) 2 Edge attraction Continuity Smoothness Minimization by Greedy Algorithm • Each point p moves within a small window to minimize the energy Neighbors U(p) p • Compute the new energy for each candidate location • Move the point to the one with the minimum value Keeping corners … Before starting a new iteration: Search for “corners”: max curvature large gradient Corner points should not contribute to the energy (set bi = 0) Snake Algorithm Input: Gray scale image I A chain of points p1,p2,…,pN f is the fraction of points that must move to start a new iteration U(p) is a neighborhood around p d is the average distance between snake points. Snake Algorithm (continued) While the fraction of moved points > f For i=1,2,…,N Find a point in U(pi) s.t. the energy is minimum, Move pi to this location For i=1,2,…,N Estimate the curvature k=|pi-1–2pi+pi+1| Look for local max, and set bmax = 0 Update d Applications Examples Segmentation Tracking 本日の講義内容のまとめ RANSAC 対象領域の抽出 画像の2値化 Deformable contours 参考資料 谷口 5.1-5.2章 Hartley 4.7.1 RANSAC論文 Trucco&Verri 5.4章
© Copyright 2024 ExpyDoc