(57)【要約】【課題】  歪み補正の精度を向上させる。【解決手段】  本発明では、第１の撮影画像から、歪み補正に必要な第１の情報を検出しておく。そして、異なる２つの撮影画像のそれぞれにおける特徴点に基づいて、前記異なる２つの撮影画像それぞれの座標系の間の座標変換に用いる変換情報（変換行列）を求める。当該求めた変換情報（変換行列）を用いて、前記検出した第１の情報を、第２の撮影画像における歪み補正に必要な第２の情報に変換し、当該変換された第２の情報に基づいて、第２の撮影画像に対して歪み補正を実行する。【選択図】  図５
2019012361.tif 000002
【特許請求の範囲】
【請求項１】
第１の撮影画像から、歪み補正に必要な第１の情報を検出する検出手段と、
異なる２つの撮影画像のそれぞれにおける特徴点に基づいて、前記異なる２つの撮影画像それぞれの座標系の間の座標変換に用いる変換情報を求める取得手段と、
前記変換情報を用いて、前記検出手段で検出した第１の情報を、第２の撮影画像における歪み補正に必要な第２の情報に変換する変換手段と、
前記第２の情報に基づいて、前記第２の撮影画像に対して歪み補正を実行する歪み補正手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記第１の検出手段で検出される前記第１の情報は、前記第１の撮影画像から検出される原稿の四辺に関する情報であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の撮影画像と前記第２の撮影画像との間に１乃至複数の撮影画像が存在する場合、前記取得手段は、各撮影画像間の変換情報を求め、前記変換手段は、前記求めた各撮影画像間の変換情報を順に掛け合わせることにより、前記第１の情報を前記第２の情報に変換することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記各撮影画像間の変換情報の掛け合わせ回数が所定回数より大きくなった場合、前記検出手段による前記第１の情報の検出を再実行するように制御する制御手段を、更に有することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記制御手段は、前記変換手段により変換された前記第２の情報が所定の条件を満たす場合は、前記検出手段による前記第１の情報の検出を再実行しないように制御することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
コンピュータを、請求項１乃至５のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【請求項７】
第１の撮影画像から、歪み補正に必要な第１の情報を検出する検出ステップと、
異なる２つの撮影画像のそれぞれにおける特徴点に基づいて、前記異なる２つの撮影画像それぞれの座標系の間の座標変換に用いる変換情報を求める取得ステップと、
前記変換情報を用いて、前記検出手段で検出した第１の情報を、第２の撮影画像における歪み補正に必要な第２の情報に変換する変換ステップと、
前記第２の情報に基づいて、前記第２の撮影画像に対して歪み補正を実行する歪み補正ステップと、
を有することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影画像中に含まれる原稿領域の歪み補正に関するものである。
【背景技術】
【０００２】
近年、スマートフォンやタブレットＰＣといった高度な情報処理機能を持つモバイル端末が普及してきている。これらのモバイル端末は、カメラを備え、撮影機能（カメラ機能）を有している。このようなモバイル端末のカメラ機能を用いて紙媒体の原稿を撮影して得られた原稿画像を、携帯端末のメモリ上に画像データとして保存する機会が増えてきた。フラットベッドスキャナや複合機における原稿のスキャンとは異なり、モバイル端末のカメラ機能を用いた原稿の撮影では、撮影画像全面に原稿全体を正面から歪みなく写すことが難しい。また、このようにして得られた撮影画像をそのままコピーしたりデータファイル化したりするのは好ましくない。なぜなら、撮影時に原稿内容以外の余計なものが写ってしまう場合や、斜め方向から撮影したために原稿内容が幾何学的に歪んでしまう場合があるためである。このような場合には、コピーやデータファイル化を行う前に撮影画像から原稿内容の領域（原稿領域）だけを切り出し、切り出した原稿領域に対して歪み補正（台形補正と呼ばれる場合もある）を施して幾何科学的歪みを取り除く必要がある。特許文献１では、罫線画像や文字画像などの情報を使い原稿領域の歪み補正を行っている。また、特許文献２には、原稿の四辺を検出し、当該検出された四辺形に基づいて歪み補正することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−０７９８７８号公報
【特許文献２】特開２０１６−１３９３３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
原稿を撮影した撮影画像に対してＯＣＲ処理を行おうとした場合、原稿にカメラを接近させて撮影することにより、ＯＣＲ対象の文字領域の解像度が高まることに加え、画像細部のピントのボケを防ぐことができるため、ＯＣＲ精度が向上する。一方で、原稿にカメラを接近させて原稿の一部分だけを撮影したときに、特許文献１のような、罫線画像や文字画像の情報を使って原稿画像の歪み補正を行う技術を適用すると、罫線画像や文字画像などが歪み補正量を計算するのに必要な量だけ撮影されず、歪み補正の精度が落ちてしまうという課題がある。また、原稿にカメラを接近させて原稿の一部分だけを撮影すると、原稿の四辺が撮影されないので、特許文献２のような、原稿の四辺に基づいて歪み補正を行う技術をそのまま適用することはできない、という課題がある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の情報処理装置は、第１の撮影画像から、歪み補正に必要な第１の情報を検出する検出手段と、異なる２つの撮影画像のそれぞれにおける特徴点に基づいて、前記異なる２つの撮影画像それぞれの座標系の間の座標変換に用いる変換情報を求める取得手段と、前記変換情報を用いて、前記検出手段で検出した第１の情報を、第２の撮影画像における歪み補正に必要な第２の情報に変換する変換手段と、前記第２の情報に基づいて、前記第２の撮影画像に対して歪み補正を実行する歪み補正手段と、を有することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、第１の撮影画像に基づき歪み補正情報を抽出しておく。そして、第２の撮影画像を取得した場合、その第２の撮影画像と第１の撮影画像との間の座標変換を行うための１乃至複数の変換情報に基づいて、第１の撮影画像の歪み補正情報を、第２の撮影画像の歪み補正情報に変換し、当該変換後の歪み補正情報を用いて第２の撮影画像の歪み補正を行うことにより、歪み補正の精度を向上させることができる。
【図面の簡単な説明】
【０００７】
【図１】モバイル端末の外観の一例を示す図である。
【図２】モバイル端末のハードウェア構成の一例を示す図である。
【図３】モバイル端末のソフトウェア構成の一例を示す図である。
【図４】モバイルアプリのＵＩの一例を示す図である。
【図５】原稿歪み補正処理フローを示す図である。
【図６】四辺情報抽出処理の一例を示す図である。
【図７】画像位置追跡処理の一例を示す図である。
【図８】四辺情報補正処理の一例を示す図である。
【図９】歪み補正処理の一例を示す図である。
【図１０】原稿歪み補正処理フロー２を示す図である。
【図１１】原稿歪み補正処理フロー３を示す図である。
【図１２】四辺表示ＵＩの一例を示す図である。
【図１３】モバイル端末の第２のソフトウェア構成の一例を示す図である。
【図１４】原稿歪み補正処理フロー４を示す図である。
【図１５】画像特徴量比較位置追跡処理を示す図である。
【発明を実施するための形態】
【０００８】
（実施例１）
本実施形態に係る情報処理装置の一例として、カメラ機能付きのモバイル端末（携帯端末）を例に説明する。図１は、モバイル端末の外観の一例を示す図である。モバイル端末１００は、各種のユニット（１０１〜１０４）を含んで構成される。モバイル端末１００の前面部１０１には、タッチパネル１０２が設けられているタッチパネル１０２は、画像（動画）等の情報を表示するためのディスプレイ（表示部）としての機能と、ユーザーのタッチ操作に応じて指示を入力するための入力部としての機能とを備えている。さらに、モバイル端末１００の背面部１０３は、紙文書等の被写体１０５を撮影して撮影画像を取り込むためのカメラ１０４を含む。モバイル端末１００のユーザーは、後述のモバイルアプリ（モバイルアプリケーション）を起動させ、カメラ１０４を使用して被写体１０５の画像を撮ることによって処理を開始することができる。図１の被写体１０５は、Ａ４サイズの紙文書の注文書である。なお、被写体１０５は、Ａ４サイズの紙文書だけに限らず、様々なサイズの原稿を対象にすることができる。後述のモバイルアプリは、カメラ１０４を使用して被写体１０５の画像を取り込み、タッチパネル１０２にその画像を表示出力することができる。
【０００９】
図２は、モバイル端末１００のハードウェアの構成の一例を示す図である。モバイル端末１００は、各種のユニット（２０１〜２０７）を含んで構成される。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１は、各種のプログラムを実行し、様々な機能を実現するユニット（コンピュータ）である。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２は、各種の情報を記憶するユニットである。また、ＲＡＭ２０２は、ＣＰＵ２０１の一時的な作業記憶領域としても利用されるユニットである。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０３は、各種のプログラム等を記憶する記憶媒体である。ＲＯＭ２０３は、フラッシュメモリやＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）やＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の記憶媒体であればよい。そして、ＣＰＵ２０１は、ＲＯＭ２０３に記憶されているプログラムをＲＡＭ２０２にロードしてプログラムを実行する。これにより、ＣＰＵ２０１は、図３に示されるようなモバイルアプリの各処理部として機能し、後述するシーケンスの各ステップの処理を実行する。なお、モバイルアプリの各処理部の機能及び後述するシーケンスに係る処理の全部又は一部については、ＣＰＵ２０１で実現するものに限るものではなく、専用のハードウェアを用いて実現してもよい。
【００１０】
Ｉｎｐｕｔ／Ｏｕｔｐｕｔインターフェース２０４は、タッチパネル１０２とデータを送受信する。ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）２０５は、モバイル端末１００をネットワーク（不図示）に接続するためのユニットである。カメラユニット２０６は、カメラ１０４と接続し、被写体１０５の画像をモバイル端末１００に取り込む。上述した各ユニットは、バス２０７を介してデータの送受信を行うことが可能に構成されている。
【００１１】
図３は、モバイル端末１００のソフトウェア構成の一例を示す図である。図３に示されるモバイルアプリにおける各機能処理部（モバイルアプリの各モジュール部）を実現するプログラムは、ＲＯＭ２０３等に記憶されている。モバイル端末１００のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）（不図示）は、データ管理部３０１を有する。
【００１２】
データ管理部３０１は、画像やアプリケーションデータを管理する。ＯＳは、データ管理部３０１を利用するための制御ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を提供している。モバイルアプリはその制御ＡＰＩを利用することで、データ管理部３０１が管理する画像やアプリケーションデータの取得や保存を行う。
【００１３】
モバイルアプリ３０２は、モバイル端末１００のＯＳのインストール機能を利用して、各ＯＳのアプリストア等からダウンロードおよびインストールされたアプリケーションである。モバイルアプリ３０２は、カメラユニット２０６を介して取り込んだ被写体１０５の画像に対する各種のデータ処理を行う。
【００１４】
メイン制御部３０３は、モバイル端末１００用のアプリケーション（モバイルアプリ）３０２を制御し、各モジュール部（３０４〜３１４）を連携させて制御するための制御部である。
【００１５】
情報表示部３０４は、メイン制御部３０３からの指示に従い、モバイルアプリ３０２のユーザーインタフェース（ＵＩ）を画面に表示させてユーザーに提供する。図４は、モバイルアプリ３０２のＵＩ（携帯端末用のＵＩ）を提供する画面の一例（モバイル端末画面４００）を示す図である。モバイル端末画面４００は、モバイル端末１００のタッチパネル１０２に表示される。また、モバイル端末画面４００では、表示および操作を行うための領域４０１に、カメラ１０４を介して取り込んだ画像を表示し、また、画像等に対するユーザーによる操作（ユーザー操作）を、当該表示されたＵＩを介して受け付ける。なお、モバイルアプリ３０２のＵＩの形態（位置、大きさ、範囲、配置、表示内容など）は、図に示す形態に限定されるものではなく、後述する各処理を実現することができる適宜の構成を採用することができる。
【００１６】
操作情報取得部３０５は、情報表示部３０４により表示されたＵＩを介してユーザー操作された内容を示す情報を取得し、当該取得した情報をメイン制御部３０３に通知する。例えば、領域４０１をユーザーが手で触れると、操作情報取得部３０５は、当該触れられた画面上の位置の情報を感知し、感知した位置の情報をメイン制御部３０３に送信する。
【００１７】
撮影画像取得部３０６は、カメラユニット２０６を介して撮影された動画像等の各撮影画像を取得し、記憶部３０７に送信する。記憶部３０７は、撮影画像取得部３０６により取得された撮影画像を記憶する。また、記憶部３０７は、メイン制御部３０３の指示により、当該記憶している撮影画像の削除を行うこともできる。
【００１８】
ＤＢ部３０８は、データベース機能を有し、撮影対象の原稿に関する情報（例えば、撮影対象の帳票のサイズに関する情報や、該帳票の中のＯＣＲ処理対象領域の情報、など）や、モバイルアプリ３０２で管理する一時情報を保存する。
【００１９】
特徴量抽出部３０９は、カメラユニット２０６を介して取得した撮影画像や、記憶部３０７で一時的に記憶している画像から特徴量を抽出する。例えば、画像上の輝度の変化が大きな箇所（エッジ）などを、特徴的なピクセル点（特徴点）とし、その特徴点の特徴を表すデータ（特徴量）を算出する。特徴点およびその特徴量を求める手法としては、ＳＩＦＴ（Ｓｃａｌｅ−Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｎｓｆｏｒｍ）やＳＵＲＦ（Ｓｐｅｅｄｅｄ−Ｕｐ  Ｒｏｂｕｓｔ  Ｆｅａｔｕｒｅｓ）などの手法がある。
【００２０】
四辺抽出処理部３１０は、カメラユニット２０６を介して取得した撮影画像から、輝度の変化が大きな箇所（エッジ）等の情報に基づいて、原稿の端部（原稿の四辺）を検出することにより、四辺情報（例えば、四辺形を構成する各頂点の座標に関する情報）を取得する。
【００２１】
特徴点追跡処理部３１１は、動画撮影した第１のフレームの撮影画像（原画像）から特徴点抽出部３０９により特徴点を抽出し、比較対象の第２のフレームの撮影画像上で前記特徴点の移動位置を推定する特徴点追跡処理（オプティカルフロー）を行う。特徴点追跡処理は、原画像上の各特徴点が、比較対象の画像においてどの方向にどれだけ移動したかの移動ベクトルを推定する。これにより、原画像上の特徴点が比較対象の画像上のどの位置に移動したかの推定を行うことができる。
【００２２】
画像位置追跡処理部３１２は、２つの画像（例えば、第１フレームの撮影画像と第２フレームの撮影画像）の間で、ホモグラフィー変換（ｈｏｍｏｇｒａｐｈｙ  ｔｒａｎｓｆｏｒｍ、平面射影変換）を行うためのホモグラフィー変換行列（以下、変換行列）を算出することで、画像間の位置合わせを行う。ホモグラフィー変換は、ある平面座標系上の点を、異なる平面座標系上に変形して移し替えることができる。似たものに、画像の回転、平行移動、拡大縮小を行うアフィン変換があるが、ホモグラフィー変換は、それらに加えて、座標位置に応じて拡大縮小の比率を変え、台形状の変換が可能となる。ホモグラフィー変換は、変換元の画像上の座標点（ｘ１，ｙ１）、変換後の画像上の座標点（ｘ２，ｙ２）、変換行列Ｈ、定数ｓを用いて以下のように表せられる。なお、変換行列の数式は、下記の数式（行列式）での表現に限るものではなく、２つの画像の座標系を変換するための変換式であれば、その他の形態であっても構わない。このような変換式（変換行列）は、２つの画像の座標系を変換する際の変換情報として使用される。
【００２３】
【数１】
2019012361.tif 000003
【００２４】
２つの画像間に同じオブジェクトから抽出される特徴点が存在している場合、特徴点追跡処理部３１１のマッチング処理で求められた画像間の対応点座標をもとに、変換行列Ｈのパラメータを算出する。これにより、２つの画像間の変換行列を求め、第１の画像中の座標を第２の画像中にマッピングすることや、変換行列の逆行列を求めて、その逆のマッピングをおこなうことが可能となる。
【００２５】
四辺情報補正処理部３１３は、原稿全体を撮影した画像（原画像）で検出された原稿の四辺情報（四辺形の各頂点の座標）を、画像位置追跡処理部３１２で求めた変換行列を用いて、比較対象の撮影画像（拡大部分画像）上の座標系に補正する。
【００２６】
歪み補正処理部３１４は、四辺情報補正処理部３１３で撮影画像上の座標系に補正された原稿領域の四辺情報と、出力画像のサイズ情報（帳票のサイズ情報）とに基づいて、歪み補正情報（歪み補正パラメータ）を求め、歪み補正情報を使って撮影画像に対して歪み補正を行う。
【００２７】
次に、モバイル端末１００のＣＰＵ２０１がモバイルアプリ３０２を実行することにより実現される、本発明の原稿歪み補正処理フローについて、図５を用いて説明する。本フローは、ユーザーの操作に応じて、モバイル端末１００におけるモバイルアプリ３０２が起動され、カメラ１０４を介して被写体１０５の撮影画像（動画）を取得することをトリガーに開始する。
【００２８】
ステップＳ５０１で、撮影画像取得部３０６は、カメラユニット２０６を介して撮影画像を取得する。
【００２９】
ステップＳ５０２で、メイン制御部３０３は、原稿四辺認識状態フラグがＯＮであるか判断することにより、原稿領域の四辺が認識できている状態であるか否かを判断する。原稿四辺認識状態フラグがＯＮの場合は、原稿領域の四辺を認識している状態であると判断し、ステップＳ５０８に遷移する。一方、原稿四辺認識状態フラグがＯＦＦの場合は、原稿領域の四辺を認識できていない状態であると判断し、ステップＳ５０３に遷移する。
【００３０】
ステップＳ５０３で、四辺抽出処理部３１０は、原稿の四辺を検出するための四辺情報検出処理を実行する。図６を用いて、ステップＳ５０３の四辺情報検出処理の詳細について説明する。まず、四辺抽出処理部３１０は、撮影画像に対して、原稿領域の各辺の候補である候補線分群と、各辺の候補に基づいて、原稿領域の四辺である可能性がもっと高い四辺形領域を特定する。図６（ａ）は、原稿全体を撮影したときの撮影画像６００であり、この画像内に原稿の四辺形領域を示す原稿領域６０１が含まれている。図６（ｂ）は、撮影画像６００上に、各辺の候補線分群を重ねて表示した画像である。各辺の候補線分群は、撮影画像６００をエッジ画像（各画素が輝度変化の大きいエッジ画素であるかどうかを示す画像）に変換し、当該エッジ画像に対してＨｏｕｇｈ変換アルゴリズムなどの公知の方法によって、エッジ画素で構成される直線部分を検出することによって得られる。なお、検出された候補線分群には、候補線分６０２をはじめとした、原稿領域の四辺以外を表す線分も含まれる。候補線分群の中から、原稿領域の上辺、右辺、下辺、左辺のそれぞれに対して各辺を構成する可能性が最も高い候補線分６０３、６０４、６０５、６０６を特定する。原稿領域の各辺として候補線分６０３、６０４、６０５、６０６を候補線分群の中から第１の候補として特定する手段としては、任意の４本の候補線分で構成される四辺形に対して評価を行うことで特定する。任意の４本の候補線分で構成される四辺形の評価は、例えば、対辺の長さの比や内角の大きさ、アスペクト比などの幾何学的な情報に基づいて行ってもよい。また、内側と外側の色味や分散を比較するなどの画像内容も加味して評価してもよい。
【００３１】
図６（ｃ）は、候補線分群の中から特定された原稿領域である四辺形領域６０７を、撮影画像６００上に表示した状態を示す画像である。四辺形領域６０７は、候補線分６０３、６０４、６０５、６０６を四辺として特定された場合に構成される四辺形領域であり、頂点６０８、６０９、６１０、６１１（以下、四辺情報と呼ぶ）を結ぶ線分によって囲まれた四辺形領域である。
【００３２】
次に、ステップＳ５０４で、メイン制御部３０３は、ステップＳ５０３での四辺抽出処理部３１０による原稿の四辺情報の検出に成功したか判断する。四辺情報の検出に成功したと判断した場合は、ステップＳ５０５に進んで、原稿四辺認識状態フラグをＯＮに設定する。一方、四辺情報を検出できなかったと判断した場合は、ステップＳ５０６に進んで、原稿四辺認識状態フラグをＯＦＦに設定する。
【００３３】
ステップＳ５０７で、メイン制御部３０３は、撮影画像に対応させて、当該検出された四辺情報（原稿四辺の頂点６０８、６０９、６１０、６１１の座標情報）をＤＢ部３０８に保存する。
【００３４】
ステップＳ５０８において、特徴点追跡処理部３１１および画像位置追跡処理部３１２によって、特徴点追跡処理および画像位置追跡処理が実行される。特徴点追跡処理および画像位置追跡処理の具体例について、図７を用いて説明する。なお、以下では、２つの画像間の座標変換に用いる変換情報を「変換行列」として説明するが、前述の画像位置追跡処理部３１２の説明において説明したように、行列式の表現に限るものではなく、その他の変換式や変換情報であっても構わない。撮影画像７００〜７０３は、撮影画像取得部３０６で連続的に取得した撮影画像（動画）であったとする。最初の撮影画像７００が取得された時点では、まだ原稿の四辺が認識されていない状態であるので、Ｓ５０３の四辺検出処理およびＳ５０７の四辺情報保存処理等が行われた後、Ｓ５１０で撮影画像７００が保存される。次に、ステップＳ５０１で撮影画像７０１を取得した時点で行われる処理について説明する。特徴点追跡処理部３１１は、ひとつ前の撮影画像７００（Ｓ５１０で保存した画像）に対して特徴量抽出部３０９で抽出した複数の特徴点７０４を用いて、特徴点追跡処理（オプティカルフロー）を実行することにより、撮影画像７０１において、特徴点７０４に対応する特徴点７０５を検出する。そして、画像位置追跡処理部３１２は、特徴点７０４と特徴点７０５を用いて、変換行列７０６を求める。変換行列７０６は、撮影画像７００上の座標系から撮影画像７０１上の座標系に変換対象の座標位置を変換するための変換行列であり、撮影画像７００上の任意の座標位置に該変換行列７０６を掛け合わせれば撮影画像７０１上の座標位置を特定することが可能となる。同様に、撮影画像７０１の特徴点７０５と撮影画像７０２の特徴点７０７から変換行列７０８を求めることができる。また、撮影画像７０２の特徴点７０７と撮影画像７０３の特徴点７０９から変換行列７１０を求めることができる。このように求めた変換行列７０６、７０８、７１０を掛け合わせていくことにより、撮影画像間の座標位置を追跡することができる。したがって、後述するように、撮影画像７００において検出した四辺情報（四辺形の各頂点の座標位置）に対して、変換行列７０６、７０８、７１０を掛け合わせていけば、撮影画像７０１〜７０３のそれぞれにおける座標系に変換することができる。
【００３５】
ステップＳ５０９で、四辺情報補正処理部３１３は四辺情報補正処理を実行する。四辺情報補正処理の具体例について、図８を用いて説明する。四辺情報補正処理部３１３は、撮影画像７００で検出された四辺情報８００に対して、撮影画像７００と撮影画像７０１から求めた変換行列７０６を掛け合わせることにより、撮影画像７０１の座標系における四辺情報８０１に変換することができる。すなわち、一つ前の撮影画像の座標系における四辺情報に対して、画像間の変換行列を掛け合わせることで、一つ前の撮影画像の四辺情報をその次の撮影画像の四辺情報に補正することができる。同様に、撮影画像７０１の座標系の四辺情報８０１に対して変換行列７０８を掛け合わせることによって、撮影画像７０２の座標系における四辺情報８０２を求めることができる。また、撮影画像７０２の座標系における四辺情報８０２に変換行列７１０を掛け合わせることによって、撮影画像７０３の座標系における四辺情報８０３を求めることができる。
【００３６】
ステップＳ５１０で、メイン制御部３０３は、Ｓ５０８における画像位置追跡処理で使用できるように撮影画像を記憶部３０７に一時保存する。
【００３７】
ステップＳ５１１で、メイン制御部３０３は、ユーザーにより撮影操作が為されたか（撮影ボタン（シャッター）が押下されたか）を判断する。撮影操作が為されたと判断した場合、ステップＳ５１２へ遷移する。撮影操作が為されていないと判断した場合、ステップＳ５０１に遷移する。
【００３８】
ステップＳ５１２で、歪み補正処理部３１４は歪み補正処理を実行する。歪み補正処理部３１４は、撮影操作が為された時の撮影画像の座標系に変換された四辺情報と、出力画像のサイズ情報（帳票のサイズ情報）とに基づいて、歪み補正情報（歪み補正パラメータ）を算出し、この歪み補正情報を用いて補正処理を行う。この歪み補正情報（歪み補正パラメータ）は、四辺形領域が台形に歪んでいる場合も考慮し、射影変換行列になる。この射影変換行列は、撮影画像の座標系に変換された四辺情報と、出力画像のサイズ情報とに基づいて、公知の方法により算出することが可能である。なお、処理速度を優先する場合には、アフィン変換行列や単純な変倍率を歪み補正情報として用いて算出しても良い。歪み補正情報が決定すると、歪み補正処理部３１４は、撮影画像の四辺形領域内の部分画像に対して歪み補正処理を施すことで、撮影画像内から四辺形領域内だけを取り出した画像を出力することができる。
【００３９】
歪み補正処理の具体例について、図９を用いて説明する。図９（ａ）の撮影画像６０７の座標系における四辺情報（頂点６０８、６０９、６１０、６１１）と、出力すべき画像のサイズ情報（９００、９０１、９０２、９０３）とに基づいて、歪み補正情報（歪み補正パラメータ）を算出する。そして、当該算出した歪み補正情報を撮影画像６０７に適用することで行われる歪み補正処理の出力結果例が、図９（ｂ）である。同様に、図９（ｃ）の撮影画像９０４の座標系に変換された四辺情報（頂点９０５，９０６、９０７、９０８）と、出力すべき画像のサイズ情報（９００、９０１、９０２、９０３）とに基づいて、歪み補正情報（歪み補正パラメータ）を算出する。そして、当該算出した歪み補正情報を撮影画像９０４に適用することで行われる歪み補正処理の出力結果例が、図９（ｄ）である。
【００４０】
以上のように、本実施形態によれば、原稿にカメラを接近させる前に原稿全体を含むように撮影して第１の撮影画像を取得し、該第１の撮影画像に基づき原稿の四辺情報（すなわち、第１の撮影画像の歪み補正に用いる情報）を抽出しておく。さらに、原稿にカメラを接近させて撮影したときに原稿全体が含まれない第２の撮影画像を取得した場合、第１の撮影画像と第２の撮影画像との間の座標変換を行うための１乃至複数の変換行列（すなわち、座標変換を行うための変換情報）を求める。そして、該座標変換を行うための変換情報（変換行列）を用いて、第１の撮影画像における四辺情報（第１の撮影画像の座標系における歪み補正情報）を、第２の撮影画像の座標系における四辺情報（第２の撮影画像の座標系における歪み補正情報）に変換し、当該変換された歪み補正情報に基づいて、第２の撮影画像の歪み補正を行うことができる。
【００４１】
（実施例２）
実施例２では、複数の撮影画像間で変換行列を掛け合わせ続けることにより蓄積する四辺情報の誤差をリセットする処理について説明する。実施例１で説明済みの構成や処理フローの詳細な説明は省略する。
【００４２】
実施例１の画像位置追跡処理部３１２で求めた変換行列の精度は、特徴点追跡処理部３１１による特徴点追跡処理の推定誤差などの影響により１００％ではない。そのため、複数の撮影画像間で求められる複数の変換行列を順次掛け合わせ続けていくと、四辺情報の誤差が蓄積して誤差が徐々に大きくなっていく。
【００４３】
実施例２の原稿歪み補正処理フローについて、図１０を用いて説明する。図１０の処理フローは、図５で説明した実施例１の処理フローに、蓄積誤差をリセットするための処理を追加したものである。以下では、図５と共通するステップの説明は省略し、図１０で追加した処理ステップについて説明する。
【００４４】
ステップＳ５０２で四辺を認識している状態であると判断された場合、ステップＳ１００１で、メイン制御部３０３は、四辺情報に対して変換行列が掛け合わせられた回数を示す画像位置追跡カウンターが所定の閾値より大きいか否かを、判断する。画像位置追跡カウンターが所定の閾値以下であると判断した場合は、ステップＳ１００２に遷移し、画像位置追跡カウンターが所定の閾値より大きいと判断した場合は、ステップＳ１００３に遷移する。
【００４５】
ステップＳ１００２で、メイン制御部３０３は、画像位置追跡カウンターを１つインクリメントし、ステップＳ５０８に進む。
【００４６】
ステップＳ１００３で、メイン制御部３０３は、画像位置追跡カウンターを初期化（カウンターを０にリセット）し、ステップＳ５０３に進む。
【００４７】
以上のように、本実施例２によれば、変換行列を所定回数より多く掛け合わせた場合は、Ｓ５０３での四辺検出処理を再実行するように制御することにより、蓄積した誤差をリセットすることができる。
【００４８】
（実施例３）
実施例２で説明したように、変換行列を所定回数より多く掛け合わせた場合は、四辺検出処理を実行し直すように制御することにより、蓄積誤差をリセットすることができるが、原稿の四辺がカメラ１０４の画角からはみ出した状況で四辺検出処理を行うと原稿四辺を誤認識してしまう可能性が高くなる。そこで、本実施例３では、原稿の四辺が撮影画像からはみ出していると判定した場合は、蓄積誤差をリセットする動作を行わないようにする。実施例１〜２で説明済みの構成や処理フローの詳細な説明は省略する。
【００４９】
実施例３の原稿歪み補正処理フローについて、図１１を用いて説明する。
【００５０】
ステップＳ５０２で四辺を認識している状態であると判断された場合、ステップＳ１１０１で、メイン制御部３０３は、原稿四辺はみ出し状態フラグがＯＮであるかどうか（すなわち、原稿領域の四辺が撮影画角からはみ出しているか否か）を判断する。原稿四辺はみ出し状態フラグがＯＮの場合は、原稿四辺がはみ出していると判断し、ステップＳ５０８に遷移する。原稿四辺はみ出し状態フラグがＯＦＦの場合は、原稿四辺がはみ出していないと判断し、ステップＳ１００１に遷移する。
【００５１】
ステップＳ１１０２で、メイン制御部３０３は、ステップ５０９で補正した後の原稿四辺が、撮影画像の画角外にはみ出したか否かを、変換行列で変換した後の各頂点の座標を用いて判断する。原稿の四辺の少なくともいずれかがはみ出していると判断した場合は、ステップＳ１１０３に進んで、原稿四辺はみ出し状態フラグをＯＮに設定する。一方、原稿領域の四辺がはみ出していないと判断した場合は、ステップＳ１１０４に進んで、原稿四辺はみ出し状態フラグをＯＦＦに設定する。例えば、図８の四辺情報８００や四辺情報８０１は、原稿領域の各頂点（左上頂点、右上頂点、右下頂点、左下頂点）がカメラ画角内に入っているため、原稿領域の四辺がはみ出していないと判断される。また、図８の四辺情報８０２や四辺情報８０３は、左下頂点と右下頂点がカメラ画角からはみ出しているので、原稿の四辺がはみ出していると判断される。
【００５２】
ステップＳ１１０５で、メイン制御部３０３は、変換行列で変換した後の四辺情報を撮影画像上に重ねて表示する四辺表示処理を実行する。四辺表示処理の具体例について、図１２を用いて説明する。メイン制御部３０３は、ステップＳ５０３で検出した四辺情報やステップ５０９で補正した四辺情報を用いて、撮影画像上に四辺の線をオーバーレイした画像をモバイル端末画面４００に表示する。図１２（ａ）は、図８の四辺情報８０１に基づいて、撮影画像７０１上に四辺を表示した場合の例である。また、図１２（ｂ）は、図８の四辺情報８０２に基づいて、撮影画像７０２上に四辺を表示した場合の例である。また、図１２（ｃ）は、図８の四辺情報８０３に基づいて、撮影画像７０３上に四辺を表示した場合の例である。
【００５３】
以上のように、実施例３では、補正した後の原稿四辺に関する各頂点の座標が、撮影画像外の位置に相当する、という所定の条件を満たしている場合は、原稿の四辺がカメラ画角からはみ出していると判定される。そして、原稿の四辺がカメラの画角からはみ出していると判定した場合は、蓄積誤差をリセットする動作（Ｓ５０３の原稿の四辺を検出する四辺検出処理）を再実行しないように制御することにより、四辺を誤認識する可能性を減らすことができる。
【００５４】
（実施例４）
本実施例４では、原稿領域の四辺がカメラの画角からはみ出している状況で、変換行列を掛け合わせ続けることにより蓄積する四辺情報の誤差をリセットする処理について説明する。実施例１〜３で説明した構成や処理フローの詳細な説明は省略する。
【００５５】
図１４は、実施例４におけるモバイル端末１００のソフトウェア構成の一例を示す図である。
【００５６】
特徴量比較処理部１３０１は、特徴量抽出部３０９により異なる２つの画像それぞれから抽出された特徴量を比較する特徴量比較処理を実行する。特徴量比較処理は、各画像間の特徴点とその特徴量を比較することで、画像間で一致する特徴点の組み合わせを求める（マッチングをする）ことができる。また、ＲＡＮＳＡＣ（Ｒａｎｄｏｍ  ｓａｍｐｌｅ  ｃｏｎｓｅｎｓｕｓ）のような外れ値を排除して法則性を推定する手法を用いることで、ノイズとなる特徴点の組み合わせを排除し、より精度の高いマッチングを行うことも可能である。
【００５７】
画像特徴量比較位置追跡処理部１３０２は、特徴量比較処理でマッチングした、第１の画像上の特徴点と比較対象の第２の画像上の特徴点間で、ホモグラフィー変換（ｈｏｍｏｇｒａｐｈｙ  ｔｒａｎｓｆｏｒｍ、平面射影変換）を行うためのホモグラフィー変換行列（以下、変換行列）を算出することで、画像間の位置合わせを行う。
【００５８】
次に、実施例４の原稿歪み補正処理フロー４について、図１４を用いて説明する。
【００５９】
ステップＳ１４０１で、メイン制御部３０３は、原稿はみ出し状態フラグがＯＮで、四辺情報に対して変換行列が掛け合わせられた回数を示す画像特徴量比較位置追跡カウンターが所定の閾値より大きいかを判断する。所定の閾値以下であると判断した場合は、ステップＳ１４０３に遷移する。所定の閾値より大きいと判断した場合、ステップＳ１４０２に遷移する。
【００６０】
ステップＳ１４０２で、メイン制御部３０３は、画像特徴量比較画像位置追跡カウンターを初期化（０にリセット）する。
【００６１】
ステップＳ１４０３で、メイン制御部３０３は、画像特徴量比較画像位置追跡カウンターを１つインクリメントする。
【００６２】
ステップＳ１４０４の画像特徴量比較位置追跡処理について図１５を用いて説明する。まず、特徴量比較処理部１３０１は、四辺検出が成功した画像１５００（後述のステップ１４０７で保存した画像）と撮影画像１５０１とのそれぞれから、特徴量抽出部３０９を用いて特徴量１５０２と特徴量１５０３とを抽出し、それらの特徴量の比較処理を行う。さらに、特徴量比較処理部１３０１は、特徴量１５０２と特徴量１５０３とを用いて、変換行列１５０４を求める。変換行列１５０４は、四辺検出が成功した画像１５００における座標系から撮影画像１５０１における座標系に、座標位置を変換するための変換行列であり、四辺検出が成功した画像１５００上の任意の座標位置に変換行列を掛け合わせることで撮影画像１５０１上の座標位置を特定することが可能となる。
【００６３】
追跡処理には、ステップＳ５０８の画像位置追跡処理部３１２によるものとＳ１４０４の画像特徴量比較位置追跡処理部１３０２によるものの２通りがある。追跡処理部３１２による追跡処理は、複数の撮影画像間で求めた変換行列を掛け合わせていくので四辺情報に誤差が蓄積していくが、処理は高速ではある。一方、画像特徴量比較位置追跡処理部１３０２による追跡処理は、撮影画像（比較対象の画像）は常に、一番最初の原画像と比較をするので誤差が蓄積することはないが、とても処理が遅い。よって、本フローでは両者の処理を組み合わせて利用する。
【００６４】
ステップＳ１４０５で、メイン制御部３０３は、画像位置追跡カウンターを初期化（０にリセット）する。
【００６５】
ステップＳ１４０６で、メイン制御部３０３は、画像特徴量比較画像位置追跡カウンターを初期化（０リセット）する。
【００６６】
次に、ステップＳ１４０７で、メイン制御部３０３は、画像特徴量比較位置追跡処理（ステップＳ１４０４）のために撮影画像を記憶部３０７で一時保存する。
【００６７】
以上のように、本実施例４によれば、原稿領域の四辺がカメラ１０４の画角からはみ出している状況でも蓄積する四辺情報の誤差を、画像位置追跡処理と画像特徴量比較位置追跡処理とを組み合わせて行うことにより軽減させることができる。
【００６８】
（実施例５）
実施例１では、原稿全体を撮影したときの画像に基づいて原稿の四辺を検出し、原稿の一部を拡大撮影したときの撮影画像の座標系に該四辺の情報を変換し、変換後の四辺情報を用いて歪み補正を行うようにしたが、歪み補正パラメータを求める別実施例について説明する。例えば、原稿全体を撮影したときの画像内の罫線や文字基線情報を用いて歪み補正パラメータを求め、変換行列を用いて、原稿の一部を拡大撮影したときの撮影画像の座標系に該歪み補正パラメータを変換し、当該変換後の歪み補正パラメータを用いて歪み補正を行うようにしてもよい。
【００６９】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７０】
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【図１】
2019012361.tif 000004
【図２】
2019012361.tif 000005
【図３】
2019012361.tif 000006
【図４】
2019012361.tif 000007
【図５】
2019012361.tif 000008
【図６】
2019012361.tif 000009
【図７】
2019012361.tif 000010
【図８】
2019012361.tif 000011
【図９】
2019012361.tif 000012
【図１０】
2019012361.tif 000013
【図１１】
2019012361.tif 000014
【図１２】
2019012361.tif 000015
【図１３】
2019012361.tif 000016
【図１４】
2019012361.tif 000017
【図１５】
2019012361.tif 000018