最近のデジタルカメラは、綺麗な写真が撮れるだけでなく、例えば、笑顔を認識してシャッターを切るなど、パターン認識による画像処理をハードウェア側で制御する技術が話題になっています(例えば、こちらのような研究:http://www.face-rec.org/interesting-papers/General/ld.pdf)。
このような特別な用途で組み込まれたコンピュータシステムを組み込みシステムと言い、携帯電話やカーナビゲーションシステムなどはその代表的な例です。画像処理プログラムのマイクロチップへの組み込みは、コンピュータセキュリティ対策のための認証にもよく用いられており、その技術には、画像の特定領域の検出・追跡、特徴量の抽出・ 追跡、識別などの機能が一連の処理過程として適用されています。
今回は、その画像のパターン認識の基礎について説明を行っていきます!
画像のパターン認識とは
画像群が何らかの特徴量に基づいてクラス分けされている場合、対象となる画像がどのクラスに属しているかを識別することをパターン認識と言います。パターン認識は、まず画像群を収集してその画像一つひとつの特徴量を抽出し、パターン学習を行い、クラスのその特徴を記録した「クラス辞書」を作成します。
入力された画像は、このクラス辞書によってクラス分けされます。(具体的な画像の特徴抽出方法や特徴量解析はこれまでもご紹介してきました。)
画像の関心領域にある対象の形状を定量化するテクスチャメジャーや、濃淡値の特徴を示すテクスチャメジャーなどを画像から抽出し、特徴ベクトル x=(特徴量1、特徴量2、特徴量3、...特徴量k)を求め、この特徴ベクトルで形成される座標軸上(特徴空間)に入力画像の特徴量をプロットすれば、その画像がどのクラスに属するか判断が可能となります。
また、特徴量を使用せず、画像の画素値をそのまま使用する場合もあります。
図に、二次元の特徴ベクトルによる特徴空間上でのクラス分け例を示します。
(特徴量1・2でプロットしたクラス分け)
入力画像の識別方法
画像群をクラス分けし、その特徴量をパラメータ化して記録する(クラス辞書の作成)ことを学習と言い、学習の際に用いられる代表値をプロトタイプといいます。プロトタイプとして最も単純でよく使用されるのが画素の平均値です。
入力画像の平均値を計算してその値を特徴空間にプロットし、各クラスの平均値との距離を求めることによって、一般的にはより短い距離にあるクラスに属すると識別します。
しかしながら、各クラス内の値の分散状態によって、入力画像の代表値がどのクラスに属するかが異なってくるため、距離の重み付けが必要となってきます。そのため、クラスの分布の特性を反映したマハラノビス距離が用いられます。
以下に算出の手順を示します。はじめに、クラスごとの平均値と分散共分散を求めます。ここで、あるクラスの二次元の特徴量と、その特徴座標に n=5個の画像群があると仮定します。それぞれの座標点(Xni , Xnj)は,下記のように表現できます。Xは特徴量です。
X1=(X11, X12)
X2=(X21, X22)
X3= (X31, X32)
X4= (X41, X42)
X5= (X51, X52)
このとき、クラスの平均M=(Mi, Mj)は, X1=((X11+X21+X31+X41+X51)/5, (X12+X22+X32+X42+X52)/5) ) となり、分散共分散行列は、次の式を用いて、
この式から次の行列を求めることで表されます。
ここで、ユークリッド距離duが、対象となる入力画像の特徴座標pで与えられた場合、ユークリッド距離は下記の式で算出されます。Tは転置を表す記号です。
マハラノビス距離dmは、上式を共分散行列の大きさで除した値となります。
よって、分散が大きいほど、マハラノビス距離は小さくなるため、2つのクラスの平均値の座標から、対象の画像の座標が同じ場合に、確率的に分散の大きな方法のクラスを選択できます(下図参照)。
(マハラノビス距離)
画像の主成分分析
主成分分析法は、クラスの入力画像群の共通する特徴を選択する方法です。また、クラス間を区別するための入力画像群の特徴を選択する方法を判別分析法と言います。
主成分分析法には、画像データの画素値そのものがよく使用されます。そのため、特徴ベクトルは画素数がその次元となります。この高次元を低次元に落とした特徴空間を部分空
間と言います。
また、あるクラスに属する画像群のおのおのの画像一つひとつの画素値を特徴空間にプロットすると、ある特徴を示す集合が観察できます。
クラスの画像群から3つの特徴量をx,y,zの3軸として、三次元特徴空間にクラスの特徴をプロットし、二次元空間にマッピングすると、二次元特徴を画像として得ることができます。
これらの画像を得る具体的な方法は、前述したように、例えば、N個の学習用の入力画像群の特徴量をK個とすれば、入力画像は、次のようになります。
その平均ベクトルMと分散共分散行列Sは下記のようになります。
ここで、低次元空間(二次元)に分布したこの平均値を通過し、特徴空間の分布の広がりが最も大きい方向の直線を第1主成分、その直行する方向の直線を第2主成分と言います。
この主成分を求めるのは、クラスの分散共分散行列Sの固有ベクトルを求めることと同等です。
そもそも画像は、ベクトルや行列に代替されて説明や計算されます。
画像は画素値の集合であり、画像同士はそれぞれの間で大きさを数倍に拡大したり、加減算したりして、ベクトルの性質をそのまま適用できます。
このとき、λjを固有値、ujを固有ベクトルといいます。固有値の大きい値から順に固有ベクトルをd個取り出して、d次元の主成分(u1,u2,...ud)を求めることによって、それぞれの主成分を画像として表示することができます。
ImageJによる主成分分析
ImageJを用いた主成分分析のプラグイン(PCA PIugin)は、Michael Abramoff氏(Department of Ophthalmology and Visual Sciences,University Iowa Hospitals and Clinics, lowa, USA.)がWebサイト(http://bij.isi.uu.nl/)で紹介しています。
プラグインは、こちらのサイトの「BIJ plugin only」をダウンロードして、任意のフォルダ名に変えて、フォルダごと、ImageJのpluginsフォルダに入れましょう。
同じように公開されているソースコードをダウンロードして、テキストエディタなどで参照してみると、Jacobi法(ヤコビ法)を用いて、行列の固有値と固有ベクトルを求めていることがわかりますので、アルゴリズムの詳細が知りたい方は、このサイトから得られるソースコードを参照してみてください。より詳細な説明および論文も、同氏のサイトで紹介されています。
ヤコビ法は、アルゴリズム自体も簡単です。
単純な算数での説明がされているこちらの資料がわかりやすいです。(http://www.math.ritsumei.ac.jp/yasutomi/jugyo/Numerical_Analysis/note5.pdf)
次の図に、マンモグラフィの実質パターンを16パターン、40×40マトリックスで切り出し、スタックした画像を示します。
※本当はもっと高解像度の画像(256以上など)で試した法が、信頼性のある統計処理ができます。
※本当はもっと高解像度の画像(256以上など)で試した法が、信頼性のある統計処理ができます。
そしてPCA pluginを実行して、この16パターンを1つのクラスとして、主成分分析した結果を示します。
固有画像の左上は、16パターンの平均画像の主成分を画像化したものです。
これが、このクラス(乳腺パターン)の特徴を示す画像となります。
同様の手順で、対象疾患やモダリティを変えて試算してみたり、画像診断の結果が異なる類似画像のクラス間を比較するなど、何か発見ができるかもしれませんね。ここからは、パターン認識の領域になっていきます。
この他、最近では、教師データを使うマシンラーニングも大きな注目を集めています。
このような最新技術の基礎は、本稿で紹介したシンプルな判別分析などが発展したものだということも、理解しないといけないですね。
今回はImageJを用いた主成分分析について説明を行いました。
次回も続けてパターン認識について述べます!
参考記事:「山本修司:ImageJで学ぶ実践医用・バイオ画像処理.INNERVISION(23・3) 2008, p100-103」
参考図書:研究方法論と基礎統計学.JSRT.株式会社メディカルトリビューン.
参考文献:
- Low-dimensional procedure for the characterization of human faces.J Opt Soc Am A. 1987 Mar;4(3):519-24.
0 件のコメント:
コメントを投稿