空飛ぶロボットのつくりかた

ロボットをつくるために必要な技術をまとめます。ロボットの未来についても考えたりします。

領域処理のお勉強(9)

f:id:robonchu:20180507181750p:plain

参考: Willow Garage ブログの非公式翻訳: OpenCV 2.1をリリース

やりたいこと

領域処理について学ぶ

教科書

CG-ARTS | 書籍・教材

目次

領域のテクスチャ

テクスチャ:繰り返しの輝度パターンを指す

テクスチャの繰り返しパターンを数値化する方法を以下に示す

  1. 2次フーリエ変換

  2. ガボールフィルタ

  3. 画素値の同時生起行列

周波数特徴量

2次フーリエ変換を用いるとテクスチャの特徴を波という観点から見ることができる。

領域分割し、その領域のパワースペクトルを測ることでテクスチャを数値化できる。

f:id:robonchu:20180507144328j:plain

参考: 汚染度の定量化・2次元フーリエ変換、その理論的導入

ガボールフィルタ

f:id:robonchu:20180507145138j:plain

参考:

www.slideshare.net

ガボールフィルタ:正弦波・余弦波にガウス関数で窓をかけた関数になっており、パラメータを操作して、様々な方向と強度をもつフィルタを多数準備して、特徴抽出を行う。

このフィルタ群をフィルタバンクとよび、抽出された特徴量の群はtextonとする。

同時生起行列を用いた統計的特徴量

f:id:robonchu:20180507151209g:plain

参考: グレー レベルの同時生起行列の作成 - MATLAB & Simulink - MathWorks 日本

同時生起行列:離れた2つの場所にある画素対の値から画素値の一様性、方向性、コントラストなどの性質を表す特徴量を求めるもの

同時生起行列を用いて計算するおもな特徴量は次の7種類がある

  1. エネルギー

  2. コントラスト

  3. 相関

  4. エントロピー

  5. サムエントロピー

  6. 逆差分モーメント

隣接画素の統合による領域分割処理

f:id:robonchu:20180507153328j:plain

参考: 領域拡張法のテスト: メモブログ

領域統合法:類似した特徴量を持ち空間的に隣接した画素の集合に画像を分割する手法

画素特徴量のクラスわけによる領域分割処理

f:id:robonchu:20180507153856j:plain

参考: 画像処理論

画素をその特徴量に基づいて特徴空間に基づいて特徴空間に写像し、その特徴空間でクラス分けし、各クラスに属する画像群を領域として画像を分割する方法

ミーンシフトを用いた画像分割処理

ミーンシフト法 → 画像領域の分割や対象画像の追跡に用いられる

参考: Mean Shift Clustering

基本原理

ある任意の点から半径hの超球を考え、その範囲にある点群の平均を計算し、その位置に観測点を移動する。同様の操作を繰り返すと、観測点は最大勾配の方向に移動し、やがて極大点に収束する

確率密度関数の推定

f:id:robonchu:20180507155238j:plain

参考:

www.slideshare.net

確率密度関数の勾配

勾配法:確率密度関数のある点から勾配の大きい方に移動して極大点を探索する方法

f:id:robonchu:20180507155656j:plain

参考:

www.slideshare.net

勾配法を用いた極大探索

このミーンシフト法では確率密度関数が大小が自動的に計算されオーバーシュートや振動がないことで知られている

f:id:robonchu:20180507160623j:plain

参考:

www.slideshare.net

クラスタリングへの応用

各点にミーンシフト法を実行し、収束位置がしきい値以下なら同じクラスタに入れる。

特徴としては全ての点でこの処理が必要だが並列化でき、クラス数をあらかじめ設定する必要がない。

f:id:robonchu:20180507161408j:plain

参考:

www.slideshare.net

対象物と背景の間のエッジを利用した領域分割処理

スネーク:エッジを閉曲線として抽出する

スネークでは複数の対象物や鋭い屈曲がある閉領域を正しく抽出できないという欠点がある。

f:id:robonchu:20180507172717p:plain

参考: 動的輪郭モデル

輪郭抽出

グラフカットを用いた領域分割

f:id:robonchu:20180507180210j:plain

グラフカット:全画面を対象と背景の2種類にラベル付するときに最小となるコスト関数を与え、コスト最小となるラベルの組み合わせを効率良く求める方法

f:id:robonchu:20180507180122p:plain

参考:

コスト関数の意味:グラフィカルモデル入門

GrabCut

領域分割の利用例

合成画像を作るときによく用いられる。つなぎ目の不自然さをなくすために以下のような方法がある。

マッティング:部分画像の境界の画素値を同じ位置に重なる背景画像の画素値の平均値で置き換える処理

アルファブレンディング画像のアルファブレンドを行うときに陥りがちな罠 - どらの日記

参考: 合成のなじみを良くする「エッジブレンディング」のテクニック - コンポジゴク

所感

背景除去や特徴量を用いたセグメンテーションの方法などどれも興味深い。

これらと深層学習の両知識を増やしてコスパの良いロボットの認識器をどんどん考えていきたい。