パターン認識装置、パターン認識プログラム、パターン認識方法
【課題】パターン認識を高精度に行うパターン認識装置、パターン認識プログラム、パターン認識方法を提供する。
【解決手段】学習用サンプルパターンを種別する複数のカテゴリごとに、同じカテゴリに含まれる複数の特徴ベクトルごとに求められる参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、軸上の要素ごとに、予め設定されたマージン量とカテゴリを関連付けて生成した候補テーブルを記録する記録部7と、与えられたパターンの参照特徴ベクトルを求め、前記候補テーブルを用いて、該参照特徴ベクトルの要素ごとに分類をして候補カテゴリ集合を求め、分類した候補カテゴリ集合を出力する分類部と、を備えるパターン認識装置である。
【解決手段】学習用サンプルパターンを種別する複数のカテゴリごとに、同じカテゴリに含まれる複数の特徴ベクトルごとに求められる参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、軸上の要素ごとに、予め設定されたマージン量とカテゴリを関連付けて生成した候補テーブルを記録する記録部7と、与えられたパターンの参照特徴ベクトルを求め、前記候補テーブルを用いて、該参照特徴ベクトルの要素ごとに分類をして候補カテゴリ集合を求め、分類した候補カテゴリ集合を出力する分類部と、を備えるパターン認識装置である。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力画像のパターン認識を実行するパターン認識装置、パターン認識プログラム、パターン認識方法に関する。
【背景技術】
【0002】
近年、文書を画像で保存することを許可するe文書法(電子文書法:法令番号平成16年法律第149号、平成16年法律第150号)が施行され、文書画像の検索ニーズが高まるなど、パターン認識技術は様々な分野で使用されている。
【0003】
文書画像におけるパターン認識処理は、文書画像からテキスト領域を求めるレイアウト解析処理と、抽出したテキスト領域を対象に文字画像を文字コードに変換する文字認識処理に分けることができる。また、文書画像のパターン認識にかかる処理時間を計測すると、文字認識処理がレイアウト解析処理より処理時間を要することが知られている。そこで、パターン認識処理にかかる時間を削減して、パターン認識処理を高速化するための提案がされている。
【0004】
例えば、文字認識処理部分を高速化する方法として、文字認識精度(文字認識の正解率)を犠牲にする簡便な処理が提案されている。しかし、蓄積した文書の検索や、再利用などの実用性を考えた場合、文字認識精度を低下させることは好ましくない。そのため、文字認識精度を高精度に保ったまま高速に文字認識処理を行うことが求められている。
【0005】
そこで、次のような文字認識処理に関する技術が提案されている。まず、パターン認識装置に、対象の文字コード(JIS第1水準の漢字、JIS第2水準の漢字、ひらがな、カタカナ、記号、縦書き専用文字、英字、数字、半角文字などに対応するコード)に対応する複数の文字画像(学習用サンプルパターン)を収集する。そして、パターン認識装置は、収集した各文字画像を特徴ベクトルに変換し、文字コードごとに平均ベクトルを作成し、文字コードと平均ベクトルをペアにして記録部に記録し、辞書を生成する。他の文字コードについても同じことを行い、複数の文字コードと文字コードに対応する特徴ベクトルの情報を記録部に記録する。
【0006】
ここで、パターン認識においてよく用いられる用語を、簡単に定義しておく。認識対象のことをパターンと呼び、すべてのパターンの作る集合のことをパターン空間と呼ぶ。
パターンを特徴抽出することにより得られる1つ以上の特徴量の組を特徴ベクトルと呼び、特徴ベクトルの要素の数を特徴ベクトルの次元と呼ぶ。特徴ベクトルのそれぞれの要素の値(特徴量)の組を特徴ベクトルの値と呼び、すべての特徴ベクトルの値の作る集合のことを特徴空間と呼ぶ。特徴空間の次元は、特徴空間の要素である特徴ベクトルの次元と等しい。同一種類とみなすことのできるパターンあるいは特徴ベクトルの集合をカテゴリと呼ぶ。特に、同一種類とみなすことのできるパターンの集合を、カテゴリパターン集合、同一種類とみなすことのできる特徴ベクトルの集合を、カテゴリ特徴集合と呼ぶ。
【0007】
パターン認識装置などに入力される未知のパターンあるいは未知のパターンから求められた特徴ベクトルが、どのカテゴリ(カテゴリパターン集合あるいはカテゴリ特徴集合)に属するのかを決定することを、パターン認識と呼ぶ。特に、入力されたパターンあるいは特徴ベクトルが、カテゴリ集合中のあるカテゴリに属する可能性があると推定される場合、そのカテゴリ集合のことを候補カテゴリ集合と呼ぶ。
【0008】
文字認識処理を行う際、未知の文字画像が入力されると、入力された文字画像から特徴ベクトルを生成し、辞書(メモリなど)に保持されている複数の特徴ベクトルとの間でマッチングを行う。マッチングは未知文字の特徴ベクトルと、辞書の特徴ベクトル間の距離計算(マッチング処理)で行う。この結果、辞書の中の文字コード数分の距離値が得られ、その中で、最小の距離値となる文字コードを未知文字の認識結果として出力する。
【0009】
しかし、上記説明した文字認識処理において、未知文字の特徴ベクトルと辞書内の全ての文字コードの特徴ベクトルとの間のマッチング処理には、多くの処理時間を費やしている。また、日本語などの文字コードの種類が多い言語では、さらにマッチング処理時間が長くなる。
【0010】
そこで、マッチング処理の高速化のために、大分類、詳細分類の2段階処理が使われる。大分類とは、辞書の中の特徴ベクトルの集合から、認識対象である入力文字画像から生成した特徴ベクトルに近い特徴ベクトルを抽出し、詳細分類をする際の対象を絞り込む処理である。絞り込んだ文字コードだけを対象として詳細分類をすると、従来のマッチング処理時間を大幅に削減することが可能になる。
【0011】
大分類で用いる辞書の生成は、例えば、図1に示すように1つの字種(カテゴリ)またはテンプレート(1つのカテゴリを複数のグループに分割したときの1つのグループ)に所属する文字画像の集合を求める。次に、その集合を全てn次元(n:1以上整数)の特徴ベクトルに変換し、1つのカテゴリの学習用サンプルパターンの特徴ベクトル集合を作る。次に、n個の軸(特徴ベクトルを構成する要素に対応する軸)の中の1つの軸に注目して、この軸上の1つのカテゴリの学習用サンプルパターンの特徴ベクトル集合を全て投影すると、軸上でこのカテゴリに属する要素の値の範囲が求まる。ここで、図1において投影する軸の範囲Aは、すべての特徴ベクトルを構成する要素を示す特徴量を、量子化して、−127〜128(256ビット)の範囲Aとしている。次に、この軸上の範囲Aにおける最小値min、最大値maxを求め、予め決めておいたマージン値marginを用いて該軸の上の最小値・最大値で表される範囲Bを、拡大して範囲Cにする。この拡大した2つの値(min−margin、max+margin)の間にこのカテゴリが存在すると仮定する。そして、n次元のn個のすべての軸に対して、上記説明した拡大した範囲Cを算出して、範囲Cを記憶部に記録することにより、1つの字種に対する辞書が生成される。他の字種についても上記同様に辞書を生成して全てのカテゴリまたはテンプレートに対する辞書を生成する。以後上記のように生成した辞書を平面辞書と呼ぶ。
【0012】
平面辞書は、図2に示すような配列状の平面で表すことができる。図2の例では、横が各軸の分布を−127から128数値範囲(256ビット)で示されており、縦がカテゴリ数で示されている平面である。カテゴリには、カテゴリごとに識別番号(1、2、3・・・)が割り振られている。また、図2はn次元空間における、3種類のカテゴリの拡大した範囲Cについて示した例である。丸(A1、A2)はカテゴリ1、三角(A3、A4)がカテゴリ2、四角(A5、A6)はカテゴリ3を示している。
【0013】
A1、A2のテンプレートに注目すると、A1からおろした座標位置が最小値minの値になり、A2からおろした座標位置が最大値maxの値となる。図2ではマージン値marginをMと示している。最小値min、最大値maxの座標位置からこのマージン値Mだけ左右にずらした座標位置がカテゴリ1の拡大した範囲となる。この範囲を平面辞書に記録するために、カテゴリ1の−127から128の256ビット中の対象の範囲にビット「1」を設定し、それ以外の範囲にビット「0」を設定して平面辞書に記録する。他のカテゴリについても同様に処理を行い、平面辞書を完成させる。
【0014】
なお、大分類の処理は、パターン認識処理の時には、未知文字画像を先ずn次元特徴ベクトルに変換して各軸へ投影する。次に、未知文字画像に対するn個の各軸の座標位置と平面辞書に保持されている軸上の座標位置を参照し、同じ座標位置にビット「1」があるか否かを判定して、未知文字画像に近いカテゴリを求める。他の軸においても同様の処理を行い、全ての軸で存在するカテゴリを求めて、カテゴリを絞り込み大分類結果(候補カテゴリ集合)とする。
【先行技術文献】
【特許文献】
【0015】
【特許文献1】特開平10−289320号公報
【非特許文献】
【0016】
【非特許文献1】「特徴領域の射影推定による高速高精度な大分類方式」 藤本、鎌田、黒川、 電子情報通信学会技術研究報告パターン認識・メディア理解(PRMU)、信学技報Vol.97 No.558、PRMU97‐220、pp.25‐32.1998年2月19日
【発明の概要】
【発明が解決しようとする課題】
【0017】
しかしながら、上記方法では1つのカテゴリまたはテンプレートの軸上の学習用サンプルパターンの特徴ベクトルの特徴量に対応する分布を最小値、最大値で表現している。そのため、1つのカテゴリまたはテンプレートの軸上に特徴量が存在しない箇所にも、特徴量があるかのように平面辞書に記録してしまう。そのため、本来大分類処理において詳細分類の対象から外すべきテンプレートが、大分類の結果に含まれてしまい、パターン認識時の絞り込み能力が低下し、高精度な大分類ができない。拡大した範囲Cを用い作成した場合、図3に示すようなことが起こる。図3は2次元の特徴空間を示している。また、図3は拡大した範囲Cを用い作成した字種「A」「B」「C」の辞書に記録されている分布範囲(「A」の分布範囲Aa、「B」の分布範囲Ba、「C」の分布範囲Ca)と実際の分布範囲(「A」の範囲Ar、「B」の範囲Br、「C」の範囲Cr)の関係を示している。図3において、未知文字「X」が入力されたときに、未知文字「X」は実際には「C」のカテゴリに絞り込まれなければならないが、図3において文字「A」のカテゴリにも未知文字「X」は属している。そのため、実際には未知文字「X」はAの分布には近くないが、「X」に近いカテゴリ候補として文字「C」と文字「A」のカテゴリが選択されてしまう。
【0018】
そこで、本発明はパターン認識を高精度に行うパターン認識装置、パターン認識プログラム、パターン認識方法を提供することを目的とする。
【課題を解決するための手段】
【0019】
実施態様のひとつであるパターン認識装置は、記録部、分類部を備えている。記録部は候補テーブルを有している。候補テーブルは、学習用サンプルパターンを種別する複数のカテゴリごとに、同じカテゴリに含まれる複数の特徴ベクトルごとに求められる参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、軸上の要素ごとに、予め設定されたマージン量とカテゴリを関連付けて生成したものである。
【0020】
分類部は、与えられたパターンの参照特徴ベクトルを求め、前記候補テーブルを用いて、該参照特徴ベクトルの要素ごとに分類をして候補カテゴリ集合を求め、分類した候補カテゴリ集合を出力する。
【発明の効果】
【0021】
開示のパターン認識に関する実施例は、パターン認識精度を高精度に行うという効果を奏する。
【図面の簡単な説明】
【0022】
【図1】従来の候補テーブル(大分類用辞書)の概要を示す図である。
【図2】従来の候補テーブル(大分類用辞書)の概要を示す図である。
【図3】候補テーブル(大分類用辞書)に記録され字種の分布範囲と実際の分布範囲の関係を示す図である。
【図4】実施例1におけるパターン認識装置の構成の一例を示すブロック図である。
【図5】特徴ベクトルの一例を示す図である。
【図6】実施例1における候補テーブル(大分類用辞書)の作成動作の一例を示すフロー図である。
【図7】カテゴリとテンプレートの関係を示す図である。
【図8】カテゴリに学習用サンプルパターンごとの特徴ベクトルを対応付けて記録した場合のデータ構造の一例を示す図である。
【図9】Aは、軸上に投影された要素を示す図であり、Bは、軸上に投影された要素にマージンを設けたことを示す図である。
【図10】カテゴリに特徴ベクトルを対応付け、特徴ベクトルの要素ごと軸上に投影した位置とマージン量を対応付けて記録した場合のデータ構造の一例を示す図である。
【図11】各軸のマージン幅(ビット「1」)を示す図である。
【図12】実施例1における候補テーブル(大分類用辞書)の概要を示す図である。
【図13】実施例1における大分類処理の概要を示す図である。
【図14】実施例1における候補テーブル(大分類用辞書)を用いて、大分類処理をするときの動作の一例を示す図である。
【図15】実施例1における大分類処理の概要を示す図である。
【図16】実施例2におけるパターン認識装置の構成の一例を示すブロック図である。
【図17】実施例3におけるマージン量決定の動作の一例を示すフロー図である。
【図18】実施例3において、カテゴリとマージン量を対応付けて記録した場合のデータ構造の一例を示す図である。
【図19】実施例4におけるマージン量決定の動作の一例を示すフロー図である。
【図20】実施例4における軸上の区間の概要の一例を示す図である。
【図21】実施例4において、カテゴリ、区間、マージン量を対応付けて記録した場合のデータ構造の一例を示す図である。
【図22】実施例5におけるマージン量決定の動作の一例を示すフロー図である。
【図23】実施例5において、フォント、マージン量を対応付けて記録した場合のデータ構造の一例を示す図である。
【図24】実施例5において、カテゴリ、フォント、マージン量を対応付けて記録した場合のデータ構造の一例を示す図である。
【図25】実施例がコンピュータプログラムとして実現される場合の構成を示す図である。
【発明を実施するための形態】
【0023】
以下図面に基づいて、本発明の実施形態について詳細に説明する。
(実施例1)
実施例1におけるパターン認識装置は、記録部、分類部(大分類部)を備えている。記録部は候補テーブルを有している。候補テーブルは次のように生成される。学習用サンプルパターンを種別する複数のカテゴリごとに、同じカテゴリに含まれる複数の特徴ベクトルごとに求められる参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影する。そして、軸上の要素ごとに、予め設定されたマージン量とカテゴリを関連付けて生成したものである。なお、参照特徴ベクトルは、特徴ベクトルから計算される特徴ベクトルである。
【0024】
分類部(大分類部)は、与えられたパターンの参照特徴ベクトルを求め、候補テーブルを用いて、該参照特徴ベクトルの要素ごとに分類をして候補カテゴリ集合を求め、分類した候補カテゴリ集合を出力する。
【0025】
図4は、パターン認識装置における一実施例の構成示す図である。図4に示すパターン認識装置1は、特徴抽出部2、大分類部3(分類部)、詳細分類部4、テーブル作成部5、記録部7を備えている。
【0026】
特徴抽出部2は、周辺空白領域を含めたパターンを取得して、該パターンを拡大縮小により正規化画像にする。次に、特徴抽出部2は、正規化された文字パターンからパターンの特徴量を抽出し、抽出した特徴量を並べて、特徴ベクトルを生成する。例えば、文字画像をパターンとして取得した場合、特徴抽出部2は、入力された文字画像の特徴量(x1〜xn)を並べて、特徴ベクトルを生成する(式1)。式1のnは1以上の整数である。
X=(x1,x2,x3,x4,・・・xn) 式1
【0027】
図5に可変分割輪郭方向特徴抽出を用いた場合の例を示す。特徴抽出部2が、文字画像「A」を取得して、文字画像を縦48×横48の正規化画像にして、文字領域を輪郭点数が一定になるように可変分割した領域における輪郭方向量を、可変分割輪郭方向特徴として抽出する。正規化した画像の分割数を12×6あるいは6×12として、各分割領域における縦、横、右斜め上、右斜め下の4方向の輪郭方向量をカウントして特徴ベクトルを求める。図5の場合であれば、文字画像「A」を72分割して、4方向の輪郭方向量を1分割ごとに(縦,横,右斜め上,右斜め下)に求め、288個(72×4)の特徴量(xA11〜xA1288)を並べて、特徴ベクトルを式2のように生成する。
XA1=(xA11,xA12,xA13,xA14,
xA15,xA16,xA17,xA18,
・・・・ 式2
xA1285,xA1286,xA1287,xA1288)
【0028】
なお、特徴抽出には、可変分割輪郭方向特徴抽出、加重方向指数ヒストグラムを用いた抽出、可変分割輪郭方向特徴抽出などの方法を用いてもよい。
【0029】
また、特徴抽出部2は、上記算出した特徴ベクトルから参照特徴ベクトルを求める。例えば、参照特徴ベクトルは、特徴ベクトルを構成する要素から一部要素を除いたものを用いてもよいし、特徴ベクトルを後述する次元圧縮して用いてもよい。なお、必ずしも特徴ベクトルから参照特徴ベクトルを生成しなくてもよく、特徴ベクトルを参照特徴ベクトルとして用いてもよい。以後、参照特徴ベクトルを特徴ベクトルとして説明する。
【0030】
次に、特徴抽出部2は、学習用サンプルパターンの特徴ベクトルの各要素の値を予め決められた範囲内の値にする。ここで、予め決められた範囲とは、全ての学習用サンプルパターンにおける特徴ベクトルの要素を示す特徴量が取りうる最小値と最大値を含む範囲(特徴空間)であり、該範囲を量子化して数値範囲で表したものである。また、数値範囲をmビット(m:整数)により表す場合、メモリの記憶容量などにより数値範囲を決めることが好ましい。例えば、数値範囲が−127≦m≦128(256ビット)で表されている場合、学習用サンプルパターンの特徴量は、−127〜128の数値範囲内の値に量子化される。
【0031】
また、学習用サンプルパターンを用いて大分類に用いる候補テーブルなどを生成するとき、特徴抽出部2は量子化した学習用サンプルパターンの特徴ベクトルをテーブル作成部5に転送する。未知入力パターンに対してパターン認識処理をするときは、特徴抽出部2は量子化した未知入力パターンの特徴ベクトルを大分類部3に転送する。ここで、未知入力パターンとは、パターン認識処理の対象のパターンであり、スキャナなどにより読み込んだ文字画像などである。
【0032】
大分類部3は、記録部7に記録されている後述する候補テーブル(大分類用辞書)の特徴ベクトルの集合から、入力パターンから生成した特徴ベクトルに近いものを抽出する(候補カテゴリ集合を抽出)。
【0033】
詳細分類部4は、大分類部3で分類された候補カテゴリ集合の参照特徴ベクトルと、入力パターン(入力文字画像など)から生成した特徴ベクトルとの距離を計算する。その後、詳細分類部4は、計算した距離値の中で最小となる距離値を選択して、選択した距離値に対応するカテゴリを抽出してパターン認識結果とする。
【0034】
テーブル作成部5はマージン決定部6を備え、後述する大分類用の辞書を生成する。テーブル作成部5は、特徴抽出部2から量子化した学習用サンプルパターンの特徴ベクトルを取得して、該量子化した特徴ベクトルを記録部7に予め記録されているカテゴリに対応付けて記録する。例えば、カテゴリは、JIS第1水準の漢字、JIS第2水準の漢字、ひらがな、カタカナ、記号、縦書き専用文字、英字、数字、半角文字などの文字コードである。また、テーブル作成部5は、マージン決定部6により決定したマージン量を、量子化した学習用サンプルパターンの特徴ベクトルの各要素に対応付けて、記録部7に記録する。ここで、マージン量は、正常とされる学習用サンプルパターンが劣化した場合(ファクシミリやコピーなどにより劣化(掠れ、滲み、汚れなど)した文字画像)であっても分類ができるように、量子化した特徴ベクトルの各要素に幅を持たせるための値である。
【0035】
マージン決定部6は、例えば、各要素に対応する軸上の値を中心に最小値方向と最大値方向にそれぞれ設けるマージン量を決定する。また、マージン量は、すべてのカテゴリのすべての要素に対して同じマージン量を対応付けてもよいし、要素ごとに個別にマージン量を対応付けてもよい。なお、マージン量は、上記説明した全ての学習用サンプルパターンにおける特徴ベクトルの要素を示す特徴量が取りうる最小値と最大値を含む範囲を量子化した数値範囲の値で示される。また、マージン決定部6は、マージン量を量子化した特徴ベクトルの各要素に対応付けて、記録部7に記録する。
【0036】
なお、特徴抽出部2、大分類部3、詳細分類部4、テーブル作成部5は、CPU(Central Processing Unit)を用いて実現してもよい。また、プログラマブルなデバイス(FPGA(Field Programmable Gate Array)、PLD(Programmable Logic Device)など)を用いてもよい。
【0037】
記録部7は、プログラム、テーブル、データなどが記録されている。また、記録部7は、例えばROM(Read Only Member)、RAM(Random Access Memory)、ハードディスクなどのメモリである。また、記録部7は、パラメータ値、変数値などのデータを記録してもよいし、ワークエリアとして用いることもできる。実施例1では、候補テーブル(大分類用辞書)などが記録されている。
【0038】
(テーブル作成部の動作)
図6は、テーブル作成部5の動作の一例を示すフロー図である。
ステップS1においてテーブル作成部5は、1つの学習用サンプルパターンの特徴ベクトルの要素を1つ抽出し、抽出した要素に対応する軸の軸上の位置を求める。なお、学習用サンプルパターンの特徴ベクトルは、特徴抽出部2に入力された学習用サンプルパターンから求める。ここで、学習用サンプルパターンは、JIS第1水準の漢字、JIS第2水準の漢字、ひらがな、カタカナ、記号、縦書き専用文字、英字、数字、半角文字などの文字画像である。また、学習用サンプルパターンは、劣化文字画像(ファクシミリやコピーなどにより劣化(掠れ、滲み、汚れなど)した文字画像)である。本例では、パターンとして文字を用いて説明するが、文字に限定するものではない。
【0039】
図7は、学習用サンプルパターンである文字画像「A」「B」・・・・について、カテゴリとテンプレートの関係を示した図である。図7において、文字画像「A」の学習用サンプルパターンはカテゴリ1(文字「A」の文字コードに対応)に含まれ、文字画像「B」の学習用サンプルパターンはカテゴリ2(文字「B」の文字コードに対応)に含まれている。そして、カテゴリ1は、テンプレートA1〜A5に分けられている。カテゴリ2は、テンプレートB1〜B5に分けられている。
【0040】
図8は、図7に示した文字「A」「B」・・・・を、上記説明したように288次元特徴ベクトルに変換した場合の例を示す図である。特徴ベクトルに変換された各学習用サンプルパターンは、テーブル作成部5を介してカテゴリに対応付けられて記録部7に記録される。図8の例では、文字「A」に対応する「カテゴリ1」に、特徴ベクトルの名称「XA1」「XA2」・・・・が対応付けて記録されている。また、文字「B」に対応する「カテゴリ2」に、特徴ベクトルの名称「XB1」「XB2」・・・・が対応付けて記録部7に記録されている。なお、特徴抽出部2は、テーブル作成部5を介さずに直接記録部7にカテゴリと特徴ベクトルを記録してもよい。
【0041】
次に、テーブル作成部5は、記録部7に記録した学習用サンプルパターンの特徴ベクトルの要素を1つ抽出し、抽出した要素を軸上に投影して該要素の軸上の位置を求める。図9のAの例では、カテゴリ1(文字画像「A」)の特徴ベクトルの「x1」に対応する軸上に、各学習用サンプルパターンの特徴ベクトルの「x1」に対応する各要素を投影している。また、図9のAは、−127から128の数値範囲(256ビット)で示される軸上に、特徴ベクトルの各要素の特徴量を−127から128の数値範囲で量子化して軸上の座標位置を決めて、各軸の分布を表している。
【0042】
例えば、カテゴリ1の特徴ベクトルの要素「x1」に対応する特徴量「xA11」の場合であれば、テーブル作成部5は、特徴量「xA11」を量子化して座標位置「PA11」にする。そして、テーブル作成部5は、図10に示すように特徴量「xA11」と座標位置「PA11」を対応付けて記録部7に記録する。他の学習用サンプルパターンの特徴ベクトルの各要素についても同様に、テーブル作成部5は各要素と各座標位置を対応付けて記録部7に記録する。
【0043】
次に、図6のステップS2では、テーブル作成部5が、マージン決定部6により予め算出されたマージン量を取得し、ステップ3でテーブル作成部5は、軸上の座標位置を中心にマージン量を左右(最小値方向と最大値方向)に加える。そして、テーブル作成部5は、この学習用サンプルパターンのカテゴリ(またはテンプレート)の範囲を決め、該範囲を記録部7に記録する。図9のBは、図9のAに示したカテゴリ1の特徴ベクトルの要素「x1」に対応する座標位置に、予め設定したマージン量を左右に加えたことを示す図である。
【0044】
例えば、カテゴリ1の特徴ベクトルの要素「x1」に対応する座標位置「PA11」の場合であれば、テーブル作成部5は、座標位置「PA11」を中心に、マージン決定部6により予め算出したマージン量「MA11」を設定する。図10の例では、座標位置「PA11」に対応付けてマージン量「MA11」を記録部7に記録する。他のマージン量についても同様に、テーブル作成部5は各座標位置と各マージン量を対応付けて記録部7に記録する。座標位置を示す場合、例えば、数値範囲が256ビットであれば0〜255ビットの範囲にある、算出した座標位置に対応するビットに「1」を設定することが考えられる。例えば、座標位置「PA11」が0〜255ビットの50ビット目(−78)に対応するのであれが「PA11」に「50」を設定する。また、マージン量が「5ビット」であれば、「MA11」に「5」を記録する。その結果、45ビット〜55ビット目(−83〜−73)には「1」が設定される。座標位置とマージン量に対応しないビットには「0」が設定される。なお、座標位置とマージン量を記録しないで、座標位置とマージン量から求めた最小値と最大値の範囲(−83〜−73)を直接記録してもよい。また、例えば256幅のビット列を用意して、対応する範囲(45ビット〜55ビット)に「1」を設定してもよい。
【0045】
図6のステップS4では、テーブル作成部5が、対象の特徴ベクトルの全ての要素(x1〜x288)ついて処理をしたかを判定する。全ての要素について処理を完了していればステップS6に移行し、まだ未処理の要素が残っている場合にはステップ5に移行する。ステップ5では、次の要素を選択してステップS1に移行する。
【0046】
ステップS6では、テーブル作成部5が、対象のカテゴリ(1、2〜)またはテンプレート全ての特徴ベクトルについて処理をしたかを判定する。全ての特徴ベクトルについて処理を完了していればステップS8に移行し、まだ未処理の特徴ベクトルが残っている場合にはステップ7に移行する。ステップ7では、次のカテゴリまたはテンプレートの特徴ベクトルを選択してステップS1に移行する。
【0047】
ステップS8では、テーブル作成部5が、全ての学習用サンプルパターン(カテゴリ(1、2〜)またはテンプレート)について処理したかを判定する。全ての学習用サンプルパターンについて処理を終了していればステップS10に移行し、まだ未処理の学習用サンプルパターンが残っている場合にはステップ9で次の学習用サンプルパターンを選択して、ステップ1に移行する。
テーブル作成部5は、上記ステップS1〜S8のテーブル作成処理をすることにより候補テーブル(大分類用辞書)を作成する。
【0048】
図11は、図6に示したテーブル作成処理を全ての学習用サンプルパターンに対して実施した結果を示す例で、各カテゴリの各要素に対応する座標位置とマージン量に対して、ビット列で表される軸上の対応する箇所にビット「1」を設定した場合の例である。
【0049】
図12は、平面辞書の概要を示す図である。従来の平面辞書(図2参照)と比べて、実施例1の平面辞書はカテゴリごとの各特徴ベクトルの各要素に対して適切に分布を捉えているため、パターン認識処理の大分類の精度を向上させることができる。
【0050】
図13は、実施例1で説明した方法により平面辞書を作成ときの字種「A」「B」「C」の辞書に記録されている分布範囲(「A」の分布範囲Aa’、「B」の分布範囲Ba’、「C」の分布範囲Ca’)と実際の分布範囲(「A」の範囲Ar、「B」の範囲Br、「C」の範囲Cr)の関係を示している。実施例1の平面辞書を用いることで、従来の平面辞書(図3参照)を用いたときと比べて、未知文字「X」が入力されても、適切に分布を捉えているため、未知文字「X」は「C」のカテゴリに絞り込まれ、文字「A」のカテゴリに未知文字「X」が属していない。
【0051】
(実施例2)
図14は、図4に示した大分類部3の動作を示す図である。
ステップS1401では、大分類部3が全カテゴリ数分の幅をもつビット列領域temp_bitを記録部7などのメモリに確保して、全てのビットに「1」を設定する。図15の例では、カテゴリがn個存在するので、nビット幅のtemp_bitを確保して、nビット全てに「1」を設定する。temp_bitは式3で示すことができる。
temp_bit:(1,1,1・・・1) 式3
temp_bitはnビット
【0052】
ステップS1402では、大分類部3が未知入力文字の特徴ベクトルを求め、この特徴ベクトルの各要素を対応する各軸へ投影し各軸上の座標位置を求める。図15の例では、未知入力の対象の軸上の座標位置がkで表される場合に、未知入力の対象の軸の座標位置kに対応するカテゴリ1〜nの軸上の座標位置kに設定されている値を取得する。未知入力文字「X」がカテゴリに含まれるとすると、取得したカテゴリ1〜nの軸上の座標位置kは式4で示すことができる。
対象軸の座標位置kのビット列:(1,0,0・・・・) 式4
対象軸の座標位置kのビット列はnビット
【0053】
ステップS1403では、大分類部3が未知文字の対象軸の座標位置に対応するカテゴリ1〜nごとの座標位置で構成されるビット列と、temp_bitと論理積(bit AND)を行う。図15の例では、temp_bitと対象軸の座標位置kのビット列の論理積を計算する。
temp_bit AND (対象軸の座標位置kのビット列) 式5
論理積の結果であるtemp_bit=(1,0,0・・・・)
【0054】
ステップS1404では、大分類部3が未知文字の全軸に対して上記ステップS1403の処理をしたか否かを判定する。未知文字の全軸に対してステップS1403の処理を終了していればステップS1406に移行し、終了していなければステップS1405に移行する。ステップS1405では、大分類部3が次の軸を選択する。
【0055】
ステップS1406では、大分類部3が各軸のビット列計算用の領域temp_bitにおいて対応するカテゴリ番号のビットに「1」が設定されているカテゴリ(またはテンプレート)を選択する。そして、大分類部3は選択したカテゴリを大分類結果として、記録部7に記録する。上記のように実施例1で作成した候補テーブル(大分類用辞書)を用いることにより、大分類の精度を向上させることができたが、しかし、まだ大分類の処理時間を短縮させる余地がある。
【0056】
そこで、正準判別分析を用いて特徴ベクトルの次元を圧縮して次元圧縮をした特徴ベクトルを用いて大分類用の辞書を生成する方法を説明する。図16は、図4に示した特徴抽出部2に特徴圧縮部1602を設けたパターン認識装置1601の構成の一例を示す図である。特徴圧縮部1602は、元の特徴ベクトルを少数の次元からなる圧縮特徴ベルトルにする。圧縮特徴ベルトルを求める特徴圧縮処理とは、圧縮特徴空間の初期座標の算出、座標軸の直交化、圧縮特徴ベルトルの算出を行うものである。圧縮特徴空間の初期座標の算出処理では、既存の技術である正準判別分析により、カテゴリ間の分散と、カテゴリ内の分散比が最大となる座標軸を抽出する。例えば、288次元の特徴空間において、16次元の圧縮特徴空間を求める場合、文字カテゴリ間分散行列Sb=行列B、文字カテゴリ内分散行列Sw=行列Wを以下のように定義する(式6)。行列Bと行列Wは288×288の行列である。
【数1】
【0057】
次に、特徴圧縮部1602は、式7を満たすような固有行列と固有値行列を求める。
【数2】
【0058】
上記のように求めた、固有値の大きいほうから圧縮する次元数の固有ベクトルを選択する。たとえば16次元にするのであれば式8に示す固有ベクトルが初期座標になる。
【数3】
【0059】
次に、シュミットの直交化により直交座標軸に変更した16個の288次元ベクトルを求める。式9に初期座標を正規直交化して、16個の288次元ベクトルを並べて行列形式にした変換行列を示す。
【数4】
【0060】
次に、圧縮特徴の算出(特徴ベクトルの投影)は、式10に示すように、1つの文字画像から求めた288次元の特徴ベクトルの転置行列、に変換行列をかけて、16次元の特徴ベクトルを求める。
【数5】
【0061】
この16次元圧縮特徴のベクトルの各要素y1、y2・・・y16は、それぞれ288次元空間の1点で表される特徴ベクトルXを16の軸に投影した時の各軸上の値(座標位置)になる。例えば、y1は特徴ベクトルXを第1軸へ投影したときの第1軸上の値(座標位置)である。他の要素についても同じことがいえる。
【0062】
実施例2では、特徴抽出部2が実施例1で説明したように元となる特徴ベクトルを生成し、特徴圧縮部1602により元となる特徴ベクトルを次元圧縮する。そして、次元圧縮した特徴ベクトルを用いて、テーブル作成部5が大分類用の平面辞書を作成する。また、大分類をする際も、特徴圧縮部1602により未知入力の特徴ベクトルを次元圧縮してから、大分類部3が実施例2で生成した候補テーブル(大分類用辞書)を用いて大分類の処理を行うため、大分類の処理において扱うベクトル数を削減できる。そのため、大分類の処理時間を短縮させることができる。また、次元圧縮を行うことにより、扱うベクトル数が削減できるため記録部7の候補テーブル(大分類用辞書)の記憶領域を縮小することができる。
【0063】
(実施例3)
実施例3では、カテゴリまたはテンプレートごとに学習用サンプルパターン間の違い(変形程度)に基づいて軸上のマージン量を決め、学習用サンプルパターンのカテゴリまたはテンプレートごとにマージン量を決める。学習用サンプルパターン間の違いとは、元となる学習用サンプルパターンと、元となる学習用サンプルパターンを劣化させたパターン(このパターンも学習用サンプルパターンである)との違いである。
【0064】
図17は、実施例3におけるマージン決定処理の一例を示すフロー図である。
ステップS1701では、特徴抽出部2が元となる学習用サンプルパターンに対して劣化させた複数の学習用サンプルパターンを特徴ベクトルに変換し、該特徴ベクトルとカテゴリ、元となる学習用サンプルパターンの特徴ベクトルを対応づけて記録部7に記録する。
【0065】
ステップS1702では、マージン決定部6がカテゴリまたはテンプレートを選択する。ステップS1703では、マージン決定部6が元となる学習用サンプルパターンを選択する。ステップS1704では、マージン決定部6が元となる学習用サンプルパターンを劣化させたパターンの特徴ベクトルから要素を選択する。
【0066】
ステップS1705では、マージン決定部6が選択した要素に対応する軸上で、元の特徴ベクトルの要素の値と、劣化させた特徴ベクトルの要素の値との差を求める。例えば、元となる学習用サンプルパターンの特徴ベクトルの要素に対応する軸上の座標位置をPbaseとし、劣化させたパターンの軸上の座標位置をPdeteとて、|Pbase−Pdete|を計算して差を求める。次に、マージン決定部6は、PbaseとPdeteの大きさを比較して大小関係を求めて、元となる学習用サンプルパターンの特徴ベクトルの要素に対応する値を中心に、右方向(最大値方向)のマージンであるか、左方向(最小値方向)のマージンであるかを判定する。軸を0〜255の数値範囲とした場合、Pbase−Pdeteを計算して計算結果がプラスの値であれば左方向のマージンとし、該値を変数mLtempに記録する。また、マイナスの値であれば右方向のマージン量とし、該値を変数mRtempに記録する。
【0067】
ステップS1706では、マージン決定部6がカテゴリごとにステップS1705で算出したマージン量を加算する。例えば、式11に示すように、右方向のマージン量の加算であれば、変数mRに変数mRtempを加算し、左方向のマージン量の加算であれば、変数mLに変数mLtempを加算する。
mR ← mR+mRtemp
mL ← mL+mLtemp 式11
←:代入を示す
【0068】
その際、変数mRに、変数mRtempが加算されるたびに式12に示すように変数mRcountに1を加算し、加算した回数を記録する。また、変数mLに、変数mLtempが加算されるたびに式12に示すように変数mLcountに1を加算し、加算した回数を記録する。
mRcount←mRcount+1
mLcount←mLcount+1 式12
【0069】
ステップS1707でマージン決定部6は、対象を劣化させた学習用サンプルパターンの特徴ベクトルの要素全てについて処理をしたか否かを判定する。全ての要素について処理を実行していればステップS1709に移行し、未処理の要素がある場合はステップS1708に移行する。ステップS1708では、マージン決定部6が次の要素を選択し、ステップS1705に移行する。
【0070】
ステップS1709では、マージン決定部6が、劣化させた学習用サンプルパターンの特徴ベクトル全てについて処理をしたか否かを判定する。全ての特徴ベクトルについて処理を実行していればステップS1711に移行し、未処理の特徴ベクトルがある場合はステップS1710に移行する。ステップS1710では、マージン決定部6が次の劣化させた学習用サンプルパターンの特徴ベクトルを選択し、ステップS1704に移行する。
【0071】
ステップS1711では、マージン決定部6がカテゴリ全てについて処理をしたか否かを判定する。全てのカテゴリについて処理を実行していればステップS1712に移行し、未処理のカテゴリがある場合はステップS1702に移行する。なお、カテゴリが変わるたびにカウント値mRcount、mLcountの値に初期値(例えば「0」)を設定する。
【0072】
ステップS1712でマージン決定部6は、式13に示すように、カテゴリごとの右方向および左方向のそれぞれのマージン量の平均値mRave、mLaveを求める。
mRave ← mR/mRcount
mLave ← mL/mLcount 式13
【0073】
なお、平均値mRave、mLaveに固定倍数を積算しマージン量を調整してもよい。そして、マージン決定部6は、図18に示したようにカテゴリとマージン量の平均値mRave、mLaveを対応づけて、それぞれ記録部7に記録する。図18は、実施例3に示したマージン決定方法により算出したマージン量(mRave、mLave)を、カテゴリごとに対応付けて記録するときのデータ構造の一例を示す図である。図18の「カテゴリ」にはカテゴリを識別するための識別番号(1、2〜n)が記録され、「mRave」「mLave」には上記処理により決定したカテゴリごとのマージン量(MAL1〜MALn/MAR1〜MARn)が記録されている。
【0074】
上記のようにマージン決定処理は、カテゴリに含まれる複数の元となるパターンと、元となるパターンを劣化させたパターンの各特徴ベクトルの同じ位置の要素を、予め設定された範囲の同じ位置の要素に対応する軸に投影する。次に、元となるパターンの軸上の座標位置と、劣化させたパターンごとの軸上の座標位置との差を算出する。そして、元となるパターンの軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出し、カテゴリごとにマージン量を対応付けて記録部7に記録する。
【0075】
実施例3によれば、元となる学習用サンプルパターンと劣化させた複数の学習用サンプルパターンに基づいてマージン量を決めているため、従来の大分類用の辞書を用いて大分類をするより、精度を向上させることができる。すなわち、実施例3の平面辞書はカテゴリごとの各特徴ベクトルの各要素に対して適切に分布を捉えているため、大分類の精度を向上させることができる。
なお、実施例2で説明した次元圧縮したベクトルを用いて、実施例3で説明した方法によりマージン量を決定してもよい。
【0076】
(実施例4)
実施例4は、軸を予め決められたサイズで区分けして、カテゴリごとの全ての学習用サンプルパターンの特徴ベクトルの各要素を軸へ投影し、区間と軸上の座標位置に基づいてマージン量を求める。
【0077】
図19は、実施例4におけるマージン決定処理の一例を示すフロー図である。また、実施例4では図20に示すように、マージン決定部6が、軸上に予め決められたサイズで区分けした区間を設定する。例えば、軸が0〜255の数値範囲で示されているときには、256を等間隔で区分けして各区間に識別番号を割り付ける。図20場合であれば区間を10に区切り10等分している。なお、区間は必ずしも等分する必要はない。
【0078】
ステップS1901では、特徴抽出部2が元となる学習用サンプルパターンに対して劣化させた複数の学習用サンプルパターンを特徴ベクトルに変換し、該特徴ベクトルとカテゴリ、区間、元となる学習用サンプルパターンの特徴ベクトルを対応づけて記録部7に記録する。ステップS1902では、マージン決定部6がカテゴリまたはテンプレートを選択する。ステップS1903では、マージン決定部6が元となる学習用サンプルパターンを選択する。ステップS1904では、マージン決定部6が元となる学習用サンプルパターンを劣化させたパターンの特徴ベクトルから要素を選択する。ステップS1905では、マージン決定部6がステップS1904で選択した対象の要素に対応する値がある区間を選択する。
【0079】
ステップS1906では、実施例1で説明したステップS1705と同様に、マージン決定部6が選択した要素に対応する軸上で、元の特徴ベクトルの要素の値と、劣化させた特徴ベクトルの要素の値との差をマージンとして求める。例えば、元となる学習用サンプルパターンの特徴ベクトルの要素に対応する軸上の座標位置をPbaseとし、劣化させたパターンの軸上の座標位置をPdeteとて、|Pbase−Pdete|を計算して差を求める。次に、マージン決定部6は、PbaseとPdeteの大きさを比較して大小関係を求めて、元となる学習用サンプルパターンの特徴ベクトルの要素に対応する値を中心に、右方向(最大値方向)のマージンであるか、左方向(最小値方向)のマージンであるかを判定する。軸を0〜255の数値範囲とした場合、例えば区間1に対しては、Pbase−Pdeteを計算して計算結果がプラスの値であれば左方向のマージンとし、該値を変数mLint1_tempに記録する。また、マイナスの値であれば右方向のマージン量とし、該値を変数mRint1_tempに記録する。
【0080】
ステップS1907では、マージン決定部6が区間ごとにステップS1906で算出したマージン量を加算する。例えば、区間1の場合であれば式14に示すように、右方向のマージン量の加算であれば、変数mRint1に変数mRint1_tempを加算し、左方向のマージン量の加算であれば、変数mLint1に変数mLint1_tempを加算する。
mRint1 ← mRint1+mRint1_temp
mLint1 ← mLint1+mLint1_temp 式14
【0081】
その際、変数mRint1に、変数mRint1_tempが加算されるたびに式15に示すようにmRint1_countに1を加算し、加算した回数を記録する。また、変数mLint1に、変数mLint1_tempが加算されるたびに式15に示すようにmLint1_countに1を加算し、加算した回数を記録する。
mRint1_count←mRint1_count+1
mLint1_count←mLint1_count+1 式15
【0082】
ステップS1908でマージン決定部6は、対象を劣化させた学習用サンプルパターンの特徴ベクトルの要素全てについて処理をしたか否かを判定する。全ての要素について処理を実行していればステップS1910に移行し、未処理の要素がある場合はステップS1909に移行する。ステップS1909では、マージン決定部6が次の要素を選択し、ステップS1905に移行する。
【0083】
ステップS1910では、マージン決定部6が、劣化させた学習用サンプルパターンの特徴ベクトル全てについて処理をしたか否かを判定する。全ての特徴ベクトルについて処理を実行していればステップS1912に移行し、未処理の特徴ベクトルがある場合はステップS1911に移行する。ステップS1911では、マージン決定部6が次の劣化させた学習用サンプルパターンの特徴ベクトルを選択し、ステップS1904に移行する。
【0084】
ステップS1912では、マージン決定部6がカテゴリ全てについて処理をしたか否かを判定する。全てのカテゴリについて処理を実行していればステップS1913に移行し、未処理のカテゴリがある場合はステップS1902に移行する。なお、カテゴリが変わるたびにカウント値に初期値(例えば「0」)を設定する。区間1の場合であれば、mRint1_count、mLint1_countの値に初期値を設定する。
【0085】
ステップS1913でマージン決定部6は、各カテゴリの各区間における右方向および左方向のそれぞれのマージン量の平均値を求める。区間1の場合であれば、式16に示すように、各カテゴリの各区間における右方向および左方向のそれぞれのマージン量の平均値mRint1_ave、mLint1_aveを求める。
mRint1_ave ← mRint1_/mRint1_count
mLint1_ave ← mLint1_/mLint1_count 式16
【0086】
なお、平均値mRint1_ave、mLint1_aveに固定倍数を積算しマージン量を調整してもよい。また、マージン決定部6は、図21に示したようにカテゴリとマージン量の平均値を対応づけて、それぞれ記録部7に記録する。図21は、実施例4に示したマージン決定方法により算出したマージン量を、各カテゴリの各区間に対応付けて記録するときのデータ構造の一例を示す図である。図21の「カテゴリ」には、カテゴリを識別するための識別番号(1、2〜n)が記録され、「区間1」〜「区間w」(wは整数)には区間を識別するための識別番号(1、2〜w)が記録されている。また、図21の「mRint1_ave」〜「mRintw_ave」、「mLint1_ave」〜「mLintw_ave」には、上記処理により決定した各カテゴリの各区間のマージン量(MAL11〜MALwn/MAR11〜MARwn)が記録されている。
【0087】
上記のように実施例4では、マージン決定処理により、軸を予め設定された範囲に区分けした区間を設定する。次に、カテゴリに含まれる複数の元となるパターンと、元となるパターンを劣化させたパターンの各特徴ベクトルの同じ位置の要素を、予め設定された範囲の同じ位置の要素に対応する軸に投影する。次に、元となるパターンの軸上の座標位置と、劣化させたパターンごとの軸上の座標位置との差を算出する。そして、元となるパターンの軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出し、元となるパターンの軸上の座標位置が含まれる区間ごとにマージン量を対応付けて記録部7に記録する。
【0088】
従来手法では軸上の1点に多数のカテゴリが所属することになり、認識時の絞り込み能力が低く、高精度を保ったまま少数カテゴリに絞り込めなかった。しかし、実施例4によれば、マージン量を元となる学習用サンプルパターンと劣化させた複数の学習用サンプルパターンに基づいて、区間ごとにマージン量を決めているため、従来の大分類用の辞書を用いて大分類の精度を向上させることができる。すなわち、実施例4の平面辞書は各カテゴリの各区間の各特徴ベクトルの各要素に対して適切に分布を捉えているため、大分類の精度を向上させることができる。
なお、実施例2で説明した次元圧縮したベクトルを用いて、実施例4で説明した方法によりマージン量を決定することもできる。
【0089】
(実施例5)
実施例5では、各カテゴリまたは各テンプレートの集合に含まれる文字パターンのフォントタイプに注目して、同一カテゴリにおけるフォントタイプごとの軸上の分布に基づいてマージン量を求める。
【0090】
図22は、実施例5におけるマージン決定処理の一例を示すフロー図である。
ステップS2201で特徴抽出部2が、同一カテゴリにおける複数の異なるフォントタイプの学習用サンプルパターンの文字パターンを特徴ベクトルに変換し、該特徴ベクトルとフォント、カテゴリを対応づけて記録部7に記録する。
【0091】
ステップS2202では、マージン決定部6が対象のカテゴリを選択する。ステップS2203では、マージン決定部6がフォントを選択する。
ステップS2204では、マージン決定部6がステップS2203で選択したフォントの特徴ベクトルから要素を選択し、対応する軸上に特徴ベクトルの要素を投影する。例えば、同一カテゴリ1に異なるフォントタイプの学習用サンプルパターン(文字パターン:F11〜F1n)が複数ある場合に、文字パターンF11〜F1nをそれぞれ288次元の特徴ベクトルに変換したときについて説明する。文字パターンF11〜F1nの各特徴ベクトルを構成する1〜288番目の要素に対して、それぞれ0〜255の数値範囲で示される軸を割り振る。1番目の要素に対応する軸には、文字パターンF11〜F1nの各特徴ベクトルの1番目に対応する各要素を投影する。他の軸についても、文字パターンF11〜F1nの各特徴ベクトルの対象要素を対象になる軸に投影する。すなわち、文字パターンF11〜F1nの特徴ベクトルの全ての要素が、288個の軸に全て投影される。
【0092】
ステップS2205でマージン決定部6は、対象のフォントに対する特徴ベクトルの要素全てについて処理をしたか否かを判定する。全ての要素について処理を実行していればステップS2207に移行し、未処理の要素がある場合はステップS2206に移行する。ステップS2206では、マージン決定部6が次の要素を選択し、ステップS2204に移行する。
【0093】
ステップS2207では、マージン決定部6がステップS2203で選択したフォントの特徴ベクトル全てについて処理をしたか否かを判定する。全ての特徴ベクトルについて処理を実行していればステップS2209に移行し、未処理の特徴ベクトルがある場合はステップS2208に移行する。ステップS2208では、マージン決定部6が次のフォントの特徴ベクトルを選択し、ステップS2204に移行する。
【0094】
ステップS2209では、マージン決定部6が同一カテゴリの各軸上に投影された複数の要素の平均値を求める。例えば、上記説明したカテゴリ1に含まれる文字パターンF11〜F1nの特徴ベクトルの全ての要素が投影された288個の軸の場合であれば、288個の軸ごとに、軸上の要素の平均値を計算する。次に、この平均値の値とフォントタイプごとの特徴ベクトルの軸上の要素の値との差を求める。例えば、平均値に対応する軸上の座標位置をPfbaseとし、フォントごとの文字パターンの軸上の座標位置をPfdeteとて、|Pfbase−Pfdete|を計算して差を求める。次に、マージン決定部6は、PfbaseとPfdeteの大きさを比較して大小関係を求めて、平均値を中心に、右方向(最大値方向)のマージンであるか、左方向(最小値方向)のマージンであるかを判定する。軸を0〜255の数値範囲とした場合、Pfbase−Pfdeteを計算して計算結果がプラスの値であれば左方向のマージンとし、該値を変数mLf_tempに記録する。また、マイナスの値であれば右方向のマージン量とし、該値を変数mRf_tempに記録する。
【0095】
ステップS2210では、マージン決定部6がフォントごとの差の平均値を求めて、カテゴリごとのフォントのマージン値とする。まず、フォントごとにステップS2209で算出したマージン量を加算する。例えば、式17に示すように、右方向のマージン量の加算であれば、変数mRfに変数mRf_tempを加算し、左方向のマージン量の加算であれば、変数mLfに変数mLf_tempを加算する。
mRf ← mRf+mRf_temp
mLf ← mLf+mLf_temp 式17
【0096】
その際、変数mRfに、変数mRf_tempが加算されるたびに式18に示すようにmRf_countに1を加算し、加算した回数を記録する。また、変数mLfに、変数mLf_tempが加算されるたびに式18に示すようにmLf_countに1を加算し、加算した回数を記録する。
mRf_count←mRf_count+1
mLf_count←mLf_count+1 式18
【0097】
次に、マージン決定部6は、式19に示すように、フォントごとの右方向および左方向のそれぞれのマージン量の平均値mRf_ave、mLf_aveを求める。
mRf_ave ← mRf/mRf_count
mLf_ave ← mLf/mLf_count 式19
【0098】
なお、平均値mRf_ave、mLf_aveに固定倍数を積算しマージン量を調整してもよい。なお、フォントが変わるたびにカウント値mRcount、mLcountの値に初期値(例えば「0」)を設定する。
【0099】
ステップS2211では、マージン決定部6がカテゴリ全てについて処理をしたか否かを判定する。全てのカテゴリについて処理を実行していればステップS2212に移行し、未処理のカテゴリがある場合はステップS2202に移行する。
【0100】
そして、マージン決定部6は、図23に示したようにフォントごとのマージン量の平均値mRf_ave、mLf_aveを各フォントに対応づけて、それぞれ記録部7に記録する。図23のフォントF1の場合、図23のフォントF1に対応する平均値MARF1、MALF1がそれぞれ設定されている。他のフォントについてもそれぞれ平均値が設定されている。
【0101】
上記のように実施例5では、同一カテゴリに含まれる異なるフォントのパターンの各特徴ベクトルの同じ位置の要素を、予め設定された範囲の同じ位置の要素に対応する軸に投影し、異なるフォントのパターンの軸上の座標位置の平均値を算出する。次に、フォントごとのパターンの軸上の座標位置と平均値の座標位置との差を算出して、該差を平均値の座標位置を中心にして最小値方向の差と最大値方向の差に分ける。そして、カテゴリごとに同一フォントの最小値方向の差の平均値と最大値方向の差をマージン量として算出して、カテゴリにマージン量を対応付けて記録部に記録する。
【0102】
従来手法では軸上の1点に多数のカテゴリが所属することになり、認識時の絞り込み能力が低く、高精度を保ったまま少数カテゴリに絞り込めなかった。しかし、実施例5によれば、マージン量をカテゴリごとのフォントに基づいてマージン量を決めているため、大分類用の辞書を用いて大分類の精度を向上させることができる。すなわち、実施例5の平面辞書は、従来に比べてカテゴリごとの各特徴ベクトルの各要素に対して適切に分布を捉えているため、大分類の精度を向上させることができる。
【0103】
なお、実施例2で説明した次元圧縮したベクトルを用いて、実施例5で説明した方法によりマージン量を決定することもできる。
【0104】
(変形例1)
なお、実施例3におけるカテゴリの代わりに、フォントの種類により区分けしたテンプレートを用いることにより、図24に示すようなカテゴリごとにフォントとマージ量を対応付けて記録することができる。図24の「カテゴリ」にはカテゴリを識別するための識別番号(1、2〜n)が記録され、「フォント」にはフォントを識別するための識別番号(F1、F2〜Fn)が記録され、ている。また、「mRf_ave2」「mLf_ave2」には、上記実施例3の処理により決定した各カテゴリにおけるフォントごとのマージン量(MALF11、MALF12〜/MARF11、MARF12〜)が記録されている。
【0105】
(変形例2)
変形例2は、上記実施例で説明したパターン認識処理を用いてパターン認識を行った結果、誤認識文字があることを発見した場合、誤認識の原因が大分類にあれば、利用者が大分類用の平面辞書を調整して、調整結果を大分類用の平面辞書に記録するものである。
【0106】
図25は、上記実施形態の装置を実現できるコンピュータのハードウェア構成の一例を示す図である。
コンピュータのハードウェア2500は、CPU2501、記録部2502(ROM、RAM、ハードディスクドライブなど)、記録媒体読取装置2503、入出力インタフェース2504(入出力I/F)、通信インタフェース2505(通信I/F)などを備えている。また、上記各構成部はバス2506によってそれぞれ接続されている。
【0107】
CPU2501は、記録部2502に格納されている上記説明したパターン認識処理(図6、図13、図17、図19、図22などに示した処理)を実行する。
記録部2502には、CPU2501が実行するプログラムやデータが記録されている。また、ワークエリアなどとして使用される。また、記録部2502は上記説明した記録部7の機能を有する。
【0108】
記録媒体読取装置2503は、CPU2501の制御にしたがって記録媒体2503aに対するデータのリード/ライトを制御する。そして、記録媒体2503aに記録媒体読取装置2503の制御で書き込まれたデータを記憶させたり、記録媒体2503aに記憶されたデータを読み取らせたりする。また、着脱可能な記録媒体2503aは、コンピュータで読み取り可能な記録媒体として、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)などがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
【0109】
入出力インタフェース2504には、入出力装置2504a(例えば、ディスプレイなど)が接続され、ユーザが入力した情報を受信し、バス2506を介してCPU2501に送信する。また、CPU2501からの命令に従ってディスプレイの画面上に操作情報などを表示する。
【0110】
通信インタフェース2505は、必要に応じ、他のコンピュータとの間のLAN接続やインターネット接続や無線接続のためのインタフェースである。また、他の装置に接続され、外部装置からのデータの入出力を制御する。
【0111】
図25に示す入出力装置2504aであるモニタの画面上に表示されたパターン認識結果に誤認識文字があることを利用者が発見した場合、利用者が誤認識文字を正解文字に変更するために、画面上の誤認識文字をマウスなどにより選択する。そして、利用者が誤認識文字の代わりに正解文字を入力する。その際、CPU2501が、誤認識した文字に関する大分類用の軸に関するデータと、正解文字に関する大分類用の軸に関するデータと記録部2502から取得して比較し、どの軸でエラーしたかを判定する。そして、CPU2501が判定結果として、エラーした軸と分布をモニタの画面上に表示させる(図12、15のような表示)。利用者は、画面上に表示されたエラーした軸の分布領域(マージン量)をマウスなどで操作して調整をする。CPU2501は、この調整した結果を記録部2502の大分類用の平面辞書に反映させることができる。そのため、従来のように誤認識した文字を正解文字に書き換えるだけでなく、誤認識した場合でも、利用者が大分類用の平面辞書の対象の軸の分布を、視覚的に簡単に調整をすることができる。
(本実施例がコンピュータプログラムとして実現される場合の構成)
図25のようなハードウェア構成を有するコンピュータを用いることによって、上記説明した各種処理機能(実施例で説明した処理(フローチャートなど))が実現される。その場合システムが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体2503aに記録しておくことができる。
【0112】
また、プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0113】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0114】
また、本発明は、上記実施の形態に限定されるものでなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。なお、各実施例は処理に矛盾の無い限りにおいて、互いに組み合わせても構わない。
【0115】
以上実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
学習用サンプルパターンを種別する複数のカテゴリごとに、同じカテゴリに含まれる複数の特徴ベクトルごとに求められる参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、軸上の要素ごとに、予め設定されたマージン量とカテゴリを関連付けて生成した候補テーブルを記録する記録部と、
与えられたパターンの参照特徴ベクトルを求め、前記候補テーブルを用いて、該参照特徴ベクトルの要素ごとに分類をして候補カテゴリ集合を求め、分類した候補カテゴリ集合を出力する分類部と、
を備えることを特徴とするパターン認識装置。
(付記2)
前記パターン認識装置は、前記学習用サンプルパターンまたは前記与えられたパターンを同次元の特徴ベクトルにする特徴抽出部と、
前記特徴ベクトルを次元圧縮して前記参照特徴ベクトルにする特徴圧縮部と、
を備えることを特徴とする付記1に記載のパターン認識装置。
(付記3)
前記マージン量は、前記カテゴリに含まれる複数の元となる学習用サンプルパターンと、前記元となる学習用サンプルパターンを劣化させたパターンの各参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、前記元となる学習用サンプルパターンの前記軸上の座標位置と、前記劣化させたパターンごとの前記軸上の座標位置との差を算出して、前記元となる学習用サンプルパターンの前記軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値であることを特徴とする付記1または2に記載のパターン認識装置。
(付記4)
前記マージン量は、前記軸を予め設定された範囲に区分けした区間を設定し、前記カテゴリに含まれる複数の元となる学習用サンプルパターンと、前記元となる学習用サンプルパターンを劣化させたパターンの各参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、前記元となる学習用サンプルパターンの前記軸上の座標位置と、前記劣化させたパターンごとの前記軸上の座標位置との差を算出して、前記元となる学習用サンプルパターンの前記軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出し、前記元となる学習用サンプルパターンの前記軸上の座標位置が含まれる前記区間ごとに前記マージン量を対応付けることを特徴とする付記1または2に記載のパターン認識装置。
(付記5)
前記マージン量は、同一カテゴリに含まれる異なるフォントの学習用サンプルパターンの各特徴ベクトルの同じ位置の要素を、予め設定された範囲の前記同じ位置の要素に対応する軸に投影し、前記異なるフォントの学習用サンプルパターンの前記軸上の座標位置の平均値を算出し、前記フォントごとの学習用サンプルパターンの前記軸上の座標位置と前記平均値の座標位置との差を算出して、該差を前記平均値の座標位置を中心にして最小値方向の差と最大値方向の差に分け、前記カテゴリごとに同一フォントの前記最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出して、前記フォントごとに前記マージン量を対応付けることを特徴とする付記1または2に記載のパターン認識装置。
(付記6)
コンピュータに、
与えられたパターンの参照特徴ベクトルを求める処理と、
学習用サンプルパターンを種別する複数のカテゴリごとに、同じカテゴリに含まれる複数の特徴ベクトルごとに求められる参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、軸上の要素ごとに、予め設定されたマージン量とカテゴリを関連付けて生成した候補テーブルを用いて、該参照特徴ベクトルの要素ごとに分類をして候補カテゴリ集合を求める処理と、
分類した候補カテゴリ集合を出力する処理と、
を実行させることを特徴とするパターン認識プログラム。
(付記7)
コンピュータが、
与えられたパターンの参照特徴ベクトルを求め、
学習用サンプルパターンを種別する複数のカテゴリごとに、同じカテゴリに含まれる複数の特徴ベクトルごとに求められる参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、軸上の要素ごとに、予め設定されたマージン量とカテゴリを関連付けて生成した候補テーブルを用いて、該参照特徴ベクトルの要素ごとに分類をして候補カテゴリ集合を求め、
分類した候補カテゴリ集合を出力する、
ことを実行するパターン認識方法。
(付記8)
前記学習用サンプルパターンまたは前記与えられたパターンを同次元の特徴ベクトルにする処理と、
前記特徴ベクトルを次元圧縮して前記参照特徴ベクトルにする処理と、
をコンピュータに実行させることを特徴とする付記6に記載のパターン認識プログラム。
(付記9)
前記カテゴリに含まれる複数の元となる学習用サンプルパターンと、前記元となる学習用サンプルパターンを劣化させたパターンの各参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、前記元となる学習用サンプルパターンの前記軸上の座標位置と、前記劣化させたパターンごとの前記軸上の座標位置との差を算出して、前記元となる学習用サンプルパターンの前記軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出する処理を、コンピュータに実行させることを特徴とする付記6または8に記載のパターン認識プログラム。
(付記10)
前記軸を予め設定された範囲に区分けした区間を設定し、前記カテゴリに含まれる複数の元となる学習用サンプルパターンと、前記元となる学習用サンプルパターンを劣化させたパターンの各参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、前記元となる学習用サンプルパターンの前記軸上の座標位置と、前記劣化させたパターンごとの前記軸上の座標位置との差を算出して、前記元となる学習用サンプルパターンの前記軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出し、前記元となる学習用サンプルパターンの前記軸上の座標位置が含まれる前記区間ごとに前記マージン量を対応付けて前記記録部に記録する処理を、コンピュータに実行させることを特徴とする付記6または8に記載のパターン認識プログラム。
(付記11)
同一カテゴリに含まれる異なるフォントの学習用サンプルパターンの各特徴ベクトルの同じ位置の要素を、予め設定された範囲の前記同じ位置の要素に対応する軸に投影し、前記異なるフォントの学習用サンプルパターンの前記軸上の座標位置の平均値を算出し、前記フォントごとの学習用サンプルパターンの前記軸上の座標位置と前記平均値の座標位置との差を算出して、該差を前記平均値の座標位置を中心にして最小値方向の差と最大値方向の差に分け、前記カテゴリごとに同一フォントの前記最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出して、前記フォントごとに前記マージン量を対応付けて記録部に記録する処理を、コンピュータに実行させることを特徴とする付記6または8に記載のパターン認識プログラム。
(付記12)
前記学習用サンプルパターンまたは前記与えられたパターンを同次元の特徴ベクトルにし、
前記特徴ベクトルを次元圧縮して前記参照特徴ベクトルにする、
ことをコンピュータが実行する付記7に記載のパターン認識方法。
(付記13)
前記カテゴリに含まれる複数の元となる学習用サンプルパターンと、前記元となる学習用サンプルパターンを劣化させたパターンの各参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、前記元となる学習用サンプルパターンの前記軸上の座標位置と、前記劣化させたパターンごとの前記軸上の座標位置との差を算出して、前記元となる学習用サンプルパターンの前記軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出する、ことをコンピュータが実行する付記7または12に記載のパターン認識方法。
(付記14)
前記軸を予め設定された範囲に区分けした区間を設定し、前記カテゴリに含まれる複数の元となる学習用サンプルパターンと、前記元となる学習用サンプルパターンを劣化させたパターンの各参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、前記元となる学習用サンプルパターンの前記軸上の座標位置と、前記劣化させたパターンごとの前記軸上の座標位置との差を算出して、前記元となる学習用サンプルパターンの前記軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出し、前記元となる学習用サンプルパターンの前記軸上の座標位置が含まれる前記区間ごとに前記マージン量を対応付けて前記記録部に記録する、ことをコンピュータが実行する付記7または12に記載のパターン認識方法。
(付記15)
同一カテゴリに含まれる異なるフォントの学習用サンプルパターンの各特徴ベクトルの同じ位置の要素を、予め設定された範囲の前記同じ位置の要素に対応する軸に投影し、前記異なるフォントの学習用サンプルパターンの前記軸上の座標位置の平均値を算出し、前記フォントごとの学習用サンプルパターンの前記軸上の座標位置と前記平均値の座標位置との差を算出して、該差を前記平均値の座標位置を中心にして最小値方向の差と最大値方向の差に分け、前記カテゴリごとに同一フォントの前記最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出して、前記フォントごとに前記マージン量を対応付けて記録部に記録する、ことをコンピュータが実行する付記7または12に記載のパターン認識方法。
【符号の説明】
【0116】
1、1601 パターン認識装置
2 特徴抽出部
3 大分類部
4 詳細分類部
5 テーブル作成部
6 マージン決定部
7 記録部
1602 特徴圧縮部
2500 ハードウェア
2501 CPU
2502 記録部
2503 記録媒体読取装置
2503a 記録媒体
2504 入出力インタフェース
2504a 入出力装置
2505 通信インタフェース
2506 バス
【技術分野】
【0001】
本発明は、入力画像のパターン認識を実行するパターン認識装置、パターン認識プログラム、パターン認識方法に関する。
【背景技術】
【0002】
近年、文書を画像で保存することを許可するe文書法(電子文書法:法令番号平成16年法律第149号、平成16年法律第150号)が施行され、文書画像の検索ニーズが高まるなど、パターン認識技術は様々な分野で使用されている。
【0003】
文書画像におけるパターン認識処理は、文書画像からテキスト領域を求めるレイアウト解析処理と、抽出したテキスト領域を対象に文字画像を文字コードに変換する文字認識処理に分けることができる。また、文書画像のパターン認識にかかる処理時間を計測すると、文字認識処理がレイアウト解析処理より処理時間を要することが知られている。そこで、パターン認識処理にかかる時間を削減して、パターン認識処理を高速化するための提案がされている。
【0004】
例えば、文字認識処理部分を高速化する方法として、文字認識精度(文字認識の正解率)を犠牲にする簡便な処理が提案されている。しかし、蓄積した文書の検索や、再利用などの実用性を考えた場合、文字認識精度を低下させることは好ましくない。そのため、文字認識精度を高精度に保ったまま高速に文字認識処理を行うことが求められている。
【0005】
そこで、次のような文字認識処理に関する技術が提案されている。まず、パターン認識装置に、対象の文字コード(JIS第1水準の漢字、JIS第2水準の漢字、ひらがな、カタカナ、記号、縦書き専用文字、英字、数字、半角文字などに対応するコード)に対応する複数の文字画像(学習用サンプルパターン)を収集する。そして、パターン認識装置は、収集した各文字画像を特徴ベクトルに変換し、文字コードごとに平均ベクトルを作成し、文字コードと平均ベクトルをペアにして記録部に記録し、辞書を生成する。他の文字コードについても同じことを行い、複数の文字コードと文字コードに対応する特徴ベクトルの情報を記録部に記録する。
【0006】
ここで、パターン認識においてよく用いられる用語を、簡単に定義しておく。認識対象のことをパターンと呼び、すべてのパターンの作る集合のことをパターン空間と呼ぶ。
パターンを特徴抽出することにより得られる1つ以上の特徴量の組を特徴ベクトルと呼び、特徴ベクトルの要素の数を特徴ベクトルの次元と呼ぶ。特徴ベクトルのそれぞれの要素の値(特徴量)の組を特徴ベクトルの値と呼び、すべての特徴ベクトルの値の作る集合のことを特徴空間と呼ぶ。特徴空間の次元は、特徴空間の要素である特徴ベクトルの次元と等しい。同一種類とみなすことのできるパターンあるいは特徴ベクトルの集合をカテゴリと呼ぶ。特に、同一種類とみなすことのできるパターンの集合を、カテゴリパターン集合、同一種類とみなすことのできる特徴ベクトルの集合を、カテゴリ特徴集合と呼ぶ。
【0007】
パターン認識装置などに入力される未知のパターンあるいは未知のパターンから求められた特徴ベクトルが、どのカテゴリ(カテゴリパターン集合あるいはカテゴリ特徴集合)に属するのかを決定することを、パターン認識と呼ぶ。特に、入力されたパターンあるいは特徴ベクトルが、カテゴリ集合中のあるカテゴリに属する可能性があると推定される場合、そのカテゴリ集合のことを候補カテゴリ集合と呼ぶ。
【0008】
文字認識処理を行う際、未知の文字画像が入力されると、入力された文字画像から特徴ベクトルを生成し、辞書(メモリなど)に保持されている複数の特徴ベクトルとの間でマッチングを行う。マッチングは未知文字の特徴ベクトルと、辞書の特徴ベクトル間の距離計算(マッチング処理)で行う。この結果、辞書の中の文字コード数分の距離値が得られ、その中で、最小の距離値となる文字コードを未知文字の認識結果として出力する。
【0009】
しかし、上記説明した文字認識処理において、未知文字の特徴ベクトルと辞書内の全ての文字コードの特徴ベクトルとの間のマッチング処理には、多くの処理時間を費やしている。また、日本語などの文字コードの種類が多い言語では、さらにマッチング処理時間が長くなる。
【0010】
そこで、マッチング処理の高速化のために、大分類、詳細分類の2段階処理が使われる。大分類とは、辞書の中の特徴ベクトルの集合から、認識対象である入力文字画像から生成した特徴ベクトルに近い特徴ベクトルを抽出し、詳細分類をする際の対象を絞り込む処理である。絞り込んだ文字コードだけを対象として詳細分類をすると、従来のマッチング処理時間を大幅に削減することが可能になる。
【0011】
大分類で用いる辞書の生成は、例えば、図1に示すように1つの字種(カテゴリ)またはテンプレート(1つのカテゴリを複数のグループに分割したときの1つのグループ)に所属する文字画像の集合を求める。次に、その集合を全てn次元(n:1以上整数)の特徴ベクトルに変換し、1つのカテゴリの学習用サンプルパターンの特徴ベクトル集合を作る。次に、n個の軸(特徴ベクトルを構成する要素に対応する軸)の中の1つの軸に注目して、この軸上の1つのカテゴリの学習用サンプルパターンの特徴ベクトル集合を全て投影すると、軸上でこのカテゴリに属する要素の値の範囲が求まる。ここで、図1において投影する軸の範囲Aは、すべての特徴ベクトルを構成する要素を示す特徴量を、量子化して、−127〜128(256ビット)の範囲Aとしている。次に、この軸上の範囲Aにおける最小値min、最大値maxを求め、予め決めておいたマージン値marginを用いて該軸の上の最小値・最大値で表される範囲Bを、拡大して範囲Cにする。この拡大した2つの値(min−margin、max+margin)の間にこのカテゴリが存在すると仮定する。そして、n次元のn個のすべての軸に対して、上記説明した拡大した範囲Cを算出して、範囲Cを記憶部に記録することにより、1つの字種に対する辞書が生成される。他の字種についても上記同様に辞書を生成して全てのカテゴリまたはテンプレートに対する辞書を生成する。以後上記のように生成した辞書を平面辞書と呼ぶ。
【0012】
平面辞書は、図2に示すような配列状の平面で表すことができる。図2の例では、横が各軸の分布を−127から128数値範囲(256ビット)で示されており、縦がカテゴリ数で示されている平面である。カテゴリには、カテゴリごとに識別番号(1、2、3・・・)が割り振られている。また、図2はn次元空間における、3種類のカテゴリの拡大した範囲Cについて示した例である。丸(A1、A2)はカテゴリ1、三角(A3、A4)がカテゴリ2、四角(A5、A6)はカテゴリ3を示している。
【0013】
A1、A2のテンプレートに注目すると、A1からおろした座標位置が最小値minの値になり、A2からおろした座標位置が最大値maxの値となる。図2ではマージン値marginをMと示している。最小値min、最大値maxの座標位置からこのマージン値Mだけ左右にずらした座標位置がカテゴリ1の拡大した範囲となる。この範囲を平面辞書に記録するために、カテゴリ1の−127から128の256ビット中の対象の範囲にビット「1」を設定し、それ以外の範囲にビット「0」を設定して平面辞書に記録する。他のカテゴリについても同様に処理を行い、平面辞書を完成させる。
【0014】
なお、大分類の処理は、パターン認識処理の時には、未知文字画像を先ずn次元特徴ベクトルに変換して各軸へ投影する。次に、未知文字画像に対するn個の各軸の座標位置と平面辞書に保持されている軸上の座標位置を参照し、同じ座標位置にビット「1」があるか否かを判定して、未知文字画像に近いカテゴリを求める。他の軸においても同様の処理を行い、全ての軸で存在するカテゴリを求めて、カテゴリを絞り込み大分類結果(候補カテゴリ集合)とする。
【先行技術文献】
【特許文献】
【0015】
【特許文献1】特開平10−289320号公報
【非特許文献】
【0016】
【非特許文献1】「特徴領域の射影推定による高速高精度な大分類方式」 藤本、鎌田、黒川、 電子情報通信学会技術研究報告パターン認識・メディア理解(PRMU)、信学技報Vol.97 No.558、PRMU97‐220、pp.25‐32.1998年2月19日
【発明の概要】
【発明が解決しようとする課題】
【0017】
しかしながら、上記方法では1つのカテゴリまたはテンプレートの軸上の学習用サンプルパターンの特徴ベクトルの特徴量に対応する分布を最小値、最大値で表現している。そのため、1つのカテゴリまたはテンプレートの軸上に特徴量が存在しない箇所にも、特徴量があるかのように平面辞書に記録してしまう。そのため、本来大分類処理において詳細分類の対象から外すべきテンプレートが、大分類の結果に含まれてしまい、パターン認識時の絞り込み能力が低下し、高精度な大分類ができない。拡大した範囲Cを用い作成した場合、図3に示すようなことが起こる。図3は2次元の特徴空間を示している。また、図3は拡大した範囲Cを用い作成した字種「A」「B」「C」の辞書に記録されている分布範囲(「A」の分布範囲Aa、「B」の分布範囲Ba、「C」の分布範囲Ca)と実際の分布範囲(「A」の範囲Ar、「B」の範囲Br、「C」の範囲Cr)の関係を示している。図3において、未知文字「X」が入力されたときに、未知文字「X」は実際には「C」のカテゴリに絞り込まれなければならないが、図3において文字「A」のカテゴリにも未知文字「X」は属している。そのため、実際には未知文字「X」はAの分布には近くないが、「X」に近いカテゴリ候補として文字「C」と文字「A」のカテゴリが選択されてしまう。
【0018】
そこで、本発明はパターン認識を高精度に行うパターン認識装置、パターン認識プログラム、パターン認識方法を提供することを目的とする。
【課題を解決するための手段】
【0019】
実施態様のひとつであるパターン認識装置は、記録部、分類部を備えている。記録部は候補テーブルを有している。候補テーブルは、学習用サンプルパターンを種別する複数のカテゴリごとに、同じカテゴリに含まれる複数の特徴ベクトルごとに求められる参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、軸上の要素ごとに、予め設定されたマージン量とカテゴリを関連付けて生成したものである。
【0020】
分類部は、与えられたパターンの参照特徴ベクトルを求め、前記候補テーブルを用いて、該参照特徴ベクトルの要素ごとに分類をして候補カテゴリ集合を求め、分類した候補カテゴリ集合を出力する。
【発明の効果】
【0021】
開示のパターン認識に関する実施例は、パターン認識精度を高精度に行うという効果を奏する。
【図面の簡単な説明】
【0022】
【図1】従来の候補テーブル(大分類用辞書)の概要を示す図である。
【図2】従来の候補テーブル(大分類用辞書)の概要を示す図である。
【図3】候補テーブル(大分類用辞書)に記録され字種の分布範囲と実際の分布範囲の関係を示す図である。
【図4】実施例1におけるパターン認識装置の構成の一例を示すブロック図である。
【図5】特徴ベクトルの一例を示す図である。
【図6】実施例1における候補テーブル(大分類用辞書)の作成動作の一例を示すフロー図である。
【図7】カテゴリとテンプレートの関係を示す図である。
【図8】カテゴリに学習用サンプルパターンごとの特徴ベクトルを対応付けて記録した場合のデータ構造の一例を示す図である。
【図9】Aは、軸上に投影された要素を示す図であり、Bは、軸上に投影された要素にマージンを設けたことを示す図である。
【図10】カテゴリに特徴ベクトルを対応付け、特徴ベクトルの要素ごと軸上に投影した位置とマージン量を対応付けて記録した場合のデータ構造の一例を示す図である。
【図11】各軸のマージン幅(ビット「1」)を示す図である。
【図12】実施例1における候補テーブル(大分類用辞書)の概要を示す図である。
【図13】実施例1における大分類処理の概要を示す図である。
【図14】実施例1における候補テーブル(大分類用辞書)を用いて、大分類処理をするときの動作の一例を示す図である。
【図15】実施例1における大分類処理の概要を示す図である。
【図16】実施例2におけるパターン認識装置の構成の一例を示すブロック図である。
【図17】実施例3におけるマージン量決定の動作の一例を示すフロー図である。
【図18】実施例3において、カテゴリとマージン量を対応付けて記録した場合のデータ構造の一例を示す図である。
【図19】実施例4におけるマージン量決定の動作の一例を示すフロー図である。
【図20】実施例4における軸上の区間の概要の一例を示す図である。
【図21】実施例4において、カテゴリ、区間、マージン量を対応付けて記録した場合のデータ構造の一例を示す図である。
【図22】実施例5におけるマージン量決定の動作の一例を示すフロー図である。
【図23】実施例5において、フォント、マージン量を対応付けて記録した場合のデータ構造の一例を示す図である。
【図24】実施例5において、カテゴリ、フォント、マージン量を対応付けて記録した場合のデータ構造の一例を示す図である。
【図25】実施例がコンピュータプログラムとして実現される場合の構成を示す図である。
【発明を実施するための形態】
【0023】
以下図面に基づいて、本発明の実施形態について詳細に説明する。
(実施例1)
実施例1におけるパターン認識装置は、記録部、分類部(大分類部)を備えている。記録部は候補テーブルを有している。候補テーブルは次のように生成される。学習用サンプルパターンを種別する複数のカテゴリごとに、同じカテゴリに含まれる複数の特徴ベクトルごとに求められる参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影する。そして、軸上の要素ごとに、予め設定されたマージン量とカテゴリを関連付けて生成したものである。なお、参照特徴ベクトルは、特徴ベクトルから計算される特徴ベクトルである。
【0024】
分類部(大分類部)は、与えられたパターンの参照特徴ベクトルを求め、候補テーブルを用いて、該参照特徴ベクトルの要素ごとに分類をして候補カテゴリ集合を求め、分類した候補カテゴリ集合を出力する。
【0025】
図4は、パターン認識装置における一実施例の構成示す図である。図4に示すパターン認識装置1は、特徴抽出部2、大分類部3(分類部)、詳細分類部4、テーブル作成部5、記録部7を備えている。
【0026】
特徴抽出部2は、周辺空白領域を含めたパターンを取得して、該パターンを拡大縮小により正規化画像にする。次に、特徴抽出部2は、正規化された文字パターンからパターンの特徴量を抽出し、抽出した特徴量を並べて、特徴ベクトルを生成する。例えば、文字画像をパターンとして取得した場合、特徴抽出部2は、入力された文字画像の特徴量(x1〜xn)を並べて、特徴ベクトルを生成する(式1)。式1のnは1以上の整数である。
X=(x1,x2,x3,x4,・・・xn) 式1
【0027】
図5に可変分割輪郭方向特徴抽出を用いた場合の例を示す。特徴抽出部2が、文字画像「A」を取得して、文字画像を縦48×横48の正規化画像にして、文字領域を輪郭点数が一定になるように可変分割した領域における輪郭方向量を、可変分割輪郭方向特徴として抽出する。正規化した画像の分割数を12×6あるいは6×12として、各分割領域における縦、横、右斜め上、右斜め下の4方向の輪郭方向量をカウントして特徴ベクトルを求める。図5の場合であれば、文字画像「A」を72分割して、4方向の輪郭方向量を1分割ごとに(縦,横,右斜め上,右斜め下)に求め、288個(72×4)の特徴量(xA11〜xA1288)を並べて、特徴ベクトルを式2のように生成する。
XA1=(xA11,xA12,xA13,xA14,
xA15,xA16,xA17,xA18,
・・・・ 式2
xA1285,xA1286,xA1287,xA1288)
【0028】
なお、特徴抽出には、可変分割輪郭方向特徴抽出、加重方向指数ヒストグラムを用いた抽出、可変分割輪郭方向特徴抽出などの方法を用いてもよい。
【0029】
また、特徴抽出部2は、上記算出した特徴ベクトルから参照特徴ベクトルを求める。例えば、参照特徴ベクトルは、特徴ベクトルを構成する要素から一部要素を除いたものを用いてもよいし、特徴ベクトルを後述する次元圧縮して用いてもよい。なお、必ずしも特徴ベクトルから参照特徴ベクトルを生成しなくてもよく、特徴ベクトルを参照特徴ベクトルとして用いてもよい。以後、参照特徴ベクトルを特徴ベクトルとして説明する。
【0030】
次に、特徴抽出部2は、学習用サンプルパターンの特徴ベクトルの各要素の値を予め決められた範囲内の値にする。ここで、予め決められた範囲とは、全ての学習用サンプルパターンにおける特徴ベクトルの要素を示す特徴量が取りうる最小値と最大値を含む範囲(特徴空間)であり、該範囲を量子化して数値範囲で表したものである。また、数値範囲をmビット(m:整数)により表す場合、メモリの記憶容量などにより数値範囲を決めることが好ましい。例えば、数値範囲が−127≦m≦128(256ビット)で表されている場合、学習用サンプルパターンの特徴量は、−127〜128の数値範囲内の値に量子化される。
【0031】
また、学習用サンプルパターンを用いて大分類に用いる候補テーブルなどを生成するとき、特徴抽出部2は量子化した学習用サンプルパターンの特徴ベクトルをテーブル作成部5に転送する。未知入力パターンに対してパターン認識処理をするときは、特徴抽出部2は量子化した未知入力パターンの特徴ベクトルを大分類部3に転送する。ここで、未知入力パターンとは、パターン認識処理の対象のパターンであり、スキャナなどにより読み込んだ文字画像などである。
【0032】
大分類部3は、記録部7に記録されている後述する候補テーブル(大分類用辞書)の特徴ベクトルの集合から、入力パターンから生成した特徴ベクトルに近いものを抽出する(候補カテゴリ集合を抽出)。
【0033】
詳細分類部4は、大分類部3で分類された候補カテゴリ集合の参照特徴ベクトルと、入力パターン(入力文字画像など)から生成した特徴ベクトルとの距離を計算する。その後、詳細分類部4は、計算した距離値の中で最小となる距離値を選択して、選択した距離値に対応するカテゴリを抽出してパターン認識結果とする。
【0034】
テーブル作成部5はマージン決定部6を備え、後述する大分類用の辞書を生成する。テーブル作成部5は、特徴抽出部2から量子化した学習用サンプルパターンの特徴ベクトルを取得して、該量子化した特徴ベクトルを記録部7に予め記録されているカテゴリに対応付けて記録する。例えば、カテゴリは、JIS第1水準の漢字、JIS第2水準の漢字、ひらがな、カタカナ、記号、縦書き専用文字、英字、数字、半角文字などの文字コードである。また、テーブル作成部5は、マージン決定部6により決定したマージン量を、量子化した学習用サンプルパターンの特徴ベクトルの各要素に対応付けて、記録部7に記録する。ここで、マージン量は、正常とされる学習用サンプルパターンが劣化した場合(ファクシミリやコピーなどにより劣化(掠れ、滲み、汚れなど)した文字画像)であっても分類ができるように、量子化した特徴ベクトルの各要素に幅を持たせるための値である。
【0035】
マージン決定部6は、例えば、各要素に対応する軸上の値を中心に最小値方向と最大値方向にそれぞれ設けるマージン量を決定する。また、マージン量は、すべてのカテゴリのすべての要素に対して同じマージン量を対応付けてもよいし、要素ごとに個別にマージン量を対応付けてもよい。なお、マージン量は、上記説明した全ての学習用サンプルパターンにおける特徴ベクトルの要素を示す特徴量が取りうる最小値と最大値を含む範囲を量子化した数値範囲の値で示される。また、マージン決定部6は、マージン量を量子化した特徴ベクトルの各要素に対応付けて、記録部7に記録する。
【0036】
なお、特徴抽出部2、大分類部3、詳細分類部4、テーブル作成部5は、CPU(Central Processing Unit)を用いて実現してもよい。また、プログラマブルなデバイス(FPGA(Field Programmable Gate Array)、PLD(Programmable Logic Device)など)を用いてもよい。
【0037】
記録部7は、プログラム、テーブル、データなどが記録されている。また、記録部7は、例えばROM(Read Only Member)、RAM(Random Access Memory)、ハードディスクなどのメモリである。また、記録部7は、パラメータ値、変数値などのデータを記録してもよいし、ワークエリアとして用いることもできる。実施例1では、候補テーブル(大分類用辞書)などが記録されている。
【0038】
(テーブル作成部の動作)
図6は、テーブル作成部5の動作の一例を示すフロー図である。
ステップS1においてテーブル作成部5は、1つの学習用サンプルパターンの特徴ベクトルの要素を1つ抽出し、抽出した要素に対応する軸の軸上の位置を求める。なお、学習用サンプルパターンの特徴ベクトルは、特徴抽出部2に入力された学習用サンプルパターンから求める。ここで、学習用サンプルパターンは、JIS第1水準の漢字、JIS第2水準の漢字、ひらがな、カタカナ、記号、縦書き専用文字、英字、数字、半角文字などの文字画像である。また、学習用サンプルパターンは、劣化文字画像(ファクシミリやコピーなどにより劣化(掠れ、滲み、汚れなど)した文字画像)である。本例では、パターンとして文字を用いて説明するが、文字に限定するものではない。
【0039】
図7は、学習用サンプルパターンである文字画像「A」「B」・・・・について、カテゴリとテンプレートの関係を示した図である。図7において、文字画像「A」の学習用サンプルパターンはカテゴリ1(文字「A」の文字コードに対応)に含まれ、文字画像「B」の学習用サンプルパターンはカテゴリ2(文字「B」の文字コードに対応)に含まれている。そして、カテゴリ1は、テンプレートA1〜A5に分けられている。カテゴリ2は、テンプレートB1〜B5に分けられている。
【0040】
図8は、図7に示した文字「A」「B」・・・・を、上記説明したように288次元特徴ベクトルに変換した場合の例を示す図である。特徴ベクトルに変換された各学習用サンプルパターンは、テーブル作成部5を介してカテゴリに対応付けられて記録部7に記録される。図8の例では、文字「A」に対応する「カテゴリ1」に、特徴ベクトルの名称「XA1」「XA2」・・・・が対応付けて記録されている。また、文字「B」に対応する「カテゴリ2」に、特徴ベクトルの名称「XB1」「XB2」・・・・が対応付けて記録部7に記録されている。なお、特徴抽出部2は、テーブル作成部5を介さずに直接記録部7にカテゴリと特徴ベクトルを記録してもよい。
【0041】
次に、テーブル作成部5は、記録部7に記録した学習用サンプルパターンの特徴ベクトルの要素を1つ抽出し、抽出した要素を軸上に投影して該要素の軸上の位置を求める。図9のAの例では、カテゴリ1(文字画像「A」)の特徴ベクトルの「x1」に対応する軸上に、各学習用サンプルパターンの特徴ベクトルの「x1」に対応する各要素を投影している。また、図9のAは、−127から128の数値範囲(256ビット)で示される軸上に、特徴ベクトルの各要素の特徴量を−127から128の数値範囲で量子化して軸上の座標位置を決めて、各軸の分布を表している。
【0042】
例えば、カテゴリ1の特徴ベクトルの要素「x1」に対応する特徴量「xA11」の場合であれば、テーブル作成部5は、特徴量「xA11」を量子化して座標位置「PA11」にする。そして、テーブル作成部5は、図10に示すように特徴量「xA11」と座標位置「PA11」を対応付けて記録部7に記録する。他の学習用サンプルパターンの特徴ベクトルの各要素についても同様に、テーブル作成部5は各要素と各座標位置を対応付けて記録部7に記録する。
【0043】
次に、図6のステップS2では、テーブル作成部5が、マージン決定部6により予め算出されたマージン量を取得し、ステップ3でテーブル作成部5は、軸上の座標位置を中心にマージン量を左右(最小値方向と最大値方向)に加える。そして、テーブル作成部5は、この学習用サンプルパターンのカテゴリ(またはテンプレート)の範囲を決め、該範囲を記録部7に記録する。図9のBは、図9のAに示したカテゴリ1の特徴ベクトルの要素「x1」に対応する座標位置に、予め設定したマージン量を左右に加えたことを示す図である。
【0044】
例えば、カテゴリ1の特徴ベクトルの要素「x1」に対応する座標位置「PA11」の場合であれば、テーブル作成部5は、座標位置「PA11」を中心に、マージン決定部6により予め算出したマージン量「MA11」を設定する。図10の例では、座標位置「PA11」に対応付けてマージン量「MA11」を記録部7に記録する。他のマージン量についても同様に、テーブル作成部5は各座標位置と各マージン量を対応付けて記録部7に記録する。座標位置を示す場合、例えば、数値範囲が256ビットであれば0〜255ビットの範囲にある、算出した座標位置に対応するビットに「1」を設定することが考えられる。例えば、座標位置「PA11」が0〜255ビットの50ビット目(−78)に対応するのであれが「PA11」に「50」を設定する。また、マージン量が「5ビット」であれば、「MA11」に「5」を記録する。その結果、45ビット〜55ビット目(−83〜−73)には「1」が設定される。座標位置とマージン量に対応しないビットには「0」が設定される。なお、座標位置とマージン量を記録しないで、座標位置とマージン量から求めた最小値と最大値の範囲(−83〜−73)を直接記録してもよい。また、例えば256幅のビット列を用意して、対応する範囲(45ビット〜55ビット)に「1」を設定してもよい。
【0045】
図6のステップS4では、テーブル作成部5が、対象の特徴ベクトルの全ての要素(x1〜x288)ついて処理をしたかを判定する。全ての要素について処理を完了していればステップS6に移行し、まだ未処理の要素が残っている場合にはステップ5に移行する。ステップ5では、次の要素を選択してステップS1に移行する。
【0046】
ステップS6では、テーブル作成部5が、対象のカテゴリ(1、2〜)またはテンプレート全ての特徴ベクトルについて処理をしたかを判定する。全ての特徴ベクトルについて処理を完了していればステップS8に移行し、まだ未処理の特徴ベクトルが残っている場合にはステップ7に移行する。ステップ7では、次のカテゴリまたはテンプレートの特徴ベクトルを選択してステップS1に移行する。
【0047】
ステップS8では、テーブル作成部5が、全ての学習用サンプルパターン(カテゴリ(1、2〜)またはテンプレート)について処理したかを判定する。全ての学習用サンプルパターンについて処理を終了していればステップS10に移行し、まだ未処理の学習用サンプルパターンが残っている場合にはステップ9で次の学習用サンプルパターンを選択して、ステップ1に移行する。
テーブル作成部5は、上記ステップS1〜S8のテーブル作成処理をすることにより候補テーブル(大分類用辞書)を作成する。
【0048】
図11は、図6に示したテーブル作成処理を全ての学習用サンプルパターンに対して実施した結果を示す例で、各カテゴリの各要素に対応する座標位置とマージン量に対して、ビット列で表される軸上の対応する箇所にビット「1」を設定した場合の例である。
【0049】
図12は、平面辞書の概要を示す図である。従来の平面辞書(図2参照)と比べて、実施例1の平面辞書はカテゴリごとの各特徴ベクトルの各要素に対して適切に分布を捉えているため、パターン認識処理の大分類の精度を向上させることができる。
【0050】
図13は、実施例1で説明した方法により平面辞書を作成ときの字種「A」「B」「C」の辞書に記録されている分布範囲(「A」の分布範囲Aa’、「B」の分布範囲Ba’、「C」の分布範囲Ca’)と実際の分布範囲(「A」の範囲Ar、「B」の範囲Br、「C」の範囲Cr)の関係を示している。実施例1の平面辞書を用いることで、従来の平面辞書(図3参照)を用いたときと比べて、未知文字「X」が入力されても、適切に分布を捉えているため、未知文字「X」は「C」のカテゴリに絞り込まれ、文字「A」のカテゴリに未知文字「X」が属していない。
【0051】
(実施例2)
図14は、図4に示した大分類部3の動作を示す図である。
ステップS1401では、大分類部3が全カテゴリ数分の幅をもつビット列領域temp_bitを記録部7などのメモリに確保して、全てのビットに「1」を設定する。図15の例では、カテゴリがn個存在するので、nビット幅のtemp_bitを確保して、nビット全てに「1」を設定する。temp_bitは式3で示すことができる。
temp_bit:(1,1,1・・・1) 式3
temp_bitはnビット
【0052】
ステップS1402では、大分類部3が未知入力文字の特徴ベクトルを求め、この特徴ベクトルの各要素を対応する各軸へ投影し各軸上の座標位置を求める。図15の例では、未知入力の対象の軸上の座標位置がkで表される場合に、未知入力の対象の軸の座標位置kに対応するカテゴリ1〜nの軸上の座標位置kに設定されている値を取得する。未知入力文字「X」がカテゴリに含まれるとすると、取得したカテゴリ1〜nの軸上の座標位置kは式4で示すことができる。
対象軸の座標位置kのビット列:(1,0,0・・・・) 式4
対象軸の座標位置kのビット列はnビット
【0053】
ステップS1403では、大分類部3が未知文字の対象軸の座標位置に対応するカテゴリ1〜nごとの座標位置で構成されるビット列と、temp_bitと論理積(bit AND)を行う。図15の例では、temp_bitと対象軸の座標位置kのビット列の論理積を計算する。
temp_bit AND (対象軸の座標位置kのビット列) 式5
論理積の結果であるtemp_bit=(1,0,0・・・・)
【0054】
ステップS1404では、大分類部3が未知文字の全軸に対して上記ステップS1403の処理をしたか否かを判定する。未知文字の全軸に対してステップS1403の処理を終了していればステップS1406に移行し、終了していなければステップS1405に移行する。ステップS1405では、大分類部3が次の軸を選択する。
【0055】
ステップS1406では、大分類部3が各軸のビット列計算用の領域temp_bitにおいて対応するカテゴリ番号のビットに「1」が設定されているカテゴリ(またはテンプレート)を選択する。そして、大分類部3は選択したカテゴリを大分類結果として、記録部7に記録する。上記のように実施例1で作成した候補テーブル(大分類用辞書)を用いることにより、大分類の精度を向上させることができたが、しかし、まだ大分類の処理時間を短縮させる余地がある。
【0056】
そこで、正準判別分析を用いて特徴ベクトルの次元を圧縮して次元圧縮をした特徴ベクトルを用いて大分類用の辞書を生成する方法を説明する。図16は、図4に示した特徴抽出部2に特徴圧縮部1602を設けたパターン認識装置1601の構成の一例を示す図である。特徴圧縮部1602は、元の特徴ベクトルを少数の次元からなる圧縮特徴ベルトルにする。圧縮特徴ベルトルを求める特徴圧縮処理とは、圧縮特徴空間の初期座標の算出、座標軸の直交化、圧縮特徴ベルトルの算出を行うものである。圧縮特徴空間の初期座標の算出処理では、既存の技術である正準判別分析により、カテゴリ間の分散と、カテゴリ内の分散比が最大となる座標軸を抽出する。例えば、288次元の特徴空間において、16次元の圧縮特徴空間を求める場合、文字カテゴリ間分散行列Sb=行列B、文字カテゴリ内分散行列Sw=行列Wを以下のように定義する(式6)。行列Bと行列Wは288×288の行列である。
【数1】
【0057】
次に、特徴圧縮部1602は、式7を満たすような固有行列と固有値行列を求める。
【数2】
【0058】
上記のように求めた、固有値の大きいほうから圧縮する次元数の固有ベクトルを選択する。たとえば16次元にするのであれば式8に示す固有ベクトルが初期座標になる。
【数3】
【0059】
次に、シュミットの直交化により直交座標軸に変更した16個の288次元ベクトルを求める。式9に初期座標を正規直交化して、16個の288次元ベクトルを並べて行列形式にした変換行列を示す。
【数4】
【0060】
次に、圧縮特徴の算出(特徴ベクトルの投影)は、式10に示すように、1つの文字画像から求めた288次元の特徴ベクトルの転置行列、に変換行列をかけて、16次元の特徴ベクトルを求める。
【数5】
【0061】
この16次元圧縮特徴のベクトルの各要素y1、y2・・・y16は、それぞれ288次元空間の1点で表される特徴ベクトルXを16の軸に投影した時の各軸上の値(座標位置)になる。例えば、y1は特徴ベクトルXを第1軸へ投影したときの第1軸上の値(座標位置)である。他の要素についても同じことがいえる。
【0062】
実施例2では、特徴抽出部2が実施例1で説明したように元となる特徴ベクトルを生成し、特徴圧縮部1602により元となる特徴ベクトルを次元圧縮する。そして、次元圧縮した特徴ベクトルを用いて、テーブル作成部5が大分類用の平面辞書を作成する。また、大分類をする際も、特徴圧縮部1602により未知入力の特徴ベクトルを次元圧縮してから、大分類部3が実施例2で生成した候補テーブル(大分類用辞書)を用いて大分類の処理を行うため、大分類の処理において扱うベクトル数を削減できる。そのため、大分類の処理時間を短縮させることができる。また、次元圧縮を行うことにより、扱うベクトル数が削減できるため記録部7の候補テーブル(大分類用辞書)の記憶領域を縮小することができる。
【0063】
(実施例3)
実施例3では、カテゴリまたはテンプレートごとに学習用サンプルパターン間の違い(変形程度)に基づいて軸上のマージン量を決め、学習用サンプルパターンのカテゴリまたはテンプレートごとにマージン量を決める。学習用サンプルパターン間の違いとは、元となる学習用サンプルパターンと、元となる学習用サンプルパターンを劣化させたパターン(このパターンも学習用サンプルパターンである)との違いである。
【0064】
図17は、実施例3におけるマージン決定処理の一例を示すフロー図である。
ステップS1701では、特徴抽出部2が元となる学習用サンプルパターンに対して劣化させた複数の学習用サンプルパターンを特徴ベクトルに変換し、該特徴ベクトルとカテゴリ、元となる学習用サンプルパターンの特徴ベクトルを対応づけて記録部7に記録する。
【0065】
ステップS1702では、マージン決定部6がカテゴリまたはテンプレートを選択する。ステップS1703では、マージン決定部6が元となる学習用サンプルパターンを選択する。ステップS1704では、マージン決定部6が元となる学習用サンプルパターンを劣化させたパターンの特徴ベクトルから要素を選択する。
【0066】
ステップS1705では、マージン決定部6が選択した要素に対応する軸上で、元の特徴ベクトルの要素の値と、劣化させた特徴ベクトルの要素の値との差を求める。例えば、元となる学習用サンプルパターンの特徴ベクトルの要素に対応する軸上の座標位置をPbaseとし、劣化させたパターンの軸上の座標位置をPdeteとて、|Pbase−Pdete|を計算して差を求める。次に、マージン決定部6は、PbaseとPdeteの大きさを比較して大小関係を求めて、元となる学習用サンプルパターンの特徴ベクトルの要素に対応する値を中心に、右方向(最大値方向)のマージンであるか、左方向(最小値方向)のマージンであるかを判定する。軸を0〜255の数値範囲とした場合、Pbase−Pdeteを計算して計算結果がプラスの値であれば左方向のマージンとし、該値を変数mLtempに記録する。また、マイナスの値であれば右方向のマージン量とし、該値を変数mRtempに記録する。
【0067】
ステップS1706では、マージン決定部6がカテゴリごとにステップS1705で算出したマージン量を加算する。例えば、式11に示すように、右方向のマージン量の加算であれば、変数mRに変数mRtempを加算し、左方向のマージン量の加算であれば、変数mLに変数mLtempを加算する。
mR ← mR+mRtemp
mL ← mL+mLtemp 式11
←:代入を示す
【0068】
その際、変数mRに、変数mRtempが加算されるたびに式12に示すように変数mRcountに1を加算し、加算した回数を記録する。また、変数mLに、変数mLtempが加算されるたびに式12に示すように変数mLcountに1を加算し、加算した回数を記録する。
mRcount←mRcount+1
mLcount←mLcount+1 式12
【0069】
ステップS1707でマージン決定部6は、対象を劣化させた学習用サンプルパターンの特徴ベクトルの要素全てについて処理をしたか否かを判定する。全ての要素について処理を実行していればステップS1709に移行し、未処理の要素がある場合はステップS1708に移行する。ステップS1708では、マージン決定部6が次の要素を選択し、ステップS1705に移行する。
【0070】
ステップS1709では、マージン決定部6が、劣化させた学習用サンプルパターンの特徴ベクトル全てについて処理をしたか否かを判定する。全ての特徴ベクトルについて処理を実行していればステップS1711に移行し、未処理の特徴ベクトルがある場合はステップS1710に移行する。ステップS1710では、マージン決定部6が次の劣化させた学習用サンプルパターンの特徴ベクトルを選択し、ステップS1704に移行する。
【0071】
ステップS1711では、マージン決定部6がカテゴリ全てについて処理をしたか否かを判定する。全てのカテゴリについて処理を実行していればステップS1712に移行し、未処理のカテゴリがある場合はステップS1702に移行する。なお、カテゴリが変わるたびにカウント値mRcount、mLcountの値に初期値(例えば「0」)を設定する。
【0072】
ステップS1712でマージン決定部6は、式13に示すように、カテゴリごとの右方向および左方向のそれぞれのマージン量の平均値mRave、mLaveを求める。
mRave ← mR/mRcount
mLave ← mL/mLcount 式13
【0073】
なお、平均値mRave、mLaveに固定倍数を積算しマージン量を調整してもよい。そして、マージン決定部6は、図18に示したようにカテゴリとマージン量の平均値mRave、mLaveを対応づけて、それぞれ記録部7に記録する。図18は、実施例3に示したマージン決定方法により算出したマージン量(mRave、mLave)を、カテゴリごとに対応付けて記録するときのデータ構造の一例を示す図である。図18の「カテゴリ」にはカテゴリを識別するための識別番号(1、2〜n)が記録され、「mRave」「mLave」には上記処理により決定したカテゴリごとのマージン量(MAL1〜MALn/MAR1〜MARn)が記録されている。
【0074】
上記のようにマージン決定処理は、カテゴリに含まれる複数の元となるパターンと、元となるパターンを劣化させたパターンの各特徴ベクトルの同じ位置の要素を、予め設定された範囲の同じ位置の要素に対応する軸に投影する。次に、元となるパターンの軸上の座標位置と、劣化させたパターンごとの軸上の座標位置との差を算出する。そして、元となるパターンの軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出し、カテゴリごとにマージン量を対応付けて記録部7に記録する。
【0075】
実施例3によれば、元となる学習用サンプルパターンと劣化させた複数の学習用サンプルパターンに基づいてマージン量を決めているため、従来の大分類用の辞書を用いて大分類をするより、精度を向上させることができる。すなわち、実施例3の平面辞書はカテゴリごとの各特徴ベクトルの各要素に対して適切に分布を捉えているため、大分類の精度を向上させることができる。
なお、実施例2で説明した次元圧縮したベクトルを用いて、実施例3で説明した方法によりマージン量を決定してもよい。
【0076】
(実施例4)
実施例4は、軸を予め決められたサイズで区分けして、カテゴリごとの全ての学習用サンプルパターンの特徴ベクトルの各要素を軸へ投影し、区間と軸上の座標位置に基づいてマージン量を求める。
【0077】
図19は、実施例4におけるマージン決定処理の一例を示すフロー図である。また、実施例4では図20に示すように、マージン決定部6が、軸上に予め決められたサイズで区分けした区間を設定する。例えば、軸が0〜255の数値範囲で示されているときには、256を等間隔で区分けして各区間に識別番号を割り付ける。図20場合であれば区間を10に区切り10等分している。なお、区間は必ずしも等分する必要はない。
【0078】
ステップS1901では、特徴抽出部2が元となる学習用サンプルパターンに対して劣化させた複数の学習用サンプルパターンを特徴ベクトルに変換し、該特徴ベクトルとカテゴリ、区間、元となる学習用サンプルパターンの特徴ベクトルを対応づけて記録部7に記録する。ステップS1902では、マージン決定部6がカテゴリまたはテンプレートを選択する。ステップS1903では、マージン決定部6が元となる学習用サンプルパターンを選択する。ステップS1904では、マージン決定部6が元となる学習用サンプルパターンを劣化させたパターンの特徴ベクトルから要素を選択する。ステップS1905では、マージン決定部6がステップS1904で選択した対象の要素に対応する値がある区間を選択する。
【0079】
ステップS1906では、実施例1で説明したステップS1705と同様に、マージン決定部6が選択した要素に対応する軸上で、元の特徴ベクトルの要素の値と、劣化させた特徴ベクトルの要素の値との差をマージンとして求める。例えば、元となる学習用サンプルパターンの特徴ベクトルの要素に対応する軸上の座標位置をPbaseとし、劣化させたパターンの軸上の座標位置をPdeteとて、|Pbase−Pdete|を計算して差を求める。次に、マージン決定部6は、PbaseとPdeteの大きさを比較して大小関係を求めて、元となる学習用サンプルパターンの特徴ベクトルの要素に対応する値を中心に、右方向(最大値方向)のマージンであるか、左方向(最小値方向)のマージンであるかを判定する。軸を0〜255の数値範囲とした場合、例えば区間1に対しては、Pbase−Pdeteを計算して計算結果がプラスの値であれば左方向のマージンとし、該値を変数mLint1_tempに記録する。また、マイナスの値であれば右方向のマージン量とし、該値を変数mRint1_tempに記録する。
【0080】
ステップS1907では、マージン決定部6が区間ごとにステップS1906で算出したマージン量を加算する。例えば、区間1の場合であれば式14に示すように、右方向のマージン量の加算であれば、変数mRint1に変数mRint1_tempを加算し、左方向のマージン量の加算であれば、変数mLint1に変数mLint1_tempを加算する。
mRint1 ← mRint1+mRint1_temp
mLint1 ← mLint1+mLint1_temp 式14
【0081】
その際、変数mRint1に、変数mRint1_tempが加算されるたびに式15に示すようにmRint1_countに1を加算し、加算した回数を記録する。また、変数mLint1に、変数mLint1_tempが加算されるたびに式15に示すようにmLint1_countに1を加算し、加算した回数を記録する。
mRint1_count←mRint1_count+1
mLint1_count←mLint1_count+1 式15
【0082】
ステップS1908でマージン決定部6は、対象を劣化させた学習用サンプルパターンの特徴ベクトルの要素全てについて処理をしたか否かを判定する。全ての要素について処理を実行していればステップS1910に移行し、未処理の要素がある場合はステップS1909に移行する。ステップS1909では、マージン決定部6が次の要素を選択し、ステップS1905に移行する。
【0083】
ステップS1910では、マージン決定部6が、劣化させた学習用サンプルパターンの特徴ベクトル全てについて処理をしたか否かを判定する。全ての特徴ベクトルについて処理を実行していればステップS1912に移行し、未処理の特徴ベクトルがある場合はステップS1911に移行する。ステップS1911では、マージン決定部6が次の劣化させた学習用サンプルパターンの特徴ベクトルを選択し、ステップS1904に移行する。
【0084】
ステップS1912では、マージン決定部6がカテゴリ全てについて処理をしたか否かを判定する。全てのカテゴリについて処理を実行していればステップS1913に移行し、未処理のカテゴリがある場合はステップS1902に移行する。なお、カテゴリが変わるたびにカウント値に初期値(例えば「0」)を設定する。区間1の場合であれば、mRint1_count、mLint1_countの値に初期値を設定する。
【0085】
ステップS1913でマージン決定部6は、各カテゴリの各区間における右方向および左方向のそれぞれのマージン量の平均値を求める。区間1の場合であれば、式16に示すように、各カテゴリの各区間における右方向および左方向のそれぞれのマージン量の平均値mRint1_ave、mLint1_aveを求める。
mRint1_ave ← mRint1_/mRint1_count
mLint1_ave ← mLint1_/mLint1_count 式16
【0086】
なお、平均値mRint1_ave、mLint1_aveに固定倍数を積算しマージン量を調整してもよい。また、マージン決定部6は、図21に示したようにカテゴリとマージン量の平均値を対応づけて、それぞれ記録部7に記録する。図21は、実施例4に示したマージン決定方法により算出したマージン量を、各カテゴリの各区間に対応付けて記録するときのデータ構造の一例を示す図である。図21の「カテゴリ」には、カテゴリを識別するための識別番号(1、2〜n)が記録され、「区間1」〜「区間w」(wは整数)には区間を識別するための識別番号(1、2〜w)が記録されている。また、図21の「mRint1_ave」〜「mRintw_ave」、「mLint1_ave」〜「mLintw_ave」には、上記処理により決定した各カテゴリの各区間のマージン量(MAL11〜MALwn/MAR11〜MARwn)が記録されている。
【0087】
上記のように実施例4では、マージン決定処理により、軸を予め設定された範囲に区分けした区間を設定する。次に、カテゴリに含まれる複数の元となるパターンと、元となるパターンを劣化させたパターンの各特徴ベクトルの同じ位置の要素を、予め設定された範囲の同じ位置の要素に対応する軸に投影する。次に、元となるパターンの軸上の座標位置と、劣化させたパターンごとの軸上の座標位置との差を算出する。そして、元となるパターンの軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出し、元となるパターンの軸上の座標位置が含まれる区間ごとにマージン量を対応付けて記録部7に記録する。
【0088】
従来手法では軸上の1点に多数のカテゴリが所属することになり、認識時の絞り込み能力が低く、高精度を保ったまま少数カテゴリに絞り込めなかった。しかし、実施例4によれば、マージン量を元となる学習用サンプルパターンと劣化させた複数の学習用サンプルパターンに基づいて、区間ごとにマージン量を決めているため、従来の大分類用の辞書を用いて大分類の精度を向上させることができる。すなわち、実施例4の平面辞書は各カテゴリの各区間の各特徴ベクトルの各要素に対して適切に分布を捉えているため、大分類の精度を向上させることができる。
なお、実施例2で説明した次元圧縮したベクトルを用いて、実施例4で説明した方法によりマージン量を決定することもできる。
【0089】
(実施例5)
実施例5では、各カテゴリまたは各テンプレートの集合に含まれる文字パターンのフォントタイプに注目して、同一カテゴリにおけるフォントタイプごとの軸上の分布に基づいてマージン量を求める。
【0090】
図22は、実施例5におけるマージン決定処理の一例を示すフロー図である。
ステップS2201で特徴抽出部2が、同一カテゴリにおける複数の異なるフォントタイプの学習用サンプルパターンの文字パターンを特徴ベクトルに変換し、該特徴ベクトルとフォント、カテゴリを対応づけて記録部7に記録する。
【0091】
ステップS2202では、マージン決定部6が対象のカテゴリを選択する。ステップS2203では、マージン決定部6がフォントを選択する。
ステップS2204では、マージン決定部6がステップS2203で選択したフォントの特徴ベクトルから要素を選択し、対応する軸上に特徴ベクトルの要素を投影する。例えば、同一カテゴリ1に異なるフォントタイプの学習用サンプルパターン(文字パターン:F11〜F1n)が複数ある場合に、文字パターンF11〜F1nをそれぞれ288次元の特徴ベクトルに変換したときについて説明する。文字パターンF11〜F1nの各特徴ベクトルを構成する1〜288番目の要素に対して、それぞれ0〜255の数値範囲で示される軸を割り振る。1番目の要素に対応する軸には、文字パターンF11〜F1nの各特徴ベクトルの1番目に対応する各要素を投影する。他の軸についても、文字パターンF11〜F1nの各特徴ベクトルの対象要素を対象になる軸に投影する。すなわち、文字パターンF11〜F1nの特徴ベクトルの全ての要素が、288個の軸に全て投影される。
【0092】
ステップS2205でマージン決定部6は、対象のフォントに対する特徴ベクトルの要素全てについて処理をしたか否かを判定する。全ての要素について処理を実行していればステップS2207に移行し、未処理の要素がある場合はステップS2206に移行する。ステップS2206では、マージン決定部6が次の要素を選択し、ステップS2204に移行する。
【0093】
ステップS2207では、マージン決定部6がステップS2203で選択したフォントの特徴ベクトル全てについて処理をしたか否かを判定する。全ての特徴ベクトルについて処理を実行していればステップS2209に移行し、未処理の特徴ベクトルがある場合はステップS2208に移行する。ステップS2208では、マージン決定部6が次のフォントの特徴ベクトルを選択し、ステップS2204に移行する。
【0094】
ステップS2209では、マージン決定部6が同一カテゴリの各軸上に投影された複数の要素の平均値を求める。例えば、上記説明したカテゴリ1に含まれる文字パターンF11〜F1nの特徴ベクトルの全ての要素が投影された288個の軸の場合であれば、288個の軸ごとに、軸上の要素の平均値を計算する。次に、この平均値の値とフォントタイプごとの特徴ベクトルの軸上の要素の値との差を求める。例えば、平均値に対応する軸上の座標位置をPfbaseとし、フォントごとの文字パターンの軸上の座標位置をPfdeteとて、|Pfbase−Pfdete|を計算して差を求める。次に、マージン決定部6は、PfbaseとPfdeteの大きさを比較して大小関係を求めて、平均値を中心に、右方向(最大値方向)のマージンであるか、左方向(最小値方向)のマージンであるかを判定する。軸を0〜255の数値範囲とした場合、Pfbase−Pfdeteを計算して計算結果がプラスの値であれば左方向のマージンとし、該値を変数mLf_tempに記録する。また、マイナスの値であれば右方向のマージン量とし、該値を変数mRf_tempに記録する。
【0095】
ステップS2210では、マージン決定部6がフォントごとの差の平均値を求めて、カテゴリごとのフォントのマージン値とする。まず、フォントごとにステップS2209で算出したマージン量を加算する。例えば、式17に示すように、右方向のマージン量の加算であれば、変数mRfに変数mRf_tempを加算し、左方向のマージン量の加算であれば、変数mLfに変数mLf_tempを加算する。
mRf ← mRf+mRf_temp
mLf ← mLf+mLf_temp 式17
【0096】
その際、変数mRfに、変数mRf_tempが加算されるたびに式18に示すようにmRf_countに1を加算し、加算した回数を記録する。また、変数mLfに、変数mLf_tempが加算されるたびに式18に示すようにmLf_countに1を加算し、加算した回数を記録する。
mRf_count←mRf_count+1
mLf_count←mLf_count+1 式18
【0097】
次に、マージン決定部6は、式19に示すように、フォントごとの右方向および左方向のそれぞれのマージン量の平均値mRf_ave、mLf_aveを求める。
mRf_ave ← mRf/mRf_count
mLf_ave ← mLf/mLf_count 式19
【0098】
なお、平均値mRf_ave、mLf_aveに固定倍数を積算しマージン量を調整してもよい。なお、フォントが変わるたびにカウント値mRcount、mLcountの値に初期値(例えば「0」)を設定する。
【0099】
ステップS2211では、マージン決定部6がカテゴリ全てについて処理をしたか否かを判定する。全てのカテゴリについて処理を実行していればステップS2212に移行し、未処理のカテゴリがある場合はステップS2202に移行する。
【0100】
そして、マージン決定部6は、図23に示したようにフォントごとのマージン量の平均値mRf_ave、mLf_aveを各フォントに対応づけて、それぞれ記録部7に記録する。図23のフォントF1の場合、図23のフォントF1に対応する平均値MARF1、MALF1がそれぞれ設定されている。他のフォントについてもそれぞれ平均値が設定されている。
【0101】
上記のように実施例5では、同一カテゴリに含まれる異なるフォントのパターンの各特徴ベクトルの同じ位置の要素を、予め設定された範囲の同じ位置の要素に対応する軸に投影し、異なるフォントのパターンの軸上の座標位置の平均値を算出する。次に、フォントごとのパターンの軸上の座標位置と平均値の座標位置との差を算出して、該差を平均値の座標位置を中心にして最小値方向の差と最大値方向の差に分ける。そして、カテゴリごとに同一フォントの最小値方向の差の平均値と最大値方向の差をマージン量として算出して、カテゴリにマージン量を対応付けて記録部に記録する。
【0102】
従来手法では軸上の1点に多数のカテゴリが所属することになり、認識時の絞り込み能力が低く、高精度を保ったまま少数カテゴリに絞り込めなかった。しかし、実施例5によれば、マージン量をカテゴリごとのフォントに基づいてマージン量を決めているため、大分類用の辞書を用いて大分類の精度を向上させることができる。すなわち、実施例5の平面辞書は、従来に比べてカテゴリごとの各特徴ベクトルの各要素に対して適切に分布を捉えているため、大分類の精度を向上させることができる。
【0103】
なお、実施例2で説明した次元圧縮したベクトルを用いて、実施例5で説明した方法によりマージン量を決定することもできる。
【0104】
(変形例1)
なお、実施例3におけるカテゴリの代わりに、フォントの種類により区分けしたテンプレートを用いることにより、図24に示すようなカテゴリごとにフォントとマージ量を対応付けて記録することができる。図24の「カテゴリ」にはカテゴリを識別するための識別番号(1、2〜n)が記録され、「フォント」にはフォントを識別するための識別番号(F1、F2〜Fn)が記録され、ている。また、「mRf_ave2」「mLf_ave2」には、上記実施例3の処理により決定した各カテゴリにおけるフォントごとのマージン量(MALF11、MALF12〜/MARF11、MARF12〜)が記録されている。
【0105】
(変形例2)
変形例2は、上記実施例で説明したパターン認識処理を用いてパターン認識を行った結果、誤認識文字があることを発見した場合、誤認識の原因が大分類にあれば、利用者が大分類用の平面辞書を調整して、調整結果を大分類用の平面辞書に記録するものである。
【0106】
図25は、上記実施形態の装置を実現できるコンピュータのハードウェア構成の一例を示す図である。
コンピュータのハードウェア2500は、CPU2501、記録部2502(ROM、RAM、ハードディスクドライブなど)、記録媒体読取装置2503、入出力インタフェース2504(入出力I/F)、通信インタフェース2505(通信I/F)などを備えている。また、上記各構成部はバス2506によってそれぞれ接続されている。
【0107】
CPU2501は、記録部2502に格納されている上記説明したパターン認識処理(図6、図13、図17、図19、図22などに示した処理)を実行する。
記録部2502には、CPU2501が実行するプログラムやデータが記録されている。また、ワークエリアなどとして使用される。また、記録部2502は上記説明した記録部7の機能を有する。
【0108】
記録媒体読取装置2503は、CPU2501の制御にしたがって記録媒体2503aに対するデータのリード/ライトを制御する。そして、記録媒体2503aに記録媒体読取装置2503の制御で書き込まれたデータを記憶させたり、記録媒体2503aに記憶されたデータを読み取らせたりする。また、着脱可能な記録媒体2503aは、コンピュータで読み取り可能な記録媒体として、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)などがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
【0109】
入出力インタフェース2504には、入出力装置2504a(例えば、ディスプレイなど)が接続され、ユーザが入力した情報を受信し、バス2506を介してCPU2501に送信する。また、CPU2501からの命令に従ってディスプレイの画面上に操作情報などを表示する。
【0110】
通信インタフェース2505は、必要に応じ、他のコンピュータとの間のLAN接続やインターネット接続や無線接続のためのインタフェースである。また、他の装置に接続され、外部装置からのデータの入出力を制御する。
【0111】
図25に示す入出力装置2504aであるモニタの画面上に表示されたパターン認識結果に誤認識文字があることを利用者が発見した場合、利用者が誤認識文字を正解文字に変更するために、画面上の誤認識文字をマウスなどにより選択する。そして、利用者が誤認識文字の代わりに正解文字を入力する。その際、CPU2501が、誤認識した文字に関する大分類用の軸に関するデータと、正解文字に関する大分類用の軸に関するデータと記録部2502から取得して比較し、どの軸でエラーしたかを判定する。そして、CPU2501が判定結果として、エラーした軸と分布をモニタの画面上に表示させる(図12、15のような表示)。利用者は、画面上に表示されたエラーした軸の分布領域(マージン量)をマウスなどで操作して調整をする。CPU2501は、この調整した結果を記録部2502の大分類用の平面辞書に反映させることができる。そのため、従来のように誤認識した文字を正解文字に書き換えるだけでなく、誤認識した場合でも、利用者が大分類用の平面辞書の対象の軸の分布を、視覚的に簡単に調整をすることができる。
(本実施例がコンピュータプログラムとして実現される場合の構成)
図25のようなハードウェア構成を有するコンピュータを用いることによって、上記説明した各種処理機能(実施例で説明した処理(フローチャートなど))が実現される。その場合システムが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体2503aに記録しておくことができる。
【0112】
また、プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0113】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0114】
また、本発明は、上記実施の形態に限定されるものでなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。なお、各実施例は処理に矛盾の無い限りにおいて、互いに組み合わせても構わない。
【0115】
以上実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
学習用サンプルパターンを種別する複数のカテゴリごとに、同じカテゴリに含まれる複数の特徴ベクトルごとに求められる参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、軸上の要素ごとに、予め設定されたマージン量とカテゴリを関連付けて生成した候補テーブルを記録する記録部と、
与えられたパターンの参照特徴ベクトルを求め、前記候補テーブルを用いて、該参照特徴ベクトルの要素ごとに分類をして候補カテゴリ集合を求め、分類した候補カテゴリ集合を出力する分類部と、
を備えることを特徴とするパターン認識装置。
(付記2)
前記パターン認識装置は、前記学習用サンプルパターンまたは前記与えられたパターンを同次元の特徴ベクトルにする特徴抽出部と、
前記特徴ベクトルを次元圧縮して前記参照特徴ベクトルにする特徴圧縮部と、
を備えることを特徴とする付記1に記載のパターン認識装置。
(付記3)
前記マージン量は、前記カテゴリに含まれる複数の元となる学習用サンプルパターンと、前記元となる学習用サンプルパターンを劣化させたパターンの各参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、前記元となる学習用サンプルパターンの前記軸上の座標位置と、前記劣化させたパターンごとの前記軸上の座標位置との差を算出して、前記元となる学習用サンプルパターンの前記軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値であることを特徴とする付記1または2に記載のパターン認識装置。
(付記4)
前記マージン量は、前記軸を予め設定された範囲に区分けした区間を設定し、前記カテゴリに含まれる複数の元となる学習用サンプルパターンと、前記元となる学習用サンプルパターンを劣化させたパターンの各参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、前記元となる学習用サンプルパターンの前記軸上の座標位置と、前記劣化させたパターンごとの前記軸上の座標位置との差を算出して、前記元となる学習用サンプルパターンの前記軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出し、前記元となる学習用サンプルパターンの前記軸上の座標位置が含まれる前記区間ごとに前記マージン量を対応付けることを特徴とする付記1または2に記載のパターン認識装置。
(付記5)
前記マージン量は、同一カテゴリに含まれる異なるフォントの学習用サンプルパターンの各特徴ベクトルの同じ位置の要素を、予め設定された範囲の前記同じ位置の要素に対応する軸に投影し、前記異なるフォントの学習用サンプルパターンの前記軸上の座標位置の平均値を算出し、前記フォントごとの学習用サンプルパターンの前記軸上の座標位置と前記平均値の座標位置との差を算出して、該差を前記平均値の座標位置を中心にして最小値方向の差と最大値方向の差に分け、前記カテゴリごとに同一フォントの前記最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出して、前記フォントごとに前記マージン量を対応付けることを特徴とする付記1または2に記載のパターン認識装置。
(付記6)
コンピュータに、
与えられたパターンの参照特徴ベクトルを求める処理と、
学習用サンプルパターンを種別する複数のカテゴリごとに、同じカテゴリに含まれる複数の特徴ベクトルごとに求められる参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、軸上の要素ごとに、予め設定されたマージン量とカテゴリを関連付けて生成した候補テーブルを用いて、該参照特徴ベクトルの要素ごとに分類をして候補カテゴリ集合を求める処理と、
分類した候補カテゴリ集合を出力する処理と、
を実行させることを特徴とするパターン認識プログラム。
(付記7)
コンピュータが、
与えられたパターンの参照特徴ベクトルを求め、
学習用サンプルパターンを種別する複数のカテゴリごとに、同じカテゴリに含まれる複数の特徴ベクトルごとに求められる参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、軸上の要素ごとに、予め設定されたマージン量とカテゴリを関連付けて生成した候補テーブルを用いて、該参照特徴ベクトルの要素ごとに分類をして候補カテゴリ集合を求め、
分類した候補カテゴリ集合を出力する、
ことを実行するパターン認識方法。
(付記8)
前記学習用サンプルパターンまたは前記与えられたパターンを同次元の特徴ベクトルにする処理と、
前記特徴ベクトルを次元圧縮して前記参照特徴ベクトルにする処理と、
をコンピュータに実行させることを特徴とする付記6に記載のパターン認識プログラム。
(付記9)
前記カテゴリに含まれる複数の元となる学習用サンプルパターンと、前記元となる学習用サンプルパターンを劣化させたパターンの各参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、前記元となる学習用サンプルパターンの前記軸上の座標位置と、前記劣化させたパターンごとの前記軸上の座標位置との差を算出して、前記元となる学習用サンプルパターンの前記軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出する処理を、コンピュータに実行させることを特徴とする付記6または8に記載のパターン認識プログラム。
(付記10)
前記軸を予め設定された範囲に区分けした区間を設定し、前記カテゴリに含まれる複数の元となる学習用サンプルパターンと、前記元となる学習用サンプルパターンを劣化させたパターンの各参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、前記元となる学習用サンプルパターンの前記軸上の座標位置と、前記劣化させたパターンごとの前記軸上の座標位置との差を算出して、前記元となる学習用サンプルパターンの前記軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出し、前記元となる学習用サンプルパターンの前記軸上の座標位置が含まれる前記区間ごとに前記マージン量を対応付けて前記記録部に記録する処理を、コンピュータに実行させることを特徴とする付記6または8に記載のパターン認識プログラム。
(付記11)
同一カテゴリに含まれる異なるフォントの学習用サンプルパターンの各特徴ベクトルの同じ位置の要素を、予め設定された範囲の前記同じ位置の要素に対応する軸に投影し、前記異なるフォントの学習用サンプルパターンの前記軸上の座標位置の平均値を算出し、前記フォントごとの学習用サンプルパターンの前記軸上の座標位置と前記平均値の座標位置との差を算出して、該差を前記平均値の座標位置を中心にして最小値方向の差と最大値方向の差に分け、前記カテゴリごとに同一フォントの前記最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出して、前記フォントごとに前記マージン量を対応付けて記録部に記録する処理を、コンピュータに実行させることを特徴とする付記6または8に記載のパターン認識プログラム。
(付記12)
前記学習用サンプルパターンまたは前記与えられたパターンを同次元の特徴ベクトルにし、
前記特徴ベクトルを次元圧縮して前記参照特徴ベクトルにする、
ことをコンピュータが実行する付記7に記載のパターン認識方法。
(付記13)
前記カテゴリに含まれる複数の元となる学習用サンプルパターンと、前記元となる学習用サンプルパターンを劣化させたパターンの各参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、前記元となる学習用サンプルパターンの前記軸上の座標位置と、前記劣化させたパターンごとの前記軸上の座標位置との差を算出して、前記元となる学習用サンプルパターンの前記軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出する、ことをコンピュータが実行する付記7または12に記載のパターン認識方法。
(付記14)
前記軸を予め設定された範囲に区分けした区間を設定し、前記カテゴリに含まれる複数の元となる学習用サンプルパターンと、前記元となる学習用サンプルパターンを劣化させたパターンの各参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、前記元となる学習用サンプルパターンの前記軸上の座標位置と、前記劣化させたパターンごとの前記軸上の座標位置との差を算出して、前記元となる学習用サンプルパターンの前記軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出し、前記元となる学習用サンプルパターンの前記軸上の座標位置が含まれる前記区間ごとに前記マージン量を対応付けて前記記録部に記録する、ことをコンピュータが実行する付記7または12に記載のパターン認識方法。
(付記15)
同一カテゴリに含まれる異なるフォントの学習用サンプルパターンの各特徴ベクトルの同じ位置の要素を、予め設定された範囲の前記同じ位置の要素に対応する軸に投影し、前記異なるフォントの学習用サンプルパターンの前記軸上の座標位置の平均値を算出し、前記フォントごとの学習用サンプルパターンの前記軸上の座標位置と前記平均値の座標位置との差を算出して、該差を前記平均値の座標位置を中心にして最小値方向の差と最大値方向の差に分け、前記カテゴリごとに同一フォントの前記最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出して、前記フォントごとに前記マージン量を対応付けて記録部に記録する、ことをコンピュータが実行する付記7または12に記載のパターン認識方法。
【符号の説明】
【0116】
1、1601 パターン認識装置
2 特徴抽出部
3 大分類部
4 詳細分類部
5 テーブル作成部
6 マージン決定部
7 記録部
1602 特徴圧縮部
2500 ハードウェア
2501 CPU
2502 記録部
2503 記録媒体読取装置
2503a 記録媒体
2504 入出力インタフェース
2504a 入出力装置
2505 通信インタフェース
2506 バス
【特許請求の範囲】
【請求項1】
学習用サンプルパターンを種別する複数のカテゴリごとに、同じカテゴリに含まれる複数の特徴ベクトルごとに求められる参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、軸上の要素ごとに、予め設定されたマージン量とカテゴリを関連付けて生成した候補テーブルを記録する記録部と、
与えられたパターンの参照特徴ベクトルを求め、前記候補テーブルを用いて、該参照特徴ベクトルの要素ごとに分類をして候補カテゴリ集合を求め、分類した候補カテゴリ集合を出力する分類部と、
を備えることを特徴とするパターン認識装置。
【請求項2】
前記パターン認識装置は、前記学習用サンプルパターンまたは前記与えられたパターンを同次元の特徴ベクトルにする特徴抽出部と、
前記特徴ベクトルを次元圧縮して前記参照特徴ベクトルにする特徴圧縮部と、
を備えることを特徴とする請求項1に記載のパターン認識装置。
【請求項3】
前記マージン量は、前記カテゴリに含まれる複数の元となる学習用サンプルパターンと、前記元となる学習用サンプルパターンを劣化させたパターンの各参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、前記元となる学習用サンプルパターンの前記軸上の座標位置と、前記劣化させたパターンごとの前記軸上の座標位置との差を算出して、前記元となる学習用サンプルパターンの前記軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値であることを特徴とする請求項1または2に記載のパターン認識装置。
【請求項4】
前記マージン量は、前記軸を予め設定された範囲に区分けした区間を設定し、前記カテゴリに含まれる複数の元となる学習用サンプルパターンと、前記元となる学習用サンプルパターンを劣化させたパターンの各参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、前記元となる学習用サンプルパターンの前記軸上の座標位置と、前記劣化させたパターンごとの前記軸上の座標位置との差を算出して、前記元となる学習用サンプルパターンの前記軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出し、前記元となる学習用サンプルパターンの前記軸上の座標位置が含まれる前記区間ごとに前記マージン量を対応付けることを特徴とする請求項1または2に記載のパターン認識装置。
【請求項5】
前記マージン量は、同一カテゴリに含まれる異なるフォントの学習用サンプルパターンの各特徴ベクトルの同じ位置の要素を、予め設定された範囲の前記同じ位置の要素に対応する軸に投影し、前記異なるフォントの学習用サンプルパターンの前記軸上の座標位置の平均値を算出し、前記フォントごとの学習用サンプルパターンの前記軸上の座標位置と前記平均値の座標位置との差を算出して、該差を前記平均値の座標位置を中心にして最小値方向の差と最大値方向の差に分け、前記カテゴリごとに同一フォントの前記最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出して、前記フォントごとに前記マージン量を対応付けることを特徴とする請求項1または2に記載のパターン認識装置。
【請求項6】
コンピュータに、
与えられたパターンの参照特徴ベクトルを求める処理と、
学習用サンプルパターンを種別する複数のカテゴリごとに、同じカテゴリに含まれる複数の特徴ベクトルごとに求められる参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、軸上の要素ごとに、予め設定されたマージン量とカテゴリを関連付けて生成した候補テーブルを用いて、該参照特徴ベクトルの要素ごとに分類をして候補カテゴリ集合を求める処理と、
分類した候補カテゴリ集合を出力する処理と、
を実行させることを特徴とするパターン認識プログラム。
【請求項7】
コンピュータが、
与えられたパターンの参照特徴ベクトルを求め、
学習用サンプルパターンを種別する複数のカテゴリごとに、同じカテゴリに含まれる複数の特徴ベクトルごとに求められる参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、軸上の要素ごとに、予め設定されたマージン量とカテゴリを関連付けて生成した候補テーブルを用いて、該参照特徴ベクトルの要素ごとに分類をして候補カテゴリ集合を求め、
分類した候補カテゴリ集合を出力する、
ことを実行するパターン認識方法。
【請求項1】
学習用サンプルパターンを種別する複数のカテゴリごとに、同じカテゴリに含まれる複数の特徴ベクトルごとに求められる参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、軸上の要素ごとに、予め設定されたマージン量とカテゴリを関連付けて生成した候補テーブルを記録する記録部と、
与えられたパターンの参照特徴ベクトルを求め、前記候補テーブルを用いて、該参照特徴ベクトルの要素ごとに分類をして候補カテゴリ集合を求め、分類した候補カテゴリ集合を出力する分類部と、
を備えることを特徴とするパターン認識装置。
【請求項2】
前記パターン認識装置は、前記学習用サンプルパターンまたは前記与えられたパターンを同次元の特徴ベクトルにする特徴抽出部と、
前記特徴ベクトルを次元圧縮して前記参照特徴ベクトルにする特徴圧縮部と、
を備えることを特徴とする請求項1に記載のパターン認識装置。
【請求項3】
前記マージン量は、前記カテゴリに含まれる複数の元となる学習用サンプルパターンと、前記元となる学習用サンプルパターンを劣化させたパターンの各参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、前記元となる学習用サンプルパターンの前記軸上の座標位置と、前記劣化させたパターンごとの前記軸上の座標位置との差を算出して、前記元となる学習用サンプルパターンの前記軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値であることを特徴とする請求項1または2に記載のパターン認識装置。
【請求項4】
前記マージン量は、前記軸を予め設定された範囲に区分けした区間を設定し、前記カテゴリに含まれる複数の元となる学習用サンプルパターンと、前記元となる学習用サンプルパターンを劣化させたパターンの各参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、前記元となる学習用サンプルパターンの前記軸上の座標位置と、前記劣化させたパターンごとの前記軸上の座標位置との差を算出して、前記元となる学習用サンプルパターンの前記軸上の座標位置を中心にして最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出し、前記元となる学習用サンプルパターンの前記軸上の座標位置が含まれる前記区間ごとに前記マージン量を対応付けることを特徴とする請求項1または2に記載のパターン認識装置。
【請求項5】
前記マージン量は、同一カテゴリに含まれる異なるフォントの学習用サンプルパターンの各特徴ベクトルの同じ位置の要素を、予め設定された範囲の前記同じ位置の要素に対応する軸に投影し、前記異なるフォントの学習用サンプルパターンの前記軸上の座標位置の平均値を算出し、前記フォントごとの学習用サンプルパターンの前記軸上の座標位置と前記平均値の座標位置との差を算出して、該差を前記平均値の座標位置を中心にして最小値方向の差と最大値方向の差に分け、前記カテゴリごとに同一フォントの前記最小値方向の差の平均値と最大値方向の差の平均値をマージン量として算出して、前記フォントごとに前記マージン量を対応付けることを特徴とする請求項1または2に記載のパターン認識装置。
【請求項6】
コンピュータに、
与えられたパターンの参照特徴ベクトルを求める処理と、
学習用サンプルパターンを種別する複数のカテゴリごとに、同じカテゴリに含まれる複数の特徴ベクトルごとに求められる参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、軸上の要素ごとに、予め設定されたマージン量とカテゴリを関連付けて生成した候補テーブルを用いて、該参照特徴ベクトルの要素ごとに分類をして候補カテゴリ集合を求める処理と、
分類した候補カテゴリ集合を出力する処理と、
を実行させることを特徴とするパターン認識プログラム。
【請求項7】
コンピュータが、
与えられたパターンの参照特徴ベクトルを求め、
学習用サンプルパターンを種別する複数のカテゴリごとに、同じカテゴリに含まれる複数の特徴ベクトルごとに求められる参照特徴ベクトルの同じ位置の要素を、予め設定された範囲の軸に投影し、軸上の要素ごとに、予め設定されたマージン量とカテゴリを関連付けて生成した候補テーブルを用いて、該参照特徴ベクトルの要素ごとに分類をして候補カテゴリ集合を求め、
分類した候補カテゴリ集合を出力する、
ことを実行するパターン認識方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【公開番号】特開2011−100245(P2011−100245A)
【公開日】平成23年5月19日(2011.5.19)
【国際特許分類】
【出願番号】特願2009−253738(P2009−253738)
【出願日】平成21年11月5日(2009.11.5)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成23年5月19日(2011.5.19)
【国際特許分類】
【出願日】平成21年11月5日(2009.11.5)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]