(57)【要約】【課題】補正用画像が適正な画像か否かの判定を行うことで常に高品位な電子データの生成が可能な画像処理装置を提供すること。【解決手段】補正処理を行うことができる画像処理装置であって、画像処理装置は、書画台に載置された物体の第１の画像を撮影する撮像手段と、撮像手段が予め撮影した画像であって、第１の画像の補正処理に使用する第２の画像が、補正処理に使用できるか否かを判定する判定手段と、を備えることを特徴とする。【選択図】図１１
2016025383.tif 000002
【特許請求の範囲】
【請求項１】
補正処理を行うことができる画像処理装置であって、
前記画像処理装置は、書画台に載置された物体の第１の画像を撮影する撮像手段と、
前記撮像手段が予め撮影した画像であって、前記第１の画像の補正処理に使用する第２の画像が、前記補正処理に使用できるか否かを判定する判定手段と、を備えることを特徴とする画像処理装置。
【請求項２】
前記第２の画像は動画像であり、前記判定手段は、前記動画像のフレーム間差分が所定の値未満である場合は、前記第２の画像を前記補正処理に使用できると判定し、
前記所定値以上である場合は、前記第２の画像を前記補正処理に使用できないと判定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２の画像は静止画像であって、前記第２の画像を複数回撮影すると設定されている場合に、前記判定手段は、前記複数回撮影された画像のうち各画像の差分が所定の値未満である画像がある場合は、当該画像のうちの１つを前記補正処理に使用できると判定し、
前記所定の値未満のものがない場合は、前記第２の画像は前記補正処理に使用できないと判定することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記第２の画像は静止画像であって、前記第２の画像を１度撮影すると設定されている場合は、前記判定手段は、前記第２の画像にエッジ部が含まれない場合、または前記エッジ部が含まれるが、前記エッジ部に色成分が含まれない場合は、前記第２の画像を前記補正処理に使用できると判定し、
前記第２の画像に前記エッジ部が含まれ、前記エッジ部に色成分が含まれる場合は、前記第２の画像を前記補正処理に使用できないと判定することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記判定手段が前記第２の画像を前記補正処理に使用できると判定した場合に、前記第１の画像を前記第２の画像で補正する補正手段を備えることを特徴とする請求項１ないし４のいずれか１項に記載の画像処理装置。
【請求項６】
前記書画台の上に前記第２の画像の撮影を指示するためのＵＩを投射する投射手段を備え、
前記判定手段が、所定の回数以上連続して前記第２の画像を前記補正処理に使用できないと判定した場合に、前記投射手段は、前記ＵＩの投射位置を変更することを特徴とする請求項１ないし５のいずれか１項に記載の画像処理装置。
【請求項７】
前記判定手段が、所定の回数以上連続して前記第２の画像を前記補正処理に使用できないと判定した場合に、前記投射手段は、前記ＵＩの投射位置を投射してから前記撮像手段により前記第２の画像を撮影するまでの時間を変更することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記撮像手段により撮影される画像と、初めに撮影した初期画像との差分が所定の値以上であり、前記画像と前記画像の直前に撮影された画像との差分が所定の値以下となる回数が所定の回数以上あった場合に、環境変化があったと判断する環境変化検知手段を備え、
前記撮像手段は、前記第２の画像を撮影し、
前記判定手段は、当該第２の画像が前記補正処理に使用できるか否かを判定する、
ことを特徴とする請求項１ないし７のいずれか１項に記載の画像処理装置。
【請求項９】
補正処理を行うことができる画像処理装置の制御方法であって、
書画台に載置された物体の第１の画像を撮像手段を用いて撮影する撮像工程と、
前記撮像手段が予め撮影した画像であって、前記第１の画像の補正処理に使用する第２の画像が、前記補正処理に使用できるか否かを判定する判定工程と、を備えることを特徴する制御方法。
【請求項１０】
請求項９に記載の制御方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、制御方法およびプログラムに関する。
【背景技術】
【０００２】
文書をスキャンして電子データとして保存する装置として、撮像にラインセンサを用いるラインスキャナと、２次元の撮像センサを用いるカメラスキャナとが提案されている。書画台の上方にカメラを配置し、原稿を上向きに書画台に置いて撮像するカメラスキャナは、カメラと書画台の間がラインスキャナのように閉空間ではないため、カメラスキャナの設置位置によって、外光や照明光の影響が様々である。従って、カメラスキャナでは、撮影原稿から得られる電子データの品位をよくするためにはカメラスキャナの設置環境に応じてキャリブレーションを行い、そのキャリブレーション処理から得られた補正用パラメータを用いて撮影原稿に補正処理を行う必要がある。
【０００３】
特許文献１は、キャリブレーション装置底部に固定支持されているＬＥＤの明るさを調整することで、周囲の明るさに合わせた最適な明るさでキャリブレーションに用いるパターン画像を撮影することができるキャリブレーション装置を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２４８０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１のキャリブレーション装置では、キャリブレーションに用いる補正用画像の撮影時に、人影や移動物体等の一時的なノイズが入ってしまうことを想定していない。ノイズが入った画像を元にＬＥＤの明るさを調整した場合に、適切なキャリブレーションが行われないといった課題がある。
【０００６】
本発明は、このような状況を鑑みてなされたものであり、例えば、補正用画像が適正な画像か否かの判定を行うことで常に高品位な電子データの生成が可能な画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明は、補正処理を行うことができる画像処理装置であって、画像処理装置は、書画台に載置された物体の第１の画像を撮影する撮像手段と、撮像手段が予め撮影した画像であって、第１の画像の補正処理に使用する第２の画像が、補正処理に使用できるか否かを判定する判定手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、例えば、補正用画像が適正な画像か否かの判定を行うことで常に高品位な電子データの生成が可能な画像処理装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態に係るカメラスキャナのネットワーク構成を示す図である。
【図２】一実施形態に係るカメラスキャナの構成例を示す図である。
【図３】一実施形態のコントローラ部のハードウェア構成例を示す図である。
【図４】一実施形態のカメラスキャナ制御用プログラムの機能構成を示す図である。
【図５】図４の機能構成の各モジュールの関係を示すシーケンス図である。
【図６】距離画像取得部が実行する処理を説明する図である。
【図７】ジェスチャー認識部の処理を説明するフローチャートである。
【図８】ジェスチャー認識部が実行する指先検出処理について説明した図である。
【図９】キャリブレーション制御部の処理を説明するフローチャートである。
【図１０】平面原稿画像撮影部の処理を説明するフローチャートである。
【図１１】撮影画像判定処理部の処理を説明するフローチャートである。
【図１２】メイン制御部実行する処理を説明するフローチャートである。
【図１３】第１実施形態のユーザインターフェイス部が投射する画面である。
【図１４】第２実施形態のユーザインターフェイス部が投射する画面である。
【発明を実施するための形態】
【００１０】
（第１実施形態）
図１は、一実施形態に係るカメラスキャナ（画像処理装置）１０１が含まれるネットワーク構成を示す図である。図１に示すように、カメラスキャナ１０１はイーサネット（登録商標）等のネットワーク１０４にてホストコンピュータ１０２およびプリンタ１０３に接続されている。図１のネットワーク構成において、ホストコンピュータ１０２からの指示により、カメラスキャナ１０１から画像を読み取るスキャン機能や、スキャンデータをプリンタ１０３により出力するプリント機能の実行が可能である。また、ホストコンピュータ１０２を介さず、カメラスキャナ１０１への直接の指示により、スキャン機能、プリント機能の実行も可能である。
【００１１】
＜カメラスキャナの構成＞
図２は、一実施形態に係るカメラスキャナ１０１の構成例を示す図である。
図２（Ａ）に示すように、カメラスキャナ１０１は、コントローラ部２０１、カメラ部２０２、腕部２０３、短焦点プロジェクタ２０７、距離画像センサ２０８を含む。カメラスキャナ１０１の本体であるコントローラ部２０１と、撮像を行うためのカメラ部２０２、短焦点プロジェクタ２０７および距離画像センサ２０８は、腕部２０３により連結されている。腕部２０３は関節を用いて曲げ伸ばしが可能である。
図２（Ａ）には、カメラスキャナ１０１が設置されている書画台２０４も示している。カメラ部２０２および距離画像センサ２０８のレンズは書画台２０４方向に向けられており、破線で囲まれた読み取り領域２０５内の画像を読み取り可能である。図２の例では、原稿２０６は読み取り領域２０５内に置かれているので、カメラスキャナ１０１に読み取り可能となっている。
カメラ部２０２は単一解像度で画像を撮像するものとしてもよいが、高解像度画像撮像と低解像度画像撮像が可能なものとすることが好ましい。
なお、図２に示されていないが、カメラスキャナ１０１は、ＬＣＤタッチパネル３３０およびスピーカ３４０をさらに含むこともできる。
【００１２】
図２（Ｂ）は、カメラスキャナ１０１における座標系について表している。カメラスキャナ１０１では各ハードウェアデバイスに対して、カメラ座標系、距離画像座標系、プロジェクタ座標系という座標系が定義される。これらはカメラ部２０２および距離画像センサ２０８のＲＧＢカメラ３６３が撮像する画像平面、またはプロジェクタ２０７が投射する画像平面をＸＹ平面とし、画像平面に直交した方向をＺ方向として定義したものである。さらに、これらの独立した座標系の３次元データを統一的に扱えるようにするために、書画台２０４を含む平面をＸＹ平面とし、このＸＹ平面から上方に垂直な向きをＺ軸とする直交座標系を定義する。
【００１３】
座標系を変換する場合の例として、図２（Ｃ）に直交座標系と、カメラ部２０２を中心としたカメラ座標系を用いて表現された空間と、カメラ部２０２が撮像する画像平面との関係を示す。直交座標系における３次元点Ｐ［Ｘ，Ｙ，Ｚ］は、（１）式によって、カメラ座標系における３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］へ変換できる。
【数１】
2016025383.tif 000003
ここで、Ｒｃおよびｔｃは、直交座標系に対するカメラの姿勢（回転）と位置（並進）によって求まる外部パラメータによって構成され、Ｒｃを３×３の回転行列、ｔｃを並進ベクトルと呼ぶ。逆に、カメラ座標系で定義された３次元点は（２）式によって、直交座標系へ変換することができる。
【数２】
2016025383.tif 000004
さらに、カメラ部２０２で撮影される２次元のカメラ画像平面は、カメラ部２０２によって３次元空間中の３次元情報が２次元情報に変換されたものである。すなわち、カメラ座標系上での３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］を、（３）式によってカメラ画像平面での２次元座標ｐｃ［ｘｐ，ｙｐ］に透視投影変換することによって変換することが出来る。
【数３】
2016025383.tif 000005
ここで、Ａは、カメラの内部パラメータと呼ばれ、焦点距離と画像中心などで表現される３×３の行列である。
以上のように、（１）式と（３）式を用いることで、直交座標系で表された３次元点群を、カメラ座標系での３次元点群座標やカメラ画像平面に変換することが出来る。なお、各ハードウェアデバイスの内部パラメータおよび直交座標系に対する位置姿勢（外部パラメータ）は、公知のキャリブレーション手法によりあらかじめキャリブレーションされているものとする。以後、特に断りがなく３次元点群と表記した場合は、直交座標系における３次元データを表しているものとする。
【００１４】
＜カメラスキャナのコントローラのハードウェア構成＞
図３は、カメラスキャナ１０１の本体であるコントローラ部２０１のハードウェア構成例を示す図である。図３に示すように、コントローラ部２０１は、システムバス３０１に接続されたＣＰＵ３０２、ＲＡＭ３０３、ＲＯＭ３０４、ＨＤＤ３０５、ネットワークＩ／Ｆ３０６、画像処理プロセッサ３０７、カメラＩ／Ｆ３０８、を含む。
【００１５】
ＣＰＵ３０２はコントローラ部２０１全体の動作を制御する中央演算装置である。ＲＡＭ３０３は揮発性メモリである。ＲＯＭ３０４は不揮発性メモリであり、ＣＰＵ３０２の起動用プログラムが格納されている。ＨＤＤ３０５はＲＡＭ３０３と比較して大容量なハードディスクドライブ（ＨＤＤ）である。ＨＤＤ３０５にはコントローラ部２０１の実行する、カメラスキャナ１０１の制御用プログラムが格納されている。ＣＰＵ３０２は電源ＯＮ等の起動時、ＲＯＭ３０４に格納されている起動用プログラムを実行する。この起動用プログラムは、ＨＤＤ３０５に格納されている制御用プログラムを読み出し、ＲＡＭ３０３上に展開するためのものである。ＣＰＵ３０２は起動用プログラムを実行すると、続けてＲＡＭ３０３上に展開した制御用プログラムを実行し、制御を行う。また、ＣＰＵ３０２は制御用プログラムによる動作に用いるデータもＲＡＭ３０３上に格納して読み書きを行う。ＨＤＤ３０５上にはさらに、制御用プログラムによる動作に必要な各種設定や、また、カメラ入力によって生成した画像データを格納することができ、ＣＰＵ３０２によって読み書きされる。ＣＰＵ３０２はネットワークＩ／Ｆ３０６を介してネットワーク１０４上の他の機器との通信を行う。
【００１６】
画像処理プロセッサ３０７はＲＡＭ３０３に格納された画像データを読み出して処理し、またＲＡＭ３０３へ書き戻す。なお、画像処理プロセッサ３０７が実行する画像処理は、回転、変倍、色変換等である。
【００１７】
カメラＩ／Ｆ３０８はカメラ部２０２および距離画像センサ２０８と接続され、ＣＰＵ３０２からの指示に応じてカメラ部２０２から画像データを、距離画像センサ２０８から距離画像データを取得してＲＡＭ３０３へ書き込む。また、ＣＰＵ３０２からの制御コマンドをカメラ部２０２および距離画像センサ２０８へ送信し、カメラ部２０２および距離画像センサ２０８の設定を行う。
【００１８】
また、コントローラ部２０１は、ディスプレイコントローラ３０９、シリアルＩ／Ｆ３１０、オーディオコントローラ３１１およびＵＳＢコントローラ３１２のうち少なくとも１つをさらに含むことができる。ディスプレイコントローラ３０９はＣＰＵ３０２の指示に応じてディスプレイへの画像データの表示を制御する。ここでは、ディスプレイコントローラ３０９は短焦点プロジェクタ２０７およびＬＣＤタッチパネル３３０に接続されている。シリアルＩ／Ｆ３１０はシリアル信号の入出力を行う。ここでは、シリアルＩ／Ｆ３１０はＬＣＤタッチパネル３３０に接続され、ＣＰＵ３０２はＬＣＤタッチパネル３３０が押下されたときに、シリアルＩ／Ｆ３１０を介して押下された座標を取得する。オーディオコントローラ３１１はスピーカ３４０に接続され、ＣＰＵ３０２の指示に応じて音声データをアナログ音声信号に変換し、スピーカ３４０を通じて音声を出力する。ＵＳＢコントローラ３１２はＣＰＵ３０２の指示に応じて外付けのＵＳＢデバイスの制御を行う。ここでは、ＵＳＢコントローラ３１２はＵＳＢメモリやＳＤカードなどの外部メモリ３５０に接続され、外部メモリ３５０へのデータの読み書きを行う。
【００１９】
＜カメラスキャナの制御用プログラムの機能構成＞
図４は、ＣＰＵ３０２が実行するカメラスキャナ１０１の制御用プログラムの機能構成４０１を示す図である。また、図５は、機能構成４０１の各モジュールの関係をシーケンス図として示したものである。カメラスキャナ１０１の制御用プログラムは前述のようにＨＤＤ３０５に格納され、ＣＰＵ３０２が起動時にＲＡＭ３０３上に展開され実行される。メイン制御部４０２は制御の中心であり、機能構成４０１内の他の各モジュールを図５に示すように制御する。
【００２０】
画像取得部４１６は画像入力処理を行うモジュールであり、カメラ画像取得部４０７、距離画像取得部４０８から構成される。カメラ画像取得部４０７はカメラＩ／Ｆ３０８を介してカメラ部２０２が出力する画像データを取得し、ＲＡＭ３０３へ格納する。距離画像取得部４０８はカメラＩ／Ｆ３０８を介して距離画像センサ２０８が出力する距離画像データを取得し、ＲＡＭ３０３へ格納する。距離画像取得部４０８の処理の詳細は図６を用いて後述する。
【００２１】
認識処理部４１７はカメラ画像取得部４０７、距離画像取得部４０８が取得する画像データから書画台２０４上の物体の動きを検知して認識するモジュールであり、ジェスチャー認識部４０９から構成される。ジェスチャー認識部４０９は、画像取得部４１６から書画台２０４上の画像を取得し続け、タッチなどのジェスチャーを検知するとメイン制御部４０２へ通知する。ジェスチャー認識部４０９の処理の詳細は図７、図８を用いてそれぞれ後述する。
【００２２】
スキャン処理部４１８は実際に対象物のスキャンを行うモジュールであり、平面原稿画像撮影部４１１、キャリブレーション制御部４１２、撮影画像判定部４１３から構成される。平面原稿画像撮影部４１１はキャリブレーション制御部４１２からの情報を元に平面原稿に適した処理を実行し、それに応じた形式のデータを出力する。キャリブレーション制御部４１２は平面原稿画像撮影部４１１で行う画像補正処理のためのキャリブレーション処理を行うタイミングを制御し、そのタイミングを平面原稿画像撮影部４１１に通知する。撮影画像判定部４１３は平面原稿画像撮影部４１１で撮影したキャリブレーション処理用の画像がキャリブレーション処理に適しているかどうかの判断を行う。これらのモジュールの処理の詳細は図１０、図１１を用いてそれぞれ後述する。
【００２３】
ユーザインターフェイス部４０３は、ＧＵＩ部品生成表示部４１４と投射領域検出部４１５から構成される。ＧＵＩ部品生成表示部４１４は、メイン制御部４０２からの要求を受け、メッセージやボタン等のＧＵＩ部品を生成する。そして、表示部４０６へ生成したＧＵＩ部品の表示を要求する。なお、書画台２０４上のＧＵＩ部品の表示場所は、投射領域検出部４１５により検出される。表示部４０６はディスプレイコントローラ３０９を介して、短焦点プロジェクタ２０７もしくはＬＣＤタッチパネル３３０へ要求されたＧＵＩ部品の表示を行う。プロジェクタ２０７は書画台２０４に向けて設置されているため、書画台２０４上にＧＵＩ部品を投射することが可能となっている。また、ユーザインターフェイス部４０３は、ジェスチャー認識部４０９が認識したタッチ等のジェスチャー操作、あるいはシリアルＩ／Ｆ３１０を介したＬＣＤタッチパネル３３０からの入力操作、そしてさらにそれらの座標を受信する。そして、ユーザインターフェイス部４０３は描画中の操作画面の内容と操作座標を対応させて操作内容（押下されたボタン等）を判定する。この操作内容をメイン制御部４０２へ通知することにより、操作者の操作を受け付ける。
【００２４】
ネットワーク通信部４０４は、ネットワークＩ／Ｆ３０６を介して、ネットワーク１０４上の他の機器とＴＣＰ／ＩＰによる通信を行う。データ管理部４０５は、制御用プログラムの実行において生成した作業データなど様々なデータをＨＤＤ３０５上の所定の領域へ保存し、管理する。例えば平面原稿画像撮影部４１１が生成したスキャンデータなどである。
【００２５】
＜距離画像センサおよび距離画像取得部の説明＞
図３に距離画像センサ２０８の構成を示している。距離画像センサ２０８は赤外線によるパターン投射方式の距離画像センサである。赤外線パターン投射部３６１は対象物に、人の目には不可視である赤外線によって３次元測定パターンを投射する。赤外線カメラ３６２は対象物に投射した３次元測定パターンを読みとるカメラである。ＲＧＢカメラ３６３は人の目に見える可視光をＲＧＢ信号で撮影するカメラである。
【００２６】
図６（Ａ）は、距離画像取得部４０８の処理を説明するフローチャートである。また、図６（Ｂ）〜（Ｄ）はパターン投射方式による距離画像の計測原理を説明する図である。距離画像取得部４０８が処理を開始すると、ステップＳ５０１では、図６（Ｂ）に示すように赤外線パターン投射部３６１を用いて赤外線による３次元形状測定パターン５２２を対象物５２１に投射する。ステップＳ５０２では、ＲＧＢカメラ３６３を用いて対象物を撮影したＲＧＢカメラ画像５２５および、赤外線カメラ３６２を用いてステップＳ５０１で投射した３次元形状測定パターン５２２を撮影した赤外線カメラ画像５２４を取得する。なお、赤外線カメラ３６２とＲＧＢカメラ３６３とでは設置位置が異なるため、図６（Ｄ）に示すようにそれぞれで撮影されるＲＧＢカメラ画像５２５および赤外線カメラ画像５２４の撮影領域が異なる。そこでステップＳ５０３では、赤外線カメラ３６２の座標系からＲＧＢカメラ３６３の座標系への座標系変換を用いて赤外線カメラ画像５２４をＲＧＢカメラ画像５２５の座標系に合わせる。なお、赤外線カメラ３６２とＲＧＢカメラ３６３の相対位置や、それぞれの内部パラメータは事前のキャリブレーション処理により既知であるとする。ステップＳ５０４では、図６（Ｃ）に示すように、３次元形状測定パターン５２２とステップＳ５０３で座標変換を行った赤外線カメラ画像５２４間での対応点を抽出する。例えば、赤外線カメラ画像５２４上の１点を３次元形状測定パターン５２２上から探索して、同一の点が検出された場合に対応付けを行う。あるいは、赤外線カメラ画像５２４の画素の周辺のパターンを３次元形状測定パターン５２２上から探索し、一番類似度が高い部分と対応付けてもよい。ステップＳ５０５では、赤外線パターン投射部３６１と赤外線カメラ３６２を結ぶ直線を基線５２３として三角測量の原理を用いて計算を行うことにより、赤外線カメラ３６２からの距離を算出する。ステップＳ５０４で対応付けが出来た画素については、赤外線カメラ３６２からの距離を算出して画素値として保存し、対応付けが出来なかった画素については、距離の計測が出来なかった部分として無効値を保存する。これをステップＳ５０３で座標変換を行った赤外線カメラ画像５２４の全画素に対して行うことで、各画素に距離値が入った距離画像を生成する。ステップＳ５０６では、距離画像の各画素にＲＧＢカメラ画像５２５のＲＧＢ値を保存することにより、１画素につきＲ、Ｇ、Ｂ、距離の４つの値を持つ距離画像を生成する。ここで取得した距離画像は距離画像センサ２０８のＲＧＢカメラ３６３で定義された距離画像センサ座標系が基準となっている。そこでステップＳ５０７では、図２（Ｂ）を用いて上述したように、距離画像センサ座標系として得られた距離データを直交座標系における３次元点群に変換する。（以後、特に指定がなく３次元点群と表記した場合は、直交座標系における３次元点群を示すものとする。）
なお、本実施形態では上述したように、距離画像センサ２０８として赤外線パターン投射方式を採用しているが、他の方式の距離画像センサを用いることも可能である。例えば、２つのＲＧＢカメラでステレオ立体視を行うステレオ方式や、レーザー光の飛行時間を検出することで距離を測定するＴＯＦ（Ｔｉｍｅ  ｏｆ  Ｆｌｉｇｈｔ）方式を用いても構わない。
【００２７】
＜ジェスチャー認識部の説明＞
図７は、ジェスチャー認識部４０９の処理を説明するフローチャートである。図７において、ジェスチャー認識部４０９が処理を開始すると、ステップＳ６０１では初期化処理を行う。初期化処理で、ジェスチャー認識部４０９は距離画像取得部４０８から距離画像を１フレーム取得する。ここで、ジェスチャー認識部の開始時は書画台２０４上に対象物が置かれていない状態であるため、初期状態として書画台２０４の平面の認識を行う。つまり、取得した距離画像から最も広い平面を抽出し、その位置と法線ベクトル（以降、書画台２０４の平面パラメータと呼ぶ）を算出し、ＲＡＭ３０３に保存する。続いてステップＳ６０２では、ステップＳ６２１〜６２２に示す、書画台２０４上に存在する物体の３次元点群を取得する。その際、ステップＳ６２１では距離画像取得部４０８から距離画像と３次元点群を１フレーム取得する。ステップＳ６２２では書画台２０４の平面パラメータを用いて、取得した３次元点群から書画台２０４を含む平面にある点群を除去する。
【００２８】
ステップＳ６０３では、ステップＳ６３１〜Ｓ６３４に示す、取得した３次元点群からユーザの手の形状および指先を検出する処理を行う。ここで、指先検出処理の方法について、模式的に表した図８を用いて説明する。ステップＳ６３１では、ステップＳ６０２で取得した３次元点群から、書画台２０４を含む平面から所定の高さ以上にある、肌色の３次元点群を抽出することで、手の３次元点群を得る。図８（Ａ）の７０１は抽出した手の３次元点群を表している。ステップＳ６３２では、抽出した手の３次元点群を、書画台２０４の平面に投射した２次元画像を生成して、その手の外形を検出する。図８（Ａ）の７０２は、書画台２０４の平面に投射した３次元点群を表している。投射は、点群の各座標を、書画台２０４の平面パラメータを用いて投射すればよい。また、図８（Ｂ）に示すように、投射した３次元点群から、ｘｙ座標の値だけを取り出せば、ｚ軸方向から見た２次元画像７０３として扱うことができる。この時、手の３次元点群の各点が、書画台２０４の平面に投射した２次元画像の各座標のどれに対応するかを、記憶しておくものとする。ステップＳ６３３では検出した手の外形上の各点について、その点での外形の曲率を算出し、算出した曲率が所定値より小さい点を指先として検出する。図８（Ｃ）は、外形の曲率から指先を検出する方法を模式的に表したものである。７０４は、書画台２０４の平面に投射された２次元画像７０３の外形を表す点の一部を表している。ここで、７０４のような、外形を表す点のうち、隣り合う５個の点を含むように円を描くことを考える。円７０５、７０７が、その例である。この円を、全ての外形の点に対して順に描き、その直径（例えば７０６、７０８）が所定の値より小さい（曲率が小さい）ことを以て指先とする。この例では隣り合う５個の点としたが、その数は限定されるものではない。また、ここでは曲率を用いたが、外形に対して楕円フィッティングを行うことで指先を検出してもよい。ステップＳ６３４では、検出した指先の個数および各指先の座標を算出する。この時、前述したように、書画台２０４に投射した２次元画像の各点と、手の３次元点群の各点との対応関係を記憶しているため、各指先の３次元座標を得ることができる。今回は、３次元点群から２次元画像に投射した画像から指先を検出する方法を説明したが、指先検出の対象とする画像は、これに限定されるものではない。例えば、距離画像の背景差分や、ＲＧＢ画像の肌色領域から手の領域を抽出し、上に述べたのと同様の方法（外形の曲率計算等）で、手領域のうちの指先を検出してもよい。この場合、検出した指先の座標はＲＧＢ画像や距離画像といった２次元画像上の座標であるため、その座標における距離画像の距離情報を用いて、直交座標系の３次元座標に変換する必要がある。この時、指先点となる外形上の点ではなく、指先を検出するときに用いた曲率円の中心を指先点としてもよい。
【００２９】
ステップＳ６０４では、ステップＳ６４１〜Ｓ６４６に示す、検出した手の形状および指先からのジェスチャー判定処理を行う。ステップＳ６４１では、ステップＳ６０３で検出した指先が１つかどうかを判定する。指先が１つでなければステップＳ６４６へ進み、ジェスチャー無しと判定する。ステップＳ６４１において検出した指先が１つであればステップＳ６４２へ進み、検出した指先と書画台２０４を含む平面との距離を算出する。ステップＳ６４３ではステップＳ６４２で算出した距離が微小な所定値以下であるかどうかを判定し、ステップＳ６４３がＹＥＳであればステップＳ６４４へ進んで指先が書画台２０４へタッチしたとする、タッチジェスチャーありと判定する。ステップＳ６４３においてステップＳ６４２で算出した距離が所定値以下で無ければステップＳ６４５へ進み、指先が移動したジェスチャー（タッチはしていないが指先が書画台２０４上に存在するジェスチャー）と判定する。ステップＳ６０５では判定したジェスチャーをメイン制御部４０２へ通知し、ステップＳ６０２へ戻ってジェスチャー認識処理を繰り返す。
【００３０】
＜キャリブレーション制御部の処理＞
図９は、キャリブレーション制御部４１２の処理を説明するフローチャートである。キャリブレーション制御部４１２が処理を開始すると、図９（Ａ）のステップＳ８０１では、ステップＳ８１１〜Ｓ８１３に示す初期化処理を行う。ステップＳ８１１では、カメラ画像取得部４０７からカメラ画像を、距離画像取得部４０８から距離画像をそれぞれ１フレーム取得する。ステップＳ８１２では、取得したカメラ画像を前フレームカメラ画像として保存する。ステップＳ８１３では、取得したカメラ画像および距離画像を書画台背景カメラ画像（初期画像）および書画台背景距離画像としてそれぞれ保存する。（以降、「書画台背景カメラ画像」および「書画台背景距離画像」と記載した場合は、ここで取得したカメラ画像および距離画像のことを指す。）ステップＳ８０２では、書画台２０４への外光の影響の変化を監視する環境変化検知処理を行う。これは書画台２０４上での外光や照明の変化、例えば照度の変化、を監視し、その状況に応じてカメラ画像取得部４０７から取得したカメラ画像に対して補正処理を行い、外光や照明の影響を軽減した電子データを生成するためである。処理の詳細は図９（Ｂ）を用いて後述する。ステップＳ８０３では、これらの制御終了の指示があるかどうかの判断をする。ここでの制御終了の指示とは例えば、ＬＣＤタッチパネル３３０もしくはジェスチャー認識部４０９を介してユーザがシステムの終了を指示する場合である。ステップＳ８０３で制御終了の指示があった場合はキャリブレーション制御部の処理を終了し、指示が無い場合はＳ８０１に戻る。
【００３１】
図９（Ｂ）は、ステップＳ８０２の環境変化検知処理を説明するフローチャートである。環境変化検知処理を開始すると、ステップＳ８２１ではカメラ画像取得部４０７からカメラ画像を１フレーム取得する。ステップＳ８２２では取得したカメラ画像と書画台背景カメラ画像（初期画像）との差分値を算出する。ここでの差分値とは、例えば、画像内の同一座標の画素値の差分を合計し、その絶対値を算出した値とする。ステップＳ８２３では算出した差分値があらかじめ決めておいた所定値以上かどうかを判定する。算出した差分値が所定値未満であれば書画台２０４の環境変化が無いと判断し、ステップＳ８２８へ進んで現フレームのカメラ画像を前フレームカメラ画像として保存してからステップＳ８２１へ戻って処理を続ける。ステップＳ８２３において差分値が所定値以上であればステップＳ８２４へ進み、ステップＳ８２１で取得したカメラ画像と前フレームカメラ画像（直前に撮影された画像）との差分値を、ステップＳ８２２と同様に算出する。ステップＳ８２５では算出した差分値があらかじめ決めておいた所定値以下であるかどうかを判定する。ステップＳ８２５において算出した差分値が所定値よりも大きければ書画台２０４上の変化は一時的なノイズであったと判断する。そして、ステップＳ８２８へ進んで現フレームのカメラ画像を前フレームカメラ画像として保存してから、ステップＳ８２１へ戻り処理を続ける。ステップＳ８２５において算出した差分値が所定値以下であればステップＳ８２６へ進む。ステップＳ８２６では、ステップＳ８２５が連続してＹＥＳとなった回数から、差分値が所定値以下となる、つまり書画台２０４上の状態が変化してから静止した状態が、あらかじめ決めておいたフレーム数続いたか否かを判定する。ステップＳ８２６において書画台２０４上の状態が変化してから静止した状態があらかじめ決めておいたフレーム数続いていないと判定したら、書画台２０４上の変化は一時的なノイズであったと判断し、ステップＳ８２８へ進む。ステップＳ８２８では現フレームのカメラ画像を前フレームカメラ画像として保存し、ステップＳ８２１へ戻って処理を続ける。ステップＳ８２６において書画台２０４上の状態が変化してから静止した状態があらかじめ決めておいたフレーム数続いたと判定したら、ステップＳ８２７へ進んで環境が変化したと判断する。そして、キャリブレーションタイミングをメイン制御部４０２へ通知し環境変化検知処理を終了する。この通知が行われると図１０（Ａ）のキャリブレーション処理が開始される。
【００３２】
＜平面原稿画像撮影部の説明＞
図１０は、平面原稿画像撮影部４１１が実行する処理を説明するフローチャートである。図１０（Ａ）は、図９（Ｂ）のステップＳ８２７においてキャリブレーションタイミングが通知された際のキャリブレーション処理フローである。平面原稿画像撮影部４１１はキャリブレーションタイミングが通知されると、ステップＳ９０１においてカメラ画像（第２の画像）の取得を行う。次にステップＳ９０２において、撮影画像判定部４１３（判定手段）は、Ｓ９０１で取得した画像が補正用画像として使用できるか否かの判定を行う撮影画像判定処理を行う。この撮影画像判定処理の詳細については図１１を用いて後述する。ステップＳ９０２の処理が終了すると、ステップＳ９０３において判定結果を参照し、撮影画像判定処理の判定がＮ．Ｇ．であった場合は、予め設定されている一定期間の後にＳ９０１に戻り、再度カメラ画像を取得する。ステップＳ９０３において判定がＯ．Ｋ．であった場合はステップＳ９０４においてＳ９０１で取得した画像から補正処理を行うための補正パラメータの算出を行う。この補正処理とは例えばホワイトバランス補正が挙げられる。算出された補正パラメータと、取得された画像とはステップＳ９０５において適切なフォーマットに変換もしくは圧縮されてＨＤＤ３０５もしくはＲＡＭ３０３に保存される。
【００３３】
図１０（Ｂ）は、平面原稿画像撮影部４１１におけるスキャン処理のフローである。後述する図１２のメイン制御部の制御フロー内のステップＳ１５３２においてスキャン処理の実行が指示されると、平面原稿画像撮影部４１１はスキャン処理を開始する。ステップＳ９１１においてカメラ画像（第１の画像）を取得すると、ステップＳ９１２においてステップＳ９０４で算出した補正パラメータの取得を行う。次にステップＳ９１３において、取得した補正パラメータを使用してＳ９１１で取得したカメラ画像に対して画像補正処理を行う。補正処理を施された電子データはステップＳ９１４において適切なフォーマットに変換または圧縮されてＨＤＤ３０５もしくはＲＡＭ３０３に保存される。
【００３４】
＜撮影画像判定部の説明＞
図１１は、撮影画像判定部４１３における処理を説明するフローチャートである。撮影画像判定部４１３は、上述したように、ステップＳ９０１で撮影した画像が補正用画像として使用できるか否かの判定を行う。例えば、ホワイトバランス補正を行う場合においては、ステップＳ９０１で取得するカメラ画像内には書画台２０４のみが物体として写っている事が必須となる。ステップＳ９０１で取得されたカメラ画像に一時的に人の影、人や物が写ってしまうと、この補正用画像を用いて算出した補正パラメータで画像を補正したとしても、所望の補正画像が得られないからである。従って撮影画像判定部４１３では、補正用画像撮影のタイミングで上述したような一時的なノイズが撮影領域内に入っているか否かの判定を行う。以下に詳細に説明する。
【００３５】
ステップＳ１００１では、撮影画像判定部４１３の処理を撮像手段であるカメラ部２０２または距離画像センサ２０８からの動画情報（動画像）を用いて行うか、静止画情報（静止画像）を用いて行うかの判断を行う。この場合どちらの情報を用いて行うかは予め設定しておいても良いし、動的に切り替えても良いものとする。Ｓ１００１において動画情報を用いて処理を行うと設定されていた場合は、Ｓ１００２においてステップＳ８２１〜ステップＳ８２４までの処理と同様の差分値算出処理を補正用画像取得タイミングの前後一定の区間行う。この差分値算出処理はカメラ部２０２からの情報でも良いし距離画像センサ２０８からの情報で行っても良い。次にステップＳ１００３において、上述した一定区間内でフレーム間差分が一定値（所定値）以上あった場合は一時的なノイズが撮影領域内に入ったとしてＳ１００７において判定Ｎ．Ｇ．とする。一方、ステップＳ１００３において一定区間内でフレーム間差分が一定値以上無かった場合はＳ１００８において判定Ｏ．Ｋ．とする。
【００３６】
ステップＳ１００１において静止画情報を用いて処理を行うと設定されていた場合は、ステップＳ１００４において、静止画を複数回撮影する設定か、１度撮影するかの判断を行う。この設定も同様に予め設定されていても良いし動的に切り替える事も可能である。ステップＳ１００４において複数回撮影すると設定されていた場合は、ステップ１００９において少なくとも３回以上の静止画像を、カメラ部２０２または距離画像センサ２０８が取得する。ステップＳ１０１０では、この複数回撮影した静止画それぞれに差分値を算出し、差分値が所定値以下の同一画像があるかどうかを判断する。同一画像があると判断された場合にはステップＳ１００５にて同一である画像のうち１つを補正用画像として採用し、ステップＳ１００８へ移行し、判定結果Ｏ．Ｋ．とする。同一である画像が無い場合はステップＳ１００９に戻り、再度複数回撮影を繰り返す。
【００３７】
ステップＳ１００４において、複数回撮影でなく、１度のみ撮影すると設定されていた場合は、例えば撮影画像内に極端なエッジが存在するか否かの判断を行う。ここでは、従来技術であるエッジ抽出処理を行い、ステップＳ１００６において画像内のエッジ量（エッジ部）が一定値（所定の値）以上含まれるか否かの判断を行う。一定値以上含まれる場合はステップＳ１０１１に移行し、一定値以上含まれない場合はステップＳ１００８に移行し判定結果Ｏ．Ｋ．とする。ステップＳ１０１１では、抽出されたエッジ部に色成分が含まれるか否かの判断を行う。エッジ部に色成分が含まれない場合は、該当箇所は照明や静止物体の影による影響であると判断し、ステップＳ１００８に移行し判定結果Ｏ．Ｋ．とする。ステップＳ１０１１において、エッジ部に色成分が含まれる場合は書画台２０４上に何かしらの物体が一時的なノイズとして撮影されたと判断し、ステップＳ１００７に移行し、判定結果Ｎ．Ｇ．とする。
【００３８】
＜メイン制御部の説明＞
図１２は、メイン制御部４０２が実行するスキャンアプリケーションの処理について説明するフローチャートである。図１２においてメイン制御部４０２が処理を開始すると、ステップＳ１５１１ではユーザインターフェイス部４０３を介して、書画台２０４にプロジェクタ２０７によって図１３（Ａ）の画面を投射する。ステップＳ１５１１の処理を終了すると、メイン制御部４０２は続いてステップＳ１５０２のスキャン実行処理を行う。ステップＳ１５０２のスキャン実行処理を開始すると、ステップＳ１５３１では、図１３（Ｂ）のスキャン開始画面を、ユーザインターフェイス部４０３を介して書画台２０４に投射する。図１３（Ｂ）において、対象物１２１１がユーザによって載置されたスキャン対象物体である。スキャン開始ボタン１２０３は原稿の撮影指示を受け付けるボタンである。ユーザインターフェイス部４０３は、前述したようにジェスチャー認識部４０９から通知されるタッチジェスチャーの座標とこれらのボタンを表示している座標から、ボタンがユーザによって押下されたことを検知する。（以降、ユーザインターフェイス部による検知の説明を省略して「ボタンへのタッチを検知する」と記載する。）ステップＳ１５３２では、スキャン開始ボタン１２０３へのタッチを検知したか否かを判断する。ステップＳ１５３２でスキャン開始ボタン１２０３へのタッチを検知したらステップＳ１５３４へ進んで平面原稿画像撮影部４１１のスキャン処理を実行する。また、図１３（Ａ）のキャリブレーションボタン１２０２（ａ）はキャリブレーションの実行指示を受け付けるボタンである。ステップ１５３２のスキャン開始ボタンまたは、ステップＳ１５３３のキャリブレーションボタン１２０２（ａ）へのタッチを検知するまでメイン制御部４０２は、ユーザからの操作を待つ。ステップＳ１５３３でキャリブレーションボタン１２０２（ａ）へのタッチを検知したらステップＳ１５３５へ進んで図１０（Ａ）のキャリブレーション処理を開始する。
この処理が終了すると、再びＳ１５３２に戻る。図１３（Ｃ）のスキャン終了画面では、スキャンした原稿を除去する旨をユーザに通知するメッセージ１２０５と、メイン制御部への処理終了指示を受け付ける終了ボタン１２０４を表示部４０６が投射する。Ｓ１５０４では終了ボタン１２０４がタッチされたか否かを判定する。ステップＳ１５０４で終了ボタン１２０４がタッチされたと判定した場合は、メイン制御部４０２の処理を終了する。ステップＳ１２０４で終了ボタン１２０４がタッチされていないと判定した場合は、ステップＳ１５０１へ戻り、図１３（Ａ）の初期画面を表示して書画台２０４への物体載置を待つ。このようにすることで、ユーザが原稿をスキャンしたいのかキャリブレーション処理を行いたいのかを検知することができ、原稿のスキャン及びキャリブレーションを実行できる。
【００３９】
以上のように、本実施形態によれば、キャリブレーションを行う際の補正用画像が適正な画像が否かの判定を行うことにより、常に正しい補正結果の画像の取得が可能となる。
【００４０】
（第２実施形態）
次に、本発明の第２実施形態に係る平面原稿画像撮影部４１１が実行する処理について説明する。本実施形態に係る平面原稿画像撮影部４１１の処理では、Ｓ９０１で取得した画像が補正用画像として使用できないと連続して判断された場合について考慮している点が第１実施形態と異なる。尚、本実施形態においては、第１実施形態との差分のみを記述し、その他の処理および構成は、第１実施形態と同一のものとする。
【００４１】
本実施形態に係る平面原稿画像撮影部４１１が実行する処理について、図１０（Ｃ）および図１４を用いて説明する。図１０（Ｃ）のキャリブレーション処理において、第１実施形態と同様の手順でステップＳ９０３まで到達した場合を考える。ここで、ステップＳ９０３の判定結果が一定の回数以上Ｎ．Ｇ．であった場合には、何らかの要因で補正用画像に一時的なノイズが入り易いシチュエーションであると判断できる。例えば、図１４（Ａ）に示すようにユーザがキャリブレーションを指示するキャリブレーションボタン１２０２（ｂ）と照明との位置関係により、ユーザの手１３０２（ａ）の影１３０３（ａ）が読み取り領域２０５に入り易くなってしまうような場合がある。このような場合にはキャリブレーションボタン１２０２（ｂ）と照明との位置関係を変更する事により、ユーザの手１３０２（ａ）による影１３０３（ａ）が読み取り領域２０５に入らないようにする処理が必要となる。ここで、図１０（Ｃ）のステップＳ９０７において、所定の回数以上連続して判定Ｎ．Ｇ．の場合にはステップＳ９０８に移行し、ユーザインターフェイス部４０３がＵＩ表示の変更を行う。例えば図１４（Ｂ）に示すようにキャリブレーションボタン１２０２（ｃ）の投射位置を変更する事により、ユーザの手１３０２（ｂ）による影１３０３（ｂ）が読み取り領域２０５に入り込まないようにすることが可能である。Ｓ９０７において、所定の回数以上連続して判定Ｎ．Ｇ．とならない場合はＳ９０１に移行する。
【００４２】
なお、本実施形態では、補正用画像に一時的なノイズが入り易いシチュエーションとして、ＵＩ表示と照明との位置関係を例に挙げたが、これに限られるものではない。例えば、ユーザがキャリブレーションボタンを押してから、実際に撮影するまでの時間が、ユーザによっては早すぎる場合に、手の影等ノイズが入り易くなってしまうことも考えられる。このような場合は、補正用画像を撮影するまでの時間を変更してもよい。
【００４３】
以上のように、本実施形態によれば、第１実施形態と同様の効果を奏する。さらに、本実施形態によれば、補正用画像が適正な画像か否かの判定を行った際に、適正でないと連続して判断された場合に、ＵＩの表示内容を変更する事により、操作を行うユーザの影響で適正な補正用画像が取得でなくなる可能性を低減させる事ができる。
【００４４】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【００４５】
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【符号の説明】
【００４６】
１０１    カメラスキャナ
２０４    書画台
２０２    カメラ部
２０８    距離画像センサ
４１３    撮影画像判定部
【図１】
2016025383.tif 000006
【図２】
2016025383.tif 000007
【図３】
2016025383.tif 000008
【図４】
2016025383.tif 000009
【図５】
2016025383.tif 000010
【図６】
2016025383.tif 000011
【図７】
2016025383.tif 000012
【図８】
2016025383.tif 000013
【図９】
2016025383.tif 000014
【図１０】
2016025383.tif 000015
【図１１】
2016025383.tif 000016
【図１２】
2016025383.tif 000017
【図１３】
2016025383.tif 000018
【図１４】
2016025383.tif 000019