パターン認識と最近傍法について

この記事では、パターン認識と最近傍法について紹介しています。

パターン認識とは

コンピュータによるパターン認識は、入力されたテストパターンがあらかじめ作成しておいた標準パターン(学習パターン)と、どれだけマッチング(matching)しているかを調べることによって行われる。例えば、数字であれば0から9までの10個のパターンがある。分類すべきパターンの種類はカテゴリー(category)あるいはクラス(class)という。すなわち、パターン認識とは、未知入力パターンがどのカテゴリに属するかを決定することである。パターン認識の一般的な流れを図に示す。

f:id:mataro1:20160918104410p:plain

画像入力:画像の入力にはディジタルカメラやビデオカメラなどが利用され、アナログ信号値をディジタルデータとしてコンピュータ内部に取り込む。
前処理:認識過程を容易にするために前もって行っておく処理である。あとの処理を容易にするために前もって雑音除去を行うことや、濃度値や大きさの正規化が必要である。
特徴抽出:マッチングに必要な数値データを特徴ベクトルといい、特徴ベクトルを求める作業を特徴抽出という。文字や図形はさまざまな構造的な特徴をを持っており、特徴ベクトルの選択はパターン認識の精度を左右する。
識別辞書の作成:あらかじめカテゴリ名のわかっている標準パターン(学習パターン)から作成した特徴ベクトルをモデルあるいは辞書という。通常は1つのカテゴリに複数個のモデルが存在する。
識別:入力パターンの特徴ベクトルはあらかじめ登録されている識別辞書の特徴ベクトルと照合され、最もマッチングしたモデルのカテゴリ名を認識結果として出力する。評価式として距離や類似度、識別関数など利用される。

最近傍法とは

最近傍法(NN法:nearest neighbor rule)とは、未知入力パターンとxと登録されているすべての標準パターンとの距離あるいは類似度を求め、最小の距離あるいは最大の類似度を表す標準パターンのカテゴリー名を識別結果として決定する方法である。距離として次式に示すユークリッド距離を用いたりする。

f:id:mataro1:20160918104423p:plain

まとめ

パターン認識は基本的に前処理が必要になってくる。ノイズを除去したり、2値化を行ったりなどする必要がある。このときに、OpenCVなどを利用すると、簡単にプログラミングできたりする。また、特徴抽出がかなり重要で、特徴ベクトルの選択は認識精度に大きく影響する。
識別については最も良い結果を出す評価関数や識別関数を利用する必要がある。