(57)【要約】【課題】  書画台に載置される被写体と、投射する操作指示画像との領域が重ならないように、被写体の移動をユーザに催促する情報を報知する。【解決手段】    書画台に載置される被写体を撮像する画像処理装置において、書画台上の被写体を読み取る操作指示を受け付ける操作指示画像を投射位置に投射してユーザが操作するジェスチャーを認識する際、書画台に載置される被写体の立体形状に従い、前記投射手段が前記操作指示画像を投射できない領域を特定し、該領域と、操作指示画像を投射する領域とが重なると判断した場合、被写体の移動を催促する情報を書画台に投射することを特徴とする。【選択図】  図１７
2018107642.tif 000002
【特許請求の範囲】
【請求項１】
書画台に載置される被写体を撮像して画像データを取得する第１の取得手段と、
距離画像データを取得する第２の取得手段と、
前記書画台上の被写体を読み取る操作指示を受け付ける操作指示画像を投射位置に投射する投射手段と、
前記第２の取得手段が取得する距離画像データに基づいて、前記書画台上におけるユーザが前記操作指示画像を操作するジェスチャーを認識する認識手段と、
前記書画台に載置される被写体の立体形状に従い、前記投射手段が前記操作指示画像を投射できない領域を特定する特定手段と、
前記特定手段が特定した領域と、前記投射手段が前記操作指示画像を投射する領域とが重なるかどうかを判断する判断手段と、を備え、
前記判断手段は、前記特定手段が特定した領域と、前記投射手段が前記操作指示画像を投射する領域とが重なると判断した場合、前記投射手段は前記被写体の移動を催促する情報を前記書画台に投射することを特徴とする画像処理装置。
【請求項２】
前記特定手段が特定した領域と、前記操作指示画像を投射する領域とが重ならないと判断した場合、前記投射手段は、前記操作指示画像を投射することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記投射手段は前記被写体の移動を催促する情報を前記書画台に投射した後、前記第１の取得手段が取得する画像データに基づいて、前記書画台に載置された被写体が移動されたかどうかを判定する判定手段を備え、
前記判断手段は、前記特定手段が特定した領域と、前記操作指示画像を投射する領域とが重ならないと判断した場合、投射された操作指示画像に対するジェスチャーを認識して、前記第１の取得手段が前記被写体の画像データを取得することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記特定手段は、第１の取得手段が取得する被写体の画像データの座標情報と、前記第２の取得手段が取得する被写体の距離画像データの座標情報とを合成して前記投射手段が前記操作指示画像を投射できない領域を特定することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記書画台に載置される被写体の形状は、平面形状、立体形状、ブック形状を含むことを特徴とする請求項１に記載の画像処理装置。
【請求項６】
書画台に載置される被写体を撮像して画像データを取得する第１の取得手段と、距離画像データを取得する第２の取得手段と、前記書画台上の被写体を読み取る操作指示を受け付ける操作指示画像を投射位置に投射する投射手段と、前記第２の取得手段が取得する距離画像データに基づいて、前記書画台上におけるユーザが前記操作指示画像を操作するジェスチャーを認識する認識手段と、を備える画像処理装置の制御方法であって、
前記書画台に載置される被写体の立体形状に従い、前記投射手段が前記操作指示画像を投射できない領域を特定する特定工程と、
前記特定工程が特定した領域と、前記投射手段が前記操作指示画像を投射する領域とが重なるかどうかを判断する判断工程と、を備え、
前記判断工程で、前記特定工程が特定した領域と、前記投射手段が前記操作指示画像を投射する領域とが重なると判断した場合、前記投射手段は前記被写体の移動を催促する情報を前記書画台に投射することを特徴とする画像処理装置の制御方法。
【請求項７】
請求項６に記載の画像処理装置の制御方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理装置の制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
従来、文書をスキャンして電子データとして保存する場合、撮像にラインセンサを用いるラインスキャナと、２次元の撮像センサを用いるカメラスキャナとがある。特に、書画台の上方にカメラを配置し、原稿を上向きに書画台に置いて撮像するカメラスキャナの場合には、1枚の原稿であれば置くだけで素早くスキャンすることができるとともに、本のように厚みのある原稿も容易に書画台に置いてスキャンすることができる。
【０００３】
また、特許文献１で開示されているユーザインタフェースシステムでは、書画台上に置かれた原稿に対してメニューをプロジェクタにより投射表示する。この際、前記ユーザインタフェースシステムでは、原稿内の余白領域を検出し、原稿と投射像とが重ならないようにすることで視認性を損なわないようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2005−236878号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１のユーザインタフェースシステムでは、プロジェクタによって机上に投射した操作画面を制御することができるが、机上に置く物の対象が紙書類や書籍のような文書のみであった。そのため、ユーザインタフェースシステムでは、机上に置いた文書以外の立体物のような物に対しての操作画面を投射表示する際に立体部の死角となって表示されない部分や、ジェスチャー操作を検知できない領域については考慮されていない。
また、紙書類が置かれた際にも紙原稿の位置や向きに応じて動的に表示位置を変える等の制御を行うことが困難だった。
【０００６】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、書画台に載置される被写体と、投射する操作指示画像との領域が重ならないように、被写体の移動をユーザに催促する情報を報知できる仕組みを提供することである。
【課題を解決するための手段】
【０００７】
上記目的を達成する本発明の画像処理装置は以下に示す構成を備える。
書画台に載置される被写体を撮像して画像データを取得する第１の取得手段と、距離画像データを取得する第２の取得手段と、前記書画台上の被写体を読み取る操作指示を受け付ける操作指示画像を投射位置に投射する投射手段と、前記第２の取得手段が取得する距離画像データに基づいて、前記書画台上におけるユーザが前記操作指示画像を操作するジェスチャーを認識する認識手段と、前記書画台に載置される被写体の立体形状に従い、前記投射手段が前記操作指示画像を投射できない領域を特定する特定手段と、前記特定手段が特定した領域と、前記投射手段が前記操作指示画像を投射する領域とが重なるかどうかを判断する判断手段と、を備え、前記判断手段が前記特定手段が特定した領域と、前記投射手段が前記操作指示画像を投射する領域とが重なると判断した場合、前記投射手段は前記被写体の移動を催促する情報を前記書画台に投射することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、書画台に載置される被写体と、投射する操作指示画像との領域が重ならないように、被写体の移動をユーザに催促する情報を報知できる。
【図面の簡単な説明】
【０００９】
【図１】コントローラ部のハードウェア構成の一例を示す図である。
【図２】カメラスキャナの外観の一例を示す図である。
【図３】コントローラ部のハードウェア構成の一例を示す図である。
【図４Ａ】カメラスキャナの機能構成の一例を示す図である。
【図４Ｂ】スキャナシステムの読取処理シーケンス例を示す図である。
【図５Ａ】画像処理装置の制御方法を説明するフローチャートである。
【図５Ｂ】カメラによるスキャン処理を説明する図である。
【図６】画像処理装置の制御方法を説明するフローチャートである。
【図７】スキャナ装置のジェスチャー読取原理を示す模式図である。
【図８】画像処理装置の制御方法を説明するフローチャートである。
【図９】画像処理装置の制御方法を説明するフローチャートである。
【図１０】スキャナ装置の読み取り処理を説明する模式図である。
【図１１】画像処理装置の制御方法を説明するフローチャートである。
【図１２】スキャナ装置の読み取り処理を説明する模式図である。
【図１３】画像処理装置の制御方法を説明するフローチャートである。
【図１４】スキャナ装置の読み取り処理を説明する模式図である。
【図１５】画像処理装置の制御方法を説明するフローチャートである。
【図１６】操作画面を示す図である。
【図１７】画像処理装置の制御方法を説明するフローチャートである。
【図１８】スキャナ装置の読み取り処理を説明する模式図である。
【発明を実施するための形態】
【００１０】
次に本発明を実施するための最良の形態について図面を参照して説明する。
＜システム構成の説明＞
〔第１実施形態〕
【００１１】
図１は、本実施形態を示す画像処理装置を含むスキャナシステムの構成を説明する図である。
【００１２】
図１に示すように、カメラスキャナ101は、イーサネット（登録商標）等のネットワーク104にてホストコンピュータ102及びプリンタ103に接続されている。なお、カメラスキャナ101は、画像処理装置の一例である。
図１のシステムでは、ホストコンピュータ102からの指示により、カメラスキャナ101から撮影する被写体の平面画像または立体画像を読み取るスキャン機能を実行する。また、本システムでは、カメラスキャナ101が出力するスキャンデータをプリンタ103により出力するプリント機能を実行する。また、ホストコンピュータ102を介さず、カメラスキャナ101への直接の指示により、スキャン機能、プリント機能の実行も可能である。
【００１３】
（カメラスキャナの構成）
図２は、図１に示したカメラスキャナ101の外観の一例を示す図である。
図２(a)に示すように、カメラスキャナ101は、コントローラ部201、カメラ部202、腕部203、短焦点プロジェクタ207（以下、プロジェクタ207という）、距離画像センサ部208を備える。カメラスキャナ101の本体であるコントローラ部201と、撮像を行うためのカメラ部202、プロジェクタ207及び距離画像センサ部208は、腕部203により連結されている。腕部203は関節を用いて曲げ伸ばしが可能である。
ここで、カメラ部202は、撮像画像を取得する撮像部の一例である。プロジェクタ207は、後述するユーザが操作を行うための操作画面（操作表示）を投射する投射部の一例である。距離画像センサ部208は、距離画像を取得する立体測定部の一例である。
【００１４】
図２(a)には、カメラスキャナ101が設置されている書画台204も示されている。カメラ部202及び距離画像センサ部208のレンズは、書画台204方向に向けられており、破線で囲まれた読み取り領域205内に置かれる被写体の画像を読み取り可能である。
図２の例では、原稿206は読み取り領域205内に置かれているので、カメラスキャナ101で読み取り可能である。また、書画台204内にはターンテーブル209が設けられている。ターンテーブル209は、コントローラ部201からの指示によって回転することが可能である。ターンテーブル209を回転することで、ターンテーブル209上に置かれた物体（被写体）とカメラ部202との撮影する角度を変えることができる。例えば立体的な被写体がターンテーブル209に置かれている場合、ターンテーブル209を回転することで、静止するカメラ部202が被写体の回り３６０°のいずれの方向からも撮影することができる。さらに、後述するように、プロジェクタ207が投影するＵＩ画面が被写体の位置により死角となる場合に、当該ターンテーブル209を回転することで、死角とならない領域にＵＩ画面を投影可能となる。
カメラ部202は、単一解像度で被写体を撮像するものとしてもよいが、高解像度画像撮像と低解像度画像撮像とが可能なものとすることが好ましい。
なお、図２に示されていないが、カメラスキャナ101は、後述するＬＣＤタッチパネル330及びスピーカ340を更に含むこともできる。
なお、書画台204には、平面形状の原稿、ブック形状の原稿等を載置して、カメラ部202に画像を読み取られることができるように構成されている。
【００１５】
図２(b)は、カメラスキャナ101における座標系を表している。
図２(b)において、カメラスキャナ101では各ハードウェアデバイスに対して、カメラ座標系、距離画像座標系、プロジェクタ座標系という座標系が定義される。これらはカメラ部202及び距離画像センサ部208のＲＧＢカメラが撮像する画像平面、又はプロジェクタ207が投射（投影）する画像平面をＸＹ平面とし、画像平面に直交した方向をＺ方向として定義したものである。
更に、これらの独立した座標系の３次元データを統一的に扱えるようにするために、書画台204を含む平面をＸＹ平面とし、このＸＹ平面から上方に垂直な向きをＺ軸とする直交座標系を定義する。
【００１６】
座標系を変換する場合の例として、図２(c)に直交座標系と、カメラ部202を中心としたカメラ座標系を用いて表現された空間と、カメラ部202が撮像する画像平面との関係を示す。直交座標系における３次元点Ｐ［Ｘ，Ｙ，Ｚ］は、数1によって、カメラ座標系における３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］へ変換できる。
【００１７】
【数１】
2018107642.tif 000003
【００１８】
ここで、Ｒｃ及びｔｃは、直交座標系に対するカメラの姿勢（回転）と位置（並進）とによって求まる外部パラメータによって構成され、Ｒｃを３×３の回転行列、ｔｃを並進ベクトルと呼ぶ。逆に、カメラ座標系で定義された３次元点は数２によって、直交座標系へ変換することができる。
【００１９】
【数２】
2018107642.tif 000004
【００２０】
さらに、カメラ部202で撮影される２次元のカメラ画像平面は、カメラ部202によって３次元空間中の３次元情報が２次元情報に変換されたものである。即ち、カメラ座標系上での３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］を、数３によってカメラ画像平面での２次元座標ｐｃ［ｘｐ，ｙｐ］に透視投影変換することによって変換することができる。
【００２１】
【数３】
2018107642.tif 000005
ここで、Ａは、カメラ部202の内部パラメータと呼ばれ、焦点距離と画像中心等とで表現される３×３の行列である。
【００２２】
以上のように、数１と数３とを用いることで、直交座標系で表された３次元点群を、カメラ座標系での３次元点群座標やカメラ画像平面に変換することができる。なお、各ハードウェアデバイスの内部パラメータ及び直交座標系に対する位置姿勢（外部パラメータ）は、公知のキャリブレーション手法により予めキャリブレーションされているものとする。
以後、特に断りがなく３次元点群と表記した場合は、直交座標系における３次元データ（立体データ）を表しているものとする。
【００２３】
（カメラスキャナのコントローラのハードウェア構成）
図３は、カメラスキャナ101の本体であるコントローラ部201等のハードウェア構成の一例を示す図である。
【００２４】
図３に示すように、コントローラ部201は、システムバス301に接続されたＣＰＵ302、ＲＡＭ303、ＲＯＭ304、ＨＤＤ305を備える。さらに、コントローラ部201は、システムバス301に接続されたネットワークＩ/Ｆ306、画像処理プロセッサ307、カメラＩ/Ｆ308、シリアルＩ/Ｆ310の各種Ｉ/Ｆを備える。さらに、コントローラ部201は、システムバス301に接続された、ディスプレイコントローラ309、オーディオコントローラ311及びＵＳＢコントローラ312を備える。
【００２５】
ＣＰＵ302は、コントローラ部201全体の動作を制御する中央演算装置である。ＲＡＭ303は、揮発性メモリである。ＲＯＭ304は、不揮発性メモリであり、ＣＰＵ302の起動用プログラムが格納されている。ＨＤＤ305は、ＲＡＭ303と比較して大容量なハードディスクドライブ（ＨＤＤ）である。ＨＤＤ305にはコントローラ部201の実行する、カメラスキャナ101の制御用プログラムが格納されている。ＣＰＵ302が、ＲＯＭ304やＨＤＤ305に格納されているプログラムを実行することにより、カメラスキャナ101の機能構成及び後述するフローチャートの処理（情報処理）が実現される。
【００２６】
ＣＰＵ302は、電源ＯＮ等の起動時、ＲＯＭ304に格納されている起動用プログラムを実行する。この起動用プログラムは、ＣＰＵ302がＨＤＤ305に格納されている制御用プログラムを読み出し、ＲＡＭ303上に展開するためのものである。ＣＰＵ302は、起動用プログラムを実行すると、続けてＲＡＭ303上に展開した制御用プログラムを実行し、制御を行う。また、ＣＰＵ302は、制御用プログラムによる動作に用いるデータもＲＡＭ303上に格納して読み書きを行う。ＨＤＤ305上には更に、制御用プログラムによる動作に必要な各種設定や、また、カメラ入力によって生成した画像データを格納することができ、ＣＰＵ302によって読み書きされる。ＣＰＵ302は、ネットワークＩ/Ｆ306を介してネットワーク104上の他の機器との通信を行う。
【００２７】
画像処理プロセッサ307は、ＲＡＭ303に格納された画像データを読み出して処理し、またＲＡＭ303へ書き戻す。なお、画像処理プロセッサ307が実行する画像処理は、回転、変倍、色変換等である。
【００２８】
カメラＩ/Ｆ308は、カメラ部202及び距離画像センサ部208と接続され、ＣＰＵ302からの指示に応じてカメラ部202から画像データを、距離画像センサ部208から距離画像データを取得してＲＡＭ303へ書き込む。また、カメラＩ/Ｆ308は、ＣＰＵ302からの制御コマンドをカメラ部202及び距離画像センサ部208へ送信し、カメラ部202及び距離画像センサ部208の設定を行う。
【００２９】
また、コントローラ部201は、ディスプレイコントローラ309、シリアルＩ/Ｆ310、オーディオコントローラ311及びＵＳＢコントローラ312のうち少なくとも１つを更に含むことができる。
【００３０】
ディスプレイコントローラ309は、ＣＰＵ302の指示に応じてディスプレイへの画像データの表示を制御する。ここでは、ディスプレイコントローラ309は、プロジェクタ207及びＬＣＤタッチパネル330に接続されている。
【００３１】
シリアル信号の入出力を行うシリアルＩ/Ｆ310は、ターンテーブル209に接続され、ＣＰＵ302の回転開始・終了及び回転角度の指示をターンテーブル209へ送信する。また、シリアルＩ/Ｆ310は、ＬＣＤタッチパネル330に接続され、ＣＰＵ302はＬＣＤタッチパネル330が押下されたときに、シリアルＩ/Ｆ310を介して押下された座標を取得する。オーディオコントローラ311は、スピーカ340に接続され、ＣＰＵ302の指示に応じて音声データをアナログ音声信号に変換し、スピーカ340を通じて音声を出力する。
【００３２】
ＵＳＢコントローラ312は、ＣＰＵ302の指示に応じて外付けのＵＳＢデバイスの制御を行う。ここでは、ＵＳＢコントローラ312は、ＵＳＢメモリやＳＤカード等の外部メモリ350に接続され、外部メモリ350へのデータの読み書きを行う。
【００３３】
（カメラスキャナの機能構成）
図４Ａは、図３に示したＣＰＵ302が制御用プログラムを実行することにより実現されるカメラスキャナ101の機能構成401の一例を示す図である。また、図４Ｂは、図４Ａに示す機能構成401の各モジュール間のシーケンス例を示す図である。
なお、カメラスキャナ101の制御用プログラムは前述のようにＨＤＤ305に格納され、ＣＰＵ302が起動時にＲＡＭ303上に展開して実行する。メイン制御部402は、制御の中心であり、機能構成401内の他の各モジュールを図４Ｂに示すシーケンス例に従い制御する。
【００３４】
図４Ａにおいて、画像取得部416は、画像入力処理を行うモジュールであり、カメラ画像取得部407、距離画像取得部408から構成される。カメラ画像取得部407は、カメラＩ/Ｆ308を介してカメラ部202が撮影する画像データを取得し、ＲＡＭ303へ格納する（撮像画像取得処理）。距離画像取得部408は、カメラＩ/Ｆ308を介して距離画像センサ部208が検出する距離画像データを取得し、ＲＡＭ303へ格納する（距離画像取得処理）。距離画像取得部408の処理の詳細は図５を用いて後述する。
【００３５】
認識処理部417は、カメラ画像取得部407、距離画像取得部408が取得する画像データから書画台204上の物体の動きを検知して認識するモジュールであり、ジェスチャー認識部409、物体検知部410から構成される。ジェスチャー認識部409は、画像取得部416から書画台204上の画像データを取得し続け、ユーザが投影されたＵＩ画面に対して指先によるタッチ等のジェスチャーを検知するとメイン制御部402へ通知する。
物体検知部410は、メイン制御部402から物体載置待ち処理又は物体除去待ち処理の通知を受けると、画像取得部416から書画台204を撮像した画像データを取得する。そして、物体検知部410は、書画台204上に物体が置かれて静止するタイミング又は物体が取り除かれるタイミングを検知する処理を行う。ジェスチャー認識部409、物体検知部410の処理の詳細は図６〜図８を用いてそれぞれ後述する。
【００３６】
スキャン処理部418は、実際に対象物のスキャンを行うモジュールであり、平面原稿画像撮影部411、書籍画像撮影部412、立体形状測定部413から構成される。平面原稿画像撮影部411は平面原稿に適した処理（読み取り処理）を実行し、平面原稿に応じた形式の画像データ（読み取り画像）を出力する。
書籍画像撮影部412は書籍に適した処理（読み取り処理）を実行し、書籍原稿に応じた形式のデータ（読み取り画像）を出力する。
立体形状測定部413は立体物に、立体物に適した処理（読み取り処理）を実行し、立体物に応じた形式のデータ（読み取り画像）を出力する。これらのモジュールの処理の詳細は図９〜図１４を用いてそれぞれ後述する。
【００３７】
ユーザインタフェース部403は、ＧＵＩ部品生成表示部414と、投射領域検出部415とから構成される。ＧＵＩ部品生成表示部414は、メイン制御部402からの要求を受け、メッセージやボタン等のＧＵＩ部品を生成する。なお、ここでいうＧＵＩ部品は、操作表示を構成するオブジェクトの一例である。そして、ＧＵＩ部品生成表示部414は、表示部406へ生成したＧＵＩ部品の表示を要求する。なお、書画台204上のＧＵＩ部品の表示場所は、投射領域検出部415により検出される。
【００３８】
表示部406は、ディスプレイコントローラ309を介して、プロジェクタ207又はＬＣＤタッチパネル330へ要求されたＧＵＩ部品の表示を行う。プロジェクタ207は、書画台204に向けて設置されているため、書画台204上にＧＵＩ部品を投射（投影）することが可能となっている。
また、ユーザインタフェース部403は、ジェスチャー認識部409が認識したタッチ等のジェスチャー操作、又はシリアルＩ/Ｆ310を介したＬＣＤタッチパネル330からの入力操作、更にそれらの座標を受信する。そして、ユーザインタフェース部403は、描画中の操作画面の内容と操作座標とを対応させて操作内容（押下されたボタン等）を判定する。ユーザインタフェース部403がこの操作内容をメイン制御部402へ通知することにより、操作者の指先による操作を受け付ける。ネットワーク通信部404は、ネットワークＩ/Ｆ306を介して、ネットワーク104上の他の機器とＴＣＰ／ＩＰによる通信を行う。
【００３９】
データ管理部405は、ＣＰＵ302が制御用プログラムを実行することにより生成した作業データ等の様々なデータをＨＤＤ305上の所定の領域へ保存し、管理する。ここで、ＨＤＤ305に保存されるデータは、例えば平面原稿画像撮影部411、書籍画像撮影部412、立体形状測定部413が生成したスキャンデータ等である。
【００４０】
（距離画像センサ及び距離画像取得部の説明）
図３に距離画像センサ部208は、赤外線によるパターン投射方式の距離画像センサの一例を示した。
図３において、距離画像センサ部208の赤外線パターン投射部361は、対象物に、人の目には不可視である赤外線によって３次元測定パターンを投射する。赤外線カメラ362は、対象物に投射した３次元測定パターンを読み採るカメラである。ＲＧＢカメラ363は、人の目に見える可視光をＲＧＢ信号で撮影するカメラである。距離画像取得部408の処理は、図５Ａのフローチャートを用いて後述する。
【００４１】
図５Ａは、本実施形態を示す画像処理装置の制御方法を説明するフローチャートである。本例は、画像取得部416による距離画像取得処理例である。なお、各ステップは、ＣＰＵ302が記憶された制御プログラムを実行することで実現される。以下、制御主体は図４Ａを用いて説明する。また、図５Ｂの(a)〜(c)は、パターン投射方式による距離画像の計測原理を説明するための図である。
【００４２】
距離画像取得部408は、処理を開始すると、Ｓ501では図５Ｂ(a)に示すように赤外線パターン投射部361を用いて赤外線による３次元形状測定パターン（立体形状測定パターン）522を対象物521に投射する。
Ｓ502で、距離画像取得部408は、ＲＧＢカメラ363を用いて対象物521を撮影したＲＧＢカメラ画像523、及び赤外線カメラ362を用いてＳ501で投射した３次元形状測定パターン522を撮影した赤外線カメラ画像524を取得する。
なお、赤外線カメラ362とＲＧＢカメラ363とでは設置位置が異なるため、図５Ｂ(b)に示すようにそれぞれで撮影される２つのＲＧＢカメラ画像523及び赤外線カメラ画像524の撮影領域が異なる。
【００４３】
Ｓ503で、距離画像取得部408は、赤外線カメラ362の座標系からＲＧＢカメラ363の座標系への座標系変換（前述した数１〜数３参照）を用いて赤外線カメラ画像524をＲＧＢカメラ画像523の座標系に合わせる。なお、距離画像取得部408は、赤外線カメラ362とＲＧＢカメラ363との相対位置や、それぞれの内部パラメータは事前のキャリブレーション処理により既知であるとする。
【００４４】
Ｓ504で、距離画像取得部408は、図５Ｂ(c)に示すように、３次元形状測定パターン522とＳ503で座標変換を行った赤外線カメラ画像524との間での対応点を抽出する。
例えば、距離画像取得部408は、赤外線カメラ画像524上の１点を３次元形状測定パターン522上から探索して、同一の点が検出された場合に対応付けを行う。また、距離画像取得部408は、赤外線カメラ画像524の画素の周辺のパターンを３次元形状測定パターン522上から探索し、一番類似度が高い部分と対応付けてもよい。
【００４５】
Ｓ505で、距離画像取得部408は、赤外線パターン投射部361と赤外線カメラ362とを結ぶ直線を基線525として三角測量の原理を用いて計算を行うことにより、赤外線カメラ362からの距離を算出する。距離画像取得部408は、Ｓ504で対応付けができた画素については、その画素に対応する位置における対象物521と赤外線カメラ362との距離を算出して画素値として保存する。
【００４６】
一方、距離画像取得部408は、対応付けができなかった画素については、距離の計測ができなかった部分として無効値を保存する。距離画像取得部408は、これをＳ503で座標変換を行った赤外線カメラ画像524の全画素に対して行うことで、各画素に距離値（距離情報）が入った距離画像データを生成する。
【００４７】
Ｓ506で、距離画像取得部408は、距離画像データの各画素にＲＧＢカメラ画像523のＲＧＢ値を保存することにより、１画素につきＲ、Ｇ、Ｂ、距離の４つの値を持つ距離画像を生成する。ここで取得した距離画像データは、距離画像センサ部208のＲＧＢカメラ363で定義された距離画像センサ座標系が基準となっている。
【００４８】
そこで、Ｓ507で、距離画像取得部408は、図２(c)を用いて上述したように、距離画像センサ座標系として得られた距離情報を直交座標系における３次元点群に変換する。以後、特に指定がなく３次元点群と表記した場合は、直交座標系における３次元点群を示すものとする。
【００４９】
なお、本実施形態では上述したように、距離画像センサ部208として赤外線パターン投射方式を採用しているが、他の方式の距離画像センサを用いることも可能である。例えば、２つのＲＧＢカメラでステレオ立体視を行うステレオ方式や、レーザー光の飛行時間を検出することで距離を測定するＴＯＦ（Time of Flight）方式を用いてもよい。
【００５０】
（ジェスチャー認識部409の説明）
図６は、本実施形態を示す画像処理装置の制御方法を説明するフローチャートである。本例は、ジェスチャー認識部409の処理の詳細に対応する。なお、各ステップは、ＣＰＵ302が記憶された制御プログラムを実行することで実現される。
【００５１】
Ｓ601で処理を開始すると、ジェスチャー認識部409は、所定の初期化処理を行う。ジェスチャー認識部409は、所定の初期化処理で、距離画像取得部408から距離画像データを１フレーム分取得する。ここで、ジェスチャー認識部409の処理の開始時は書画台204上に対象物が置かれていない状態であるため、初期状態として書画台204の平面の認識を行う。
即ち、ジェスチャー認識部409は、取得した距離画像データから最も広い平面を抽出し、その位置と法線ベクトル（以降、書画台204の平面パラメータと呼ぶ）とを算出し、ＲＡＭ303に保存する。
【００５２】
Ｓ602で、ジェスチャー認識部409は、Ｓ621〜622に示す、書画台204上に存在する物体の３次元点群を取得する。具体的には、Ｓ621で、ジェスチャー認識部409は、距離画像取得部408から距離画像データと３次元点群とを１フレーム分取得する。Ｓ622で、ジェスチャー認識部409は、書画台204の平面パラメータを用いて、取得した３次元点群から書画台204を含む平面にある点群を除去する。
【００５３】
Ｓ603で、ジェスチャー認識部409は、Ｓ631〜Ｓ634に示す、取得した３次元点群からユーザの手の形状及び指先を検出する処理を行う。ここで、Ｓ603の処理について、図７に示す、指先検出処理の方法を模式的に表した図を用いて説明する。
【００５４】
Ｓ631で、ジェスチャー認識部409は、Ｓ602で取得した３次元点群から、書画台204を含む平面から所定の高さ以上にある、肌色の３次元点群を抽出することで、操作者の手の３次元点群を得る。図７(a)において、３次元点群701は、抽出した手の３次元点に対応する。
【００５５】
Ｓ632で、ジェスチャー認識部409は、抽出した手の３次元点群を、書画台204の平面に射影した２次元画像を生成して、その手の外形702を検出する。図７(a)において、外形702は、書画台204の平面に投射した３次元点群から検出される。投射は、点群の各座標を、書画台204の平面パラメータを用いてされればよい。また、図７(b)に示すように、ジェスチャー認識部409は、投射した３次元点群から、ＸＹ座標の値だけを取り出せば、Ｚ軸方向から見た２次元画像703として扱うこともできる。
【００５６】
このとき、ジェスチャー認識部409は、手の３次元点群の各点が、書画台204の平面に投射した２次元画像の各座標のどれに対応するかを、ＲＡＭ303に記憶しておくものとする。
【００５７】
Ｓ633で、ジェスチャー認識部409は、検出した手の外形702上の各点について、その点での外形の曲率を算出し、算出した曲率が所定値より小さい点を指先として検出する。
図７(c)は、外形702の曲率から指先を検出する方法を模式的に表したものである。注目点704は、書画台204の平面に投射された２次元画像703の外形を表す点の一部を表している。ここで、注目点704のような、外形を表す点のうち、隣り合う５個の点を含むように円を描くことを考える。
【００５８】
円705、707が、その例である。この円を、全ての外形の点に対して順に描き、その直径（例えば直径706、708）が所定の値より小さい（曲率が小さい）ことを以て、指先とする。
この例では隣り合う５個の点としたが、その数は限定されるものではない。また、ここでは曲率を用いたが、外形に対して楕円フィッティングを行うことで、指先を検出してもよい。
【００５９】
Ｓ634で、ジェスチャー認識部409は、検出した指先の個数及び各指先の座標を算出する。このとき、ジェスチャー認識部409は、前述したように、書画台204に投射した２次元画像の各点と、手の３次元点群の各点との対応関係をＲＡＭ303に記憶している。このため、ジェスチャー認識部409は、各指先の３次元座標を得ることができる。今回は、３次元点群から２次元画像に投射した画像データから指先を検出する方法を説明したが、指先検出の対象とする画像は、これに限定されるものではない。
【００６０】
例えば、距離画像データの背景差分や、ＲＧＢ画像の肌色領域から手の領域を抽出し、上述と同様の方法（外形の曲率計算等）で、手領域のうちの指先を検出してもよい。この場合、検出した指先の座標はＲＧＢ画像や距離画像データといった、２次元画像上の座標であるため、ジェスチャー認識部409は、その座標における距離画像の距離情報を用いて、直交座標系の３次元座標に変換する必要がある。このとき、指先点となる外形上の点ではなく、指先を検出するときに用いた、曲率円の中心を指先点としてもよい。
【００６１】
Ｓ604で、ジェスチャー認識部409は、Ｓ641〜Ｓ646に示す、検出した手の形状及び指先からのジェスチャー判定処理を行う。
Ｓ641で、ジェスチャー認識部409は、Ｓ603で検出した指先が１つかどうか判定する。ジェスチャー認識部409は、指先が１つでないと判断した場合、処理をＳ646へ進め、ジェスチャーなしと判定して、処理をＳ605へ進める。
ジェスチャー認識部409は、Ｓ641において検出した指先が１つであると判断した場合、処理をＳ642へ進め、検出した指先と書画台204を含む平面との距離を算出する。
【００６２】
Ｓ643で、ジェスチャー認識部409は、Ｓ642で算出した距離が所定値以下であるかどうかを判定し、所定値以下であると判断した場合、処理をＳ644へ進める。S644で、ジェスチャー認識部409は、指先が書画台204へタッチした、タッチジェスチャーありと判定する。
【００６３】
ジェスチャー認識部409は、Ｓ643において、Ｓ642で算出した距離が所定値以下であるかどうかを判断する。ここで、ジェスチャー認識部409は、Ｓ642で算出した距離が所定値以下でないと判断した場合、処理をＳ645へ進める。そして、Ｓ645で、ジェスチャー認識部409は、指先が移動したジェスチャー（タッチはしていないが指先が書画台204上に存在するジェスチャー）と判定する。
【００６４】
Ｓ605で、ジェスチャー認識部409は、判定したジェスチャーをメイン制御部402へ通知し、処理をＳ602へ戻し、ジェスチャー認識処理を繰り返す。
以上の処理により、ジェスチャー認識部409は、距離画像データに基づいてユーザのジェスチャーを認識することができる。
【００６５】
〔物体検知部の処理〕
図８は、本実施形態を示す画像処理装置の制御方法を説明するフローチャートである。本例は、図４Aに示した物体検知部410の処理の詳細に対応する。なお、各ステップは、ＣＰＵ302が記憶された制御プログラムを実行することで実現される。
【００６６】
物体検知部410は、処理を開始すると、図８(a)のＳ801で、Ｓ811〜Ｓ813に示す初期化処理を行う。
具体的には、Ｓ811で、物体検知部410は、カメラ画像取得部407からカメラ画像データを、距離画像取得部408から距離画像データをそれぞれ１フレーム分取得する。Ｓ812で、物体検知部410は、取得したカメラ画像データを前フレームカメラ画像データとしてＲＡＭ303に保存する。
Ｓ813で、物体検知部410は、取得したカメラ画像データ及び距離画像データを書画台背景カメラ画像及び書画台背景距離画像としてそれぞれＲＡＭ303に保存する。以降、「書画台背景カメラ画像」及び「書画台背景距離画像」と記載した場合は、ここで取得したカメラ画像データ及び距離画像データのことを指す。
Ｓ802で、物体検知部410は、物体が書画台204上に置かれたことの検知（物体載置検知処理）を行う。本処理の詳細は図８(b)を用いて後述する。
【００６７】
Ｓ803で、物体検知部410は、書画台204上に置かれた物体の種類の判別（物体種類判別処理）を行う。本処理の詳細は図８(c)を用いて後述する。Ｓ804で、物体検知部410は、Ｓ802で載置を検知した書画台204上の物体が除去されることの検知（物体除去検知処理）を行う。本処理の詳細は図８(d)を用いて後述する。
【００６８】
〔物体載置検知処理〕
図８(b)は、図８の(a)に示したＳ802の物体載置検知処理を示すフローチャートである。なお、各ステップは、ＣＰＵ302が記憶された制御プログラムを実行することで実現される。
物体検知部410は、物体載置検知処理を開始すると、Ｓ821でカメラ画像取得部407からカメラ画像データを１フレーム分取得する。Ｓ822で、物体検知部410は、取得したカメラ画像データと前フレームのカメラ画像データとの差分を計算してその絶対値を合計した差分値を算出する。
【００６９】
Ｓ823で、物体検知部410は、Ｓ822で算出した差分値が予め決めておいた所定値以上（閾値以上）かどうかを判定する。物体検知部410は、算出した差分値が所定値未満（閾値未満）であると判断した場合、書画台204上には物体がないと判定し、処理をＳ828へ進める。Ｓ828で、物体検知部410は、現フレームのカメラ画像データを前フレームのカメラ画像データとして保存し、処理をＳ821へ戻して、処理を続ける。
一方、Ｓ823で、物体検知部410は、Ｓ822で算出した差分値が所定値以上であると判断した場合、処理をＳ824へ進める。
S824で、物体検知部410は、Ｓ821で取得したカメラ画像データと前フレームのカメラ画像データとの差分値を、Ｓ822と同様に算出する。
【００７０】
Ｓ825で、物体検知部410は、算出した差分値が予め決めておいた所定値以下であるかどうかを判定する。物体検知部410は、Ｓ825において算出した差分値が所定値よりも大きいと判断した場合、書画台204上の物体が動いていると判定し、処理をＳ828へ進める。Ｓ828で、物体検知部410は、現フレームのカメラ画像データを前フレームのカメラ画像データとして保存してから、処理をＳ821へ戻して、処理を続ける。
一方、物体検知部410は、Ｓ825において算出した差分値が所定値以下であると判断した場合は、処理をＳ826へ進める。
【００７１】
Ｓ826で、物体検知部410は、Ｓ825における判断、すなわち、Ｓ825において算出した差分値が所定値以下であると連続して判断した回数が所定フレーム数続いたかどうかを判定する。即ち物体検知部410は、書画台204上の物体が静止した状態であるかどうかを判断する。
物体検知部410は、Ｓ826において書画台204上の物体が静止した状態が予め決めておいたフレーム数続いていないと判定した場合、処理をＳ828へ進める。Ｓ828で、現フレームのカメラ画像データを前フレームのカメラ画像データとしてＲＡＭ303に保存し、処理をＳ821へ戻す。
一方、Ｓ826において、物体検知部410は、書画台204上の物体が静止した状態が予め決めておいたフレーム数続いたと判定した場合、処理をＳ827へ進める。Ｓ８２７で、物体検知部410は、書画台204上の物体が置かれたことをメイン制御部402へ通知し、物体載置検知処理を終了する。
【００７２】
〔物体種類判別処理〕
図８(c)は、Ｓ803の物体種類判別処理の一例を示すフローチャートである。なお、各ステップは、ＣＰＵ302が記憶された制御プログラムを実行することで実現される。
【００７３】
物体検知部410は、物体種類判別処理を開始すると、Ｓ831で、物体検知部410は、距離画像取得部408を介して距離画像データ及び３次元点群を１フレーム分取得する。
【００７４】
Ｓ832で、物体検知部410は、書画台204上の物体に含まれる３次元点群の中で、書画台204平面からの高さが最大の点の高さを物体の高さとして取得し、その高さが予め決めておいた所定値以下であるかどうかを判定する。Ｓ832において、物体検知部410は、物体の高さが所定値以下であると判断した場合、処理をＳ833へ進める。Ｓ833で、物体検知部410は、書画台204上に平面原稿が置かれたことをメイン制御部402へ通知して、物体種類判別処理を終了する。
一方、Ｓ832において、物体検知部410は、物体の高さが所定値よりも高いと判断した場合、処理をＳ834へ進める。Ｓ834で、物体検知部410は、書画台204上に立体物が置かれたことをメイン制御部402へ通知して、物体種類判別処理を終了する。
【００７５】
〔物体除去検知処理〕
次に、物体除去検知処理について説明する。
図８(d)は、図８の(a)に示したＳ804の物体除去検知処理を示すフローチャートである。なお、各ステップは、ＣＰＵ302が記憶された制御プログラムを実行することで実現される。
物体検知部410は、物体除去検知処理を開始すると、Ｓ841ではカメラ画像取得部407からカメラ画像データを１フレーム分取得する。Ｓ842で、物体検知部410は、取得したカメラ画像データと書画台背景のカメラ画像データとの差分値を算出する。
【００７６】
Ｓ843で、物体検知部410は、Ｓ842で算出した差分値が予め決めておいた所定値以下かどうかを判定する。物体検知部410は、Ｓ842において算出した差分値が予め決めておいた所定値よりも大きいと判断した場合、書画台204上にまだ物体が存在すると判断して、処理をＳ841へ戻し、処理を続ける。
一方、物体検知部410は、Ｓ842において算出した差分値が予め決めておいた所定値以下であると判断した場合、処理をＳ844へ進める。Ｓ844で、物体検知部410は、書画台204上の物体がなくなった（除去された）ため、物体除去をメイン制御部402へ通知し、物体除去検知処理を終了する。
【００７７】
以上の処理により、物体検知部410は、カメラ画像データに基づいて書画台204上の物体の載置及び除去を検知することができる。付言すると、物体検知部410は、物体が紙等の平面物の場合、距離画像データからだけでは書画台204上の物体の載置及び除去を検知することができないが、上述したようにカメラ画像データを用いることによって検知することができるようになる。
【００７８】
（平面原稿画像撮影部411の説明）
図９は、本実施形態を示す画像処理装置の制御方法を説明するフローチャートである。本例は、図４Ａに示した平面原稿画像撮影部411が実行する処理例である。なお、各ステップは、ＣＰＵ302が記憶された制御プログラムを実行することで実現される。
図１０は、図４Ａに示した平面原稿画像撮影部411の処理を説明するための模式図である。
平面原稿画像撮影部411は、処理を開始すると、Ｓ901で、カメラ画像取得部407を介してカメラ部202からの画像データを１フレーム分取得する。ここで、カメラ部202の座標系は、図２(b)で示したように書画台204に正対していないため、このときの撮影画像は図１０(a)に示すように対象物1001、書画台204ともに歪んでいる。
【００７９】
Ｓ902で、平面原稿画像撮影部411は、書画台背景カメラ画像データとＳ901で取得したカメラ画像データとの画素毎の差分画像データを生成する。さらに、平面原稿画像撮影部411は、生成した差分画像データに基づいて、差分のある画素が黒、差分のない画素が白となるように二値化する。
したがって、ここで平面原稿画像撮影部411が生成した差分画像は、図１０(b)の領域1002のように、対象物1001の領域が黒色である（差分がある）画像データとなる。
Ｓ903で、平面原稿画像撮影部411は、二値化された領域1002を用いて、図１０(c)のように対象物1001のみの画像データを抽出する。Ｓ904で、平面原稿画像撮影部411は、抽出した原稿領域画像データに対して階調補正を行う。
【００８０】
Ｓ905で、平面原稿画像撮影部411は、抽出した原稿領域画像に対してカメラ座標系から書画台204への射影変換を行い、図１０(d)のように書画台204の真上から見た画像データ1003に変換する。ここで用いる射影変換パラメータは、ジェスチャー認識部409の処理において、前述した図６のＳ601で算出した平面パラメータとカメラ座標系とから求めることができる。
なお、図１０(d)に示したように、書画台204上への原稿の置き方により、ここで得られる画像データ1003は傾いていることがある。
【００８１】
そこで、Ｓ906で、平面原稿画像撮影部411は、画像データ1003を矩形近似してからその矩形が水平になるように回転し、図１０(e)で示した画像データ1004のように傾きのない画像データを得る。
平面原稿画像撮影部411は、図１０(f)に示すように、基準ラインに対しての矩形の傾きθ1及びθ2を算出し、傾きが小さい方（ここではθ1）を画データ1003の回転角度として決定する。
また、平面原稿画像撮影部411は、図１０(g)及び図１０(h)に示すように、画像データ1003中に含まれる文字列に対してＯＣＲ処理を行い、文字列の傾きから画像データ1003の回転角度の算出及び天地判定処理をしてもよい。
【００８２】
Ｓ907で、平面原稿画像撮影部411は、抽出した画像データ1004に対して、予め決めておいた画像フォーマット（例えばＪＰＥＧ、ＴＩＦＦ、ＰＤＦ等）に合わせて圧縮及びファイルフォーマット変換を行う。そして、平面原稿画像撮影部411は、画像データ1004をデータ管理部405を介してＨＤＤ305の所定の領域へファイルとして保存し、処理を終了する。
【００８３】
〔書籍画像撮影部412の処理〕
図１１は、本実施形態を示す画像処理装置の制御方法を説明するフローチャートである。本例は、図４に示した書籍画像撮影部412が実行する処理例である。なお、各ステップは、ＣＰＵ302が記憶された制御プログラムを実行することで実現される。図１２は、図４Ａに示した書籍画像撮影部412の処理を説明するための模式図である。
【００８４】
図１１(a)に示す処理を開始して、Ｓ1101で、書籍画像撮影部412はカメラ画像取得部407を用いて、カメラ部202からカメラ画像データを１フレーム分取得する。また、書籍画像撮影部412は距離画像取得部408を用いて距離画像センサ部208から距離画像データを１フレーム分取得する。ここで得られるカメラ画像データ1201の例を図１２(a)に示す。
【００８５】
図１２(a)では、書画台204と対象物体1211である撮影対象書籍とを含むカメラ画像データ1201が得られている。図１２(b)は、ここで得られた距離画像データの例である。図１２(b)では、距離画像センサ部208に近いほど濃い色で表されており、対象物体1212上の各画素において距離画像センサ部208からの距離情報が含まれる距離画像データ1202が得られている。
【００８６】
また、図１２(b)において、距離画像センサ部208からの距離が書画台204よりも遠い画素については白で表されており、対象物体1212の書画台204に接している部分（対象物体1212では右側のページ）も同じく白色となる。
【００８７】
Ｓ1102で、書籍画像撮影部412は、Ｓ1111〜Ｓ1116に示す、取得したカメラ画像データと距離画像データとから書画台204上に載置された書籍物体の３次元点群を算出する処理を行う。
【００８８】
Ｓ1111で、書籍画像撮影部412は、カメラ画像データと書画台背景カメラ画像データとの画素毎の差分を算出して二値化を行い、図１２(c)のように物体領域1213が黒で示されるカメラ差分画像データ1203を生成する。
【００８９】
Ｓ1112で、書籍画像撮影部412は、カメラ差分画像データ1203を、カメラ座標系から距離画像センサ座標系への変換を行い、図１２(d)のように距離画像センサ部208から見た物体領域1214を含むカメラ差分画像データ1204を生成する。
【００９０】
Ｓ1113で、書籍画像撮影部412は、距離画像データと書画台背景距離画像データとの画素毎の差分を算出して二値化を行い、図１２(e)のように物体領域1215が黒で示される距離差分画像データ1205を生成する。ここで、対象物体1211の書画台204と同じ色である部分については、画素値の差が小さくなるためカメラ差分画像データ1203中の物体領域1213に含まれなくなる場合がある。また、対象物体1212の書画台204と高さが変わらない部分については、距離画像センサ部208からの距離値が書画台204までの距離値と比べて差が小さいため、距離差分画像データ1205中の物体領域1215には含まれない場合がある。
【００９１】
そこで、Ｓ1114で、書籍画像撮影部412は、カメラ差分画像データ1203と距離差分画像データ1205との和をとって図１２(f)に示す物体領域画像データ1206を生成し、物体領域1216を得る。ここで物体領域1216は書画台204と比べて色が異なるか又は高さが異なる領域である。この領域は、カメラ差分画像データ1203中の物体領域1213か距離差分画像データ1205中の物体領域1215の何れか片方のみを使った場合よりも、より正確に物体領域を表している。
物体領域画像データ1206は距離画像センサ座標系であるため、Ｓ1115で、書籍画像撮影部412は、距離画像データ1202から物体領域画像1206中の物体領域1216のみを抽出することが可能である。
【００９２】
Ｓ1116で、書籍画像撮影部412は、Ｓ1115で抽出した距離画像データを直交座標系に変換することにより、図１２(g)に示した３次元点群1217を生成する。この３次元点群1217が書籍物体の３次元点群である。
【００９３】
Ｓ1103で、書籍画像撮影部412は、取得したカメラ画像と、算出した３次元点群とから、図１１(b)で詳しく説明する書籍画像のゆがみ補正処理を行い、２次元の書籍画像を生成する。
【００９４】
〔書籍画像ゆがみ補正処理〕
図１１(b)は、本実施形態を示す画像処理装置の制御方法を説明するフローチャートである。本例は、図１１の(a)に示したＳ1103の書籍画像ゆがみ補正処理の詳細手順に対応する。なお、各ステップは、ＣＰＵ303が記憶された制御プログラムを実行することで実現される。
書籍画像ゆがみ補正処理を開始すると、Ｓ1121で、書籍画像撮影部412は、物体領域画像データ1206を距離センサ画像座標系からカメラ座標系に変換する。
Ｓ1122で、書籍画像撮影部412は、カメラ画像1201から物体領域画像データ1206中の物体領域1216をカメラ座標系に変換したものを用いて物体領域画像データを抽出する。Ｓ1123で、書籍画像撮影部412は、抽出した物体領域画像データを書画台平面へ射影変換する。
【００９５】
Ｓ1124で、書籍画像撮影部412は、射影変換した物体領域画像データを矩形近似し、その矩形が水平になるように回転することによって、図１２(h)の書籍画像データ1208を生成する。
書籍画像データ1208は、近似矩形の片方の辺がＸ軸に平行となっているため、書籍画像撮影部412は、以降で書籍画像データ1208に対してＸ軸方向へのゆがみ補正処理を行う。
Ｓ1125で、書籍画像撮影部412は、書籍画像データ1208の最も左端の点をＰとする（図１２(h)の点Ｐ）。Ｓ1126で、書籍画像撮影部412は、書籍物体の３次元点群1217から点Ｐの高さ（図１２(h)のｈ1）を取得する。Ｓ1127で、書籍画像撮影部412は、書籍画像1208の点Ｐに対してＸ軸方向に所定の距離（図１２(h)のｘ1）離れた点をＱとする（図１２(h)の点Ｑ）。
【００９６】
Ｓ1128で、書籍画像撮影部412は、３次元点群1217から点Ｑの高さ（図１２(h)のｈ2）を取得する。Ｓ1129で、書籍画像撮影部412は、点Ｐと点Ｑとの書籍物体上での距離（図１２(h)のｌ1）を数４によって、直線近似で算出する。
【００９７】
【数４】
2018107642.tif 000006
Ｓ1130で、書籍画像撮影部412は、算出した距離ｌ1でＰＱ間の距離を補正し、図１２(h)における画像1219上の点Ｐ'と点Ｑ'との位置に画素をコピーする。
【００９８】
Ｓ1131で、書籍画像撮影部412は、処理を行った点Ｑを点Ｐに入れ替え、Ｓ1132の判断がYESとなるまで、Ｓ1126に戻って同じ処理を行う。これによって図１２(h)の点Ｑと点Ｒとの間の補正を実行することができ、画像1219上の点Ｑ'と点Ｒ'との画素とする。書籍画像撮影部412は、この処理を全画素について繰り返すことにより、画像1219はゆがみ補正後の画像となる。
【００９９】
Ｓ1132で、書籍画像撮影部412は、ゆがみ補正処理を全ての点について終えたかどうかを判定し、終えていると判断した場合、書籍物体のゆがみ補正処理を終了する。
以上のようにして、書籍画像撮影部412は、Ｓ1102、Ｓ1103の処理を行ってゆがみ補正を行った書籍画像データを生成することができる。
ここで、図１１の(a)に示す処理に戻り、書籍画像撮影部412は、S1103でゆがみ補正を行った書籍画像データの生成後、Ｓ1104では生成した書籍画像データに階調補正を行う。
【０１００】
Ｓ1105で、書籍画像撮影部412は、生成した書籍画像データに対して、予め決めておいた画像フォーマット（例えばＪＰＥＧ、ＴＩＦＦ、ＰＤＦ等）に合わせて圧縮及びファイルフォーマット変換を行う。Ｓ1106で、書籍画像撮影部412は、生成した書籍画像データを、データ管理部405を介してＨＤＤ305の所定の領域へファイルとして保存し、処理を終了する。
【０１０１】
〔立体形状測定部413の説明〕
図１３は、本実施形態を示す画像処理装置の制御方法を説明するフローチャートである。本例は、図４Ａに示した立体形状測定部413が実行する処理例である。なお、各ステップは、ＣＰＵ302が記憶された制御プログラムを実行することで実現される。図１４は、立体形状測定部413の処理を説明するための模式図である。
本処理を開始すると、Ｓ1301で、立体形状測定部413は、シリアルＩ/Ｆ310を介してターンテーブル209へ回転指示を行い、ターンテーブル209を所定の角度ずつ回転させる。ここでの回転角度は小さければ小さいほど最終的な測定精度は高くなるが、その分測定回数が多くなり時間がかかるため、装置として適切な回転角度を予め決めておけばよい。
【０１０２】
Ｓ1302で、立体形状測定部413は、書画台204内に設けられたターンテーブル209上の対象物に対して、カメラ部202とプロジェクタ207とを用いて３次元点群測定処理を行う。以下、図１３(b)に示すフローチャートを用いて、Ｓ1302で立体形状測定部413が実行する３次元点群測定処理を説明する。
【０１０３】
〔３次元点群測定処理〕
立体形状測定部413は、３次元点群測定処理を開始すると、Ｓ1311では図１４(a)に示したターンテーブル209上の対象物1401に対して、プロジェクタ207から３次元形状測定パターン1402を投射する。Ｓ1312で、立体形状測定部413は、カメラ画像取得部407を介してカメラ部202からカメラ画像データを１フレーム分取得する。
Ｓ1313で、立体形状測定部413は、３次元形状測定パターン1402と取得したカメラ画像データとの間での対応点を図５のＳ504と同様にして抽出する。
【０１０４】
Ｓ1314で、立体形状測定部413は、カメラ部202及びプロジェクタ207の位置関係から、カメラ画像データ上の各画素における距離を算出し、距離画像データを生成する。ここでの測定方法は、距離画像取得部408の処理において、図５のＳ505で説明した測定方法と同じである。
Ｓ1315で、立体形状測定部413は、距離画像データの各画素について直交座標系への座標変換を行い、３次元点群を算出する。Ｓ1316で、立体形状測定部413は、算出した３次元点群から書画台204の平面パラメータを用いて書画台平面に含まれる３次元点群を除去して、対象物の３次元点群を抽出する。
【０１０５】
Ｓ1317で、立体形状測定部413は、残った３次元点群の中から位置が大きく外れている点をノイズとして除去し、対象物1401の３次元点群1403を生成する。ここで、位置が大きく外れている点とは、例えば予め定められた位置よりも外れている点である。1318で、立体形状測定部413は、プロジェクタ207から投射している３次元形状測定パターン1402を消灯する。
【０１０６】
Ｓ1319で、立体形状測定部413は、カメラ画像取得部407を介してカメラ部202からカメラ画像を取得し、その角度から見たときのテクスチャ画像として保存し、３次元点群測定処理を終了する。図１３の(a)に示すステップの処理の説明に戻る。
【０１０７】
立体形状測定部413が２回目以降にＳ1302の３次元点群測定処理を実行した際は、Ｓ1301でターンテーブル209を回転させて計測を行っている。そのため、図１４(c)に示すようにターンテーブル209上の対象物1401、プロジェクタ207及びカメラ部202の角度が変わっている。そのため、立体形状測定部413は、図１４(d)に示すように、Ｓ1302で得られた３次元点群1403とは異なる視点から見た３次元点群1404が得られる。
【０１０８】
つまり、３次元点群1403ではカメラ部202及びプロジェクタ207から死角となって算出できなかった部分の３次元点群が、３次元点群1404では含まれることになる。逆に、３次元点群1404には含まれない３次元点群が、３次元点群1403に含まれている。そこで、立体形状測定部413は、異なる視点から見た２つの３次元点群1403と３次元点群1404とを重ね合わせる処理を行う。
【０１０９】
Ｓ1303で、立体形状測定部413は、Ｓ1302で測定した３次元点群1404を、ターンテーブルが初期位置から回転した角度分逆回転することにより、３次元点群1403との位置を合わせた３次元点群1405を算出する。
【０１１０】
Ｓ1304で、立体形状測定部413は、Ｓ1303で算出された３次元点群と、既に合成された３次元点群との合成処理を行う。３次元点群の合成処理には、特徴点を用いたＩＣＰ(Iterative Closest Point)アルゴリズムを用いる。ＩＣＰアルゴリズムで、立体形状測定部413は、合成対象の２つの３次元点群1403と３次元点群1404とから、それぞれコーナーとなる３次元特徴点を抽出する。そして、立体形状測定部413は、３次元点群1403の特徴点と３次元点群1404の特徴点との対応をとって、全ての対応点同士の距離を算出して加算する。立体形状測定部413は、３次元点群1404の位置を動かしながら対応点同士の距離の和が最小となる位置を繰り返し算出する。そして、立体形状測定部413は、繰り返し回数が上限に達した場合や、対応点同士の距離の和が最小となる位置を算出して３次元点群の合成処理を行う。
具体的には、立体形状測定部413は、図１４(e)に示す３次元点群1404を移動してから３次元点群1403と重ね合わせることにより、２つの３次元点群1403と図１４(d)に示す３次元点群1404とを合成する。立体形状測定部413は、このようにして合成後の３次元点群1405（同図(f)参照）を生成し、３次元点群合成処理を終了する。
【０１１１】
立体形状測定部413は、Ｓ1304の３次元点群合成処理を終了すると、Ｓ1305で、ターンテーブル209が１周回転したかを判定する。立体形状測定部413は、まだターンテーブル209が１周回転していないと判定した場合、処理をＳ1301へ戻す。そして、立体形状測定部413は、Ｓ1301でターンテーブル209を更に回転してからＳ1302の処理を実行して、別の角度の３次元点群を測定する。そして、立体形状測定部413は、Ｓ1303〜Ｓ1304において既に合成した３次元点群1405と新たに測定した３次元点群との合成処理を行う。
立体形状測定部413は、このようにＳ1301からＳ1304までの処理を、Ｓ1305でターンテーブル209が１周するまで繰り返していると判断した場合、処理をＳ1306へ進める。立体形状測定部413は、Ｓ1301からＳ1305までの処理を終了すると、処理対象物1401の全周３次元点群を生成することができる。
【０１１２】
Ｓ1305で、立体形状測定部413は、Ｓ1305でターンテーブル209が１周したと判定した場合、処理をＳ1306へ進め、生成した３次元点群からＳ1331〜S1333を実行して、３次元モデルを生成する。
３次元モデル生成処理を開始すると、Ｓ1331で、立体形状測定部413は、３次元点群からノイズ除去及び平滑化する処理を行う。Ｓ1332で、立体形状測定部413は、３次元点群から三角パッチを生成することで、メッシュ化を行う。
【０１１３】
Ｓ1333で、立体形状測定部413は、メッシュ化によって得られた平面へＳ1319で保存したテクスチャをマッピングする。立体形状測定部413は、以上によりテクスチャマッピングされた３次元モデルを生成することができる。
【０１１４】
Ｓ1307で、立体形状測定部413は、テクスチャマッピング後のデータをＶＲＭＬやＳＴＬ等の標準的な３次元モデルデータフォーマットへ変換し、データ管理部405を介してＨＤＤ305上の所定の領域に格納し、処理を終了する。
【０１１５】
〔メイン制御部の説明〕
図１５は、本実施形態を示す画像処理装置の制御方法を説明するフローチャートである。本例は、メイン制御部402が実行するスキャンアプリケーションの処理例である。なお、本実施形態で説明するスキャンアプリケーションは、図１６(b)に示す書画台204上に平面原稿や図１８(a)に示す立体物などの物体が載置された際に、プロジェクタ207により操作指示画像であるＧＵＩ部品（スキャンボタンなど）を投影する。また、前述のジェスチャ認識部409で認識した書画台204へのユーザによるタッチジェスチャを検出して、ＧＵＩ部品の操作を行う。その際、ＧＵＩ部品の投射位置が平面原稿に重なってしまうことがある。
図１６(c)は、ＧＵＩ部品1642〜1644が平面原稿1631に重なっている状態を模式的に表している。
【０１１６】
また、立体物が置かれた場合には、立体物が障害となりプロジェクタ207によりＧＵＩ部品を正しく表示できない、または距離画像センサ部208によってＧＵＩ部品に対するジェスチャ検知ができない場合がある。
図１８（ｉ）は立体物が障害となりＧＵＩ部品を正しく表示できない様子を模式的に表している。
本実施形態では上記のような場合に、書画台204上に置かれた物体を移動するよう、適切にユーザに通知する方法を説明する。
【０１１７】
図１５は、本実施形態を示す画像処理装置の制御方法を説明するフローチャートである。なお、各ステップは、ＣＰＵ302が記憶された制御プログラム（図４に示すモジュール）を実行することで実現される。
【０１１８】
Ｓ1501で、メイン制御部402は書画台204にスキャンの対象物が載置されるのを待つ、S1511〜S1513に対応する物体載置待ち処理を行う。
Ｓ1501で、メイン制御部402は、対象物載置待ち処理を開始すると、Ｓ1511で、メイン制御部402はユーザインタフェース部403を介して、書画台204にプロジェクタ207によって初期画面を投射表示する。
【０１１９】
例えば、メイン制御部402は、ユーザインタフェース部403を介して、図１６(a)に示すような書画台204上に対象物を置くことをユーザに促すメッセージ1641のＧＵＩ部品を生成し表示する。Ｓ1512で、メイン制御部402は、物体検知部410の処理を起動する。物体検知部410は、図８のフローチャートで説明した処理の実行を開始する。
【０１２０】
Ｓ1513で、メイン制御部402は、物体検知部410からの物体載置通知を待つ。物体検知部410が図８のＳ827の処理を実行して物体載置をメイン制御部402へ通知すると、メイン制御部402は、物体載置待ち処理を終了する。
【０１２１】
メイン制御部402は、Ｓ1501の物体載置待ち処理を終了すると、処理をＳ1502に進める。そして、メイン制御部402は、スキャン操作を行うためのメニュー表示であるＧＵＩ部品を、ユーザインタフェース部403を介して、図１７に一例を示す表示するための処理を行う。
【０１２２】
〔ＧＵＩ部品表示処理〕
図１７(a)は、Ｓ1502においてユーザインタフェース部403が実行するＧＵＩ部品表示処理の一例を示すフローチャートである。なお、各ステップは、ＣＰＵ302が記憶された制御プログラムを実行することで実現される。
Ｓ1801で、メイン制御部402は、書画台204上にプロジェクタ投影が不可能な領域を算出する図１７(b)に示す処理を開始する。
図１７(b)は。図１７(a)に示す書画台204上にプロジェクタ投影が不可能な領域を算出する処理を説明するフローチャートである。なお、各ステップは、ＣＰＵ302が記憶された制御プログラムを実行することで実現される。
Ｓ1806で、メイン制御部402は、書画台204上に載置された物体の種類を判別する。物体の種類は図８のＳ803でメイン制御部402に対して通知されている。メイン制御部402は、物体の種類が平面原稿であると判断した場合は、処理をＳ1807へ進め、立体物であると判断した場合は、処理をＳ1811へ進める。
【０１２３】
Ｓ1807で、メイン制御部402は、カメラ画像取得部407を介してカメラ部202からカメラ画像データを１フレーム分取得する。Ｓ1808で、メイン制御部402は、原稿領域をプロジェクタ投影が不可能な領域として設定する。
この時、図９のＳ902〜Ｓ903の処理と同様にして、Ｓ1807で取得したカメラ画像データと書画台背景カメラ画像データとの差分画像を生成し、二値化する。
【０１２４】
そして、図１６(d)のように、書画台204の真上から見た画像（俯瞰画像）となるように平面射影変換を施す。図１６(d)では、原稿領域を白画素、それ以外の領域を黒画素で表現している。
メイン制御部402は、図１６(d)のような二値画像を、投影不可領域としてＲＡＭ303に設定する。
【０１２５】
Ｓ1811で、メイン制御部402は、図１８(a)に示すように距離画像取得部408を介して書画台204に置かれた物体1901の距離情報を測定し、距離画像データと３次元点群とを１フレーム分取得する。
【０１２６】
Ｓ1812で、投射領域検出部415は、書画台204の平面パラメータを用いて、取得した３次元点群から書画台204を含む平面にある点群を除去する。このようにして投射領域検出部415は、図１８(b)のように書画台204の上に存在する物体1901の３次元点群1902を取得する。
【０１２７】
Ｓ1813で、投射領域検出部415は、Ｓ1812で取得した物体1901の３次元点群1902を、プロジェクタ207及び距離画像センサ部208を基準としたそれぞれの座標系で定義される画像平面に投射する。この投影された画像平面は、プロジェクタ207及び距離画像センサ部208から見た２次元画像平面である。上述の通り、プロジェクタ座標系又は距離画像センサ座標系と直交座標系との位置姿勢と、プロジェクタ207及び距離画像センサ部208の内部パラメータとはそれぞれキャリブレーション済みである。
【０１２８】
そのため、投射領域検出部415は、数1及び数3を用いることによって、直交座標系で表される1点を画像平面上の1点へ投射することができる。
投射領域検出部415は、これを全点に対して行うことで各画像平面の画像データを生成できる。図１８(c)は、プロジェクタ画像平面での投射画像データを示している。図１８(d)は、距離画像センサ画像平面での投射画像データを示している。
【０１２９】
Ｓ1814で、投射領域検出部415は、生成した各座標系における画像平面の投射画像データを、書画台204の真上から見た画像（俯瞰画像）データとなるように平面射影変換を施す。図１８(e)は、プロジェクタ画像平面の俯瞰画像データを表している。また、図１８(f)は、距離画像センサ画像平面の俯瞰画像データを表している。
これらの俯瞰画像データは、書画台204上に置かれた物体1901が、プロジェクタ207及び距離画像センサ部208から書画台204上のどの位置に置かれているかを平面的に捉えた画像データを意味する。そして、俯瞰画像データで表される物体位置1903及び物体位置1904はそれぞれ、プロジェクタ207及び距離画像センサ部208の死角領域となる。
【０１３０】
Ｓ1815で、投射領域検出部415は、Ｓ1814で生成した俯瞰画像データ足し合わせることによって、プロジェクタ207及び距離画像センサ部208のうち、少なくともどちらか一方が見えなくなるような死角領域1905（図１８（g））を求める。メイン制御部402は、死角領域1905を図１８(h)のように二値化し、最終的な死角領域1906とする。Ｓ1815が終了すると、メイン制御部402は、前述のＳ1807を実行し、カメラ画像データを１フレーム分取得する。
【０１３１】
Ｓ1816で、メイン制御部402は、まずＳ1808で平面原稿領域を算出したのと同様の方法で立体物領域を算出する。ここで算出した立体物領域（座標情報）とＳ1815で生成した最終的な死角領域1906を足し合わせて合成した投影不可領域を算出する。さらに、メイン制御部402は、図１８(j)に示す操作ＵＩ部品を投影できない領域に対応づけた投影不可領域1924をＲＡＭ303に設定する。
メイン制御部402は、Ｓ1808、もしくはＳ1816が終了すると、投影不可領域算出処理を終了し、処理を図１７(a)のＳ1802へ進める。
【０１３２】
ここで、図１７の(a)の処理に説明を戻し、Ｓ1802で、メイン制御部402は、Ｓ1801で求めた特定の投影不可領域と、これから表示しようとしている操作ＵＩの領域（ＵＩボタンなどの領域）が重なっていないかどうかを判断する。これには図１８(k)に示すように、ＵＩボタン領域1941〜1943と、ＲＡＭ303に設定された投影不可領域1924との重複した画素が存在するか否かを判断すればよい。
【０１３３】
Ｓ1802で、メイン制御部402は、Ｓ1801で求めた投影不可領域と、これから表示しようとしている操作ＵＩの領域が重なると判断した場合、処理をＳ1803へ進める。Ｓ1803で、メイン制御部402は、物体を移動させてほしい旨をユーザに通知するための投影を行う。図１８(l)は立体物1922を移動させてほしい旨をユーザに催促するメッセージ（情報）の投影状態を実行している様子を模式的に表したものである。本例は、書画台上で物体を移動させてほしい方向を矢印で示している例である。
【０１３４】
Ｓ1804で、メイン制御部402は、図８のＳ827で説明した物体載置検知が通知されたかどうかを待ち受ける。メイン制御部402は、物体載置の検知が通知されたと判断した場合は、ユーザによる物体の移動が実行されたものと判断し、処理をＳ1801へ戻し、もう一度投影不可領域を算出する処理を実行する。
【０１３５】
一方、メイン制御部402は、物体載置の検知が通知されないと判断した場合は、再度物体載置検知が通知されるのを待機する。
Ｓ1802で、メイン制御部402は、Ｓ1801で求めた投影不可領域と、これから表示しようとしている操作ＵＩの領域が重ならないと判断した場合、処理をＳ1805へ進める。そして、Ｓ1805で、メイン制御部402は、ユーザから操作指示を受け付けるためのＧＵＩ部品（保冷では、３つのボタン）を投影し、ＧＵＩ部品表示処理を終了する。
メイン制御部402は、上記処理を繰り返すことで、ユーザが物体を移動させ、投影不可領域に操作ＵＩ領域が重ならなくなるまで待つことが可能となる。
ここで、図１７(a)のフローチャートでは、投影不可領域と操作ＵＩ領域が重ならない状態になってからＧＵＩ部品を投影する。
【０１３６】
ユーザにとってはなぜ物体を移動させなければいけないかわからないことも考えられるため、図１７(c)に示すように投影不可領域と操作ＵＩ領域が最初は重なってもよい前提で先にＧＵＩ部品を投影するようにしてもよい。
【０１３７】
〔第２実施形態〕
図１７(c)は、本実施形態を示す画像処理装置の制御方法を説明するフローチャートである。本例は、先にＧＵＩ部品を投影する場合のＧＵＩ部品表示処理例である。なお、各ステップは、ＣＰＵ302が記憶された制御プログラムを実行することで実現される。
【０１３８】
図１７(a)のフローチャートと比較して、ステップの順番と、Ｓ1820、Ｓ1821が追加になっている部分が異なっている。図１７(a)と同じステップ番号のステップは同じ処理を行うため詳しい説明を省略する。
Ｓ1801で、メイン制御部402は、投影不可領域を算出した後、Ｓ1805のＧＵＩ部品投影を行う。次に、Ｓ1802で、メイン制御部402は、投影不可領域と操作ＵＩ領域が重なるかどうかを判断する。ここで、投影不可領域と操作ＵＩ領域が重なると判断した場合は処理をＳ1820へ進め、重ならないと判断した場合、処理をＳ1821へ進める。
Ｓ1820で、メイン制御部402は、操作ＵＩのジェスチャ入力が有効になっている場合は、操作ＵＩのジェスチャ入力を無効にする。
【０１３９】
これは、ジェスチャＵＩが有効になっていると、ＧＵＩ部品の投影が平面原稿に重なったり、立体物の死角領域で書画台204上に投影できなかったりする場合でもユーザが操作できてしまうことを防ぐためである。
本ステップが終了すると、メイン制御部402の処理は、Ｓ1803へ移行し、物体を移動させてほしい旨をプロジェクションしてユーザに通知する。
【０１４０】
一方、Ｓ1821で、メイン制御部402は、操作ＵＩのジェスチャ入力が無効になっている場合は、操作ＵＩのジェスチャ入力を有効にし、ＧＵＩ部品表示処理を終了する。この処理により、ジェスチャ入力が可能となり、再びＧＵＩ部品を操作することが可能になる。メイン制御部402は、ＧＵＩ部品表示処理が終了すると、図１５のＳ1503に進み、スキャン実行処理を行う。
【０１４１】
スキャン実行処理開始時には、図１６(b)に示したようなスキャン開始画面が、ＧＵＩ部品生成表示部414を介して書画台204に投射されている。2Ｄスキャンボタン1642は、平面原稿の撮影指示を受け付けるボタンである。書籍スキャンボタン1643は、書籍原稿の撮影指示を受け付けるボタンである。3Ｄスキャンボタン1644は、立体形状の測定指示を受け付けるボタンである。
ユーザインタフェース部403は、前述したようにジェスチャー認識部409から通知されるタッチジェスチャーの座標と、これらのボタンを表示している座標とから、何れのボタンがユーザによって押下されたかを検知する。
【０１４２】
以降、ユーザインタフェース部403による検知の説明を省略して「ボタンへのタッチを検知する」と記載する。
また、ユーザインタフェース部403は、2Ｄスキャンボタン1642、書籍スキャンボタン1643、3Ｄスキャンボタン1644へのタッチを検知すると、選択されたスキャン実行を行う。
【０１４３】
また、ユーザが選択したスキャンの実行開始指示を受け付けるスキャン開始ボタンを別途配置し、2Ｄスキャンボタン1642、書籍スキャンボタン1643、3Ｄスキャンボタン1644のそれぞれを排他的に選択できるようにしてもよい。その際には、ユーザインタフェース部403は、ユーザによる何れかのボタンへのタッチを検知すると、タッチされたボタンを選択状態とし、他のボタンの選択を解除する。
【０１４４】
ここで、図１５の説明に戻り、スキャン実行処理では、Ｓ1531で、メイン制御部402は、スキャン開始ボタンのタッチを検知するまで待つ。メイン制御部402は、スキャン開始ボタンとしてのメニューボタンとして機能する2Ｄスキャンボタン1642、書籍スキャンボタン1643、3Ｄスキャンボタン1644のタッチを検知する。ここで、メイン制御部402は、2Ｄスキャンボタン1642がタッチされたと判断した場合、処理をＳ1532へ進める。Ｓ1532で、メイン制御部402は、平面原稿画像撮影部411の処理を実行する。
【０１４５】
一方、Ｓ1531で、メイン制御部402は、書籍スキャンボタン1643がタッチされたと判断した場合、処理をＳ1533へ進める。Ｓ1533で、メイン制御部402は、書籍画像撮影部412の処理を実行する。
さらに、Ｓ1531で、メイン制御部402は、3Ｄスキャンボタン1644がタッチされたと判断した場合、処理をＳ1534へ進める。Ｓ1534で、Ｓ1531で、立体形状測定部413の処理を実行する。そして、メイン制御部402は、Ｓ1532〜Ｓ1534の何れかによる処理が終了すると、スキャン実行処理を終了する。
【０１４６】
図１５に示したＳ1503のスキャン実行処理を終了すると、メイン制御部402は、続いてＳ1504の物体除去待ち処理を行う。
物体除去待ち処理を開始すると、Ｓ1541で、メイン制御部402は、ＧＵＩ部品生成表示部414を介して、スキャン終了画面を表示する。例えば、ＧＵＩ部品生成表示部414は、図１６(e)に示すようなスキャンが終了した旨をユーザに通知するメッセージ1645のＧＵＩ部品を生成し投射する。
【０１４７】
Ｓ1542で、メイン制御部402は、物体検知部410からの物体除去通知を受信するのを待つ。ここで、物体除去通知は、物体検知部410が図８のＳ834で通知するものである。Ｓ1542でメイン制御部402は、物体除去通知を受信した場合、メイン制御部402は、物体除去待ち処理を終了する。
【０１４８】
Ｓ1504の物体除去待ち処理を終了すると、メイン制御部402は、Ｓ1505へ進み、スキャン終了判定処理を行う。メイン制御部402は、ネットワークＩ/Ｆ306を介してホストコンピュータ102から送信されるスキャン終了命令や、ＬＣＤタッチパネル330から入力される終了命令を受け付けた場合にスキャン終了と判定する。
また、メイン制御部402は、タイマー設定等によりスキャン終了判定を行うようにしてもよい。
【０１４９】
メイン制御部402は、スキャン処理を継続する場合、処理をＳ1501へ戻し、図１６(a)の初期画面を表示して書画台204への物体載置を待つ。このように制御することで、ユーザが複数の原稿をスキャンしたい場合に、書画台204上の原稿を取り換えたことを検知することができ、複数の原稿のスキャンを連続して実行できる。
【０１５０】
以上の処理により、ＧＵＩ部品生成表示部414は、スキャン実行開始等のメニューのＧＵＩ部品を投射表示する際、書画台204上に載置されたスキャン対象物に重ならないように投射表示することができる。このため、投影されるＧＵＩ部品の視認性が低下することを防止できる。
【０１５１】
なお、本実施形態ではＧＵＩ部品として操作指示を促すようなメッセージ表示や、スキャン実行時のメニューボタンについて述べたが、ＧＵＩ部品は、操作を支援・確認するためのプレビュー表示等であってもよい。
【０１５２】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えばＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１５３】
101  カメラスキャナ
201  コントローラ部
202  カメラ部
204  書画台
207  プロジェクタ
208  距離画像センサ部 
【図１】
2018107642.tif 000007
【図２】
2018107642.tif 000008
【図３】
2018107642.tif 000009
【図４Ａ】
2018107642.tif 000010
【図４Ｂ】
2018107642.tif 000011
【図５Ａ】
2018107642.tif 000012
【図５Ｂ】
2018107642.tif 000013
【図６】
2018107642.tif 000014
【図７】
2018107642.tif 000015
【図８】
2018107642.tif 000016
【図９】
2018107642.tif 000017
【図１０】
2018107642.tif 000018
【図１１】
2018107642.tif 000019
【図１２】
2018107642.tif 000020
【図１３】
2018107642.tif 000021
【図１４】
2018107642.tif 000022
【図１５】
2018107642.tif 000023
【図１６】
2018107642.tif 000024
【図１７】
2018107642.tif 000025
【図１８】
2018107642.tif 000026