画像解析
7/4
画像解析
- ピンからキリまで
- パターン認識・画像理解・コンピュータビジョン
- 画像統計(ヒストグラム)
- 画像認識・分類・領域分割
- 2値化/ベクトル化・文書画像解析(OCR)
分類
ヒガンバナ
分類対象と分類結果の例
分類の処理過程
- 原画像
- 前処理
- 特徴抽出
- 識別 -> クラス
- 後処理
前処理
- 無用なデータの削除
- 有用なデータの抽出
- 有用なデータの追加・編集
特徴抽出
- 濃淡・色・分光スペクトル特徴
- テクスチャ(空間的特徴)
- 形・大きさ(幾何学的特徴)
特徴ベクトル
- x = [ x1, x2, ... xK ]
- K次元のベクトル空間
- マルチスペクトル(リモートセンシング)
- 画素の順次走査(文字認識)
- 次元多すぎる -> 主成分分析、正準分析 etc で減らす
- RGB -> (Y)UV
たとえば文字認識
- x = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
カテゴリー識別モデルの選択
- 色の違い
- 形・大きさの違い
- 設計者の経験・直観
想定するモデル空間での分布
(分類)クラス
- カテゴリーを構成するサブ集団
- 例:りんご
- 赤いだけではない = 影・ヘタ・青みがかった部分
サブカテゴリーの重なり
- 単純な識別ができない
- 別のモデルを併用(形・大きさ・近接性)
分類の手法
- 教師付き・教師なし
- 階層的クラスタリング
- hierarchical clustering
- 非階層的クラスタリング
階層的クラスタリング
アルゴリズム
- 距離行列の計算
- while 1:
- 距離が最小なクラスタ対の発見
- 最小距離クラスタ対の融合
- 融合後の新距離行列の計算
- 最終クラスタ数に到達 -> break
クラスタの融合
- dkh2 = αidih2 + αjdjh2 + βdij2
重心法
- αi = Ni/Nk, αj = Nj/Nk, β = NiNj/Nk2
最短距離法
- dkh = min(dih, djh)
最長距離法
- dkh = max(dih, djh)
クラスタリング計算例(重心法・初期 N=20)
クラスタリング計算例(N=15)
クラスタリング計算例(N=10)
クラスタリング計算例(N=5)
クラスタリング計算例(N=3)
非階層的クラスタリング
非階層的クラスタリング
- パラメータ決定(最終クラスタ数、判定条件等)
- 初期クラスタ重心の決定
- k-means 法
- 個体の再配置・クラスタ重心の修正・収束判定
- 孤立データ除去
- 終了判定 -> 分割・融合
距離測度
- ユークリッド距離
- |xi - xj| = (∑(kxi - kxj)2)1/2
- 市街地距離
- ∑ |kxi - kxj|
- チェス盤距離
- max(|kxi - kxj|)
- マハラビノスの距離 (Mahalanobis 1936)
- 標準偏差を単位とした距離(詳細 省略)
ユークリッド・市街地・チェス盤距離
後処理
- 分類結果の平滑化
- クラスとカテゴリーとの対応付け
- データ編集
分類処理システムの設計(サイクル)
- カテゴリー識別モデルの選択
- 前処理内容の設定
- 特徴選択
- 識別法の選択
- 訓練・学習
- 後処理内容の設定
- 分類性能の評価
参考文献
- 新編画像解析ハンドブック(高木・下田)
クラスタリング ソフト
- Cluster 3.0 ... Pycluster (Python binding)
- Manual
階層的クラスタリング(結果1)
- tree = treecluster(data, method=
a
, dist=e
) - クラスタ間距離=群平均法
階層的クラスタリング(結果2)
- tree = treecluster(data, method=
s
, dist=e
) - クラスタ間距離=最短距離法
階層的クラスタリング(結果3)
- tree = treecluster(data, method=
m
, dist=e
) - クラスタ間距離=最長距離法
非階層的クラスタリング(k-mean)
- clusterid, error, nfound = kcluster(data, N=4)
クラスタリング結果について
- RGB 3色(3次元)データを使った
- 「花」は分類できそうだが、「蝶」はむずかしい
- 「蝶」を分類するための何らかの前処理・特徴量追加が必要
問題
- 画像解析の方法は目的、手段によってさまざまであるが、
- 特徴量ベクトルの距離による _______ は
- 分類のためによく利用される。
なお
- このページは無断借用画像が多いので、早々に消す予定