ねほり.com

何もないから何かみつかる

主成分分析(カメレオンはどこだ! テクスチャ画像の領域分割)

      2019/04/22

最大固有値とその固有ベクトルを求める方法としては、ベキ乗法(power iteration)がある。

学生時代に「第3回アルゴリズムコンテスト(’99)「カメレオンはどこだ! −テクスチャ画像の領域分割−」の宿題があり、提出したレポートの抜粋。

実験例

図1に示すclass1とclass2の画像を同一の手法で対象領域と背景領域に分割し、2値画像(黒白画像)を生成してみる。

図1 class1の画像(上)とclass2の画像(下)

多機能性をもつ手法

濃淡ヒストグラムをx軸、y軸、z軸…とおき、多次元空間中で分割面を決定し2値画像を生成する。

3次元空間中にプロットした例を図2、3に示す。

ここで、黄緑色が物体領域、青色が背景領域である(左のクラスが物体領域、右のクラスが背景領域)。

図2 平均、コントラスト、分散を軸とした3次元グラフ(class1)

図3 分散、エネルギー、エントロピーを軸とした3次元グラフ(class2)

3次元空間の場合、点群の共分散行列を次のように定義する。

(1)   \begin{eqnarray*} A=\sum \left( \begin{array}{ccc} x'^2_i & x'_iy'_i& x'_iz'_i \\ x'_iy'_i& y'^2_i& y'_iz'_i\\ x'_iz'_i& y'_iz'_i& z'^2_i\\ \end{array} \right) \end{eqnarray*}

ただし、

x'_i=x_i-\bar x
y'_i=y_i-\bar x
z'_i=z_i-\bar x

である。

この最大固有ベクトルを、\be_1 とし、この軸への投影を、

(2)   \begin{eqnarray*} u_i = (x_i~~ y_i~~ z_i) \be_1 \end{eqnarray*}

とする。
u_i にたいして 大津の閾値 の手法で閾値\thetaを決める。

すなわち、単位ベクトルeを用いると、次の判別式で2値化する事になる。

(3)   \begin{eqnarray*} (e_{11}~~e_{12}~~e_{13}) \left( \begin{array}{ccc} x_i\\ y_i\\ z_i\\ \end{array} \right)> \theta  \end{eqnarray*}

アルゴリズム設計

設計したアルゴリズムを図4に示す。

対象と背景を分割するアルゴリズム

まず、あらかじめ平均(mean)、コントラスト(contrast)、分散(variance) 、エネルギー(energy)、エントロピー(entropy)を計算しておく。

次に5×5行列に拡張した式(1)を解き、最大固有ベクトルを求め閾値を求め、2値化処理を行う。

実験結果

class1の結果のヒストグラムを図5に、class2の結果のヒストグラムを図6に示す。

図5 class1のヒストグラム

図6 class2のヒストグラム

本手法で得られたclass1とclass2の2値化結果を図7、図8に示す。

図7 class1の画像結果

図8 class2の画像結果

精度評価

得られた2つの画像の精度の評価を行う。今回は正解画像が提供されているため、正解画像と出力画像との誤り画素数を計測する。

メディアンフィルタを用いる前の精度結果を表1に示す。

表1 本手法で得られた画像の精度

画像 正解画像との画素誤り(画素) 正解画像との画素誤り
class1 6046 2.306
class2 6125 2.337

表1より本手法を適用した結果、class1、class2共に約2.3\%の精度が得られた。

次にこの結果にメディアンフィルタを用いた結果を図9、図10に示す。

また、精度結果は表2に示す。

図9 class1の画像結果

図10 class2の画像結果

表2 メディアンフィルタを用いた結果

画像正解画像との画素誤り(画素)正解画像との画素誤り
class1 4046 1.543
class2 5688 2.170

表2より、メディアンフィルタが最後の処理として有効であることが分かる。

ソース

以下に作成したソース(必要であろうと思われる箇所のみ)。

ライブラリ部分

メイン部分

 - 2019年(社会人15年), テクノロジー, 学業, 調査結果

  関連記事

KaggleのHouse Pricesで回帰分析(モデル作成編)

今回も、kaggleの入門者向けチュートリアルコンペ「住宅価格予測」を解いてみま …

機械学習を使った株価予測(ファンダメンタルズ指標導入でAUC=0.70超え)

株式投資は、予測するものではなくルールに沿って選ぶものです。 その際に、選んだ銘 …

Yahoo!Japanから直リンクされてPV増加

毎日、毎日、線形…線形…。    ぐはぁ!ちっとも分かんね~ …

ソニーウォークマンNW-X1060 購入

2009年06月23日(火) SONY NW-X1060 購入しました 買ってし …

JSのグラフライブラリ・アニメーションライブラリの現状トレンド

JSライブラリは多種多様に存在する。 グラフィックライブラリのトレンド グラフィ …

機械学習で株価予測(Pythonのバックテストライブラリ調査)

前回、機械学習で解いた予測結果がどれだけ利益が出ているのか詳しく知ることが出来ま …

常時SSL(https)化に苦戦しながらも対応

2018年7月にGoogle Chromeの新しいバージョン「Chrome 68 …

教授より考えが幼稚で研究者として完全に失格と言われる

大学3年後期の成績を全「優」で取得し、調子に乗って 4年になっても「最高単位数」 …

「かごめ歌」を南光坊天海が作ったと言われているが・・・

やった~!10 年ぶりの「大吉」です! 賭け事も「吉」です。では早速祖母の家で賭 …

cosisin氏の乖離率スイング戦略+騰落レシオの有効性検証(システムトレード)

大型台風 15号(ファクサイ)が猛威を奮い、10時頃に改札口まで行くと電車が15 …