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