(57)【特許請求の範囲】
【請求項１】
物体を撮像し、撮像時間が異なる複数のフレーム画像を取得する第１の撮像手段と、
前記複数のフレーム画像により前記物体の静止を検知する検知手段と、
前記物体の静止を検知したことに応じて、前記物体を撮像し、画像を取得する第２の撮像手段と、
前記第２の撮像手段によって取得された画像を補正し、補正画像を生成する画像生成手段と、
前記補正画像が生成されるまでは、前記複数のフレーム画像のうち、前記物体の静止を検知したフレーム画像を表示し、前記補正画像が生成されたことに応じて前記補正画像を表示する表示手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記表示手段は、前記第２の撮像手段による撮像が終了してから、前記物体の静止を検知したフレーム画像を表示する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
操作に関する情報を表示する操作情報表示手段をさらに備え、
前記操作情報表示手段は、前記第２の撮像手段による撮像が終了してから操作ボタンを表示し、
前記検知手段は、前記物体の動きを検知し、
表示されている前記操作ボタンが押下されるまでに前記検知手段が前記物体の動きを検知した場合、
前記操作情報表示手段は、前記操作ボタンを非表示にし、
前記画像生成手段は、前記第２の撮像手段によって取得された画像の補正を中止する
ことを特徴とする請求項１に画像処理装置。
【請求項４】
前記表示手段により表示された前記物体の静止を検知したフレーム画像上で行われた領域指定の座標位置を、前記補正画像上の座標位置に変換する変換手段をさらに備え、
前記画像生成手段は、変換した前記座標位置をもとに対象領域を抽出する
ことを特徴とする請求項１ないし３のいずれか１項に記載の画像処理装置。
【請求項５】
前記画像生成手段は、前記対象領域において、少なくとも、ＯＣＲ処理、トリミング処理、マスキング処理のうち、いずれかを実行する
ことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記画像生成手段は、さらに、前記対象領域に基づき前記補正画像上に補正された対象領域を生成する
ことを特徴とする請求項４に記載の画像処理装置。
【請求項７】
前記対象領域が文章である場合、
前記画像生成手段は、行頭が前記対象領域に含まれている行、もしくは、前記対象領域に含まれている文字列の割合が閾値以上である行を前記補正された対象領域とする
ことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
画像処理装置の制御方法であって、
物体を撮像し、撮像時間が異なる複数のフレーム画像を取得する第１の撮像工程と、
前記複数のフレーム画像により前記物体の静止を検知する検知工程と、
前記物体の静止を検知したことに応じて、前記物体を撮像し、画像を取得する第２の撮像工程と、
前記第２の撮像工程によって取得された画像を補正し、補正画像を生成する画像生成工程と、
前記補正画像が生成されるまでは、前記複数のフレーム画像のうち、前記物体の静止を検知したフレーム画像を表示し、前記画像生成工程において前記補正画像が生成されたことに応じて前記補正画像を表示する表示工程と、
を備えることを特徴とする画像処理装置の制御方法。
【請求項９】
請求項８に記載の制御方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、制御方法およびプログラムに関する。
【背景技術】
【０００２】
書画台上に対象物を上向きに置き、書画台上方に配置されたカメラにより撮像し、対象物をスキャン処理するカメラスキャナが提案されている。書画台上には、書画台上方に設置されたプロジェクタによりＵＩ表示がなされる。特願２０１４−０９５５４１におけるカメラスキャナは、連続画像によって物体検知処理を行い、物体静止を検知するとカメラによる撮影と原稿／書籍／立体物スキャンを実行し、スキャン処理が終了するとスキャン終了画面を表示するものである。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、特願２０１４−０９５５４１においては、カメラ画像によるスキャン処理が終了するまでＵＩ表示の更新を行うことができないため、ＵＩの応答性が低下し操作者に不安感を与える可能性がある。また、スキャン処理の結果の一部分に対して処理を行う際にも、事前に処理対象領域を設定することができないため、操作性の低下にもつながっている。
【０００４】
本発明は、高解像度画像による処理を実行している間に低解像度画像による処理結果を先行して提示し、また、低解像度画像に対する操作を高解像度画像上へ反映させることで、ＵＩの応答性及び操作性を向上させた画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明は、物体を撮像し、撮像時間が異なる複数のフレーム画像を取得する第１の撮像手段と、前記複数のフレーム画像により前記物体の静止を検知する検知手段と、前記物体の静止を検知したことに応じて、前記物体を撮像し、画像を取得する第２の撮像手段と、前記第２の撮像手段によって取得された画像を補正し、補正画像を生成する画像生成手段と、前記補正画像が生成されるまでは、前記複数のフレーム画像のうち、前記物体の静止を検知したフレーム画像を表示し、前記補正画像が生成されたことに応じて前記補正画像を表示する表示手段と、を備えることを特徴とする。
【発明の効果】
【０００６】
本発明によれば、高解像度画像による処理を実行している間に低解像度画像による処理結果を先行して提示し、また、低解像度画像に対する操作を高解像度画像上へ反映させることで、ＵＩの応答性及び操作性を向上させた画像処理装置を提供することができる。
【図面の簡単な説明】
【０００７】
【図１】カメラスキャナのネットワーク構成例を示す図である。
【図２】カメラスキャナの構成例を示す図である。
【図３】コントローラ部のハードウェア構成例を示す図である。
【図４】カメラスキャナ制御用プログラムの機能構成例を示す図である。
【図５】図４の機能構成の各モジュールの関係を示すシーケンス図である。
【図６】距離画像取得部が実行する処理を説明する図である。
【図７】ジェスチャー認識部の処理を説明するフローチャートである。
【図８】ジェスチャー認識部が実行する指先検出処理について説明した図である。
【図９】物体検知部が実行する処理を説明するフローチャートである。
【図１０】物体検知部が実行する処理を説明するフローチャートである。
【図１１】平面原稿スキャン処理を説明するフローチャートである。
【図１２】平面原稿スキャン処理の様子を示す図である。
【図１３】ＵＩ画面および操作の様子を示す図である。
【図１４】第１実施形態のメイン制御部が実行する処理のシーケンス図である。
【図１５】第２実施形態のメイン制御部が実行する処理のシーケンス図である。
【図１６】第３実施形態のメイン制御部が実行する処理のシーケンス図である。
【図１７】第３実施形態におけるＵＩ画面および操作の様子を示す図である。
【図１８】第４実施形態のメイン制御部が実行する処理のシーケンス図である。
【図１９】第５実施形態のメイン制御部が実行する処理のシーケンス図である。
【図２０】第５実施形態におけるＵＩ画面および操作の様子を示す図である。
【図２１】第６実施形態における対象領域補正処理を説明する図である。
【図２２】状態管理テーブルの一例を示す図である。
【発明を実施するための形態】
【０００８】
（第１実施形態）
以下、本発明を実施するための形態について図面等を参照して説明する。
図１は、一実施形態に係るカメラスキャナ１０１が含まれるネットワーク構成を示す図である。
図１に示すように、カメラスキャナ１０１はイーサネット（登録商標）等のネットワーク１０４にてホストコンピュータ１０２およびプリンタ１０３に接続されている。図１のネットワーク構成において、ホストコンピュータ１０２からの指示により、カメラスキャナ１０１から画像を読み取るスキャン機能や、スキャンデータをプリンタ１０３により出力するプリント機能の実行が可能である。また、ホストコンピュータ１０２を介さず、カメラスキャナ１０１への直接の指示により、スキャン機能、プリント機能の実行も可能である。
【０００９】
＜カメラスキャナの構成＞
図２は、一実施形態に係るカメラスキャナ１０１の構成例を示す図である。
図２（Ａ）に示すように、カメラスキャナ１０１は、コントローラ部２０１、カメラ部２０２、腕部２０３、プロジェクタ２０７、距離画像センサ部２０８を含む。カメラスキャナの本体であるコントローラ部２０１と、撮像を行うためのカメラ部２０２、プロジェクタ２０７および距離画像センサ部２０８は、腕部２０３により連結されている。腕部２０３は関節を用いて曲げ伸ばしが可能である。
【００１０】
図２（Ａ）には、カメラスキャナ１０１が設置されている書画台２０４も示している。カメラ部２０２および距離画像センサ部２０８のレンズは書画台２０４方向に向けられており、破線で囲まれた読み取り領域２０５内の画像を読み取り可能である。図２の例では、原稿２０６は読み取り領域２０５内に載置されているので、カメラスキャナ１０１に読み取り可能となっている。
カメラ部２０２は単一解像度で画像を撮像するものとしてもよいが、高解像度画像撮像と低解像度画像撮像が可能なものとすることが好ましい。
【００１１】
書画台２０４内にはターンテーブル２０９を設けてもよい。ターンテーブル２０９はコントローラ部２０１からの指示によって回転することが可能であり、ターンテーブル２０９上に置かれた物体とカメラ部２０２との角度を変えることができる。
また、図２に示されていないが、カメラスキャナ１０１は、ＬＣＤタッチパネル３３０およびスピーカ３４０をさらに含むこともできる。さらに、周囲の環境情報を収集するための人感センサ、照度センサ、加速度センサなどの各種センサデバイスを含むこともできる。
【００１２】
図２（Ｂ）は、カメラスキャナ１０１における座標系を示す図である。カメラスキャナ１０１では各ハードウェアデバイスに対して、カメラ座標系、距離画像座標系、プロジェクタ座標系という座標系が定義される。これらはカメラ部２０２および距離画像センサ部２０８が撮像する画像平面、あるいはプロジェクタ２０７が投影する画像平面をそれぞれＸＹ平面とし、各画像平面に直交した方向をＺ方向として定義したものである。さらに、これらの独立した座標系の３次元データを統一的に扱えるようにするために、書画台２０４を含む平面をＸＹ平面とし、このＸＹ平面から上方に垂直な向きをＺ軸とする直交座標系を定義する。
【００１３】
図２（Ｃ）は、座標系を変換する場合の例として、直交座標系と、カメラ部２０２を中心としたカメラ座標系を用いて表現された空間と、カメラ部２０２が撮像する画像平面との関係を示す図である。直交座標系における３次元点Ｐ［Ｘ，Ｙ，Ｚ］は、（１）式によって、カメラ座標系における３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］へ変換できる。
【数１】
0006624861.tif 000002
ここで、Ｒｃおよびｔｃは、直交座標系に対するカメラの姿勢（回転）と位置（並進）によって求まる外部パラメータによって構成され、Ｒｃを３×３の回転行列、ｔｃを並進ベクトルと呼ぶ。逆に、カメラ座標系で定義された３次元点は（２）式によって、直交座標系への変換することができる。
【数２】
0006624861.tif 000003
【００１４】
さらに、カメラ部２０２で撮影される２次元のカメラ画像平面は、カメラ部２０２によって３次元空間中の３次元情報が２次元情報に変換されたものである。すなわち、カメラ座標系上での３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］を、（３）式によってカメラ画像平面での２次元座標ｐｃ［ｘｐ，ｙｐ］に透視投影変換することによって変換することが出来る。
【数３】
0006624861.tif 000004
ここで、Ａは、カメラの内部パラメータと呼ばれ、焦点距離と画像中心などで表現される３×３の行列である。
【００１５】
以上のように、（１）式と（３）式を用いることで、直交座標系で表された３次元点群を、カメラ座標系での３次元点群座標やカメラ画像平面に変換することが出来る。なお、各ハードウェアデバイスの内部パラメータおよび直交座標系に対する位置姿勢（外部パラメータ）は、公知のキャリブレーション手法によりあらかじめキャリブレーションされているものとする。以後、特に断りがなく３次元点群と表記した場合は、直交座標系における３次元データを表しているものとする。
【００１６】
＜カメラスキャナのコントローラのハードウェア構成＞
図３は、カメラスキャナ１０１の本体であるコントローラ部２０１のハードウェア構成例を示す図である。
図３に示すように、コントローラ部２０１は、システムバス３０１に接続されたＣＰＵ３０２、ＲＡＭ３０３、ＲＯＭ３０４、ＨＤＤ３０５、ネットワークＩ／Ｆ３０６、画像処理プロセッサ３０７、カメラＩ／Ｆ３０８を含む。さらに、コントローラ部２０１は、ディスプレイコントローラ３０９、シリアルＩ／Ｆ３１０、オーディオコントローラ３１１およびＵＳＢコントローラ３１２を含む。
【００１７】
ＣＰＵ３０２はコントローラ部２０１全体の動作を制御する中央演算装置である。ＲＡＭ３０３は揮発性メモリである。ＲＯＭ３０４は不揮発性メモリであり、ＣＰＵ３０２の起動用プログラムが格納されている。ＨＤＤ３０５はＲＡＭ３０３と比較して大容量なハードディスクドライブ（ＨＤＤ）である。ＨＤＤ３０５にはコントローラ部２０１の実行する、カメラスキャナ１０１の制御用プログラムが格納されている。
【００１８】
ＣＰＵ３０２は電源ＯＮ等の起動時、ＲＯＭ３０４に格納されている起動用プログラムを実行する。この起動用プログラムは、ＨＤＤ３０５に格納されている制御用プログラムを読み出し、ＲＡＭ３０３上に展開するためのものである。ＣＰＵ３０２は起動用プログラムを実行すると、続けてＲＡＭ３０３上に展開した制御用プログラムを実行し、制御を行う。また、ＣＰＵ３０２は制御用プログラムによる動作に用いるデータもＲＡＭ３０３上に格納して読み書きを行う。ＨＤＤ３０５上にはさらに、制御用プログラムによる動作に必要な各種設定や、また、カメラ入力によって生成した画像データを格納することができ、ＣＰＵ３０２によって読み書きされる。ＣＰＵ３０２はネットワークＩ／Ｆ３０６を介してネットワーク１０４上の他の機器との通信を行う。
【００１９】
画像処理プロセッサ３０７はＲＡＭ３０３に格納された画像データを読み出して処理し、またＲＡＭ３０３へ書き戻す。なお、画像処理プロセッサ３０７が実行する画像処理は、回転、変倍、色変換等である。
カメラＩ／Ｆ３０８はカメラ部２０２および距離画像センサ部２０８と接続され、ＣＰＵ３０２からの指示に応じてカメラ部２０２から画像データを、距離画像センサ部２０８から距離画像データを取得してＲＡＭ３０３へ書き込む。また、ＣＰＵ３０２からの制御コマンドをカメラ部２０２およびへ送信し、カメラ部２０２および距離画像センサ部２０８の設定を行う。
【００２０】
コントローラ部２０１は、ディスプレイコントローラ３０９、シリアルＩ／Ｆ３１０、オーディオコントローラ３１１およびＵＳＢコントローラ３１２のうち少なくとも１つをさらに含むことができる。
ディスプレイコントローラ３０９はＣＰＵ３０２の指示に応じてディスプレイへの画像データの表示を制御する。ここでは、ディスプレイコントローラ３０９はプロジェクタ２０７およびＬＣＤタッチパネル３３０に接続されている。
シリアルＩ／Ｆ３１０はシリアル信号の入出力を行う。ここでは、シリアルＩ／Ｆ３１０はターンテーブル２０９に接続され、ＣＰＵ３０２の回転開始・終了および回転角度の指示をターンテーブル２０９へ送信する。また、シリアルＩ／Ｆ３１０はＬＣＤタッチパネル３３０に接続され、ＣＰＵ３０２はＬＣＤタッチパネル３３０が押下されたときに、シリアルＩ／Ｆ３１０を介して押下された座標を取得する。
オーディオコントローラ３１１はスピーカ３４０に接続され、ＣＰＵ３０２の指示に応じて音声データをアナログ音声信号に変換し、スピーカ３４０を通じて音声を出力する。
ＵＳＢコントローラ３１２はＣＰＵ３０２の指示に応じて外付けのＵＳＢデバイスの制御を行う。ここでは、ＵＳＢコントローラ３１２はＵＳＢメモリやＳＤカードなどの外部メモリ３５０に接続され、外部メモリ３５０へのデータの読み書きを行う。
【００２１】
＜カメラスキャナの制御用プログラムの機能構成＞
図４は、ＣＰＵ３０２が実行するカメラスキャナ１０１の制御用プログラム４０１の機能構成を示す図である。図５は、制御用プログラム４０１の各モジュールの関係を示すシーケンス図である。
カメラスキャナ１０１の制御用プログラムは前述のようにＨＤＤ３０５に格納され、ＣＰＵ３０２が起動時にＲＡＭ３０３上に展開して実行する。
メイン制御部４０２は制御の中心であり、制御用プログラム４０１内の他の各モジュールを図５に示すように制御する。
【００２２】
ユーザインタフェース部４０３は、メイン制御部４０２からの要求を受け、メッセージやボタン等のＧＵＩ部品を生成する。そして、表示部４０６へ生成したＧＵＩ部品の表示（操作情報表示）を要求する。表示部４０６はディスプレイコントローラ３０９を介して、プロジェクタ２０７もしくはＬＣＤタッチパネル３３０へ要求されたＧＵＩ部品の表示（操作情報表示）を行う。プロジェクタ２０７は書画台２０４に向けて設置されているため、書画台２０４上にＧＵＩ部品を投射することが可能となっている。また、ユーザインタフェース部４０３は、ジェスチャー認識部４０９が認識したタッチ等のジェスチャー操作、あるいはシリアルＩ／Ｆ３１０を介したＬＣＤタッチパネル３３０からの入力操作、そしてさらにそれらの座標を受信する。そして、ユーザインタフェース部４０３は描画中の操作画面の内容と操作座標を対応させて操作内容（押下されたボタン等）を判定する。この操作内容をメイン制御部４０２へ通知することにより、操作者の操作を受け付ける。
【００２３】
ネットワーク通信部４０４は、ネットワークＩ／Ｆ３０６を介して、ネットワーク１０４上の他の機器とＴＣＰ／ＩＰによる通信を行う。
データ管理部４０５は、制御用プログラム４０１の実行において生成した作業データなど様々なデータをＨＤＤ３０５上の所定の領域へ保存し、管理する。例えば、画像取得部４１６によって撮像され、スキャン処理部４１１により平面原稿／書籍／立体物に応じた形式で出力されたスキャンデータなどである。
【００２４】
画像取得部４１６は画像入力処理を行うモジュールであり、カメラ画像取得部４０７、距離画像取得部４０８から構成される。カメラ画像取得部４０７はカメラＩ／Ｆ３０８を介してカメラ部２０２が出力する画像データを取得し、ＲＡＭ３０３へ格納する。距離画像取得部４０８はカメラＩ／Ｆ３０８を介して距離画像センサ部２０８が出力する距離画像データを取得し、ＲＡＭ３０３へ格納する。距離画像取得部４０８の処理の詳細は図５を用いて後述する。
【００２５】
認識処理部４１７はカメラ画像取得部４０７、距離画像取得部４０８が取得する画像データから書画台２０４上の物体の動きを検知して認識するモジュールであり、ジェスチャー認識部４０９、物体検知部４１０から構成される。ジェスチャー認識部４０９は、画像取得部４１６から書画台２０４上の画像を取得し続け、タッチなどのジェスチャーを検知するとメイン制御部４０２へ通知する。物体検知部４１０は、画像取得部４１６から書画台２０４を撮像した画像を取得し、書画台２０４上に物体が置かれるタイミング、物体が置かれて静止するタイミング、あるいは物体が取り除かれるタイミングなどを検知する処理を行う。それぞれの処理の詳細は図６および図７を用いて後述する。
【００２６】
画像処理部４１８は、カメラ部２０２および距離画像センサ部２０８から取得した画像を画像処理プロセッサ３０７で解析するために用いられ、スキャン処理部４１１や各種画像処理モジュールで構成される。スキャン処理部４１１は、対象物のスキャンを行うモジュールであり、平面原稿／書籍／立体物にそれぞれ適した処理を実行し、それぞれに応じた形式のデータを出力する。スキャン処理部４１１で実行される処理の１つである平面原稿スキャン処理の詳細については図８を用いて後述する。また、前述のジェスチャー認識部４０９やスキャン処理部４１１は画像処理部４１８の各種画像処理モジュールを利用して実行される。
【００２７】
＜距離画像センサおよび距離画像取得部の説明＞
図６（Ａ）は、距離画像取得部４０８の処理を示すフローチャートである。また、図６（Ｂ）〜（Ｄ）は、パターン投射方式による距離画像の計測原理を説明するための図である。
図６（Ｂ）に距離画像センサ部２０８の構成を示している。距離画像センサ部２０８は赤外線によるパターン投射方式の距離画像センサである。赤外線パターン投射部３６１は対象物に、人の目には不可視である赤外線によって３次元測定パターンを投射する。赤外線カメラ３６２は対象物に投射した３次元測定パターンを読み取るカメラである。ＲＧＢカメラ３６３は人の目に見える可視光をＲＧＢ信号で撮影するカメラである。
【００２８】
距離画像取得部４０８が処理を開始すると、ステップＳ６０１では、図６（Ｂ）に示すように赤外線パターン投射部３６１を用いて赤外線による３次元形状測定パターン６２２を対象物６２１に投射する。
ステップＳ６０２では、ＲＧＢカメラ３６３を用いて対象物を撮影したＲＧＢカメラ画像６２３および、赤外線カメラ３６２を用いてステップＳ６０１で投射した３次元形状測定パターン６２２を撮影した赤外線カメラ画像６２４を取得する。なお、赤外線カメラ３６２とＲＧＢカメラ３６３とでは設置位置が異なるため、図６（Ｃ）に示すように、それぞれで撮影される２つのＲＧＢカメラ画像６２３および赤外線カメラ画像６２４の撮影領域が異なる。
【００２９】
そこでステップＳ６０３では、赤外線カメラ３６２の座標系からＲＧＢカメラ３６３の座標系への座標系変換を用いて赤外線カメラ画像６２４をＲＧＢカメラ画像６２３の座標系に合わせる。なお、赤外線カメラ３６２とＲＧＢカメラ３６３の相対位置や、それぞれの内部パラメータは事前のキャリブレーション処理により既知である。
ステップＳ６０４では、図６（Ｄ）に示すように、３次元形状測定パターン６２２とステップＳ６０３で座標変換を行った赤外線カメラ画像６２４間での対応点を抽出する。例えば、赤外線カメラ画像６２４上の１点を３次元形状測定パターン６２２上から探索して、同一の点が検出された場合に対応付けを行う。あるいは、赤外線カメラ画像６２４の画素の周辺のパターンを３次元形状測定パターン６２２上から探索し、一番類似度が高い部分と対応付けてもよい。
【００３０】
ステップＳ６０５では、赤外線パターン投射部３６１と赤外線カメラ３６２を結ぶ直線を基線６２５として三角測量の原理を用いて計算を行うことにより、各画素ごとの赤外線カメラ３６２からの距離を算出する。ステップＳ６０４で対応付けが出来た画素については、赤外線カメラ３６２からの距離を算出して画素値として保存し、対応付けが出来なかった画素については、距離の計測が出来なかった部分として無効値を保存する。これをステップＳ６０３で座標変換を行った赤外線カメラ画像６２４の全画素に対して行うことで、各画素に距離値が入った距離画像を生成する。
【００３１】
ステップＳ６０６では、距離画像の各画素にＲＧＢカメラ画像６２３のＲＧＢ値を保存することにより、１画素につきＲ、Ｇ、Ｂ、距離の４つの値を持つ距離画像を生成する。ここで取得した距離画像は距離画像センサ部２０８のＲＧＢカメラ３６３で定義された距離画像センサ座標系が基準となっている。
そこでステップＳ６０７では、図２（Ｃ）で上述したように、距離画像センサ座標系として得られた距離データを直交座標系における３次元点群に変換する。
【００３２】
なお、本実施例では上述したように、距離画像センサ部２０８として赤外線パターン投射方式を採用しているが、他の方式の距離画像センサを用いることも可能である。例えば、２つのＲＧＢカメラでステレオ立体視を行うステレオ方式や、レーザー光の飛行時間を検出することで距離を測定するＴＯＦ（Ｔｉｍｅ  ｏｆ  Ｆｌｉｇｈｔ）方式など、他の計測手段を用いても構わない。
【００３３】
＜ジェスチャー認識部の説明＞
図７は、ジェスチャー認識部４０９の処理を示すフローチャートである。
ジェスチャー認識部４０９が処理を開始すると、ステップＳ７０１で初期化処理を行う。初期化処理では、ジェスチャー認識部４０９は距離画像取得部４０８から距離画像を１フレーム取得する。ここで、ジェスチャー認識部の開始時は書画台２０４上に対象物が置かれていない状態であるため、初期状態として書画台２０４の平面の認識を行う。つまり、取得した距離画像から最も広い平面を抽出し、その位置と法線ベクトル（以降、書画台２０４の平面パラメータと呼ぶ）を算出し、ＲＡＭ３０３に保存する。
【００３４】
続いてステップＳ７０２では、ステップＳ７２１〜７２２に示すように、書画台２０４上に存在する物体の３次元点群を取得する。
ステップＳ７２１では、距離画像取得部４０８から距離画像と３次元点群を１フレーム取得する。
ステップＳ７２２では、書画台２０４の平面パラメータを用いて、取得した３次元点群から書画台２０４を含む平面にある点群を除去する。
【００３５】
ステップＳ７０３では、ステップＳ７３１〜Ｓ７３４に示すように、取得した３次元点群から操作者の手の形状および指先を検出する処理を行う。ここで、図８に示す、指先検出処理の方法を模式的に表した図を用いて説明する。
ステップＳ７３１では、ステップＳ７０２で取得した３次元点群から、書画台２０４を含む平面から所定の高さ以上にある、肌色の３次元点群を抽出することで、手の３次元点群を得る。図８（Ａ）の８０１は、抽出した手の３次元点群を表している。
【００３６】
ステップＳ７３２では、抽出した手の３次元点群を、書画台２０４の平面に射影した２次元画像を生成して、その手の外形を検出する。図８（Ａ）の８０２は、書画台２０４の平面に投影した３次元点群を表している。投影は、点群の各座標を、書画台２０４の平面パラメータを用いて投影すればよい。また、図８（Ｂ）に示すように、投影した３次元点群から、ｘｙ座標の値だけを取り出せば、ｚ軸方向から見た２次元画像８０３として扱うことができる。この時、手の３次元点群の各点が、書画台２０４の平面に投影した２次元画像の各座標のどれに対応するかを、記憶しておくものとする。
【００３７】
ステップＳ７３３では、検出した手の外形上の各点について、その点での外形の曲率を算出し、算出した曲率が所定値より大きい点を指先として検出する。半径ｒの円周の曲率は逆数１／ｒであり、曲率が大きいほど曲がり具合がきついことを表している。
図８（Ｃ）は、外形の曲率から指先を検出する方法を模式的に表したものである。８０４は、書画台２０４の平面に投影された２次元画像８０３の外形を表す点の一部を表している。ここで、８０４のような、外形を表す点のうち、隣り合う５個の点を含むように円を描くことを考える。円８０５、８０７が、その例である。この円を、全ての外形の点に対して順に描き、その直径（例えば８０６、８０８）が所定の値より小さい（曲率が大きい）ことを以て、指先とする。この例では隣り合う５個の点としたが、その数は限定されるものではない。また、ここでは曲率を用いたが、外形に対して楕円フィッティングを行うことで、指先を検出してもよい。
【００３８】
ステップＳ７３４では、検出した指先の個数および各指先の座標を算出する。この時、前述したように、書画台２０４に投影した２次元画像の各点と、手の３次元点群の各点の対応関係を記憶しているため、各指先の３次元座標を得ることができる。今回は、３次元点群から２次元画像に投影した画像から指先を検出する方法を説明したが、指先検出の対象とする画像は、これに限定されるものではない。例えば、距離画像の背景差分や、ＲＧＢ画像の肌色領域から手の領域を抽出し、上に述べたのと同様の方法（外形の曲率計算等）で、手領域のうちの指先を検出してもよい。この場合、検出した指先の座標はＲＧＢ画像や距離画像といった、２次元画像上の座標であるため、その座標における距離画像の距離情報を用いて、直交座標系の３次元座標に変換する必要がある。この時、指先点となる外形上の点ではなく、指先を検出するときに用いた、曲率円の中心を指先点としてもよい。
【００３９】
ステップＳ７０４では、ステップＳ７４１〜Ｓ７４６に示すように、検出した手の形状および指先からのジェスチャー判定処理を行う。
ステップＳ７４１では、ステップＳ７０３で検出した指先が１つかどうか判定する。指先が１つでなければステップＳ７４６へ進み、ジェスチャーなしと判定する。一方、検出した指先が１つであればステップＳ７４２へ進み、検出した指先と書画台２０４を含む平面との距離を算出する。
【００４０】
ステップＳ７４３ではステップＳ７４２で算出した距離が微小な所定値以下であるかどうかを判定し、所定値以下であればステップＳ７４４へ進んで指先が書画台２０４へタッチした、タッチジェスチャーありと判定する。一方、所定値以下で無ければステップＳ７４５へ進み、指先が移動したジェスチャー（タッチはしていないが指先が書画台２０４上に存在するジェスチャー）と判定する。
ステップＳ７０５では判定したジェスチャーをメイン制御部４０２へ通知し、ステップＳ７０２へ戻ってジェスチャー認識処理を繰り返す。
なお、ここでは一本指でのジェスチャー認識について説明を行ったが、複数の指あるいは複数の手でのジェスチャー認識に応用することも可能である。
【００４１】
＜物体検知部の処理＞
図９は、物体検知部４１０の処理を示すフローチャートである。
物体検知部４１０が処理を開始すると、図９のステップＳ９０１の初期化処理において、ステップＳ９１１〜Ｓ９１３に示す初期化処理を行う。
ステップＳ９１１では、カメラ画像取得部４０７からカメラ画像を、距離画像取得部４０８から距離画像をそれぞれ１フレーム取得する。
【００４２】
ステップＳ９１２では、データ管理部４０５を介して、取得したカメラ画像を書画台背景カメラ画像／前フレームカメラ画像／直前静止カメラ画像としてＨＤＤ３０５にそれぞれ保存する。また、取得した距離画像も同様に、書画台背景距離画像／前フレーム距離画像／直前静止距離画像としてＨＤＤ３０５に保存する。（以後の説明において、書画台背景画像／前フレーム画像／直前静止画像と記載した場合には、カメラ画像と距離画像の両方を含むものとする。）
【００４３】
ステップＳ９１３では、状態管理テーブルを初期化し、データ管理部４０５を介してＲＡＭ３０３へ保存する。図２２（Ａ）〜（Ｇ）に示すように、状態管理テーブルは書画台管理テーブルと物体管理テーブルを含む。書画台管理テーブルでは、書画台２０４上から検知された物体数（ｏｂｊＮｕｍｓ）と書画台２０４上の状態を記録する。また、物体管理テーブルでは、物体の状態（移動中／静止／原稿検出済など）や、物体の位置・大きさを含む情報を管理する。これ以外にも状態管理テーブルには、物体に関連する情報を保持することは可能である。図２２（Ａ）は初期化処理後の状態管理テーブルを示しており、物体数（ｏｂｊＮｕｍｓ）に０が設定され、物体管理テーブル内は空欄となっている。
【００４４】
続いて、ステップＳ９０２の物体検知処理において、ステップＳ９２１〜Ｓ９２６に示す処理により、書画台２０４上での物体の動きを検知する。
ステップＳ９２１では、カメラ画像取得部４０７からカメラ画像を、距離画像取得部４０８から距離画像をそれぞれ１フレーム取得する。（以後の説明において、現フレーム画像と記載した場合には、本ステップで取得したカメラ画像と距離画像の両方を含むものとする。）
【００４５】
ステップＳ９２２では、取得したカメラ画像および距離画像を用いて物体検知処理を行う。図１０を用いて物体検知処理について説明する。
図１０のステップＳ１００１では、書画台背景画像との差分値を算出する。そこで、カメラ画像および距離画像それぞれにおいて、ステップＳ７１２で保存された書画台背景画像と、ステップＳ７２１で撮像された現フレーム画像との差分画像を生成し、２値化処理を行う。２値化処理後の背景差分画像中の黒画素部分は画像変化量がない部分、すなわち物体が存在していない部分であることを表している。また、白画素部分は画像変化量がある部分、すなわち物体が存在している部分であることを示している。
【００４６】
ステップＳ１００２では、前フレームでの処理において静止物体が検知されているか、あるいはステップＳ１００１で算出した距離背景差分画像での差分値があらかじめ決めておいた所定値以上かどうかに基づき、物体の検知を判定する。書画台２０４上に物体が存在しないと判断された場合はステップＳ１００３へ進み、存在していると判断された場合はステップＳ１００７へ進む。
【００４７】
ステップＳ１００７では、ステップＳ１００１で生成した背景差分画像を基にして物体数の増減の判定を行う。物体数が増減した場合にはステップＳ１００８へ、変わらない場合にはステップＳ１０１０へ進む。
ステップＳ１００８では、ステップＳ１００１で検出された書画台背景画像の差分領域が、直前フレームで検出された物体と同一か否かを判定することで、新規物体か否かを判定する。すなわち、直前フレームでは検出されていない領域より検出された物体は、新規に書画台２０４上にフレームインした物体によるものと判断してステップＳ１００９へ進む。一方で、直前フレームで検知されていた物体が分離・統合したことによる物体数の増減は、書画台２０４上に物体を載置するために手を放した、あるいは載置されていた物体を掴んだなどの要因によるものであると考えられる。そこで、ステップＳ１００６へ進み、図２２（Ｄ）に示すように、分離・統合した物体情報を書き込むことで状態管理テーブルを更新する。
ステップＳ１００９では、ステップＳ１００８のフレームイン判定結果を受け、物体フレームインイベントを発行する。そして、ステップＳ１００６において、図２２（Ｂ）に示すように、物体のフレームイン情報および物体の位置情報などを書き込むことで状態管理テーブルを更新して処理を終了する。
【００４８】
ステップＳ１０１０では、カメラ画像および距離画像それぞれにおいて、ステップＳ７２４で保存された前フレーム画像と、ステップＳ７２１で撮像された現フレーム画像との差分画像を生成し、所定値によって２値化処理を行うことで差分値を算出する。
ステップＳ１０１１では、算出した差分値があらかじめ決めておいた所定値未満かどうかを判定する。算出した差分値が所定値以上であればステップＳ１００６へ進み、図２２（Ｃ）に示すように、状態管理テーブルの物体の位置情報などを更新して処理を終了する。一方、差分値が所定値未満であればステップＳ１０１２へ進む。
【００４９】
ステップＳ１０１２では、ステップＳ１０１０が連続してＹＥＳとなった回数から、差分値が所定値未満つまり書画台２０４上の物体が静止した状態が、あらかじめ決めておいたフレーム数続いたかどうかを判定する。そして、所定フレーム数続いていない場合は、ステップＳ１００６へ進み、図２２（Ｅ）に示すように、状態管理テーブルの物体の位置情報などを更新して処理を終了する。一方、所定フレーム数続いた場合は、書画台２０４上の物体が静止したと判断し、ステップＳ１０１３へ進む。
【００５０】
ステップＳ１０１３では、カメラ画像および距離画像それぞれにおいて、直前静止画像と現フレーム画像との差分画像を生成し、所定値によって２値化処理を行い、直前静止画像との差分値を算出する。
ステップＳ１０１４では、算出した差分値があらかじめ決めておいた所定値以上かどうかを判定する。算出した差分値が所定値未満の場合は、直前の静止状態から変化がないと判断され、ステップＳ１０１５へ進み、一方、差分値が所定値以上であればステップＳ１０１６へ進む。
【００５１】
ステップＳ１０１５において、ステップＳ１０１２およびステップＳ１０１４において、直前の静止状態と同じ状態での物体静止であると判断されたことを受け、物体静止イベントを再発行する。そして、ステップＳ１００６で状態管理テーブルを更新する。
一方で、ステップＳ１０１６では、ステップＳ１０１２およびステップＳ１０１４において、直前の静止状態とは異なる状態での物体静止であると判断されたことを受け、物体静止イベントを発行する。ステップＳ１０１７では、データ管理部４０５を介して、現フレームのカメラ画像および距離画像を、直前静止カメラ画像および直線静止距離画像としてＨＤＤ３０５に保存する。
ステップＳ１００６では、ステップＳ１０１５およびステップＳ１０１６で発行された物体静止イベントを受け、図２２（Ｆ）に示すように状態管理テーブルを更新する。
【００５２】
ステップＳ１００２で物体検知がされなかった場合、ステップＳ１００３では、直前のフレームにおいて物体が検知中であったかを確認することで、フレームアウト判定処理を行う。すなわち、直前フレームで物体を検知していなかった場合には、書画台２０４上に物体が無い状態が続いていると判断して物体検知処理を終了する。一方、物体を検知していた場合には、直前まで検出された物体がフレームアウトしたと判断してステップＳ１００４へ進む。
【００５３】
ステップＳ１００４では、ステップＳ１００３のフレームアウト判定結果を受け、物体フレームアウトイベントを発行する。
ステップＳ１００５では、データ管理部４０５を介して、現フレームのカメラ画像および距離画像を、直前静止カメラ画像および直前静止距離画像としてＨＤＤ３０５にそれぞれ保存する。なお、本ステップにおいて、さらに現フレーム画像を書画台背景画像として更新しても構わない。
ステップＳ１００６では、図２２（Ｇ）に示すように、物体のフレームアウト情報を書き込むことで状態管理テーブルを更新する。あるいは、図２２（Ａ）に示すように状態管理テーブルを初期化しても構わない。
【００５４】
図９に戻り、ステップＳ９２３では、Ｓ９２２で発行されたイベントをメイン制御部４０２へ通知する。なお、同一フレーム内で複数の物体検知イベントが発行された場合には、すべての物体検知イベントをメイン制御部４０２へ通知する。
ステップＳ９２４では、データ管理部４０５を介して、Ｓ９２１で取得したカメラ画像および距離画像を前フレームカメラ画像および前フレーム距離画像としてＨＤＤ３０５に保存する。
ステップＳ９２５では、物体検知処理の終了判定を行い、終了判定がなされるまでステップＳ９２１〜ステップＳ９２５の処理を繰り返す。なお、システムの終了はＵＩ画面上に投射表示された終了ボタン（図示なし）の操作、カメラスキャナ１０１の本体の電源ボタン（図示なし）の押下などにより行われ、メイン制御部４０２から通知されるものとする。
【００５５】
＜スキャン処理部の説明＞
図１１のフローチャートを用いて、スキャン処理部４１１が実行する平面原稿スキャン処理を説明する。図１２（Ａ）〜（Ｊ）は平面原稿スキャン処理を説明するための模式図である。
スキャン処理部４１１は平面原稿スキャン処理を開始すると、ステップＳ１１０１においてカメラ画像取得部４０７を介してカメラ部２０２からの画像を１フレーム取得する。ここで、カメラ部２０２の座標系は図２（Ｂ）で示したように書画台２０４に正対していないため、このときの撮影画像は図１２（Ａ）に示すように対象物１２０１、書画台２０４ともに歪んでいる。
【００５６】
ステップＳ１１０２では、平面原稿抽出処理をステップＳ１１２１〜ステップＳ１１２５により実行する。
ステップＳ１１２１において書画台背景カメラ画像とステップＳ１１０１で取得したカメラ画像との画素毎の差分を算出し、差分画像を生成した上で、差分のある画素が黒、差分の無い画素が白となるように２値化処理を行う。したがって、ここで生成した差分画像は、図１２（Ｂ）の差分領域１２０２のように、対象物１２０１の領域が黒色である（差分がある）画像となる。
ステップＳ１１２２では差分領域１２０２を用いて、図１２（Ｃ）のように対象物１２０１のみの画像を抽出する。
【００５７】
ステップＳ１１２３では、抽出した原稿領域画像に対して階調補正を行う。
ステップＳ１１２４では、抽出した原稿領域画像に対してカメラ座標系から書画台２０４への射影変換を行い、図１２（Ｄ）のように書画台２０４の真上から見た画像１２０３に変換する。ここで用いる射影変換パラメータは、事前のキャリブレーションにより得られたものを利用すればよい。なお、図１２（Ｄ）に示したように、書画台２０４上への原稿の置き方により、ここで得られる画像１２０３は傾いていることがある。
そこで、ステップＳ１１２５では、画像１２０３を矩形近似してからその矩形が水平になるように回転し、図１２（Ｅ）で示した画像１２０３のように傾きの無い平面原稿画像を得る。図１２（Ｆ）に示すように、基準ラインに対しての矩形の傾きθ１およびθ２を算出し、傾きが小さい方（ここではθ１）を画像１２０３の回転角度として決定する。図１２（Ｇ）および図１２（Ｈ）に示すように、画像１２０３中に含まれる文字列に対してＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅｃｏｇｎｉｔｉｏｎ）処理を行い、文字列の傾きから画像１２０３の回転角度の算出および天地判定処理をしてもよい。
【００５８】
ステップＳ１１０３では、ステップＳ１１０２で抽出した平面原稿画像１２０４に対して後処理を行う。例えば、領域分割処理を行うことで、図１２（Ｉ）に示す画像領域１２０５と図１２（Ｊ）に示すテキスト領域１２０６に分割され、それぞれのコンテンツの位置・サイズと傾きを算出してもよい。あるいは、平面原稿画像１２０４に対して下地色除去や色ムラ補正処理、先鋭化処理などの画像補正処理などを行ってもよい。
【００５９】
ステップＳ１１０４では、抽出した平面原稿画像１２０４に対して、あらかじめ決めておいた画像フォーマット（例えばＪＰＥＧ、ＴＩＦＦ、ＰＤＦ等）に合わせて圧縮およびファイルフォーマット変換を行う。そして、データ管理部４０５を介してＨＤＤ３０５の所定の領域へファイルとして保存し、スキャン処理部４１１で実行される平面原稿スキャン処理を終了する。
【００６０】
＜利用シーンの説明＞
図１３は操作者１３０１による平面原稿スキャン操作の様子の一例を示している。図１３（Ａ）は使用開始時の様子、図１３（Ｂ）〜図１３（Ｄ）はスキャン対象物載置領域枠１３０３内へ平面原稿１３０４を載置する様子をそれぞれ示している。また、図１３（Ｅ）は静止検知後に平面原稿スキャンが実行されている様子、図１３（Ｆ）はスキャン後にプレビュー表示９０５がされている様子を示している。
【００６１】
＜メイン制御部の説明＞
図１３の操作説明図と図１４のシーケンス図を用いて、メイン制御部４０２が実行するＵＩ表示制御処理について説明する。
メイン制御部４０２が処理を開始すると、図１４のステップＳ１４０１において、メイン制御部４０２はユーザインタフェース部４０３に対し初期画面表示指示を行う。ユーザインタフェース部４０３は、プロジェクタ２０７によって初期画面を書画台２０４上へ投影表示させる。図１３（Ａ）にスキャン実行開始時のＵＩ画面である初期画面の一例を示す。ＵＩ画面にはメッセージ１３０２、スキャン対象物載置領域枠１３０３が投影表示されている。
ステップＳ１４０２において、メイン制御部４０２は、物体検知部４１０における物体検知処理の開始指示を行う。物体検知部４１０は図９、図１０を用いて前述した処理を行い、物体のフレームインや静止時、フレームアウト時にそれぞれのイベントをメイン制御部４０２へ通知する。
【００６２】
図１３（Ｂ）に示すように、操作者１３０１が平面原稿１３０４をスキャン対象物載置領域枠１３０３内へ載置し始めると、ステップＳ１４０３において、物体検知部４１０から物体フレームインイベントがメイン制御部４０２へ通知される。ここでは図示はしていないが、物体のフレームインを検知したことを操作者１３０１へ通知するようにＵＩ画面を更新しても構わない。例えば、スキャン対象物載置領域枠１３０３の枠の色を変えるなどの表示効果を与えてもよい。
【００６３】
図１３（Ｄ）に示すように操作者１３０１が平面原稿１３０４をスキャン対象物載置領域枠１３０３内へ載置し終わると、ステップＳ１４０４において物体検知部４１０から物体フレームアウトイベント及び物体静止イベントがメイン制御部４０２へ通知される。
ステップＳ１４０５において、メイン制御部４０２はユーザインタフェース部４０３に対しスキャン開始画面表示指示を行う。図１３（Ｅ）にスキャン実行時のＵＩ画面の一例を示す。メッセージ１３０２を変更し、スキャン対象物載置領域枠１３０３表示を変更するなどの表示効果を加えたＵＩ画面を投影表示する。
【００６４】
ステップＳ１４０６において、メイン制御部４０２はスキャン処理部４１１へ平面原稿スキャン開始指示を行う。スキャン処理部４１１（第２の画像生成手段）では、図１１を用いて前述したステップＳ１１０１〜ステップＳ１１０４で示す処理により、高解像度の平面原稿画像を生成する。
ステップＳ１４０７において、メイン制御部４０２はユーザインタフェース部４０３に対し、ステップＳ１４０６で得られたスキャン結果を提示するためのプレビュー画像表示指示を行う。図１３（Ｆ）にプレビュー画像を表示したＵＩ画面の一例を示す。ここでは、載置された平面原稿１３０４上に抽出した平面原稿画像１３０５を実寸サイズで重畳表示している。なお、プレビュー画像表示の仕方はこれに限るものではなく、例えば平面原稿１３０４以外の領域に表示させても構わない。また、実寸サイズに限らず、縮小・拡大して表示するなども可能である。
【００６５】
以上の処理により、平面原稿１３０４の載置を検知するとスキャン開始画面の表示、平面原稿スキャン処理、抽出された結果のプレビュー画像表示が実行される。しかしながら、スキャン開始画面が表示されてから平面原稿スキャン処理終了後にプレビュー画像が表示されるまでの間はＵＩ画面の更新および操作ができない。これにより、スキャン開始からしばらくの間ＵＩの応答が返ってこないことに対する不安感を操作者に与えてしまう可能性がある。
【００６６】
そこで、物体検知部４１０（第１の画像生成手段）において、ステップＳ１４０４で物体静止イベントをメイン制御部４０２に通知した後、ステップＳ１４０８で平面画像抽出処理を実行し、補正画像を生成する。なお、ここでの平面画像抽出処理は、入力画像として距離画像センサ部２０８のＲＧＢカメラ３６３で撮像された低解像度画像を用いて、前述した図１１のステップＳ１１０２以降の平面原稿抽出処理と同様の処理を実行すればよい。
【００６７】
物体検知部４１０での平面画像抽出処理が終了すると、ステップＳ１４０９において、メイン制御部４０２はユーザインタフェース部４０３に対しステップＳ１４０８で得られたスキャン結果を提示するためのプレビュー画像表示指示を行う。ここで表示されるプレビュー画像は低解像度画像をもとに生成した低解像度の補正画像であるため、ステップＳ１４０７で高解像度のプレビュー画像（高解像度の補正画像）に表示を更新すればよい。
【００６８】
なお、ここでは、物体検知部４１０において、ステップＳ１４０４での静止検知後にステップＳ１４０８の平面原稿抽出処理を実行するという流れで説明を行ったが、処理の順番はこれに限らない。すなわち、物体の静止を検知した後、先にステップＳ１４０８の平面原稿抽出処理を行い、ステップＳ１４０４の物体静止検知時に物体静止イベントと併せて抽出した平面原稿画像情報を通知しても構わない。
以上により、高解像度のカメラ画像における平面原稿スキャン結果を表示する前に、距離画像センサ部２０８中のＲＧＢカメラ３６３で撮像された低解像度画像を利用した平面原稿スキャン結果のプレビュー表示が先行して行われる。これにより、操作者に不安感を抱かせないような即時性の高いＵＩ表示を提供することができる。
【００６９】
（第２実施形態）
実施形態１では、物体検知部４１０においてＲＧＢカメラ画像から平面原稿画像を抽出すると、すぐにプレビュー画像表示を行っていた。その際、カメラの撮影が終わるよりも早く、図１３（Ｆ）に示すように、平面原稿１３０４上にプレビュー画像を重畳表示してしまうと、カメラ画像中にプレビュー画像も映りこんでしまい、平面原稿画像の抽出に影響を及ぼすことがある。本実施形態では、このようなカメラ画像中へのプレビュー画像の映り込みを防止するための仕組みを提供する。
【００７０】
図１５は、本実施形態におけるメイン制御部４０２のフローチャートを示している。実施形態１と同じ処理については同じステップ番号を付与し、詳細な説明は省略する。
ステップＳ１１０１においてカメラ画像取得処理が実行されると、カメラ画像取得部４０７においてカメラ画像が撮影される。その際、カメラ部２０２の内部においては、指定されたシャッタースピードによりカメラ画像を撮像する露光処理を行う。続いてベイヤー配列で記録されたＲＡＷ画像をＪＰＥＧやＴＩＦＦのような画像形式に変換する現像処理を行う。その後、メモリへの記録や転送処理などが行われる。
【００７１】
そこで、ステップＳ１５０１において、カメラ画像取得部４０７は、カメラ部２０２において露光処理が終わった時点でスキャン処理部４１１を介し、メイン制御部４０２へカメラ撮像完了通知を送信する。
メイン制御部４０２は、ステップＳ１５０１によりカメラ撮像完了通知を受信したことを受け、Ｓ１４０９においてユーザインタフェース部４０３へプレビュー画像表示指示を行う。
以上の処理により、カメラ画像の撮像中にステップＳ１４０８による平面原稿抽出処理が終了していたとしても、カメラ撮像完了通知を受信するまでプレビュー画像表示指示を遅らせることができる。これにより、カメラ画像中にプレビュー表示が映り込むという事態を防止することができる。
【００７２】
（第３実施形態）
実施形態１〜２では、物体検知部４１０より物体静止イベントを通知すると、自動的に平面原稿スキャンが開始する仕組みを提供した。本実施形態では、平面原稿スキャン開始タイミングを指定するための仕組みを提供する。
図１６は、本実施形態におけるメイン制御部４０２のフローチャートを示している。実施形態１〜２と同じ処理については同じステップ番号を付与し、詳細な説明は省略する。また、図１７（Ａ）〜（Ｄ）は、操作者１３０１による平面原稿スキャン操作の様子および表示画面の一例を示している。
【００７３】
図１６のステップＳ１４０４において、メイン制御部４０２は、物体検知部４１０より物体静止イベントを受信すると、ステップＳ１４０６において平面原稿スキャン処理を開始する。
そしてステップＳ１５０１においてカメラ撮像完了通知を受信すると、ステップＳ１６０１で、ユーザインタフェース部４０３へ、スキャンボタン（操作ボタン）表示指示を行う。
ユーザインタフェース部４０３は、図１７（Ａ）に示すようにスキャンボタン１７０１を表示し、スキャンボタンの押下を促すメッセージ１３０２に変更する。
【００７４】
図１７（Ｂ）に示すように、操作者１３０１がスキャンボタン１７０１を押下すると、ジェスチャー認識部４０９がタッチ操作を認識し、ユーザインタフェース部４０３がスキャンボタン１７０１への操作であることを認識する。そして、ステップＳ１６０２において、メイン制御部４０２へスキャンボタン押下通知を送信する。
ステップＳ１６０３において、メイン制御部４０２は、スキャンボタン押下通知を受信すると、ユーザインタフェース部４０３に対しスキャン開始画面表示指示を行う。スキャン開始画面では、図１７（Ｃ）に示すように、スキャンボタン１７０１を非表示にし、スキャン中であることを示すメッセージ１３０２を表示すればよい。
【００７５】
ステップＳ１６０４において、メイン制御部４０２はユーザインタフェース部に対し、物体検知部４１０で生成された平面原稿画像を表示するためのプレビュー画像表示指示を行う。プレビュー画像表示画面では、図１７（Ｄ）に示すように、平面原稿１３０４上にステップＳ１４０８で得られた平面原稿画像１３０５を重畳表示させればよい。また、ステップＳ１６０２においてメイン制御部がスキャンボタン押下通知を受けるまでに、Ｓ１１０４までの高解像度の平面原稿画像の生成が終了していれば、低解像度の画像を表示する必要はなく、高解像度の画像を表示すればよい。
なお、操作ボタンとしてスキャンボタンだけでなくプレビューボタンを表示し、プレビューボタンの押下により、ステップＳ１６０３におけるスキャン開始画面表示指示をせずに、ステップＳ１６０４におけるプレビュー画像表示指示のみを行っても構わない。
【００７６】
以上のように、操作者１３０１がスキャンボタンを押下してスキャン処理を実行するＵＩ画面を提供する。この際、スキャンボタン表示までの間にカメラ画像の露光処理を行い、スキャンボタン表示後から押下検知までの間にも平面原稿抽出処理を実行させることができる。これにより、スキャンボタンが押下されてからカメラによる撮影と平面原稿抽出処理を実行する場合に比べて、早いタイミングでプレビュー表示を操作者に提示することが可能となる。
【００７７】
（第４実施形態）
実施形態３では、スキャンボタンを押下後に平面原稿スキャンが実行され、プレビュー表示されるように見せかけることで、平面原稿スキャン処理が高速に行われているかのような効果を与える仕組みを提供した。本実施系では、スキャンボタン押下前に平面原稿を動かしたり、取り除いたりした場合への対応する仕組みを提供する。
図１８に本実施形態におけるメイン制御部４０２のフローチャートを示す。実施形態１〜３と同じ処理については同じステップ番号を付与し、詳細な説明は省略する。
【００７８】
ステップＳ１６０１において、図１７（Ａ）に示すようなスキャンボタン１７０１を配置したＵＩ画面を表示する。
操作者１３０１は、スキャンボタン１７０１を押下する前に、書画台２０４上の平面原稿１３０４を取り除いたり、移動させたりするために手を挿入することもある。その際、ステップＳ１８０１において、物体検知部４１０より物体フレームインイベントがメイン制御部４０２へ通知される。
メイン制御部４０２は、物体フレームインイベントを受け、ステップＳ１８０２においてスキャン処理部４１１へ平面原稿スキャン中止通知を送信する。スキャン処理部４１１は、平面原稿スキャン中止通知を受信すると、その後の処理をすべて中止してメイン制御部４０２へ中止完了通知を送信する。
【００７９】
その後、ステップＳ１４０１において、ユーザインタフェース部４０３は、メイン制御部４０２から初期画面表示指示を受信すると、スキャンボタン１７０１を非表示にするとともに、図１３（Ｂ）に示すような初期画面表示に更新する。
その後、物体検知部４１０が物体静止を再検知すると、ステップＳ１４０４において物体静止検知通知を行い、再び前述した平面原稿スキャン処理やプレビュー画像表示といった処理が実行されることになる。
【００８０】
以上の処理により、スキャンボタン押下前に原稿を移動させ、再載置後に平面原稿スキャンを行う場合においても、高解像度のカメラ画像における平面原稿スキャン処理を中断できるため、次の平面原稿に対するスキャン処理をすぐに実行できる。
【００８１】
（第５実施形態）
第１〜第４実施形態においては、操作者１３０１が載置した平面原稿１３０４をスキャンし、効率よくプレビュー表示をするための仕組みを提供した。本実施形態では、平面原稿１３０４の一部分に対して処理を行う際の領域指定を行うための仕組みとプレビュー表示の仕組みを提供する。
図１９は、本実施形態におけるメイン制御部４０２のフローチャートを示している。実施形態１〜４と同じ処理については同じステップ番号を付与し、詳細な説明は省略する。
図２０（Ａ）〜（Ｆ）は、操作者１３０１が平面原稿１３０４中の特定領域に対して所定の処理をかける際の処理対象領域の指定操作の様子と、その表示画面の一例を示している。
【００８２】
図２０（Ａ）に示すように操作者１３０１が平面原稿１３０４の載置を終了すると、メイン制御部４０２は、ステップＳ１４０４において物体検知部４１０より物体静止イベントを受信する。そして、ステップＳ１４０６によりスキャン処理部４１１に平面原稿スキャン処理を指示し、カメラ撮像完了通知イベントを受信するまで待機する。
ステップＳ１５０１においてカメラ撮像完了通知を受信すると、メイン制御部４０２は、ステップＳ１９０１において、ユーザインタフェース部４０３に対して処理対象領域指定画面表示の指示を行う。
【００８３】
ユーザインタフェース部４０３は、図２０（Ｂ）に示すようにＯＣＲ処理を行う領域を指定するように促すメッセージ１３０２を表示する。ここでは図示はしていないが、ステップＳ１４０８で抽出された低解像度の平面原稿画像のプレビュー画像を表示し、プレビュー画像上を選択するようなＵＩとしても構わない。
操作者１３０１は図２０（Ｃ）に示すように、ＯＣＲ対象となる領域２００１を指定する。すると、ユーザインタフェース部４０３は、操作者１３０１が指定した処理対象領域の位置情報をメイン制御部４０２へ通知する。
【００８４】
ステップＳ１９０３において、ユーザインタフェース部４０３は、メイン制御部４０２より実行ボタン表示指示を受信すると、図２０（Ｄ）に示すように実行ボタン２００２と、実行ボタン押下を促すメッセージ１３０２を表示する。
図２０（Ｄ）に示すように操作者１３０１が実行ボタン２００２を押下すると、ジェスチャー認識部４０９がタッチ操作を検知し、ユーザインタフェース部４０３によって実行ボタンの押下を検知する。そして、ステップＳ１９０４において、メイン制御部４０２へ実行ボタン押下イベントを通知する。そして、図２０（Ｅ）に示すように、スキャン処理やＯＣＲ処理の実行中であるメッセージ１３０２を表示し、実行ボタン２００２を非表示にする。
【００８５】
ステップＳ１９０５において、メイン制御部４０２は、ステップＳ１９０２で受信した処理対象領域を、ステップＳ１４０８において低解像度のＲＧＢカメラ画像から得られた平面原稿画像上での座標位置に変換する。さらにＲＧＢカメラ画像上からカメラ画像上への座標変換を行うことで、カメラ画像上での処理対象領域が推定できる。なお、ここでの座標変換には、事前のキャリブレーションにより既知である変換パラメータを用いればよい。
ステップＳ１９０６では、ステップＳ１９０５で算出したカメラ画像上での処理対象領域の位置情報をスキャン処理部４１１へ通知する。
【００８６】
ステップＳ１９０７において、Ｓ１１０３によりカメラ画像から得られた平面原稿画像上の指定された処理対象領域を抽出する。そして抽出された処理対象領域をＯＣＲ処理部４１２によりＯＣＲ処理を行い、ステップＳ１１０４で平面原稿画像と併せて、処理対象領域とＯＣＲ結果を保存する。
ステップＳ１９０８において、ユーザインタフェース部４０３は、メイン制御部４０２より処理結果表示指示を受信すると、図２０（Ｆ）に示すように、ＯＣＲ処理が行われた領域２００３をハイライト表示し、ＯＣＲ処理結果２００４を表示する。
【００８７】
以上の処理により、低解像度のＲＧＢカメラから抽出された平面原稿画像を用いてＯＣＲ処理対象領域を指定し、指定された処理対象領域をカメラ画像上へフィードバックすることができる。これにより、高解像度のカメラ画像による平面原稿スキャン結果を待たずに処理対象領域の指定ができ、かつ、操作者１３０１による範囲選択が行われている間に平面原稿スキャン処理を実行できることができる。したがって、操作者１３０１には対象領域指定後すぐにＯＣＲ結果を提示できることになり、応答性の高いＵＩを提供することができるようになる。
なお、ここでは処理対象領域に対してＯＣＲ処理を実行する場合を例に説明したが、処理対象領域に対して行う処理はこれに限るものではない。例えば、指定した対象領域に対して、トリミング処理して部分スキャンしたり、マスキング処理により所定の色で塗りつぶしたりするなどを行っても構わない。
【００８８】
（第６実施形態）
第５実施形態では、低解像度のスキャン結果を利用して処理対象領域の指定を行う仕組みを提供した。しかしながら、低解像度画像上での処理対象領域を高解像度画像上へ座標変換を行うだけでは、低解像度画像上での範囲指定の精度が低いことや、座標変換時の投影誤差などの影響により、実際の処理対象領域とはずれてしまうことがある。本実施形態では、高解像度画像上において処理対象領域を補正する仕組みを提供する。
図２１を用いて、本実施系における処理対象領域補正処理について説明する。
【００８９】
図２１（Ａ）は、図１９のステップＳ１９０２において操作者１３０１によって指定された処理対象領域を、ステップＳ１９０５において低解像度の平面原稿画像２１０１上（第１の補正画像上）へ変換した様子を示している。図２１（Ｂ）は、さらに、高解像度の平面原稿画像２１０３上（第２の補正画像上）へ変換した様子を示している。このように、低解像度の平面原稿画像２１０１上で処理対象領域２１０２を正しく選択したつもりでも、高解像度の平面原稿画像２１０３では処理対象領域２１０４が正しい位置に選択されていないという状態が起こりうる。
そこで、ステップＳ１１０３において、抽出された平面原稿画像に対する領域分割処理を行い、その結果を基にして処理対象領域を補正する。
【００９０】
図２１（Ｃ）は、高解像度の平面原稿画像２１０３に対して領域分割処理を行った結果を示している。平面原稿画像２１０３は、図表領域２１１１および２１３１、文章２１２１〜２１２３で構成される段落２１２４、文章２１４１〜２１４５で構成される段落２１４６により構成される。そこで、この領域分割で得られた領域を十分にカバーする範囲を処理対象領域として再設定することで、補正された処理対象領域を生成する。
図２１（Ｃ）に示すように、文章２１４１〜２１４３の少なくとも一部分が処理対象領域２１０４中に含まれている。文章２１４１および文章２１４２は行頭から選択されていて、行末の一部が処理対象領域外に存在する。一方で文章２１４３は、文頭は処理対象領域外であるが、行末に向かうにつれ、処理対象領域に含まれていくことが分かる。ここで、行頭から選択されている連続した文章については、行末まで処理対象領域として修正する。一方で、連続した文章において行頭が選択されていない文章においては処理対象領域外として設定する。あるいは文章中の文字列が処理対象領域として含まれる割合が閾値以上であるかなどを考慮し、処理対象領域として含めるか否かを決定しても構わない。
このような補正処理を行うことで、図２１（Ｄ）に示すように補正された処理対象領域２１０５を得ることができる。なお、文章に関してはさらに形態素解析を行い、文／文節／単語といった構造まで分析し、補正処理に利用してもよい。
【００９１】
以上の処理により、低解像度の平面原稿画像上で指定する処理対象領域の範囲指定精度が十分高くなくても、高解像度の平面原稿画像上で処理対象領域を補正することで適切な範囲を処理対象領域として設定することが可能となる。
なお、ここでは領域分割の結果を用いた補正方法についての一例で説明を行ったが、補正の方法はこれに限るものではない。
【００９２】
（その他の実施形態）
第１〜第６実施形態では、書画台２０４上に平面原稿が載置されると、平面原稿スキャン処理が実行されプレビュー表示を行う処理について説明したが、スキャン対象は平面原稿に限るものではなく、書籍や立体物などでも構わない。すなわち、スキャン処理部４１１において、対象物に合わせて平面原稿スキャン処理／書籍スキャン処理／立体物スキャン処理を実行し、同様のプレビュー表示制御を実施すればよい。
【００９３】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００９４】
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【符号の説明】
【００９５】
１０１    カメラスキャナ
２０１    コントローラ部
２０２    カメラ部
２０４    書画台
２０７    プロジェクタ
２０８    距離画像センサ部
【図１】
0006624861.tif 000005
【図２】
0006624861.tif 000006
【図３】
0006624861.tif 000007
【図４】
0006624861.tif 000008
【図５】
0006624861.tif 000009
【図６】
0006624861.tif 000010
【図７】
0006624861.tif 000011
【図８】
0006624861.tif 000012
【図９】
0006624861.tif 000013
【図１０】
0006624861.tif 000014
【図１１】
0006624861.tif 000015
【図１２】
0006624861.tif 000016
【図１３】
0006624861.tif 000017
【図１４】
0006624861.tif 000018
【図１５】
0006624861.tif 000019
【図１６】
0006624861.tif 000020
【図１７】
0006624861.tif 000021
【図１８】
0006624861.tif 000022
【図１９】
0006624861.tif 000023
【図２０】
0006624861.tif 000024
【図２１】
0006624861.tif 000025
【図２２】
0006624861.tif 000026