画像処理論 第7回 佐藤 洋一 生産技術研究所 情報理工学系研究科電子情報学専攻/情報学環 http://www.hci.iis.u-tokyo.ac.jp/~ysato/ 前回講義内容の復習 RANSAC 対象領域の抽出 2値化処理 Deformable contours RANSACによるモデル当てはめ S個の点により定義されるモデルの場合 1.ランダムなサンプリング データ点からS点をランダムに選択 選択したS点からモデルパラメタを計算 2.サポートの検証 データ点のうち、モデルに十分近い点(サポート)を選択 十分なサポートがあれば終了、or 以上の手順を十分な回数繰り返し 3.終了処理 モデルパラメタのサポート点を用いて、モデルパラメタを再推定 対象領域の抽出 閾値処理 ヒストグラムにもとづく閾値決定法 p-tile法 モード法 分散比最大化(Ohtsu’s method) Deformable contour models segmentation tracking Deformable contourのエネルギー関数 E ai Econt ( pi ) bi Esmooth ( pi ) ci Eedge ( pi ) N i 1 internal external Econt ( pi ) (d pi pi 1 ) 2 Esmooth ( pi ) pi 1 2 pi pi 1 Eedge ( pi ) I ( pi ) 2 Edge attraction Continuity Greedy アルゴリズムによるEの最小化 Smoothness 連続系での表現 Energy Functional is defined as: E (a ( s ) Econt ( s ) b( s ) Esmooth( s ) c( s ) Eedge ( s )) ds 2 2 2 d p dp (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 本日の講義の内容 2値画像における領域と処理 モルフォロジー処理 領域の連結性 領域の属性を考える前に、領域の連結性を定義 4近傍 4連結と8連結 連結成分(connected component) ⇒連結したひとまとまりの画素 8近傍 連結成分のラベリング 連結成分ごとに異なるラベル(番号)を付与 ラベリングは連結成分の属性解析に必要 2値画像のラベリング http://homepages.inf.ed.ac.uk/rbf/HIPR2/labeldem o.htm ラベル付けのアルゴリズム 1. L=0とし、順方向ラスタスキャン開始 2. ラベルの無い画素 f(m,n) において、既走査の4隣接画素 (下図の○)のラベル値を調べる 全て0(背景)ならば、L=L+1とし、g(m,n)=L ラベル値が1種類ならば、g(m,n)=L ラベル値が2種類でL, L’(L<L’)ならば(ラベルの衝突、下図の①と④)、 g(m,n)=Lとし、ラベルL’の既走査画素をLに変更 領域の特徴量 連結成分とホール ホール 単連結(simply connected) 一つの連結成分中に存在し、背景と連結しない0連結成分 ホールのない連結成分 多重連結(multiply connected) ホールを1つ以上含む連結成分 単連結 ホール 多重連結 オイラー数 連結成分のトポロジカルな性質 位相的な不変量であり、図形を連続的に変化させても不変 オイラー数 E=(連結成分の個数)-(ホールの個数) 連結成分のモーメント 図形的特徴量としてよく用いられる 2次元関数 g(x,y) の p+q次モーメント m pq x p y q g ( x, y )dxdy 連結成分のモーメント m pq p q x y ( x , y )R 面積と重心 面積:0次モーメント m00 0 0 x y ( x , y )R 1 ( x , y )R 重心:1次モーメントを0次モーメントで正規化 m10 x1 y 0 x ( x , y )R ( x , y )R 0 1 m x y y 01 ( x , y )R ( x , y )R m10 m01 xG , yG m00 m00 重心モーメントと慣性モーメント 重心モーメント(重心周りのモーメント) M pq ( x , y )R 2次の重心モーメント(慣性モーメント) M 20 p q ( x x ) ( y y ) G G (x x ( x , y )R G ) 2 , M 02 (y y ( x , y )R 連結成分の主軸方向 1 2 arctan( 2 M 11 ) M 20 M 02 G ) 2 , M 11 (x x ( x , y )R G )( y yG ) 慣性モーメント量の利用 正規化重心モーメントと不変量 正規化重心モーメント 0次モーメントで正規化した重心モーメント pq M pq M 00 pq , 1 2 回転・平行移動・拡大縮小に対する不変量 2~3次モーメントで7つの不変量 1 20 02 2 ( 20 02 ) 2 4112 3 (30 312 ) 2 (3 21 03 ) 2 4 ( 03 12 ) 2 ( 21 03 ) 2 不変量の例 縮小 反転 注)ここでは濃淡図形のモーメント 元の図形 回転 回転 領域の特徴的な点 内部点と境界点 境界点 2値画像の領域で背景と接している経路をなす点 内部点 2値画像の領域で境界点以外の点 8連結の場合の内部点:4近傍に背景がない 4連結の場合の内部点:8近傍に背景がない 境界線追跡 ある境界点からスタートし、順に境界点を追跡 注目画素を中心に常に一方向で3X3の近傍を調べ、 背景→前景に変わる点を見つける 追跡開始点にたどりついたら探索を終了 2値画像の画素の分類:連結数 境界線追跡をしたとき、その画素を通過する回数 4連結の場合 NC [ 4] 1 8連結の場合 NC [8 ] 2 連結数にもとづく画素の分類 連結数0: 孤立点 または 内部点 連結数1: 端点 連結数2: 連結点 (例 (f)のN8, (j)のN4) 連結数3: 分岐点 (例 (h)のN8) 連結数4: 交差点 (例 (l)のN8) (例 (a), (k)のN8) (例 (i)) 連結数の計算 連結数は次式により求めることができる NC NC [ 4] ( f k4近傍 [8 ] ( f k4近傍 k k f k f k 1 f k 2 ) f k f k 1 f k 2 ) x4 x3 x2 x5 x0 x1 x6 x7 x8 ただし、k 8ならk k 8とする f 1 f 距離変換と細線化 連結成分の距離変換 距離変換(distance transformation) 連結成分の各画素に対して、背景の最小距離を計算 4-近傍距離と8-近傍距離 連結性に応じて2種類:4近傍距離と8近傍距離 連結成分の画素(m,n)から背景画素(k,l)への距離 d ( 4 ) (m, n) min ( m k n l ) k ,l d (8) (m, n) min{max( m k , n l )} k ,l 距離変換の方法 手順 1. 境界点となる画素の距離値を1にセット 2. 画素の近傍点を調べ、近傍点に距離がセットされている場合に は、その距離+1にセット 3. 全画素に距離が割り当てられるまで2を繰り返す 最大距離回数だけ全画素を走査するため非効率 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 X X X 1 1 2 2 2 1 1 2 2 2 1 1 X X X 1 1 2 X 2 1 1 2 3 2 1 1 X X X 1 1 2 2 2 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ラスタ走査2回による距離変換 順方向と逆方向のラスタ走査の組合せで距離変換 距離変換の例 http://www.dai.ed.ac.uk/HIPR2/distancedemo.htm 連結成分の細線化 連結性を保ったまま、連結成分の画素を除去 3X3の局所領域における処理の繰り返しにより実現 細線化アルゴリズム(8連結) 右側境界→上側境界→左側境界→下側境界の順に、 画素を取り除けるかどうか調べていく 基本的な考え方 3X3近傍に2つ以上の連結成分が存在すれば保存 (抽出点条件) →その画素を取り除いてしまうと連結性を変えてしまうため 細線化アルゴリズム(8連結) 1. 繰り返し回数 k=0 とする 2. flag=0 3. k=k+1 4. 画像中に境界条件C(k)を満たす値1の画素pがあればflag=1とし、次の 処理をする pが抽出点条件を満たしていればf(p)=2としその画素を永久保存点とする 満たしていなければf(p)=3とする 5. f(p)=3の画素全てをf(p)=0とし消去する 6. k<4ならば3.へ 7. flag=0なら終了。そうでなければ1.へ 細線化の例 モルフォロジー処理 input filling, differencing differencing Hit-or-miss thinning モルフォロジー処理 2値画像のモルフォロジー処理 Mathematical morphologyにもとづく幾何構造処理 一般的にn次元のデータに対して定義 濃淡画像や3次元ボリュームデータにも拡張可能 基本4操作 Dilation Erosion Opening Closing 基本定義(1) 連結成分A Z2(2次元の整数)で定義される集合 原点が1つ定義される Aの構成要素(画素)はa=(a1,a2) Translation of A by x (平行移動) ( A) x {c c a x, for a A} 基本定義(2) Reflection of B(反転) Bˆ {x x b for b B} Complement of set A(補集合) AC {x x A} Difference of two sets A and B(差分) A B {x x A, x B} A B C Dilationオペレータ(膨張) dilation of A by B B:構造要素 A B {x ( Bˆ ) A } x A Bˆ B A B Erosionオペレータ(収縮) erosion of A by B A B {x ( B) x A} DilationとErosionの双対関係 Erosionの補集合は ( A B) {x ( B) x A} C C ( B) x が A に含まれるということは ( B) x AC ( A B ) {x ( B ) x A } C C C C C ( B) A ( B) A となる x を満たすxの補集合は x x ( A B )C {x ( B) x AC } AC Bˆ Openingオペレータ opening of A by B 細い所を削除する性質 A B ( A B) B Closing closing of A by B 細い溝を埋める性質 A B ( A B) B Openingオペレータの解釈 構成要素BをAの中に収まるようにスライドさせた時にBによ り走査される領域 A B {( B) x ( B) x A} Closingオペレータの解釈 zを含むようにBをスライドさせた場合、必ずBとAが重なりを持 つような z はA・Bの要素となる OpeningとClosingの性質 Opening とclosing はcomplementationとreflectionに 関して双対関係 ( A B) C ( AC Bˆ ) Openingの性質 A B はAのサブセット もしCがDのサブセットならば、 C B は D B のサブセット ( A B) B A B Closingの性質 Aは A B のサブセット もしCがDのサブセットならば、 C B は D B のサブセット ( A B) B A B http://homepages.inf.ed.ac.uk/rbf/HIPR2/morops. htm http://www.cs.bris.ac.uk/~majid/mengine/morph. html Morphological filter 基本オペレータの組合せで各種処理を実現 細かなゴミの除去の例 Hit-or-Miss Transform (1) テンプレートマッチング 入力画像Aの中で対象Xを検出 ここで B は X にもとづくテンプレート B ( B1 , B2 ) ( X ,W X ) Hit-or-Miss Transform (2) A B ( A X ) [ AC (W X )] AとACのErosion Erosionの結果を統合→Xの検出 Hit-or-Miss Transform (3) Hit-or-Miss変換 * A B ( A X ) [ A (W X )] C ここでBはXにもとづくテンプレート B ( B1 , B2 ) ( X , W X ) erosionとdilationの双対関係と差分の定義より A B ( A B1 ) ( AC B2 ) すなわち A B ( A B1 ) ( A Bˆ 2 ) 本日の講義内容のまとめ 2値画像における領域と処理 連結性とラベリング処理 オイラー数 モーメントと図形特徴 境界線と連結数 距離変換 細線化 モルフォロジー処理 参考資料 Trucco&Verri 5.4章 谷口 7.1~7.4章 Gonzalez&Woods 8.4章 講義に関するメモ 平成14年度 追加すべき項目 平成16年度 分量がやや多すぎ Gray-scale morphological operations Convex HullとThickeningを割愛する 質問事項 なぜDilationの構造要素を反転するのか Convex HullがConvex Hullになっていない理由⇒第2版を確認 Thinningの最後のステップを確認 平成18年度 Convex hullをカット 各種処理部分が単調すぎ⇒一部を減らし、濃淡モルフォロジーを追加すべき 平成20年度 連結成分記述からスタート 画素の連結数の説明を復活 モルフォロジーの説明を分割 各操作の説明にアプレットを利用する http://homepages.inf.ed.ac.uk/rbf/HIPR2/morops.htm 平成24年度 Hit-or-Missの前までで終了 オイラー数の計算 方法1.境界を追跡した場合の向きによりホールを検出 方法2.凸画素と凹画素の数え上げ 方法1 ある方向を考えた場合に、 オイラー数E=(# convex pixels)-(# concave pixels) 方法2 近傍画素からのオイラー数の計算 4連結 E(4) = V – E + F 8連結 E(8) = V – E – D + T – F V: 画素数 V=23, E=15, D=2, T=11, F=0 チェーンコードによる線図形の表現 輪郭の方向コードにより形を表現 境界線追跡や細線化処理などにより求めた線図形を効率よく記 述する方法 平行移動に対して不変だが、回転に対しては変化 →Derivativeの利用 フーリエ記述子による線図形の表現 輪郭形状を各周波数成分の和で表現 s (k ) x(k ) jy (k ) ただしk 0, , N 1 この時、フーリエ変換とフーリエ逆変換は 1 a (u ) N N 1 s(k ) exp[ j 2uk / N ] k 0 N 1 s (k ) a(u ) exp[ j 2uk / N ] u 0 一部の隠れなどで係数が大幅に変化してしまう問題 フーリエ記述子による形状の近似 M(M<N)次元までの係数を利用することにより 概略形状を表現 M 1 sˆ(k ) a (u ) exp[ j 2uk / N ] k 0 フーリエ記述子による形状表現の例 フーリエ記述子の変換 元図形の回転、平行移動、拡大縮小、開始点の変更は係数 の簡単な変換で表現 回転 sr (k ) s (k ) exp[ j ] ar (u ) a(u ) exp[ j ] 平行移動 st (k ) s (k ) t x jt y at (u ) a (u ) (t x jt y ) (u ) 拡大縮小 s s ( k ) s ( k ) as (u ) a(u ) 開始点の変更 s p (k ) s(k k0 ) a p (u ) a(u ) exp[ j 2k0u / N ] デモ:フーリエ記述子 http://www.s2.chalmers.se/research/image/Java/N ewApplets/FourierDescriptor/index.htm Convex hull 連結成分Sに対し、Sを内包する最小の凸形状HをSの convex hull(凸包)と呼ぶ 連結成分の形状を表現するものとして有効な特徴 D=H-Sはconvex deficiencyと呼ばれ、D/Hは連結成分の凹度 合いを表す 境界の分割に利用 細線の特徴点 細線化後の各点を端点、分岐点、孤立点、通過点に分類 線画像のベクトル化(1) 端点と分岐点をもとに線分に分割 線画像のベクトル化(2) 画素列を再帰的に分割 両端点を結ぶ直線から最も遠い点で 分割 全ての点がある距離以内に収まった 段階で終了
© Copyright 2025 ExpyDoc