(57)【要約】【課題】  動画撮影している画像におけるトラッキング処理の精度を向上させる。【解決手段】  本発明によれば、予め用意された全体画像から抽出される特徴点と、第１の撮影画像から抽出される特徴点とを比較する特徴点比較処理を実行することにより、前記全体画像における座標系と前記第１の撮影画像における座標系との間の座標変換に用いる第１の変換情報（第１の変換行列）を求める装置において、前記第１の変換情報を更新する場合、直前の画像の撮影位置に基づいて、前記全体画像から部分画像を生成し、該部分画像から抽出される特徴点と、前記第１の変換情報の更新に用いる撮影画像から抽出される特徴点とを比較する特徴点比較処理を実行することにより、更新用の変換情報を求め、当該求めた更新用の変換情報を用いて前記第１の変換情報を更新する。【選択図】  図１１
2019012360.tif 000002
【特許請求の範囲】
【請求項１】
予め用意された全体画像から抽出される特徴点と、第１の撮影画像から抽出される特徴点とを比較する特徴点比較処理を実行することにより、前記全体画像における座標系と前記第１の撮影画像における座標系との間の座標変換に用いる第１の変換情報を求める第１の取得手段と、
前記第１の変換情報を求める際に用いた前記第１の撮影画像から抽出される特徴点に基づいて、前記第１の変換情報を求めた時点での第２の撮影画像における特徴点の位置を追跡する特徴点追跡処理を実行することにより、前記第１の撮影画像における座標系と前記第２の撮影画像における座標系との間の座標変換に用いる第２の変換情報を求める第２の取得手段と、
第３の撮影画像の直前の撮影画像から抽出される特徴点に基づいて、当該第３の撮影画像における特徴点の位置を追跡する特徴点追跡処理を実行することにより、前記直前の撮影画像における座標系と前記第３の撮影画像における座標系との間の座標変換に用いる第３の変換情報を求める第３の取得手段と、
前記第１の変換情報と前記第２の変換情報と前記第３の変換情報とに基づいて、前記第３の撮影画像に対応する撮影位置を前記全体画像にマッピングする第１のマッピング手段と、
前記第１の変換情報を更新する場合、前記第１のマッピング手段によりマッピングされた前記撮影位置に基づいて、前記全体画像から部分画像を生成する生成手段と、
前記部分画像から抽出される特徴点と、前記第１の変換情報の更新に用いる第４の撮影画像から抽出される特徴点とを比較する特徴点比較処理を実行することにより、前記全体画像における座標系と前記第４の撮影画像における座標系との間の座標変換に用いる更新用の変換情報を求め、当該求めた更新用の変換情報を用いて前記第１の変換情報を更新する更新手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記更新手段は、前記部分画像から抽出される特徴点と前記第４の撮影画像から抽出される特徴点とを比較する特徴点比較処理でマッチした箇所を前記全体画像の座標系に変換することにより、当該前記全体画像における座標系と前記第４の撮影画像における座標系との間の座標変換に用いる更新用の変換情報を求め、当該求めた更新用の変換情報を用いて前記第１の変換情報を更新する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記生成手段により生成される部分画像は、前記第１のマッピング手段によりマッピングされた前記撮影位置のサイズより大きいサイズの部分画像であることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記生成手段により生成される部分画像は、前記第１のマッピング手段によりマッピングされた前記撮影位置と、加速度センサで検出した速度の変化率の情報とに基づいて設定される領域の画像であることを特徴とする請求項１または２に記載の情報処理装置。
【請求項５】
前記第１の変換情報と前記第２の変換情報と前記第３の変換情報とに基づいて、前記全体画像におけるデータ入力領域を、前記第３の撮影画像にマッピングする第２のマッピング手段を、更に有することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
コンピュータを、請求項１乃至５のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【請求項７】
予め用意された全体画像から抽出される特徴点と、第１の撮影画像から抽出される特徴点とを比較する特徴点比較処理を実行することにより、前記全体画像における座標系と前記第１の撮影画像における座標系との間の座標変換に用いる第１の変換情報を求める第１の取得ステップと、
前記第１の変換情報を求める際に用いた前記第１の撮影画像から抽出される特徴点に基づいて、前記第１の変換情報を求めた時点での第２の撮影画像における特徴点の位置を追跡する特徴点追跡処理を実行することにより、前記第１の撮影画像における座標系と前記第２の撮影画像における座標系との間の座標変換に用いる第２の変換情報を求める第２の取得ステップと、
第３の撮影画像の直前の撮影画像から抽出される特徴点に基づいて、当該第３の撮影画像における特徴点の位置を追跡する特徴点追跡処理を実行することにより、前記直前の撮影画像における座標系と前記第３の撮影画像における座標系との間の座標変換に用いる第３の変換情報を求める第３の取得ステップと、
前記第１の変換情報と前記第２の変換情報と前記第３の変換情報とに基づいて、前記第３の撮影画像に対応する撮影位置を前記全体画像にマッピングする第１のマッピングステップと、
前記第１の変換情報を更新する場合、前記第１のマッピングステップでマッピングされた前記撮影位置に基づいて、前記全体画像から部分画像を生成する生成ステップと、
前記部分画像から抽出される特徴点と、前記第１の変換情報の更新に用いる第４の撮影画像から抽出される特徴点とを比較する特徴点比較処理を実行することにより、前記全体画像における座標系と前記第４の撮影画像における座標系との間の座標変換に用いる更新用の変換情報を求め、当該求めた更新用の変換情報を用いて前記第１の変換情報を更新する更新ステップと、
を備える情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トラッキング処理に関する。
【背景技術】
【０００２】
カメラ付きモバイル端末は一般的なものになってきた。従来、ユーザーは紙文書を画像データ化して取り込むためにスキャナなどを利用していたが、モバイル端末のカメラを用いて撮影することで簡単に紙文書の画像データを取得することが出来るようになった。特許文献１は、カメラを利用して取り込んだ電子書類の表示領域および座標を認識およびトラッキングするための技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−０２０８９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本明細書では、カメラで取り込んだ紙文書の画像の局所領域におけるＯＣＲ結果情報を取得し利用する構成について検討する。ＯＣＲ結果情報を取得する際、取得対象の情報が記された領域（データ入力領域）の位置座標が既知であれば（例えば、既知のフォーマットの帳票）、ＯＣＲ処理対象の領域を特定できるので、その領域をＯＣＲ処理してＯＣＲ結果を取得すればよい。このとき名刺や免許証といった比較的小さな被写体であれば、被写体全体を撮影したとしてもＯＣＲに十分な解像度の画像を得られる。一方、Ａ４またはＡ３のような比較的大きなサイズの紙文書では、文書全体を撮影した画像を用いてＯＣＲ処理した場合、ＯＣＲ結果情報の取得精度が悪化する。それは対象物とカメラとの距離が離れることによりＯＣＲ処理対象の領域の解像度が低下することに加え、取り込んだ画像細部のピントのボケが発生しやすくなるからである。そこでＡ４やＡ３のような比較的大きなサイズの紙文書であっても対象の領域に接近して拡大画像を撮影することがＯＣＲ結果情報の取得精度向上には必須となる。既知フォーマットの帳票を撮影する場合、帳票の現在の撮影範囲を特定できれば、相対的な位置関係に基づいてＯＣＲ処理対象領域（データ入力領域）を特定できるので、その対象領域を拡大撮影させるようにすれば良い。よって本出願人は、まず文書画像全体を撮影してＯＣＲ処理対象領域を特定し、その特定した対象領域を拡大撮影するようにユーザーに促すために、該対象領域の部分を赤枠などで強調表示することで撮影対象の領域をガイド表示することを考えている。さらに、文書画像全体を撮影した後、ユーザーがカメラを文書のＯＣＲ処理対象領域に徐々に近づける動作を行っている間も、その領域をトラッキングして強調表示することによりガイド表示し続けることを考えている。拡大撮影して欲しい領域をガイドすることにより、ユーザーは無駄な部分を拡大撮影せずに済み、効率よく撮影してＯＣＲ結果を取得できる。
【０００５】
一方で、撮影画像の特徴点と既知フォーマットの帳票全体の特徴点とを比較することによって、撮影中の帳票の現在の撮影範囲を特定する処理は処理負荷が高いため、撮影動画の全てのフレームでこの処理を行うことは難しい。そこで、最初に、撮影画像の特徴点と既知フォーマットの帳票全体の特徴点とを比較する特徴点比較処理によって、当初の撮影範囲を特定した後は、動画のフレーム間での特徴点の移動量を追跡する特徴点追跡処理を実行することにより、撮影範囲およびＯＣＲ処理対象領域をトラッキングすることが考えられる。特許文献１では、電子書類の表示領域及び場所を、インビジブルジャンクション特徴量を使用して認識及びトラッキングする方法が記されており、インビジブルジャンクション特徴量による表示領域及び場所の特定が一度行われれば、ビデオフレーム間で特徴点を追跡し、ビデオフレーム間での平面的な動き（投影変換）を推定することが記述されている。
【０００６】
しかしながら、動画のフレーム間で特徴点を追跡することにより撮影範囲およびＯＣＲ処理対象領域をトラッキングするように構成した場合、フレーム間の特徴点追跡処理における誤差が徐々に累積していき、対象領域の位置ズレが大きくなってしまう。トラッキングの誤差の蓄積によりＯＣＲ処理対象領域の位置がずれた状態で、その領域に対してＯＣＲ処理を適用すると、本来必要な情報がその領域からはみ出て認識されない可能性がある。したがって、トラッキングの誤差の蓄積による位置ズレは定期的に修正する必要がある。そこで、本出願人は、撮影中のフレーム画像の特徴点と既知フォーマットの帳票全体の特徴点とを比較する特徴点比較処理を定期的に実行することによって、定期的に、現在の撮影範囲を特定し直すことにより、位置ズレを修正することを検討している。しかしながら、カメラを被写体に近づけて被写体の一部を拡大撮影しているときの撮影画像の特徴点と、既知フォーマットの帳票全体の特徴点とを比較する特徴点比較処理を実行する場合、特徴点比較処理を失敗しやすくなる。これは、帳票の一部に対応する拡大撮影画像から抽出される帳票の特徴点の数が減るため、帳票全体の特徴点と比較したときに、その拡大撮影画像の特徴点に適合する特徴点を有する箇所が、帳票全体から複数見つかることがあるためである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の情報処理装置は、予め用意された全体画像から抽出される特徴点と、第１の撮影画像から抽出される特徴点とを比較する特徴点比較処理を実行することにより、前記全体画像における座標系と前記第１の撮影画像における座標系との間の座標変換に用いる第１の変換情報を求める第１の取得手段と、前記第１の変換情報を求める際に用いた前記第１の撮影画像から抽出される特徴点に基づいて、前記第１の変換情報を求めた時点での第２の撮影画像における特徴点の位置を追跡する特徴点追跡処理を実行することにより、前記第１の撮影画像における座標系と前記第２の撮影画像における座標系との間の座標変換に用いる第２の変換情報を求める第２の取得手段と、第３の撮影画像の直前の撮影画像から抽出される特徴点に基づいて、当該第３の撮影画像における特徴点の位置を追跡する特徴点追跡処理を実行することにより、前記直前の撮影画像における座標系と前記第３の撮影画像における座標系との間の座標変換に用いる第３の変換情報を求める第３の取得手段と、前記第１の変換情報と前記第２の変換情報と前記第３の変換情報とに基づいて、前記第３の撮影画像に対応する撮影位置を前記全体画像にマッピングする第１のマッピング手段と、前記第１の変換情報を更新する場合、前記第１のマッピング手段によりマッピングされた前記撮影位置に基づいて、前記全体画像から部分画像を生成する生成手段と、前記部分画像から抽出される特徴点と、前記第１の変換情報の更新に用いる第４の撮影画像から抽出される特徴点とを比較する特徴点比較処理を実行することにより、前記全体画像における座標系と前記第４の撮影画像における座標系との間の座標変換に用いる更新用の変換情報を求め、当該求めた更新用の変換情報を用いて前記第１の変換情報を更新する更新手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明の情報処理装置によれば、動画撮影している画像におけるトラッキング処理の精度を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】モバイル端末の外観の一例を示す図である。
【図２】モバイル端末のハードウェア構成の一例を示す図である。
【図３】モバイル端末のソフトウェア構成の一例を示す図である。
【図４】モバイルアプリのＵＩの一例を示す図である。
【図５】全体画像と撮影画像の一例を示す図である。
【図６】データ抽出領域の一例を示す図である。
【図７】トラッキング処理の一例を示す図である。
【図８】基本処理フローを示す図である。
【図９】第１及び第２変換行列作成・更新フローを示す図である。
【図１０】特徴点比較フローを示す図である。
【図１１】部分画像の一例を示す図である。
【発明を実施するための形態】
【００１０】
（実施例１）
本実施形態に係る情報処理装置の一例として、カメラ機能付きのモバイル端末（携帯端末）を例に説明する。図１は、モバイル端末の外観の一例を示す図である。モバイル端末１００は、各種のユニット（１０１〜１０４）を含んで構成される。モバイル端末１００の前面部１０１には、タッチパネル１０２が設けられているタッチパネル１０２は、画像（動画）等の情報を表示するためのディスプレイ（表示部）としての機能と、ユーザーのタッチ操作に応じて指示を入力するための入力部としての機能とを備えている。さらに、モバイル端末１００の背面部１０３は、紙文書等の被写体１０５を撮影して撮影画像を取り込むためのカメラ１０４を含む。モバイル端末１００のユーザーは、後述のモバイルアプリ（モバイルアプリケーション）を起動させ、カメラ１０４を使用して被写体１０５の画像を撮ることによって処理を開始することができる。図１の被写体１０５は、Ａ４サイズの紙文書の注文書である。なお、被写体１０５は、紙文書だけに限らず、様々なサイズの名刺、写真、カードなどを含むことができる。後述のモバイルアプリは、被写体１０５の画像をカメラ１０４を使用して取り込み、タッチパネル１０２にその画像を表示出力することができる。
【００１１】
図２は、モバイル端末１００のハードウェアの構成の一例を示す図である。モバイル端末１００は、各種のユニット（２０１〜２０８）を含んで構成される。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１は、各種のプログラムを実行し、様々な機能を実現するユニットである。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２は、各種の情報を記憶するユニットである。また、ＲＡＭ２０２は、ＣＰＵ２０１の一時的な作業記憶領域としても利用されるユニットである。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０３は、各種のプログラム等を記憶する記憶媒体である。ＲＯＭ２０３は、フラッシュメモリやＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）やＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の記憶媒体であればよい。そして、ＣＰＵ２０１は、ＲＯＭ２０３に記憶されているプログラムをＲＡＭ２０２にロードしてプログラムを実行する。これにより、ＣＰＵ２０１は、図３に示されるようなモバイルアプリの各処理部として機能し、後述するシーケンスの各ステップの処理を実行する。なお、モバイルアプリの各処理部の機能及び後述するシーケンスに係る処理の全部又は一部については、ＣＰＵ２０１で実現するものに限るものではなく、専用のハードウェアを用いて実現してもよい。
【００１２】
Ｉｎｐｕｔ／Ｏｕｔｐｕｔインターフェース２０４は、タッチパネル１０２とデータを送受信する。ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）２０５は、モバイル端末１００をネットワーク（不図示）に接続するためのユニットである。カメラユニット２０６は、カメラ１０４と接続し、被写体１０５の画像をモバイル端末１００に取り込む。加速度センサ２０７は、モバイル端末１００の加速度（速度の変化率）を計測するためのセンサである。上述した各ユニットは、バス２０８を介してデータの送受信を行うことが可能に構成されている。
【００１３】
図３は、モバイル端末１００のソフトウェア構成の一例を示す図である。図３に示されるモバイルアプリにおける各機能処理部（モバイルアプリの各モジュール部）を実現するプログラムは、ＲＯＭ２０３等に記憶されている。モバイル端末１００のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）（不図示）は、データ管理部３０１を有する。
【００１４】
データ管理部３０１は、画像やアプリケーションデータを管理する。ＯＳは、データ管理部３０１を利用するための制御ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を提供している。モバイルアプリはその制御ＡＰＩを利用することで、データ管理部３０１が管理する画像やアプリケーションデータの取得や保存を行う。
【００１５】
モバイルアプリ３０２は、モバイル端末１００のＯＳのインストール機能を利用して、各ＯＳのアプリストア等からダウンロードおよびインストールされたアプリケーションである。モバイルアプリ３０２は、カメラユニット２０６を介して取り込んだ被写体１０５の画像に対する各種のデータ処理を行う。
【００１６】
メイン制御部３０３は、モバイル端末１００用のアプリケーション（モバイルアプリ）３０２を構成する各モジュール部（３０４〜３１４）を連携させて制御するための制御部である。
【００１７】
情報表示部３０４は、メイン制御部３０３からの指示に従い、モバイルアプリ３０２のユーザーインタフェース（ＵＩ）を画面に表示させてユーザーに提供する。図４は、モバイルアプリ３０２のＵＩ（携帯端末用のＵＩ）を提供する画面の一例（モバイル端末画面４００）を示す図である。モバイル端末画面４００は、モバイル端末１００のタッチパネル１０２に表示される。また、モバイル端末画面４００では、表示および操作を行うための領域４０１に、カメラ１０４を介して取り込んだ画像を表示し、また、画像等に対するユーザーによる操作（ユーザー操作）を、当該表示されたＵＩを介して受け付ける。なお、モバイルアプリ３０２のＵＩの形態（位置、大きさ、範囲、配置、表示内容など）は、図に示す形態に限定されるものではなく、後述する各処理を実現することができる適宜の構成を採用することができる。
【００１８】
操作情報取得部３０５は、情報表示部３０４により表示されたＵＩを介してユーザー操作された内容を示す情報を取得し、当該取得した情報をメイン制御部３０３に通知する。例えば、領域４０１をユーザーが手で触れると、操作情報取得部３０５は、当該触れられた画面上の位置の情報を感知し、感知した位置の情報をメイン制御部３０３に送信する。
【００１９】
撮影画像取得部３０６は、カメラユニット２０６を介して撮影された動画像等の各撮影画像を取得し、記憶部３０７に送信する。記憶部３０７は、撮影画像取得部３０６により取得された撮影画像を記憶する。また、記憶部３０７は、メイン制御部３０３の指示により、当該記憶している撮影画像の削除を行うこともできる。
【００２０】
ＤＢ部３０８は、データベース機能を有し、後述する全体画像５００や、全体画像５００中において抽出すべきデータ情報が記載されているデータ入力領域（ＯＣＲ対象領域）の位置を示す情報を、データ入力領域情報テーブル６０１などを管理する。ＤＢ部３０８のデータは、メイン制御部３０３によるアプリケーション３０２の起動時に、記憶部３０７に送信され、必要な時に制御部３０３の指示により取得される。
【００２１】
特徴点抽出部３０９は、カメラユニット２０６を介して撮影された画像などに対して、画像上の輝度の変化が大きい箇所（エッジ）などを、特徴的なピクセル点（特徴点）とし、その特徴点の特徴を表すデータ（特徴量）を算出する。特徴点およびその特徴量を求める手法としては、ＳＩＦＴ（Ｓｃａｌｅ−Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｎｓｆｏｒｍ）やＳＵＲＦ（Ｓｐｅｅｄｅｄ−Ｕｐ  Ｒｏｂｕｓｔ  Ｆｅａｔｕｒｅｓ）などの手法がある。なお、特徴点とその特徴量を求める手法は、上述の手法に限るものではないが、回転や拡大縮小、画像の移動といった変化に頑強で、後述する特徴点比較処理において、マッチングする特徴点が一意に定まるような手法が好ましい。
【００２２】
特徴点比較処理部３１０は、特徴点抽出部３０９により異なる２つの画像それぞれから抽出された特徴点を比較する特徴点比較処理を行う。特徴点比較処理は、各画像間の特徴点とその特徴量を比較することで、画像間で一致する特徴点の組み合わせを求める（マッチングをする）ことができる。また、ＲＡＮＳＡＣ（Ｒａｎｄｏｍ  ｓａｍｐｌｅ  ｃｏｎｓｅｎｓｕｓ）のような外れ値を排除して法則性を推定する手法を用いることで、ノイズとなる特徴点の組み合わせを排除し、より精度の高いマッチングを行うことが可能となる。特徴点比較処理は精度の高いマッチング手法ではあるが、一般的に処理速度が遅い。本実施形態では、予め用意した既知のフォーマットの文書（帳票等）の全体画像と、カメラユニットで撮影した撮影画像との間で特徴点比較処理を行う。
【００２３】
特徴点追跡処理部３１１は、動画撮影した第１のフレームの撮影画像（原画像）から特徴点抽出部３０９により特徴点を抽出し、比較対象の第２のフレームの撮影画像上で前記特徴点の移動位置を推定する特徴点追跡処理（オプティカルフロー）を行う。特徴点追跡処理は、原画像上の各特徴点が、比較対象の画像においてどの方向にどれだけ移動したかの移動ベクトルを推定する。これにより、原画像上の特徴点が比較対象の画像上のどの位置に移動したかの推定を行うことができる。特徴点追跡処理部３１１での特徴点追跡処理は、特徴点比較処理部３１０での特徴点比較処理よりも処理速度が速い。ただし、特徴点追跡処理において移動ベクトルを正確に算出するためには、２つの画像（第１のフレームの撮影画像と第２のフレームの撮影画像）間において、オブジェクトの移動量が一定以下である（画像間の差分が小さい）必要がある。
【００２４】
座標変換処理部３１２は、２つの画像（全体画像と撮影画像、もしくは、第１フレームの撮影画像と第２フレームの撮影画像）の間で、ホモグラフィー変換（ｈｏｍｏｇｒａｐｈｙ  ｔｒａｎｓｆｏｒｍ、平面射影変換）を行うためのホモグラフィー変換行列（以下、変換行列）を算出することで、点のマッピングを行う。ホモグラフィー変換は、ある平面座標系上の点を、異なる平面座標系上に変形して移し替えることができる。似たものに、画像の回転、平行移動、拡大縮小を行うアフィン変換があるが、ホモグラフィー変換は、それらに加えて、座標位置に応じて拡大縮小の比率を変え、台形状の変換が可能となる。ホモグラフィー変換は、変換元の画像上の座標点（ｘ１，ｙ１）、変換後の画像上の座標点（ｘ２，ｙ２）、変換行列Ｈ、定数ｓを用いて以下のように表せられる。なお、変換行列の数式は、下記の数式（行列式）での表現に限るものではなく、２つの画像の座標系を変換するための変換式であれば、その他の形態であっても構わない。このような変換式（変換行列）は、２つの画像の座標系を変換する際の変換情報として使用される。
【００２５】
【数１】
2019012360.tif 000003
【００２６】
２つの画像に同じオブジェクトから抽出される特徴点が存在している場合、特徴点比較処理部３１０または特徴点追跡処理部３１１のマッチング処理によって求められた画像間の対応点座標をもとに、変換行列Ｈのパラメータを算出する。これにより、２つの画像間の変換行列を求め、第１の画像中の座標を第２の画像中にマッピングすることや、変換行列の逆行列を求めて、その逆のマッピングをおこなうことが可能となる。しかし、２つの画像間に同じオブジェクトがほとんど存在しなかった場合（画像間の差異が大きかった場合）、マッチングに成功する特徴点の数が少なくなり、変換行列Ｈの算出に失敗してしまう。
【００２７】
トラッキング処理部３１３は、後述するトラッキング処理により、カメラ１０４による最新の撮影画像が全体画像５００のどの部分（領域）を撮影しているかをトラッキングする。そして、そのトラッキング結果と、データ入力領域情報テーブル６０１に保存されているデータ入力領域の情報とに基づいて、撮影画像上にデータ入力領域をマッピングして描画し、モバイル端末画面４００上に表示する。そのため、最新の撮影画像を取得してから、モバイル端末画面４００上にデータ入力領域がマッピングされた画像を表示するまでに、座標変換処理部３１２による、全体画像５００と最新の撮影画像間の変換行列を求める処理を待つ必要がある。座標変換処理部３１２による変換行列の算出には、２つの画像間の特徴点のマッチング処理が必要となり、マッチング処理には特徴点比較処理部３１１と特徴点追跡処理部３１２による２通りの算出方法がある。特徴点比較処理部３１１によるマッチング処理には時間がかかるため、特徴点比較処理が完了するまで描画を行わないでいると、撮影レートの低下を招いてしまう。また、特徴点追跡処理部３１２による特徴点追跡処理は高速ではあるが、各撮影フレーム間で求めた変換行列を順次掛け合わせていくことによりトラッキングを行うので、各フレーム間で求めた変換行列の誤差が蓄積していく。したがって、特徴点追跡処理部３１２による特徴点追跡処理だけを行っていると、次第にトラッキング結果にズレが生じてしまう。そのため、後述するトラッキング処理では、定期的に特徴点比較処理を行ってズレを補正しながら、特徴点比較処理と特徴点追跡処理とを組み合わせて使用することで、トラッキングのズレを最小限にしつつ、モバイル端末画面４００への描画における撮影レートの低下を防いでいる。
【００２８】
部分画像生成部３１４は、全体画像５００の一部を切り出した画像（部分画像）を生成する。
【００２９】
次に、全体画像と撮影画像について図５を用いて説明する。全体画像５００は、予め用意された文書画像の一例である。全体画像５００は、被写体１０５の全体像に関する画像データで、予めＤＢ部３０８に保存されているものとするが、これに限るものではない。例えば、被写体１０５の全体を最初に撮影して取得した画像データに基づき、被写体以外の領域を削除する紙面検出処理や、歪み部分を補正する歪み補正処理などの整形加工を行うことにより、全体画像５００を取得するフローをアプリケーション３０２に追加しても良い。また、全体画像５００は、帳票等の表枠や固定の文字列部分のみを含む既知のフォーマットの文書画像（データ入力領域に文字列が記載される前の画像）であってもよい。
【００３０】
また、被写体１０５に対してカメラ１０４を用いて動画撮影した被写体１０５の一部（あるいは全体）の各フレームの画像を撮影画像と呼ぶ。撮影画像５０１、５０２、５０３、５０４は、動画撮影した各フレームの撮影画像の一例である。さらに撮影領域５０５、５０６、５０７、５０８は、全体画像において、撮影画像５０１〜５０４に対応する撮影領域を示している。すなわち、撮影画像５０１〜５０４は、撮影画像取得部３０６で取得された連続する動画撮影を抜き出したものの例であり、カメラ１０４の移動に応じて、撮影領域が５０５から５０８へと移動していることを図示している。
【００３１】
次に、ＤＢ部３１２に格納されているデータ入力領域情報テーブルについて説明する。図６は、本実施形態におけるデータ入力領域情報テーブルのデータ構造と、該テーブルに保持されているデータ入力領域（ＯＣＲ処理対象領域）に関する情報の一例を示す図である。データ入力領域情報テーブル６０１は、ｉｄカラム、ｋｅｙカラム、ｐｏｉｎｔカラム、ｗｉｄｔｈカラム、ｈｅｉｇｈｔカラムから構成される。ｉｄカラムはデータ入力領域情報テーブルにレコードが追加されるたびに１ずつ増加する値で、ＴａｂｌｅのＰｒｉｍａｒｙ  ｋｅｙである。ｋｅｙカラムは、各レコードがなんの情報に関するデータ入力領域情報なのかを示す情報を格納する。ｐｏｉｎｔカラムは、データ入力領域の左上端の、全体画像５００座標系における座標を格納する。ｗｉｄｔｈカラムは、データ入力領域の幅をピクセル単位で示した情報を格納する。ｈｅｉｇｈｔカラムは、データ入力領域の高さをピクセル単位で示した情報を格納する。また、図６の全体画像５００上に図示された領域６０８〜６１３は、それぞれデータ入力領域情報テーブル６０１のデータ入力領域の情報６０２〜６０７に対応する領域を示している。
【００３２】
次に、トラッキング処理部３１３によるトラッキング処理について、図７を用いて説明する。なお、以下では、２つの画像間の座標変換に用いる変換情報を「変換行列」として説明するが、前述の座標変換処理部３１２の説明において説明したように、行列式の表現に限るものではなく、その他の変換式（その他の変換情報）であっても構わない。撮影画像７００から７０８は撮影画像取得部３０６から取得された連続する動画撮影の撮影画像であり、被写体１０５にカメラ１０４を近づけて撮影されたものである。そのうち、撮影画像７００は、撮影開始時点から数えて一番初めに取得された撮影画像である。第１変換行列７０９は、予め用意された全体画像５００と撮影画像７００とを入力として、特徴点比較処理部３１０によって求められた特徴点比較結果を用いて、座標変換処理部３１２により求められる変換行列である。特徴点比較処理部３１０の処理には時間がかかるため、第１変換行列７０９が算出されるまでに、動画像の各フレーム画像として撮影画像７０１、７０２が取得される。このとき、第１変換行列が未生成のため、データ入力領域の位置を求めることができず、撮影画像７０１，７０２がそのままモバイル端末画面４００に表示される。
【００３３】
図７の例では、撮影画像７０３が取得された時点で、座標変換処理部３１２による第１変換行列７０９の算出が終わり、第１変換行列７０９が得られたとする。その時点で、第２変換行列７１０の生成が行われる。第２変換行列７１０は、第１変換行列７０９の算出に用いられた撮影画像７００と最新の撮影画像７０３とを入力画像として、特徴点追跡処理部３１１で特徴点を追跡する特徴点追跡処理を実行した結果を用いて、座標変換処理部３１２により求められる。そして、第１変換行列７０９と第２変換行列７１０とを掛け合わせることにより、全体画像５００と撮影画像７０３との間で座標の変換が可能となる変換行列が求められる。当該求めた変換行列と、データ入力領域情報テーブル６０１に保存されているデータ入力領域情報とをもとに、撮影画像７０３上に各データ入力領域をマッピングして描画し、モバイル端末画面４００に表示する。
【００３４】
さらにその後、最新の撮影画像７０４とひとつ前の撮影画像７０３とを入力画像として、特徴点追跡処理部３１１で特徴点を追跡する特徴点追跡処理を実行した結果を用いて、第３変換行列７１１が座標変換処理部３１２により求められる。そして、第１変換行列７０９と、第２変換行列７１０と、第３変換行列７１１とを掛け合わせることにより、全体画像５００と撮影画像７０４との間で座標の変換が可能となる変換行列が求められる。同様にして、最新の撮影画像とひとつ前の撮影画像間で第３変換行列７１２〜７１５を求める。そして、第１変換行列７０９と、第２変換行列７１０と、１乃至複数の第３変換行列とを掛け合わせることで、全体画像５００と最新の撮影画像（７０４〜７０８のいずれか）との間で座標の変換を行う変換行列を求めることができる。
【００３５】
しかし、座標変換処理部３１２により求められる変換行列の精度は、特徴点追跡処理部３１１による特徴点追跡処理の推定誤差の影響などにより１００％ではないため、複数の変換行列を掛け合わせることで誤差が蓄積する。そのため、定期的に、第１変換行列と第２変換行列とを更新し、誤差の蓄積をリセットする。第１変換行列７１６は、全体画像５００と撮影画像７０４とを入力として、特徴点比較処理部３１０によって求められた特徴点比較結果を用いて、座標変換処理部３１２により求められる変換行列である。第１変換行列７０９を求める時と同様に、第１変換行列７１６の算出にも時間がかかるため、第１変換行列７１６が算出されるまでに撮影画像７０５、７０６が取得されている。このとき、各撮影画像７０５，７０６を取得するたびに、一つ前の撮影画像との間で第３変換行列７１２、７１３を算出する。そして、生成済みの第１変換行列７０９と第２変換行列７１０と、第３変換行列７１１、７１２、７１３を用いて、最新の撮影画像７０６と全体画像５００の間で座標の変換を行う変換行列を求めることができる。そして、撮影画像７０７が取得された時点で、座標変換処理部３１２による第１変換行列７１６の算出が終わり、第１変換行列７１６が得られたとする。その時点で第２変換行列７１７の生成が行われる。第２変換行列７１７は、第１変換行列７１６の算出に用いられた撮影画像７０４と、最新の撮影画像７０７とを入力画像として、特徴点追跡処理部３１１で特徴点追跡処理を実行した結果を用いて、座標変換処理部３１２により求められる。第２変換行列７１７が求められた時点で、第１変換行列と第２変換行列の更新が完了し、以降の撮影画像では、更新された第１変換行列７１６と第２変換行列７１７と、各撮影画像間の第３変換行列７１５とを用いて、全体画像５００と最新の撮影画像７０８の間で座標の変換を行う変換行列を求める。この第１変換行列と第２変換行列との更新により、最新の撮影画像でのトラッキングに第３変換行列７１１から７１４が不要となるため、これらの第３変換行列を掛け合わせることで生じていた誤差がリセットされる。このように、第１変換行列および第２変換行列を定期的に更新することで、トラッキング中の誤差を最小限に保つことができる。
【００３６】
＜基本フロー＞
次に、モバイル端末１００のＣＰＵ２０１がモバイルアプリ３０２を実行することにより実現される、本発明の基本的なトラッキング処理フローについて図８を用いて説明する。本フローは、ユーザーによりモバイル端末１００におけるモバイルアプリ３０２が起動され、被写体１０５に対してカメラ１０４を接近して画像を取得することをトリガーに開始する。
【００３７】
Ｓ８０１で、メイン制御部３０３は、ＤＢ部３０８に保存されている全体画像５００を記憶部３０７に送信して使用できるようにする。
【００３８】
Ｓ８０２で、メイン制御部３０３は、ＤＢ部３０８に保存されているデータ入力領域情報テーブル６００を記憶部３０７に送信して使用できるようにする。
【００３９】
Ｓ８０３で、メイン制御部３０３は、撮影画像取得部３０６から、動画の最新フレームの画像を、撮影画像として１枚取得するよう命令する。
【００４０】
Ｓ８０４で、メイン制御部３０３は、後述する第１変換行列および第２変換行列の作成・更新処理フローを実行し、第１及び第２変換行列の作成・更新を行う。
【００４１】
Ｓ８０５で、メイン制御部３０３は、Ｓ８０４で第１および第２変換行列の作成が完了していた場合、トラッキング可能と判断して、Ｓ８０６に進む。一方、第１および第２変換行列の作成が完了していなかった場合は、トラッキング不可能と判断して、Ｓ８１０へ進む。
【００４２】
Ｓ８０６で、メイン制御部３０３は、特徴点追跡処理部３１１に対し、入力された最新の撮影画像と直前に入力された撮影画像との間で特徴点追跡処理を行うように指示し、更に、座標変換処理部３１２に対し、その特徴点追跡処理の結果に基づいて第３変換行列を生成するように命令する。座標変換処理部３１２は、前述したように、比較対象となった最新の撮影画像とその直前の撮影画像との間で特徴点比較処理部３１０により対応付けられた複数の特徴点の座標に基づいて、第３変換行列を生成する。
【００４３】
Ｓ８０７で、メイン制御部３０３は、座標変換処理部３１２に対し、生成済みの第１、第２、第３変換行列を用いて、全体画像と最新の撮影画像間で座標の変換が可能となる変換行列を生成するよう命令する。
【００４４】
Ｓ８０８で、メイン制御部３０３は、Ｓ８０７で生成した変換行列の逆行列を用いて、最新の撮影画像の四角の点を、全体画像上にマッピングし、全体画像座標系上の四辺形情報（四辺形の四つの頂点の座標から成る）を生成する。すなわち、現在撮影している位置が全体画像上のどの位置に相当するかの座標情報を生成する。
【００４５】
Ｓ８０９で、メイン制御部３０３は、Ｓ８０８で生成した四辺形情報を保存する。
【００４６】
Ｓ８１０で、メイン制御部３０３は、Ｓ８０７で第１〜３の変換行列に基づいて生成した変換行列と、記憶部３０７に記憶されたデータ入力領域情報テーブル６００の情報を用いて、データ入力領域情報テーブル６００に格納されている全体画像座標系上のデータ入力領域（ＯＣＲ処理対象領域）を、撮影画像上にマッピングする。マッピングしたデータ入力領域を、モバイル端末１００の画面４００にガイド表示する。なお、撮影画像入力後に、Ｓ８０７によるトラッキング処理を経由していない場合は、データ入力領域をマッピングしていない撮影画像をそのままモバイル端末画面４００に表示する。
【００４７】
Ｓ８１１で、メイン制御部３０３は、撮影画像取得部３０６による撮影画像の入力が終了したかどうかの判断を行う。撮影画像の入力が終了していた場合はフローを終了し、撮影画像の入力が続いていた場合はＳ８０３へ戻りフローを継続する。
【００４８】
＜第１及び第２変換行列作成・更新処理（Ｓ８０４）の詳細フロー＞
次に、図８のＳ８０４の第１及び第２変換行列作成・更新処理の詳細について、図９を用いて説明する。
【００４９】
Ｓ９０１で、メイン制御部３０３は、第１変換行列をすでに生成済みか判断する。生成済みの場合はＳ９０２へ遷移し、未生成の場合はＳ９０５へ遷移する。なお、後述するＳ９０２で第１変換行列を更新するタイミングと判断され且つＳ９０６で特徴点比較処理が開始され且つ第１変換行列が更新されていない場合も、Ｓ９０１においてメイン制御部３０３は、更新用の第１変換行列を生成済みでないと判断してＳ９０５へ遷移するものとする。
【００５０】
Ｓ９０２で、メイン制御部は、第１変換行列を新たに更新するタイミングであるかどうかの判断を行う。第１変換行列の更新タイミングは、第１変換行列及び第２変換行列がすでに生成済みで、全体画像と最新の撮影画像との間のトラッキング経路が確立されたタイミングで最新の撮影画像に対して更新を行うようにしてもよい。あるいは、トラッキング経路が確立されたのち、数フレーム撮影してから行うようにしてもよい。いずれにしても、メイン制御部３０３は、第１変換行列を定期的に更新するように判断する。第１変換行列を新たに更新するタイミングでないと判断した場合はＳ９０３へ進み、新たに更新するタイミングであると判断した場合はＳ９０５へ進む。
【００５１】
Ｓ９０３で、メイン制御部３０３は、第２変換行列がすでに生成済みかどうかの判定を行う。第２変換行列が生成済みの場合はＳ９０４へ、未生成の場合はＳ９０９へ遷移する。
【００５２】
Ｓ９０４で、メイン制御部３０３は、第１変換行列の更新が行われたかどうかの判断を行う。第１変換行列が更新されている場合はＳ９０９へ進み、更新されていない場合はフローを終了する。
【００５３】
Ｓ９０５で、メイン制御部３０３は、特徴点比較処理部３１０による特徴点比較処理が行われている最中かどうかを判別する。特徴点比較処理実行中でなければＳ９０６へ遷移し、実行中であればＳ９０７へ遷移する。
【００５４】
Ｓ９０６で、メイン制御部３０３は、特徴点比較処理部３１０に対し、全体画像と最新の撮影画像との間で特徴点比較処理を開始するよう指示し、フローを終了する。なお、図１０を用いて後述するように、Ｓ９０２で第１変換行列を更新するタイミングであると判断されて該特徴点比較処理を開始する場合、それまでのトラッキング結果に基づき、全体画像の比較対象部分を絞り込んで該処理を実行する。
【００５５】
Ｓ９０７で、メイン制御部３０３は、特徴点比較処理部３１０による特徴点比較処理が完了したかどうかを判定する。処理が完了した場合はＳ９０８へ遷移し、処理が完了していない場合はフローを終了する。
【００５６】
Ｓ９０８で、メイン制御部３０３は、特徴点比較処理部３１０による特徴点比較処理結果を用いて、座標変換処理部３１２に対して、当該特徴点比較処理の対象となった全体画像と撮影画像との間の第１変換行列を生成するよう指示する。座標変換処理部３１２は、特徴点比較処理部３１０により対応付けられた全体画像における複数の特徴点の座標と比較対象の撮影画像における複数の特徴点の座標とに基づいて、第１変換行列を生成する。この生成された第１変換行列が更新用の第１変換行列であった場合は、第１変換行列の更新処理も行う。第１変換行列の生成および更新が完了すると、Ｓ９０１へ遷移しフローを継続する。
【００５７】
Ｓ９０９で、メイン制御部は、特徴点追跡処理部３１１に対し、第１変換行列を求める際に用いた撮影画像（特徴点比較画像）と最新の撮影画像との間で特徴点追跡処理を行うように指示し、更に、座標変換処理部３１２に対し、その特徴点追跡処理の結果に基づいて第２変換行列を求めるよう指示する。第２変換行列の生成が完了するとフローを終了する。
【００５８】
＜特徴点比較処理の詳細フロー＞
次に、図９のＳ９０２で第１の変換行列を更新するタイミングと判断されてＳ９０６で開始を指示する特徴点比較処理の詳細について、図１０を用いて説明する。
【００５９】
カメラ１０４を紙面に近づけた状態の撮影画像は、全体画像の一部分だけを撮影した画像であり、撮影画像と全体画像のスケール差は大きくなる。その場合、撮影画像と全体画像との間で特徴点比較を行うと、撮影画像の特徴点に所定閾値以上マッチする特徴点の候補が、全体画像中の複数個所から見つかる。そのため、全体画像中の該特徴点にマッチする箇所を特定できず、特徴点比較処理が失敗に終わってしまう場合がある。そこで、本発明では、トラッキング中の位置情報を使って、全体画像の中の比較対象にする部分を絞り込むことによって、該撮影画像の特徴点にマッチする箇所を特定しやすくする。具体的には、直前の撮影画像の撮影位置を全体画像にマッピングした四辺形情報（図８のＳ８０９で保存した四辺形情報）に基づいて、全体画像から切り出される部分画像に基づいて特徴点比較を行う。また、部分画像から抽出される特徴点と、撮影画像から抽出される特徴点との比較になるので、全体画像から抽出される全ての特徴点と比較する場合に比べ、特徴点比較にかかる時間も短くて済む。
【００６０】
なお、部分画像として全体画像から切り出す領域は、カメラ１０４の移動を考慮して、直前の位置情報である四辺形情報を含む一回り大きいサイズの矩形（例えば、四辺形の外接矩形に対して幅と高さを所定の拡大率（１．２倍）で大きくした矩形）を設定する。あるいは、加速度センサ２０７で検出した速度の変化率の情報からカメラ１０４の移動方向と距離を推定して、部分画像として切り出す領域を設定してもよい。部分画像生成部３１４によって切り出される部分画像について、図１１の例を用いて説明する。全体画像１１００に対して、図８のＳ８０９で保存した四辺形情報（直前の撮影画像１１０３に対応する、全体画像における撮影位置）が１１０１であったとする。このとき、部分画像１１０４として切り出す領域１１０２は、直前の撮影画像の撮影位置１１０１より一回り大きい領域として設定される。
【００６１】
Ｓ１００１で、特徴点比較処理部３１０は、図８のＳ８０９で保存した四辺形情報に基づいて、全体画像から部分画像を切り出して生成するように、部分画像生成部３１４に指示する。
【００６２】
Ｓ１００２で、特徴点比較処理部３１０は、当該生成された部分画像から抽出される特徴点と、撮影画像の特徴点とを比較することにより、該部分画像において該撮影画像にマッチする箇所を特定する。
【００６３】
Ｓ１００３で、特徴点比較処理部３１０は、部分画像と撮影画像との間の特徴点比較が成功したかどうか（該部分画像において該撮影画像にマッチする箇所を特定できたかどうか）を判断する。特徴点比較が成功したと判断した場合はＳ１００４に進み、失敗したと判断した場合はＳ１００５に進む。
【００６４】
Ｓ１００４で、特徴点比較処理部３１０は、特徴点比較の結果、部分画像中のマッチした箇所の座標情報を、全体画像の座標系に変換しフローを終了する。このＳ１００４で変換された全体画像の座標系における特徴点の座標情報とＳ１００２で対応付けられた撮影画像の特徴点の座標情報とを用いて、前述したＳ９０８において、座標変換処理部３１２が、更新用の第１変換行列を生成することになる。
【００６５】
Ｓ１００５で、特徴点比較処理部３１０は、全体画像の特徴点と撮影画像の特徴点とを比較する。なお、Ｓ１００５では、全体画像との比較になるので、撮影画像の特徴点に所定閾値以上マッチする特徴点の候補が、全体画像中の複数個所から見つかる可能性がある。このように全体画像中の複数個所から見つかった場合は、例えば、Ｓ１００１で特定した部分画像の位置に最も近い箇所を選択すればよい。
【００６６】
以上説明したように、本発明では、全体画像と撮影画像との特徴点比較処理において、それ以前に撮影された撮影画像の全体画像中の撮影位置に基づいて、全体画像中の比較対象にする部分を絞り込んでいる。これにより、特徴点比較処理における精度の向上と、処理スピードの向上が見込める。
【００６７】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００６８】
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【図１】
2019012360.tif 000004
【図２】
2019012360.tif 000005
【図３】
2019012360.tif 000006
【図４】
2019012360.tif 000007
【図５】
2019012360.tif 000008
【図６】
2019012360.tif 000009
【図７】
2019012360.tif 000010
【図８】
2019012360.tif 000011
【図９】
2019012360.tif 000012
【図１０】
2019012360.tif 000013
【図１１】
2019012360.tif 000014