(57)【特許請求の範囲】
【請求項１】
２以上の文字を配列した文字列を含む複数の文字列を画像から抽出する抽出部と、
前記抽出部が抽出した一の文字列に注目して、この注目文字列の位置から当該文字列の文字が連なる方向に離れるにつれて当該方向に直交する方向に次第に広がり、かつ、当該位置からの距離が閾値以下である探索範囲に含まれる文字列を前記画像から探索し、探索した文字列と前記注目文字列とを同一グループにして、前記複数の文字列の各文字列をグループ化するグループ化部と、
前記各文字列に対する文字認識を行う文字認識部と、
前記文字認識部により文字認識された文字列を、前記グループ毎に分類して表示されるように出力する出力部と
を備えることを特徴とする文字列出力装置。
【請求項２】
前記グループ化部は、
決められた条件を満たす文字列を前記注目文字列として前記探索を開始し、前記探索範囲に含まれる未グループ化の文字列のうち、当該注目文字列の位置からの近さに応じて新たな注目文字列を順次探索していき、当該新たな注目文字列が、それよりも先に探索したすべての注目文字列からの前記探索範囲に含まれる場合に、当該新たな注目文字列と当該すべての文字列とを同一グループにする
ことを特徴とする請求項１に記載の文字列出力装置。
【請求項３】
前記条件は、未グループ化の文字列のうち、前記画像の画像領域の予め決められた端部に最も近い位置にある文字列である
ことを特徴とする請求項２に記載の文字列出力装置。
【請求項４】
各注目文字列の前記探索範囲について、当該文字列の文字が連なる方向に対する長さにより前記閾値が定められる
ことを特徴とする請求項１から３のいずれかに記載の文字列出力装置。
【請求項５】
前記グループ化部は、
前記抽出部が抽出した文字列の文字が連なる方向に基づいて、縦書きの文字列と横書きの文字列とに分けてグループ化する
ことを特徴とする請求項１から４のいずれかに記載の文字列出力装置。
【請求項６】
前記出力部は、
前記グループ化の結果に従って、前記文字認識された文字列をグループ単位で改行して表示させるための表示データを出力する
ことを特徴とする請求項１から５のいずれかに記載の文字列出力装置。
【請求項７】
撮影部と、
前記撮影部の撮影により得られる画像から２以上の文字を配列した文字列を含む複数の文字列を抽出する抽出部と、
前記抽出部が抽出した一の文字列に注目して、この注目文字列の位置から当該文字列の文字が連なる方向に離れるにつれて当該方向に直交する方向に次第に広がり、かつ、当該位置から距離が閾値以下である探索範囲に含まれる文字列を前記画像から探索して、探索した文字列と前記注目文字列とを同一グループにして、前記複数の文字列の各文字列をグループ化するグループ化部と、
前記各文字列に対する文字認識を行う文字認識部と、
前記文字認識部により文字認識された文字列を、前記グループ毎に分類して表示されるように出力する出力部と、
前記出力部により出力された文字列を表示する表示部と
を備えることを特徴とする文字認識システム。
【請求項８】
コンピュータに、
２以上の文字を配列した文字列を含む複数の文字列を画像から抽出する抽出ステップと、
前記抽出ステップで抽出した一の文字列に注目して、この注目文字列の位置から当該文字列の文字が連なる方向に離れるにつれて当該方向に直交する方向に次第に広がり、かつ、当該位置からの距離が閾値以下である探索範囲に含まれる文字列を前記画像から探索して、探索した文字列と前記注目文字列とを同一グループにして、前記複数の文字列の各文字列をグループ化するグループ化ステップと、
前記各文字列に対する文字認識を行う文字認識ステップと、
前記文字認識ステップで文字認識された文字列を、前記グループ毎に分類して表示されるように出力する出力ステップと
を実行させるためのプログラム。
【請求項９】
２以上の文字を配列した文字列を含む複数の文字列を画像から抽出する抽出ステップと、
前記抽出ステップで抽出した一の文字列に注目して、この注目文字列の位置から当該文字列の文字が連なる方向に離れるにつれて次第に広がり、かつ、当該位置からの距離が閾値以下である探索範囲に含まれる文字列を前記画像から探索して、探索した文字列と前記注目文字列とを同一グループにして、前記複数の文字列の各文字列をグループ化するグループ化ステップと、
前記各文字列に対する文字認識を行う文字認識ステップと、
前記文字認識ステップで文字認識された文字列を、前記グループ毎に分類して表示されるように出力する出力ステップと
を有することを特徴とする文字列出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像中の文字列のレイアウトに従って文字認識の結果を出力するための技術に関する。
【背景技術】
【０００２】
画像に対する文字認識処理の結果を、その画像中での文字（又は文字列）のレイアウトに従った内容で出力する技術がある。例えば、特許文献１は、手書き文字を含む原稿を対象としたＯＣＲ（Optical Character Recognition）処理の結果を、原稿での文字の大きさや文字間スペースを再現して印刷することにより、元原稿のレイアウトに準ずるようにすることを開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１９６９７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、縦書きと横書きなどのように、文字列の文字が連なる方向（列方向）がそれぞれ異なる文字列がひとつの画像の中に混在することがある。ここで、縦書きの文字列と横書きの文字列とは別々のまとまりとして捉えるべきであるが、従来の文字認識技術では、これらを区別せずに文字認識結果を出力してしまい、ユーザがその出力結果を見たときに意味が分からない文字列になることがある。また、横書きの文字列又は縦書きの文字列のいずれか一方だけが画像に含まれている場合であっても、その画像の元原稿を書いたユーザが、例えば或る意味を持つ文字列群を或る場所にまとめて書き、また、別の意味を持つ文字列群をそれとは別の場所にまとめて書く、といった具合に、各文字列をいくつかのまとまりに分けた上で、文字列を書く場所を変えるというようなケースがある。従来の文字認識技術では、このようなグループを区別せずに文字認識結果を出力してしまい、ユーザがその出力結果を見たときに、せっかくグループ分けした文字列が混在して、見分けがつかなくなってしまうことがある。
そこで、本発明の目的は、画像に対する文字認識の結果を出力するときに、その画像に含まれる文字列群のまとまりをも表現することができる仕組みを提供することにある。
【課題を解決するための手段】
【０００５】
上述した課題を解決するため、本発明の文字列出力装置は、２以上の文字を配列した文字列を含む複数の文字列を画像から抽出する抽出部と、前記抽出部が抽出した一の文字列に注目して、この注目文字列の位置から当該文字列の文字が連なる方向に離れるにつれて当該方向に直交する方向に次第に広がり、かつ、当該位置からの距離が閾値以下である探索範囲に含まれる文字列を前記画像から探索し、探索した文字列と前記注目文字列とを同一グループにして、前記複数の文字列の各文字列をグループ化するグループ化部と、前記各文字列に対する文字認識を行う文字認識部と、前記文字認識部により文字認識された文字列を、前記グループ毎に分類して表示されるように出力する出力部とを備えることを特徴とする。
【０００６】
本発明の好ましい態様において、前記グループ化部は、決められた条件を満たす文字列を前記注目文字列として前記探索を開始し、前記探索範囲に含まれる未グループ化の文字列のうち、当該注目文字列の位置からの近さに応じて新たな注目文字列を順次探索していき、当該新たな注目文字列が、それよりも先に探索したすべての注目文字列からの前記探索範囲に含まれる場合に、当該新たな注目文字列と当該すべての文字列とを同一グループにする。この場合に、前記条件は、未グループ化の文字列のうち、前記画像の画像領域の予め決められた端部に最も近い位置にある文字列であることが好ましい。
【０００７】
本発明の別の好ましい態様において、各注目文字列の前記探索範囲について、当該文字列の文字が連なる方向に対する長さにより前記閾値が定められる。
本発明の別の好ましい態様において、前記グループ化部は、前記抽出部が抽出した文字列の文字が連なる方向に基づいて、縦書きの文字列と横書きの文字列とに分けてグループ化する。
本発明の別の好ましい態様において、前記出力部は、前記グループ化の結果に従って、前記文字認識された文字列をグループ単位で改行して表示させるための表示データを出力する。
【０００８】
また、本発明の文字認識システムは、撮影部と、前記撮影部の撮影により得られる画像から２以上の文字を配列した文字列を含む複数の文字列を抽出する抽出部と、前記抽出部が抽出した一の文字列に注目して、この注目文字列の位置から当該文字列の文字が連なる方向に離れるにつれて当該方向に直交する方向に次第に広がり、かつ、当該位置から距離が閾値以下である探索範囲に含まれる文字列を前記画像から探索して、探索した文字列と前記注目文字列とを同一グループにして、前記複数の文字列の各文字列をグループ化するグループ化部と、前記各文字列に対する文字認識を行う文字認識部と、前記文字認識部により文字認識された文字列を、前記グループ毎に分類して表示されるように出力する出力部と、前記出力部により出力された文字列を表示する表示部とを備えることを特徴とする。
【０００９】
また、本発明のプログラムは、コンピュータに、２以上の文字を配列した文字列を含む複数の文字列を画像から抽出する抽出ステップと、前記抽出ステップで抽出した一の文字列に注目して、この注目文字列の位置から当該文字列の文字が連なる方向に離れるにつれて当該方向に直交する方向に次第に広がり、かつ、当該位置からの距離が閾値以下である探索範囲に含まれる文字列を前記画像から探索して、探索した文字列と前記注目文字列とを同一グループにして、前記複数の文字列の各文字列をグループ化するグループ化ステップと、前記各文字列に対する文字認識を行う文字認識ステップと、前記文字認識ステップで文字認識された文字列を、前記グループ毎に分類して表示されるように出力する出力ステップとを実行させるためのものである。
また、本発明の文字列出力方法は、２以上の文字を配列した文字列を含む複数の文字列を画像から抽出する抽出ステップと、前記抽出ステップで抽出した一の文字列に注目して、この注目文字列の位置から当該文字列の文字が連なる方向に離れるにつれて次第に広がり、かつ、当該位置からの距離が閾値以下である探索範囲に含まれる文字列を前記画像から探索して、探索した文字列と前記注目文字列とを同一グループにして、前記複数の文字列の各文字列をグループ化するグループ化ステップと、前記各文字列に対する文字認識を行う文字認識ステップと、前記文字認識ステップで文字認識された文字列を、前記グループ毎に分類して表示されるように出力する出力ステップとを有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、画像に対する文字認識の結果を出力するときに、その画像に含まれる文字列群のまとまりをも表現することができる。
【図面の簡単な説明】
【００１１】
【図１】文字認識システムの構成を示す図
【図２】文字列出力装置のハードウェア構成を示すブロック図
【図３】携帯端末のハードウェア構成を示すブロック図
【図４】文字列出力装置の制御部が実現する機能構成を示す機能ブロック図
【図５】撮影画像の一例を示す図
【図６】グループ化処理の手順を説明するフローチャート
【図７】グループ化処理の説明図
【図８】横書きの文字列に対するグループ化処理の説明図
【図９】縦書きの文字列に対するグループ化処理の説明図
【図１０】グループ化処理の結果の説明図
【図１１】文字認識システムにおいて実行される処理の手順を示すシーケンス図
【図１２】表示データの内容の一例を示す図
【発明を実施するための形態】
【００１２】
以下、図面を参照しつつ本発明の一実施形態について説明する。
［実施形態の構成］
図１は、文字認識システム１の構成を示す図である。
図１に示すように、文字認識システム１は、文字列出力装置１０と携帯端末２０とを備える。文字列出力装置１０と携帯端末２０とは、通信網ＮＷを介して互いに通信可能に接続されている。通信網ＮＷは、移動通信網やインターネット、ゲートウェイ等を含む通信網である。文字列出力装置１０は、携帯端末２０から受信した撮影画像に対する文字認識等を行い、この処理により得られる文字コード（例えば、ASCII、Unicode、Shift_JIS等）で記述した文字列を携帯端末２０に対して提供するサービスを行う。携帯端末２０は、撮影機能を有しユーザが携帯可能な情報処理端末であり、ここでは携帯電話端末である。携帯端末２０は、文字列出力装置１０により提供されるサービスを受けるユーザによって所有されるものである。
なお、図１には携帯端末２０を１つだけ記載しているが、実際には更に多数の携帯端末２０が文字認識システム１に含まれる。また、携帯端末２０は、携帯電話端末のほか、スマートフォンやＰＤＡ（Personal Digital Assistant）、携帯ゲーム機等であってもよい。
【００１３】
図２は、文字列出力装置１０のハードウェア構成を示すブロック図である。図２に示すように、文字列出力装置１０は、制御部１１と、通信部１２と、記憶部１３とを備える。
制御部１１は、ＣＰＵ（Central Processing Unit）を含む演算装置やメモリを備え、記憶部１３に記憶されたプログラムを読み出して実行することにより、文字列出力装置１０の各部を制御する。通信部１２は、通信網ＮＷに接続するためのインタフェースである。記憶部１３は、例えばハードディスク装置を備え、ＯＣＲプログラム１３１や、ＯＣＲプログラム１３１を用いて実行可能な光学文字認識処理（以下、「ＯＣＲ処理」という。）に必要となる文字パターンファイルや辞書ファイル等の情報を記憶する。
【００１４】
図３は、携帯端末２０のハードウェア構成を示すブロック図である。図３に示すように、携帯端末２０は、制御部２１と、操作部２２と、無線通信部２３と、撮影部２４と、表示部２５と、記憶部２６とを備える。
制御部２１は、ＣＰＵを含む演算装置やメモリを備え、記憶部２６に記憶されたプログラムを読み出して実行することにより携帯端末２０の各部の動作を制御する。操作部２２は、テンキー等の複数の操作子を備え、ユーザによる操作子の操作を受け付けて、その操作に応じた操作信号を制御部２１に出力する。無線通信部２３は、無線通信回路やアンテナを備え、通信網ＮＷに接続するためのインタフェースである。撮影部２４は、ＣＣＤ（Charge Coupled Device）等の撮像素子を備え、撮影して撮影画像を生成する。表示部２５は、例えば液晶駆動回路や液晶ディスプレイを備え、画像の表示により情報に応じた内容を報知する。記憶部２６は、例えばＥＥＰＲＯＭ（Electronically Erasable and Programmable ROM）を備え、文字列出力装置１０が提供されるサービスを受けるために必要なアプリケーションプログラム等を記憶する。
なお、携帯端末２０は、上記構成以外にも、受話音声を収音するマイクや送話音声を放音するスピーカ等、携帯電話端末として機能するための構成を備える。
【００１５】
図４は、文字列出力装置１０の制御部１１が実現する機能構成を示す機能ブロック図である。
制御部１１はＯＣＲプログラム１３１を実行することにより、撮影画像取得部１１１と、文字列抽出部１１２と、グループ化部１１３と、文字認識部１１４と、文字列出力部１１５とに相当する機能を実現する。
撮影画像取得部１１１は、携帯端末２０での撮影により得られる撮影画像を取得する。詳しくは後述するが、携帯端末２０は撮影部２４により撮影して得た撮影画像を、文字列出力装置１０宛てに送信する。撮影画像取得部１１１は、携帯端末２０により送信された撮影画像が通信部１２により受信されると、受信された撮影画像を通信部１２から取得する。撮影画像取得部１１１は、撮像画像の一例として、図５に示される内容の撮像画像Ｐ１を取得する。この実施形態の撮影画像は、矩形の画像領域を有する画像であり、画像領域内の各位置にはｘｙ直交座標系に従って座標が割り当てられている。ｘｙ直交座標系では、撮影画像の左上隅点が原点Ｏに対応し、画像領域の一方の辺（紙面左右方向に延びる辺）に沿ってｘ軸が延び、他方の辺（紙面上下方向に延びる辺）に沿ってｙ軸が延びている。撮影画像Ｐ１の画像領域の短手方向がｘ軸方向に一致し、長手方向がｙ軸方向に一致する。また、撮像画像Ｐ１には、文字列Ｔ１〜Ｔ８という８つの文字列が含まれる。このうち、文字列Ｔ１〜Ｔ６は、横書きで記述された文字列であり、文字列Ｔ７及びＴ８は、縦書きで記述された文字列である。横書き及び縦書きいずれであっても、文字が連なる方向に文字列が延びる。
なお、「軸方向」は、この軸に平行な方向のことをいう。また、この実施形態では、複数の文字を配列した文字列を想定するが、１文字であっても本発明の文字列に含まれる。
【００１６】
文字列抽出部１１２は、撮影画像取得部１１１が取得した撮影画像から各文字列を抽出する。文字列抽出部１１２は、例えば、撮影画像に対して二値化処理を施した後に、文字列を囲む矩形状のテキスト領域を定めることによって撮影画像から文字列を抽出する。このテキスト領域は、例えば、文字列に外接する外接矩形で定義される矩形領域である。文字列抽出部１１２は、撮像画像Ｐ１について、文字列Ｔ１〜Ｔ８のそれぞれで独立したテキスト領域を定める。
なお、文字列抽出部１１２が行う文字列の抽出は、ここではＯＣＲ処理の前段階の処理として行われるものである。
【００１７】
グループ化部１１３は、後述するグループ化処理を行うことにより、文字列抽出部１１２により抽出された各文字列をグループ化する。グループ化処理の内容については後述するが、グループ化部１１３は、撮影画像において相対的に近い位置にある文字列同士を１つのグループにするようグループ化する。
【００１８】
文字認識部１１４は、撮影画像取得部１１１が取得した撮影画像から文字列を認識するＯＣＲ処理を行って、各文字列を文字コードで記述された文字列に変換する。文字認識部１１４は、記憶部１３に記憶された文字パターンファイルや辞書ファイル等を用いて、周知の方法によりＯＣＲ処理を行う。
なお、グループ化部１１３は、文字列抽出部１１２により文字列が抽出され、更に、文字認識部１１４により文字認識された結果を用いて、グループ化処理を行ってもよい。
【００１９】
文字列出力部１１５は、文字認識部１１４により文字コード化された文字列を、グループ化部１１３のグループ化の結果に従って、各文字列がグループ毎に分類して表示されるように出力する。文字列出力部１１５は、文字コード化された文字列を表示装置に表示させるための表示データを生成し、生成した表示データを通信部１２に出力する。文字列出力部１１５が出力した表示データは、撮影画像取得部１１１の文字列の取得元（つまり、携帯端末２０）に通信部１２によって送信される。
文字認識システム１の構成の説明は以上である。
【００２０】
［実施形態の動作］
続いて、文字認識システム１に関わる動作について説明する。
まず、文字列出力装置１０が実行するグループ化処理（つまり、グループ化部１１３に関わる機能）についてより詳細に説明する。
図６は、グループ化処理の手順を示すフローチャートである。以下では、文字列出力装置１０が、図５に示す内容の撮像画像Ｐ１を用いてグループ化処理を行う場合の動作について説明する。図７〜９は、それぞれグループ化処理の説明図である。
制御部１１は、撮影画像Ｐ１を取得すると、撮影画像Ｐ１の座標軸を変換する（ステップＳ５１）。ここで、制御部１１は、撮影画像に含まれる文字列の天地方向を撮影画像の天地方向に一致させるように撮影画像Ｐ１に対して回転処理を施す。この回転処理によって、図５に示す撮影画像Ｐ１は、図７（ａ）に示す撮影画像Ｐ２に加工される。撮影画像Ｐ２は、撮影画像Ｐ１を時計回り方向に９０度回転した画像であり、画像領域の長手方向がｘ軸方向に平行となり、短手方向がｙ軸方向に平行となる。
なお、図７（ａ）において、矩形の二点鎖線は、それぞれ各文字列に対応するテキスト領域を表したものであり、実際に撮影画像に含まれているわけではない。ただし、図が見づらくなるのを防ぐため、文字列とテキスト領域を示す二点鎖線とを若干離して図示している。矩形の二点鎖線の意味は、他の図面でも同じである。図７（ａ）に示すように、テキスト領域の長手方向は、このテキスト領域に含まれる文字列において文字が連なる方向（以下、「列方向」という。）に一致する。よって、ステップＳ５１の処理では、制御部１１は各テキスト領域の長手方向を参照して、撮影画像を９０度回転させるか、撮影画像を回転させないかといった回転処理の内容を決定する。
【００２１】
次に、制御部１１は、撮影画像から抽出した各文字列の列方向に基づいて、縦書きの文字列と横書きの文字列とに分類する（ステップＳ５２）。ここでは、制御部１１は、各テキスト領域の長手方向をｘ軸又はｙ軸の向きが近い方の軸と平行にするよう、各文字列を回転させる。この回転により、図７（ａ）に示す撮影画像Ｐ２は、図７（ｂ）に示す撮影画像Ｐ３に加工される。これにより、各テキスト領域の長手方向（つまり、文字列の列方向）においては、横書きの文字列についてはｘ軸に平行となり、縦書きの文字列についてはｙ軸に平行となる。
なお、制御部１１は、ＯＣＲ処理を行ってからグループ化処理を行ってもよい。この場合、制御部１１は、ステップＳ５１の処理ではＯＣＲ処理から文字の天地方向を特定し、ステップＳ５２の処理では、ＯＣＲ処理からテキスト領域を特定したり、テキスト領域に含まれる文字列の文字が連なる方向を特定したりするとよい。
【００２２】
続いて、制御部１１は、横書きの文字列を対象としたグループ化処理を開始する（ステップＳ５３）。このとき、制御部１１は、例えば、横書きの文字列を対象とすることを示すフラグデータをメモリに記憶する。これにより、このフラグデータがメモリに記憶されている限りは、制御部１１は撮影画像に含まれる文字列のうち、横書きの文字列を対象として後述する処理ステップを実行する。
【００２３】
次に、制御部１１は、撮影画像から抽出した文字列の中から、決められた条件を満たす文字列を基準文字列に決定する（ステップＳ５４）。基準文字列は、制御部１１により文字列の探索が開始される際に、その起点となる文字列である。具体的には、制御部１１は、横書きの文字列については、未だいずれのグループにも分類していない文字列（未グループ化の文字列）のうち、テキスト領域の頂点が最も撮影画像の上端に近い文字列（つまり、ｙ座標が最小である文字列。）を基準文字列に決定する。
なお、この実施形態の頂点は、横書きの文字列についてはテキスト領域の左上に位置するものを指すものとする。テキスト領域の頂点は、この実施形態において、このテキスト領域に含まれる文字列の位置を表すものである。ここでは、ステップＳ５４の処理において、制御部１１は「福岡」という文字列Ｔ１を基準文字列に決定する。
【００２４】
次に、制御部１１は、ステップＳ５４の処理で決定した基準文字列に注目し、これを注目文字列として、この注目文字列の探索範囲に含まれる文字列を探索する（ステップＳ５５）。注目とは、制御部１１が探索範囲を設定する文字列を特定すること、つまり、探索範囲の起点となる頂点を有するテキスト領域を特定することをいう。制御部１１が実行するステップＳ５５の処理の内容について、図８（ａ）を参照しつつ説明する。図８（ａ）は、撮影画像Ｐ３のうち文字列Ｔ１付近を拡大した様子を表す。
制御部１１は、注目文字列Ｔ１の頂点ｖ１を起点として、注目文字列の列方向（つまり、ｘ軸方向）に対する両側に、それぞれ探索範囲Ｒ１（太線枠内）を設定する。探索範囲Ｒ１は、頂点ｖ１から注目文字列の列方向（つまり、ｘ軸方向）に角度θで広がり、かつ、頂点ｖ１からのｘ軸方向に対する距離が３Ｌ１以下である三角形の範囲である。ここでは、θ＝１０°であり、頂点ｖ１よりも上側の領域（つまり、ｙ座標が小さい領域）は探索範囲Ｒ１に含まれない。３Ｌ１という距離は、文字列Ｔ１の列方向の長さに応じて定められた閾値であり、この実施形態では、その長さの３倍となるように定められる。なお、θの値は予め決められた値である。
【００２５】
ここで、制御部１１は、探索範囲Ｒ１内に未グループ化の別の文字列の頂点が含まれていれば、このうちの頂点ｖ１から最も近いものを新たに探索する。ここでいう「最も近い」とは、ｙ軸方向（撮影画像の天地方向）に対する距離が最も近いということを意味する。ただし、例えば直線距離やｘ軸方向（撮影画像の左右方向）に対する距離が近いという構成であってもよい。図８（ａ）に示すように、ここでは探索範囲Ｒ１内に「大阪」という文字列Ｔ２の頂点ｖ２と、「東京」という文字列Ｔ３の頂点ｖ３と探索範囲Ｒ１に含まれるが、制御部１１は「大阪」という文字列Ｔ２を新たに探索することになる。
【００２６】
次に、制御部１１は、ステップＳ５５の処理で新たな文字列を探索したか否かを判定する（ステップＳ５６）。制御部１１は、新たな文字列を探索したと判定すると（ステップＳ５６；ＹＥＳ）、当該新たな注目文字列が、それよりも先に探索したすべての未グループ化の文字列の探索範囲のそれぞれに含まれるか否かを判定する（ステップＳ５７）。ここでは、制御部１１は、ステップＳ５５の処理で探索した文字列Ｔ２が、先に探索したＴ１の探索範囲Ｒ１に含まれるか否かを判定する。図８（ａ）に示すとおり、ここでは、制御部１１はステップＳ５７の処理で「ＹＥＳ」と判定し、ステップＳ５８の処理に進む。そして、制御部１１は、直前のステップＳ５５の処理で探索した文字列Ｔ２を新たな注目文字列に決定して、ステップＳ５５の処理に戻る。
【００２７】
次に、制御部１１は、ステップＳ５８の処理で決定した注目文字列Ｔ２の探索範囲に含まれる文字列を探索する（ステップＳ５５）。ここで、ステップＳ５５の処理の内容について、図８（ｂ）を参照しつつ説明する。図８（ｂ）は、撮影画像Ｐ３のうち文字列Ｔ２付近を拡大した様子を表す。制御部１１は、注目文字列Ｔ２の頂点ｖ２を起点として、注目文字列の列方向（つまり、ｘ軸方向）に対する両側に、それぞれ探索範囲Ｒ２（太線枠内）を設定する。探索範囲Ｒ２は、頂点ｖ２から注目文字列の列方向に角度θで広がり、かつ、頂点ｖ２からのｘ軸方向に対する距離が３Ｌ２以下である三角形の範囲である。ここでは、θ＝１０°であり、頂点ｖ２よりも上側の領域は探索範囲Ｒ２に含まれない。３Ｌ２という距離は、文字列Ｔ２の列方向の長さに応じて定められた閾値であり、この実施形態では、その長さの３倍となるように定められる。
【００２８】
図８（ｂ）に示すように、探索範囲Ｒ２内には「東京」という文字列Ｔ３の頂点ｖ３が含まれるので、制御部１１は、ステップＳ５５の処理で文字列Ｔ３を新たに探索する。次に、制御部１１は、ステップＳ５６の処理で「ＹＥＳ」と判定して、文字列Ｔ３よりも先に探索した、未グループ化のすべての注目文字列の探索範囲のそれぞれにこの注目文字列が含まれるか否かを判定する（ステップＳ５７）。ここでは、制御部１１は、文字列Ｔ３がそれよりも先に探索したすべての未グループ化の文字列（つまり、文字列Ｔ１及びＴ２）の探索範囲Ｒ１，Ｒ２のそれぞれに含まれるか否かを判定する。図８（ａ），（ｂ）に示すとおり、ここでは、制御部１１はステップＳ５７の処理で「ＹＥＳ」と判定し、ステップＳ５８の処理に進む。そして、制御部１１は、直前のステップＳ５５の処理で探索した文字列Ｔ３を新たな注目文字列に決定して、ステップＳ５５の処理に戻る。
【００２９】
次に、制御部１１は、ステップＳ５８で決定した注目文字列Ｔ３の探索範囲に含まれる文字列を探索する（ステップＳ５５）。ここで、ステップＳ５５の処理の内容について、図８（ｃ）を参照しつつ説明する。図８（ｃ）は、撮影画像Ｐ３のうち文字列Ｔ３付近を拡大した様子を表す。制御部１１は、探索範囲Ｒ１，Ｒ２と同じ根拠に基づいて、注目文字列Ｔ３の頂点ｖ３を起点とした探索範囲Ｒ３（太線枠内）を設定する。図８（ｃ）に示すように、探索範囲Ｒ３には別の文字列が含まれないから、制御部１１は、ステップＳ５５の処理では文字列を探索しない。そして、制御部１１は、ステップＳ５６の処理で「ＮＯ」と判定して、ステップＳ５９の処理に進む。
なお、制御部１１は、ステップＳ５５の処理で新たな文字列を探索した場合であっても、ステップＳ５６の処理で、それよりも先に探索した未グループ化のすべての文字列の各探索範囲に当該新たな文字列が含まれないときには、ステップＳ５７の処理で「ＮＯ」と判定して、ステップＳ５９の処理に進む。つまり、制御部１１は、基準文字列から或る程度離れた文字列については、これらが同一グループに属さないようにする。
【００３０】
そして、制御部１１は、ステップＳ５４の処理で決定した基準文字列と、ステップＳ５５の処理で探索した文字列とを同一グループにして各文字列をグループ化する（ステップＳ５９）。ここでは、制御部１１は、文字列Ｔ１，Ｔ２及びＴ３を同一のグループとしてグループ化する。このグループ化によって、横書きの文字列については、撮影画像Ｐ３において天地方向に対する位置が互いに近く（つまり、ｙ座標が比較的近く）、かつ、その左右方向（ｘ座標方向）に対して相対的に近い位置にある文字列同士が同一グループに属する。
【００３１】
次に、制御部１１は、横書きの文字列について未グループ化の文字列があるか否かを判定する（ステップＳ６０）。撮影画像Ｐ３には、未グループ化の横書きの文字列が別に含まれるから、制御部１１は、ステップＳ６０の処理で「ＹＥＳ」と判定して、ステップＳ５４の処理に戻る。そして、制御部１１は、文字列Ｔ４を基準文字列と決定して、上述した手順で処理ステップＳ５５〜Ｓ５９の処理ステップを実行してグループ化を行う。ここでは、制御部１１は、文字列Ｔ４のみを１つのグループにグループ化する。同様に、制御部１１は、文字列Ｔ５を基準文字列として上述した手順で処理ステップＳ５５〜Ｓ５９の処理を実行し、文字列Ｔ５及びＴ６を１つのグループにグループ化する。
【００３２】
ステップＳ６０の処理で、制御部１１は、未グループの横書きの文字列がないと判定すると（ステップＳ６０；ＮＯ）、横書き及び縦書きの双方について、上記グループ化に係る処理が終了したか否かを判定する（ステップＳ６１）。ここでは、制御部１１は、縦書きの文字列のグループ化を完了していないので、ステップＳ６１の処理で「ＮＯ」と判定し、縦書きの文字列に対するグループ化処理を開始すると判断する（ステップＳ６２）。このとき、制御部１１は、例えば、縦書きの文字列を対象とすることを示すフラグデータをメモリに記憶（更新）する。これにより、このフラグデータがメモリに記憶されている限りは、制御部１１は撮影画像に含まれる文字列のうち、縦書きの文字列を対象として後述する処理ステップを実行する。そして、制御部１１は、ステップＳ５４の処理に戻る。
【００３３】
次に、制御部１１は、縦書きの文字列について上記同様の手順でステップＳ５４〜Ｓ６０の処理ステップを実行して、縦書きの文字列についてグループ化処理を行う。
図９は、縦書きの文字列のグループ化を説明する図である。図９は、撮影画像Ｐ３のうち文字列Ｔ７，８付近を拡大した様子を表す。制御部１１は、縦書きの文字列の中から基準文字列を決定する（ステップＳ５４）。ここでの基準文字列は、未グループ化の文字列のうち、頂点の座標が最も右側（つまり、ｘ座標が最大である。）である文字列を基準文字列として決定する。この実施形態の頂点は、縦書きの文字列についてはテキスト領域の右上に位置するものを指し、以下の説明でも同様とする。ここでは、制御部１１は、「連休プランが」という文字列Ｔ７を基準文字列に決定する。
【００３４】
そして、制御部１１は、注目文字列Ｔ７の探索範囲に含まれる文字列を探索する（ステップＳ５５）。ここでは、制御部１１は、注目文字列Ｔ７の頂点ｖ７を起点として、注目文字列の列方向（つまり、ｙ軸方向）に対する両側に、それぞれ探索範囲Ｒ７（太線枠内）を設定する。文字列Ｔ７の文字列の長さはＬ７である。探索範囲Ｒ７は、頂点ｖ７から注目文字列の列方向（つまり、ｙ軸方向）に角度θで広がり、かつ、頂点ｖ７からのｙ軸方向に対する距離が３Ｌ７以下である範囲である。ここでは、θ＝１０°であり、頂点ｖ７よりも右側の領域（つまり、ｘ座標が大きい領域）は探索範囲Ｒ７に含まれない。３Ｌ７という距離は、文字列Ｔ７の列方向の長さに応じて定められた閾値であり、この実施形態では、その長さの３倍となるように定められる。なお、θの値は予め決められた値である。このように、縦書きの文字列の探索範囲は横書きの文字列の探索範囲を時計回りに９０度回転したものに等しい。
【００３５】
制御部１１は、ステップＳ５５の処理で、横書きの場合と同じ手順で文字列の探索を行うが、探索範囲Ｒ７に別の文字列が含まれないから、ステップＳ５６の処理では「ＮＯ」と判定する。そして、制御部１１は、文字列Ｔ７のみを１つのグループにグループ化する。引き続き、制御部１１は、文字列Ｔ８を基準文字列として同様に探索を行うが、ステップＳ５９の処理では、文字列Ｔ８のみを１つのグループにグループ化する。このグループ化によって、縦書きの文字列については、ｙ座標が比較的近く、かつ、ｘ座標が相対的に近い位置にある文字列同士を同一にグループにグループ化される。
【００３６】
そして、制御部１１は、ステップＳ６０の処理で「ＮＯ」と判定し、さらに、ステップＳ６１の処理で「ＹＥＳ」と判定すると、グループ化処理を終了する。
以上のグループ化処理によって、制御部１１は、撮影画像中の各文字列をいずれか１つのグループに属するようにグループ化する。
【００３７】
図１０は、撮影画像Ｐ１に対するグループ化処理の結果を示す図である。
図１０に示すように、横書きの文字列については、文字列Ｔ１，Ｔ２及びＴ３がグループＧｒ１に属し、文字列Ｔ４がグループＧｒ２に属し、文字列Ｔ５及びＴ６がグループＧｒ３に属する。また、縦書きの文字列については、文字列Ｔ７がグループＧｒ４に属し、文字列Ｔ８がグループＧｒ５に属する。
【００３８】
次に、文字認識システム１の全体的な動作について説明する。図１１は、文字認識システム１において実行される処理の手順を示すシーケンス図である。
まず、携帯端末２０のユーザが、文字列出力装置１０により提供されるサービスを受けようと考えると、操作部２２を操作して、それに必要なアプリケーションプログラムの起動を携帯端末２０に対して指示する。制御部２１は、この指示に応じた操作信号を操作部２２から受け取ると、このアプリケーションプログラムを記憶部２６から読み出して実行する。次に、制御部２１は、撮影部２４の撮影機能を起動させる。ユーザは表示部２５に表示される撮影内容を見ながら、撮影対象物に撮影部２４の撮影レンズを向け、撮影指示を意味する操作部２２の操作を行う。撮影対象物は、例えば、手書き文字が記述された原稿のほか、雑誌やポスター、看板、商店の陳列棚に配置された各商品を説明する札等が挙げられるが、文字が記述されたものであればどのようなものでもよい。
【００３９】
制御部２１は、操作部２２により撮影指示の操作が受け付けられると、撮影部２４によって撮影対象物を撮影し、撮影画像を生成する（ステップＳ１）。制御部２１は、生成した撮影画像を無線通信部２３によって文字列出力装置１０宛てに送信する（ステップＳ２）。このとき、制御部２１は、携帯端末２０の電子メールアドレス等、ＯＣＲ処理の認識結果を受け取るために必要な情報も併せて送信する。
【００４０】
文字列出力装置１０の制御部１１は、携帯端末２０により送信された撮影画像を通信部１２により受信し、これを取得する（ステップＳ３）。次に、制御部１１は、取得した撮影画像に含まれる文字列を抽出する（ステップＳ４）。ステップＳ４の処理では、制御部１１は各文字列に対するテキスト領域を定めることで文字列を抽出する。そして、制御部１１は、図６に示した手順に従ってグループ化処理を実行する（ステップＳ５）。次に、制御部１１は、撮影画像に含まれる各文字列に対してＯＣＲ処理を行う（ステップＳ６）。
なお、制御部１１は、ＯＣＲ処理を行ってからグループ化処理をしてもよく、ステップＳ５，Ｓ６の処理の順序を入れ替えてもよい。この場合、制御部１１は、ＯＣＲ処理からテキスト領域を特定したり、文字列の文字が連なる方向を特定したりするとよい。
【００４１】
そして、制御部１１は、ステップＳ５のグループ化処理と、ステップＳ６のＯＣＲ処理の結果とに基づいて、表示データを生成する（ステップＳ７）。この表示データは、ＯＣＲ処理が施された文字列をグループ毎に分類して表示出力するためのデータである。制御部１１は、生成した文字コードを含み、かつ、各文字列の表示位置を特定可能な表示データを生成し、携帯端末２０を送信先と指定して通信部１２により送信する（ステップＳ８）。
【００４２】
携帯端末２０の制御部２１は、文字列出力装置１０により送信された表示データを通信部１２により受信する（ステップＳ９）。そして、制御部２１は、受信した表示データに基づいて表示部２５に画像を表示させる（ステップＳ１０）。制御部２１は、撮影画像Ｐ１に基づいて生成された表示データを受信した場合、図１２に示す画像を表示部２５に表示させる。
図１２は、表示データの内容の一例を示す図である。
図１２に示すように、表示データに基づいて表示される表示画像にあっては、縦書きと横書きとに分けて表示されるとともに、ＯＣＲ処理が施された文字列がグループ単位で改行して表示される。また、表示画像にあっては、同一グループに属する各文字列はスペースを用いてそれぞれ離して配置されるとともに、撮影画像Ｐ３で左側に位置したものが表示画像でも左側に位置し、右側に位置したものが表示画像でも右側に位置する。また、撮影画像Ｐ３で上側に位置した文字列が表示画像でも上側に位置し、下側に位置した文字列が表示画像でも下側に位置する。つまり、制御部１１は、ｘ座標及びｙ座標に応じた位置に文字列が表示画像上に表示されるように表示データを生成する。図１２に示す内容の表示データにおいては、横書きの文字列が上位に表示され、縦書きの文字列が下位に表示されているが、これらが逆であってもよい。また、撮影対象物での文字列のレイアウトに近くなるように、例えば上述したテキスト領域の頂点の座標に基づいて、撮影画像上で上端に最も近いグループの文字列が横書きであれば横書きを上位にし、上端に最も近いグループの文字列が縦書きであれば縦書きを上位にしてもよい。また、行単位で横書きの文字列と縦書きの文字列とが混在していてもよく、撮影画像上で上端に近いグループの文字列ほど、表示データにおいても上位になるように文字列が配置されてもよい。
なお、携帯端末２０は文字コード化された文字列を受信するから、例えば、この文字列を操作部２２の操作に応じて編集したり、電子メールにコピー（又はカット）及びペーストしたりする、といった具合に利用することも可能である。
【００４３】
以上説明した実施形態によれば、文字列出力装置１０が実行したグループ化処理によって、撮影画像において天地方向に対する位置が相対的に近く、かつ、左右方向に対する位置が相対的に近い文字列が表示画像中でも同一グループに分類され、撮影画像でのレイアウトを考慮した配置で表示画像中に文字列が配置される。また、探索範囲は、文字列の列方向に対して頂点から離れるほど広がるから、例えば、携帯端末２０の撮影画像の天地方向と、文字列の天地方向とが完全には一致しておらず、文字列がやや傾いてしまっていても、実施形態で説明したようなグループ化及び文字列の表示が可能である。これにより、文字列出力装置１０によれば、画像に対する文字認識の結果を出力するときに、その画像に含まれる文字列群のまとまりをも表現することができ、例えばユーザが、各文字列の撮影対象物（又は、撮影画像）上での各文字列の位置を直観的に把握できるようにすることもできる。
【００４４】
［変形例］
本発明は、上述した実施形態と異なる形態で実施することが可能である。本発明は、例えば、以下のような形態で実施することも可能である。また、以下に示す変形例は、各々を適宜に組み合わせてもよい。
［変形例１］
上述した実施形態では、探索範囲は、注目文字列の位置（頂点）からこの文字列の列方向に対して所定の角度θで広がり、かつ、この位置から当該方向に対して文字列の長さの３倍以下である範囲を表していた。これに対し、本発明の探索範囲はこの態様に限定されない。探索範囲は、注目オブジェクトの位置からｘ軸方向に離れるにつれてｙ軸方向に次第に広がる範囲であればよく、例えば、曲線的に広がる範囲を表していてもよい。また、距離については、注目文字列の位置から各方向に文字列の長さの３倍以下である範囲としてもよく、この場合探索範囲は扇形になる。また、この距離は、文字列の長さの３倍に限らず、他の倍数とされてもよいし、予め決められた固定値であってもよい。また、探索範囲は、横書きの文字列について、注目オブジェクトの頂点よりも上方の（ｙ座標が小さくなる）領域を含んでいてもよいし、縦書きの文字列において、注目オブジェクトの頂点よりも右方の（ｘ座標が大きくなる）領域を含んでいてもよい。
【００４５】
［変形例２］
上述した実施形態では、基準文字列が、縦書きの文字列については、未グループ化の文字列のうち、頂点が撮影画像の上端に近い文字列として定められ、横書きの文字列については、未グループ化の文字列のうち、頂点が撮影画像の右端に近い文字列として定められていた。これに代えて、基準文字列が、縦書きの文字列について、未グループ化の文字列のうち頂点が撮影画像の下端に近い文字列として定められ、横書きの文字列について、未グループ化の文字列のうち頂点が撮影画像の左端に近い文字列として定められてもよいし、また、画像領域の端部に最も近い文字列としないことも可能である。また、各文字列の位置は、テキスト領域の頂点に限らず、例えばテキスト領域の中心点を用いて特定されてもよく、テキスト領域内の予め定められた位置を文字列の位置と見做してよい。
【００４６】
［変形例３］
上述した実施形態では、複数の文字列を同一グループにするための条件として、ステップＳ５６の処理で説明したように、新たな注目文字列がそれよりも先に探索したすべての文字列の探索範囲のそれぞれに含まれることを要していたが、本発明において、この条件を省くことも可能である。この場合、制御部１１は、注目文字列から探索範囲に文字列が含まれていることのみを同一グループにする条件とする。これにより、上述した実施形態よりも、文字列の列方向に対して広範囲に分布する文字列が同一グループに分類されることも考えられる。この場合であっても、撮影画像内での天地方向に対する位置が相対的に近い文字列同士が同一グループになるので、文字列出力装置１０によれば、画像に含まれる文字列群のまとまりを表現することができる。
なお、制御部１１は、ステップＳ５７の処理で「ＹＥＳ」と判定したことを契機に、既にグループが確定した文字列について先にグループ化してもよい。
【００４７】
［変形例４］
上述した実施形態では、文字列出力装置１０は、グループ化の結果に従って、文字認識された文字列をグループ単位で改行して表示させるための表示データを出力していたが、表示データの内容はこれに限定されない。ユーザが各文字列をグループ単位で識別できればよいから、例えば、グループ毎に文字列が「／」（スラッシュ）や「，」（カンマ）等を用いて分類して表示されてもよいし、グループを識別する情報と対応付けて各文字列が表示されてもよい。
また、本発明の文字列出力装置は、縦書き又は横書きの一方の文字列を対象としてグループ化処理やＯＣＲ処理等を行うものであってもよい。
【００４８】
［変形例５］
本発明において、携帯端末の撮影により得られる撮影画像は、携帯端末が内蔵する撮影部により得たものであってもよいし、携帯端末に装着された外部の撮影装置により得たものであってもよい。これらのいずれであっても、携帯端末での撮影により撮影画像が得られることに変わりないからである。
また、本発明の文字列出力装置は、文字列を含む画像を処理対象とすることができる。また、本発明の文字列出力装置は、外部の情報処理端末と通信接続される態様のほか、例えば、情報処理端末に内蔵されたものであってもよい。また、本発明の文字列出力システムは、撮影部での撮影から文字認識の結果を表す文字列の表示までの一連の処理を行う、情報処理端末によって実現されてもよい。また、本発明は、上述したようグループ化処理を行って文字認識を行う文字列出力方法として特定することもできる。
また、上述した文字列出力装置１０及び携帯端末２０が実現する各機能は、複数のプログラムの組み合わせによって実現され、又は、複数のハードウェア資源の協働によって実現されうる。
【符号の説明】
【００４９】
１…文字認識システム、１０…文字列出力装置、１１…制御部、１１１…撮影画像取得部、１１２…文字列抽出部、１１３…グループ化部、１１４…文字認識部、１１５…文字列出力部、１２…通信部、１３…記憶部、１３１…ＯＣＲプログラム、２０…携帯端末、２１…制御部、２２…操作部、２３…無線通信部、２４…撮影部、２５…表示部、２６…記憶部。
【図１】
0005325870.tif 000002
【図２】
0005325870.tif 000003
【図３】
0005325870.tif 000004
【図４】
0005325870.tif 000005
【図５】
0005325870.tif 000006
【図６】
0005325870.tif 000007
【図７】
0005325870.tif 000008
【図８】
0005325870.tif 000009
【図９】
0005325870.tif 000010
【図１０】
0005325870.tif 000011
【図１１】
0005325870.tif 000012
【図１２】
0005325870.tif 000013