以下、本発明の実施形態に係る文字認識装置、方法およびプログラムについて図面を参照しながら説明する。なお、実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。
以下では、一例として、手書き文字が含まれた帳票やアンケート用紙などの書類をスキャナ等で画像化し、画像化した画像データの文字を認識する文字認識装置の構成と動作について説明する。なお、手書き文字が含まれていない書類、いわゆる、書体データを利用してプリンタによって文字が印刷された書類であっても、印刷されている文字が掠れていたり、または、滲んでいたりすると、文字の認識率が低下する。本実施形態にかかる文字認識装置はこのような書類をスキャナ等で画像化し、画像化した画像データの文字の認識に適用されてもよい。
文字認識装置1は、概念的には、バックプロパゲーション(誤差逆伝播法)によって、入力層、一または複数の中間層、および出力層から構成される多層のニューラルネットワークを学習させるアルゴリズムを利用して、文字認識を行う。
具体的には、文字認識装置1は、図1に示すように、画像データを入力する入力部10と、画像データを認識してテキストを生成する画像認識部11と、画像認識部11により生成されたテキストを自然言語処理する自然言語処理部12と、画像認識部11により生成されたテキストと自然言語処理部12により自然言語処理されたテキストを対比する判断部13とを備える。また、文字認識装置1は、判断部13から出力されるテキストを出力する出力部16を備える。出力部16は、テキストを項目に分けてcsvデータとして出力してもよい。また、文字認識装置1は、画像認識部11、自然言語処理部12および判断部13とを独立に機能させ、それぞれの出力結果が相互に出力結果に影響を与えることにより、所定以上の尤度のテキストを出力する。
入力部10は、例えば、スキャナ装置によって構成されており、書類を画像化して画像データを生成し、生成した画像データを記憶部14に入力する。
ここで、画像認識部11の動作について説明する。画像認識部11は、画像データに基づいて、例えば、罫線抽出、枠構造解析、読取対象枠の位置推定などの文書構造解析を行う。次に、画像認識部11は、文書構造解析の結果を受けて、読取対象である文字行を抽出する。次に、画像認識部11は、文字行画像から文字パターン候補の切出しと、各文字パターンの文字識別を行う。
つぎに、文字識別の手順について説明する。画像認識部11は、図2に示すように、切出した1個の文字パターンの画像データに対して特徴抽出を行う。そして、画像認識部11は、文字のストロークの方向成分などを抽出して、画像データを1つのベクトルに変換する。図2に示す例では、画像データXが多層のニューラルネットワークに入力され、方向や位置等の特徴を捉えて特徴抽出をされている様子を模式的に示している。また、図2に示す例では、ベクトルX1と、ベクトルX2と、ベクトルX3とに変換された様子を模式的に示している。
画像認識部11は、図3に示すように、変換されたベクトルに基づいて、字種が何であるかを判定する。画像認識部11は、当該判定において、事前に大量のパターンを使った分布の様子から、どの字種が特徴空間上のどの辺に分布しているかを保持している辞書データを参照し、未知の入力パターンでる画像データの候補を決定する。図3に示す例では、辞書データにおいて、字種「中」、字種「申」および字種「十」の情報が記憶されている様子を概念的に示している。
画像認識部11は、以上のプロセスにより、複数のテキスト候補(例えば、中、申、十)と、各テキスト候補の尤度を取得する。なお、各テキスト候補の尤度は、特徴空間内における各候補の中心と、未知の入力パターンである画像データとの距離で算出することができる。
画像認識部11は、図1に示すように、第1画像認識部11aと、第2画像認識部11bとから構成されている。
第1画像認識部11aは、記憶部15から画像データを読み出し、多層のニューラルネットワークを用いて当該画像データから特徴点を抽出し、複数のテキスト候補と尤度を出力する。
第2画像認識部11bは、記憶部15から画像データを読み出し、多層のニューラルネットワークを用いて当該画像データから特徴点を抽出し、テキストよりも小さい因子である素因子テキストに分離されたテキスト候補と尤度を出力する。
第1画像認識部11aと第2画像認識部11bとの主な違いは、画像認識の機械学習を行う際に利用する学習データの違いである。第1画像認識部11aは1文字を1文字として出力するように学習データが用意されているのに対し、第2画像認識部11bは1文字をより小さい因子である素因子テキストに分離して出力するように学習データが用意されている。
ここで、第1画像認識部11aによる画像認識と第2画像認識部11bによる画像認識の具体例について説明する。以下では、第1画像認識部11aおよび第2画像認識部11b、例えば、図4(a)に示すように、画像データA1について画像認識を行う場合について説明する。
第1画像認識部11aは、画像データA1を分割する処理を行う。本実施例では、分割する処理により、画像データA1は、図4(b)に示すように、4つの画像データa1,a2,a3,a4に分割できたものとする。
第1画像認識部11aは、多層のニューラルネットワークを用いて画像データa1から特徴点を抽出し、複数の候補(例えば、「高」,「喬」,「富」,「畜」等)を生成し、各候補の尤度を計算する。
第1画像認識部11aは、多層のニューラルネットワークを用いて画像データa2から特徴点を抽出し、複数の候補(例えば、「校」,「核」,「梓」,「検」等)を生成し、各候補の尤度を計算する。
第1画像認識部11aは、多層のニューラルネットワークを用いて画像データa3から特徴点を抽出し、複数の候補(例えば、「時」,「暁」,「待」,「晤」等)を生成し、各候補の尤度を計算する。
第1画像認識部11aは、多層のニューラルネットワークを用いて画像データa4から特徴点を抽出し、複数の候補(例えば、「代」,「付」,「何」,「仕」等)を生成し、各候補の尤度を計算する。
第1画像認識部11aは、各候補の尤度に基づいて、例えば、「高校時代」、「喬核暁付」等をテキスト候補として判断部13に出力する。
第2画像認識部11bは、第1画像認識部11aよりも小さい単位である素因子テキストを生成するように画像データA1を分割する処理を行う。素因子テキストとは、1文字をより小さい因子で表したテキストである。例えば、「校」という画像データから小さい因子で表した「木」と「交」が素因子テキストである。本実施例では、分割する処理により、画像データA1は、図4(c)に示すように、6つの画像データb1,b2,b3,b4,b5,b6に分割できたものとする。
第2画像認識部11bは、多層のニューラルネットワークを用いて画像データb1から特徴点を抽出し、複数の素因子テキストの候補(例えば、「高」,「喬」,「富」,「畜」等)を生成し、各候補の尤度を計算する。
第2画像認識部11bは、多層のニューラルネットワークを用いて画像データb2から特徴点を抽出し、複数の素因子テキストの候補(例えば、「木」,「不」,「六」,「禾」等)を生成し、各候補の尤度を計算する。
第2画像認識部11bは、多層のニューラルネットワークを用いて画像データb3から特徴点を抽出し、複数の素因子テキストの候補(例えば、「交」,「定」,「気」,「充」等)を生成し、各候補の尤度を計算する。
第2画像認識部11bは、多層のニューラルネットワークを用いて画像データb4から特徴点を抽出し、複数の素因子テキストの候補(例えば、「日」,「曰」,「月」等)を生成し、各候補の尤度を計算する。
第2画像認識部11bは、多層のニューラルネットワークを用いて画像データb5から特徴点を抽出し、複数の素因子テキストの候補(例えば、「寺」,「圭」,「茉」,「苦」等)を生成し、各候補の尤度を計算する。
第2画像認識部11bは、多層のニューラルネットワークを用いて画像データb6から特徴点を抽出し、複数の素因子テキストの候補(例えば、「代」,「付」,「何」,「仕」等)を生成し、各候補の尤度を計算する。
第2画像認識部11bは、各素因子テキストの尤度に基づいて、例えば、「高木交日寺代」、「喬不定曰圭付」等をテキスト候補として判断部13に出力する。
自然言語処理部13は、第2画像認識部11bにより出力されたテキスト候補に対して、隣接する素因子テキストの接合および切り離しを行って、組み合わせられる複数のパターンのテキストに形態素解析を行い、自然言語的な観点から尤もらしい複数のテキスト候補と尤度を出力する。
具体的には、自然言語処理部13は、「高木交日寺代」について、「高木」「交日寺代」に分離したり、「高」「木交」「日寺代」に分離したりして、それぞれに対して形態素解析を行って、それぞれの尤度を計算する。
また、自然言語処理部13は、「高木」「交日寺代」について、「日」と「寺」を接合して「時」にし、「高木」「交時代」にして、形態素解析を行って、尤度を計算する。
また、自然言語処理部13は、「高」「木交」「日寺代」について、「木」と「交」を接合して「校」にし、前のテキスト「高」と組み合わせて「高校」にし、「高校」「日寺代」にして、形態素解析を行って、尤度を計算する。
また、自然言語処理部13は、「高校」「日寺代」について、「日」と「寺」を接合して「時」にし、「高校」「時代」にして、形態素解析を行って、尤度を計算する。
このようにして、自然言語処理部13は、第2画像認識部11bから出力されたテキスト候補を、全てのパターンで接合、切り離しの処理を行う。例えば、「私の高木交日寺代は」というテキストについて形態素解析を行うと、「主語」「格助詞」「名詞(苗字)」「名詞」「名詞」「係助詞」となり、自然言語的な観点から不当な並びとなるため、当該テキストに対しては、尤度が低いという評価を行う。一方、「私の高校時代は」というテキストについて形態素解析を行うと、「主語」「格助詞」「名詞」「係助詞」となり、自然言語的な観点から適当な並びとなるため、当該テキストに対しては、尤度が高いという評価行う。素因子テキストに分離し、全てのパターンで組み合わせたテキスト候補に対して形態素解析による評価を行うことで、画像認識のエラーによる誤りを減らすことができる。
判断部14は、第1画像認識部11aにより出力されたテキスト候補(例えば、「高校時代」)と、自然言語処理部13により出力されたテキスト候補(例えば、「高木交日寺代」)とを対比する。
判断部14は、対比した結果に基づいて、所定以上の尤度のテキスト(例えば、「高校時代」)を出力する。
画像認識を重視した第1画像認識部11aと、自然言語を重視した第2画像認識部11bという二つの異なる観点のテキストを対比することで、文字認識装置1は、より高精度に文字認識を行うことができる。
また、判断部14は、第1画像認識部11aにより出力された最も尤度の高いテキスト候補と、自然言語処理部13により出力された最も尤度の高いテキスト候補とを対比し、所定以上の尤もらしさ(例えば、一致率が98パーセント以上)を得られなかった場合、所定以上の尤もらしさが得られるまで、尤度の高い順に他の候補同士の対比を行う構成でもよい。
判断部14は、第1画像認識部11aと自然言語処理部13で得られたすべての出力パターンの中から、どの回答が尤もらしいかの重みを画像認識部11にフィードバックする。また、判断部14は、出力パターンには存在しない「Xという文字である可能性」をフィードバックする。画像認識部11は、当該フィードバックを受けて、再度重み付けに基づく画像認識を行う。
例えば、判断部14は、第1画像認識部11aにより出力された最も尤度の高いテキスト候補である「喬校時付」と、自然言語処理部13により出力された最も尤度の高いテキスト候補である「高木交時代」とを対比し、差分が大きく、所定以上の尤もらしさを得られなかった場合、第1画像認識部11aにより出力された次に尤度の高いテキスト候補である「高校時代」と、自然言語処理部13により出力された最も尤度の高いテキスト候補である「高校時代」とを対比し、所定以上の尤もらしさが得られた場合、「高校時代」を出力する。
よって、文字認識装置1は、様々な手書き文字が含まれている書類について、所定以上の尤もらしさが得られるまで処理を繰り返すので、信頼性の高い高精度な文字認識を行うことができる。
また、判断部14は、自然言語処理部13により出力されたテキスト候補の中で、尤度の高いテキスト候補を第1画像認識部11aにより出力されたテキスト候補よりも優先的に扱う構成でもよい。
当該構成の場合には、文字認識装置1は、より自然言語処理部13による処理を優先するので、自然言語処理に適しているといえ、文章の文字認識に対して強みを発揮する。
また、判断部14は、対比した結果、2つのテキスト候補の差分が所定の閾値を超えない場合に、所定以上の尤度のテキストであると判断して出力する構成でもよい。つまり、判断部14は、自然言語処理部13により出力されたテキスト候補と、第1画像認識部11aにより出力されたテキスト候補とがほぼ一致している場合に、所定以上の尤度のテキストであると判断する。
当該構成の場合には、文字認識装置1は、自然言語処理部13と第1画像認識部11aの二つの処理の結果を利用して文字認識を行っているので、高精度に文字認識を行うことができる。
文字認識装置1は、図1に示すように、処理にかかる時間を設定する設定部15を備える構成でもよい。設定部15は、例えば、ユーザの指示にしたがって、処理時間を10分などに設定する。
判断部14は、第1画像認識部11aにより出力された最も尤度の高いテキスト候補と、自然言語処理部13により出力された最も尤度の高いテキスト候補とを対比し、所定以上の尤もらしさを得られなかった場合、設定部15によって設定された時間以内において、所定以上の尤もらしさが得られるまで、尤度の高い順に他の候補同士の対比を行う。
よって、文字認識装置1は、設定された時間内において、所定以上の尤もらしさが得られるまで処理を繰り返すので、認識処理を何回行っても所定以上の尤もらしさが得られないような認識困難な画像データに対して何度も試行を繰り返すことがないメリットがある。
また、判断部14は、所定以上の尤もらしさが得られなかったテキストを伏字にして出力する構成でもよい。
伏字とは、文字認識ができなかった箇所を示すものであり、例えば、「○」や「△」などである。具体的には、「高校時代」の「時」の箇所に対して所定以上の尤もらしさが得られなかった場合には、判断部14は、「高校○代」を出力する。
よって、文字認識装置1は、文字識別できた箇所と文字識別ができなかった箇所を明示して出力することができる。なお、伏字にした箇所について、正しい文字(本実施例では、「○」の箇所は「時」である)を文字認識装置1にフィードバックしてもよい。当該フィードバックにより、文字認識装置1は、次回の文字認識において、前回「○」となった画像データを正しいテキスト「校」として出力することができる。
また、第2画像認識部11bは、項目ごとに適した多層のニューラルネットワークを機械学習により有しており、画像データに含まれる項目を探索し、当該項目に適した多層のニューラルネットワークを用いて画像データから特徴点を抽出し、テキストよりも小さい因子である素因子テキストに分離されたテキスト候補を出力する構成でもよい。
例えば、「申込日」のような項目には、「2015年5月1日」等の申込日に関する情報が入力されることが予想できる。つまり、「申込日」のような項目は、数字「0〜9」と、漢字「年」,「月」,「日」が入力され、他の文字は入力されない。よって、第2画像認識部11bは、認識する項目が「申込日」のような場合には、数字「0〜9」と、漢字「年」,「月」,「日」とを出力するようなニューラルネットワークを用いて画像データから特徴点を抽出し、テキストよりも小さい因子である素因子テキストに分離されたテキスト候補を出力する。
また、「氏名_フリガナ」のような項目には、「トッキョタロウ」等の氏名のカタカナに関する情報が入力されることが予想できる。つまり、「氏名_フリガナ」のような項目は、カタカナ「ア〜ン」等が入力され、他の文字(漢字、数字等)は入力されない。よって、第2画像認識部11bは、認識する項目が「氏名_フリガナ」のような場合には、カタカナを出力するようなニューラルネットワークを用いて画像データから特徴点を抽出し、テキストよりも小さい因子である素因子テキストに分離されたテキスト候補を出力する。
また、「電話番号(TEL)」のような項目には、「03−3581−1111」等の電話番号に関する情報が入力されることが予想できる。つまり、「電話番号(TEL)」のような項目は、数字「0〜9」とハイフン「−」が入力され、他の文字(漢字、ひらがな等)は入力されない。よって、第2画像認識部11bは、認識する項目が「電話番号(TEL)」のような場合には、数字「0〜9」とハイフン「−」を出力するようなニューラルネットワークを用いて画像データから特徴点を抽出し、テキストよりも小さい因子である素因子テキストに分離されたテキスト候補を出力する。
よって、文字認識装置1は、項目ごとに適した多層のニューラルネットワークを利用して画像データからテキスト候補を出力するので、効率的に高精度に文字認識を行うことができる。
ここで、文字認識装置1の動作の流れについて、図5に示すフローチャートを参照しながら説明する。
ステップS1において、第1画像認識部11aは、多層のニューラルネットワークを用いて画像データから特徴点を抽出し、複数のテキスト候補と尤度を出力する。
ステップS2において、第2画像認識11bは、多層のニューラルネットワークを用いて画像データから特徴点を抽出し、テキストよりも小さい因子である素因子テキストに分離されたテキスト候補を出力する。
ステップS3において、自然言語処理部12は、ステップS2の工程により出力されたテキスト候補に対して、隣接する素因子テキストを接合および切り離しを行って、組み合わせられる複数のパターンのテキストに形態素解析を行い、自然言語的な観点から尤もらしい複数のテキスト候補と尤度を出力する。
ステップS4において、判断部13は、ステップS1の工程により出力されたテキスト候補と、ステップS3の工程により出力されたテキスト候補とを対比する。本工程において、判断部13は、所定以上の尤度(例えば、一致率が98パーセント以上)のテキストを出力する。
よって、文字認識装置1は、様々な手書き文字が含まれている書類について、高精度に文字認識を行うことができる。
また、本実施例では、主に、様々な手書き文字が含まれている書類について、高精度に文字認識を行うことができる文字認識装置1の構成と動作について説明したが、これに限られず、各構成要素を備え、様々な手書き文字が含まれている書類について、高精度に文字認識を行うための方法、およびプログラムとして構成されてもよい。
さらに、文字認識装置1を構成する各機能を実現するためのプログラムをコンピュータで読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、指示することによって実現してもよい。
具体的には、当該プログラムは、多層のニューラルネットワークを用いて画像データから特徴点を抽出し、複数のテキスト候補と尤度を出力する第1画像認識工程と、多層のニューラルネットワークを用いて画像データから特徴点を抽出し、テキストよりも小さい因子である素因子テキストに分離されたテキスト候補と尤度を出力する第2画像認識工程と、第2画像認識工程により出力されたテキスト候補に対して、隣接する素因子テキストの接合および切り離しを行って、組み合わせられる複数のパターンのテキストに形態素解析を行い、自然言語的な観点から尤もらしい複数のテキスト候補と尤度を出力する自然言語処理工程と、第1画像認識工程により出力されたテキスト候補と、自然言語処理工程により出力されたテキスト候補とを対比する判断工程と、をコンピュータによって実現するためのプログラムである。また、判断工程は、所定以上の尤度のテキストを出力する。
さらに、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータで読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータで読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含んでもよい。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。