画像処理論 第8回 佐藤 洋一 生産技術研究所 情報理工学系研究科電子情報学専攻/情報学環 http://www.hci.iis.u-tokyo.ac.jp/~ysato/ 本日の講義の内容 2値画像の処理 モルフォロジーによる各種操作 クラスタリング 階層的クラスタリング 分割最適化クラスタリング 教師付きクラスタリング Boundary extraction 正方形の構造要素でErodeしたものと元の連結成分との差 β ( A) = A − ( A − B) 構造要素サイズにより境界の太さを調整可能 Region filling 領域内の点から開始し、操作の繰り返しにより実現 X k = ( X k −1 ⊕ B) AC この例のように、範囲を限定しながら行うdilationの操作を “conditional dilation”と呼ぶ 連結成分の抽出 連結成分中の画素pから、下記処理の繰り返し X k = ( X k −1 ⊕ B) A Thinning 構造要素 Bi (特定方向画素)を連続的に用いて細線化する A ⊗ {B} = (( (( A ⊗ B1 ) ⊗ B 2 ) ) ⊗ B n ) ただし A ⊗ B = A − ( A ∗ B) 複合処理の例: Pruning 文字認識に伴うthinningやskeltoningで生じる小さな“ヒ ゲ”の除去など “a”の例 複合処理の例:Pruning ヒゲの長さがn以下である場合 1. ヒゲも含めて線の端点をnだけ短縮 2. 1.の結果得られた細線の端点をnだけ伸張 Pruning 端点からの縮小 以下のthinning操作をn回適用 X 1 = A ⊗ {B} Pruning 端点からの伸長 構造要素{B}によるHit-or-Miss変換により端点を検出 8 X 2 = ( X1 ∗ Bk ) k =1 Aによるconditional dilationにより端点からnだけ伸ばす X3 = (X2 ⊕ H ) A 処理の結果 X 4 = X1 X 3 A 郵便番号認識の前処理 複数文字の結合、ストロークの分断、ヒゲ、などへの対応 組み立て部品の分類 input thinning differencing, thinning end-point thinning, hit-or-miss end point thinning dilation dilation プリント基板の各要素の分類 input filling, differencing differencing Hit-or-miss thinning クラスタリング セグメンテーション 画像を意味のある領域に分割する処理 どうやって“意味のある”領域に分割するのか? クラスタリングによる画像分割 クラスタリング 分布対象の集合を部分集合に分割 画像では全画素(分布対象の集合)を領域(部分集合)に分割 特徴空間 分類対象の特徴量を表現する空間 特徴空間(R-G平面) 色で分類⇒(r,g,b) 色と場所で分類⇒(x,y,r,g,b) 特徴空間への射影 クラスタリングとは、特徴空間内の分布から群(クラスタ)を 見つける処理 要素間距離:ユークリッド距離 ユークリッド距離(Euclidean distance)を利用 L2-normと同じ t d ( x , mc ) = ( x − mc ) ( x − mc ) 2 E m2 m1 d E ( x , m1 ) d E ( x , m2 ) x 階層的クラスタリング 最初にN個のクラスタが与えられたとし、クラスタの数がCに 減少するまで最も類似した2つを融合 Cを事前に決定 クラスタ間の類似度の決め方に依存 クラスタ間の距離(1) 重心間距離 D(C1 , C2 ) = D( x1 , x2 ) 群平均距離 1 D(C1 , C2 ) = n1n2 ∑ ∑ D( x , x ) x1∈C1 x2 ∈C 2 1 2 クラスタ間の距離(2) 最長距離 最短距離 D(C1 , C2 ) = min x1∈C1 , x2 ∈C 2 D( x1 , x2 ) D(C1 , C2 ) = max D( x1 , x2 ) x1∈C1 , x2 ∈C 2 ※特徴空間内にクラスタが散在しやすい ※連鎖クラスタを生じやすい 連鎖クラスタ ウォード法 クラスタを融合したとき、クラスタの重心位置からの二乗距離 和の増加量ΔSを最小にするクラスタ2つを選択する方法 ∆S = S c − ( S a + S b) ただし、S = ∑ ( xi − m) t ( xi − m) N i =1 要素数が極端に大きいクラスタを生成しない傾向 分割最適化クラスタリング 分割の良さの評価指標をもとに、最適な分割を繰り返し探索 最初からN個のサンプルデータをC個のクラスタに分割し、 その分割の仕方を徐々に修正していく 近い2つを統合していく階層クラスタリングとの違い 最も代表的な手法はk-平均法 K-平均法 K-平均法の性質 メモリ効率の良さ 階層的クラスタリング→N(N-1)/2 組の距離 K-平均法→C個のクラスタの平均ベクトル 計算コストの高さ 各データに対して最近傍のクラスを探索 最終的なクラスタリングの結果が種子点に依存 異なる種子点で複数回クラスタリングを行い、 適当なものを選ぶなどの工夫が必要 K-平均法の適用例 Image Clusters on intensity Clusters on color K-means clustering using intensity alone and color alone 画像のグラフ表現 グラフ分割による画像セグメンテーション スペクトラルクラスタリング ノード間の類似度を表現した類似度行列の解析に もとづいたクラスタリング手法 類似度行列A ai , j = a j ,i = ノードiとjの類似度 類似度の例 輝度値の近さ 距離の近さ 色の近さ スペクトラルクラスタリングの概要 Data Similarities Block-Detection ノード⇒クラスタの結合度と要素間類似度 k個のノードのあるクラスタへの結合度をk次元ベクトルwで 表現 ノード⇒クラスタ結合度と要素間類似度の合計 T w Aw ∑{[ノードiの結合度]×∑{[ノードiとノードjの類似度] ×[ノードjの結合度]}} 類似度行列A 重みベクトルw 要素1 ノード⇒クラスタの結合度と要素間類似度 k個のノードのあるクラスタへの結合度をk次元ベクトルwで 表現 ノード⇒クラスタ結合度と要素間類似度の合計 T w Aw ∑{[ノードiの結合度]×∑{[ノードiとノードjの類似度] ×[ノードjの結合度]}} 類似度行列A 重みベクトルw ノード1 ノードk 結合度と類似度の最大化 ノード→クラスタの結合度、要素間の類似度の合計の最大化 T w Aw の最大化 重みベクトルの正規化を条件として wT Aw + λ ( wT w − 1) の最大化 wに関する微分=0より固有値問題に帰着 Aw = λw 固有ベクトルとブロック Block matrices have block eigenvectors: λ1 = 2 λ2 = 2 1 1 0 0 .71 0 1 1 0 0 .71 0 0 0 1 1 0 .71 0 0 1 1 0 .71 eigensolver λ3 = 0 λ4 = 0 Near-block matrices have near-block eigenvectors: λ1= 2.02 λ2= 2.02 λ3= -0.02 λ4= -0.02 1 1 .2 0 .71 0 1 1 0 -.2 .69 -.14 .2 0 1 1 .14 .69 0 -.2 1 1 0 .71 eigensolver Spectral Space Can put items into blocks by eigenvectors: 1 1 .2 0 .71 0 1 1 0 -.2 .69 -.14 .2 0 1 1 .14 .69 0 -.2 1 1 0 .71 e1 e2 Clusters clear regardless of row ordering: 1 .2 1 0 .71 0 .2 1 0 1 .14 .69 1 0 1 -.2 .69 -.14 0 1 -.2 1 0 .71 e1 e2 e1 e2 e1 e2 スケールの影響 データ分布 固有値列 小←大 スペクトラルクラスタリングの欠点 類似度行列の複数の固有値が等しい場合 固有値列 データ分布 4つの固有ベクトル Normalized cuts Current criterion evaluates within cluster similarity, but not across cluster difference Instead, we’d like to maximize the within cluster similarity compared to the across cluster difference Write graph as V, one cluster as A and the other as B Maximize N assoc = V assoc( A, A) assoc(B, B ) + assoc( A,V ) assoc( B,V ) assoc(A,A) : the sum of weights of all edges within A assoc(A,V): the sum of weights of all edges that have one end in A Nassoc and Ncut Consider Ncut instead of Nassoc N assoc assoc( A, A) assoc(B, B ) = + assoc( A,V ) assoc( B,V ) N cut V cut ( A, B ) cut ( A, B ) = + Assoc( A, V ) Assoc( B,V ) Cut(A,B) : the sum of weights of all edges that have one end in A and the other in B The cost Ncut is related to Nassoc as Ncut=2- Nassoc . Finding Minimum Normalized-Cut It can be shown that min N cut y T (D − W )y = min y y T Dy such that y (i ) ∈ {1,−b}, 0 < b ≤ 1, and y T D1 = 0 If y(i)=1, then i-th node belongs to one cluster, otherwise the other cluster. D is N x N diagonal matrix where D(i, i ) = ∑ W (i, j ) j If y is allowed to take real values then the minimization can be done by solving the generalized eigenvalue system (D − W )y = λDy Normalized Cut: Overview Compute matrices W & D Solve for eigen vectors Use the eigen vector with second smallest eigen value to bipartition the graph. (The smallest one is always zero.) (D − W )y = λDy Threshold for y(i) can be chosen s.t. y T (D − W )y y T Dy is minimized. Recursively partition the segmented parts if necessary. Normalized Cutによる分割の例 本日の講義内容のまとめ 2値画像の処理 モルフォロジーによる各種操作 クラスタリング 階層的クラスタリング 分割最適化クラスタリング スペクトラルクラスタリング 参考資料 Gonzalez&Woods 8.4章 Forsyth & Ponce, Chapter 14.5 画像処理標準テキスト4章
© Copyright 2024