(57)【要約】【課題】カメラを搭載したモバイル端末等を用いて文書を接近して撮影する際のフォーカス調整に要する時間を短くすることを目的とする。【解決手段】本発明に係る情報処理装置は、撮影手段を有する携帯可能な情報処理装置であって、前記撮影手段で撮影された画像の特徴点を抽出する抽出手段と、抽出された特徴点に基づいて、前記撮影手段におけるフォーカス調整を行う制御手段と、を備え、  被写体の全体に対応する全体画像を撮影した後、当該被写体の一部に対応する複数の部分画像を取得するための撮影を、前記撮影手段で行う場合において、前記制御手段は、前記全体画像から抽出された特徴点と、前記複数の部分画像のうち第１の部分画像から抽出された特徴点とのマッチング判定を行って、当該マッチング判定の結果に基づき、前記撮影手段におけるフォーカス調整のための設定値を決定し、当該決定された設定値に従ったフォーカス調整を、前記第１の部分画像よりも後に取得される第２の部分画像の撮影に適用する、ことを特徴とする。【選択図】図７
2018046337.tif 000002
【特許請求の範囲】
【請求項１】
撮影手段を有する携帯可能な情報処理装置であって、
前記撮影手段で撮影された画像の特徴点を抽出する抽出手段と、
抽出された特徴点に基づいて、前記撮影手段におけるフォーカス調整を行う制御手段と、
を備え、
被写体の全体に対応する全体画像を撮影した後、当該被写体の一部に対応する複数の部分画像を取得するための撮影を、前記撮影手段で行う場合において、
前記制御手段は、前記全体画像から抽出された特徴点と、前記複数の部分画像のうち第１の部分画像から抽出された特徴点とのマッチング判定を行って、当該マッチング判定の結果に基づき、前記撮影手段におけるフォーカス調整のための設定値を決定し、当該決定された設定値に従ったフォーカス調整を、前記第１の部分画像よりも後に取得される第２の部分画像の撮影に適用する、
ことを特徴とする情報処理装置。
【請求項２】
前記複数の部分画像を取得するための前記撮影は、一定時間内に複数の静止画像を連続して取得する連写又は動画による撮影であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
OCR処理を行うOCR手段をさらに備え、
前記制御手段は、取得された前記複数の部分画像のうち、最も鮮鋭性の高い部分画像を、前記OCR処理の対象とする部分画像として決定する、
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記制御手段は、前記複数の部分画像を取得するための前記撮影の際に、前記被写体のうち前記OCR処理を掛けたい部分の位置を示すガイド表示を行なうことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記OCR処理の結果が、一定の精度に達していない場合、前記制御手段は、前記部分画像の撮影をやり直すことを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記制御手段は、前記撮影のやり直しを行う際、撮影条件を変更することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記全体画像を撮影する際の解像度は、前記複数の部分画像を撮影する際の解像度よりも高いことを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記抽出手段は、特徴ベクトルが互いに似通っている特徴点を、抽出結果から除外することを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記被写体における基準となる辺の長さと複数の前記設定値との対応関係を規定するテーブルをさらに備え、
前記制御手段は、
前記マッチング判定においてマッチしたと判定された特徴点の組合せが2組以上ある場合、前記全体画像における特徴点同士の距離と、前記部分画像における特徴点同士の距離との比を表すスケール変化値を求め、
前記全体画像の前記基準となる辺の長さに前記スケール変化値を乗算して前記部分画像における前記基準となる辺の長さを求め、当該求めた長さに対応する設定値を、前記テーブルを参照して決定する
ことを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記制御手段は、前記マッチング判定においてマッチしたと判定された特徴点の組合せが3組以上ある場合は、複数得られる前記部分画像における特徴点同士の距離の平均値を用いて、前記スケール変化値を求めることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記撮影手段から前記被写体までの距離と複数の前記設定値との対応関係を規定するテーブルをさらに備え、
前記制御手段は、
前記マッチング判定においてマッチしたと判定された特徴点の組合せが4組以上ある場合、カメラ外部パラメータを推定し、当該推定したカメラ外部パラメータを用いて、前記全体画像上の任意の座標をカメラ空間座標に変換することにより、当該任意の座標に対応する、前記部分画像における座標の奥行きを推定し、
推定された前記部分画像における奥行きに対応する設定値を、前記テーブルを参照して決定する
ことを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１２】
前記撮影手段から前記被写体までの距離と複数の前記設定値との対応関係を規定するテーブルをさらに備え、
前記制御手段は、
前記マッチング判定においてマッチしたと判定された特徴点の組合せが4組以上ある場合、ホモグラフィ行列を推定し、当該推定したホモグラフィ行列を用いて、前記全体画像上の任意の座標をカメラ空間座標に変換することにより、当該任意の座標に対応する、前記部分画像における座標の奥行きを推定し、
推定された前記部分画像における奥行きに対応する設定値を、前記テーブルを参照して決定する
ことを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１３】
撮影手段を有する携帯可能な情報処理装置の制御方法であって、
前記情報処理装置は、前記撮影手段で撮影された画像の特徴点を抽出する抽出手段と、抽出された特徴点に基づいて、前記撮影手段におけるフォーカス調整を行う制御手段と、を備え、
前記制御方法は、
前記撮影手段を用いて、被写体の全体に対応する全体画像を撮影する第１の撮影ステップと、
前記第１の撮影ステップに続いて、前記撮影手段を用いて、前記被写体の一部に対応する複数の部分画像を撮影する第２の撮影ステップと、
前記全体画像から抽出された特徴点と、前記複数の部分画像のうち第１の部分画像から抽出された特徴点とのマッチング判定を行って、当該マッチング判定の結果に基づき、前記撮影手段におけるフォーカス調整のための設定値を決定し、当該決定された設定値に従ったフォーカス調整を、前記第２の撮影ステップにおける撮影に適用するステップと、
を含むことを特徴とする情報処理装置の制御方法。
【請求項１４】
コンピュータを、請求項１乃至１２のいずれか１項に記載の情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラム及び制御方法に関する。
【背景技術】
【０００２】
現在ではカメラ機能を持つモバイル端末が広く普及している。従来、ユーザは文書を電子的に取り込むためにスキャナなどを利用していたが、モバイル端末のカメラ機能を利用することで簡単に文書を画像データとして取り込むことが出来るようになった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４―３１７６９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
モバイル端末のカメラで文書を画像データとして取り込み、OCRを使用し文字列データを取得してそのテキスト情報を利用する際には、OCR精度が非常に重要となる。名刺や免許証といった対象物に接近して取り込めるケースと異なり、A4やA3のような比較的大きな用紙等に印刷された文書を対象とする場合、OCR精度が悪化することになる。これは対象物との距離が離れることにより、識別しようとするテキストの1文字当たりの解像度が低下するためである。そこでA4やA3サイズの文書を対象とするケースにおいては、文書内の目的のテキスト領域に接近して撮影することがOCR精度向上には望ましい。しかしながら、文書の一部に接近して撮影する際には、カメラと被写体との距離が変動するため、フォーカスを調整し直す必要がある。そして、OCRに適したフォーカスの合った画像の撮影には時間が掛かりやすく、特に十分な光量の無い屋内での撮影するケースでは、フォーカス調整に多くの時間を通常要することになる。この点、例えば特許文献１には、被写体の顔の大きさや目幅などの特徴部位の情報に基づいて、被写体までの距離を算出し、フォーカスレンズの移動範囲を調整するという手法が開示されている。
【０００５】
しかし、上記特許文献１の手法は、主として顔の特徴解析から被写体までの距離を算出するもので、被写体が紙等の記録媒体に印刷された文書であるユースケースには馴染まない。顔の特徴に比べ、文書は罫線が交差する箇所など特徴的ではあるが類似する点が多数存在するためである。また、顔の特徴解析では、顔の各パーツの特徴に関して区別が付きやすく、その個数も予め分かっているが、文書の場合は特徴の区別やその個数を予め把握することが困難である。仮に上記特許文献１の手法を文書の撮影に適用すると、特徴点抽出の際に、本来は異なる点を同一の特徴点として認識してしまうなどの弊害が予想される。
【０００６】
そこで、本発明は、カメラを搭載したモバイル端末等を用いて文書を接近して撮影する際のフォーカス調整に要する時間を短くすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、撮影手段を有する携帯可能な情報処理装置であって、前記撮影手段で撮影された画像の特徴点を抽出する抽出手段と、抽出された特徴点に基づいて、前記撮影手段におけるフォーカス調整を行う制御手段と、を備え、被写体の全体に対応する全体画像を撮影した後、当該被写体の一部に対応する複数の部分画像を取得するための撮影を、前記撮影手段で行う場合において、前記制御手段は、前記全体画像から抽出された特徴点と、前記複数の部分画像のうち第１の部分画像から抽出された特徴点とのマッチング判定を行って、当該マッチング判定の結果に基づき、前記撮影手段におけるフォーカス調整のための設定値を決定し、当該決定された設定値に従ったフォーカス調整を、前記第１の部分画像よりも後に取得される第２の部分画像の撮影に適用する、ことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、カメラを搭載したモバイル端末等を用いて文書を接近して撮影する際のフォーカス調整に要する時間を短くできる。
【図面の簡単な説明】
【０００９】
【図１】モバイル端末の外観の一例を示す図である。
【図２】モバイル端末のハードウェア構成の一例を示す図である。
【図３】モバイル端末のソフトウェア構成の一例を示す図である。
【図４】モバイルアプリのUI画面の一例を示す図である。
【図５】全体画像と部分画像の一例を示す図である。
【図６】実施例１に係る、文字情報取り込み処理の流れを示すフローチャートである。
【図７】ピクセル距離フォーカス値テーブルの一例を示す図である。
【図８】文書面と撮影面とが平行になっていない状態を示す図である。
【図９】実施例２に係る、文字情報取り込み処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面などを参照して説明する。なお、実施形態は、本発明を限定するものではなく、また、実施形態で説明されている全ての構成が本発明の課題を解決するための手段に必須であるとは限らない。
【実施例１】
【００１１】
本実施形態に係る携帯可能な情報処理装置の一例として、以下ではカメラ付きのモバイル端末を例に説明する。いわゆるタブレットPCやスマートフォンは、無線通信機能などの装備によって自由な場所で撮影やデータ通信などができる、モバイル端末の代表例である。
【００１２】
図１は、モバイル端末の外観の一例を示す図である。図１（ａ）は、タッチパネル１０１があるモバイル端末１００の表側（正面）を示している。タッチパネル１０１は、液晶ディスプレイ等の表示部の一例であり、情報の出力（表示）と入力との2つの機能を備えている。図１（ｂ）は、モバイル端末１００の裏側（背面）を示している。モバイル端末の背面には、画像を取り込むための撮像用レンズ（以下、単に「レンズ」とする）１０２を備える。本実施例では、モバイル端末１００のユーザは、被写体を後述のモバイルアプリケーション（以下、「モバイルアプリ」と呼ぶ。）を使って撮影する。本実施例における被写体は、所定サイズの用紙に所定の様式で作成された注文書１１０である。なお、被写体は、注文書１１０のような文書の他、名刺や写真、或いはホワイトボードに書き込まれた文字等であっても良い。後述のモバイルアプリは、被写体の画像を取り込み、タッチパネル１０１に当該取り込んだ画像を表示することができる。
【００１３】
［ハードウェア構成］
続いて、モバイル端末１００のハードウェア構成について説明する。図２は、モバイル端末１００のハードウェア構成の一例を示す図である。モバイル端末１００は、CPU２０１、RAM２０２、ROM２０３、入出力I/F２０４、NIC２０５、カメラ部２０６、加速度／ジャイロセンサ２０７で構成され、これら各部はバス２０８で相互に接続されている。
【００１４】
CPU２０１は、各種のプログラムを実行して、様々な機能を実現する演算処理装置である。RAM２０２は、各種の情報を記憶する読み書き可能なメモリである。また、RAM２０２は、CPU２０１のワークエリアとしても利用される。ROM２０３は、OSや上述の撮影アプリ等の各種プログラムを記憶するメモリである。例えば、CPU２０１は、ROM２０３に記憶されているプログラムをRAM２０２にロードしてプログラムを実行する。  また、CPU２０１は、フラッシュメモリ、HDD、SSDといった外部記憶装置（不図示）に記憶されているプログラムをRAM２０２に読み込んで実行することもできる。なお、モバイル端末１００の機能及び後述するシーケンスに係る処理の全部又は一部については専用のハードウェアを用いて実現してもよい。
【００１５】
入出力I/F２０４は、タッチパネル１０１に対して表示データを出力したり、タッチパネル１０１からの入力情報を受け付けるインタフェースである。NIC(Network   Interface Card)２０５は、モバイル端末１００をネットワーク（不図示）に接続するためのインタフェースである。カメラ部２０６は、レンズ１０２を介して被写体の画像をモバイル端末１００に取り込む。バス２０８は、上述した各部を繋ぐデータ通信路である。加速度／ジャイロセンサ２０７は、モバイル端末１００の姿勢情報を検出するセンサである。
【００１６】
［ソフトウェア構成］
次に、モバイル端末１００のソフトウェア構成について説明する。図３は、モバイル端末１００のソフトウェア構成の一例を示す図である。モバイル端末１００のソフトウェアは、データ管理モジュール３００とモバイルアプリ３１０で構成される。そして、モバイルアプリ３１０は、メイン制御、情報表示、操作情報取得、画像解析、OCR、記憶処理、座標処理、画像特徴点抽出の各機能に対応する複数のモジュール３１１〜３１８で構成される。前述の通り、これら各モジュールに相当するプログラムは、ROM２０３等に記憶されている。
【００１７】
データ管理モジュール３００は、画像データやモバイルアプリ３１０における処理データ（アプリデータ）などを管理する。モバイルアプリ３１０は、不図示のOSが提供する制御API(Application Programming Interface)を利用することで、データ管理モジュール３００が管理する画像データやアプリデータの取得や保存を行う。
【００１８】
ユーザは、モバイル端末１００のOSのインストール機能を利用することによって、モバイルアプリ３１０のダウンロードとインストールが可能である。モバイルアプリ３１０は、カメラ部２０６を介して取り込んだ画像データに対して各種の処理を行う。
【００１９】
メイン制御モジュール３１１は、モバイルアプリ３１０を統括的に制御するモジュールであり、以下の各モジュール３１２〜３１８に対する指示及び管理を行う。情報表示モジュール３１２は、メイン制御モジュール３１１からの指示に従い、モバイルアプリ３１０のユーザインタフェース用画面（UI画面）を提供する。図４は、モバイルアプリ３１０のUI画面の一例を示す図である。UI画面４００は、モバイル端末１００のタッチパネル１０１に表示される。UI画面４００の表示・操作領域４０１にはカメラ部２０６を介して取り込んだ画像が表示され、ユーザは当該画像に対して各種操作を行うことができる。なお、モバイルアプリ３１０のUIの形態（位置、大きさ、範囲、配置、表示内容など）は、図示するものに限定されないことはいうまでもない。
【００２０】
操作情報取得モジュール３１３は、上記UI画面４００を介したユーザ操作に係る入力情報を取得し、取得した入力情報をメイン制御モジュール３１１に渡す。例えば、表示・操作領域４０１をユーザが手で触れると、操作情報取得モジュール３１３は、触れられたUI画面４００上の位置を検知し、当該検知した位置の情報をメイン制御モジュール３１１に送信する。
【００２１】
画像解析モジュール３１４は、カメラ部２０６を介して取得した画像データを解析する。この解析には、被写体が例えば上述の注文書１１０である場合には、撮影した画像内の注文書１１０の領域を検出し、文書の種類やサイズを特定する文書検出処理や、画像内で被写体が傾いている場合に修正する歪み補正処理（台形補正処理）などが含まれる。なお、カメラ部２０６は、単にスチール撮影を行えるだけでなく、静止画像を高速で連続して取得する連写撮影機能（或いは動画撮影機能）も備える。
【００２２】
OCRモジュール３１５は、画像内のテキスト領域に対して、OCR（光学文字認識）処理を行う。記憶処理モジュール３１６は、ユーザにより入力された各種設定値の他、ユーザ選択に係る画像領域の座標、画像の特徴点、画像のエッジ度といった各種データをRAM２０２やHDD等の記憶装置に保存し、必要に応じてデータベースとして登録する処理を行う。座標処理モジュール３１７は、矩形領域の座標情報をデータベースとして登録する際の座標変換処理や画像の位置特定処理を行う。特徴点抽出モジュール３１８は、入力された画像データに対して特徴点の抽出処理を行う。本実施例における特徴点は、文書画像上の際立った点（自然特徴点）である。
【００２３】
［全体画像と部分画像］
次に、本実施例においてユーザが撮影を行って取得する、全体画像と部分画像について説明する。図５は、全体画像と部分画像の一例を示す図である。図５において、画像５００は、被写体としての注文書１１０全体が包含されるように撮影された画像に対して被写体以外の領域を除外する処理や歪みを補正する処理を施して整形して得られた、被写体全体に対応する全体画像である。そして、画像５１０は、OCR処理の対象としたい注文書１１０の一部分に対して、レンズ１０２を接近して撮影（もしくは光学ズームで拡大撮影）することにより取得した、被写体の一部に対応する部分画像である。すなわち、部分画像５１０は、被写体の一部を高解像度の画像として取得したものに等しい。なお、全体画像５００内の破線で示す領域５０１は、部分画像５１０として撮影された部分の相対位置を示している。
【００２４】
［文字情報取り込み処理］
続いて、モバイル端末１００を用いて文書等のテキスト領域を撮影した画像にOCR処理を行い、文字情報を保存するまでの処理（文字情報取り込み処理）の流れについて説明する。図６は、本実施例に係る、文字情報取り込み処理の流れを示すフローチャートである。本フローは、ユーザがモバイルアプリ３１０を起動させることをトリガーに開始する。
【００２５】
ステップ６０１では、メイン制御モジュール３１１において、全体画像データが取得される。具体的には、まず、ユーザがモバイル端末１００の撮影機能を用いて、被写体となる文書等（ここでは、注文書１１０）の全体を撮影する。この際、ユーザが手動（撮影ボタンの押下）で撮影を行ってもよいし、オートフォーカス機能を使用するなどしてフォーカスが合う等の所定条件の充足を検出したタイミングで自動撮影してもよい。全体画像のデータがメイン制御モジュール３１１に入力されると、画像解析モジュール３１４において、前述の文書検出処理や歪み補正処理がなされる。例えば、文書検出処理では、撮影された画像と予め記憶した文書毎（注文書、請求書、納品書など）の特徴的なパターンとを比較するなどして、撮影画像内の文書領域（＝全体画像）に加え、当該文書の種類やサイズが特定される。例えば、図１のように注文書１１０が収まるよう撮影がなされた場合において、カメラ部２０６の解像度が640×480ピクセルであったとする。この場合の全体画像のサイズは、表示・操作画面４０１に占める検出された文書領域の割合から、例えば512×430（単位：ピクセル数）といった値が求まる。また、文書サイズに関しては、凡そピントが合っているとの前提で、全体画像撮影時のカメラ部２０６のフォーカス値に基づき推測してもよい。この推測に際しては、例えば、A4やA3といった所定サイズに対応する最良のフォーカス値を規定したテーブルを予め用意し、これを参照すればよい。なお、全体画像を取得する際の解像度を、後述の部分画像の取得する際の解像度よりも高解像度に（例えば、部分画像を640×480ピクセル、全体画像を1024×768ピクセルなど）してもよい。これは、全体画像を取得するための撮影は本ステップの１回のみで部分画像のように繰り返し行わないこと、高解像度にすることで全体画像特徴点の抽出時に細かな特徴を捉えることが可能になりマッチング精度が上がること、等がその理由である。上述のような解析によって取得された全体画像のデータは、特徴点抽出モジュール３１８に送られる。
【００２６】
ステップ６０２では、特徴点抽出モジュール３１８において、全体画像データから特徴点（全体画像特徴点）が抽出される。特徴点の抽出にはHarrisのコーナー検出やSIFT(Scale-Invariant feature Transform）、SURF(Speeded Up Robust Features)などを適用すればよい。なお、被写体が注文書等の帳票である場合には、一般的に罫線の交わる部分やコーナーが特徴点として考えられるが、これらは似たような箇所が多く文書内に存在し、特徴点として適さないことがある。そこで、上述の手法によって特徴点が抽出出来たとしても、例えばその特徴ベクトルが互いに似通っている特徴点を、抽出結果から除外してもよい。その結果、相互に類似しない特徴点、具体的には、特殊なイラストや文字といったような、罫線やコーナー以外の箇所が特徴点として残る。特徴ベクトルが互いに似通っているかどうかの判定には、ユークリッド距離やマンハッタン距離、相関係数などを用いればよい。前述の図５の例では、全体画像５００内の2つの丸印５０２及び５０３が、全体画像５００から抽出された特徴点を示している。
【００２７】
ステップ６０３では、特徴点抽出モジュール３１８において、抽出された全体画像特徴点間の距離が導出される。この場合において、距離の単位はピクセル数である。図５に示した全体画像特徴点５０２及び５０３の場合、両特徴点の位置座標（x,y）を結ぶ両方向矢印５０４の長さに相当するピクセル数が、全体画像特徴点間の距離として導出されることになる。導出されたピクセル数は、記憶処理モジュール３１６によって、全体画像特徴点間の距離としてRAM２０２に保存される。
【００２８】
ステップ６０４では、メイン制御モジュール３１１において、部分画像データが取得される。具体的には、ユーザがモバイル端末１００の連写（若しくは動画）撮影機能を用いて、被写体となる文書等のうち、OCR処理の対象となり得る部分を所定枚数（所定フレーム数）撮影することで、部分画像のデータがメイン制御モジュール３１１に入力される。このように連写又は動画で部分画像を撮影する理由は2つある。1つ目は、ピンボケや手ブレがあると特徴点の抽出精度が落ちてしまうところ、一定時間内（例えば1.0sec）に高速で連続撮影を行って複数の部分画像を取得して、特徴点抽出精度の良い1枚をその中から選択するためである。2つ目は、複数の部分画像を撮影する場合において、次に撮影して欲しい部分に誘導するためのトラッキング処理を行うためである。この部分画像の撮影に際しては、例えば被写体である文書等のうちOCR処理を掛けたい所望の部分に、レンズ１０２を接近又は光学ズームで拡大し、例えばオートフォーカス機能によってフォーカスが合ったタイミングで撮影が自動で開始するようにする。また、被写体となる文書のフォーマットが既知で、OCR処理を掛けたい部分が事前に把握できている場合には、当該部分の位置を表示・操作領域４０１上に示すガイド表示を行ってもよい。このガイド表示としては、例えば、当該部分に対応する枠を表示させたり、当該部分の輝度を他の部分よりも上げるといった方法が考えられる。もちろん、全体画像の撮影時と同様、ユーザが撮影ボタンを押下することによって部分画像の撮影を行ってよい。このようにして、図５に示すような、全体画像５００の一部を拡大した部分画像５１０が取得される。
【００２９】
ステップ６０５では、特徴点抽出モジュール３１８において、部分画像データから特徴点（部分画像特徴点）が、前述のステップ６０２と同様の手法にて抽出される。前述の図５の例では、部分画像５１０内の2つの丸印５１１及び５１２が、部分画像５１０から抽出された特徴点を示している。
【００３０】
ステップ６０６では、メイン制御モジュール３１１において、ステップ６０２で抽出した全体画像特徴点とステップ６０５で抽出した部分画像特徴点との間のマッチングが判定される。すなわち、特徴点同士の類似度を求め、類似度が一定の閾値以上かどうかが判定される。類似度を求める手法としては、例えば、2つの特徴点の特徴ベクトルに対してユークリッド距離やマンハッタン距離を算出する手法や、相関係数を算出する手法がある。また、誤判定を減らすために、マッチング結果を１対１に絞る、クロスチェックを取り入れてもよい。図５の例では、全体画像特徴点５０２と部分画像特徴点５１１との組合せと、全体画像特徴点５０３と部分画像特徴点５１２との組合せの2組について、それぞれマッチしたと判定されることになる。
【００３１】
ステップ６０７では、メイン制御モジュール３１１において、マッチング判定の結果、マッチしたと判定された特徴点の組合せが少なくとも2組以上あるかどうかが判定される。マッチしたと判定された特徴点の組合せの数が2組以上の場合は、ステップ６０８に進む。一方、マッチしたと判定された特徴点の組合せの数が2組未満の場合は、ステップ６１４に進む。
【００３２】
ステップ６０８では、メイン制御モジュール３１１において、部分画像特徴点間の距離が導出される。図５に示した部分画像特徴点５１１及び５１２の場合、両特徴点の位置座標（x,y）を結ぶ両方向矢印５１３の長さに相当するピクセル数が、部分画像特徴点間の距離として導出されることになる。導出されたピクセル数は、記憶処理モジュール３１６によって、部分画像特徴点間の距離としてRAM２０２に保存される。
【００３３】
ステップ６０９では、メイン制御モジュール３１１において、特徴点間距離のスケール変化値、すなわち、部分画像特徴点間の距離に対応する全体画像特徴点間の距離の比が導出される。
【００３４】
ステップ６１０では、メイン制御モジュール３１１において、導出したスケール変化値に基づいて、部分画像の撮影に適するフォーカス値が決定される。この際、対象文書における基準となる縦又は横の一辺（基準辺）の長さを表すピクセル数（ピクセル距離）とフォーカス値との対応関係を示すテーブル（ピクセル距離フォーカス値テーブル）が参照される。ここで、フォーカス値とは、カメラ部２０６内のフォーカスレンズ（不図示）の位置を制御してフォーカス調整を行うための設定値であり、カメラ部２０６の光学構成、OS、ドライバによって変わり得る。このフォーカス値は、例えば、マイクロソフト社の提供するOS（Windows）であれば「CameraControl_Focus」、アップル社の提供するOS（iOS）であれば「LensPosition」にそれぞれ相当する。ピクセル距離フォーカス値テーブルは、所定サイズの文書等を撮影した時の基準辺のピクセル距離と、その時の最適なフォーカス値とが対応付けられており、対象となり得る文書等のサイズ毎（例えばA4やA3といった所定サイズ毎）に予め用意し保持しておく。図７は、図１の注文書１１０に対応する、ピクセル距離フォーカス値テーブルの一例を示す図である。ここでは、フォーカス値にはiOSにおける「LensPosition」の値（0.00〜1.00）が入っている。図７のテーブルの場合、例えば、基準辺のピクセル距離が500であればフォーカス値を0.36に設定することで最適なフォーカスが得られることを示している。
【００３５】
図５のケースを例に具体的に説明する。いま、全体画像特徴点間距離５０４が250ピクセル、部分画像特徴点間距離５１３が415ピクセル、全体画像５００における基準辺（ここでは縦方向の長辺）の長さが512ピクセルであったとする。まず、ステップ６０９において、スケール変化値1.66（＝部分画像特徴点間距離：415ピクセル／全体画像特徴点間距離：250ピクセル）が導出される。そして、全体画像５００の基準辺の長さが512ピクセルであるので、この512ピクセルにスケール変化値1.66を乗算した値＝850ピクセルが、部分画像５０１における基準辺のピクセル距離となる。最後に、図７のテーブルを参照して、部分画像５０１の基準辺のピクセル距離（850ピクセル）に対応するフォーカス値を取得する。この際、本実施例のように基準片のピクセル距離に直接対応するフォーカス値がテーブル内にない場合には、補間処理によって求めればよい。例えば、ピクセル距離が840の場合、ピクセル距離：900に対応するフォーカス値：0.04と、ピクセル距離：800に対応するフォーカス値：0.09との中間値である0.065が、最適なフォーカス値として決定される。なお、補間処理には、線形補間、多項式補間、キュービック補間など公知の手法をOSやドライバ等も考慮して適宜適用すればよい。以上のようにして決定されたフォーカス値によって、カメラ部２０６のフォーカス値は更新（新たなフォーカス値として設定）される。この際、単に新たなフォーカス値を固定値で設定するだけでなく、決定されたフォーカス値に余裕（例えば±10％）を持たせ、幅のあるフォーカス値を設定してもよい。これにより、カメラ部２０６に備わるオートフォーカス機能も併用することができる。
【００３６】
ステップ６１１では、画像解析モジュール３１４において、ステップ６０４で取得したフレームの部分画像についてエッジ度が検出される。このエッジ度は、部分画像の鮮鋭性を評価するためのもので、エッジ度が高いほど鮮鋭性が高く、OCR処理に適した画像と判断することができる。エッジ度の検出には公知のフィルタ処理を適用すればよい。
【００３７】
ステップ６１２では、メイン制御モジュール３１１において、今回検出されたエッジ度が最良のエッジ度であるかどうかが判定される。具体的には、過去に検出されたエッジ度のうち最も高いエッジ度を最良のエッジ度として保存するようにする。そして、エッジ度が検出される度に当該保存されたエッジ度と比較して、新たに検出されたエッジ度の方が高い場合には、それを新たな最良のエッジ度として保存するようにする。なお、エッジ度が最初に検出された場合には、比較対象となる保存されたエッジ度が存在しないので、判定を行うことなく最良のエッジ度として扱われる。判定の結果、今回検出されたエッジ度が最良のエッジ度である場合は、ステップ６１３に進む。一方、今回検出されたエッジ度が最良のエッジ度でない場合は、ステップ６１４に進む。
【００３８】
ステップ６１３では、記憶処理モジュール３１６によって、ステップ６１２で最良と判定されたエッジ度を持つ部分画像が、OCR処理用の画像としてRAM２０２に保存される。
【００３９】
ステップ６１４では、メイン制御モジュール３１１において、取得した部分画像が所定枚数に達したかどうかが判定される。ここで、所定枚数は、カメラ部２０６の連写或いは動画モードでの撮影性能にも拠るが、例えば所定の撮影時間（例えば1sec）に取得可能なフレーム数（例えば10〜30フレーム）となる。取得した部分画像が所定枚数に達していれば、ステップ６１５に進む。一方、取得した部分画像が所定枚数に達していなければ、ステップ６０４に戻って次のフレームの撮影を行って、ステップ６０５以降の処理を繰り返す。なお、部分画像の撮影の終了を、取得枚数ではなく撮影開始からの経過時間（例えば1sec）で判断してもよい。
【００４０】
ステップ６１５では、OCRモジュール３１５において、撮影された部分画像のうち最良のエッジ度を持つ部分画像として保存された画像をRAM２０２から呼び出し、OCR処理を行う。
【００４１】
ステップ６１６では、メイン制御モジュール３１１において、OCR処理の結果（文字認識率）が十分な精度、例えば一定のOCR確信度に対応する閾値以上であるかどうかが判定される。文字認識率が一定の閾値未満であれば、ステップ６０４に戻って部分画像の撮影からやり直す。この際、ユーザに所定の認識率が得られなかった旨を通知してもよい。また、露出を変更するなど異なる撮影条件の下で部分画像の撮影を開始するようにしてもよい。さらには、点線で示すようにステップ６０１に戻って全体画像の撮影からやり直してもよい。
【００４２】
ステップ６１７では、メイン制御モジュール３１１において、ユーザによる目視チェックの結果を受け付け、処理の切り分けがなされる。例えば、表示・操作領域４０１に表示されたOCR処理の結果をユーザが実際に確認して、問題がなければOKボタン、問題があればNGボタン（いずれのボタンも不図示）を押下するようにする。こうして、ユーザによる目視チェックの結果に従い、問題がなければステップ６１８に進む。一方、問題があればステップ６０４（若しくは６０１）に戻り、上述のとおり撮影をやり直す。なお、ユーザによる目視チェックが困難なユースケースなどでは本ステップを省略しても構わない。
【００４３】
ステップ６１８では、データ管理モジュール３００によって、ステップ６１５でのOCR処理の結果が、その基となった撮影画像（少なくとも部分画像を含み、さらには全体画像を含んでもよい。）と共に保存される。なお、保存先は、モバイル端末１００が有する不揮発性の外部記憶装置（例えばフラッシュメモリ）でもよいし、LANやインターネットといったネットワーク上のＰＣやサーバにアップロードしてもよい。また、複数の文書についてのOCR処理の結果をまとめて、所定時間経過後に、他のＰＣやサーバにアップロードしてもよい。
【００４４】
以上が、文字情報取り込み処理の内容である。
【００４５】
なお、マッチしたと判定された特徴点の組合せが3組以上ある場合には、部分画像特徴点間距離を複数得ることができ、その結果、ステップ６０８では基準辺のピクセル距離が複数得られることになる。この場合、得られた複数のピクセル距離の平均値を取ることにより、特徴点の誤抽出に対して耐性のある処理とすることができる。また、部分画像を所定フレーム数取得後（或いは撮影開始から所定時間経過後）もマッチする特徴点の組合せが2組以上でない場合には、その旨を知らせる通知等のフォールバック処理を行ってもよい。
【００４６】
また、特徴点の抽出方法によっては、LoG(Laplacian of Gausian)やDoG(Difference of Gaussian)画像から極値を求めるものがある。極値の存在するスケール係数σを、決定したフォーカス値の補正や、不正なフォーカス値を除外する判断に使用してもよい。
【００４７】
さらに、ピクセル距離フォーカス値テーブルは、カメラ部２０６のズーム機能に応じて複数用意してもよい。これは光学ズームの性能・構造によって、最適なフォーカス値が変化し得るためである。また、決定されたフォーカス値を設定する際には、単に新たなフォーカス値を固定値として設定するのではなく、決定されたフォーカス値に余裕（例えば±10％）を持たせ、幅のあるフォーカス値を設定してもよい。これにより、カメラ部２０６に備わるオートフォーカス機能を併用することができる。
【００４８】
以上のように本実施例によれば、カメラ付きのモバイル端末等を用いて文書等に接近して画像を取り込む際に、特徴点間距離のスケール変化に基づき、素早く最適なフォーカス値を決定することができる。
【実施例２】
【００４９】
実施例１では、文書等の全体画像における特徴点間距離と部分画像における特徴点間距離との比（スケール変化値）に基づいて、最適なフォーカス値を決定する態様を説明した。次に、撮影面と文書面とが平行ではない場合に、全体画像における任意座標に対応する、部分画像における座標の奥行きを推定して、最適なフォーカス値を決定する態様について、実施例２として説明する。なお、実施例１と共通する内容については説明を省略ないしは簡略化し、以下では差異点を中心に説明を行うものとする。
【００５０】
図８は、被写体である注文書１１０の面（文書面）と撮影された全体画像８００の面（撮影面）とが平行ではなく大きく傾いている状態を示している。そして、図８において、破線で示す枠８１０は、図５における部分画像５１０に相当する位置を示している。枠８１０内の4つの○印は特徴点を示し、1つの×印はフォーカスを合わせたい位置を示している。
【００５１】
最初に、本実施例で用いる奥行推定手法の基礎となる知識を確認しておく。以下の式（１）で示す行列式において、(X,Y,Z)は単位をミリメートルとするワールド空間における1つの点の座標を表している。また、(x,y)は当該1つの点を、カメラを通して射影された画像空間上の点の座標を表している。本実施例の場合、(x,y)の単位はピクセルである。つまり式（１）は、カメラからワールド空間上の或る点を見た場合、画像空間上でどの位置に表示されるかを表している。
【００５２】
【数１】
2018046337.tif 000003
【００５３】
上記式（１）におけるsは、同次座標のスケール不変を表すスケールファクタである。また、fxおよびfyは、ピクセル単位の焦点距離である。また、cx及びcyは、画像の中心が原点では無い場合に、画像の中心をピクセル単位で表している。また、r11〜r33は、ワールド空間から見た時のカメラの姿勢を表す回転成分である。そして、txとtyとtzは、ワールド空間から見た時のカメラの位置を表す、平行移動成分である。上記式（１）は2つの行列の積で表現されており、以下の式（２）のように表現することもできる。
【００５４】
【数２】
2018046337.tif 000004
【００５５】
上記式（２）において、Miはカメラ空間座標から画像空間座標へと変換するパラメータ（カメラ内部パラメータ）を表し、Meはワールド空間座標をカメラ空間座標に変換するパラメータ（カメラ外部パラメータ）を表す。なお、Miにはカメラの歪み成分を含める場合もある。
【００５６】
カメラ内部パラメータMiを求めることをカメラキャリブレーションと呼び、様々な方法がすでに提案されている。なお、本実施例ではカメラキャリブレーションは事前に行われておりMiは既知であるものとする。また、カメラ外部パラメータMeはワールド空間から見たカメラの位置及び姿勢を表すものである。したがって、Meを推定することが出来れば、カメラを動かした際のカメラの三次元位置、またはカメラを固定した状態で物体が移動した場合の物体の三次元位置が求められる。
【００５７】
ワールド空間上の点と画像空間上の点との複数の組、及びカメラ内部パラメータMiが既知である時、カメラ外部パラメータMeを求める問題は、一般にPerspective-n-Point問題として知られ、様々な解法が考えられている。特に、推定に用いるワールド空間上の点が全て同一平面上にあるとき、少なくとも4つ以上の点の組の位置が既知であれば、カメラ外部パラメータMeが推定可能であることが知られている。
【００５８】
そこで本実施例では、マッチング判定の結果、マッチすると判定された特徴点の組合せが4組以上ある場合に、まずカメラ外部パラメータMeの推定を行なう。カメラ外部パラメータMeを推定した後、被写体である文書上の任意の点座標を、推定したカメラ外部パラメータMeで変換することで、カメラ空間上における座標を求める。こうして、カメラ空間上に変換した際のz座標の値が、単位をミリメートルとしたカメラから文書上の任意の点までの距離、すなわち、奥行となる。
【００５９】
図９は、本実施例に係る、文字情報取り込み処理の流れを示すフローチャートである。ステップ９０１及び９０２は、実施例１の図６のフローにおけるステップ６０１及び６０２に相当する。すなわち、被写体となる文書の全体画像の取得（ステップ９０１）と特徴点の抽出がなされる（ステップ９０２）。続くステップ９０３〜９０５は、実施例１の図６のフローにおけるステップ６０４〜６０６に相当する。すなわち、連写機能等を用いた部分画像の取得（ステップ９０３）、部分画像特徴点の抽出（ステップ９０４）、全体画像特徴点と部分画像特徴点とのマッチング判定（ステップ９０５）がなされる。
【００６０】
そして、ステップ９０６では、メイン制御モジュール３１１において、上述の通り、マッチング判定の結果、マッチしたと判定された特徴点の組合せが少なくとも4組以上あるかどうかが判定される。マッチしたと判定された特徴点の組合せの数（マッチング数）が4組以上の場合は、ステップ９０７に進む。一方、マッチしたと判定された特徴点の組合せの数が4組未満の場合は、カメラ外部パラメータステップMeの推定ができないので、ステップ９１３に進む。
【００６１】
ステップ９０７では、メイン制御モジュール３１１において、マッチしたと判定された4組以上の特徴点の組合せと、事前に推定したカメラ内部パラメータMiから、カメラ外部パラメータMeの推定がなされる。この際、マッチしたと判定された特徴点の組合せが5組以上ある場合には、特徴点の外れ値を推定に用いないようにしてもよい。このような手法は一般にRANSACと呼ばれており、推定の外れ値に対するロバストネスを高めることができる。
【００６２】
ステップ９０８では、メイン制御モジュール３１１において、全体画像における任意座標に対応する、部分画像における座標の奥行を推定する。ここで、任意座標は、OCR処理を掛けたい領域内における、上述の×印８２０で示したフォーカスを合わせたい位置である。ステップ９０７で推定したカメラ外部パラメータMeは、ワールド空間座標をカメラ空間座標へ変換する座標変換行列である。そのため、フォーカスを合わせたい全体画像上の任意の座標（ワールド空間上の座標）を、カメラ外部パラメータでカメラ空間座標へ変換し、変換後のz値を見ることで、この奥行を推定することができる。
【００６３】
ステップ９０９では、メイン制御モジュール３１１において、推定された部分画像における座標の奥行きに基づき、カメラ部２０６のフォーカス値を決定する。この決定に際しては、カメラ（＝レンズ１０２）から被写体までの距離（単位：mm）と最適なフォーカス値とを対応付けたテーブルを事前に用意し不図示のフラッシュメモリ等に保持しておくものとする。例えば、カメラからの距離が200mmの時はフォーカス値0.2、400mmの時はフォーカス値0.4といったように、カメラからの距離と最適フォーカス値とが1対1で対応づけられている。なお、カメラからの距離とフォーカス値との関係は、使用するカメラ、OS、カメラのドライバに依存するものである。以上のようにして決定されたフォーカス値によって、カメラ部２０６のフォーカス値は更新（新たなフォーカス値として設定）される。
【００６４】
続くステップ９１０〜９１７は、実施例1の図６のフローにおけるステップ６１１〜６１８に相当し、特に異なるところはないので省略する。
【００６５】
なお、本実施例では、奥行き推定にカメラ外部パラメータを用いたが、他の手法、例えばホモグラフィ行列を用いてもよい。
【００６６】
以上のように本実施例によれば、モバイル端末等を用いて文書等に接近してその一部の画像を取り込む際に、文書面と撮影面とが平行になっていなくても、素早く任意の点にフォーカス値を合わせることができる。
【００６７】
[その他の実施例]
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2018046337.tif 000005
【図２】
2018046337.tif 000006
【図３】
2018046337.tif 000007
【図４】
2018046337.tif 000008
【図５】
2018046337.tif 000009
【図６】
2018046337.tif 000010
【図７】
2018046337.tif 000011
【図８】
2018046337.tif 000012
【図９】
2018046337.tif 000013