(57)【特許請求の範囲】
【請求項１】
被写体の一部を撮影して得られた画像を取得する取得手段と、
前記得られた画像と被写体全体との間の相対位置を指定する指定手段と、
前記指定された相対位置に基づき、前記画像に含まれる特定領域を決定する決定手段と、
前記決定された特定領域のエッジ量を算出する算出手段と、
前記算出された前記特定領域におけるエッジ量が第１の閾値よりも大きい場合、前記特定領域に対して文字認識処理を実行する文字認識手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記第１の閾値は、前記文字認識手段によって文字認識処理が既に行なわれた画像の前記特定領域に対応する領域のエッジ量に基づいて決定されることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記取得手段は、一定の時間、前記被写体の一部を撮影して得られた複数の画像を取得し、
前記算出手段は、前記複数の画像の前記特定領域のエッジ量をそれぞれ算出し、
前記文字認識手段は、前記算出手段で算出された前記特定領域のエッジ量が最も多い画像の前記特定領域におけるエッジ量が前記第１の閾値よりも大きい場合、前記エッジ量が最も多い前記画像に含まれる前記特定領域に対して文字認識処理を実行することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記算出された前記特定領域におけるエッジ量が前記第１の閾値よりも大きくない場合、前記取得手段は、撮影条件を変更して前記被写体の一部を撮影して得られた画像を取得し、
前記算出手段は、変更された撮影条件において撮影することにより得られた画像に含まれる前記特定領域のエッジ量を算出することを特徴とする請求項１から３のいずれか一項に記載の情報処理装置。
【請求項５】
前記文字認識手段によって文字認識処理が実行された画像に対応する、各画素がエッジ強度を有するエッジ画像を管理する管理手段をさらに有し、
前記文字認識手段は、前記管理手段で管理されている前記エッジ画像を用いて得られた前記第１の閾値を用いることを特徴とする請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記管理手段は、前記文字認識手段によって文字認識処理が実行された結果の確信度が第２の閾値以上の場合における、前記文字認識処理が実行された画像に対応するエッジ画像を管理することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記管理手段は、前記エッジ画像を、前記被写体における位置と関連付けて管理し、
前記文字認識手段は、前記特定領域の位置に対応する位置を含むエッジ画像から求まる前記対応する位置の閾値を、前記第１の閾値として用いることを特徴とする請求項５または６に記載の情報処理装置。
【請求項８】
前記特定領域の位置は、前記取得手段で取得した画像の特徴量から決定されることを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記文字認識処理の結果が反映されたテキスト領域を含む前記取得手段で取得した画像を表示する表示手段と、
前記表示手段で表示された画像から前記テキスト領域の選択を受け付ける受け付け手段と
をさらに有することを特徴とする請求項１から８のいずれか一項に記載の情報処理装置。
【請求項１０】
前記取得手段で取得した画像と、前記受け付け手段で選択を受け付けたテキスト領域の位置情報と、前記テキスト領域に含まれるテキストとを出力する出力手段をさらに有することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
被写体の一部を撮影して得られた画像を取得する取得ステップと、
前記得られた画像と被写体全体との間の相対位置を指定する指定ステップと、
前記指定された相対位置に基づき、前記画像に含まれる特定領域を決定する決定ステップと、
前記決定された特定領域のエッジ量を算出する算出ステップと、
前記算出された前記特定領域におけるエッジ量が第１の閾値よりも大きい場合、前記画像に含まれる前記特定領域に対して文字認識処理を実行する文字認識ステップと
を有することを特徴とする情報処理方法。
【請求項１２】
コンピュータを、請求項１から１０のいずれか一項に記載の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字認識処理を行う対象の画像を決定する技術に関する。
【背景技術】
【０００２】
従来、紙文書の画像に対して光学文字認識（ＯＣＲ：Optical Character Recognition）処理を行なうことで、画像に含まれるテキスト情報を取得して利用することが行なわれている。また、近年、カメラ機能を持つモバイル端末が普及してきている。従来、ユーザーは紙文書を電子的に取り込むためにスキャナなどを利用していたが、モバイル端末のカメラを利用することで簡単に紙文書を電子的に取り込むことが出来るようになった。このため、モバイル端末のカメラで撮影した紙文書の画像にＯＣＲ処理を行なうことが行なわれている。
【０００３】
ＯＣＲ処理によって認識されたテキスト情報を利用する場合、ＯＣＲ精度が重要となる。しかし対象物に接近して取り込める名刺や免許証などの画像に対するＯＣＲ精度に比べ、Ａ４またはＡ３のような比較的大きなサイズの紙文書をカメラで撮影することで得られた画像に対しては、ＯＣＲ精度が低くなる。これは、カメラと対象物との距離が離れることにより、認識しようとするテキストの１文字当たりの解像度が低下するからである。そこでＡ４やＡ３のような比較的大きなサイズの紙文書の場合、認識対象のテキスト領域に接近して撮影することで得られた画像を取り込むことでＯＣＲ精度の向上が可能となる。しかしながら、単に接近して撮影するだけでは、撮影画像のブレが発生しやすくなり、ＯＣＲに適した手ブレの少ない画像を撮影することが難しい。
【０００４】
特許文献１は、モバイル端末のカメラを利用して写真を撮影し、その写真が合格か否かを判定する技術を開示している。特許文献１の技術は、モバイル端末のカメラを利用して得られた画像データのエッジ情報などが予め定めた条件と合致した画像を、合格と判定する技術である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２７７４４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＯＣＲ処理は、画像全体に対して行なうよりも、画像中の処理対象の候補となる領域に範囲を絞って行なう方が効率的である。特許文献１の技術は画像全体のエッジ情報が所定の条件と合致した画像を合格と判定する技術であるので、特許文献１の技術では、撮影した画像のうちの所望とする領域（例えば文字領域）にブレが生じているか否かを正しく判定できない。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、被写体の一部を撮影して得られた画像を取得する取得手段と、前記得られた画像と被写体全体との間の相対位置を指定する指定手段と、前記指定された相対位置に基づき、前記画像に含まれる特定領域を決定する決定手段と、前記決定された特定領域のエッジ量を算出する算出手段と、前記算出された前記特定領域におけるエッジ量が第１の閾値よりも大きい場合、前記特定領域に対して文字認識処理を実行する文字認識手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明の情報処理装置によれば、ＯＣＲ処理に良好な画像を自動で選択することができる。
【図面の簡単な説明】
【０００９】
【図１】モバイル端末の外観の一例を示す図である。
【図２】モバイル端末のハードウェア構成の一例を示す図である。
【図３】モバイル端末のソフトウェア構成の一例を示す図である。
【図４】モバイルアプリのＵＩの一例を示す図である。
【図５】全体画像と局所画像の一例を示す図である。
【図６】モバイルアプリを用いて被写体を撮影して得られた画像から文字認識処理の結果を得る処理を説明する。
【図７】図６のステップＳ６０１の画像選択処理の詳細を示す図である。
【図８】モバイルアプリのＵＩに候補領域を表示する一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面などを参照して説明する。なお、実施形態は、本発明を限定するものではなく、また、実施形態で説明されている全ての構成が本発明の課題を解決するための手段に必須であるとは限らない。
【００１１】
（第１実施形態）
［外観］
本実施形態に係る情報処理装置の一例として、モバイル端末を例に説明する。モバイル端末は、携帯通信端末の一例であり、無線通信機能などを実装しており自由な場所で利用できる端末である。
【００１２】
図１は、モバイル端末の外観の一例を示す図である。図１（ａ）はモバイル端末１００の表側のモバイル端末前面部１０１を示す。モバイル端末前面部１０１にはタッチパネル１０２が備わっている。タッチパネル１０２は、ディスプレイ等の表示部の一例であり、出力（表示）と入力との２つの機能を備えている。図１（ｂ）は、図１（ａ）のモバイル端末１００の裏側のモバイル端末背面部１０３を示す。モバイル端末背面部１０３は画像を取り込むためのカメラ１０４を備える。図１（ｃ）は、モバイル端末１００のカメラ１０４で画像を撮影する対象の被写体１０５を示す。本実施形態では、モバイル端末１００のユーザーは、被写体１０５を後述のモバイルアプリを通じて撮影することによって処理を開始することができる。本実施形態で説明する被写体１０５は、例えば、紙文書の注文書である。被写体１０５は、紙文書だけに限らず、名刺、写真、ホワイトボードなどの、他の種類の被写体であっても良い。後述のモバイルアプリは、被写体１０５の画像を取り込み、タッチパネル１０２にその画像を出力することができる。
【００１３】
［ハードウェア構成］
図２は、モバイル端末１００のハードウェアの構成の一例を示す図である。モバイル端末１００は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、Ｉｎｐｕｔ／Ｏｕｔｐｕｔインターフェース２０４、ＮＩＣ２０５、カメラユニット２０６を有する。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１は、各種のプログラムを実行し、様々な機能を実現するユニットである。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２は、各種の情報を記憶するユニットである。また、ＲＡＭ２０２は、ＣＰＵ２０１の一時的な作業記憶領域としても利用されるユニットである。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０３は、各種のプログラム等を記憶するユニットである。例えば、ＣＰＵ２０１は、ＲＯＭ２０３に記憶されているプログラムをＲＡＭ２０２にロードしてプログラムを実行する。また、ＣＰＵ２０１はフラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）又はＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）といった外部記憶装置に記憶されているプログラムに基づき処理を実行する。これにより、図３に示されるようなモバイル端末１００を構成するソフトウェア構成及び後述するシーケンスの各ステップの処理が実現される。なお、モバイル端末１００の機能及び後述するシーケンスに係る処理の全部又は一部については専用のハードウェアを用いて実現してもよい。
【００１４】
Ｉｎｐｕｔ／Ｏｕｔｐｕｔインターフェース２０４は、タッチパネル１０２に対して、表示データの送信、およびタッチパネル１０２から送信される入力情報の受信を行う。ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）２０５は、モバイル端末１００をネットワーク（不図示）に接続するためのユニットである。カメラユニット２０６は、カメラ１０４と接続し被写体１０５の画像をモバイル端末１００に取り込む。バス２０７は、上述した各ユニット間で送受信を行うためのデータ通信路である。
【００１５】
［ソフトウェア構成（モバイル端末）］
次に、モバイル端末１００におけるソフトウェアの構成について説明する。図３は、モバイル端末１００のソフトウェア構成の一例を示す図である。図３に示される各ソフトウェア（アプリケーション）における機能（モジュール部）を実現するプログラムは、モバイル端末１００のＲＯＭ２０３等に記憶されている。
【００１６】
モバイル端末１００のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）（不図示）は、データ管理部３０１を有する。データ管理部３０１は、画像データやアプリケーションデータを管理する。ＯＳは、データ管理部３０１を利用するための制御ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  ＰｒｏｇｒａｍｍｉｎｇＩｎｔｅｒｆａｃｅ）を提供している。各アプリはその制御ＡＰＩを利用することでデータ管理部３０１が管理する画像データやアプリケーションデータの取得や保存を行う。
【００１７】
モバイル端末１００のユーザーは、モバイル端末１００のＯＳのインストール機能を利用することによって、モバイルアプリケーション（以下、モバイルアプリとよぶ）３０２のダウンロードとインストールが可能である。また、モバイルアプリ３０２はＣＰＵ２０１によって実行可能である。モバイルアプリ３０２は、カメラユニット２０６を介して取り込んだ被写体１０５の画像に対する各種のデータ処理を行う。モバイルアプリ３０２は、複数のモジュール部を有する。具体的には、モバイルアプリ３０２は、メイン制御部３０３、情報表示部３０４、操作情報取得部３０５、画像解析部３０６、ＯＣＲ部３０７、記憶部３０８、ＤＢ部３０９、座標処理部３１０、画像特徴量抽出部３１１を有する。
【００１８】
メイン制御部３０３は、モバイル端末１００用のモバイルアプリ３０２を制御し、後述する各モジュール部３０３〜３１２に対する指示、及び管理を行う。
【００１９】
情報表示部３０４は、メイン制御部３０３からの指示に従い、モバイルアプリ３０２のユーザインタフェース（ＵＩ）をユーザーに提供する。図４は、モバイルアプリ３０２のＵＩ（携帯端末用のＵＩ）を提供する画面の一例（モバイル端末画面４００）を示す図である。モバイル端末画面４００は、モバイル端末１００のタッチパネル１０２に表示される。また、モバイル端末画面４００における表示および操作領域４０１には、カメラ１０４を介して取り込んだ画像が表示される。操作情報取得部３０５は、画像等に対するユーザーによる操作を、表示されたＵＩを介して受け付ける。なお、モバイルアプリ３０２のＵＩの形態（位置、大きさ、範囲、配置、表示内容など）は、図に示す形態に限定されるものではなく、モバイル端末１００の機能を実現することができる適宜の構成を採用することができる。
【００２０】
再び図３に戻り、モバイルアプリ３０２の各モジュールの説明を行う。操作情報取得部３０５は、情報表示部３０４により表示されたモバイルアプリ３０２のＵＩに対するユーザー操作の情報を取得し、取得した情報をメイン制御部３０３に通知する。例えば、表示および操作領域４０１をユーザーが手で触れると、操作情報取得部３０５は、触れられた画面上の位置の情報を感知し、感知した位置の情報をメイン制御部３０３に送信する。
【００２１】
画像解析部３０６は、カメラユニット２０６を介して取得した画像、すなわち、カメラ１０４を用いて撮影された画像を解析して、レイアウト情報を生成する。レイアウト情報には、画像から抽出された矩形領域とその種別（文字、図形、線、表など）とが含まれる。さらに画像解析部３０６は、カメラ入力画像に対して紙面検出処理や歪み補正処理を行う。また、カメラユニット２０６は、単にスチール撮影を行えるだけでなく、高速で静止画を取得出来る動画撮影機能、または連写機能も備える。
【００２２】
ＯＣＲ部３０７は、画像解析部３０６で抽出した矩形領域に対して、ＯＣＲ（光学文字認識）処理を行う。記憶部３０８は、操作情報取得部３０５により取得された値、すなわち、モバイルアプリ３０２のＵＩを介してユーザーにより入力された値を保存する。また、記憶部３０８は、後述するＤＢ部３０９で管理されるデータなどを記憶する。
【００２３】
ＤＢ部３０９はデータベース機能を有し、ユーザーが選択した短形領域の座標情報、画像の特徴量、エッジ画像などを管理する。ここで、矩形領域の座標情報には、後述する局所画像内の特定領域の座標情報や、ユーザーがＯＣＲ処理の結果を承認する際に選択したテキスト領域の座標情報が含まれる。局所画像とは、被写体全体のうちの一部分の範囲（局所）の画像である。エッジ画像とは、局所画像に対応する、各画素がエッジ強度を示す値を有する画像である。これらの詳細については後述する。ＤＢ部３０９で管理されるデータは、記憶部３０８に保存される。
【００２４】
座標処理部３１０は、画像の位置特定処理や、データベースへ座標情報を登録する際の座標変換処理を行う。座標処理部３１０は、後述する画像特徴量抽出部３１１によって抽出された画像の特徴量（以下、画像特徴量という）を用いて、画像の位置特定処理を行なう。また、座標処理部３１０は、局所画像内の特定領域の位置情報（座標情報）を、画像特徴量を用いて特定する。
【００２５】
画像特徴量抽出部３１１は、カメラによって撮影された画像に対して、画像特徴量の抽出処理を行う。画像特徴量とは、画像内の特徴的な箇所を特定するための情報であり、例えば全体画像内における局所画像の対応位置を特定するために用いられる。特徴量を抽出する方法としてはＳＩＦＴ、ＳＵＲＦ、ＨＯＧなどの算出方法が挙げられる。抽出された画像特徴量は、座標処理部３１０が局所画像内の特定領域（矩形部分）の位置情報を算出するために用いられる。
【００２６】
［全体画像と局所画像］
次に、全体画像と局所画像について図５を用いて説明する。局所画像とは、被写体全体のうちの一部分の範囲の画像である。カメラユニット２０６は、被写体１０５の文書全体の画像を、カメラ１０４を介して取得する。その取得した入力画像に対して、画像解析部３０６が被写体以外の領域を除外する紙面検出処理及び歪み部分を補正する歪み補正処理を施し整形する。この整形した画像を全体画像と呼ぶ。図５は全体画像５００の一例を示している。このように、全体画像とは、被写体１０５の全体の画像のことである。
【００２７】
ここで、被写体１０５に対してカメラ１０４を接近して撮影（もしくは光学ズームで拡大撮影）することにより取得した被写体１０５の一部の画像を局所画像と呼ぶ。すなわち、局所画像は、被写体の一部を高解像度の画像として取得したものに等しい。局所画像５０１は、局所画像の一例である。なお、位置５０２は、全体画像における局所画像として撮影された部分の相対位置を示している。前述のように、画像特徴量抽出部３１１は、全体画像撮影時に画像特徴量（特徴的な箇所を特定するための情報）を取得する。また、画像特徴量抽出部３１１は、局所画像撮影時に画像特徴量を取得する。そして、座標処理部３１０は、局所画像撮影時の画像特徴量と全体画像撮影時の画像特徴量とを照合することで全体画像内における、局所画像の撮影された相対位置を特定することができる。なお、本実施形態では、これらの位置情報の特定については主眼ではないので詳細な説明については省略する。
【００２８】
［基本フロー］
次に、モバイル端末１００における基本的な処理フローについて図６を用いて説明する。すなわち、モバイルアプリ３０２を用いて被写体を撮影して得られた画像から文字認識処理の結果を得る処理を説明する。前述のように、図６に示すフローチャートは、モバイル端末１００のモバイルアプリ３０２が実行する処理である。すなわち、ＲＯＭ２０３に格納されたモバイルアプリ３０２のプログラムをＣＰＵ２０１がＲＡＭ２０２に展開して実行することで実現される処理である。
【００２９】
本フローは、被写体１０５に対してカメラ１０４を接近して得た画像をモバイル端末１００におけるモバイルアプリ３０２が取得することをトリガーに開始することとする。すなわち、先に説明したように全体画像については既に撮影済みの状態であり、全体画像の画像特徴量についても既に抽出済みの状態である。この状態において、ユーザーがカメラ１０４を被写体１０５に近接して局所画像を取得する処理から図６のフローチャートはスタートする。
【００３０】
ステップＳ６０１で、モバイルアプリ３０２のメイン制御部３０３は、ＯＣＲに適した画像の選択処理を行う。具体的には、ＯＣＲに適した画像であるとして決定された局所画像を、表示および操作領域４０１に表示し、さらに、その局所画像に含まれるテキスト領域を表示する。すなわち、ＯＣＲに適した画像であるとして決定された局所画像においてＯＣＲ処理を行い、ＯＣＲの結果得られたテキストを、その局所画像の対応する箇所（テキスト領域）に重畳させて表示する。ステップＳ６０１の詳細な処理に関しては図７を用いて後述する。本実施形態では、ユーザーはこのステップＳ６０１の結果、表示される局所画像上のテキスト領域を確認し、ＯＣＲの処理結果が正しいものであるか否かを判断する。そして、ユーザーはＯＣＲの処理結果が正しいと判断したテキスト領域をＵＩ画面を通じて選択（タッチ入力）する。ユーザーがＵＩ画面を通じてテキスト領域を選択することで、モバイルアプリ３０２はそのテキスト領域のＯＣＲの処理結果が正しいものであると判定することになる。
【００３１】
ステップＳ６０２で、モバイルアプリ３０２は、局所画面上のテキスト領域に対してユーザーによる選択があるかを判定する。ユーザーによるテキスト領域の選択があればステップＳ６０３に遷移する。ユーザーによる選択がなければ、再度ステップＳ６０１に戻り画像選択処理を行う。つまり、前述のように、ユーザーがＯＣＲの処理結果が正しいと判断した領域がなければ、ユーザーによる選択がされないので、再度、ＯＣＲに適した画像の選択処理を行ない、テキスト領域の表示が行われることになる。なお、ユーザーによる選択が行えないユースケースなどでは、本ステップは必ずしも必要ではない。しかし、本ステップによって、機械だけでなく、人間の目視によって最終判断を行うことができる。また、ここではステップＳ６０２の処理は、ユーザーがテキスト領域が正しいか否かを判断した結果をモバイルアプリ３０２に知らせる選択処理の場合を例に挙げて説明したがこれに限られるものではない。例えば、ユーザーが選択したテキスト領域に対してユーザーがテキストの修正を行なう処理を含めても良い。
【００３２】
ステップＳ６０３でモバイルアプリ３０２は、ステップＳ６０２によって選択されたテキスト領域のＯＣＲの結果とＯＣＲ処理対象の撮影画像（局所画像）とをデータ管理部３０１に依頼してモバイル端末１００内に保存する。ＯＣＲの結果には、ＯＣＲの結果のテキストデータと、その全体画像における対応する位置情報とが含まれる。これにより、全体画像における対応する位置のテキストデータが確定する。このように、本実施形態の処理では、全体画像におけるテキストデータをＯＣＲで得るために、複数の局所画像を用いてそれぞれＯＣＲを行なうことで精度の高いＯＣＲ処理結果を得られるようにしている。また、後述するようにぶれが少ない局所画像を対象にＯＣＲ処理を行なうことでパフォーマンスの低下を防ぎつつ、精度の高いＯＣＲ処理結果が得られるように構成されている。
【００３３】
なお、ステップＳ６０１の結果表示されるテキスト領域が複数ある場合には、ステップＳ６０２とＳ６０３の処理を繰り返し行うことができる。あるいは、ステップＳ６０２のユーザーによる選択を受け付ける処理において、複数のテキスト領域の選択を許容するような処理でもよい。この一連の処理で、全体画像のうちの例えば領域Ａの局所画像のＯＣＲの処理結果が得られることになる。ここで、全体画像のうちＯＣＲ処理を行いたい領域Ｂが別個にある場合には、ユーザーは再度その領域Ｂを含む局所画像を撮影するようにカメラ１０４または被写体１０５を移動させて、再度図６の処理が行なわれることになる。
【００３４】
なお、本実施形態では撮影結果をモバイル端末１００に保管する手法を取っているが、ステップＳ６０３の段階でインターネット上などのＰＣやサーバに撮影結果を即座にアップロードしても良い。また、選択結果をデータ管理部３０１に貯めておき、後でまとめて他のＰＣやサーバにアップロードしても良い。
【００３５】
［画像選択処理フロー］
図７は、図６のフローのステップＳ６０１の画像選択処理の詳細を示す図である。まず、本フローで用いられる用語「エッジ強度」、「エッジ量」、「エッジ画像」について説明する。
【００３６】
エッジ強度とは画像解析部３０６によって撮影画像（ここでは局所画像）の各画素ごとに計算される、エッジの強さである。本実施形態ではエッジ強度の抽出方法として、隣接するｘ方向とｙ方向の画素の１次微分を求め、その絶対値の合計をその画素のエッジ強度とする方法を用いる。このような方法を用いると、隣接する画素同士の輝度の差が大きい程、強いエッジ強度を得ることが出来る。ただし、後述するエッジ量同士が比較可能であれば、他のエッジ抽出手法であっても良い。例えば、Ｓｏｂｅｌフィルタを用いて撮影画像内の各画素のエッジ強度を求めるようにしてもよい。
【００３７】
エッジ量とは、撮影画像（局所画像）の特定の範囲（特定のオブジェクト領域）内のエッジ強度に基づいて算出される量（値）である。特定のオブジェクト領域とは、具体的にはＯＣＲ処理を行なう対象の候補の矩形領域である。エッジ量はオブジェクト領域内の各画素のエッジ強度の和でも良いし、オブジェクト領域内の各画素のエッジ強度の平均値であっても良い。エッジ量の算出は、比較可能な値が算出できるのであれば、他の方法であっても良い。つまり、エッジ量はＯＣＲ処理を行なう対象の領域のエッジの度合いを示す値とも言える。
【００３８】
エッジ画像とは撮影画像（局所画像）から各画素のエッジ強度を抽出し、各画素の値をエッジ強度で表わしたデータのことである。エッジ画像の画素数と解像度は必ずしも元の撮影画像と一致しなくても良い。本実施形態では、エッジ画像は、ＯＣＲ処理に良好と判定された際の撮影画像（局所画像）を用いて生成され保存される（後述するステップＳ７１２参照）。エッジ画像を保存する理由を説明する。本実施形態では、撮影画像に対してＯＣＲ処理を行なうか否かを判定する基準として所定のエッジ量を用いる。具体的な例を挙げてより詳細に説明すると、撮影画像には特定のオブジェクト領域Ｘが含まれることとする。撮影画像には他のオブジェクト領域が含まれていてももちろんよいが、ここでは説明を簡便にするためにオブジェクト領域Ｘのみに着目する。このオブジェクト領域ＸがＯＣＲ処理を行いたいテキスト領域であるものとする。本実施形態では撮影画像が取得される毎に、オブジェクト領域Ｘを含む撮影画像がＯＣＲ処理に適した画像であるか否かを判定する処理が行なわれる。この判定処理における判定基準として、そのオブジェクト領域Ｘに対応する所定のエッジ量が用いられる。ぶれが多い画像では、ぶれの影響によりエッジ量が本来のエッジ量よりも少なくなる。つまり、エッジ量が所定の閾量以下の撮影画像については、ぶれが生じている画像であると判定することができる。このときの所定のエッジ量としては、そのオブジェクト領域Ｘを含む別の撮影画像を用いて既に生成されて保存されているエッジ画像が用いられることになる。エッジ画像として保存がされていれば、所定のエッジ量を求める際に繰り返しエッジ強度を算出しなくて済むからである。これがエッジ画像を保存する理由である。そして、図７の処理を繰り返し行なうことでＯＣＲ処理に良好な撮影画像（局所画像）に対応するエッジ画像が順次蓄積されていくことになる。そして、この蓄積されたエッジ画像から、対応するオブジェクト領域のエッジ閾量を算出して撮影画像（局所画像）のエッジ量との比較処理を行なうことで、ぶれの少ない撮影画像だけに対してＯＣＲ処理を適用することが可能となる。
【００３９】
続いて、図７のフローに基づいて詳細に説明する。図７のステップＳ７０１で、モバイルアプリ３０２は、カメラユニット２０６で撮影された局所画像を取得する。ステップＳ７０１ではカメラユニット２０６の動画撮影機能を用いて高速で連続撮影する。そのため、ユーザーが撮影指示を出す必要は無い。つまり、ユーザーがＯＣＲをしたい領域にカメラ１０４を近づける、カメラのズーム機能でＯＣＲしたい領域を拡大する、あるいは被写体１０５をカメラ１０４に近づける、などの動作によって、局所画像がカメラユニット２０６で撮影されるように動作させる。モバイルアプリ３０２は撮影された画像をデータ管理部３０１を通じて取得する。
【００４０】
ステップＳ７０２で、画像特徴量抽出部３１１は、ステップＳ７０１で取得された局所画像５０１の画像特徴量を抽出する。そして、ステップＳ７０３で、座標処理部３１０は、当該局所画像の画像特徴量を用いて、全体画像における局所画像の位置５０２を特定する。ステップＳ７０３では、前述のように、局所画像の画像特徴量と全体画像の画像特徴量とを用いて全体画像における局所画像の位置５０２を特定する処理を行なうことができる。なお、局所画像の位置を特定する際には、全体画像の画像特徴量を用いなくてもよい。例えば、ステップＳ７０１で取得された局所画像の画像特徴量と、保存されているエッジ画像とを用いることで、局所画像の全体画像における相対位置のエッジ画像が特定可能であれば、全体画像の画像特徴量は必ずしも必要ではない。具体的には、予め位置情報が分かるマークを帳票上に印刷しておくなどの方法で、全体画像における局所画像の相対位置が特定可能であれば、他の方法であっても良い。
【００４１】
ステップＳ７０４で、モバイルアプリ３０２は、ステップＳ７０１で取得された局所画像の全体画像における相対位置が特定できたか否かを判定する。相対位置が特定できた場合は、モバイルアプリ３０２はステップＳ７０５に遷移し、特定できなかった場合はステップＳ７０１に遷移し、別の局所画像の取得処理が行なわれる。後述するように、エッジ画像は全体画像における相対位置が関連付けられる形で保存されることになる。ステップＳ７０４で撮影画像（局所画像）の相対位置が特定できた場合には、後述する処理で対応するエッジ画像が存在するか否かを判定する処理を行なうことができる。一方、撮影画像（局所画像）の相対位置が特定できない場合には、カメラ１０４が被写体に近付きすぎているなどの要因が考えられるので、再度、ステップＳ７０１に戻り、別の撮影画像（局所画像）を取得する処理が行なわれることになる。
【００４２】
局所画像の相対位置が特定できた場合、ステップＳ７０５でＯＣＲ部３０７は、ステップＳ７０１で取得した局所画像５０１内のオブジェクト領域（特定領域）を認識する。ここで、オブジェクト領域とは、ＯＣＲ処理をかけるべき領域である。オブジェクト領域は、例えばステップＳ６０２によって、ユーザーにこれまでの処理で選択されたことのある領域（つまり、ＯＣＲ結果が正しいとユーザーが承認した領域）である。また、オブジェクト領域は画像解析部３０６によってレイアウト解析を行う際に得られた矩形情報であっても良い。また、適切な領域情報を得られない場合には局所画像５０１全体をオブジェクト領域として使用しても良いが、その場合には必要のない領域のエッジ強度も比較に用いられる恐れがある。ステップＳ７０５においては、座標処理部３１０は、認識されたオブジェクト領域の座標を、ステップＳ７０３で特定した局所画像の位置とステップＳ７０２で抽出した局所画像特徴量とを用いて算出する。
【００４３】
ステップＳ７０６でメイン制御部３０３は、ステップＳ７０５で認識したオブジェクト領域を含むエッジ画像がＤＢ部３０９に保存されているかを、ステップＳ７０５で算出したオブジェクト領域の座標を基に探索する。該当するエッジ画像が保存されている場合、ステップＳ７０７に遷移する。該当するエッジ画像が保存されていない場合、ステップＳ７１０に遷移する。該当するエッジ画像が保存されていないケースは、例えば、最初の図７のフローチャートの処理の場合や、今までの処理とは全く別の領域の局所画像をステップＳ７０１で取得した場合などが想定される。この場合、ステップＳ７０１の局所領域に含まれるオブジェクト領域のエッジ量を比較する対象が存在しない。従って、このような場合にはステップＳ７１０に進みＯＣＲ処理を行なうことになる。ただし、該当するエッジ画像が保存されていない場合、単にステップＳ７１０に遷移するだけでなく、一定時間内は連続撮影を行って複数枚の局所画像を取得しても良い。そして取得した複数枚の局所画像の中で最大のエッジ量を持つ局所画像をＯＣＲ処理対象として、Ｓ７１０に遷移してＯＣＲ処理を行うようにしても良い。
【００４４】
該当するエッジ画像が保存されている場合、ステップＳ７０７でメイン制御部３０３は、ＤＢ部に保存されているエッジ画像から、ステップＳ７０５で認識されたオブジェクト領域に対応する領域を特定する。そして、メイン制御部３０３はその特定した領域内のエッジ強度を集約したエッジ量を求め、これをエッジ閾量（閾値）とする。また、該当する保存されたエッジ画像が複数存在する場合、該当するすべての保存されたエッジ画像のエッジ量を算出し、その平均を使っても良いし、最も少ないエッジ量をエッジ閾量として使用しても良い。保存されているエッジ画像は、後述するようにＯＣＲ確信度が閾値以上の局所画像に対応する画像である。従って、特定の領域のＯＣＲ処理に適した局所画像に対応するエッジ強度を有するエッジ画像となっている。つまり、最低限のエッジ量はエッジ画像であれば担保されている状態であるので、複数のエッジ画像が存在する場合には最も少ないエッジ量をエッジ閾量として使用してもよい。他にも、パフォーマンス向上のため、そのうちの１枚をランダムに使用する、といった方法でも良い。
【００４５】
ステップＳ７０８で画像解析部３０６は、ステップＳ７０５で認識した、ステップＳ７０１で取得した局所画像のオブジェクト領域のエッジ量を算出する。そして、ステップＳ７０９においてメイン制御部３０３は、ステップＳ７０７で算出したエッジ閾量と、ステップＳ７０８で算出されたエッジ量とを比較する。ステップＳ７０１で取得した局所画像におけるオブジェクト領域のエッジ量が、エッジ画像から求まるエッジ閾量より大きかった場合はステップＳ７１０に遷移する。つまり、ステップＳ７０１で取得した局所画像は、その画像内のオブジェクト領域のエッジ量がエッジ画像から求まるエッジ閾量より大きいのでぶれが少ないと判定することができる。よって、このぶれが少ない局所画像に対してＯＣＲ処理を行なう。一方、ステップＳ７０１で取得した局所画像におけるオブジェクト領域のエッジ量が、エッジ閾量以下であった場合はステップＳ７０１に遷移する。エッジ量がエッジ閾量以下であるということは、ステップＳ７０１で取得した局所画像はぶれがある画像であると判定できるからである。ぶれがある画像に対してＯＣＲ処理を行なったとしても良好な結果は得られないので、ＯＣＲ処理を行なわない。これにより、良好なパフォーマンスを担保することができる。なお、ステップＳ７０９の比較においては、単にエッジ閾量を上回った場合にステップＳ７１０に進むだけでなく、一定時間内は連続撮影を行ってもよい。そして複数の局所画像の中からエッジ閾量を上回る最大のエッジ量を持つ局所画像をＳ７０９の比較に用い、その局所画像に対してステップＳ７１０のＯＣＲ処理を行なっても良い。また、エッジ量が不足していると判定された場合に、カメラユニット２０６の撮影条件の調整（変更）を自動的に行っても良い。例えばシャッタースピードを短くしＩＳＯ感度を上げることで、ＯＣＲに適したエッジ量の多い画像を取得出来る場合がある。
【００４６】
ステップＳ７１０でＯＣＲ部３０７は、ステップＳ７０５で認識された、ステップＳ７０１で取得した局所画像に含まれるオブジェクト領域に対してＯＣＲ処理を実行し、テキスト情報を認識する。局所画像の全体ではなくオブジェクト領域に対してＯＣＲ処理を実行することでＯＣＲの処理パフォーマンスを向上させることができる。
【００４７】
ステップＳ７１１でＯＣＲ部３０７は、ＯＣＲ結果の確信度が閾値以上かどうかを確認する。ここで確信度とはＯＣＲ部３０７の認識結果の自信（確からしさ）を表し、高いほど文字認識の精度が高いと言える。ステップＳ７１１で用いる閾値は使用するＯＣＲエンジンにとって適切な値を用いる。また、ステップＳ７１１においては、単に一方向、例えば水平のみに対してＯＣＲを使用するだけでなく、複数の方向からＯＣＲ処理を行い、その中の最も高い確信度を用いても良い。ＯＣＲ確信度が閾値以上の場合、ステップＳ７１２に遷移し、閾値未満の場合にはステップＳ７１３に遷移する。
【００４８】
ステップＳ７１２で画像解析部３０６は、ＯＣＲ処理に使用した撮影画像（局所画像）からエッジ画像を生成する。メイン制御部３０３は生成されたエッジ画像をＤＢ部３０９に保存する。すなわち、画像解析部３０６はステップＳ７０１で取得した局所画像からエッジ画像を生成する。オブジェクト領域の位置情報（座標情報）については、ステップＳ７０５の処理で特定されている。そこで、メイン制御部３０３は、エッジ画像と共に、エッジ画像に含まれるオブジェクト領域の種類（例えばテキストや表など）とそのオブジェクト領域の座標情報も保存する。ＯＣＲ確信度が閾値以上の場合、その局所画像はＯＣＲに適した局所画像である。つまり、メイン制御部３０３は、その局所画像はぶれが少ない画像と判定することができる。次回以降の処理においてはその局所画像に対応するエッジ画像を用いてステップＳ７０９の判定を行なう。このように、ＯＣＲ処理を行なう対象の画像として、ぶれが少ない画像を用いることでＯＣＲ処理の精度を高めるとともにパフォーマンスを向上させることができる。なお、すでに同じオブジェクト領域を含むエッジ画像がＤＢ部３０９内に存在する場合、エッジ量の少ない方を残したり、同じオブジェクト領域を含むエッジ画像の保存最大数を決めても良い。
【００４９】
ステップＳ７１３でメイン制御部３０３は、ステップＳ７０５で認識できたテキスト領域を、情報表示部３０４を通してタッチパネル１０２に表示する。図８は、ステップＳ７１３の処理の結果の一例を示す図である。図８においては、テキスト領域８０１、８０２、８０３がステップＳ７０５で認識できたテキスト領域であるものとする。このテキスト領域８０１、８０２、８０３はＯＣＲ処理の結果得られたテキストが含まれている領域となる。つまり、局所画像の中で、テキスト領域８０１、８０２、８０３はＯＣＲの処理結果のテキストデータが反映された領域（テキストデータに置き換わった領域）となる。図８で示すように、メイン制御部３０３は認識できたテキスト領域をユーザーが確認できるように、例えば太枠で囲うなどの強調表示を行うことができる。あるいは、マーカーを付したり、点滅させるなどの形態でもよい。メイン制御部３０３は、ステップ７１３でユーザーが選択可能なテキスト領域（候補領域）を表示した後、図７の処理を終了し、図６のステップＳ６０２の処理に進むことになる。つまり、図８で示したテキスト領域をユーザーが確認して正しくＯＣＲの処理結果が行なわれた領域を、ユーザーによって選択する処理となる。
【００５０】
以上のように、本実施形態によれば、モバイル端末を用いて紙文書に対して接近して画像を取り込む際に、ＯＣＲ処理に良好な画像を、パフォーマンスを大きく損なわずに自動で選択出来る。特に、ＰＣ端末に比べ、ＣＰＵまたはＧＰＵリソースが少ないモバイル端末で、パフォーマンスを大きく損なわずにＯＣＲ処理に良好な画像を選択することができる。
【００５１】
（その他の実施例）
上記の実施例では、撮影画像にぶれが生じる例としてカメラの手ぶれを例に挙げて説明したが、被写体（例えば紙）を固定したカメラに近づける場合に被写体のぶれによって撮影画像にぶれが生じる場合でもよい。
【００５２】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
0006669390.tif 000002
【図２】
0006669390.tif 000003
【図３】
0006669390.tif 000004
【図４】
0006669390.tif 000005
【図５】
0006669390.tif 000006
【図６】
0006669390.tif 000007
【図７】
0006669390.tif 000008
【図８】
0006669390.tif 000009