(57)【要約】【課題】部分的に品質の低い複数の撮影画像に含まれる文字列の文字認識を行う情報処理装置を提供する。【解決手段】情報処理装置１００は、文字列を撮影した第１の画像から抽出した第１の文字画素塊と、第１の文字画素塊から分類される第１の文字要素と、から第１の認識グラフを生成する。情報処理装置１００は、文字列を撮影した第２の画像から抽出した第２の文字画素塊と、第２の文字画素塊から分類される第２の文字要素と、から第２の認識グラフを生成する。情報処理装置１００は、第１の文字画素塊と第２の文字画素塊とが同一の文字列に対応するか否かの判断に基づいて、第１の認識グラフと第２の認識グラフとを統合した統合認識グラフを生成し、この統合認識グラフに基づいて文字列を認識する。【選択図】図９
2018097707.tif 000002
【特許請求の範囲】
【請求項１】
被写体に印刷された文字列を撮影した撮影画像を取得する取得手段と、
前記撮影画像の文字列の部分から文字画素塊を抽出する抽出手段と、
前記文字画素塊に基づいて文字要素を分類する分類手段と、
前記文字画素塊と前記文字要素の分類結果とから認識グラフを生成する生成手段と、
前記認識グラフに基づいて前記文字列を認識する認識手段と、を備え、
前記生成手段は、複数の前記撮影画像のうちの第１の画像から抽出される第１の文字画素塊と、前記第１の文字画素塊から分類される第１の文字要素とから第１の認識グラフを生成するとともに、複数の前記撮影画像のうちの前記第１の画像とは異なる第２の画像から抽出される第２の文字画素塊と、前記第２の文字画素塊から分類される第２の文字要素とから第２の認識グラフを生成し、
前記認識手段は、前記第１の文字画素塊と前記第２の文字画素塊とが同一の文字列に対応するか否かの判断に基づいて、前記第１の認識グラフと前記第２の認識グラフとを統合した統合認識グラフを生成し、この統合認識グラフに基づいて前記文字列を認識することを特徴とする、
情報処理装置。
【請求項２】
前記認識手段は、前記第１の画像と前記第２の画像との間のオプティカルフローに基づいて、前記第１の文字画素塊と前記第２の文字画素塊とが同一の文字列に対応するか否かの判断を行うことを特徴とする、
請求項１記載の情報処理装置。
【請求項３】
前記認識手段は、前記第１の画像と前記第２の画像との間のホモグラフィ変換の結果に基づいて、前記第１の文字画素塊と前記第２の文字画素塊とが同一の文字列に対応するか否かの判断を行うことを特徴とする、
請求項１記載の情報処理装置。
【請求項４】
前記生成手段は、前記文字画素塊に基づく節及び前記文字要素の分類結果に基づく辺を有し、各辺の重みが前記分類結果に含まれる分類の信頼度に基づいて設定された前記認識グラフを生成し、
前記認識手段は、前記統合認識グラフから前記辺の重みの総和が全体で最小もしくは最大となるような経路を選択することで、前記文字列の認識結果を得ることを特徴とする、
請求項１〜３のいずれか１項記載の情報処理装置。
【請求項５】
前記認識手段は、前記第１の認識グラフの前記節と前記第２の認識グラフの節との間のペアを求め、前記ペアに基づいて前記第２の認識グラフの辺を前記第１の認識グラフへとコピーすることで前記統合認識グラフを生成することを特徴とする、
請求項４記載の情報処理装置。
【請求項６】
前記認識手段は、前記第１の文字画素塊と第２の文字画素塊とが同一の文字列に対応する場合に前記第１の文字画素塊に基づく節と前記第２の文字画素塊に基づく節との間にペアがある判断とし、対応しないと判断した場合に前記第２の文字画素塊に基づく節を前記第１の認識グラフに追加してペアとすることを特徴とする、
請求項５記載の情報処理装置。
【請求項７】
前記認識手段は、コンテキスト情報を用いて前記統合認識グラフの各辺の重みを更新し、更新後の前記統合認識グラフから前記経路を選択して前記文字列の認識結果を得ることを特徴とする、
請求項４〜６記載の情報処理装置。
【請求項８】
前記認識手段は、Ｎ−ｇｒａｍ及び文字列パターン辞書のいずれかを前記コンテキスト情報に用いることを特徴とする、
請求項７記載の情報処理装置。
【請求項９】
所定の撮像手段を備える情報処理装置により実行される方法であって、
前記撮像手段から、所定の被写体に印刷された文字列を撮影した複数の撮影画像を取得して、前記撮影画像の文字列の部分から文字画素塊を抽出して、抽出した前記文字画素塊に基づいて文字要素を分類し、
複数の前記撮影画像のうちの第１の画像から抽出される第１の文字画素塊と、前記第１の文字画素塊から分類される第１の文字要素とから第１の認識グラフを生成するとともに、複数の前記撮影画像のうちの前記第１の画像とは異なる第２の画像から抽出される第２の文字画素塊と、前記第２の文字画素塊から分類される第２の文字要素とから第２の認識グラフを生成し、
前記第１の文字画素塊と前記第２の文字画素塊とが同一の文字列に対応するか否かの判断に基づいて、前記第１の認識グラフと前記第２の認識グラフとを統合した統合認識グラフを生成し、この統合認識グラフに基づいて前記文字列を認識することを特徴とする、
文字認識方法。
【請求項１０】
所定の撮像手段を備えるコンピュータに、
前記撮像手段から、所定の被写体に印刷された文字列を撮影した複数の撮影画像を取得して、前記撮影画像の文字列の部分から文字画素塊を抽出して、抽出した前記文字画素塊に基づいて文字要素を分類する処理、
複数の前記撮影画像のうちの第１の画像から抽出される第１の文字画素塊と、前記第１の文字画素塊から分類される第１の文字要素とから第１の認識グラフを生成するとともに、複数の前記撮影画像のうちの前記第１の画像とは異なる第２の画像から抽出される第２の文字画素塊と、前記第２の文字画素塊から分類される第２の文字要素とから第２の認識グラフを生成する処理、
前記第１の文字画素塊と前記第２の文字画素塊とが同一の文字列に対応するか否かの判断に基づいて、前記第１の認識グラフと前記第２の認識グラフとを統合した統合認識グラフを生成し、この統合認識グラフに基づいて前記文字列を認識する処理、
を実行させるためのコンピュータプログラム。
【請求項１１】
請求項１０記載のコンピュータプログラムを記憶する、コンピュータにより読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画等から得られる複数の画像から文字を認識する文字認識機能を有する情報処理装置に関する。
【背景技術】
【０００２】
スマートフォンやタブレット端末等のカメラ機能付きで手持の情報処理装置は、紙面や看板等の被写体を撮影し、その撮影画像から、文字列認識処理により被写体に印刷される文字列を認識することができる。情報処理装置による撮影では、手ブレやオートフォーカスのずれ等による撮影画像の品質低下が、文字認識の精度に影響する。特許文献１では、文字が印刷された被写体の動画を撮影し、同一の文字列に対して複数の撮影画像により文字認識を行い、その結果を統合して文字列認識結果を取得する画像処理装置を開示する。この画像処理装置は、対象の文字毎に最も多い認識結果を採用することで、不良な撮影画像からの認識結果を除外して、多数決の効果を利用した高精度の文字認識を実現する。特許文献２は、連接文字の発生頻度であるＮ−ｇｒａｍや、認識対象の文字列パターンを定義した辞書のような、認識対象文字のコンテキスト情報を用いた文字認識方法を開示する。この方法は、認識対象領域の画像を文字として分類した結果生じる複数の分類候補から文字列認識結果を選択する際にコンテキスト情報を用いることで、精度の高い文字認識を行う。また、この方法では、入力画像から複数の切り出し方式で抽出した認識対象領域の集合を統合した上でコンテキスト情報を利用して、文字列としての認識結果を得ることもできる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２１８０６１号公報
【特許文献２】米国公開２０１５／０３５６３６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
情報処理装置は、品質の低い撮影画像から認識対象となる文字の領域を抽出する場合、複数文字を一つの領域として抽出したり、あるいは１文字を複数の領域に分割して抽出することがある。この場合、特許文献１の画像処理装置では、動画から得られる複数の撮影画像により文字毎の認識結果を収集しようとしても、文字領域の抽出が不適切であるために、各文字の認識結果の関連付けが困難である。そのために、多数決の効果を得られるほどの数の認識結果を得ることができず、高精度の文字認識ができない。あるいは品質の高い撮影画像を得るまで、ユーザが長時間撮影を行う必要がある。特許文献２のコンテキスト情報を用いる文字認識方法は、撮影画像から文字領域を１文字単位で切り出して抽出することが困難な場合でも有効であるが、この場合、処理対象となる撮影画像は１つである。そのために、動画を構成する複数の撮影画像からの切り出し誤りを含む文字領域の集合がある場合に、それら全体からコンテキスト情報を用いて文字列として文字列認識結果を得ることが困難である。
【０００５】
本発明は、上記課題に鑑みてなされたものであり、部分的に品質の低い複数の撮影画像に含まれる文字列の文字認識を高精度に行うことができる情報処理装置を提供することを主たる目的とする。
【課題を解決するための手段】
【０００６】
本発明の情報処理装置は、被写体に印刷された文字列を撮影した撮影画像を取得する取得手段と、前記撮影画像の文字列の部分から文字画素塊を抽出する抽出手段と、前記文字画素塊に基づいて文字要素を分類する分類手段と、前記文字画素塊と前記文字要素の分類結果とから認識グラフを生成する生成手段と、前記認識グラフに基づいて前記文字列を認識する認識手段と、を備え、前記生成手段は、複数の前記撮影画像のうちの第１の画像から抽出される第１の文字画素塊と、前記第１の文字画素塊から分類される第１の文字要素とから第１の認識グラフを生成するとともに、複数の前記撮影画像のうちの前記第１の画像とは異なる第２の画像から抽出される第２の文字画素塊と、前記第２の文字画素塊から分類される第２の文字要素とから第２の認識グラフを生成し、前記認識手段は、前記第１の文字画素塊と前記第２の文字画素塊とが同一の文字列に対応するか否かの判断に基づいて、前記第１の認識グラフと前記第２の認識グラフとを統合した統合認識グラフを生成し、この統合認識グラフに基づいて前記文字列を認識することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、統合認識グラフに基づいて文字列を認識することで、部分的に品質の低い複数の撮影画像に含まれる文字列の高精度な文字認識を行うことが可能となる。
【図面の簡単な説明】
【０００８】
【図１】（ａ）、（ｂ）は、情報処理装置の外観例を示す図。
【図２】情報処理装置の機能ブロック図。
【図３】文字列認識処理の流れを表すフローチャート。
【図４】Ｓ３０８の処理の流れを表すフローチャート。
【図５】文字画素塊の抽出処理及び文字要素の生成処理の説明図。
【図６】認識グラフの例示図。
【図７】コンテキスト情報を適用した認識グラフの例示図。
【図８】認識グラフの更新処理の流れを表すフローチャート。
【図９】文字列認識処理を施す具体例の説明図。
【図１０】（ａ）〜（ｆ）は、認識グラフの具体例の説明図。
【図１１】文字列認識処理の変形例の説明図。
【発明を実施するための形態】
【０００９】
以下、実施の形態を図面を参照しつつ詳細に説明する。
【００１０】
（情報処理装置の構成）
図１は、本実施形態の情報処理装置の外観例を示す図である。情報処理装置１００は、板状の外観であり、その一方の面に撮像器１０１を備え（図１（ａ））、一方の面の反対に位置する他方の面に表示器１０２及び操作ボタン１０３を備える（図１（ｂ））。情報処理装置１００は、内部に、通信部１０４及び制御部１０５を備えるコンピュータである。情報処理装置１００は、例えばスマートフォンやタブレット端末、高機能のカメラにより実現される。制御部１０５は、ＣＰＵ（Central Processing Unit）やメモリ等を備える。制御部１０５は、情報処理装置１００の動作を制御する。
【００１１】
撮像器１０１は、実世界の情景を撮像して、撮影画像を表す画像データを取得する。撮像器１０１は、例えばレンズ及び撮像素子を備える。表示器１０２は、撮像器１０１で取得した画像データをユーザに視認させる出力インタフェースである。表示器１０２は、例えば液晶ディスプレイである。操作ボタン１０３は、ユーザが情報処理装置１００に対して撮影開始、撮影終了等を指示するための入力インタフェースである。操作ボタン１０３は、機械式あるいは感圧式の物理的なボタンである。なお、表示器１０２をタッチパネルにより構成する場合、操作ボタン１０３の機能を表示器１０２が備えていてもよい。通信部１０４は、無線通信を行う通信インタフェースである。通信部１０４は、情報処理装置１００と外部のサーバ等の装置との、通信網を介した通信制御を行う。
【００１２】
撮像器１０１は、被写体を連続して複数回撮影することで、動画の撮影が可能である。撮影された動画は、直ちに表示器１０２に表示される。そのために情報処理装置１００のユーザは、情報処理装置１００が撮影中の被写体を随時視認することができる。情報処理装置１００は、撮影画像に含まれる文字列の文字認識を行う機能を有する。情報処理装置１００は、文字認識の結果取得した文字列認識結果を、撮影画像に関連付けて表示器１０２に表示してもよい。また、情報処理装置１００は、取得した文字列認識結果を、通信部１０４を介して外部の装置へ送信してもよい。
【００１３】
図２は、情報処理装置１００の機能ブロック図である。情報処理装置１００は、例えば制御部１０５に設けられるＣＰＵが、所定のコンピュータプログラムを実行することで各機能を実現する。情報処理装置１００は、撮影画像取得部２０１、撮影画像処理部２０２、表示制御部２０３、文字列検出部２０４、文字列認識部２０５、及び文字列情報記憶部２０６として機能する。
【００１４】
撮影画像取得部２０１は、撮像器１０１から所定の撮影間隔で撮影画像の画像データを取得する。撮影間隔は、例えば１秒間に３０回あるいは６０回である。画像データは、撮影画像処理部２０２及び表示制御部２０３へ送られる。
【００１５】
撮影画像処理部２０２は、所定の撮影間隔で撮影画像取得部２０１から取得する撮影画像の画像データへの画像処理を行う。本実施形態の撮影画像処理部２０２は、少なくとも以下の３つの処理を行う。
（処理１）画像データを表示制御部２０３、文字列検出部２０４、及び文字列認識部２０５による処理に適した形式に補正する。
（処理２）画像データから、表示制御部２０３、文字列検出部２０４、及び文字列認識部２０５による処理に適切な画像及び不適切な画像を選別する。
（処理３）選別した複数の画像において同一被写体の移動があれば、その移動量を算出する。
【００１６】
表示制御部２０３は、表示器１０２に表示するための表示画像を生成する。表示制御部２０３は、生成した表示画像を表示器１０２に表示させる。表示画像は、例えば撮影画像取得部２０１から取得する画像データが表す撮影画像である。表示制御部２０３は、撮影間隔と同じ時間間隔で表示画像を表示器１０２に表示することで、ユーザに撮影内容や撮影状態を確認させることができる。なお、表示画像は、撮影画像処理部２０２によりユーザが視認しやすいように画像処理されていてもよい。また、表示画像は、文字列認識結果が付加、重畳されていてもよい。
【００１７】
文字列検出部２０４は、撮影画像処理部２０２で画像処理された画像データに基づいて、撮影画像内の文字認識の対象となる文字列画像の領域を検出する。文字列認識部２０５は、文字列検出部２０４で検出された文字列画像の領域内で、公知の文字列認識処理を行い、文字コードの並びからなる文字列認識結果を生成する。文字列認識部２０５は、撮影画像処理部２０２で画像処理された画像データに基づいて、撮影画像の文字列画像の領域内の文字列認識処理を行う。
【００１８】
文字列情報記憶部２０６は、文字列検出部２０４で検出された文字列画像の領域を文字列情報として記憶する。文字列画像の領域は、例えば矩形で表される、文字列情報記憶部２０６は、該矩形の座標を文字列画像の領域として記憶する。文字列検出部２０４が複数の文字列画像の領域を検出する場合、文字列情報記憶部２０６は、各領域の座標を記憶する。文字列情報記憶部２０６は、文字列に対して文字列認識部２０５が生成する文字列認識結果を文字列情報に加えて記憶する。文字列情報記憶部２０６に記憶される内容は、必要に応じて通信部１０４から外部の装置へ送信されてもよい。
【００１９】
（文字列認識処理）
図３は、このような構成の情報処理装置１００を用いた文字列認識処理の流れを表すフローチャートである。以下、フローチャートは、ＣＰＵが制御プログラムを実行することにより実現されるものとする。情報処理装置１００は、文字列認識処理の開始が指示されると、撮像器１０１を起動して所定の撮影間隔で撮影を開始する。これにより撮像器１０１は、連続した撮影画像からなる動画を撮影する。
【００２０】
撮影画像取得部２０１は、撮像器１０１が撮影した撮影画像を表す画像データを所定の撮影間隔で連続して取得する（Ｓ３０１）。つまり、図３の文字列認識処理は、所定の撮影間隔で連続する撮影画像に対して、連続して行われる。以降、時刻ｔで撮影された撮影画像を表す画像データを画像ｔと表す。文字列認識処理では、画像ｔあるいは画像ｔを撮影画像処理部２０２で処理した画像に対して文字認識を行う。
【００２１】
撮影画像処理部２０２は、画像ｔに対して上記の（処理１）を行う。具体的には、撮影画像処理部２０２は、画像ｔに対して公知のぼけ補正等のフィルタ処理や、解像度変換処理等の画像処理を行う（Ｓ３０２）。これらの処理により画像ｔは、表示器１０２への表示や文字列検出、文字列認識といった処理に好適な画像データとなる。
【００２２】
撮影画像処理部２０２は、画像処理後の画像ｔに対して上記の（処理２）を行う。これにより撮影画像処理部２０２は、画像処理後の画像ｔの画質が、文字列検出部２０４及び文字列認識部２０５が行う処理に適切か否かを判断する（Ｓ３０３）。この判断は、例えば画像ｔに含まれるエッジの総量あるいは密度といった評価値を用いて行われる。評価値が所定の閾値よりも低い場合、画像ｔは、ぼけが発生した品質の低い撮影画像であり、文字列検出の精度が期待できない不適切な画像であると判断される。
この他に評価値には、直前の撮影画像（画像ｔ-1、ｔ-2等）との画素差分の総和や平均を用いてもよい。このような評価値が閾値より低い場合、画像ｔは、ブレが少なく文字認識に適切な撮影画像であると判断される。また、加速度センサ等により情報処理装置１００の姿勢検知が可能な場合、その検知結果を評価値に用いてもよい。この場合、情報処理装置１００が静止しているときの画像ｔが文字認識に適切であると判断される。なお、撮影画像処理部２０２によるＳ３０２及びＳ３０３の処理は、どちらが先に行われてもよい。
【００２３】
画像ｔの画質が文字列検出部２０４及び文字列認識部２０５により行われる処理に適切である場合（Ｓ３０３：Y）、撮影画像処理部２０２は、画像ｔに対して上記の（処理３）を行う。撮影画像処理部２０２は、画像ｔとそれ以前に撮像された画像ｔ-x（ｘは１以上の整数）との２画像間で文字認識の対象となる同一の文字列が移動する場合に、その移動量を算出する。文字認識の対象となる文字列とは、具体的には、文字列情報記憶部２０６に記憶された文字列である。この文字列は、過去に、画像ｔ以前の撮影画像に対して後述の文字列認識処理で検出された文字列である。撮影画像処理部２０２は、算出した移動量に基づいて、文字列画像の領域を表す文字列情報を更新する（Ｓ３０４）。移動量の算出時に用いる画像ｔ-xは、例えばｘ＝１として、常に一つ前の撮影画像とする。その場合、Ｓ３０４の処理では、毎回、画像ｔ-1から画像ｔまでの移動量に応じて文字列の座標を更新することで、以降、それらを画像ｔにおける文字列の位置として取り扱うことができる。あるいは、移動量の算出は、後述の文字列検出処理を行った画像ｔ’と、画像ｔとの間で行ってもよい。このとき、オリジナルの文字列座標として画像ｔ’からの検出時の文字列座標を文字列情報に保持しておき、移動量で更新された座標を画像ｔにおける文字列座標とする。さらに、文字列毎に異なる検出時の画像を対象に移動量を算出して文字列座標を更新してもよい。
【００２４】
移動量の算出には、公知のオプティカルフロー検出による方法を用いることができる。例えば移動量は、公知のＳＩＦＴ（Scale-Invariant Feature Transform）やＯＲＢ（Oriented FAST and Rotated BRIEF）等の局所特徴点検出を用いて算出される。局所特徴点検出により２画像で共通となる特徴点のペアを取得し、それら特徴点ペアの中で対象被写体に一致もしくは近いペア間の距離を被写体の移動量とする。あるいは、２画像のそれぞれ全体から求めた特徴点間で対応点マッチングをとり、画像間のホモグラフィ変換行列を推定し、対象文字列の座標にホモグラフィ変換を行って移動量を算出する。
【００２５】
撮影画像処理部２０２は、画像ｔが文字列検出処理の実行対象か否かを判断する（Ｓ３０５）。画像ｔが文字列検出処理の実行対象か否かは、例えば文字列検出部２０４により１回の検出処理の時間内にｎ回の撮影が行われる場合、画像ｎ、画像２ｎ、画像３ｎが検出処理の実行対象と判断され、それ以外の撮影画像が検出処理の実行対象外と判断される。あるいは、文字列検出部２０４の処理状態をリアルタイムで監視し、以前に取得した画像を処理中でない場合にのみ、現在の画像ｔが検出処理の実行対象と判断される。また、Ｓ３０３の処理による評価値を検出処理の実行対象の判断条件に加えてもよい。
【００２６】
画像ｔが文字列検出処理の実行対象である場合（Ｓ３０５：Y）、文字列検出部２０４は、画像ｔ内に存在する文字列を検出する（Ｓ３０６）。検出結果は、文字列座標情報として文字列情報記憶部２０６に保存される。文字列座標情報は、例えば文字列領域を包含する矩形の４隅の座標のリストである。文字列座標情報は、画像ｔから検出されたという情報と関連づけられていてもよい。文字列情報記憶部２０６に空き領域がなく、過去の撮影画像から検出された文字列情報が保存されている場合、過去の情報を消去したうえで画像ｔから検出した文字列情報のみを保存するようにしてもよい。あるいは、画像ｔから検出した文字列情報と過去の文字列情報との対応を調べ、一致するものが存在すれば該文字列情報の座標情報を更新し、存在しなければ新規の文字列情報として保存するようにしてもよい。
【００２７】
文字列検出部２０４は、画像ｔ内の文字列検出を公知技術により行う。例えば文字列検出部２０４は、画像ｔを二値化し、連結する黒画素をラベリング処理で連結して連結画素塊（Connected Component）を抽出する。「連結画素塊」とは、画素が連結している画素群の領域をいう。文字列検出部２０４は、抽出した連結画素塊のうち、外接矩形の大きさ等から文字らしいと推定される文字画素塊を、さらに近傍に存在する他の文字画素塊と結合して文字列領域を抽出する。抽出された各文字列には、後述する文字列認識処理のための位置情報が付与される。
なお、文字列検出部２０４は、画像ｔの二値化ではなく、例えば、輝度や色の近い画素を連結することで連結画素塊を抽出してもよい。あるいは文字列検出部２０４は、エッジ抽出をおこない、連結するエッジ画素から連結画素塊を抽出してもよい。また、文字列検出処理を高速化するために、文字列検出部２０４は、縮小処理を施した画像ｔから連結画素塊を抽出して文字列を検出してもよい。
【００２８】
文字列検出後、あるいは画像ｔが文字列検出処理の実行対象ではない場合（Ｓ３０５：N）、文字列認識部２０５は、画像ｔが文字列認識処理の実行対象であるか否かを判断する（Ｓ３０７）。文字列認識処理の実行対象であるか否かの判断は、Ｓ３０５の処理と同様に、文字列認識部２０５の１回の認識処理時間とその間の撮影画像の取得回数に基づいて行われる。文字列認識部２０５は、Ｓ３０３の処理で用いた画像ｔが文字列認識処理に適切か否かの評価値を、実行対象とするか否かの判断条件に加えてもよい。文字列認識部２０５は、文字列検出処理が実際に行われた回数と同期して、１回の文字列検出処理につき、ｎ回（ｎ＞１）の文字列認識処理を行うように、Ｓ３０５の処理における判断と連動して文字列認識処理の対象であるか否かの判断を行ってもよい。文字列情報記憶部２０６に検出された文字列の情報が無い場合、文字列認識部２０５は、画像ｔが文字列認識処理の実行対象ではないと判断する。
【００２９】
画像ｔが文字列認識処理の実行対象である場合（Ｓ３０７：Y）、文字列認識部２０５は、画像ｔについての文字列認識処理を実行する（Ｓ３０８）。処理対象は、文字列情報記憶部２０６に記憶された文字列情報であり、その処理結果は該当する文字列情報へ追加される。文字列認識処理の詳細については後述する。
【００３０】
文字列認識後、表示器１０２の表示が更新される（Ｓ３０９）。なお、画像ｔの画質が文字列検出部２０４及び文字列認識部２０５により行われる処理に適切ではない場合（Ｓ３０３：Y）、あるいは画像ｔが文字列認識処理の実行対象ではない場合（Ｓ３０７：N）にも、表示器１０２の表示が更新される（Ｓ３０９）。表示制御部２０３は、表示器１０２の表示を、処理中の撮影画像により更新する。
このとき表示制御部２０３は、文字列情報記憶部２０６に記憶された文字列の情報を表示に加えてもよい。例えば、表示制御部２０３は、Ｓ３０６の処理で得られた各文字列の検出結果に基づき、検出した文字列位置がユーザにわかるように枠を影画像に重畳するよう表示してもよい。あるいは、表示制御部２０３は、Ｓ３０８の処理で追加された文字列認識結果を枠に添えて、あるいは表示画面中の特定位置に表示してもよい。情報処理装置１００は、表示更新のタイミングで、文字列情報記憶部２０６の内容を表示用途以外に利用してもよい。例えば情報処理装置１００は、動作中の別のアプリケーションで利用してもよい。あるいは情報処理装置１００は、通信部１０４を経由して他の装置で動作しているプログラムに文字列の認識結果を提供するようにしてもよい。
【００３１】
図４は、Ｓ３０８の文字列認識処理の流れを表すフローチャートである。ここでは、文字列認識部２０５が、文字列情報記憶部２０６に記憶された一つの文字列ｉを対象として、画像ｔを用いて行う文字列認識処理について説明する。実際には、文字列認識部２０５は、文字列情報記憶部２０６に記憶されるすべての文字列について、文字列認識処理を繰り返し実行する。
【００３２】
文字列認識部２０５は、文字列ｉとして認識されるべき文字列画像を画像ｔから取得する（Ｓ４０１）。例えば文字列認識部２０５は、文字列を包含する矩形の４隅の座標情報から該４点に外接する矩形の範囲を導出し、該範囲の座標を取得する。なお、Ｓ３０４の処理により、文字列ｉの座標情報は画像ｔにおける座標に更新されている。
【００３３】
文字列認識部２０５は、取得した文字列画像から少なくとも文字の一部を構成する文字画素塊を抽出する（Ｓ４０２）。文字列認識部２０５は、Ｓ３０６の処理と同様の方法により、文字画素塊を抽出することができる。文字列認識部２０５は、抽出した文字画素塊の集合から文字要素を生成する（Ｓ４０３）。「文字要素」は、１又は複数の隣接する文字画素塊をグループ化したものである。
【００３４】
図５は、文字画素塊の抽出処理及び文字要素の生成処理の説明図である。図５は、文字列画像５００から文字画素塊５０１〜５０６が抽出され、文字画素塊５０１〜５０６から文字要素５１１〜５２１が生成される様子を表す。文字列画像５００は、紙等の被写体上に印刷されており、該被写体を撮影された撮影画像から取得される。図５の例では、文字列画像５００は、被写体上に印刷された「文化的」の３文字の撮影画像から取得される。文字列認識部２０５は、文字列画像５００に基づいて、連結する黒画素の塊として、６つの文字画素塊５０１〜５０６を抽出する。文字列認識部２０５は、文字画素塊５０１〜５０６のそれぞれに対応する文字要素として、文字要素５１１〜５１６を生成する。文字列認識部２０５は、各文字画素塊５０１〜５０６において、右方向に距離が閾値以下で隣り合う１つ以上の文字画素塊をグループ化して、文字要素５１１〜５２１を生成する。文字要素５１１〜５２１の幅は、大きくなりすぎないように制限される。例えば文字列認識部２０５は、グループ化後の幅が、文字列高さの例えば１．２倍を越える文字要素を生成しない。「文字列高さ」は、例えば文字画素塊の最大高さから推定される値が用いられる。
【００３５】
図５の例では、文字画素塊５０２と文字画素塊５０３とをグループ化した文字要素５１７が生成される。文字画素塊５０３と文字画素塊５０４とをグループ化した文字要素５１８が生成される。文字画素塊５０４と文字画素塊５０５とをグループ化した文字要素５１９が生成される。文字画素塊５０４と、文字画素塊５０５及び文字画素塊５０６とをグループ化した文字要素５２０が生成される。文字画素塊５０５と文字画素塊５０６とをグループ化した文字要素５２１が生成される。
【００３６】
文字列認識部２０５は、文字要素５１１〜５２１のうち、１文字に対応する可能性が低い文字要素をこの段階で除外してもよい。例えば、所定の文字画素塊に別の文字画素塊が完全に、あるいは大部分が包含されるときに、それらの文字画素塊が各々別の１文字ずつに対応する可能性が低い。また、文字列画像が横書きの日本語であることが分かっている場合、縦方向に重なる文字画素塊がそれぞれ別の１文字にとなる可能性が低い。文字列認識部２０５は、そのような関係の２以上の文字画素塊を先に１つの文字画素塊として統合した後に、文字要素の生成を行ってもよい。
【００３７】
文字列認識部２０５は、文字要素の生成後に、生成した文字要素の分類を行う（Ｓ４０４）。文字列認識部２０５は、生成した文字要素のそれぞれに対して、文字列画像中の文字要素の範囲内における画素パターンと、事前に学習された文字パターン辞書との照合により分類処理を行う。文字列認識部２０５は、分類結果を文字パターン辞書のカテゴリに対応する文字コードと、分類の信頼度を表す数値として、文字要素に関連付けて記憶する。記憶される分類結果は、１つの文字要素に対して１つの文字コードであっても、複数の信頼度によって順位づけられアット複数の文字コードであっても、どちらでもよい。
【００３８】
文字列認識部２０５は、例えば公知の文字認識処方により分類処理を行う。例えば文字列認識部２０５は、分類対象の画素パターンのサイズを正規化した上で（７×７）といったブロックに画素パターンを分割し、各ブロック内の黒画素エッジの量を方向毎に集計して特徴ベクトルを生成する。縦、横、２つの斜めの４方向で集計した場合、（４×７×７）のエッジ量が分類対象の特徴ベクトルとなる。同様に、文字列認識部２０５は、各文字の学習データから得た特徴ベクトルを含む文字パターン辞書を記憶する。文字列認識部２０５は、照合の際に、対象の特徴ベクトルと辞書中各文字の特徴ベクトルとのベクトル間距離を計算し、最も距離の近い１文字を分類結果とする。あるいは文字列認識部２０５は、距離が閾値以下の複数文字への分類可能性をもつ分類結果とする。分類結果には同距離に基づいて数値化された信頼度が付与される。なお、文字列認識部２０５は、別の特徴ベクトル抽出方法や、照合方法で文字要素を分類してもよい。例えば、文字列認識部２０５は、ニューラルネットワーク等を用いたパターン学習器によって分類処理を行ってもよい。
【００３９】
文字列認識部２０５は、現在の処理が文字列情報記憶部２０６に記憶される文字列ｉに対する初回の文字列認識処理であるか否かを判断する（Ｓ４０５）。文字列認識部２０５は、例えば後述の認識グラフの情報が対象の文字列情報に付加されているか否かによりこの判断を行う。付加されていない場合、文字列認識部２０５は、初回の文字列認識処理であると判断する。
【００４０】
初回の文字列認識処理である場合（Ｓ４０５：Y）、文字列認識部２０５は、文字列ｉに対する認識グラフを新規作成する（Ｓ４０６）。認識グラフは、文字列画像から抽出された文字画素塊をグラフの節、文字要素に対する分類結果をそれぞれ重み付きの辺、とした有向グラフとして作成される。認識グラフは、文字列情報記憶部２０６中の文字列ｉの情報に付加されて記憶される。
【００４１】
文字列認識部２０５は、例えば以下のようにして認識グラフを作成する。まず、文字列認識部２０５は、文字列ｉからｎ個の文字画素塊の集合｛Ｃ｝＝｛Ｃ１，．．．，Ｃｎ｝を生成する。ここで、文字列ｉは略水平で、Ｃ１，Ｃ２，…は文字画素塊の左端座標が昇順になるように並ぶ。文字列認識部２０５は、文字画素塊Ｃ１〜Ｃｎに対応するように、グラフのｎ個の節Ｎ１〜Ｎｎと、仮想の終端文字画素塊に相当する終端節Ｎｅを作成する。
【００４２】
次に、文字列認識部２０５は、集合｛Ｃ｝に含まれる文字画素塊をグループ化して文字要素の集合｛Ｇ｝＝｛Ｇ１，．．．，Ｇｕ｝を生成する。集合｛Ｇ｝中の文字要素Ｇｔについて、Ｇｔに含まれ、かつ最も左端座標が小さい文字画素塊をＣｉ、またＣｉより右にあって、文字要素Ｇｔには含まれず、かつ最も左端座標が小さい文字画素塊をＣｊとする。この場合、文字列認識部２０５は、文字要素Ｇｔに対して行われた分類結果に基づき、文字画素塊Ｃｉ、Ｃｊにそれぞれ対応する節Ｎｉから節Ｎｊへの重み付きの辺Ｅｉｊを生成する。なお、文字要素Ｇｔが複数の分類可能性を持つ場合、文字列認識部２０５は、それぞれに対応して複数の辺Ｅｉｊを生成する。
【００４３】
文字列認識部２０５は、認識グラフの各辺に対し、辺に対応する文字要素の分類結果に基づく重みを設定する。文字要素Ｇｔが、分類結果として（文字コードＡ，信頼度ａ）、（文字コードＢ，信頼度ｂ）、（文字コードＣ，信頼度ｃ）の３つの分類可能性を持つ場合を説明する。この場合、文字列認識部２０５は、節Ｎｉから節Ｎｊへの辺Ｅｉｊとして、Ｅｉｊ（Ａ，ａ）、Ｅｉｊ（Ｂ，ｂ）、Ｅｉｊ（Ｃ，ｃ）と表記される３つの異なる辺を生成する。
【００４４】
図６は、認識グラフの例示図である。この認識グラフは、図５の文字画素塊５０１〜５０６を節、文字要素５１１〜５２１を辺として作成されている。認識グラフは、文字画素塊５０１〜５０６に対応する節Ｎ１〜Ｎ６及び終端節Ｎｅの計７つの節を持つ。文字要素５１１の分類結果として、「文」「交」「父」の３文字への分類可能性があり、それぞれの信頼度として「０．６」、「０．３」、「０．２」が得られたとする。その結果、節Ｎ１から節Ｎ２への辺として、３つの辺Ｅ１２（文，０．６）、Ｅ１２（交，０．３）、Ｅ１２（父，０．２）が生成される。節Ｎ２より右へも同様に、各文字要素の分類結果による辺が生成される。なお、図６では、Ｅ１２以外の辺としてそれぞれ一本ずつの辺しか記載されていないが、これは図を単純化するためであり、実際には複数の分類可能性に対応する辺が存在することもある。
【００４５】
認識グラフを作成した文字列認識部２０５は、認識グラフにコンテキスト情報を適用する（Ｓ４０７）。「コンテキスト情報を適用する」とは、認識グラフの各辺の重みをコンテキスト情報に基づいて変更することである。「コンテキスト情報」は、文字列中の注目する文字とその前後にあたる文字との相対関係に関する情報である。コンテキスト情報には、例えば、書籍やインターネット文書から収集した大量のテキスト群に連続して存在するＮ文字の発生確率を定義したＮ−ｇｒａｍがある。本実施形態では、Ｎ−ｇｒａｍの一種で、一般によく利用される２文字頻度Ｂｉｇｒａｍを、コンテキスト情報として認識グラフに適用する例を、以下に説明する。
【００４６】
ひとつの節Ｎｋを介して接続する辺Ｅｉｋ（Ａ，ｗ１）とＥｋｊ（Ｂ，ｗ２）とがあり、Ｂｉｇｒａｍ情報に文字「Ａ」と文字「Ｂ」の連続発生確率がＰと定義されているとき、（式１）により両辺の重みｗ１，ｗ２がそれぞれｗ１’、ｗ２’へと変更される。
ｗ'＝  ｗ + ｄ（Ｐ≧ｔｈ）  …（式１）
「ｄ」は、重みに対する加算値である。「ｔｈ」は、発生確率に関する閾値となる定数である。
【００４７】
文字列認識部２０５は、認識グラフ中の両端以外の全節にて、その左右にある２つの辺のすべての組み合わせに対し、その分類結果に対応する２文字の連続発生確率をＢｉｇｒａｍ情報より取得し、（式１）を適用して重みを変更する。なお、所定の節を介して一つの辺と複数の辺との組み合わせがある場合、文字列認識部２０５は、Ｂｉｇｒａｍ情報の中で最も発生確率が高い２文字に対応する２辺の組み合わせのみを選択し、その重みを変更する。この場合、文字列認識部２０５は、すべての組み合わせに対して重みを変更してもよい。もしくは、文字列認識部２０５は、それらの発生確率の相対比で重みに対する加算値を配分したうえで変更してもよい。
【００４８】
図６の認識グラフに対し、Ｂｉｇｒａｍ情報を用いた辺の重みの変更例を以下に説明する。Ｂｉｇｒａｍ情報に定義される２文字の連続発生確率が以下のように定義されており、（式１）における閾値ｔｈ＝０．００１、補正値ｄ=０．２とする。
「文化」＝０．０１
「文イ」＝０．０００１
「交化」＝０．００００５
「交イ」＝０．０００１
「父化」＝０．００３
「父イ」＝０．０００２
【００４９】
このとき、（式１）による変更の対象となる、閾値ｔｈ以上の確率を持つ２文字は、「文化」及び「父化」である。これらに対応する辺はＥ１２とＥ２４の組み合わせで、且つＥ１２は「文」及び「父」の両方の分類可能性に対する辺が存在する。文字列認識部２０５は、ここでは最も確率の高い「文化」に対応する２辺のみを変更の対象として、Ｅ１２（文，０．６）、Ｅ２４（化，０．５）の組み合わせのみをＥ１２（文，０．８)、Ｅ２４（化，０．７）へと変更する。
【００５０】
図７は、コンテキスト情報を適用した認識グラフの例示図である。図７では、「文化」に関する補正に加え、Ｂｉｇｒａｍ情報にある「化的」の発生確率が閾値以上であることから、Ｅ２４及びＥ４ｅに同様の補正値が適用されている。なお、（式１）は一例であり、例えば確率が閾値以下のときに重みを減じてもよく、確率を引数とした関数値、例えばｌｏｇ（Ｐ）やｅｘｐ（Ｐ）を加算したり乗じることで、コンテキスト情報の適用を行ってもよい。
【００５１】
認識グラフへのコンテキスト情報の適用処理後に、文字列認識部２０５は、適用処理後の認識グラフにおいて最適パスを選択する（Ｓ４０８）。「最適パス」は、認識グラフの最初の節から終端節に至るまでに通った辺の分類結果の文字を繋げて、文字列ｉ全体に対する尤もらしい認識結果を得られるパスのことである。最適パスを得るために、文字列認識部２０５は、例えば全通りの辺の組み合わせを網羅する複数のパスを設定し、辺の重みの合計値を通った辺の数で除算した値が最大になるパスを選択する。あるいは文字列認識部２０５は、辺の重みの逆数等に基づく値を辺のペナルティとして定義し、パス合計のペナルティが最小になるパスを選択することで最適パスを選択する。
【００５２】
文字列認識部２０５は、選択した最適パスに基づいて、各々選択した辺の分類結果をつなげた文字コード列を、撮影画像に含まれる文字列ｉに対する文字列認識結果として出力する（Ｓ４０９）。文字列認識結果の出力により、文字列認識処理が終了する。出力された文字列認識結果は、文字列情報記憶部２０６の文字列ｉの情報に付加される。
【００５３】
なお、現在の処理が文字列情報記憶部２０６に記憶される文字列ｉに対する初回の文字列認識処理ではない場合（Ｓ４０５：N）、文字列認識部２０５は、以下のような認識グラフの更新処理を行う（Ｓ４１０）。この場合、文字列情報記憶部２０６中で処理対象となる文字列ｉには、前回の文字列認識処理で生成された認識グラフが付加されている。そのために文字列認識部２０５は、今回のＳ４０１の処理で入力された文字列画像から得た文字画素塊、文字要素、及びその分類結果に基づいて、認識グラフを更新する。ここで行われる更新には、新たな節や新たな辺の追加、及び既にある辺の重みの変更の少なくとも一つが含まれる。
【００５４】
図８は、認識グラフの更新処理の流れを表すフローチャートである。ここでは、文字列ｉに対し、過去に画像ｔ’から取得した文字列画像より、Ｓ４０６の処理（図４参照）の結果として認識グラフＳ’が既に生成されているものとする。その際、文字列画像から、Ｓ４０２の処理で文字画素塊の集合｛Ｃ’｝が、Ｓ４０３の処理で文字要素の集合｛Ｇ’｝が、それぞれ生成されている。認識グラフＳ’には各々に対応する節の集合｛Ｎ’｝及び辺の集合｛Ｅ’｝があるとする。今回の処理では、同じ文字列画像ｉに対し、画像ｔから得た文字列画像から、すでに文字画素塊の集合｛Ｃ｝及び文字要素の集合｛Ｇ｝が生成されており、文字列認識部２０５は、これらを入力としてＳ４１０の処理を行う。
【００５５】
なお、認識グラフＳ’の各辺の重みは、Ｓ４０７の処理のコンテキスト情報の適用処理により更新されている可能性がある。以降の処理において、認識グラフＳ’の辺の重みは分類結果に基づく元々の値であることが望ましい。文字列認識部２０５は、それら元々の値を、文字列ｉの認識情報の一部として記憶しておき、図８の処理の際にオリジナル値にリセットするものとする。あるいは、文字列認識部２０５は、Ｓ４０７の処理で各辺の重みを実際に変更せず、Ｓ４０８の処理での最適パス選択の際、経路上にある辺の重みを合計する中でコンテキスト情報を考慮して重みやペナルティを合計するようにしてもよい。
【００５６】
文字列認識部２０５は、文字画像塊の集合｛Ｃ｝に含まれる文字画素塊と、文字要素の集合｛Ｇ｝に含まれる文字要素とから、節の集合｛Ｎ｝及び辺の集合｛Ｅ｝で構成される認識グラフＳを作成する（Ｓ８０１）。文字列認識部２０５は、Ｓ４０６の処理と同様の処理で認識グラフを作成する。
【００５７】
文字列認識部２０５は、認識グラフの更新処理で利用する情報として用意されるペア節リストＬｐを空に初期化する（Ｓ８０２）。「ペア節リストＬｐ」は、認識グラフＳの節Ｎｘと、文字列情報に記憶されている認識グラフＳ’の節Ｎ’ｘとの対応ペア（Ｎｘ，Ｎ’ｘ）を要素とするリストである。
【００５８】
文字列認識部２０５は、認識グラフＳの節の集合｛Ｎ｝に含まれる節Ｎｘ（＝Ｎ１，Ｎ２，．．．）を順に一つずつ処理対象としてループ処理を行う（Ｓ８０３、Ｓ８０４）。文字列認識部２０５は、まず、認識グラフＳの節Ｎｘに対応する節Ｎ’ｙが認識グラフＳ’に存在するか否かを判断する（Ｓ８０３）。存在する場合（Ｓ８０３：Y）、文字列認識部２０５は、節Ｎｘと節Ｎ’ｙとがペアであるとして、（Ｎｘ，Ｎ’ｙ）をペア節リストＬｐに追加する（Ｓ８０４）。存在しない場合（Ｓ８０３：N）、文字列認識部２０５は、次のＮｘに対してこのループ処理を繰り返し行う。
【００５９】
ここで、節Ｎｘと節Ｎ’ｙとが対応するか否かの判定方法の一例を説明する。認識グラフＳの節Ｎｘは、現在処理中の画像ｔから抽出された文字画素塊Ｃｘに基づいて生成されたものである。また、認識グラフＳ’の節Ｎ’ｙは、以前の文字列認識処理により抽出された、すなわち過去の画像ｔ’から抽出された文字画素塊Ｃ’ｙに基づいて生成されたものである。ここでは、現在処理中の画像ｔから抽出された文字画素塊Ｃｘと、過去に画像ｔ’から抽出された文字画素塊Ｃ’ｙとが以下の条件式を満たすときに、節Ｎｘと節Ｎ’ｙが対応すると判定する。
｜Ｃｘの左端座標 − （Ｃ’ｙの左端座標＋ΔＣ’ｙ）｜  ＜  Ｄ
ΔＣ’ｙは、画像ｔ’と画像ｔとの間の文字画素塊Ｃ’ｙの移動量である。移動量は、例えば、撮影画像処理部２０２により、対象文字画素塊Ｃ’ｙの移動量として図３のＳ３０４の処理のように求められる。Ｄは正の定数であり、移動量を考慮した上での文字画素塊の位置ずれの許容量を示す。定数Ｄは、文字列ｉの実際の大きさに関する値、例えば文字列ｉの高さの１／１０等に設定される。
【００６０】
文字列が水平方向に左から右へ印刷されている場合には、上記式による判定方法を用いることができる。文字列が上から下へ印刷されている場合には、上端座標の比較により判定を行ってもよい。また、両文字画素塊の形状特徴を考慮してもよい。例えば形状の一部あるいは全部が一致している場合のみ、節Ｎｘと節Ｎ’ｙとが対応していると判定してもよい。特に、両文字画素塊の形状が部分的に一致する場合、文字画素塊Ｃｘの左側が文字画素塊Ｃ’ｙの左側に一致している、あるいはその逆である場合のみを、対応していると判定してもよい。
【００６１】
認識グラフの節の集合｛Ｎ｝に含まれるすべての節Ｎｘに対してＳ８０３、Ｓ８０４の処理を行うことで、ループ処理が終了する。Ｓ８０３、Ｓ８０４によるループ処理が終了すると、文字列認識部２０５は、認識グラフＳのすべての辺を初期値とする辺リストＬｅを作成する（Ｓ８０５）。文字列認識部２０５は、文字要素の複数の分類可能性により一組の節Ｎｉ，Ｎｊの間に複数の辺がある場合、それぞれ別の辺Ｅｉｊ１，Ｅｉｊ２，．．．として辺リストＬｅに追加する。
【００６２】
文字列認識部２０５は、辺リストＬｅに含まれる辺Ｅｉｊを順に一つずつ処理対象としてループ処理を行う（Ｓ８０６〜Ｓ８１１）。
【００６３】
文字列認識部２０５は、認識グラフＳの辺Ｅｉｊの最初と最後の節、すなわち節Ｎｉと節Ｎｊについて、それぞれ認識グラフＳ’に対応する節があるか否かを調べる（Ｓ８０６）。具体的には、文字列認識部２０５は、ペア節リストＬｐに対象の節とペアを成す要素が含まれているか否かを調べる。文字列認識部２０５は、対応するペア数が（０，１，２）のそれぞれで分岐した処理を行う。ペア数が「０」の場合（Ｓ８０６：０）、すなわち節Ｎｉ、節Ｎｊとも対応する節が認識グラフＳ’に無い場合、文字列認識部２０５は、現在の辺Ｅｉｊに対する処理は行わず、辺リストＬｅにある次の辺に対して、このループ処理を繰り返す。
【００６４】
ペア数が「１」の場合（Ｓ８０６：１）、すなわち節Ｎｉか節Ｎｊのどちらか一方のみが認識グラフＳ’にペアとなる節がある場合、文字列認識部２０５は、認識グラフＳ’に対応する節が無い方の節を、認識グラフＳ’に新しい節として追加する（Ｓ８０７）。例えば、節Ｎｊに対応する節が認識グラフＳ’に無かった場合、文字列認識部２０５は、節Ｎ’ｊ’を認識グラフＳ’に追加する。「ｊ’」は追加後に認識グラフＳ’中でユニークとなる添字を表す。また、文字列認識部２０５は、節とＮｊと新しく追加された節Ｎ’ｊ’とからなるペア（Ｎｊ，Ｎ’ｊ’）をペア節リストＬｐに追加する。以降、辺Ｅｉｊは両節とも認識グラフＳ’に対応する節を持つことになる。
【００６５】
文字列認識部２０５は、辺Ｅｉｊの両端の２節にそれぞれ対応する認識グラフＳ’の２節の間に、辺Ｅｉｊと同じ重みを持つ新しい辺を追加する（Ｓ８０８）。例えば、文字列認識部２０５は、認識グラフＳの節Ｎｉ、節Ｎｊが認識グラフＳ’の節Ｎ’ｋ、節Ｎ’ｌにそれぞれ対応し、辺Ｅｉｊが分類結果Ａ、分類の信頼度ｗであるときに、辺Ｅ’ｋｌ（Ａ，ｗ）を認識グラフＳ’に追加する。節Ｎｉと節Ｎｊとの間に複数の辺がある場合、文字列認識部２０５は、すべての辺を追加する。このとき、認識グラフＳと認識グラフＳ’との間での節の対応づけは、ペア節リストＬｐを用いることで容易に行うことができる。
【００６６】
文字列認識部２０５は、辺Ｅｉｊを辺リストＬｐから除去し、以降、認識グラフＳ’への追加処理対象とならないようにする（Ｓ８０９）。文字列認識部２０５は、辺リストＬｐの次の辺に対して、このループ処理を繰り返す。
【００６７】
ペア数が「２」の場合（Ｓ８０６：２）、すなわち節Ｎｉ，節Ｎｊの両方が認識グラフＳ’にペアとなる節がある場合、辺Ｅｉｊの最初と最後の両方に対応する節が認識グラフＳ’にある。この場合、文字列認識部２０５は、節Ｎｉ、節Ｎｊにそれぞれ対応する認識グラフＳ’の節を節Ｎ’ｋ、節Ｎ’ｌとして、辺Ｅｉｊと同じ分類結果を持つ辺Ｅ’ｋｌが存在するかどうかを調べる（Ｓ８１０）。存在しない場合（Ｓ８１０：N）、文字列認識部２０５は、辺Ｅｉｊと同じ重みを持つ新しい辺を認識グラフＳ’に追加する（Ｓ８０８）。
【００６８】
存在する場合（Ｓ８１０：Y）、文字列認識部２０５は、辺Ｅｉｊと同じ分類結果を持つ辺Ｅ’ｋｌの重みを更新する（Ｓ８１１）。例えば、文字列認識部２０５は、両者の分類信頼度を比較し、高い方の値を新しい重みとする。これは一例であり、両者の平均値に重みを更新してもよい。文字列認識部２０５は、辺Ｅｉｊが複数ある場合、各辺に対して、このループ処理を繰り返す。
【００６９】
辺リストＬｅに含まれるすべての辺に対するＳ８０６〜Ｓ８１１のループ処理が完了すると、文字列認識部２０５は、認識グラフＳ’へ追加可能な辺が、リストＬｅに残っているか否かを判定する（Ｓ８１２）。残っている場合（Ｓ８１２：Y）、文字列認識部２０５は、Ｓ８０６〜Ｓ８１１のループ処理を再度実行する。残っていない場合（Ｓ８１２：N）、文字列認識部２０５は、文字列ｉの認識グラフの更新処理を終了する。
【００７０】
認識グラフＳ’へ追加可能な辺がリストＬｅに残っているか否かの判定は、例えば、（１）辺リストが空である、（２）直前のＳ８０６〜Ｓ８１１のループ処理で辺リストＬｅの要素数に変化が無い、の２つの条件により行われる。いずれかの条件が成り立つ場合、文字列認識部２０５は、認識グラフＳ’へ追加可能な辺がリストＬｅに残っていると判定する。
【００７１】
（文字列認識の具体例）
図９は、図４及び図８で示した文字列認識処理を施す具体例の説明図である。画像９０１は、時刻ｔ’における撮影画像ｔ’、画像９０２は、時刻ｔ’より後の時刻ｔにおける撮影画像ｔである。画像９０１、９０２は、それぞれ文字列画像９１０、９２０を含む。文字列画像９１０、９２０は、同一被写体中の同一の文字列ｉに対応するものである。ただし、撮影時の角度が異なるために、文字列の位置、角度、大きさ等が異なる。図１０は、認識グラフの具体例の説明図である。
【００７２】
文字列認識部２０５は、画像９０１を入力として、文字列画像９１０を対象に図４の文字列認識処理を行う。Ｓ４０１、Ｓ４０２の処理により、文字列認識部２０５は、文字列画像９１０から文字画素塊９１１〜９１７を抽出する。文字列認識部２０５は、文字列ｉに対する認識処理が初回であるとして、Ｓ４０３〜Ｓ４０６の処理により、認識グラフＳ’として図１０（ａ）の認識グラフ１０００を生成する。認識グラフ１０００は、文字画素塊９１１〜９１７に相当する節１００１〜１００７及び終端節１００８を含む。
【００７３】
続いて文字列認識部２０５は、画像９０２を入力として、文字列画像９２０を対象に図４の文字列認識処理を行う。Ｓ４０１、Ｓ４０２の処理により、文字列認識部２０５は、文字列画像９２０から文字画素塊９２１〜９２７を抽出する。文字列認識部２０５は、文字列ｉに対して既に認識処理が行われているので、Ｓ４０３〜Ｓ４０５の処理からＳ４１０の処理、すなわち図８の処理を行う。  文字列認識部２０５は、Ｓ８０１の処理により、認識グラフＳとして図１０（ｂ）の認識グラフ１０１０を生成する。認識グラフ１０１０は、文字画素塊９２１〜９２７に相当する節１０１１〜１０１７及び終端節１０１８を含む。
【００７４】
文字列認識部２０５は、Ｓ８０２〜８０４の処理により、図１０（ａ）の認識グラフ１０００の節と図１０（ｂ）の認識グラフ１０１０の節との間で、ペア節リストＬｐを生成する。節がペアか否かの判定は、Ｓ８０３の処理で説明した判定条件が用いられる。ここでは、（１００１，１０１１），（１００２，１０１２），（１００３，１０１３），（１００５，１０１４），（１００６，１０１５），（１００７，１０１６）が、ペアとなる。
【００７５】
文字列認識部２０５は、Ｓ８０５〜Ｓ８１２の処理では、図１０（ｂ）の認識グラフ１０１０から、図１０（ａ）の認識グラフ１０００へと辺を追加あるいは更新する処理を行う。図１０（ｃ）は認識グラフ１０１０の更新後の認識グラフ１０２０を示す。
【００７６】
辺の追加は、Ｓ８０６の処理で説明した通り、辺の両端の節のペア数に従って行われる。ペア数が「２」の辺、例えば節１０１１と節１０１２との間の辺１０９１は、ペアとなる節１００１と節１００２との間に同じ分類の辺が無い。従って、文字列認識部２０５は、Ｓ８０８の処理にて、辺１０９１と同じ分類、重みを持つ新しい辺１０９３を追加する。ペア数が「１」の辺、例えば節１０１６と節１０１７との間の辺１０９２の場合、文字列認識部２０５は、まず、ペアの無い方の節１０１７に対応する節として、新規に認識グラフ１０００に節１０２１を追加する。そして文字列認識部２０５は、節１００７と節１０２１との間に、辺１０９２と同じ分類、重みの辺１０９４を追加する。他の辺に関しても同様の処理が行われる。
【００７７】
認識グラフの更新処理が終了すると、文字列認識部２０５は、Ｓ４０７の処理により、図１０（ｃ）の認識グラフ１０２０にコンテキスト情報を適用する。ここでは、Ｓ４０７の処置で説明した（式１）により、対象となる辺の重みを更新する。使用されるＢｉｇｒａｍ情報のうち、連続発生確率Ｐが（式１）の閾値ｔｈ以上である２文字を以下に列挙する。
「塩化」「化カ」「ヒカ」「カリ」「切り」「リウ」「ウム」
【００７８】
図１０（ｆ）は、これらを用いて（式１）により各辺の重みの補正をおこなった後の認識グラフ１０２０である。なお、（式１）の補正値ｄ＝０．１である。一例として、辺１０９４の更新前の重みは「０．７」であったが、Ｂｉｇｒａｍ情報の「リウ」「ウム」のそれぞれにより「０．１」ずつ加算され重みは「０．９」となった。
【００７９】
文字列認識部２０５は、Ｓ４０８の処理によりコンテキスト情報を適用した認識グラフから、最適パスを選択する。ここでは、文字列認識部２０５は、各辺の重みを加算して辺数で割った値が最大となるものを最適パスとする。図１０（ｆ）の認識グラフ１０２０においては、「塩化カリウム＝０．９０」が最適パスとして得られる。これは正解の文字列認識結果である。
【００８０】
図８に示す認識グラフの更新処理を行わず、図１０（ａ）の認識グラフ１０００及び図１０（ｂ）の認識グラフ１０１０に対して、それぞれ同じコンテキスト情報を適用した結果を、図１０（ｄ）及び図１０（ｅ）に示す。図１０（ｄ）の認識グラフ１０００及び図１０（ｅ）の認識グラフ１０１０において最適パスを求めると、「哲化カリ広＝０．６５」及び「塩イ切りウム＝０．７０」となる。
【００８１】
これは、図９の画像９０１、９０２の各文字列画像９１０、９２０を各々認識してコンテキスト情報を適用しても正解となる文字列認識結果を得ることはできないことを示す。また、２つの文字列認識結果である「哲化カリ広」、「塩イ切りウム」を融合して正解文字列を得ようとしても、各文字の対応関係を一意に定められないために、正確に融合を行うことは困難である。しかし、文字列認識部２０５は、文字列画像９１０から得た認識グラフに、文字列画像９２０から得た認識グラフを統合するような更新処理を行うことで、二つの文字列画像９１０、９２０の解釈を含んだ統合認識グラフを得ることができる。統合グラフでは、コンテキスト情報を適用可能な辺の組み合わせが二つの文字列画像９１０、９２０から同時に得られるために、最適パス選択による正解の文字列認識結果が得られる可能性が高くなる。
【００８２】
本実施形態によれば、情報処理装置１００は、対象文字列を撮影した第１の画像を入力として、抽出した文字画素塊を節、文字画素塊を組み合わせた文字要素の分類結果を辺とする第１の認識グラフを生成する。文字画素塊の組み合わせ方は、文字列画像から個々の文字を切り出す際の切り出し方に対応する。次に、情報処理装置１００は、同じ対象文字列を撮影した第２の画像を入力として、同様に抽出した文字画素塊及び文字要素による第２の認識グラフを生成し、その内容を応じて第１の認識グラフを更新する。
【００８３】
情報処理装置１００は、第１の認識グラフの節と第２の認識グラフの節とを、それぞれに対応する文字画素塊の位置関係と、第１の画像と第２の画像の間での各文字画素塊の移動量と、を考慮してペアとして対応づける。情報処理装置１００は、第２の認識グラフの節に対応する節が第１の認識グラフに無い場合、対応可能な新しい節を第１の認識グラフに追加してペアとする。情報処理装置１００は、第２の認識グラフ中の隣り合う２節の間の辺を、第１の認識グラフの該２節にペア対応する２節の間の辺としてコピーする。情報処理装置１００は、更新した第１の認識グラフにコンテキスト情報を適用し、辺の重みを更新した上で最適パスを選択することで、文字列の認識結果を得る。
【００８４】
このような処理により、情報処理装置１００は、第１の画像及び第２の画像の両方から抽出した文字画素塊及び文字要素の分類結果の全体に対してコンテキスト情報を適用し、尤もらしい文字列の認識結果を選択することができる。その結果、第１の画像及び第２の画像を個別に文字認識する場合よりも、精度の高い文字列認識処理を行うことができる。
【００８５】
上記の例では対象文字列を撮影した第１の画像及び第２の画像を処理の対象としたが、対象文字列を撮影した画像は、さらに多くてもよい。情報処理装置１００は、第１の画像及び第２の画像に追加して、対象文字列を撮影した第３、第４…の画像から得た認識グラフを統合してからコンテキスト情報を適用してもよい。
【００８６】
情報処理装置１００は、第１の画像及び１以上の他の画像から、同一文字列を対象として抽出した文字画素塊及び文字要素の分類結果の全体を含むような認識グラフを生成する。情報処理装置１００は、認識グラフに対してコンテキスト情報を適用し、尤もらしい文字列認識結果を選択する。その結果、各画像を個別に認識するよりも精度の高い文字列認識処理をおこなうことができる。また、第１および１以上の他の画像を時系列に沿って取得する場合、情報処理装置１００は、認識精度が漸進的に向上するような文字列認識処理を行うことができる。
【００８７】
（変形例）
図１１は、文字列認識処理の変形例の説明図である。画像１１００、画像１１１０、及び画像１１２０は、剛性の無い布等に印刷された識別情報の文字列「２６Ａ４８９Ｊ」を撮影した撮影画像である。撮影タイミングにより布が変形するために、各画像１１００、１１１０、１１２０は、一部の文字が認識不能な状態にまで変形している。このような撮影画像は、例えばマラソンランナーのゼッケン番号を認識するために撮影した画像等で発生しやすい。情報処理装置１００は、画像１１００、１１１０、１１２０に対して図３、図４、及び図８に示す文字列認識処理を行う。
【００８８】
情報処理装置１００は、最初に取得する画像１１００から５つの文字画素塊を抽出する。情報処理装置１００は、文字画素塊を文字要素として分類し、認識グラフ１１０１を生成する。図１１の認識グラフは、各辺における文字分類の信頼度の値を省略している。
【００８９】
次に情報処理装置１００は、画像１１１０を取得して、６つの文字画素塊を抽出して文字要素に分類し、認識グラフ１１１１を生成する。情報処理装置１００は、認識グラフ１１０１を更新するために、認識グラフ１１０１の終端節ｆを除く節ａ〜ｅと、認識グラフ１１１１の終端節を除く節ｇ〜ｌと間で、対応するペア節リストを生成する。
【００９０】
この例では、情報処理装置１００は、節に対応する文字画素塊の画像形状を比較し、形状が一致するか近似すると判定した文字画素塊のペアからペア節を生成するものとする。形状が一致するか否かの判定は、公知の画像特徴量として、画像回転や変形に強いＳＩＦＴ等を用いることができる。本例では、（ｇ，ａ）、（ｈ，ｂ）がペア節と判定され、認識グラフ１１１１のそれ以外の節ｉ、ｊ、ｋ、ｌに相当する節が認識グラフ１１０１に追加される。認識グラフ１１１１の各辺は、各々認識グラフ１１０１において対応する節の間の辺としてコピーされる。
【００９１】
続けて情報処理装置１００は、画像１１２０を取得して、５つの文字画素塊を抽出して文字要素に分類し、認識グラフ１１２１を生成する。情報処理装置１００は、認識グラフ１１０１を更新するために、認識グラフ１１０１の節ａ〜ｅ及び追加された節ｉ〜ｌと、認識グラフ１１２１の節ｎ〜ｒとの間で対応するペア節リストを生成する。この例では、情報処理装置１００は、(ｏ，ｊ）、（ｐ，ｋ），（ｑ，ｄ），（ｒ，ｅ）をペア節と判定し、認識グラフ１１２１の節ｎに相当する節を認識グラフ１１０１に追加する。認識グラフ１１２１の各辺は、各々認識グラフ１１０１において対応する節の間の辺としてコピーされる。
【００９２】
以上の処理により更新された認識グラフ１１０１は、認識グラフ１１３１となる。認識グラフ１１３１は、異なる節を最適パス検出時の開始節とできるように、仮想の開始節「０」が最初に配置されている。
【００９３】
情報処理装置１００は、認識グラフ１１３１に対してコンテキスト情報を適用し、最適パスを選出する。この例では、コンテキスト情報は、認識対象となる識別情報の文字列として予め定められたフォーマット定義を文字列パターン辞書として用いるものとする。「フォーマット定義」とは、具体的には文字数及び各文字位置である、文字種類を定義する。例えば、フォーマット定義は、識別情報の文字列が必ず７文字で構成され、３文字目と７文字目が大文字のアルファベット、それ以外が数字、といった定義である。認識グラフ１１３１では、この定義を満たすように文字列を出力するパスは一通り「２６Ａ４８９Ｊ」しかない。そのために情報処理装置１００は、文字列「２６Ａ４８９Ｊ」を認識結果として出力し、文字列認識処理を終了する。
【００９４】
なお、この例においても文字認識に用いる撮影画像は、２枚あるいは４枚以上であってもよい。
【００９５】
以上のような文字列認識処理では、情報処理装置１００が、２以上の撮影画像から、それぞれ同一文字列を対象として抽出した文字画素塊及び文字画素塊の組み合わせである文字要素の分類結果を含む認識グラフを生成し、それらを統合する。情報処理装置１００は、統合認識グラフに対してコンテキスト情報を適用し、尤もらしい文字列の認識結果を選択する。その結果、２以上の撮影画像を個別に文字認識するよりも精度の高い文字列の認識結果を取得することができる。また、複数の撮影画像を時系列に従って取得する場合、情報処理装置１００は、認識精度が漸進的に向上するような文字列の認識処理を行うことができる。
【００９６】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2018097707.tif 000003
【図２】
2018097707.tif 000004
【図３】
2018097707.tif 000005
【図４】
2018097707.tif 000006
【図５】
2018097707.tif 000007
【図６】
2018097707.tif 000008
【図７】
2018097707.tif 000009
【図８】
2018097707.tif 000010
【図９】
2018097707.tif 000011
【図１０】
2018097707.tif 000012
【図１１】
2018097707.tif 000013