(57)【要約】【課題】複数の異なる文字認識手法を組み合わせた統計的な機械学習を用いることで高い精度の文字認識結果を得る。【解決手段】文字認識エンジンＥ１〜ＥＮはそれぞれ、入力された文字パターンが認識対象とする複数の文字コードのそれぞれに該当する度合いを示す複数の評価値を出力し、特徴ベクトル生成部１４は、入力された文字パターンについて文字認識エンジンＥ１〜ＥＮにより出力された複数の評価値を要素とする特徴ベクトルを生成し、識別器学習部１５は、文字コードが指定された文字パターンについて特徴ベクトル生成部１４により生成された特徴ベクトルに基づいて、文字コードごとの特徴ベクトルの分類を学習し、文字識別部１８は、未知の文字パターンの特徴ベクトルが学習された文字コードごとの特徴情報の分類のいずれに該当するかに基づいて、未知の文字パターンの文字コードを決定する。【選択図】図１
2014071813.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ異なる複数の文字認識プログラムごとに、入力された文字パターンが該文字認識プログラムの認識対象とする複数の文字コードのそれぞれに該当する度合いを示す複数の評価値を出力する評価値出力手段と、
前記入力された文字パターンについて前記評価値出力手段により出力された複数の評価値を要素とする特徴情報を生成する生成手段と、
予め文字コードが指定された文字パターンについて前記生成手段により生成された特徴情報に基づいて、文字コードごとの特徴情報の分類を学習する学習手段と、
文字コードが未知の文字パターンについて前記生成手段により生成された特徴情報が前記学習された文字コードごとの特徴情報の分類のいずれに該当するかに基づいて、該未知の文字パターンの文字コードを決定する決定手段と、を含む
ことを特徴とする文字認識装置。
【請求項２】
前記複数の文字認識プログラムは、第１の文字認識プログラムと、第２の文字認識プログラムを含み、
前記第１の文字認識プログラムが認識対象とする複数の文字コードの少なくとも一部と、前記第２の文字認識プログラムが認識対象とする複数の文字コードの少なくとも一部とが重複する
ことを特徴とする請求項１に記載の文字認識装置。
【請求項３】
予め文字コードが指定された複数の文字パターンのそれぞれについて前記決定手段により決定した文字コードと該文字パターンに指定された文字コードとの比較結果に基づいて、正解率が閾値以下である文字コードを特定する特定手段と、
前記特定手段により特定された文字コードを認識対象とする文字認識プログラムを前記評価値出力手段に追加する手段と、をさらに含む
ことを特徴とする請求項１又は２に記載の文字認識装置。
【請求項４】
それぞれ異なる複数の文字認識プログラムごとに、入力された文字パターンが該文字認識プログラムの認識対象とする複数の文字コードのそれぞれに該当する度合いを示す複数の評価値を出力する評価値出力手段と、
前記入力された文字パターンについて前記評価値出力手段により出力された複数の評価値を要素とする特徴情報を生成する生成手段と、
予め文字コードが指定された文字パターンについて前記生成手段により生成された特徴情報に基づいて、文字コードごとの特徴情報の分類を学習する学習手段と、
文字コードが未知の文字パターンについて前記生成手段により生成された特徴情報が前記学習された文字コードごとの特徴情報の分類のいずれに該当するかに基づいて、該未知の文字パターンの文字コードを決定する決定手段
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字認識装置及びプログラムに関する。
【背景技術】
【０００２】
人が描いた手書き文字の文字コードを認識する文字認識プログラムがある。さらに、特許文献１には、複数の文字認識プログラムの出力結果を比較することで、文字認識の精度を向上させようとしている発明が記載されている。
【０００３】
文字認識プログラムは認識精度の高い文字、認識精度の悪い文字があり、単純に文字認識プログラムの出力結果のみを比較した場合には、こうした観点を考慮に入れることが困難となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−９６０８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、複数の異なる文字認識手法を組み合わせた統計的な機械学習を用いることで高い精度の文字認識結果を得ることができる文字認識装置及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
請求項１に記載の発明は、それぞれ異なる複数の文字認識プログラムごとに、入力された文字パターンが該文字認識プログラムの認識対象とする複数の文字コードのそれぞれに該当する度合いを示す複数の評価値を出力する評価値出力手段と、前記入力された文字パターンについて前記評価値出力手段により出力された複数の評価値を要素とする特徴情報を生成する生成手段と、予め文字コードが指定された文字パターンについて前記生成手段により生成された特徴情報に基づいて、文字コードごとの特徴情報の分類を学習する学習手段と、文字コードが未知の文字パターンについて前記生成手段により生成された特徴情報が前記学習された文字コードごとの特徴情報の分類のいずれに該当するかに基づいて、該未知の文字パターンの文字コードを決定する決定手段と、を含むことを特徴とする文字認識装置である。
【０００７】
請求項２に記載の発明は、前記複数の文字認識プログラムは、第１の文字認識プログラムと、第２の文字認識プログラムを含み、前記第１の文字認識プログラムが認識対象とする複数の文字コードの少なくとも一部と、前記第２の文字認識プログラムが認識対象とする複数の文字コードの少なくとも一部とが重複することを特徴とする請求項１に記載の文字認識装置である。
【０００８】
請求項３に記載の発明は、予め文字コードが指定された複数の文字パターンのそれぞれについて前記決定手段により決定した文字コードと該文字パターンに指定された文字コードとの比較結果に基づいて、正解率が閾値以下である文字コードを特定する特定手段と、前記特定手段により特定された文字コードを認識対象とする文字認識プログラムを前記評価値出力手段に追加する手段と、をさらに含むことを特徴とする請求項１又は２に記載の文字認識装置である。
【０００９】
請求項４に記載の発明は、それぞれ異なる複数の文字認識プログラムごとに、入力された文字パターンが該文字認識プログラムの認識対象とする複数の文字コードのそれぞれに該当する度合いを示す複数の評価値を出力する評価値出力手段と、前記入力された文字パターンについて前記評価値出力手段により出力された複数の評価値を要素とする特徴情報を生成する生成手段と、予め文字コードが指定された文字パターンについて前記生成手段により生成された特徴情報に基づいて、文字コードごとの特徴情報の分類を学習する学習手段と、文字コードが未知の文字パターンについて前記生成手段により生成された特徴情報が前記学習された文字コードごとの特徴情報の分類のいずれに該当するかに基づいて、該未知の文字パターンの文字コードを決定する決定手段としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【００１０】
請求項１及び４に記載の発明によれば、本構成を有さない場合と比較して、複数の異なる文字認識手法を組み合わせた統計的な機械学習を用いることで高い精度の文字認識結果を得ることができる。
【００１１】
請求項２に記載の発明によれば、同じ文字コードについて複数の異なる文字認識手法で評価しない場合と比較して、高い精度の文字認識結果を得ることができる。
【００１２】
請求項３に記載の発明によれば、他の文字認識手法が不得意とする文字コードを認識対象とする文字認識手法を追加することで、高い精度の文字認識結果を得ることができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態に係る文字認識装置の機能ブロック図である。
【図２】特徴ベクトルの生成処理を説明する図である。
【図３】学習処理のフローチャートである。
【図４】文字認識処理のフローチャートである。
【図５】文字認識エンジンの設定処理のフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための実施の形態（以下、実施形態という）を、図面を参照しながら説明する。
【００１５】
［機能ブロック］
図１には、本実施形態に係る文字認識装置１の機能ブロック図を示した。図１に示されるように、文字認識装置１は、学習データ取得部１１、文字パターン入力部１２、文字認識エンジン管理部１３、特徴ベクトル生成部１４、識別器学習部１５、識別器データ保持部１６、未知パターン取得部１７、文字識別部１８、識別結果出力部１９を備える。
【００１６】
文字認識装置１に備えられる上記各部の機能は、ＣＰＵ等の制御手段、メモリ等の記憶手段、外部デバイスとデータを送受信する入出力手段等を備えたコンピュータが、コンピュータ読み取り可能な情報記憶媒体に格納されたプログラムを読み込み実行することで実現されるものとしてよい。なお、プログラムは光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等の情報記憶媒体によってコンピュータたる文字認識装置１に供給されることとしてもよいし、インターネット等のデータ通信網を介して供給されることとしてもよい。
【００１７】
学習データ取得部１１は、文字認識の識別器（識別モデル）を学習するための学習データを取得する。例えば、学習データは、オフライン文字パターンの学習データであれば、文字パターンと、文字パターンの示す文字コードの情報を含み、また、オンライン文字パターンの学習データであれば、文字パターン、文字パターンの書き順データ（ストロークデータ）、文字パターンの示す文字コードの情報を含むこととしてよい。
【００１８】
文字パターン入力部１２は、学習データ取得部１１、及び、後述する未知パターン取得部１７で取得された文字パターンを文字認識エンジン管理部１３に入力する。文字パターン入力部１２は、オフライン文字パターンに対しては、文字パターン（文字画像）を文字認識エンジン管理部１３に入力し、オンライン文字パターンに対しては、文字パターン（文字画像）とその書き順データを文字認識エンジン管理部１３に入力する。
【００１９】
文字認識エンジン管理部１３は、複数の文字認識エンジン（文字認識プログラム）を含み、各文字認識エンジンへの情報入力と、各文字認識エンジンからの情報出力を管理する。
【００２０】
文字認識エンジン管理部１３は、それぞれ異なる文字認識エンジンＥ１〜ＥＮ（Ｎは２以上の整数）を備える。なお、文字認識エンジンＥ１〜ＥＮは、オンライン文字認識用の文字認識エンジンとしてもよいし、オンライン文字認識用の文字認識エンジンとしてもよい。ここで、文字認識エンジンＥｉ（ｉは１〜Ｎのいずれかの整数）は、Ｍｉ個の文字コードを認識対象としており、文字パターン入力部１２から入力された文字パターンについて、Ｍｉ個のそれぞれの文字コードに該当する評価値（確率値、類似度、距離等）を要素とするＭｉ次元の評価ベクトルＷｉを生成し、出力する。なお、各文字認識エンジンＥｉの認識対象とする文字コードは重複していなくともよいが、各文字認識エンジンＥｉの認識対象とする文字コードの少なくとも一部を重複させるようにしてもよい。
【００２１】
特徴ベクトル生成部１４は、文字パターン入力部１２により文字認識エンジン管理部１３に入力された文字パターンに基づいて、文字認識エンジン管理部１３に含まれる複数の文字認識エンジンＥ１〜ＥＮからそれぞれ出力される評価ベクトルに基づいて、文字パターンの特徴ベクトルを生成する。
【００２２】
図２には、特徴ベクトルの生成処理を説明する図を示した。図２に示されるように、特徴ベクトル生成部１４は、文字認識エンジンＥｉ（ｉは１〜Ｎの整数）からそれぞれ出力される評価ベクトルＷｉを順次繋げて、（Ｍ１＋Ｍ２＋・・・＋ＭＮ）次元の特徴ベクトルＷを生成する。なお、図２において、文字パターンＸが、文字認識エンジンＥｉにおけるｊ番目（番号ｊ）の文字コードである確からしさ（確率、距離、類似度等）を、Ｓｉ（ｘ，Ｃｊ）として表している。
【００２３】
識別器学習部１５は、学習データ取得部１１により取得された学習データの文字パターンについて、特徴ベクトル生成部１４で生成された特徴ベクトルと、該文字パターンについて定められた文字コードとに基づいて、識別器の学習を行う。具体的には、識別器には、AdaBoostやSupport Vector Machine等の機械学習モデルを用いることとしてよく、識別器学習部１５は、文字コードごとの特徴ベクトルのグループに基づいて各文字コードを識別するパラメータを生成することとしてよい。
【００２４】
識別器データ保持部１６は、識別器学習部１５により生成されたパラメータを保持する。
【００２５】
未知パターン取得部１７は、識別対象の文字パターンを取得する。例えば、未知パターン取得部１７は、文字認識装置１に接続された入力装置（例えばタッチパネル等）に入力された手書き文字を未知パターンとして取得することとしてよい。
【００２６】
文字パターン入力部１２は、未知パターン取得部１７により取得された未知パターンを文字認識エンジン管理部１３に入力する。そして、文字認識エンジンＥ１〜ＥＮは、未知パターンについてそれぞれ評価ベクトルを生成し、特徴ベクトル生成部１４は、文字認識エンジンＥ１〜ＥＮでそれぞれ生成された評価ベクトルに基づいて、未知パターンの特徴ベクトルを生成する。なお、未知パターンについての特徴ベクトルの生成処理は、学習データに含まれる文字パターンについての特徴ベクトルの生成処理と同様である。
【００２７】
文字識別部１８は、未知パターンについて特徴ベクトル生成部１４により生成された特徴ベクトルと、識別器データ保持部１６に保持される各文字コードの識別を学習したパラメータとに基づいて、未知パターンが該当する文字コードを識別する。
【００２８】
識別結果出力部１９は、文字識別部１８により識別された文字コードを出力する。例えば、識別結果出力部１９は、文字識別部１８により識別された文字コードを出力する出力情報を生成し、例えば文字認識装置１に接続された表示装置や印刷装置等に出力情報を出力することとしてよい。
【００２９】
［フローチャート］
次に、図３〜５に示したフローチャートを参照しながら、文字認識装置１において行われる処理の詳細について説明する。
【００３０】
［学習処理］
図３には、文字認識装置１において行われる学習処理のフローチャートを示した。学習処理は、学習データ（教師データ）に基づいて、識別器に文字コードの識別を学習させる処理である。
【００３１】
図３に示されるように、文字認識装置１は、変数ｌ（ｌは１〜Ｌの整数）の初期値を１に設定して（Ｓ１０１）、学習データＤｌを選択する（Ｓ１０２）。
【００３２】
次に、文字認識装置１は、変数ｉ（ｉは１〜Ｎの整数）の初期値を１に設定して（Ｓ１０３）、文字認識エンジンＥｉを選択する（Ｓ１０４）。
【００３３】
次に、文字認識装置１は、変数ｊ（ｊは１〜Ｍｉの整数で、Ｍｉは文字認識エンジンＥｉが識別可能な文字数）の初期値を１に設定して（Ｓ１０５）、学習データＤｌが、文字認識エンジンＥｉにおけるｊ番目の文字である確からしさを示すスコアｗｊを算出し（Ｓ１０６）、算出したｗｊを特徴ベクトルＷｌの要素に追加する（Ｓ１０７）。
【００３４】
ここで、文字認識装置１は、文字認識エンジンＥｉにおけるｊ番目の文字が最後の文字ではない、すなわち、ｊ＝Ｍｉでない場合には（Ｓ１０８：Ｎ）、ｊをインクリメントして（Ｓ１０９）、Ｓ１０６に戻る。一方で、文字認識装置１は、文字認識エンジンＥｉにおけるｊ番目の文字が最後の文字である、すなわち、ｊ＝Ｍｉである場合には（Ｓ１０８：Ｙ）、変数ｉがＮに達したか否か（Ｄｌを最後の文字認識エンジンが処理したか否か）を判定する（Ｓ１１０）。
【００３５】
ここで、文字認識装置１は、変数ｉがＮに達していない場合には（Ｓ１１０：Ｎ）、ｉをインクリメントして（Ｓ１１１）、Ｓ１０４に戻り、変数ｉがＮに達している場合には（Ｓ１１０：Ｙ）、変数ｌがＬに達したか否か（最後の学習データを処理したか否か）を判定する（Ｓ１１２）。
【００３６】
ここで、文字認識装置１は、変数ｌがＬに達していない場合には（Ｓ１１２：Ｎ）、ｌをインクリメントして（Ｓ１１３）、Ｓ１０２に戻り、変数ｌがＬに達している場合には（Ｓ１１２：Ｙ）、学習データＤ１〜ＤＬについてそれぞれ生成した特徴ベクトルＷ１〜ＷＬに基づいて、識別器における文字コードの識別を学習した学習パラメータを算出し（Ｓ１１４）、算出した学習パラメータを保存して（Ｓ１１５）、処理を終了する。
【００３７】
［文字認識処理］
次に、文字コードの識別を学習した識別器により行われる未知の文字パターンの識別処理（文字認識処理）について説明する。
【００３８】
図４には、文字認識装置１において行われる文字認識処理のフローチャートを示した。図４に示されるように、文字認識装置１は、未知の文字パターンＰを取得する（Ｓ２０１）。
【００３９】
次に、文字認識装置１は、変数ｉ（ｉは１〜Ｎの整数）の初期値を１に設定して（Ｓ２０２）、文字認識エンジンＥｉを選択する（Ｓ２０３）。
【００４０】
次に、文字認識装置１は、変数ｊ（ｊは１〜Ｍｉの整数で、Ｍｉは文字認識エンジンＥｉにおいて識別可能な文字数）の初期値を１に設定して（Ｓ２０４）、文字パターンＰが、文字認識エンジンＥｉにおけるｊ番目の文字である確からしさを示すスコアｗｊを算出し（Ｓ２０５）、算出したｗｊを特徴ベクトルＷPの要素に追加する（Ｓ２０６）。
【００４１】
ここで、文字認識装置１は、文字認識エンジンＥｉにおけるｊ番目の文字が最後の文字ではない、すなわち、ｊ＝Ｍｉでない場合には（Ｓ２０７：Ｎ）、ｊをインクリメントして（Ｓ２０８）、Ｓ２０５に戻る。一方で、文字認識装置１は、文字認識エンジンＥｉにおけるｊ番目の文字が最後の文字である、すなわち、ｊ＝Ｍｉである場合には（Ｓ２０７：Ｙ）、変数ｉがＮに達したか否か（Ｐを最後の文字認識エンジンが処理したか否か）を判定する（Ｓ２０９）。
【００４２】
ここで、文字認識装置１は、変数ｉがＮに達していない場合には（Ｓ２０９：Ｎ）、ｉをインクリメントして（Ｓ２１０）、Ｓ２０３に戻り、変数ｉがＮに達している場合には（Ｓ２０９：Ｙ）、未知の文字パターンＰについて生成した特徴ベクトルＷＰと、識別器について学習した学習パラメータとに基づいて、文字パターンＰが該当する文字を識別し（Ｓ２１１）、その識別結果を出力して（Ｓ２１２）、処理を終了する。
【００４３】
［文字認識エンジンの設定処理］
次に、学習処理の後に実行される、文字認識エンジンの設定処理について説明する。
【００４４】
図５には、文字認識エンジンの設定処理のフローチャートを示した。文字認識エンジンの設定処理は、文字コードの識別を学習した識別器による文字コードの識別率が十分でない場合に、識別率が十分でない文字コードをカバーする文字認識エンジンを追加する処理である。
【００４５】
図５に示されるように、文字認識装置１は、変数ｋ（ｋは１〜Ｋの整数）の初期値を１に設定して（Ｓ３０１）、テストデータＴｋを選択する（Ｓ３０２）。なお、テストデータとは、学習データと同じく、文字パターンと、文字パターンの文字コードとを含む情報としてよい。
【００４６】
次に、文字認識装置１は、変数ｉ（ｉは１〜Ｎの整数）の初期値を１に設定して（Ｓ３０３）、文字認識エンジンＥｉを選択する（Ｓ３０４）。
【００４７】
次に、文字認識装置１は、変数ｊ（ｊは１〜Ｍｉの整数で、Ｍｉは文字認識エンジンＥｉにおいて識別可能な文字数）の初期値を１に設定して（Ｓ３０５）、テストデータＴｋが、文字認識エンジンＥｉにおけるｊ番目の文字である確からしさを示すスコアｗｊを算出し（Ｓ３０６）、算出したｗｊを特徴ベクトルＷｋの要素に追加する（Ｓ３０７）。
【００４８】
ここで、文字認識装置１は、文字認識エンジンＥｉにおけるｊ番目の文字が最後の文字ではない、すなわち、ｊ＝Ｍｉでない場合には（Ｓ３０８：Ｎ）、ｊをインクリメントして（Ｓ３０９）、Ｓ３０６に戻る。一方で、文字認識装置１は、文字認識エンジンＥｉにおけるｊ番目の文字が最後の文字である、すなわち、ｊ＝Ｍｉである場合には（Ｓ３０８：Ｙ）、変数ｉがＮに達したか否か（Ｔｋを最後の文字認識エンジンが処理したか否か）を判定する（Ｓ３１０）。
【００４９】
ここで、文字認識装置１は、変数ｉがＮに達していない場合には（Ｓ３１０：Ｎ）、ｉをインクリメントして（Ｓ３１１）、Ｓ３０４に戻り、変数ｉがＮに達している場合には（Ｓ３１０：Ｙ）、テストデータＴｋについて算出した特徴ベクトルＷｋと、識別器について学習した学習パラメータとに基づいて、テストデータＴｋの文字パターンが該当する文字コードを識別する（Ｓ３１２）。そして、文字認識装置１は、Ｓ３１２で識別された文字コードと、テストデータの文字パターンについて定められた文字コードとが一致しているか否かを示す正否情報を記録する（Ｓ３１３）。
【００５０】
次に、文字認識装置１は、変数ｋがＫに達したか否か（最後のテストデータを処理したか否か）を判定する（Ｓ３１４）。そして、文字認識装置１は、変数ｋがＫに達していない場合には（Ｓ３１４：Ｎ）、ｋをインクリメントして（Ｓ３１５）、Ｓ３０２に戻り、変数ｋがＫに達している場合には（Ｓ３１４：Ｙ）、Ｓ３１３において記録された文字コードごとの正否情報に基づいて、正解率が閾値以下の文字コードがあるか否かを判定する（Ｓ３１６）。
【００５１】
文字認識装置１は、Ｓ３１６において、正解率が閾値以下の文字コードがない場合には（Ｓ３１６：Ｎ）、そのまま処理を終了し、正解率が閾値以下の文字コードがある場合には（Ｓ３１６：Ｙ）、当該正解率が閾値以下の文字コードを認識対象とする文字認識エンジンを、文字認識エンジンＥ１〜ＥＮに新たに追加して（Ｓ３１７）、文字認識エンジンの設定処理を終了する。
【００５２】
なお、文字認識エンジンの設定処理の終了後には、再び図３に示した学習処理を実行することとしてよい。なお、図３に示した学習処理と、図５に示した文字認識エンジンの設定処理は、図５のフローのＳ３１６において、正解率が閾値以下の文字コードが存在しなくなるまで、繰り返し実行することとしてもよい。
【００５３】
以上説明した、文字認識装置１によれば、１つ１つの文字認識エンジンだけでは精度の高い文字、精度の低い文字があっても、複数の文字認識エンジンの文字認識結果を組み合わせた特徴ベクトルを用いて、予め文字コードの分類を機械学習した結果を利用して文字パターンの文字コードを識別することで、１つ１つの文字認識エンジンを単独で、又は、１つ１つの文字認識エンジンの結果を比較して出力結果を得る場合に比べて、文字認識精度が高くなる。
【００５４】
本発明は上記の実施形態に限定されない。なお、上述したフローにおいては、オフライン文字パターンを処理対象としたが、オンライン文字パターンについても同様に適用できるのはもちろんである。
【符号の説明】
【００５５】
１  文字認識装置、１１  学習データ取得部、１２  文字パターン入力部、１３  文字認識エンジン管理部、１４  特徴ベクトル生成部、１５  識別器学習部、１６  識別器データ保持部、１７  未知パターン取得部、１８  文字識別部、１９  識別結果出力部、Ｅ１〜ＥＮ  文字認識エンジン。
【図１】
2014071813.tif 000003
【図２】
2014071813.tif 000004
【図３】
2014071813.tif 000005
【図４】
2014071813.tif 000006
【図５】
2014071813.tif 000007