説明

文字認識用コンピュータプログラム、文字認識装置及び文字認識方法

【課題】画像上の文字列に含まれる文字の認識結果に誤りがある場合でも、その文字列を正確に認識しつつ、演算量を削減可能な文字認識用コンピュータプログラムを提供する。
【解決手段】文字認識用コンピュータプログラムは、文字列を撮影した画像上の文字区間を検出して文字区間に対応するパスの集合である候補文字ラティスを求め、パスごとに候補文字を少なくとも一つ求め、互いに排他的なパスが排他的でなくなるように修正した候補文字ラティスにおいて連続するパスに含まれる候補文字の組み合わせと少なくとも一部が一致する単語を検出してその単語の位置を表す単語パスを候補文字ラティスに追加し、検出された単語の評価値を求め、文字列全体に対応する一列に連続した単語パス及びパスの配列のうちで評価値の合計値が最も高い配列に含まれる単語と候補文字の組み合わせを画像上の文字列として推定することをコンピュータに実行させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、媒体に表された文字列を撮影した画像から、その文字列に含まれるそれぞれの文字を認識する文字認識用コンピュータプログラム、文字認識装置及び文字認識方法に関する。
【背景技術】
【0002】
近年、光学文字認識(Optical Character Recognition, OCR)と呼ばれる、紙またはディスプレイなどの媒体上に表された文字列を撮影した画像を解析することによってその文字列を認識し、電子データ化する文字認識技術が利用されている。このような文字認識技術において、認識された個々の文字の組合せに対して、単語または文章としての整合性を検証することで、認識精度を向上することが検討されている(例えば、特許文献1〜3を参照)。
【0003】
例えば、特許文献1に開示された文書認識装置は、画像上の各文字パターンに対して認識候補文字群を求め、各文字パターンの認識候補文字群と町域名辞書とを照合することにより町域名を認識する。
【0004】
また、特許文献2に開示された文字認識装置は、個々の文字パターンを文字認識して複数の候補文字と各候補文字の確信度を求める。またこの文字認識装置は、候補文字の列の中から単語を検索し、検索された単語の生起確率を求める。そしてこの文字認識装置は、個々の文字の確信度と文字n-gram確率と単語の生起確率とを統合して最適な候補文字列を選択する。
【0005】
また、特許文献3に開示された検索方法は、検索文字列に含まれる第1の文字とその第1の文字に対応する第2の文字に置き換えた派生文字列を生成し、検索対象文書から、検索文字列及び派生文字列を検索する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2000−148906号公報
【特許文献2】特開平11−328316号公報
【特許文献3】特開2010−225137号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、文字認識技術では、文字列中の個々の文字を認識する際に、一つの文字を二つの文字として誤認識することで、本来存在しないはずの文字が挿入されてしまったり、あるいは、本来存在しているはずの文字が欠落してしまうことがある。例えば、「動」という一つの文字が、「重」と「力」という二つの文字として誤認識されてしまうことがある。このような場合、認識された個々の文字を連結した文字列の長さは、本来の文字列の長さと異なることになる。そのため、特許文献1または特許文献2に開示された技術では、検索対象となる辞書において、認識された文字列と一致する単語を見つけることができなくなるおそれがあった。
【0008】
一方、特許文献3に開示された技術では、認識された一つの文字を予め登録された誤認識パターンに対応する複数の文字に置換したり、あるいは認識された複数の文字を一つの文字に置換することで派生文字列が生成される。そのため、この技術は、個々の文字を誤認識することで、認識された文字列の長さが本来の文字列の長さと異なる場合でも、正確に文字列を認識できる。
【0009】
しかしながら、特許文献3に開示された技術では、認識対象となる文字列が長くなるほど、派生文字列の数も増えることになる。その結果、検索対象文書から、検索文字列及び派生文字列を検索するのに要する演算量が膨大となり、検索結果が得られるまでに要する時間も長くなってしまうおそれがあった。
【0010】
そこで、本明細書は、画像上の文字列に含まれる個々の文字の認識結果に誤りがある場合でも、その文字列を正確に認識できるとともに、文字列の認識に要する演算量を削減可能な文字認識用コンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
一つの実施形態によれば、文字認識用コンピュータプログラムが提供される。この文字認識用コンピュータプログラムは、媒体上に表された複数の文字を含む文字列を撮影した画像から、複数の文字のそれぞれごとに、その文字が写っていると推定される画像上の文字区間を検出し、複数の文字区間のそれぞれごとに設定された、他の文字区間との相対的な位置関係を表すパスの集合である候補文字ラティスを求め、複数のパスのそれぞれについて、そのパスに対応する文字区間に写っている文字の候補である候補文字を少なくとも一つ求め、候補文字ラティスに含まれる複数のパスのうち、第1のパスと、その第1のパスと少なくとも一部が重なっている2以上の連続したパスのうちの第2のパスとを、第1のパスの候補文字及び第2のパスの候補文字を含み、かつ、第2のパスと同一の文字区間に対応する第3のパスで置換するか、あるいは第1のパスが上記の2以上の連続したパスの間に挿入されるように候補文字ラティスを修正し、単語辞書に登録された複数の単語のうち、修正された候補文字ラティスにおける連続する2以上のパスのそれぞれに含まれる候補文字の組み合わせと少なくとも一部が一致する単語を文字列に含まれる可能性のある単語として検出し、検出された単語の画像上の文字列中の位置を表す単語パスを候補文字ラティスに追加した候補文字及び単語ラティスを求め、候補文字及び単語ラティスにおいて、単語パスごとに、その単語パスに対応する単語が文字列に含まれる確からしさを表す評価値を求め、候補文字及び単語ラティスに含まれる単語パス及びパスの中から選択した文字列全体に対応する一列に連続した単語パス及びパスの配列ごとに評価値の合計値を求め、その合計値が最も高い配列に含まれる単語パス及びパスの順序に従って整列されたその単語パス及びパスに対応する単語と候補文字の組み合わせを画像上の文字列として推定することをコンピュータに実行させる命令を有する。
【0012】
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を制限するものではないことを理解されたい。
【発明の効果】
【0013】
ここに開示される文字認識用コンピュータプログラムは、画像上の文字列に含まれる個々の文字の認識結果に誤りがある場合でも、その文字列を正確に認識できるとともに、文字列の認識に要する演算量を削減できる。
【図面の簡単な説明】
【0014】
【図1】一つの実施形態による文字認識装置の概略構成図である。
【図2】処理部の機能を示すブロック図である。
【図3】画像に写った文字列及びその文字列に対して検出された文字区間の一例を示す図である。
【図4】図3に示した文字列に対応する候補文字ラティスの一例を示す図である。
【図5】他の文字列に対する候補文字ラティスの一例を示す図である。
【図6】候補文字ラティス修正処理の一例の動作フローチャートである。
【図7】候補文字ラティス修正処理の他の一例の動作フローチャートである。
【図8】DPマッチングを用いた、最適パスの探索手順の説明図である。
【図9】図3に示した文字列に対して、検出された単語のパスを追加した候補文字・単語ラティスの一例を示す図である。
【図10】文字認識処理の動作フローチャートである。
【発明を実施するための形態】
【0015】
以下、図を参照しつつ、一つの実施形態による、文字認識装置について説明する。この文字認識装置は、紙あるいはディスプレイの画面などの媒体上に表された複数の文字を含む文字列を撮影した画像から、その文字列を認識して電子データ化する。そのために、この文字認識装置は、個々の文字が写っている文字区間に対応する、その文字区間の相対的な位置関係を表すパスの集合である候補文字ラティスを生成する。この文字認識装置は、演算量の削減を図るために、候補文字ラティスに含まれる、一つのパスが他のパスに対して少なくとも一部が重複しているときに、その重複を無くすように何れかのパスを修正することで、単語を検索する際のパスの組み合わせの数を削減する。さらにこの文字認識装置は、単語を検索する際に、パスごとの文字の複数の候補の組合せに対するあいまい検索を行うことで、個々の文字の誤認識により文字列中に含まれる可能性の有る単語が検出されなくなることを防止して、文字列の認識精度の向上を図る。
【0016】
図1は、一つの実施形態による文字認識装置の概略構成図である。文字認識装置1は、画像取得部11と、出力部12と、記憶部13と、記憶媒体アクセス装置14と、処理部15とを有する。さらに文字認識装置1は、複数の操作ボタンといった入力装置と、電子データ化された文字列を表示する液晶ディスプレイなどの表示装置を有してもよい。処理部15は、画像取得部11、出力部12、記憶部13及び記憶媒体アクセス装置14と、例えば、バスを介して接続される。
【0017】
画像取得部11は、例えば、媒体に表された文字列を撮影するデジタルカメラ、あるいはスキャナを有する。そして画像取得部11は、その文字列が写った画像を生成し、その画像を処理部15へ出力する。
【0018】
あるいは、画像取得部11は、文字認識装置1を、デジタルカメラまたはカメラ付き携帯電話などの画像入力装置(図示せず)と接続するための通信インターフェース及びその制御回路を有してもよい。そのような通信インターフェースは、例えば、Universal Serial Bus(ユニバーサル・シリアル・バス、USB)などの周辺機器接続用の通信規格に従ったインターフェースとすることができる。
あるいは画像取得部11は、イーサネット(登録商標)などの通信規格に従った通信ネットワークに接続するための通信インターフェース及びその制御回路を有してもよい。
この場合には、画像取得部11は、画像入力装置または通信ネットワークに接続された他の機器から、文字列が写った画像を取得し、その画像を処理部15へ渡す。
【0019】
出力部12は、例えば、文字認識装置1を他の機器と接続するための通信インターフェース及びその制御回路を有する。そのような通信インターフェースは、USBなどの周辺機器接続用の通信規格、あるいはイーサネット(登録商標)などの通信規格に従ったインターフェースとすることができる。
出力部12は、画像に写った文字列を処理部15が認識することにより生成された、電子データ化された文字列を処理部15から受け取り、その電子データ化された文字列を他の機器へ出力する。なお、画像取得部11と出力部12とは、一体化されていてもよい。
【0020】
記憶部13は、例えば、読み書き可能な半導体メモリと読み出し専用の半導体メモリとを有する。そして記憶部13は、処理部15上で実行されるコンピュータプログラム、及び画像上の文字列を認識するために用いられる各種の情報、例えば、検索対象となる複数の単語が登録された単語辞書、パスごとの候補文字及び候補文字ラティスを記憶する。また記憶部13は、認識対象となる文字列が写った画像を記憶してもよい。
【0021】
記憶媒体アクセス装置14は、例えば、磁気ディスク、半導体メモリカード及び光記憶媒体といった記憶媒体16にアクセスする装置である。記憶媒体アクセス装置14は、例えば、記憶媒体16に記憶された、処理部15上で実行される文字認識用コンピュータプログラムを読み込み、処理部15に渡すか、記憶部13に記憶させる。また記憶媒体アクセス装置14は、処理部15により生成された、電子データ化された文字列を記憶媒体16に書き込んでもよい。
【0022】
処理部15は、1個または複数個のプロセッサ及びその周辺回路を有する。そして処理部15は、複数の文字を含む文字列が写った画像から、その文字列に含まれる各文字を認識し、各文字に対応する文字コードを文字列の先頭から順に並べることで電子データ化された文字列を生成する。
【0023】
図2は、処理部15の機能を示すブロック図である。処理部15は、文字区間検出部21と、候補文字ラティス生成部22と、候補文字抽出部23と、候補文字ラティス修正部24と、単語検索部25と、推定部26とを有する。処理部15が有するこれらの各部は、例えば、処理部15が有するプロセッサ上で実行されるコンピュータプログラムによって実装される機能モジュールである。あるいは、処理部15が有するこれらの各部は、それぞれの機能を実現する回路が集積された集積回路として文字認識装置1に実装されてもよい。
【0024】
文字区間検出部21は、画像上に写った文字列に含まれる複数の文字のそれぞれごとに、その文字が写っていると推定される区間である文字区間を検出する。
【0025】
本実施形態では、紙などの媒体に印刷された文字列のように、白い背景上に文字が黒く表現されているものを撮影した画像において、各画素の値は0〜255の範囲内の値を持ち、濃度が濃いほど、画素値も高いとする。なお、ディスプレイの画面に表示された文字列のように、背景の輝度よりも文字の輝度の方が高い場合には、輝度が高いほど、画素値も高くなるように画像は生成されてもよい。また認識対象である文字列は、いわゆる横書きの文字列であり、画像上で水平方向に沿っているとする。なお、認識対象の文字列が、いわゆる縦書きの文字列である場合には、下記の説明における水平方向と垂直方向とを入れ替えればよい。
【0026】
上記のように、本実施形態では、画像上で文字が写っている画素の値は、文字が写っていない画素の値よりも高い。そのため、文字間の区切りに相当する画素の値の平均値は、文字が写っている画素の値の平均値よりも低くなる。そこで、文字区間検出部21は、画像中の一行の文字列に相当する領域に含まれる垂直方向のラインごとに、画素値の合計を求め、その合計値をその垂直ラインに対応する水平位置における画素値の投影値とする。そして文字区間検出部21は、投影値が所定の閾値以下となる位置を、文字の区切りとする。なお、所定の閾値は、例えば、投影値の合計を水平方向の画素数で割ることにより求めた投影値の平均値に所定の係数を乗じた値に設定される。なお、所定の係数は、1以下の正の値、例えば、0.5である。なお、文字区間検出部21は、特開平2−217978号公報に開示されている技術を用いて文字間の区切りを検出してもよい。また、文字区間検出部21は、画像の各画素を、文字が写っている文字画素と文字が写っていない背景画素とに2値化し、垂直方向のラインごとに文字画素の数を集計し、その文字画素の数を投影値としてもよい。この場合、画素を2値化するための閾値は、例えば、画像全体の画素値の平均値、あるいは、画素値の分布に対して判別分析することにより設定されてもよい。
【0027】
文字区間検出部21は、画像を、水平方向に隣接する二つの文字間の区切りで挟まれた区間のそれぞれを、文字区間とする。文字区間検出部21は、文字区間ごとに一意な識別番号を割り当て、その一意な識別番号とともに、文字区間の左端と右端の水平方向の座標を記憶部13に記憶する。
【0028】
なお、画像上の複数の行にわたって文字列が写っていることもある。そこで、画像上に複数の文字列が写っている可能性がある場合には、文字区間検出部21は、上記の文字間の区切りを検出する前に、行間の区切りを検出してもよい。この場合には、文字区間検出部21は、画像中の水平方向のラインごとに、画素値の合計を求め、その合計値をその水平ラインに対応する垂直位置における画素値の投影値とする。そして文字区間検出部21は、投影値が極小値かつ行区切り検出用の閾値以下となる位置を、行の区切りとする。なお、行区切り検出用の閾値は、例えば、水平方向のラインごとの投影値の合計を垂直方向の画素数で割ることにより求めた投影値の平均値に所定の係数(例えば、0.5)を乗じた値に設定される。文字区間検出部21は、画像を、垂直方向に隣接する二つの行の区切りで挟まれた領域ごとに分割し、その分割された画像を一つの文字列を表す画像とする。そして文字区間検出部21は、個々の文字列を表す画像ごとに、上記のように文字間の区切りを検出することで文字区間を検出する。
【0029】
また、文字列を撮影するカメラと、その文字列との位置関係によっては、文字列の行方向と、画像の水平方向とが一致しないことがある。そこで、文字区間検出部21は、例えば、画像を、所定角度(例えば、5度)ずつ、アフィン変換によって回転し、回転した画像において水平方向のラインごとに投影値を求めてもよい。この場合、文字区間検出部21は、投影値が極小値かつ、所定の閾値以下となるラインの数が最も多いときの回転角の画像を用いて各文字列を検出した後に、文字列ごとに文字区間を検出してもよい。
【0030】
さらに、文字のなかには、偏と旁からなる漢字のように、水平方向に沿って複数の分離した構成要素を持つ文字が含まれる。このような文字が文字列中に含まれていると、文字区間が文字の個々の構成要素ごとに検出されるおそれがある。
【0031】
図3は、画像に写った文字列及びその文字列に対して検出された文字区間の一例を示す図である。図3に示された「運動会の始まり」という文字列300に対して各垂直ラインの投影値を表すグラフ310が、文字列300の下方に示されている。また各点線320は、検出された文字間の区切りを表す。例えば、文字「動」に対して、二つの文字区間331、332が設定されていることが分かる。同様に、文字「の」、「始」及び「り」に対しても、それぞれ二つの文字区間が設定されている。
【0032】
そこで、文字区間検出部21は、検出された全ての文字区間のうち、一つの文字の一部に対応する可能性のある文字区間を抽出する。そのために、文字区間検出部21は、検出された全ての文字区間の水平方向の幅の平均値または最頻値を基準文字幅として算出する。そして文字区間検出部21は、連続する複数の文字区間の組のうち、その組に含まれる各文字区間の水平方向の幅の合計が基準文字幅未満となる組を連結したものも、一つの文字区間とする。
【0033】
候補文字ラティス生成部22は、複数の文字区間のそれぞれごとに設定された、他の文字区間との相対的な位置関係を表すパスの集合である候補文字ラティスを生成する。そのために、候補文字ラティス生成部22は、検出された全ての文字区間について、その文字区間の左端の座標及び右端の座標を比較して画像の左端側から順に並べることで候補文字ラティスを生成する。
【0034】
図4は、図3に示された文字列300に対応する候補文字ラティスの一例を示す図である。候補文字ラティス400は、16個のパスを有する。個々のパスは矢印で表されており、パスの上にそのパスの識別番号、すなわち、そのパスに対応する文字区間の識別番号が示されている。また、個々のパスに対応する文字及び文字の一部の構成要素が、パスの上方または下方に示されている。例えば、パス1は文字「運」に対応する。またパス2、パス3は、それぞれ、文字「動」の偏と旁に対応している。一方、パス2とパス3が統合されたパス20は、文字「動」に対応している。
【0035】
候補文字抽出部23は、個々のパスに対応する文字区間に写っている文字の候補である候補文字を少なくとも一つ抽出する。例えば、候補文字抽出部23は、画像から、個々の文字区間に相当する画像の一部をそれぞれ文字画像として切り出し、その文字画像を2値化する。なお、文字画像を2値化するための閾値は、例えば、その文字画像の平均画素値とすることができる。そして候補文字抽出部23は、2値化された文字画像と、個々の文字の形を表すテンプレートとの間でテンプレートマッチングを実行することにより、文字画像とテンプレート間の認識距離を求める。なお、テンプレートは、例えば、対応する文字のストロークが写っている画素の値が'255'であり、その他の画素の値が'0'である2値画像とすることができる。そして各テンプレートは、予め記憶部13に記憶される。また一つの文字に対して、書体またはサイズが異なる複数のテンプレートが準備されてもよい。認識距離は、例えば、2値化された文字画像とテンプレート間のハミング距離とすることができる。この場合、認識距離が小さいほど、テンプレートに表された文字がその文字画像に写っている可能性が高い。あるいは、候補文字抽出部23は、認識距離の代わりに、文字画像とテンプレート間の相互相関値を求めてもよい。この場合には、総合相関値が高いほど、テンプレートに表された文字がその文字画像に写っている可能性が高い。
【0036】
候補文字抽出部23は、パスごとに、認識距離が小さい方から順に所定数のテンプレートを抽出し、抽出したテンプレートに対応する文字をそのパスの候補文字とする。そして候補文字抽出部23は、抽出した各候補文字に対して、認識距離が短い方から順に順位を付す。なお、所定数は、例えば、1〜5のうちの何れかに設定される。あるいは、候補文字抽出部23は、認識距離が所定距離以下となるテンプレートを全て抽出し、抽出したテンプレートに対応する文字をそのパスの候補文字としてもよい。所定距離は、例えば、テンプレート中に含まれる画素の7割〜8割が文字画像の画素と一致したときの認識距離とすることができる。この場合、候補文字抽出部23は、認識距離が所定距離以下となるテンプレートがないパスについては、認識距離が最小となるテンプレートに対応する文字をそのパスの候補文字とすることが好ましい。
なお、候補文字抽出部23は、画像上に写っている文字を認識する他の公知技術を用いて、パスごとの候補文字を求めてもよい。但しこの場合も、候補文字ごとに、そのパスに対応する文字区間に写っている可能性が高い方から順に順位が付されることが好ましい。
【0037】
再度図4を参照すると、パスごとに、3個の候補文字が示されている。例えば、パス1に対して、'運'、'連'、'達'という3個の候補文字が示されている。
候補文字抽出部23は、パスごとに抽出された候補文字を表すコードを、その候補文字に対応する順位とともに、そのパスと関連付けて記憶部13に記憶する。
【0038】
再度図4を参照すると、候補文字ラティス400には、文字列300全体に対応する一列に連続したパスの配列が複数存在する。そして、少なくとも一部が重なっているパス同士は排他的であり、同一のパスの配列には含まれない。例えば、パス2及びパス3が文字列300全体に対応するパスの配列の一部として選択されると、パス20はそのパスの配列には含まれない。逆に、パス20が文字列300全体に対応するパスの配列の一部として選択されると、パス2及びパス3はそのパスの配列には含まれない。
【0039】
図5は、他の文字列に対する候補文字ラティスの一例を示す図である。図5に示す例では、「認知」という文字列500に対して、x2〜x6という5点の文字間の区切りが検出されている。またx1、x7は、それぞれ、文字列500の左端と右端に対応する。この例では、文字「認」、「知」それぞれの偏と旁の境界も文字間の区切りとして検出されている。そのため、文字列500には二文字しか含まれていないにもかかわらず、文字列500に対応する候補文字ラティス510は、8個のパスA1〜A8を含んでいる。したがって、排他的なパスの組(例えば、パスA1、A4とパスA6、パスA6とパスA7など)も多数存在する。その結果として、文字列500全体に対応する、一列に連続したパスの配列も多数存在する。
【0040】
図4及び図5に示されるように、排他的なパスの組が増えると、文字列全体に対応するパスの配列の数も増加する。そして、文字列に含まれる単語の検索に失敗することを防止するためには、パスの配列ごとに単語が検索されることになるので、パスの配列の数が増えるほど、単語検索に要する演算量も増大する。
【0041】
そこで、候補文字ラティス修正部24は、画像に写った文字列全体に対応する一列に連続するパスの配列の数を削減するよう、排他的なパスの組に含まれるパスを修正することにより、候補文字ラティスを修正する。本実施形態では、候補文字ラティス修正部24は、以下の条件を満たすように候補文字ラティスを修正する。
(1)互いに排他的でない複数のパス、すなわち、文字列全体に対応する一列に連続するパスの同一の配列に含まれることが可能なパスの組については、候補文字ラティス修正部24は、それら複数のパスの順序を維持し、かつ、排他的でない状態を保つ。
(2)互いに排他的な複数のパスについては、候補文字ラティス修正部24は、長い方のパスを短い方のパスと一致させるよう修正した上で統合する。ただし、統合することによって(1)の条件が満たされなくなる場合には、候補文字ラティス修正部24は、長い方のパスを、そのパスに対して排他的なパスに隣接するように修正する。
(3)候補文字ラティス修正部24は、長い方のパスに対して排他的な相対的に短いパスが複数存在する場合には、長い方のパスをその複数の相対的に短いパスの何れと統合してもよい。あるいは、候補文字ラティス修正部24は、長い方のパスを複製して、複数の相対的に短いパスのそれぞれと統合してもよい。
(4)候補文字ラティス修正部24は、複数のパスを統合する際、各パスに対応する文字区間及び候補文字を、統合されたパスに対応付ける。
【0042】
図6は、候補文字ラティス修正部24により実行される、上記の各条件を満たしつつ、候補文字ラティスを修正するための候補文字ラティス修正処理の一例の動作フローチャートである。また以下の説明では、理解を容易にするために、適宜図5に示された候補文字ラティス500を参照する。
【0043】
候補文字ラティス修正部24は、複数のパスのうち、自身に対応する文字区間よりも短い文字区間に対応する他のパスと重ならないパスを確定グループαに分類する(ステップS101)。候補文字ラティス修正部24は、確定グループαに分類されなかったパスを未確定グループβに分類する(ステップS102)。
【0044】
再度図5を参照すると、候補文字ラティス500に含まれる各パスには、それぞれのパスに対応する文字区間が短い方から順に識別番号A1〜A8が付されている。そしてパスA1〜パスA4は、自身の文字区間よりも短い文字区間に対応する他のパスと重ならない。そのため、パスA1〜A4は確定グループαに分類される。一方、パスA5〜A8は、自身の文字区間よりも短い文字区間に対応する他のパスと少なくとも一部が重なっている。例えば、パスA5の文字区間は、パスA2及びA3の文字区間と重なっており、パスA6の文字区間は、パスA1及びA4の文字区間と重なっている。そのため、パスA5〜A8は未確定グループβに分類される。
【0045】
次に、候補文字ラティス修正部24は、確定グループα内のパスを、文字列の先頭から終端へ向かう座標順にソートして修正パス列P={p[1],p[2],....}を生成する。さらに候補文字ラティス修正部24は、修正パス列P内の各修正パスp[k]に対応する、すなわち、修正パスp[k]に対して排他的なパスの集合である他の候補パス群{Qk}を空集合として初期化する(ステップS103)。例えば、候補文字ラティス500について、修正パス列Pは、下記の表1に示されるように、パスA1〜パスA4を、A1、A4、A3、A2の順に含む。
【表1】

なお、表1には、各修正パスp[k]について、元の候補文字ラティスにおけるパスの識別番号、パスに対応する文字区間(すなわち、その文字区間の左端及び右端の座標)、そのパスについて抽出された候補文字及び他の候補パス群が対応付けられる。例えば、修正パスp[1]には、識別番号A1、パスA1の文字区間[x1,x2]、候補文字「言」が対応付けられている。なお、候補文字が複数ある場合には、すべての候補文字が対応付けられる。例えば、パスA1に対して3個の候補文字「言」、「吉」、「忘」が抽出されている場合、これらの候補文字すべてが修正パスp[1]に対応付けられる。
また、この時点では、修正パス列Pに含まれる修正パスp[k]と未確定グループに属するパスとの位置関係は調べられていないので、各修正パスについての他の候補パス群は空集合となっている。
【0046】
候補文字ラティス修正部24は、未確定グループβに属するパスの何れかを注目パスAとして選択する(ステップS104)。なお、候補文字ラティス修正部24は、例えば、未確定グループβに属するパスの中で対応する文字区間が最も短いパスから順に注目パスAとして選択する。あるいは、候補文字ラティス修正部24は、例えば、未確定グループβに属するパスの中で最も文字列の先頭に近いパスから順に注目パスAとして選択してもよい。そして候補文字ラティス修正部24は、修正パス列Pに含まれる修正パスp[k]のうち、注目パスAと少なくとも一部が重なる修正パスp[j]の何れかを選択する(ステップS105)。候補文字ラティス修正部24は、修正パスp[j]に対応する他の候補パスのうちで注目パスAと重ならないパスがあるか否か判定する(ステップS106)。修正パスp[j]に対応する他の候補パスが無いか、または、他の候補パスのうちで注目パスAと重ならないパスがなければ(ステップS106−No)、候補文字ラティス修正部24は、p[j]に対応する他の候補パス群{Qk}にパスAを追加する(ステップS107)。
【0047】
例えば、注目パスAがパスA5であれば、修正パスp[3]、すなわちパスA3または修正パスp[4]、すなわちパスA2が選択されることになる。例えば、修正パスp[3]が選択されたとすると、この時点では、修正パスp[3]に対応する他の候補パスは存在しない。したがって、修正パスp[3]の他の候補パス群にパスA5が追加される。
【0048】
ステップS107の後、あるいは、修正パスp[j]に対応する他の候補パスがあり、かつ、他の候補パスのうちで注目パスAと重ならないパスがある場合(ステップS106−Yes)、候補文字ラティス修正部24は注目パスAと重なる他の修正パスが有るか否か判定する(ステップS108)。注目パスAと重なる他の修正パスが有れば(ステップS108−Yes)、候補文字ラティス修正部24は、ステップS105以降の処理を繰り返す。
【0049】
例えば、注目パスとしてのパスA5に対して最初に修正パスp[3]が選択されていると、候補文字ラティス修正部24は、次に修正パスp[4]、すなわち、パスA2を選択する。この時点では、修正パスp[4]に対応する他の候補パスは存在しない。したがって、修正パスp[4]の他の候補パス群にパスA5が追加される。
【0050】
一方、注目パスAと重なる他の修正パスがなければ(ステップS108−No)、候補文字ラティス修正部24は、注目パスAは何れかの修正パスp[j]の他の候補パス群{Qj}に追加されたか否か判定する(ステップS109)。注目パスAが何れかの修正パスp[j]の他の候補パス群{Qj}に追加されていれば(ステップS109−Yes)、候補文字ラティス修正部24は、未確定グループβ内に未注目のパスが残っているか否か判定する(ステップS111)。そして未注目のパスが残っていれば(ステップS111−Yes)、候補文字ラティス修正部24は、ステップS104以降の処理を繰り返す。
【0051】
例えば、パスA5の後、パスA6、A7が順次注目パスとして選択され、ステップS104〜S111の処理が行われたとする。この時点での修正パス列Pの対応表は以下のようになる。
【表2】

図5及び表2に示されるように、パスA6、パスA7は、修正パスp[1]、p[2]に対して、他の候補パスが無いか、あるいは他の候補パス群内にパスA6、A7と重ならないパスは無いので、修正パスp[1]、p[2]の他の候補群{Q1}、{Q2}にそれぞれ追加されている。
【0052】
一方、ステップS109にて、注目パスAが何れの修正パスp[j]の他の候補パス群{Qj}にも追加されていなければ(ステップS109−No)、候補文字ラティス修正部24は、修正パス列Pに対して、パスAと重なる複数の修正パスの間に、新たな修正パスとしてパスAを追加する(ステップS110)。
【0053】
例えば、図5及び表2を参照すると、最後の未注目パスであるパスA8が注目パスに設定されたとすると、パスA8は修正パスp[2]、すなわちパスA4及び修正パスp[3]、すなわちパスA3と重なっている。しかし、修正パスp[2]の他の候補群{Q2}には、パスA8と重ならないパスA7が含まれている。同様に、修正パスp[3]の他の候補群{Q3}にも、パスA8と重ならないパスA5が含まれている。そのため、パスA8は、何れの修正パスp[j]の他の候補群にも追加されない。そして、パスA8の文字区間の途中に、修正パスp[2]に対応する文字区間と修正パスp[3]に対応する文字区間の境界が位置している。そのため、パスA8は、修正パスp[2]と修正パスp[3]の間に追加される。
【0054】
ステップS110の後、候補文字ラティス修正部24は、未確定グループβ内に未注目のパスが残っているか否か判定する(ステップS111)。そして未注目のパスが残っていれば(ステップS111−Yes)、候補文字ラティス修正部24は、ステップS104以降の処理を繰り返す。
一方、未注目のパスが残っていなければ(ステップS111−No)、候補文字ラティス修正部24は、他の候補パス群{Qk}についての候補文字を全て修正パスp[k]の候補文字として追加する(ステップS112)。そして修正パス列Pが、修正候補文字ラティスとなる。この場合、他の候補パス群{Qk}が空集合でない修正パスp[k]は、その修正パスp[k]に対応する確定グループα内のパス及び他の候補パス群{Qk}に含まれるパスを置換するものとなる。
その後、候補文字ラティス修正部24は、候補文字ラティス修正処理を終了する。
【0055】
表3は、最終的に作成された修正候補文字ラティスのパス及び候補文字の一覧である。
【表3】

修正候補文字ラティスの各パスには、そのパスに関連付けられた元の候補文字ラティスのパスの識別番号及びそのパスの候補文字がその順位とともに関連付けられる。表3に示されるように、修正候補文字ラティスに含まれる統合されたパスについての候補文字の数は元の個々のパスについての候補文字の数よりも増えるものの、修正候補文字ラティスは互いに排他的なパスの組を含んでいない。そのため、修正候補文字ラティスは、元の候補文字ラティスよりも簡単な構造を有している。
【0056】
図7は、候補文字ラティス修正部24により実行される、上記の各条件を満たしつつ、候補文字ラティスを修正するための候補文字ラティス修正処理の他の一例の動作フローチャートである。また以下の説明においても、理解を容易にするために、適宜図5に示された候補文字ラティス500を参照する。
【0057】
候補文字ラティス修正部24は、候補文字ラティスに含まれるパスの境界を先頭から順に全て抽出する(ステップS201)。そして候補文字ラティス修正部24は、(パスの境界の数-1)個の修正パスを含むパス記憶領域を記憶部13に設定する(ステップS202)。
例えば、候補文字ラティス500では、先頭から順にx1〜x7の7個の境界があるので、下記の表4のように、6個の修正パスを含むパス記憶領域が設定される。
【表4】

表4において、一番上の行は修正パスの先頭からの順序を表す。二番目の行は各修正パスに対応する区間の左端と右端の水平座標を表す。3番目の行は、修正パスに割り当てられた元の候補文字ラティスのパスの識別番号を表す。そして一番下の行は、修正パスに割り当てられたパスについての候補文字の集合を表す。この時点では、何れの修正パスにもパスは割り当てられていないので、下の2行は空欄となっている。
【0058】
候補文字ラティス修正部24は、各パスを、そのパスに対応する文字区間と修正パスの区間との重なり幅が最も大きい修正パスに割り当てる(ステップS203)。
例えば、x1=10、x2=25、x3=30、x4=40とする。この場合、パスA6は、修正パスM1[x1,x2]、M2[x2,x3]、M3[x3,x4]と重なっているが、このうち修正パスM1との重なり幅が最も大きい。そこで候補文字ラティス修正部24は、パスA6を修正パスM1に割り当てる。
表5は、全てのパスを何れかの修正パスに割り当てたときのパス記憶領域を表す。
【表5】

なお、表5では、簡単化のために、各パスについて一つの候補文字だけが示されている。
【0059】
候補文字ラティス修正部24は、全てのパスが修正パスの何れかに割り当てられた後、1以上のパスが割り当てられた修正パスを先頭から順に抽出し、修正候補文字ラティスのパスとする(ステップS204)。そして候補文字ラティス修正部24は、抽出された修正パスに割り当てられたパスの候補文字を、修正候補文字ラティスのパスの候補文字とする(ステップS205)。この例でも、複数のパスが割り当てられた修正パスは、それら複数のパスを統合し、かつそれら複数のパスを置換するものとなる。
その後、候補文字ラティス修正部24は、候補文字ラティス修正処理を終了する。
【0060】
例えば、表5に示されるように、修正パスM1、M3、M5、M6には1以上のパスが割り当てられている。そこで、修正パスM1、M3、M5、M6が修正候補文字ラティスのパスとして抽出される。表6は、最終的に得られる修正候補文字ラティスのパス及び候補文字の一覧である。
【表6】

【0061】
なお、変形例によれば、ステップS203において、候補文字ラティス修正部24は、各パスを、そのパスと少なくとも一部が重なる全ての修正パスに割り当ててもよい。この場合、例えば、パスA6は、修正パスM1〜M3にそれぞれ割り当てられる。表7は、この変形例により全てのパスが何れかの修正パスに割り当てられたときのパス記憶領域を表す。
【表7】

【0062】
上記のように、何れの候補文字ラティス修正処理が実行されても、修正候補文字ラティスは、排他的なパスを含まないので、文字列全体に対応する一列に連続したパスの配列は一通りとなる。
【0063】
単語検索部25は、記憶部13に記憶された単語辞書に登録された複数の単語のうち、修正候補文字ラティスの少なくとも一部のパスの配列に含まれる候補文字の組み合わせと少なくとも一部が一致する単語を検出する。
本実施形態では、単語検索部25は、単語辞書中に登録されている単語を検索するために、動的計画法(Dynamic Programming)によるマッチング手法(以下、DPマッチングと呼ぶ)を利用する。
【0064】
図8は、本実施形態により利用されるDPマッチングを用いた、最適パスの探索手順の説明図である。図8において、検索対象単語に含まれる文字数に1加算した数を縦軸の格子数、修正候補文字ラティスの少なくとも一部に含まれるパスの数に1加算した数を横軸の格子数として、碁盤目状に格子点が配置されている。この例では、検索対象単語810は「運動会」であり、3個の文字を含む。そして各文字は、先頭から順に、上から順に一つの行の格子点に対応付けられている。一方、修正候補文字ラティスのパス数は4個であり、先頭のパスから終端のパスまで左側から順に一つの列の格子点に対応付けられている。また各パスには、1以上の候補文字811〜814が対応付けられている。例えば、先頭のパスには、3個の候補文字「運」、「連」、「達」が対応付けられている。各パスの候補文字の中から選択した一つの文字を先頭側のパスから順に連結して得られる文字列を、ここでは入力文字列と呼ぶ。
【0065】
単語検索部25は、左上端の格子点から右下端の格子点へ向かう経路のうち最適な経路を探索する。評価値として、例えば、検索対象単語と入力文字列間の編集距離、あるいは検索対象単語と入力文字列間で一致する文字の個数が用いられる。評価値として編集距離が用いられる場合、単語検索部25は、評価値が最小となる経路を最短経路とする。この場合、左上端の格子点が最初の注目格子点となる。そして単語検索部25は、注目格子点の右側、下側及び右下側に隣接する格子点の何れかを次の注目格子点とする。その際、現在の注目格子点から右下に隣接する注目格子点へ遷移した場合に、次の注目格子点が属する行に対応する検索対象単語の文字(例えば、上から3番目の行であれば、「動」)と、注目格子点が属する列に対応する候補文字の何れかが一致するか否か判定する。そして一致すれば、編集距離に加算されるポイントは'0'となる。しかし、一致しなければ、編集距離に加算されるポイントは'+2'となる。なお、両者が一致しないことは、検索対象単語の次の注目格子点に対応する文字が置換されたことに相当する。また、文字の置換に相当する加算ポイントは、'+1'に設定されてもよい。
【0066】
また、現在の注目格子点に対して下側に隣接する格子点が次の注目格子点となる場合、編集距離に加算されるポイントは'+1'となる。なお、この下側への遷移は、検索対象単語中の文字の欠落に相当する。さらに、現在の注目格子点に対して右側に隣接する格子点が次の注目格子点となる場合も、編集距離に加算されるポイントは'+1'となる。なお、この右側への遷移は、検索対象単語に対する文字の挿入に相当する。
図8に示した例では、矢印で示される経路820が最短経路となり、検索対象単語に対応する入力文字列として「運動☆会」が選択される。なお、☆マークは、挿入された文字を表し、ここでは、右から2番目のパスに対応する候補文字「カ」、「力」、「刀」の何れかである。
【0067】
単語検索部25は、検索対象単語と入力文字列間の文字の再現率及び文字の適合率が所定の閾値を超えた場合、修正候補文字ラティスが表す文字列中のその入力文字列に対応する位置において検索対象単語が検出されたと判定する。
なお、文字の再現率及び文字の適合率は、例えば、次式で表される。
文字の再現率=(入力文字列と検索対象単語間で一致する文字数)
/検索対象単語に含まれる文字数
文字の適合率=(入力文字列と検索対象単語間で一致する文字数)
/入力文字列に含まれる文字数
また、所定の閾値は、例えば、0.6〜0.8の範囲内の何れかの値に設定される。
【0068】
あるいは、単語検索部25は、最短経路についての編集距離が所定の値以下である場合、その最短経路に対応する入力文字列に対応する位置において検索対象単語が抽出されたと判定してもよい。この場合、所定の値は、例えば、検索対象単語に含まれる文字数に、0.3〜0.4の範囲内の何れかの値を乗じた値とすることができる。
【0069】
また、単語検索部25は、他のあいまい検索手法を用いて、修正候補文字ラティスに含まれるパスの少なくとも一部の配列に含まれる候補文字の組み合わせと少なくとも一部が一致する単語を検索してもよい。単語検索部25は、このようなあいまい検索手法として、例えば、特開2010-225137号公報に開示されている方法を用いることができる。または、単語検索部25は、喜田、「誤りを許したVLDCパタン照合アルゴリズム」、電子情報通信学会技術研究報告、COMP、コンピューテーション、103(622)、p61-68、2004年に記載された方法を用いることができる。
【0070】
単語検索部25は、単語辞書に登録された全ての単語に対して上述した処理を行って、文字列に含まれる単語を検索する。したがって、例えば、単語辞書に非常に多数の単語が登録されていると、例えば、10万個の単語が登録されていると、その全ての単語に対して上述した処理が行われることになる。
しかし、上記のように、単語検索部25は、個々の単語について、排他的なパスを含まない修正候補文字ラティスに対してあいまい検索を行うので、パスの組み合わせが複数存在する元の候補文字ラティスに対してあいまい検索を行うよりも大幅に演算量を削減できる。そのため、単語辞書に登録されている単語の数が増えるほど、演算量の削減効果も大きくなる。また単語検索部25は、文字の置換、挿入及び欠落の何れも許容して単語の検索を行うので、個々のパスに対する文字の誤認識が生じていたり、あるいは、検出された文字区間が誤っている場合でも、単語検索部25は、文字列に含まれる単語を正しく検索できる。
【0071】
単語検索部25は、候補文字ラティスに対して、検出された単語に対応するパスである単語パスを追加する。そして得られたラティスを、以下では便宜上、候補文字・単語ラティスと呼ぶ。なお、単語検索部25は、単語を検出する際に、DPマッチングの対象としたパスを知っているので、そのパスの位置に基づいて、単語パスを追加する位置を特定できる。さらに、単語検索部25は、検出された単語パスのそれぞれについて、対応する単語に含まれる各文字と一致する候補文字の順位及びその候補文字に対応する元の候補文字ラティスのパスの識別番号をその単語パスと関連付ける。
【0072】
図9は、図3に示した文字列「運動会の始まり」に対して、検出された単語のパスを追加した候補文字・単語ラティスの一例を示す図である。図9に示された候補文字・単語ラティス900において、矢印で表されるパスのうち、パス1〜23が文字ごとのパスであり、パス31〜37が追加された単語パスである。
【0073】
推定部26は、候補文字・単語ラティスに基づいて、画像上に写った文字列を推定する。そのために、推定部26は、候補文字・単語ラティスに含まれる単語パスごとに、その単語パスに対応する単語の評価値を、例えば次式に従って算出する。
単語評価値={Σ(1-α(Mi-1))}n
ここで、Miは、単語検索部25により検出された単語における先頭からi番目の文字と一致すると判定された候補文字の順位を表す。ただし、i番目の文字と一致すると判定された候補文字が無かった場合には、Miは候補文字抽出部23が個々のパスについて抽出する候補文字の最大個数に1を加算した値に設定される。αは係数であり、Miの値が大きいほど(1-α(Mi-1))が0に近づくように、例えば、候補文字抽出部23が個々のパスについて抽出する候補文字の最大個数の逆数以下の正の値、例えば、0.1に設定される。したがって、単語パスに対応する単語に含まれる個々の文字と一致する候補文字の順位の合計が小さいほど、単語評価値は高くなる。またnは補正係数であり、例えば、1以上の値に設定される。特に、単語に含まれる文字数が増えるほど単語評価値も高くなるようにするためには、補正係数nは、1よりも大きい値に設定されることが好ましく、例えば、2に設定される。このように補正係数を設定することで、文字数が多い単語ほど、文字列に含まれる単語であると推定され易くなる。
【0074】
再度図9を参照すると、単語パス31に対応する単語「運動会」について、M1=M2=1、M3=2である。そのため、α=0.1、n=2とすれば、単語評価値は8.41となる。なお、図9において、単語パス31〜37が表す単語と並んで表記された数値がその単語についての単語評価値である。
【0075】
また、推定部26は、単語パスでない、一つの文字を表すパスについての単語評価値を定数βに設定する。定数βは、例えば、0より大きく、2文字を含む単語についての単語評価値が取りうる最大値よりも小さい値、例えば、0.5に設定される。
【0076】
推定部26は、候補文字・単語ラティスにおいて、文字列全体に対応する、一列に連続した単語パス及びパスの配列のそれぞれについて、単語評価値の総和を、その配列に対する連結パス評価値として求める。そして推定部26は、連結パス評価値が最大値となる配列に含まれる単語パス及びパスの順序に従って整列されたその単語パス及びパスに対応する単語と文字の列を、画像上に写っている文字列と推定する。なお、図9におけるパス5、6とパス21のように、単語評価値の和が等しい排他的な複数のパスが存在する場合、推定部26は、候補文字抽出部23により求められた認識距離の和が小さい方のパスを配列に含めるように選択する。また、単語評価値が最大となる配列に含まれるパスに対して複数の候補文字が有る場合には、推定部26は、順位が最も高い候補文字を選択する。
図9の例では、パス31→パス21→パス34の順序に従って選択された配列の連結パス評価値が最大となるので、推定部26は、それらのパスに対応する単語及び候補文字を並べた文字列「運動会の始まり」を、画像上に写っている文字列として推定する。
【0077】
図10は、文字認識処理の動作フローチャートである。処理部15は、画像を受け取る度に、この文字認識処理を実行する。
文字区間検出部21は、画像上に写った文字列から、個々の文字のそれぞれごとに、その文字が写っていると推定される文字区間を検出する(ステップS301)。さらに文字区間検出部21は、1文字に対応する可能性の有る連続した2以上の文字区間を連結した区間も文字区間として検出する(ステップS302)。その後、候補文字ラティス生成部22は複数の文字区間のそれぞれごとに設定された、他の文字区間との相対的な位置関係を表すパスの集合である候補文字ラティスを生成する(ステップS303)。
また候補文字抽出部23は、パスごとに候補文字を抽出する(ステップS304)。
【0078】
その後、候補文字ラティス修正部24は、互いに排他的なパスを統合するか、あるいは排他的なパスの一方の位置を修正することで修正候補文字ラティスを生成する(ステップS305)。具体的には、候補文字ラティス修正部24は、第1のパスと、第1のパスと少なくとも一部が重なっている2以上の連続したパスのうちの第2のパスとを、第1及び第2のパスの候補文字を含み、かつ第2のパスと同一の文字区間に対応する第3のパスで置換する。あるいは、候補文字ラティス修正部24は、第1のパスを、その連続したパスの間に挿入されるように修正する。
【0079】
その後、単語検索部25は、単語辞書に登録されている複数の単語のうち、修正候補文字ラティスにおいて連続する2以上のパスのそれぞれに含まれる候補文字の組み合わせと少なくとも一部が一致する単語を検出する(ステップS306)。また、単語検索部25は、検出された単語に相当する単語パスを候補文字ラティスに追加して候補文字・単語ラティスを生成する(ステップS307)。
推定部26は、各パスについて求めた単語評価値の総和が最大となるパスの配列に相当する文字列を画像上に写っている文字列と推定する(ステップS308)。そして処理部15は、推定された文字列に含まれる各文字のコードを、推定された文字列の順序に従って並べることにより、画像上に写った文字列を電子データ化する。処理部15は、文字列を表す電子データを出力部12を介して他の機器へ出力する。あるいは、処理部15は、文字列を表す電子データを記憶部13に記憶する。その後、処理部15は、文字認識処理を終了する。なお、処理部15は、ステップS303とステップS304の処理の順序を入れ替えてもよい。
【0080】
以上に説明してきたように、この文字認識装置は、文字列中に含まれている単語を検索する前に、候補文字ラティスの構造を修正して互いに排他的なパスの組を無くすことで、その文字列を表すパスの配列の数を削減している。そのため、この文字認識装置は、単語検索の際の演算量を削減できるので、文字認識処理全体としての演算量も削減できる。さらにこの文字認識装置は、単語中の文字の置換、欠落または挿入を許容したあいまい検索手法により、文字列に含まれている可能性がある単語を検索する。そのため、この文字認識装置は、画像上の文字列に含まれる個々の文字の認識結果に誤りがあっても、文字列中に含まれる単語を検出できるので、その文字列を正確に認識できる。
【0081】
なお、本発明は上記の実施形態に限られるものではない。例えば、推定部は、単語パスに対応する単語に含まれるそれぞれの文字と一致する候補文字についての認識距離の平均値が小さいほど、単語評価値を高くしてもよい。
また、文字区間検出部は、投影値に対する閾値を変更して文字の区切りを検出することによって、複数の文字区間を検出してもよい。例えば、文字区間検出部は、先ず、上記の実施形態と同様の閾値を用いて文字の区切りを検出することで、複数の文字区間を検出する。その後、文字区間検出部は、閾値をより低い値、例えば、元の閾値を1.2〜1.5で割った値に修正した後、再度各水平位置の投影値と修正後の閾値を比較して、修正後の閾値以下の投影値を持つ水平位置を文字の区切りとして再検出する。そして文字区間検出部は、再検出された文字の区切りで挟まれた区間を文字区間とする。これにより、文字の構成要素同士が近接する文字についても、その文字全体を含む文字区間が検出され易くなる。
【0082】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【0083】
1 文字認識装置
11 画像取得部
12 出力部
13 記憶部
14 記憶媒体アクセス装置
15 処理部
16 記憶媒体
21 文字区間検出部
22 候補文字ラティス生成部
23 候補文字抽出部
24 候補文字ラティス修正部
25 単語検索部
26 推定部

【特許請求の範囲】
【請求項1】
媒体上に表された複数の文字を含む文字列を撮影した画像から、前記複数の文字のそれぞれごとに、当該文字が写っていると推定される前記画像上の文字区間を検出し、
複数の前記文字区間のそれぞれごとに設定された、他の文字区間との相対的な位置関係を表すパスの集合である候補文字ラティスを求め、
複数の前記パスのそれぞれについて、当該パスに対応する前記文字区間に写っている文字の候補である候補文字を少なくとも一つ求め、
前記候補文字ラティスに含まれる複数の前記パスのうち、第1のパスと、前記第1のパスと少なくとも一部が重なっている2以上の連続したパスのうちの第2のパスとを、当該第1のパスの候補文字及び当該第2のパスの候補文字を含み、かつ、当該第2のパスと同一の文字区間に対応する第3のパスで置換するか、あるいは前記第1のパスが前記2以上の連続したパスの間に挿入されるように前記候補文字ラティスを修正し、
単語辞書に登録された複数の単語のうち、前記修正された候補文字ラティスにおける連続する2以上のパスのそれぞれに含まれる候補文字の組み合わせと少なくとも一部が一致する単語を前記文字列に含まれる可能性のある単語として検出し、当該検出された単語の前記文字列中の位置を表す単語パスを前記候補文字ラティスに追加した候補文字及び単語ラティスを求め、
前記候補文字及び単語ラティスにおいて、前記単語パスごとに、当該単語パスに対応する単語が前記文字列に含まれる確からしさを表す評価値を求め、
前記候補文字及び単語ラティスに含まれる前記単語パス及び前記パスの中から選択した前記文字列全体に対応する一列に連続した前記単語パス及び前記パスの配列ごとに、前記評価値の合計値を求め、当該合計値が最も高い配列に含まれる前記単語パス及び前記パスの順序に従って整列された当該単語パス及び当該パスに対応する単語と候補文字の組み合わせを前記文字列として推定する、
ことをコンピュータに実行させる文字認識用コンピュータプログラム。
【請求項2】
前記候補文字ラティスを修正することは、前記2以上の連続するパスのうち、前記第1のパスに対応する前記文字区間と重なる幅が最大となる文字区間に対応するパスを前記2のパスとする、請求項1に記載の文字認識用コンピュータプログラム。
【請求項3】
前記文字区間を求めることは、連続する2以上の前記文字区間のうち、当該2以上の文字区間を連結することにより得られる修正区間の幅が一つの文字の幅に相当する場合に、当該修正区間を文字区間として追加することを含む、請求項1または2に記載の文字認識用コンピュータプログラム。
【請求項4】
前記候補文字を求めることは、複数の前記パスの少なくとも一つについて複数の候補文字を求めるとともに、当該パスについて求められた複数の候補文字のそれぞれに対して、当該パスに対応する前記文字区間に写っている確からしさが高い方から順に順位を設定し、
前記評価値を求めることは、前記単語パスに対応する単語に含まれる文字と一致する前記候補文字の順位の合計が小さいほど前記評価値を高くする、請求項1〜3の何れか一項に記載の文字認識用コンピュータプログラム。
【請求項5】
前記評価値を求めることは、前記単語パスに対応する単語に含まれる文字の数が多いほど前記評価値を高くする、請求項1〜4の何れか一項に記載の文字認識用コンピュータプログラム。
【請求項6】
媒体上に表された複数の文字を含む文字列を撮影した画像を取得する画像取得部と、
複数の単語を登録した単語辞書を記憶する記憶部と、
前記画像から、前記複数の文字のそれぞれごとに、当該文字が写っていると推定される前記画像上の文字区間を検出する文字区間検出部と、
複数の前記文字区間のそれぞれごとに設定された、他の文字区間との相対的な位置関係を表すパスの集合である候補文字ラティスを求める候補文字ラティス生成部と、
複数の前記パスのそれぞれについて、当該パスに対応する前記文字区間に写っている文字の候補である候補文字を少なくとも一つ求める候補文字抽出部と、
前記候補文字ラティスに含まれる複数の前記パスのうち、第1のパスと、前記第1のパスと少なくとも一部が重なっている2以上の連続したパスのうちの第2のパスとを、当該第1のパスの候補文字及び当該第2のパスの候補文字を含み、かつ、当該第2のパスと同一の文字区間に対応する第3のパスで置換するか、あるいは前記第1のパスが前記2以上の連続したパスの間に挿入されるように前記候補文字ラティスを修正する候補文字ラティス修正部と、
単語辞書に登録された複数の単語のうち、前記修正された候補文字ラティスにおける連続する2以上のパスのそれぞれに含まれる候補文字の組み合わせと少なくとも一部が一致する単語を前記文字列に含まれる可能性のある単語として検出し、当該検出された単語の前記文字列中の位置を表す単語パスを前記候補文字ラティスに追加した候補文字及び単語ラティスを求める単語検索部と、
前記候補文字及び単語ラティスにおいて、前記単語パスごとに、当該単語パスに対応する単語が前記文字列に含まれる確からしさを表す評価値を求め、前記候補文字及び単語ラティスに含まれる前記単語パス及び前記パスの中から選択した前記文字列全体に対応する一列に連続した前記単語パス及び前記パスの配列ごとに前記評価値の合計値を求め、当該合計値が最も高い配列に含まれる前記単語パス及び前記パスの順序に従って整列された当該単語パス及び当該パスに対応する単語と候補文字の組み合わせを前記文字列として推定する推定部と、
を有する文字認識装置。
【請求項7】
媒体上に表された複数の文字を含む文字列を撮影した画像を取得し、
前記画像から、前記複数の文字のそれぞれごとに、当該文字が写っていると推定される前記画像上の文字区間を検出し、
複数の前記文字区間のそれぞれごとに設定された、他の文字区間との相対的な位置関係を表すパスの集合である候補文字ラティスを求め、
複数の前記パスのそれぞれについて、当該パスに対応する前記文字区間に写っている文字の候補である候補文字を少なくとも一つ求め、
前記候補文字ラティスに含まれる複数の前記パスのうち、第1のパスと、前記第1のパスと少なくとも一部が重なっている2以上の連続したパスのうちの第2のパスとを、当該第1のパスの候補文字及び当該第2のパスの候補文字を含み、かつ、当該第2のパスと同一の文字区間に対応する第3のパスで置換するか、あるいは前記第1のパスが前記2以上の連続したパスの間に挿入されるように前記候補文字ラティスを修正し、
単語辞書に登録された複数の単語のうち、前記修正された候補文字ラティスにおける連続する2以上のパスのそれぞれに含まれる候補文字の組み合わせと少なくとも一部が一致する単語を前記文字列に含まれる可能性のある単語として検出し、当該検出された単語の前記文字列中の位置を表す単語パスを前記候補文字ラティスに追加した候補文字及び単語ラティスを求め、
前記候補文字及び単語ラティスにおいて、前記単語パスごとに、当該単語パスに対応する単語が前記文字列に含まれる確からしさを表す評価値を求め、
前記候補文字及び単語ラティスに含まれる前記単語パス及び前記パスの中から選択した前記文字列全体に対応する一列に連続した前記単語パス及び前記パスの配列ごとに前記評価値の合計値を求め、当該合計値が最も高い配列に含まれる前記単語パス及び前記パスの順序に従って整列された当該単語パス及び当該パスに対応する単語と候補文字の組み合わせを前記文字列として推定する、
ことを含む方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate