(57)【要約】【課題】カメラスキャナ等の画像処理装置におけるユーザーの操作性を向上させる。【解決手段】書画台上の撮像画像を撮像部を介して取得する撮像画像取得手段と、前記書画台上の距離画像を立体測定部を介して取得する距離画像取得手段と、前記撮像画像取得手段により取得された撮像画像に基づいて、前記書画台上における被写体の読み取りに関する操作表示を投射部を介して前記書画台上に投射する投射手段と、前記距離画像取得手段により取得された距離画像に基づいて、前記書画台上におけるユーザーのジェスチャーを認識する認識手段と、前記投射手段により投射された前記操作表示に対する前記認識手段により認識された前記ジェスチャーに応じて、前記被写体の読み取り画像を取得する読み取り手段と、を有することによって課題を解決する。【選択図】図２
2015212892.tif 000002
【特許請求の範囲】
【請求項１】
書画台上の撮像画像を撮像部を介して取得する撮像画像取得手段と、
前記書画台上の距離画像を立体測定部を介して取得する距離画像取得手段と、
前記撮像画像取得手段により取得された撮像画像に基づいて、前記書画台上における被写体の読み取りに関する操作表示を投射部を介して前記書画台上に投射する投射手段と、
前記距離画像取得手段により取得された距離画像に基づいて、前記書画台上におけるユーザーのジェスチャーを認識する認識手段と、
前記投射手段により投射された前記操作表示に対する前記認識手段により認識された前記ジェスチャーに応じて、前記被写体の読み取り画像を取得する読み取り手段と、
を有する画像処理装置。
【請求項２】
前記撮像画像取得手段により取得された前記被写体の撮像画像に基づいて、前記操作表示が前記被写体と重ならない投射領域を検出する投射領域検出手段を更に有し、
前記投射手段は、前記投射領域検出手段により検出された前記投射領域に前記操作表示を投射する請求項１に記載の画像処理装置。
【請求項３】
前記投射手段は、前記被写体が平面原稿である場合、前記平面原稿が前記書画台上に載置された向きと角度とに応じて前記操作表示を投射する請求項１又は２に記載の画像処理装置。
【請求項４】
前記投射手段は、前記操作表示が複数のオブジェクトで構成されている場合、それぞれのオブジェクトを前記被写体に応じて配置した前記操作表示を投射する請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記距離画像取得手段により取得された前記被写体の距離画像に基づいて、前記書画台上に載置された被写体が立体物であるか否かを判定する判定手段を更に有し、
前記投射領域検出手段は、前記判定手段により前記被写体が立体物であると判定された場合、前記撮像画像と前記距離画像とに基づいて、前記操作表示が前記被写体と重ならず、かつ、前記被写体の死角とならない投射領域を検出する請求項２に記載の画像処理装置。
【請求項６】
前記投射領域検出手段は、前記被写体が立体物であると判定された場合、前記立体測定部及び前記投射部のそれぞれのパラメータと前記距離画像とに基づいて、前記操作表示が前記被写体の死角とならない投射領域を検出する請求項５に記載の画像処理装置。
【請求項７】
前記撮像画像取得手段により取得された撮像画像に基づいて、前記撮像部の読み取り領域への物体の進入を検知する検知手段を更に有し、
前記投射手段は、前記検知手段により前記読み取り領域への進入が検知された物体の進入方向に応じて、前記操作表示の向きを変えて投射する請求項１乃至６の何れか１項に記載の画像処理装置。
【請求項８】
前記投射手段は、前記読み取り領域へのユーザーの手の進入が検知された場合、前記手の進入方向から推定されるユーザーの正面の向きに前記操作表示が表示されるように、前記操作表示の向きを変えて投射する請求項７に記載の画像処理装置。
【請求項９】
前記投射手段は、前記書画台上に操作表示を投射している際に前記読み取り領域へのユーザーの手の進入が検知された場合、既に投射している前記操作表示に加えて、前記手の進入方向から推定されるユーザーの正面の向きに新たに操作表示を追加して投射する請求項７に記載の画像処理装置。
【請求項１０】
前記投射手段は、前記投射した複数の操作表示のうち、前記認識手段により前記ユーザーのタッチが認識されなかった操作表示を削除する請求項９に記載の画像処理装置。
【請求項１１】
前記投射領域検出手段は、前記被写体が立体物であると判定された場合であって、かつ、前記被写体の距離画像に基づく前記被写体の高さが予め定められた高さ以上である場合、前記被写体を隔てて前記ユーザーの位置と反対側の投射領域を死角となる投射領域として検出する請求項５又は６に記載の画像処理装置。
【請求項１２】
前記投射手段は、前記投射領域検出手段により前記操作表示が前記被写体と重ならない投射領域が検出されなかった場合、警告表示を投射する請求項２に記載の画像処理装置。
【請求項１３】
前記画像処理装置は、カメラスキャナである請求項１乃至１２の何れか１項に記載の画像処理装置。
【請求項１４】
画像処理装置が実行する情報処理方法であって、
書画台上の撮像画像を撮像部を介して取得する撮像画像取得ステップと、
前記書画台上の距離画像を立体測定部を介して取得する距離画像取得ステップと、
前記撮像画像取得ステップにより取得された撮像画像に基づいて、前記書画台上における被写体の読み取りに関する操作表示を投射部を介して前記書画台上に投射する投射ステップと、
前記距離画像取得ステップにより取得された距離画像に基づいて、前記書画台上におけるユーザーのジェスチャーを認識する認識ステップと、
前記投射ステップにより投射された前記操作表示に対する前記認識ステップにより認識された前記ジェスチャーに応じて、前記被写体の読み取り画像を取得する読み取りステップと、
を含む情報処理方法。
【請求項１５】
コンピュータに、
書画台上の撮像画像を撮像部を介して取得する撮像画像取得ステップと、
前記書画台上の距離画像を立体測定部を介して取得する距離画像取得ステップと、
前記撮像画像取得ステップにより取得された撮像画像に基づいて、前記書画台上における被写体の読み取りに関する操作表示を投射部を介して前記書画台上に投射する投射ステップと、
前記距離画像取得ステップにより取得された距離画像に基づいて、前記書画台上におけるユーザーのジェスチャーを認識する認識ステップと、
前記投射ステップにより投射された前記操作表示に対する前記認識ステップにより認識された前記ジェスチャーに応じて、前記被写体の読み取り画像を取得する読み取りステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、文書をスキャンして電子データとして保存する場合、撮像にラインセンサを用いるラインスキャナと、２次元の撮像センサを用いるカメラスキャナとがある。特に、書画台の上方にカメラを配置し、原稿を上向きに書画台に置いて撮像するカメラスキャナの場合には、１枚の原稿であれば置くだけで素早くスキャンすることができるとともに、本のように厚みのある原稿も容易に書画台に置いてスキャンすることができる。更に、紙や本のような文書だけでなく、立体物を書画台上に置いて立体形状をスキャンするカメラスキャナが特許文献１で開示されている。
特許文献１で開示されているカメラスキャナは、撮像するためのカメラとともに投光部を備え、投光部から投光する計測パターンをカメラで撮像し、三角測量の原理により立体形状を測定する。そして、前記カメラスキャナは、書画台上に置かれた物体の立体形状を算出して平面原稿か書籍か立体物かを判別し、それぞれに応じて適切な撮影モードで撮影を行う。
また、特許文献２で開示されているカメラスキャナは、同様の構成を備えるとともに、書画台に物体が置かれていないときから常時投光部により計測パターンを投光し、立体形状を測定し続けることにより、物体が書画台に置かれたことを検知する。
【０００３】
一方、特許文献３で開示されているユーザーインターフェイスシステムでは、プロジェクタでコンピュータ画面を机上に投射し、指先でそのコンピュータ画面を操作する。指先の検出には赤外線カメラを用いている。そして、前記ユーザーインターフェイスシステムでは、机上の紙書類や書籍等に印刷されたバーコードを読み取ることによって、電子情報とのリンクを作成することができるようにしている。
また、特許文献４で開示されているユーザーインターフェイスシステムでは、書画台上に置かれた原稿に対してメニューをプロジェクタにより投射表示する。この際、前記ユーザーインターフェイスシステムでは、原稿内の余白領域を検出し、原稿と投射像とが重ならないようにすることで視認性を損なわないようにしている。
また、特許文献５で開示されているユーザーインターフェイスシステムでは、プロジェクタが投射している電子媒体と紙原稿とを重ねて撮影し、電子媒体と紙原稿のデータとが結合されたデータを生成する。この際、前記ユーザーインターフェイスシステムでは、電子媒体の表示位置を制御することで、電子媒体と紙原稿中のデータとが重ならないようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４０１２７１０号公報
【特許文献２】特許第３９５４４３６号公報
【特許文献３】特許第３８３４７６６号公報
【特許文献４】特開２００５−２３６８７８号公報
【特許文献５】特開２０１２−５３５４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１、特許文献２のカメラスキャナにおいては、ユーザーインターフェイス手段が限られているため、ユーザーに対して操作性を向上させることが難しかった。一方、特許文献３〜５のユーザーインターフェイスシステムでは、プロジェクタによって机上に投射した操作画面を制御することができるが、机上に置く物の対象が紙書類や書籍のような文書のみであった。そのため、前記ユーザーインターフェイスシステムでは、机上に置いた文書以外の立体物のような物に対しての操作画面を投射表示する際に立体部の死角となって表示されない部分や、ジェスチャー操作を検知できない領域については考慮されていない。また、紙書類が置かれた際にも紙原稿の位置や向きに応じて動的に表示位置を変える等の制御を行うことが困難だった。
本発明は、カメラスキャナ等の画像処理装置におけるユーザーの操作性を向上させることを目的とする。
【課題を解決するための手段】
【０００６】
そこで、本発明の画像処理装置は、書画台上の撮像画像を撮像部を介して取得する撮像画像取得手段と、前記書画台上の距離画像を立体測定部を介して取得する距離画像取得手段と、前記撮像画像取得手段により取得された撮像画像に基づいて、前記書画台上における被写体の読み取りに関する操作表示を投射部を介して前記書画台上に投射する投射手段と、前記距離画像取得手段により取得された距離画像に基づいて、前記書画台上におけるユーザーのジェスチャーを認識する認識手段と、前記投射手段により投射された前記操作表示に対する前記認識手段により認識された前記ジェスチャーに応じて、前記被写体の読み取り画像を取得する読み取り手段と、を有する。
【発明の効果】
【０００７】
本発明によれば、カメラスキャナ等の画像処理装置におけるユーザーの操作性を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】システム構成の一例を示す図である。
【図２】カメラスキャナの外観の一例を示す図である。
【図３】カメラスキャナのハードウェア構成の一例を示す図である。
【図４】カメラスキャナの機能構成等の一例を示す図である。
【図５】実施形態１の距離画像取得部の処理の一例を示すフローチャート等である。
【図６】実施形態１のジェスチャー認識部の処理の一例を示すフローチャートである。
【図７】指先検出処理を説明するための模式図である。
【図８】実施形態１の物体検知部の処理の一例を示すフローチャートである。
【図９】平面原稿画像撮影部の処理の一例を示すフローチャートである。
【図１０】平面原稿画像撮影部の処理を説明するための模式図である。
【図１１】書籍画像撮影部の処理の一例を示すフローチャートである。
【図１２】書籍画像撮影部の処理を説明するための模式図である。
【図１３】実施形態１の立体形状測定部の処理の一例を示すフローチャートである。
【図１４】立体形状測定部の処理を説明するための模式図である。
【図１５】実施形態１のメイン制御部の処理の一例を示すフローチャートである。
【図１６Ａ】実施形態１のユーザーインターフェイス部の処理の一例を示すフローチャート等である。
【図１６Ｂ】実施形態１の書画台上の投射画面の一例を示す図である。
【図１７】実施形態２の物体検知部の処理の一例を示すフローチャートである。
【図１８Ａ】実施形態２のユーザーインターフェイス部の処理の一例を示すフローチャートである。
【図１８Ｂ】実施形態２の書画台上の投射画面の一例を示す図である。
【図１９】死角領域を算出する処理を説明するための模式図である。
【図２０】実施形態３のメイン制御部の処理の一例を示すフローチャートである。
【図２１】実施形態３の物体検知部の処理の一例を示すフローチャートである。
【図２２Ａ】実施形態３のユーザーインターフェイス部の処理の一例を示すフローチャートである。
【図２２Ｂ】実施形態３の書画台上の投射画面の一例を示す図である。
【図２３Ａ】実施形態４のユーザーインターフェイス部の処理の一例を示すフローチャートである。
【図２３Ｂ】実施形態４の書画台上の投射画面の一例を示す図である。
【図２４Ａ】実施形態５のユーザーインターフェイス部の処理の一例を示すフローチャートである。
【図２４Ｂ】実施形態５の書画台上の投射画面の一例を示す図である。
【図２５】実施形態６の書画台上の投射画面の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
＜実施形態１＞
図１は、一実施形態に係るカメラスキャナ１０１が含まれるシステム構成の一例を示す図である。
図１に示すように、カメラスキャナ１０１は、イーサネット（登録商標）等のネットワーク１０４にてホストコンピュータ１０２及びプリンタ１０３に接続されている。なお、カメラスキャナ１０１は、画像処理装置の一例である。図１のシステム構成において、ホストコンピュータ１０２からの指示により、カメラスキャナ１０１から画像を読み取るスキャン機能や、スキャンデータをプリンタ１０３により出力するプリント機能の実行が可能である。また、ホストコンピュータ１０２を介さず、カメラスキャナ１０１への直接の指示により、スキャン機能、プリント機能の実行も可能である。
【００１０】
（カメラスキャナの構成）
図２は、一実施形態に係るカメラスキャナ１０１の外観の一例を示す図である。
図２（ａ）に示すように、カメラスキャナ１０１は、コントローラ部２０１、カメラ部２０２、腕部２０３、短焦点プロジェクタ２０７（以下、プロジェクタ２０７という）、距離画像センサ部２０８を含む。カメラスキャナ１０１の本体であるコントローラ部２０１と、撮像を行うためのカメラ部２０２、プロジェクタ２０７及び距離画像センサ部２０８は、腕部２０３により連結されている。腕部２０３は関節を用いて曲げ伸ばしが可能である。ここで、カメラ部２０２は、撮像画像を取得する撮像部の一例である。プロジェクタ２０７は、後述するユーザーが操作を行うための操作画面（操作表示）を投射する投射部の一例である。距離画像センサ部２０８は、距離画像を取得する立体測定部の一例である。
図２（ａ）には、カメラスキャナ１０１が設置されている書画台２０４も示されている。カメラ部２０２及び距離画像センサ部２０８のレンズは、書画台２０４方向に向けられており、破線で囲まれた読み取り領域２０５内の画像を読み取り可能である。図２の例では、原稿２０６は読み取り領域２０５内に置かれているので、カメラスキャナ１０１で読み取り可能である。また、書画台２０４内にはターンテーブル２０９が設けられている。ターンテーブル２０９は、コントローラ部２０１からの指示によって回転することが可能であり、ターンテーブル２０９上に置かれた物体（被写体）とカメラ部２０２との角度を変えることができる。
カメラ部２０２は、単一解像度で画像を撮像するものとしてもよいが、高解像度画像撮像と低解像度画像撮像とが可能なものとすることが好ましい。
なお、図２に示されていないが、カメラスキャナ１０１は、ＬＣＤタッチパネル３３０及びスピーカ３４０を更に含むこともできる。
【００１１】
図２（ｂ）は、カメラスキャナ１０１における座標系を表している。カメラスキャナ１０１では各ハードウェアデバイスに対して、カメラ座標系、距離画像座標系、プロジェクタ座標系という座標系が定義される。これらはカメラ部２０２及び距離画像センサ部２０８のＲＧＢカメラが撮像する画像平面、又はプロジェクタ２０７が投射（投影）する画像平面をＸＹ平面とし、画像平面に直交した方向をＺ方向として定義したものである。更に、これらの独立した座標系の３次元データを統一的に扱えるようにするために、書画台２０４を含む平面をＸＹ平面とし、このＸＹ平面から上方に垂直な向きをＺ軸とする直交座標系を定義する。
座標系を変換する場合の例として、図２（ｃ）に直交座標系と、カメラ部２０２を中心としたカメラ座標系を用いて表現された空間と、カメラ部２０２が撮像する画像平面との関係を示す。直交座標系における３次元点Ｐ［Ｘ，Ｙ，Ｚ］は、式（１）によって、カメラ座標系における３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］へ変換できる。
【数１】
2015212892.tif 000003
ここで、Ｒｃ及びｔｃは、直交座標系に対するカメラの姿勢（回転）と位置（並進）とによって求まる外部パラメータによって構成され、Ｒｃを３×３の回転行列、ｔｃを並進ベクトルと呼ぶ。逆に、カメラ座標系で定義された３次元点は式（２）によって、直交座標系へ変換することができる。
【数２】
2015212892.tif 000004
【００１２】
更に、カメラ部２０２で撮影される２次元のカメラ画像平面は、カメラ部２０２によって３次元空間中の３次元情報が２次元情報に変換されたものである。即ち、カメラ座標系上での３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］を、式（３）によってカメラ画像平面での２次元座標ｐｃ［ｘｐ，ｙｐ］に透視投影変換することによって変換することができる。
【数３】
2015212892.tif 000005
ここで、Ａは、カメラの内部パラメータと呼ばれ、焦点距離と画像中心等とで表現される３×３の行列である。
以上のように、式（１）と式（３）とを用いることで、直交座標系で表された３次元点群を、カメラ座標系での３次元点群座標やカメラ画像平面に変換することができる。なお、各ハードウェアデバイスの内部パラメータ及び直交座標系に対する位置姿勢（外部パラメータ）は、公知のキャリブレーション手法により予めキャリブレーションされているものとする。以後、特に断りがなく３次元点群と表記した場合は、直交座標系における３次元データ（立体データ）を表しているものとする。
【００１３】
（カメラスキャナのコントローラのハードウェア構成）
図３は、カメラスキャナ１０１の本体であるコントローラ部２０１等のハードウェア構成の一例を示す図である。
図３に示すように、コントローラ部２０１は、システムバス３０１に接続されたＣＰＵ３０２、ＲＡＭ３０３、ＲＯＭ３０４、ＨＤＤ３０５、ネットワークＩ／Ｆ３０６、画像処理プロセッサ３０７、カメラＩ／Ｆ３０８、ディスプレイコントローラ３０９、シリアルＩ／Ｆ３１０、オーディオコントローラ３１１及びＵＳＢコントローラ３１２を含む。
ＣＰＵ３０２は、コントローラ部２０１全体の動作を制御する中央演算装置である。ＲＡＭ３０３は、揮発性メモリである。ＲＯＭ３０４は、不揮発性メモリであり、ＣＰＵ３０２の起動用プログラムが格納されている。ＨＤＤ３０５は、ＲＡＭ３０３と比較して大容量なハードディスクドライブ（ＨＤＤ）である。ＨＤＤ３０５にはコントローラ部２０１の実行する、カメラスキャナ１０１の制御用プログラムが格納されている。ＣＰＵ３０２が、ＲＯＭ３０４やＨＤＤ３０５に格納されているプログラムを実行することにより、カメラスキャナ１０１の機能構成及び後述するフローチャートの処理（情報処理）が実現される。
【００１４】
ＣＰＵ３０２は、電源ＯＮ等の起動時、ＲＯＭ３０４に格納されている起動用プログラムを実行する。この起動用プログラムは、ＣＰＵ３０２がＨＤＤ３０５に格納されている制御用プログラムを読み出し、ＲＡＭ３０３上に展開するためのものである。ＣＰＵ３０２は、起動用プログラムを実行すると、続けてＲＡＭ３０３上に展開した制御用プログラムを実行し、制御を行う。また、ＣＰＵ３０２は、制御用プログラムによる動作に用いるデータもＲＡＭ３０３上に格納して読み書きを行う。ＨＤＤ３０５上には更に、制御用プログラムによる動作に必要な各種設定や、また、カメラ入力によって生成した画像データを格納することができ、ＣＰＵ３０２によって読み書きされる。ＣＰＵ３０２は、ネットワークＩ／Ｆ３０６を介してネットワーク１０４上の他の機器との通信を行う。
画像処理プロセッサ３０７は、ＲＡＭ３０３に格納された画像データを読み出して処理し、またＲＡＭ３０３へ書き戻す。なお、画像処理プロセッサ３０７が実行する画像処理は、回転、変倍、色変換等である。
カメラＩ／Ｆ３０８は、カメラ部２０２及び距離画像センサ部２０８と接続され、ＣＰＵ３０２からの指示に応じてカメラ部２０２から画像データを、距離画像センサ部２０８から距離画像データを取得してＲＡＭ３０３へ書き込む。また、カメラＩ／Ｆ３０８は、ＣＰＵ３０２からの制御コマンドをカメラ部２０２及び距離画像センサ部２０８へ送信し、カメラ部２０２及び距離画像センサ部２０８の設定を行う。
【００１５】
また、コントローラ部２０１は、ディスプレイコントローラ３０９、シリアルＩ／Ｆ３１０、オーディオコントローラ３１１及びＵＳＢコントローラ３１２のうち少なくとも１つを更に含むことができる。
ディスプレイコントローラ３０９は、ＣＰＵ３０２の指示に応じてディスプレイへの画像データの表示を制御する。ここでは、ディスプレイコントローラ３０９は、プロジェクタ２０７及びＬＣＤタッチパネル３３０に接続されている。
シリアルＩ／Ｆ３１０は、シリアル信号の入出力を行う。ここでは、シリアルＩ／Ｆ３１０は、ターンテーブル２０９に接続され、ＣＰＵ３０２の回転開始・終了及び回転角度の指示をターンテーブル２０９へ送信する。また、シリアルＩ／Ｆ３１０は、ＬＣＤタッチパネル３３０に接続され、ＣＰＵ３０２はＬＣＤタッチパネル３３０が押下されたときに、シリアルＩ／Ｆ３１０を介して押下された座標を取得する。
オーディオコントローラ３１１は、スピーカ３４０に接続され、ＣＰＵ３０２の指示に応じて音声データをアナログ音声信号に変換し、スピーカ３４０を通じて音声を出力する。
ＵＳＢコントローラ３１２は、ＣＰＵ３０２の指示に応じて外付けのＵＳＢデバイスの制御を行う。ここでは、ＵＳＢコントローラ３１２は、ＵＳＢメモリやＳＤカード等の外部メモリ３５０に接続され、外部メモリ３５０へのデータの読み書きを行う。
【００１６】
（カメラスキャナの機能構成）
図４（ａ）は、ＣＰＵ３０２が制御用プログラムを実行することにより実現されるカメラスキャナ１０１の機能構成４０１の一例を示す図である。また、図４（ｂ）は、機能構成４０１の各モジュールの関係をシーケンス図として示したものである。
カメラスキャナ１０１の制御用プログラムは前述のようにＨＤＤ３０５に格納され、ＣＰＵ３０２が起動時にＲＡＭ３０３上に展開して実行する。
メイン制御部４０２は、制御の中心であり、機能構成４０１内の他の各モジュールを図４（ｂ）に示すように制御する。
画像取得部４１６は、画像入力処理を行うモジュールであり、カメラ画像取得部４０７、距離画像取得部４０８から構成される。カメラ画像取得部４０７は、カメラＩ／Ｆ３０８を介してカメラ部２０２が出力する画像データを取得し、ＲＡＭ３０３へ格納する（撮像画像取得処理）。距離画像取得部４０８は、カメラＩ／Ｆ３０８を介して距離画像センサ部２０８が出力する距離画像データを取得し、ＲＡＭ３０３へ格納する（距離画像取得処理）。距離画像取得部４０８の処理の詳細は図５を用いて後述する。
【００１７】
認識処理部４１７は、カメラ画像取得部４０７、距離画像取得部４０８が取得する画像データから書画台２０４上の物体の動きを検知して認識するモジュールであり、ジェスチャー認識部４０９、物体検知部４１０から構成される。ジェスチャー認識部４０９は、画像取得部４１６から書画台２０４上の画像を取得し続け、タッチ等のジェスチャーを検知するとメイン制御部４０２へ通知する。物体検知部４１０は、メイン制御部４０２から物体載置待ち処理又は物体除去待ち処理の通知を受けると、画像取得部４１６から書画台２０４を撮像した画像を取得する。そして、物体検知部４１０は、書画台２０４上に物体が置かれて静止するタイミング又は物体が取り除かれるタイミングを検知する処理を行う。ジェスチャー認識部４０９、物体検知部４１０の処理の詳細は図６〜図８を用いてそれぞれ後述する。
スキャン処理部４１８は、実際に対象物のスキャンを行うモジュールであり、平面原稿画像撮影部４１１、書籍画像撮影部４１２、立体形状測定部４１３から構成される。平面原稿画像撮影部４１１は平面原稿、書籍画像撮影部４１２は書籍、立体形状測定部４１３は立体物に、それぞれ適した処理（読み取り処理）を実行し、それぞれに応じた形式のデータ（読み取り画像）を出力する。これらのモジュールの処理の詳細は図９〜図１４を用いてそれぞれ後述する。
【００１８】
ユーザーインターフェイス部４０３は、ＧＵＩ部品生成表示部４１４と、投射領域検出部４１５とから構成される。ＧＵＩ部品生成表示部４１４は、メイン制御部４０２からの要求を受け、メッセージやボタン等のＧＵＩ部品を生成する。なお、ここでいうＧＵＩ部品は、操作表示を構成するオブジェクトの一例である。そして、ＧＵＩ部品生成表示部４１４は、表示部４０６へ生成したＧＵＩ部品の表示を要求する。なお、書画台２０４上のＧＵＩ部品の表示場所は、投射領域検出部４１５により検出される。
表示部４０６は、ディスプレイコントローラ３０９を介して、プロジェクタ２０７又はＬＣＤタッチパネル３３０へ要求されたＧＵＩ部品の表示を行う。プロジェクタ２０７は、書画台２０４に向けて設置されているため、書画台上にＧＵＩ部品を投射することが可能となっている。また、ユーザーインターフェイス部４０３は、ジェスチャー認識部４０９が認識したタッチ等のジェスチャー操作、又はシリアルＩ／Ｆ３１０を介したＬＣＤタッチパネル３３０からの入力操作、更にそれらの座標を受信する。そして、ユーザーインターフェイス部４０３は、描画中の操作画面の内容と操作座標とを対応させて操作内容（押下されたボタン等）を判定する。ユーザーインターフェイス部４０３がこの操作内容をメイン制御部４０２へ通知することにより、操作者の操作を受け付ける。
ネットワーク通信部４０４は、ネットワークＩ／Ｆ３０６を介して、ネットワーク１０４上の他の機器とＴＣＰ／ＩＰによる通信を行う。
データ管理部４０５は、ＣＰＵ３０２が制御用プログラムを実行することにより生成した作業データ等の様々なデータをＨＤＤ３０５上の所定の領域へ保存し、管理する。前記データは、例えば平面原稿画像撮影部４１１、書籍画像撮影部４１２、立体形状測定部４１３が生成したスキャンデータ等である。
【００１９】
（距離画像センサ及び距離画像取得部の説明）
図３に距離画像センサ部２０８の構成を示している。距離画像センサ部２０８は、赤外線によるパターン投射方式の距離画像センサである。赤外線パターン投射部３６１は、対象物に、人の目には不可視である赤外線によって３次元測定パターンを投射する。赤外線カメラ３６２は、対象物に投射した３次元測定パターンを読みとるカメラである。ＲＧＢカメラ３６３は、人の目に見える可視光をＲＧＢ信号で撮影するカメラである。
距離画像取得部４０８の処理を図５（ａ）のフローチャートを用いて説明する。また、図５（ｂ）〜（ｄ）は、パターン投射方式による距離画像の計測原理を説明するための図面である。
距離画像取得部４０８は、処理を開始すると、Ｓ５０１では図５（ｂ）に示すように赤外線パターン投射部３６１を用いて赤外線による３次元形状測定パターン（立体形状測定パターン）５２２を対象物５２１に投射する。
Ｓ５０２で、距離画像取得部４０８は、ＲＧＢカメラ３６３を用いて対象物を撮影したＲＧＢカメラ画像５２３、及び赤外線カメラ３６２を用いてＳ５０１で投射した３次元形状測定パターン５２２を撮影した赤外線カメラ画像５２４を取得する。なお、赤外線カメラ３６２とＲＧＢカメラ３６３とでは設置位置が異なるため、図５（ｃ）に示すようにそれぞれで撮影される２つのＲＧＢカメラ画像５２３及び赤外線カメラ画像５２４の撮影領域が異なる。
Ｓ５０３で、距離画像取得部４０８は、赤外線カメラ３６２の座標系からＲＧＢカメラ３６３の座標系への座標系変換を用いて赤外線カメラ画像５２４をＲＧＢカメラ画像５２３の座標系に合わせる。なお、赤外線カメラ３６２とＲＧＢカメラ３６３との相対位置や、それぞれの内部パラメータは事前のキャリブレーション処理により既知であるとする。
【００２０】
Ｓ５０４で、距離画像取得部４０８は、図５（ｄ）に示すように、３次元形状測定パターン５２２とＳ５０３で座標変換を行った赤外線カメラ画像５２４との間での対応点を抽出する。例えば、距離画像取得部４０８は、赤外線カメラ画像５２４上の１点を３次元形状測定パターン５２２上から探索して、同一の点が検出された場合に対応付けを行う。また、距離画像取得部４０８は、赤外線カメラ画像５２４の画素の周辺のパターンを３次元形状測定パターン５２２上から探索し、一番類似度が高い部分と対応付けてもよい。
Ｓ５０５で、距離画像取得部４０８は、赤外線パターン投射部３６１と赤外線カメラ３６２とを結ぶ直線を基線５２５として三角測量の原理を用いて計算を行うことにより、赤外線カメラ３６２からの距離を算出する。距離画像取得部４０８は、Ｓ５０４で対応付けができた画素については、その画素に対応する位置における対象物５２１と赤外線カメラ３６２との距離を算出して画素値として保存する。一方、距離画像取得部４０８は、対応付けができなかった画素については、距離の計測ができなかった部分として無効値を保存する。距離画像取得部４０８は、これをＳ５０３で座標変換を行った赤外線カメラ画像５２４の全画素に対して行うことで、各画素に距離値（距離情報）が入った距離画像を生成する。
【００２１】
Ｓ５０６で、距離画像取得部４０８は、距離画像の各画素にＲＧＢカメラ画像５２３のＲＧＢ値を保存することにより、１画素につきＲ、Ｇ、Ｂ、距離の４つの値を持つ距離画像を生成する。ここで取得した距離画像は、距離画像センサ部２０８のＲＧＢカメラ３６３で定義された距離画像センサ座標系が基準となっている。
そこでＳ５０７で、距離画像取得部４０８は、図２（ｂ）を用いて上述したように、距離画像センサ座標系として得られた距離情報を直交座標系における３次元点群に変換する。以後、特に指定がなく３次元点群と表記した場合は、直交座標系における３次元点群を示すものとする。
なお、本実施形態では上述したように、距離画像センサ部２０８として赤外線パターン投射方式を採用しているが、他の方式の距離画像センサを用いることも可能である。例えば、２つのＲＧＢカメラでステレオ立体視を行うステレオ方式や、レーザー光の飛行時間を検出することで距離を測定するＴＯＦ（Ｔｉｍｅ  ｏｆ  Ｆｌｉｇｈｔ）方式を用いてもよい。
【００２２】
（ジェスチャー認識部の説明）
ジェスチャー認識部４０９の処理の詳細を、図６のフローチャートを用いて説明する。
図６において、ジェスチャー認識部４０９は、処理を開始すると、Ｓ６０１では初期化処理を行う。初期化処理で、ジェスチャー認識部４０９は、距離画像取得部４０８から距離画像を１フレーム取得する。ここで、ジェスチャー認識部４０９の処理の開始時は書画台２０４上に対象物が置かれていない状態であるため、初期状態として書画台２０４の平面の認識を行う。即ち、ジェスチャー認識部４０９は、取得した距離画像から最も広い平面を抽出し、その位置と法線ベクトル（以降、書画台２０４の平面パラメータと呼ぶ）とを算出し、ＲＡＭ３０３に保存する。
Ｓ６０２で、ジェスチャー認識部４０９は、Ｓ６２１〜６２２に示す、書画台２０４上に存在する物体の３次元点群を取得する。
Ｓ６２１で、ジェスチャー認識部４０９は、距離画像取得部４０８から距離画像と３次元点群とを１フレーム取得する。
Ｓ６２２で、ジェスチャー認識部４０９は、書画台２０４の平面パラメータを用いて、取得した３次元点群から書画台２０４を含む平面にある点群を除去する。
【００２３】
Ｓ６０３で、ジェスチャー認識部４０９は、Ｓ６３１〜Ｓ６３４に示す、取得した３次元点群からユーザーの手の形状及び指先を検出する処理を行う。ここで、Ｓ６０３の処理について、図７に示す、指先検出処理の方法を模式的に表した図を用いて説明する。
Ｓ６３１で、ジェスチャー認識部４０９は、Ｓ６０２で取得した３次元点群から、書画台２０４を含む平面から所定の高さ以上にある、肌色の３次元点群を抽出することで、手の３次元点群を得る。図７（ａ）の７０１は、抽出した手の３次元点群を表している。
Ｓ６３２で、ジェスチャー認識部４０９は、抽出した手の３次元点群を、書画台２０４の平面に射影した２次元画像を生成して、その手の外形を検出する。図７（ａ）の７０２は、書画台２０４の平面に投射した３次元点群を表している。投射は、点群の各座標を、書画台２０４の平面パラメータを用いてされればよい。また、図７（ｂ）に示すように、投射した３次元点群から、ｘｙ座標の値だけを取り出せば、ｚ軸方向から見た２次元画像７０３として扱うことができる。このとき、ジェスチャー認識部４０９は、手の３次元点群の各点が、書画台２０４の平面に投射した２次元画像の各座標のどれに対応するかを、記憶しておくものとする。
【００２４】
Ｓ６３３で、ジェスチャー認識部４０９は、検出した手の外形上の各点について、その点での外形の曲率を算出し、算出した曲率が所定値より小さい点を指先として検出する。図７（ｃ）は、外形の曲率から指先を検出する方法を模式的に表したものである。７０４は、書画台２０４の平面に投射された２次元画像７０３の外形を表す点の一部を表している。ここで、７０４のような、外形を表す点のうち、隣り合う５個の点を含むように円を描くことを考える。円７０５、７０７が、その例である。この円を、全ての外形の点に対して順に描き、その直径（例えば７０６、７０８）が所定の値より小さい（曲率が小さい）ことを以て、指先とする。この例では隣り合う５個の点としたが、その数は限定されるものではない。また、ここでは曲率を用いたが、外形に対して楕円フィッティングを行うことで、指先を検出してもよい。
Ｓ６３４で、ジェスチャー認識部４０９は、検出した指先の個数及び各指先の座標を算出する。このとき、前述したように、書画台２０４に投射した２次元画像の各点と、手の３次元点群の各点との対応関係を記憶しているため、ジェスチャー認識部４０９は、各指先の３次元座標を得ることができる。今回は、３次元点群から２次元画像に投射した画像から指先を検出する方法を説明したが、指先検出の対象とする画像は、これに限定されるものではない。例えば、距離画像の背景差分や、ＲＧＢ画像の肌色領域から手の領域を抽出し、上述と同様の方法（外形の曲率計算等）で、手領域のうちの指先を検出してもよい。この場合、検出した指先の座標はＲＧＢ画像や距離画像といった、２次元画像上の座標であるため、ジェスチャー認識部４０９は、その座標における距離画像の距離情報を用いて、直交座標系の３次元座標に変換する必要がある。このとき、指先点となる外形上の点ではなく、指先を検出するときに用いた、曲率円の中心を指先点としてもよい。
【００２５】
Ｓ６０４で、ジェスチャー認識部４０９は、Ｓ６４１〜Ｓ６４６に示す、検出した手の形状及び指先からのジェスチャー判定処理を行う。
Ｓ６４１で、ジェスチャー認識部４０９は、Ｓ６０３で検出した指先が１つかどうか判定する。ジェスチャー認識部４０９は、指先が１つでなければＳ６４６へ進み、ジェスチャーなしと判定する。ジェスチャー認識部４０９は、Ｓ６４１において検出した指先が１つであればＳ６４２へ進み、検出した指先と書画台２０４を含む平面との距離を算出する。
Ｓ６４３で、ジェスチャー認識部４０９は、Ｓ６４２で算出した距離が所定値以下であるかどうかを判定し、所定値以下であればＳ６４４へ進んで指先が書画台２０４へタッチした、タッチジェスチャーありと判定する。ジェスチャー認識部４０９は、Ｓ６４３においてＳ６４２で算出した距離が所定値以下でなければＳ６４５へ進み、指先が移動したジェスチャー（タッチはしていないが指先が書画台２０４上に存在するジェスチャー）と判定する。
Ｓ６０５で、ジェスチャー認識部４０９は、判定したジェスチャーをメイン制御部４０２へ通知し、Ｓ６０２へ戻ってジェスチャー認識処理を繰り返す。
以上の処理により、ジェスチャー認識部４０９は、距離画像に基づいてユーザーのジェスチャーを認識することができる。
【００２６】
（物体検知部の処理）
図８のフローチャートを用いて、物体検知部４１０の処理の説明を行う。
物体検知部４１０は、処理を開始すると、図８（ａ）のＳ８０１ではＳ８１１〜Ｓ８１３に示す初期化処理を行う。Ｓ８１１で、物体検知部４１０は、カメラ画像取得部４０７からカメラ画像を、距離画像取得部４０８から距離画像をそれぞれ１フレーム取得する。Ｓ８１２で、物体検知部４１０は、取得したカメラ画像を前フレームカメラ画像として保存する。Ｓ８１３で、物体検知部４１０は、取得したカメラ画像及び距離画像を書画台背景カメラ画像及び書画台背景距離画像としてそれぞれ保存する。以降、「書画台背景カメラ画像」及び「書画台背景距離画像」と記載した場合は、ここで取得したカメラ画像及び距離画像のことを指す。
Ｓ８０２で、物体検知部４１０は、物体が書画台２０４上に置かれたことの検知（物体載置検知処理）を行う。本処理の詳細は図８（ｂ）を用いて後述する。
Ｓ８０３で、物体検知部４１０は、Ｓ８０２で載置を検知した書画台２０４上の物体が除去されることの検知（物体除去検知処理）を行う。本処理の詳細は図８（ｃ）を用いて後述する。
【００２７】
図８（ｂ）は、Ｓ８０２の物体載置検知処理の詳細である。
物体検知部４１０は、物体載置検知処理を開始すると、Ｓ８２１でカメラ画像取得部４０７からカメラ画像を１フレーム取得する。
Ｓ８２２で、物体検知部４１０は、取得したカメラ画像と前フレームカメラ画像との差分を計算してその絶対値を合計した差分値を算出する。
Ｓ８２３で、物体検知部４１０は、算出した差分値が予め決めておいた所定値以上（閾値以上）かどうかを判定する。物体検知部４１０は、算出した差分値が所定値未満（閾値未満）であれば書画台２０４上には物体がないと判定し、Ｓ８２８へ進んで現フレームのカメラ画像を前フレームカメラ画像として保存してからＳ８２１へ戻って処理を続ける。物体検知部４１０は、Ｓ８２３において差分値が所定値以上であればＳ８２４へ進み、Ｓ８２１で取得したカメラ画像と前フレームカメラ画像との差分値を、Ｓ８２２と同様に算出する。
Ｓ８２５で、物体検知部４１０は、算出した差分値が予め決めておいた所定値以下であるかどうかを判定する。物体検知部４１０は、Ｓ８２５において算出した差分値が所定値よりも大きければ書画台２０４上の物体が動いていると判定し、Ｓ８２８へ進んで現フレームのカメラ画像を前フレームカメラ画像として保存してから、Ｓ８２１へ戻り処理を続ける。物体検知部４１０は、Ｓ８２５において算出した差分値が所定値以下であればＳ８２６へ進む。
Ｓ８２６で、物体検知部４１０は、Ｓ８２５が連続してＹＥＳとなった回数から、差分値が所定値以下、即ち書画台２０４上の物体が静止した状態が予め決めておいたフレーム数続いたかどうかを判定する。物体検知部４１０は、Ｓ８２６において書画台２０４上の物体が静止した状態が予め決めておいたフレーム数続いていないと判定したら、Ｓ８２８へ進んで現フレームのカメラ画像を前フレームカメラ画像として保存し、Ｓ８２１へ戻って処理を続ける。物体検知部４１０は、Ｓ８２６において書画台２０４上の物体が静止した状態が予め決めておいたフレーム数続いたと判定したら、Ｓ８２７へ進んで物体が置かれたことをメイン制御部４０２へ通知し、物体載置検知処理を終了する。
【００２８】
図８（ｃ）は、Ｓ８０３の物体除去検知処理の詳細である。
物体検知部４１０は、物体除去検知処理を開始すると、Ｓ８３１ではカメラ画像取得部４０７からカメラ画像を１フレーム取得する。
Ｓ８３２で、物体検知部４１０は、取得したカメラ画像と書画台背景カメラ画像との差分値を算出する。
Ｓ８３３で、物体検知部４１０は、算出した差分値が予め決めておいた所定値以下かどうかを判定する。物体検知部４１０は、Ｓ８３３において算出した差分値が予め決めておいた所定値よりも大きければ書画台２０４上にまだ物体が存在するため、Ｓ８３１へ戻って処理を続ける。物体検知部４１０は、Ｓ８３３において算出した差分値が予め決めておいた所定値以下であれば書画台２０４上の物体がなくなったため、物体除去をメイン制御部４０２へ通知し、物体除去検知処理を終了する。
以上の処理により、物体検知部４１０は、カメラ画像に基づいて書画台２０４上の物体の載置及び除去を検知することができる。付言すると、物体検知部４１０は、前記物体が紙等の平面物の場合、距離画像からだけでは書画台２０４上の物体の載置及び除去を検知することができないが、上述したようにカメラ画像を用いることによって検知することができるようになる。
【００２９】
（平面原稿画像撮影部の説明）
図９のフローチャートを用いて、平面原稿画像撮影部４１１が実行する処理について説明する。図１０は、平面原稿画像撮影部４１１の処理を説明するための模式図である。
平面原稿画像撮影部４１１は、処理を開始すると、Ｓ９０１ではカメラ画像取得部４０７を介してカメラ部２０２からの画像を１フレーム取得する。ここで、カメラ部２０２の座標系は図２（ｂ）で示したように書画台２０４に正対していないため、このときの撮影画像は図１０（ａ）に示すように対象物１００１、書画台２０４ともに歪んでいる。
Ｓ９０２で、平面原稿画像撮影部４１１は、書画台背景カメラ画像とＳ９０１で取得したカメラ画像との画素毎の差分を算出し、差分画像を生成した上で、差分のある画素が黒、差分のない画素が白となるように二値化する。したがって、ここで平面原稿画像撮影部４１１が生成した差分画像は、図１０（ｂ）の領域１００２のように、対象物１００１の領域が黒色である（差分がある）画像となる。
Ｓ９０３で、平面原稿画像撮影部４１１は、領域１００２を用いて、図１０（ｃ）のように対象物１００１のみの画像を抽出する。
Ｓ９０４で、平面原稿画像撮影部４１１は、抽出した原稿領域画像に対して階調補正を行う。
【００３０】
Ｓ９０５で、平面原稿画像撮影部４１１は、抽出した原稿領域画像に対してカメラ座標系から書画台２０４への射影変換を行い、図１０（ｄ）のように書画台２０４の真上から見た画像１００３に変換する。ここで用いる射影変換パラメータは、ジェスチャー認識部４０９の処理において、前述した図６のＳ６０１で算出した平面パラメータとカメラ座標系とから求めることができる。なお、図１０（ｄ）に示したように、書画台２０４上への原稿の置き方により、ここで得られる画像１００３は傾いていることがある。
そこで、Ｓ９０６で、平面原稿画像撮影部４１１は、画像１００３を矩形近似してからその矩形が水平になるように回転し、図１０（ｅ）で示した画像１００４のように傾きのない画像を得る。平面原稿画像撮影部４１１は、図１０（ｆ）に示すように、基準ラインに対しての矩形の傾きθ１及びθ２を算出し、傾きが小さい方（ここではθ１）を画像１００３の回転角度として決定する。また、平面原稿画像撮影部４１１は、図１０（ｇ）及び図１０（ｈ）に示すように、画像１００３中に含まれる文字列に対してＯＣＲ処理を行い、文字列の傾きから画像１００３の回転角度の算出及び天地判定処理をしてもよい。
Ｓ９０７で、平面原稿画像撮影部４１１は、抽出した画像１００４に対して、予め決めておいた画像フォーマット（例えばＪＰＥＧ、ＴＩＦＦ、ＰＤＦ等）に合わせて圧縮及びファイルフォーマット変換を行う。そして、平面原稿画像撮影部４１１は、データ管理部４０５を介してＨＤＤ３０５の所定の領域へファイルとして保存し、処理を終了する。
【００３１】
（書籍画像撮影部の処理）
図１１のフローチャートを用いて、書籍画像撮影部４１２が実行する処理について説明する。図１２は、書籍画像撮影部４１２の処理を説明するための模式図である。
図１１（ａ）で、書籍画像撮影部４１２は、処理を開始すると、Ｓ１１０１ではカメラ画像取得部４０７、距離画像取得部４０８を用いて、カメラ部２０２からカメラ画像を、距離画像センサ部２０８から距離画像を、それぞれ１フレームずつ取得する。ここで得られるカメラ画像の例を図１２（ａ）に示す。図１２（ａ）では、書画台２０４と対象物体１２１１である撮影対象書籍とを含むカメラ画像１２０１が得られている。図１２（ｂ）は、ここで得られた距離画像の例である。図１２（ｂ）では、距離画像センサ部２０８に近いほど濃い色で表されており、対象物体１２１２上の各画素において距離画像センサ部２０８からの距離情報が含まれる距離画像１２０２が得られている。また、図１２（ｂ）において、距離画像センサ部２０８からの距離が書画台２０４よりも遠い画素については白で表されており、対象物体１２１２の書画台２０４に接している部分（対象物体１２１２では右側のページ）も同じく白色となる。
【００３２】
Ｓ１１０２で、書籍画像撮影部４１２は、Ｓ１１１１〜Ｓ１１１６に示す、取得したカメラ画像と距離画像とから書画台２０４上に載置された書籍物体の３次元点群を算出する処理を行う。
Ｓ１１１１で、書籍画像撮影部４１２は、カメラ画像と書画台背景カメラ画像との画素毎の差分を算出して二値化を行い、図１２（ｃ）のように物体領域１２１３が黒で示されるカメラ差分画像１２０３を生成する。
Ｓ１１１２で、書籍画像撮影部４１２は、カメラ差分画像１２０３を、カメラ座標系から距離画像センサ座標系への変換を行い、図１２（ｄ）のように距離画像センサ部２０８から見た物体領域１２１４を含むカメラ差分画像１２０４を生成する。
Ｓ１１１３で、書籍画像撮影部４１２は、距離画像と書画台背景距離画像との画素毎の差分を算出して二値化を行い、図１２（ｅ）のように物体領域１２１５が黒で示される距離差分画像１２０５を生成する。ここで、対象物体１２１１の書画台２０４と同じ色である部分については、画素値の差が小さくなるためカメラ差分画像１２０３中の物体領域１２１３に含まれなくなる場合がある。また、対象物体１２１２の書画台２０４と高さが変わらない部分については、距離画像センサ部２０８からの距離値が書画台２０４までの距離値と比べて差が小さいため、距離差分画像１２０５中の物体領域１２１５には含まれない場合がある。
【００３３】
そこで、Ｓ１１１４で、書籍画像撮影部４１２は、カメラ差分画像１２０３と距離差分画像１２０５との和をとって図１２（ｆ）に示す物体領域画像１２０６を生成し、物体領域１２１６を得る。ここで物体領域１２１６は書画台２０４と比べて色が異なるか又は高さが異なる領域となり、カメラ差分画像１２０３中の物体領域１２１３か距離差分画像１２０５中の物体領域１２１５の何れか片方のみを使った場合よりも、より正確に物体領域を表している。物体領域画像１２０６は距離画像センサ座標系であるため、Ｓ１１１５で、書籍画像撮影部４１２は、距離画像１２０２から物体領域画像１２０６中の物体領域１２１６のみを抽出することが可能である。
Ｓ１１１６で、書籍画像撮影部４１２は、Ｓ１１１５で抽出した距離画像を直交座標系に変換することにより図１２（ｇ）に示した３次元点群１２１７を生成する。この３次元点群１２１７が書籍物体の３次元点群である。
Ｓ１１０３で、書籍画像撮影部４１２は、取得したカメラ画像と、算出した３次元点群とから、書籍画像のゆがみ補正処理を行い、２次元の書籍画像を生成する。Ｓ１１０３の処理は、図１１（ｂ）で詳しく説明する。
【００３４】
図１１（ｂ）のフローチャートを用いて、Ｓ１１０３の書籍画像ゆがみ補正処理について説明する。
書籍画像撮影部４１２は、書籍画像ゆがみ補正処理を開始すると、Ｓ１１２１では物体領域画像１２０６を距離センサ画像座標系からカメラ座標系に変換する。
Ｓ１１２２で、書籍画像撮影部４１２は、カメラ画像１２０１から物体領域画像１２０６中の物体領域１２１６をカメラ座標系に変換したものを用いて物体領域を抽出する。
Ｓ１１２３で、書籍画像撮影部４１２は、抽出した物体領域画像を書画台平面へ射影変換する。
Ｓ１１２４で、書籍画像撮影部４１２は、射影変換した物体領域画像を矩形近似し、その矩形が水平になるように回転することによって、図１２（ｈ）の書籍画像１２０８を生成する。書籍画像１２０８は近似矩形の片方の編がＸ軸に平行となっているため、書籍画像撮影部４１２は、以降で書籍画像１２０８に対してＸ軸方向へのゆがみ補正処理を行う。
【００３５】
Ｓ１１２５で、書籍画像撮影部４１２は、書籍画像１２０８の最も左端の点をＰとする（図１２（ｈ）の点Ｐ）。
Ｓ１１２６で、書籍画像撮影部４１２は、書籍物体の３次元点群１２１７から点Ｐの高さ（図１２（ｈ）のｈ１）を取得する。
Ｓ１１２７で、書籍画像撮影部４１２は、書籍画像１２０８の点Ｐに対してＸ軸方向に所定の距離（図１２（ｈ）のｘ１）離れた点をＱとする（図１２（ｈ）の点Ｑ）。
Ｓ１１２８で、書籍画像撮影部４１２は、３次元点群１２１７から点Ｑの高さ（図１２（ｈ）のｈ２）を取得する。
Ｓ１１２９で、書籍画像撮影部４１２は、点Ｐと点Ｑとの書籍物体上での距離（図１２（ｈ）のｌ１）を式（４）によって、直線近似で算出する。
【数４】
2015212892.tif 000006
Ｓ１１３０で、書籍画像撮影部４１２は、算出した距離ｌ１でＰＱ間の距離を補正し、図１２（ｈ）における画像１２１９上の点Ｐ'と点Ｑ'との位置に画素をコピーする。
【００３６】
Ｓ１１３１で、書籍画像撮影部４１２は、処理を行った点Ｑを点Ｐとし、Ｓ１１２８に戻って同じ処理を行うことによって図１２（ｈ）の点Ｑと点Ｒとの間の補正を実行することができ、画像１２１９上の点Ｑ'と点Ｒ'との画素とする。書籍画像撮影部４１２は、この処理を全画素について繰り返すことにより、画像１２１９はゆがみ補正後の画像となる。
Ｓ１１３２で、書籍画像撮影部４１２は、ゆがみ補正処理を全ての点について終えたかどうかを判定し、終えていれば書籍物体のゆがみ補正処理を終了する。以上のようにして、書籍画像撮影部４１２は、Ｓ１１０２、Ｓ１１０３の処理を行ってゆがみ補正を行った書籍画像を生成することができる。
書籍画像撮影部４１２は、ゆがみ補正を行った書籍画像の生成後、Ｓ１１０４では生成した書籍画像に階調補正を行う。
Ｓ１１０５で、書籍画像撮影部４１２は、生成した書籍画像に対して、予め決めておいた画像フォーマット（例えばＪＰＥＧ、ＴＩＦＦ、ＰＤＦ等）に合わせて圧縮及びファイルフォーマット変換を行う。
Ｓ１１０６で、書籍画像撮影部４１２は、生成した画像データを、データ管理部４０５を介してＨＤＤ３０５の所定の領域へファイルとして保存し、処理を終了する。
【００３７】
（立体形状測定部の説明）
図１３のフローチャートを用いて、立体形状測定部４１３が実行する処理について説明する。図１４は、立体形状測定部４１３の処理を説明するための模式図である。
立体形状測定部４１３は、処理を開始すると、Ｓ１３０１ではシリアルＩ／Ｆ３１０を介してターンテーブル２０９へ回転指示を行い、ターンテーブル２０９を所定の角度ずつ回転させる。ここでの回転角度は小さければ小さいほど最終的な測定精度は高くなるが、その分測定回数が多くなり時間がかかるため、装置として適切な回転角度を予め決めておけばよい。
Ｓ１３０２で、立体形状測定部４１３は、書画台２０４内に設けられたターンテーブル２０９上の対象物に対して、カメラ部２０２とプロジェクタ２０７とを用いて３次元点群測定処理を行う。図１３（ｂ）のフローチャートは、Ｓ１３０２で立体形状測定部４１３が実行する３次元点群測定処理のフローチャートである。
立体形状測定部４１３は、３次元点群測定処理を開始すると、Ｓ１３１１では図１４（ａ）に示したターンテーブル２０９上の対象物１４０１に対して、プロジェクタ２０７から３次元形状測定パターン１４０２を投射する。
Ｓ１３１２で、立体形状測定部４１３は、カメラ画像取得部４０７を介してカメラ部２０２からカメラ画像を１フレーム取得する。
【００３８】
Ｓ１３１３で、立体形状測定部４１３は、３次元形状測定パターン１４０２と取得したカメラ画像との間での対応点を図５のＳ５０４と同様にして抽出する。
Ｓ１３１４で、立体形状測定部４１３は、カメラ部２０２及びプロジェクタ２０７の位置関係から、カメラ画像上の各画素における距離を算出し、距離画像を生成する。ここでの測定方法は、距離画像取得部４０８の処理において、図５のＳ５０５で説明した測定方法と同じである。
Ｓ１３１５で、立体形状測定部４１３は、距離画像の各画素について直交座標系への座標変換を行い、３次元点群を算出する。
Ｓ１３１６で、立体形状測定部４１３は、算出した３次元点群から書画台２０４の平面パラメータを用いて書画台平面に含まれる３次元点群を除去する。
Ｓ１３１７で、立体形状測定部４１３は、残った３次元点群の中から位置が大きく外れている点をノイズとして除去し、対象物１４０１の３次元点群１４０３を生成する。ここで、位置が大きく外れている点とは、例えば予め定められた位置よりも外れている点である。
１３１８で、立体形状測定部４１３は、プロジェクタ２０７から投射している３次元形状測定パターン１４０２を消灯する。
Ｓ１３１９で、立体形状測定部４１３は、カメラ画像取得部４０７を介してカメラ部２０２からカメラ画像を取得し、その角度から見たときのテクスチャ画像として保存し、３次元点群測定処理を終了する。
【００３９】
立体形状測定部４１３が２回目以降にＳ１３０２の３次元点群測定処理を実行した際は、Ｓ１３０１でターンテーブル２０９を回転させて計測を行っている。そのため、図１４（ｃ）に示すようにターンテーブル２０９上の対象物１４０１、プロジェクタ２０７及びカメラ部２０２の角度が変わっている。そのため、立体形状測定部４１３は、図１４（ｄ）に示すように、Ｓ１３０２で得られた３次元点群１４０３とは異なる視点から見た３次元点群１４０４が得られる。つまり、３次元点群１４０３ではカメラ部２０２及びプロジェクタ２０７から死角となって算出できなかった部分の３次元点群が、３次元点群１４０４では含まれることになる。逆に、３次元点群１４０４には含まれない３次元点群が、３次元点群１４０３に含まれている。そこで、立体形状測定部４１３は、異なる視点から見た２つの３次元点群１４０３と３次元点群１４０４とを重ね合わせる処理を行う。
Ｓ１３０３で、立体形状測定部４１３は、Ｓ１３０２で測定した３次元点群１４０４を、ターンテーブルが初期位置から回転した角度分逆回転することにより、３次元点群１４０３との位置を合わせた３次元点群１４０５を算出する。
【００４０】
Ｓ１３０４で、立体形状測定部４１３は、Ｓ１３０３で算出された３次元点群と、既に合成された３次元点群との合成処理を行う。３次元点群の合成処理には、特徴点を用いたＩＣＰ（ＩｔｅｒａｔｉｖｅＣｌｏｓｅｓｔＰｏｉｎｔ）アルゴリズムを用いる。ＩＣＰアルゴリズムで、立体形状測定部４１３は、合成対象の２つの３次元点群１４０３と３次元点群１４０４とから、それぞれコーナーとなる３次元特徴点を抽出する。そして、立体形状測定部４１３は、３次元点群１４０３の特徴点と３次元点群１４０４の特徴点との対応をとって、全ての対応点同士の距離を算出して加算する。立体形状測定部４１３は、３次元点群１４０４の位置を動かしながら対応点同士の距離の和が最小となる位置を繰り返し算出する。立体形状測定部４１３は、繰り返し回数が上限に達した場合や、対応点同士の距離の和が最小となる位置を算出すると、３次元点群１４０４を移動してから３次元点群１４０３と重ね合わせることにより、２つの３次元点群１４０３と３次元点群１４０４とを合成する。立体形状測定部４１３は、このようにして合成後の３次元点群１４０６を生成し、３次元点群合成処理を終了する。
立体形状測定部４１３は、Ｓ１３０４の３次元点群合成処理を終了するとＳ１３０５ではターンテーブル２０９が１周回転したかを判定する。立体形状測定部４１３は、まだターンテーブル２０９が１周回転していなければ、Ｓ１３０１へ戻ってターンテーブル２０９を更に回転してからＳ１３０２の処理を実行して別の角度の３次元点群を測定する。そして、立体形状測定部４１３は、Ｓ１３０３〜Ｓ１３０４において既に合成した３次元点群１４０６と新たに測定した３次元点群との合成処理を行う。立体形状測定部４１３は、このようにＳ１３０１からＳ１３０５までの処理をターンテーブル２０９が１周するまで繰り返すことにより、対象物１４０１の全周３次元点群を生成することができる。
【００４１】
Ｓ１３０５で、立体形状測定部４１３は、ターンテーブル２０９が１周したと判定するとＳ１３０６へ進み、生成した３次元点群から３次元モデルを生成する処理を行う。立体形状測定部４１３は、３次元モデル生成処理を開始すると、Ｓ１３３１では３次元点群からノイズ除去及び平滑化を行う。
Ｓ１３３２で、立体形状測定部４１３は、３次元点群から三角パッチを生成することで、メッシュ化を行う。
Ｓ１３３３で、立体形状測定部４１３は、メッシュ化によって得られた平面へＳ１３１９で保存したテクスチャをマッピングする。立体形状測定部４１３は、以上によりテクスチャマッピングされた３次元モデルを生成することができる。
Ｓ１３０７で、立体形状測定部４１３は、テクスチャマッピング後のデータをＶＲＭＬやＳＴＬ等の標準的な３次元モデルデータフォーマットへ変換し、データ管理部４０５を介してＨＤＤ３０５上の所定の領域に格納し、処理を終了する。
【００４２】
（メイン制御部の説明）
図１５のフローチャートを用いて、メイン制御部４０２が実行するスキャンアプリケーションの処理について説明する。
図１５において、メイン制御部４０２が処理を開始すると、Ｓ１５０１では書画台２０４にスキャンの対象物が載置されるのを待つ、物体載置待ち処理を行う。
Ｓ１５０１で、メイン制御部４０２は、対象物載置待ち処理を開始すると、Ｓ１５１１ではユーザーインターフェイス部４０３を介して、書画台２０４にプロジェクタ２０７によって初期画面を投射表示する。例えば、メイン制御部４０２は、ユーザーインターフェイス部４０３を介して、図１６Ｂ（ｃ）に示すような書画台２０４上に対象物を置くことをユーザーに促すメッセージ１６４１のＧＵＩ部品を生成し表示する。
Ｓ１５１２で、メイン制御部４０２は、物体検知部４１０の処理を起動する。物体検知部４１０は、図８のフローチャートで説明した処理の実行を開始する。
Ｓ１５１３で、メイン制御部４０２は、物体検知部４１０からの物体載置通知を待つ。物体検知部４１０が図８のＳ８２７の処理を実行して物体載置をメイン制御部４０２へ通知すると、メイン制御部４０２は、Ｓ１５１３において物体載置通知ありと判定し、物体載置待ち処理を終了する。
【００４３】
Ｓ１５０１の物体載置待ち処理を終了すると、メイン制御部４０２は、続いてＳ１５０２において、スキャン操作を行うためのメニュー表示であるＧＵＩ部品をユーザーインターフェイス部４０３を介して表示するための処理を行う。
図１６Ａ（ａ）は、Ｓ１５０２においてユーザーインターフェイス部４０３が実行するＧＵＩ部品更新処理の一例を示すフローチャートである。ＧＵＩ部品更新処理を開始すると、Ｓ１６０１で、ＧＵＩ部品生成表示部４１４は、図１６Ｂ（ｄ）のようなスキャン処理モードを設定するためのメニューボタン１６４２〜１６４４で構成されるＧＵＩ部品を生成する。そして、メイン制御部４０２は、ＧＵＩ部品生成表示部４１４を介して、書画台２０４にプロジェクタ２０７によってＧＵＩ部品を初期投射する。
Ｓ１６０２で、メイン制御部４０２は、カメラ画像取得部４０７を介してカメラ部２０２からカメラ画像を１フレーム取得する。
Ｓ１６０３で、メイン制御部４０２は、投射領域検出部４１５により、取得したカメラ画像中のＧＵＩ部品が正しく表示されているか判定する。メイン制御部４０２は、図１６Ｂ（ｄ）のように正しくＧＵＩ部品が表示されている場合には処理を終了する。一方、メイン制御部４０２は、ＧＵＩ部品が読み取り領域２０５の外にはみ出していたり、図１６Ｂ（ｅ）のように対象物１６３１上にＧＵＩ部品が重なっていたりするような場合には、ＧＵＩ部品が正しく表示されていないと判定してＳ１６０４へ進む。
【００４４】
Ｓ１６０４で、メイン制御部４０２は、投射領域検出部４１５により投射画像を正しく表示できる領域を検出するための処理（投射領域検出処理）を行う。
投射領域検出処理が実行されると、Ｓ１６１１で、メイン制御部４０２は、投射領域検出部４１５を介して、ＧＵＩ部品を投射可能な領域を検出するための探索領域を検出する。探索領域は、図１６Ｂ（ｆ）に示した、読み取り領域２０５からスキャン対象物１６３２を除いた領域１６３３とする。なお、スキャン対象物１６３２の位置及び探索領域１６３３は、物体検知部４１０が図８（ａ）のＳ８１３において保存した書画台背景距離画像と、図１６Ａ（ａ）のＳ１６０２で取得したカメラ画像との差分から算出することができる。
Ｓ１６１２で、メイン制御部４０２は、ＧＵＩ部品生成表示部４１４を介して、ＧＵＩ部品の変形処理を行う。図１６Ｂ（ｃ）のようにＧＵＩ部品がメッセージ１６４１の場合には文字サイズを変更したり、複数行に改行処理を行ったりして変形を行う。一方、図１６Ｂ（ｅ）のようにＧＵＩ部品が複数のメニューボタン１６４２〜１６４４で構成される場合には、各メニューボタンを個別に再配置していくとランダムな場所に配置されてしまい、操作性が低下してしまう。そのため、メイン制御部４０２は、ＧＵＩ部品生成表示部４１４を介して、所定の方法によりＧＵＩ部品を変形する必要がある。一例を図１６Ａ（ｂ）に示す。１６２１は、ボタンの配置変更を行わない場合を示す。１６２２は、ボタン内の文字サイズを変更することでボタンサイズを所定範囲内で縮小させる場合を示す。１６２３は、文字並びを縦横変更してボタンの縦横比を変更する場合を示す。１６２４及び１６２５は、ボタンの配置を多段に変更する場合である。そして、これらの変更に加えて、１６２６のようにボタンの左右間隔を所定距離以内で変更したり、１６２７のように所定範囲内でボタンの上下左右間隔を所定距離以内で変更したりする等を組み合わせて変形を行う。この他にも、アイコンボタンのような表示にして、ボタンの上に指をかざす（ホバー状態）ときにボタンの名前が表示されるようにすることもできる。もちろん、上述のような配置の制約を設けず、個別に配置可能な場所を探索してもよい。
【００４５】
Ｓ１６１３で、メイン制御部４０２は、投射領域検出部４１５を介して、Ｓ１６１１で検出した探索領域１６３３内においてＳ１６１２で変形したＧＵＩ部品が配置できる場所を検索する。これは、ＧＵＩ部品を探索領域１６３３の左上からラスタ走査しながら配置できるか否かを判定すればよい。
Ｓ１６１４で、メイン制御部４０２は、投射領域検出部４１５を介して、ＧＵＩ部品が投射可能な領域が検出されたかの判定を行う。メイン制御部４０２は、投射可能な領域が検出できなかった場合には、Ｓ１６１２へ戻って以降の処理を繰り返す。一方、メイン制御部４０２は、投射可能な領域が検出された場合には、投射領域検出処理を終了し、Ｓ１６０５へ進む。
Ｓ１６０５で、メイン制御部４０２は、ＧＵＩ部品生成表示部４１４を介して、Ｓ１６１４で検出された投射可能領域に対して、図１６Ｂ（ｇ）に示すように変形処理を行ったＧＵＩ部品（メニューボタン１６４２〜１６４４）に更新して投射表示する。ここでは、各メニューボタン同士の位置は変えず、全体的に表示位置を下げて投射している場合を示している。
メイン制御部４０２は、ＧＵＩ部品更新処理が終了すると、図１５のＳ１５０３に進み、スキャン実行処理を行う。
【００４６】
スキャン実行処理開始時には、図１６Ｂ（ｄ）又は図１６Ｂ（ｇ）に示したスキャン開始画面が、ＧＵＩ部品生成表示部４１４を介して書画台２０４に投射されている。２Ｄスキャンボタン１６４２は、平面原稿の撮影指示を受け付けるボタンである。書籍スキャンボタン１６４３は、書籍原稿の撮影指示を受け付けるボタンである。３Ｄスキャンボタン１６４４は、立体形状の測定指示を受け付けるボタンである。ユーザーインターフェイス部４０３は、前述したようにジェスチャー認識部４０９から通知されるタッチジェスチャーの座標と、これらのボタンを表示している座標とから、何れのボタンがユーザーによって押下されたかを検知する。（以降、ユーザーインターフェイス部４０３による検知の説明を省略して「ボタンへのタッチを検知する」と記載する。）また、ユーザーインターフェイス部４０３は、２Ｄスキャンボタン１６４２、書籍スキャンボタン１６４３、３Ｄスキャンボタン１６４４へのタッチを検知すると、選択されたスキャン実行を行う。また、ユーザーが選択したスキャンの実行開始指示を受け付けるスキャン開始ボタンを別途配置し、２Ｄスキャンボタン１６４２、書籍スキャンボタン１６４３、３Ｄスキャンボタン１６４４のそれぞれを排他的に選択できるようにしてもよい。その際には、ユーザーインターフェイス部４０３は、ユーザーによる何れかのボタンへのタッチを検知すると、タッチされたボタンを選択状態とし、他のボタンの選択を解除する。
【００４７】
Ｓ１５３１で、メイン制御部４０２は、スキャン開始ボタンとしてのメニューボタン１６４２〜１６４４のタッチを検知するまで待つ。メイン制御部４０２は、２Ｄスキャンボタン１６４２がタッチされた場合にはＳ１５３２へ進み、平面原稿画像撮影部４１１の処理を実行する。また、メイン制御部４０２は、書籍スキャンボタン１６４３がタッチされた場合にはＳ１５３３へ進み、書籍画像撮影部４１２の処理を実行する。また、メイン制御部４０２は、３Ｄスキャンボタン１６４４がタッチされた場合にはＳ１５３４へ進み、立体形状測定部４１３の処理を実行する。そして、メイン制御部４０２は、Ｓ１５３２〜Ｓ１５３４の何れかによる処理が終了すると、スキャン実行処理を終了する。
Ｓ１５０３のスキャン実行処理を終了すると、メイン制御部４０２は、続いてＳ１５０４の物体除去待ち処理を行う。物体除去待ち処理を開始すると、Ｓ１５４１で、メイン制御部４０２は、ＧＵＩ部品生成表示部４１４を介して、スキャン終了画面を表示する。例えば、ＧＵＩ部品生成表示部４１４は、図１６Ｂ（ｈ）に示すようなスキャンが終了した旨をユーザーに通知するメッセージ１６４５のＧＵＩ部品を生成し投射する。
【００４８】
Ｓ１５４２で、メイン制御部４０２は、物体検知部４１０からの物体除去通知を受信するのを待つ。ここで、物体除去通知は、物体検知部４１０が図８のＳ８３４で通知するものである。Ｓ１５４２で物体除去通知があると、メイン制御部４０２は、物体除去待ち処理を終了する。
Ｓ１５０４の物体除去待ち処理を終了すると、メイン制御部４０２は、Ｓ１５０５へ進み、スキャン終了判定処理を行う。メイン制御部４０２は、ネットワークＩ／Ｆ３０６を介してホストコンピュータ１０２から送信されるスキャン終了命令や、ＬＣＤタッチパネル３３０から入力される終了命令を受け付けた場合にスキャン終了と判定する。また、メイン制御部４０２は、タイマー設定等によりスキャン終了判定を行うようにしてもよい。メイン制御部４０２は、スキャン処理を継続する場合にはＳ１５０１へ戻り、図１６Ｂ（ｃ）の初期画面を表示して書画台２０４への物体載置を待つ。このようにすることで、ユーザーが複数の原稿をスキャンしたい場合に、書画台２０４上の原稿を取り換えたことを検知することができ、複数の原稿のスキャンを連続して実行できる。
【００４９】
以上の処理により、ＧＵＩ部品生成表示部４１４は、スキャン実行開始等のメニューのＧＵＩ部品を投射表示する際、書画台２０４上に載置されたスキャン対象物に重ならないように投射表示することができる。このため、視認性が低下することを防止することができる。
なお、本実施形態ではＧＵＩ部品として操作指示を促すようなメッセージ表示や、スキャン実行時のメニューボタンについて述べたが、ＧＵＩ部品は、操作を支援・確認するためのプレビュー表示等であってもよい。
【００５０】
＜実施形態２＞
実施形態１では、図１６Ｂ（ｄ）及び図１６Ｂ（ｇ）のように書画台２０４に載置された平面原稿にＧＵＩ部品が重ならないように配置するための技術について説明した。しかし、立体物が置かれた場合には、立体物が障害となりプロジェクタ２０７によりＧＵＩ部品を正しく表示できない、又は距離画像センサ部２０８によってＧＵＩ部品に対するジェスチャー検知が出できなくなる場合がある。そこで、本実施形態では、スキャン対象物が書籍や立体物であった場合でも、正しくＧＵＩ部品を投射するための技術について説明する。
実施形態２では、実施形態１で図１５を用いて説明した機能構成４０１の処理において、物体検知部４１０が実行する図８のフローチャートの処理と、ユーザーインターフェイス部４０３が実行する図１６Ａ（ａ）のＧＵＩ部品更新処理とが異なっている。これらの処理について図１７及び図１８を用いて説明する。
【００５１】
図１７（ａ）は、実施形態２の物体検知部４１０が実行する処理の一例を示すフローチャートである。このフローチャートでは、図８（ａ）のフローチャートに対して、Ｓ８０１の初期化処理、Ｓ８０２の物体載置検知処理の次に、Ｓ１７０１の物体種類判別処理が追加されている。そして、物体検知部４１０は、Ｓ８０３の物体除去検知処理を行って処理を終了する。Ｓ８０１、Ｓ８０２、Ｓ８０３の処理は、図８で説明した物体検知部４１０の処理と同じであるため、説明を省略する。
図１７（ｂ）は、Ｓ１７０１の物体種類判別処理の一例を示すフローチャートである。物体検知部４１０は、物体種類判別処理を開始すると、Ｓ１７１１では距離画像取得部４０８を介して距離画像及び３次元点群を１フレーム取得する。
Ｓ１７１２で、物体検知部４１０は、書画台２０４上の物体に含まれる３次元点群の中で、書画台平面からの高さが最大の点の高さを物体の高さとして取得し、その高さが予め決めておいた所定値以下であるかどうかを判定する。Ｓ１７１２において、物体検知部４１０は、物体の高さが所定値以下であればＳ１７１３へ進み、書画台２０４上に平面原稿が置かれたことをメイン制御部４０２へ通知する。Ｓ１７１２において、物体検知部４１０は、物体の高さが所定値よりも高ければＳ１７１４へ進み、書画台２０４上に立体物が置かれたことをメイン制御部４０２へ通知する。
物体検知部４１０は、Ｓ１７１３、Ｓ１７１４の何れかを実行した後、物体種類判別処理を終了する。
【００５２】
続いて、図１８Ａを用いて、ユーザーインターフェイス部４０３が実行するＧＵＩ部品更新処理について説明する。なお、実施形態１と同じ処理については同じ番号を付与し、詳細な説明を省略する。
Ｓ１８０１で、メイン制御部４０２は、図１７のＳ１７０１により通知された物体種類を判定する。メイン制御部４０２は、物体が平面原稿であった場合にはＳ１８０２へ進み、物体が立体物であった場合にはＳ１８０４へ進む。
Ｓ１８０２で、メイン制御部４０２は、平面原稿画像撮影部４１１を介して、図９を用いて説明した平面原稿抽出処理を行い、Ｓ９０６で算出された原稿の載置された位置及び傾き情報を取得する。
Ｓ１８０３で、ＧＵＩ部品生成表示部４１４は、原稿の載置位置及び傾きに合わせてＧＵＩ部品の表示位置を回転・並進移動させる。そして、ＧＵＩ部品生成表示部４１４は、Ｓ１６０１においてＧＵＩ部品の投射表示を行う。これによりＧＵＩ部品の投射位置が図１８Ｂ（ｃ）から図１８Ｂ（ｄ）のように変更されて表示される。
【００５３】
一方、Ｓ１８０１において載置物体が立体物であると判定された場合には、Ｓ１８０４において、投射領域検出部４１５は、物体の死角となる領域を算出する。図１８Ａ（ｂ）は、Ｓ１８０４における物体死角算出処理の一例を示すフローチャートである。
Ｓ１８１１で、投射領域検出部４１５は、図１９（ａ）に示すように距離画像取得部４０８を介して書画台２０４に置かれた物体１９０１の距離情報を測定し、距離画像と３次元点群とを１フレーム取得する。
Ｓ１８１２で、投射領域検出部４１５は、書画台２０４の平面パラメータを用いて、取得した３次元点群から書画台２０４を含む平面にある点群を除去する。このようにして投射領域検出部４１５は、図１９（ｂ）のように書画台２０４の上に存在する物体１９０１の３次元点群１９０２を取得する。
Ｓ１８１３で、投射領域検出部４１５は、Ｓ１８１２で取得した物体１９０１の３次元点群１９０２を、プロジェクタ２０７及び距離画像センサ部２０８を基準としたそれぞれの座標系で定義される画像平面に投射し、プロジェクタ２０７及び距離画像センサ部２０８から見た２次元画像平面を生成する。上述の通り、プロジェクタ座標系又は距離画像センサ座標系と直交座標系との位置姿勢と、プロジェクタ２０７及び距離画像センサ部２０８の内部パラメータとはそれぞれキャリブレーション済みである。そのため、投射領域検出部４１５は、式（１）及び式（３）を用いることによって、直交座標系で表される１点を画像平面上の１点へ投射することができる。投射領域検出部４１５は、これを全点に対して行うことで各画像平面の画像を生成できる。図１９（ｃ）は、プロジェクタ画像平面での投射画像を示している。図１９（ｄ）は、距離画像センサ画像平面での投射画像を示している。
【００５４】
Ｓ１８１４で、投射領域検出部４１５は、生成した各座標系における画像平面の投射画像を、書画台２０４の真上から見た画像（俯瞰画像）となるように平面射影変換を施す。図１９（ｅ）は、プロジェクタ画像平面の俯瞰画像を表している。また、図１９（ｆ）は、距離画像センサ画像平面の俯瞰画像を表している。これらの俯瞰画像は、書画台２０４上に置かれた物体１９０１が、プロジェクタ２０７及び距離画像センサ部２０８から書画台２０４上のどの位置に置かれているかを平面的に捉えた画像を意味する。そして、俯瞰画像で表される物体位置１９０３及び１９０４はそれぞれ、プロジェクタ２０７及び距離画像センサ部２０８の死角領域となる。
Ｓ１８１５で、投射領域検出部４１５は、Ｓ１８１４で生成した俯瞰画像を足し合わせることによって、プロジェクタ２０７及び距離画像センサ部２０８のうち、少なくともどちらか一方が見えなくなるような死角領域１９０５を求めることができる。投射領域検出部４１５は、死角領域を算出すると処理を終了する。そして、投射領域検出部４１５は、図１８Ａ（ａ）のＳ１６０１へ進み、図１８Ｂ（ｆ）のようにＧＵＩ部品を投射表示する。
【００５５】
Ｓ１６０２で、メイン制御部４０２は、カメラ画像取得部４０７を介して、図１８Ｂ（ｄ）及び図１８Ｂ（ｆ）のようなカメラ画像を１フレーム取得する。
Ｓ１６０３で、メイン制御部４０２は、投射領域検出部４１５により、取得したカメラ画像中のＧＵＩ部品が正しく表示されているか判定する。図１８Ｂ（ｄ）では、ＧＵＩ部品が読み取り領域２０５より外側に表示されている。また、図１８Ｂ（ｆ）では、ＧＵＩ部品が立体物１８２２上にも投射されてしまい（図中の１８３４及び１８３５）、書画台２０４に表示されたメニューボタン１８３２及び１８３３が欠けて表示されてしまっている。このように、表示が正しく行われなった場合はＳ１６０４へ進み、投射領域検出部４１５により投射領域検出処理を行い、ＧＵＩ部品の変形及び表示位置を検出する。
Ｓ１６０４の投射領域検出処理が実行されると、Ｓ１６１１で、投射領域検出部４１５は、ＧＵＩ部品を投射可能な領域を検出するための探索領域を検出する。平面原稿画像が載置された場合には、実施形態１と同様に、読み取り領域２０５中の平面原稿画像を除いた部分（図１６Ｂ（ｆ）を参照）が探索領域１６３３として設定される。一方、立体物が載置された場合には、図１８Ｂ（ｇ）に示すように、平面原稿画像と同様の処理によって算出された探索領域から、Ｓ１８０４で算出された死角領域１８２４を更に除いた部分が探索領域１８２５として設定される。そして、投射領域検出部４１５は、Ｓ１６１２からＳ１６１４までの処理を繰り返すことにより、ＧＵＩ部品を変形することで表示可能な場所を検出する。
最後に、Ｓ１６０５で、ＧＵＩ部品生成表示部４１４は、更新されたＧＵＩ部品を図１８Ｂ（ｅ）及び図１８Ｂ（ｈ）に示すように投射表示して、処理を終了する。
【００５６】
以上の処理により、物体検知部４１０で平面原稿が置かれたか立体物が置かれたかを判別することにより、平面原稿画像や立体物のどちらが置かれた場合に対しても、正しくＧＵＩ部品が表示され、ボタンへのタッチ検出が可能になる。
【００５７】
＜実施形態３＞
実施形態２では、書画台２０４にスキャン対象物が置かれた後に、平面原稿画像か立体物かを識別し、ＧＵＩ部品を正しく表示できるように制御する技術について説明した。ここで、ユーザーがカメラスキャナ１０１を用いた作業する際に正面ではなく、側面からも利用する場合を考慮する。そこで実施形態３では、書画台２０４に対象物を置こうとする動作や、ジェスチャー操作からユーザーの位置を推定し、ユーザーの正面にＧＵＩ部品を表示することで操作性を向上させるための技術について説明する。
【００５８】
図２０は、実施形態３のメイン制御部４０２が実行する処理の一例を示すフローチャートである。なお、実施形態１、２と同じ処理については同じ番号を付与し、詳細な説明を省略する。
メイン制御部４０２は、図２０のＳ１５０１で物体載置待ち処理を行う。メイン制御部４０２は、物体載置待ち処理を開始すると、Ｓ１５１１で初期画面を表示し、Ｓ１５１２で物体検知部４１０を起動する。
Ｓ２００１で、メイン制御部４０２は、物体フレームイン通知を受信したか否かを判定する。物体フレームイン通知は、物体検知部４１０において物体載置検知処理と同時に行われる。なお、ここでいうフレームインとは、カメラ部２０２のスキャン領域（読み取り領域）に物体が進入することをいう。
図２１は、実施形態３における物体検知部４１０の物体載置検知処理の一例を示すフローチャートである。これは実施形態１で実行した物体載置検知処理に、Ｓ２１０１〜Ｓ２１０３の処理が加わったものである。ここでは差分についてのみ詳細な説明を行う。
物体検知部４１０は、図２１のＳ８２１でカメラ画像を１枚取得し、Ｓ８２２で書画台背景差分画との差分を算出する。そして、物体検知部４１０は、Ｓ８２３で差分値（差分量）が所定値以上であるかを判定し、所定値以上でない場合はＳ８２８で現フレームのカメラ画像を前フレームカメラ画像として保存してＳ８２１に戻り以降の処理を繰り返す。一方、物体検知部４１０は、差分値が所定値以上である場合はＳ２１０１へ進む。
【００５９】
Ｓ２１０１で、物体検知部４１０は、物体のフレームインを検知済みかの判定を行う。物体検知部４１０は、フレームインを未検出の場合はＳ２１０２へ進み、物体のフレームイン判定を行う。一方、物体検知部４１０は、フレームインを検知済みの場合はＳ８２４へ進み、以降の物体の載置検知処理を行う。
Ｓ２１０２で、物体検知部４１０は、Ｓ８２２により差分値として検出したオブジェクトが、手なのか物体（平面原稿や立体物）なのかを判別する。物体検知部４１０は、オブジェクトが手であると判別した場合にはＳ８２８へ進み、以降の処理を繰り返す。一方、物体検知部４１０は、オブジェクトが物体であると判別した場合にはＳ２１０３へ進み、メイン制御部４０２に物体フレームイン検知及びフレームイン方向（進入方向）を通知する。そして、物体検知部４１０は、Ｓ８２４以降の処理へと進み、物体が載置されるまで処理を繰り返し、物体が載置されると、Ｓ８２７へ進み、メイン制御部４０２に物体載置を通知して処理を終了する。
図２０に戻り、メイン制御部４０２は、Ｓ２００１において物体載置検知処理のＳ２１０３で送信された物体フレームイン通知及びフレームイン方向を受けるとＳ２００２へ進む。Ｓ２００２で、メイン制御部４０２は、物体フレームイン通知を受け、ユーザーインターフェイス部４０３を介してＧＵＩ部品を更新する処理を行う。なお、本処理はＳ１５０２の処理と同様である。
Ｓ１５１３で、メイン制御部４０２は、物体載置待ち処理を行う。そして、メイン制御部４０２は、図２１の物体載置検知処理のＳ８２７により物体載置の通知を受けると、Ｓ１５０２へ進み、ユーザーインターフェイス部４０３を介して再びＧＵＩ部品更新処理を行う。以後の処理は実施形態２と同様のため説明を省略する。
【００６０】
図２２Ａは、Ｓ２００２及びＳ１５０２のＧＵＩ部品更新処理の一例を示すフローチャートである。本実施形態におけるＧＵＩ部品更新処理は、実施形態１で実行したＧＵＩ部品更新処理にＳ２２０１〜Ｓ２２０５の処理が加わったものであり、ここでは差分についてのみ詳細に説明する。
Ｓ２２０１で、メイン制御部４０２は、物体載置を検知したかどうかを判定する。メイン制御部４０２は、図２０のＳ２００２を実行中の場合は原稿載置を未検出であるため、Ｓ２２０２へ進む。
Ｓ２２０２で、メイン制御部４０２は、物体フレームイン通知を検知したかどうかを判定する。メイン制御部４０２は、Ｓ２００２を実行中の場合は物体フレームインを検知していることからＳ２２０３へ進む。
Ｓ２２０３で、ユーザーインターフェイス部４０３は、ＧＵＩ部品の配置の基準となる基準ラインを物体のフレームインした方向に変更する。ユーザーインターフェイス部４０３は、図２２Ｂ（ｂ）に示すように物体２２１１のフレームインを検知すると、基準ラインを物体２２１１のフレームインした方向に変更する。そして、Ｓ２２０４で、ユーザーインターフェイス部４０３は、図２２Ｂ（ｃ）に示すようにＧＵＩ部品を基準ラインに合わせて回転して投射表示して処理を終了する。
【００６１】
一方、原稿載置検出後の図２０のＳ１５０２でＧＵＩ部品を更新する際には、原稿載置検出済みであるため、メイン制御部４０２は、Ｓ２２０１で原稿載置検知と判定してＳ１８０１へ進む。なお、Ｓ１８０１以降の処理に関しては実施形態２と同様の処理になるため説明を省略する。
図２２Ｂ（ｄ）は、原稿載置検出後にＧＵＩ部品が平面原稿画像２２１１の傾きに合わせて投射表示された例を示している。更に、メイン制御部４０２は、物体載置及び物体フレームイン以外のタイミングにおいてユーザーのジェスチャーが検知された場合には、Ｓ２２０１、Ｓ２２０２、Ｓ２２０５の順に処理を実行する。
Ｓ２２０５で、メイン制御部４０２は、ジェスチャー操作を検知すると図２２Ｂ（ｅ）に示すように、手のフレームインした方向を検出し、ユーザーインターフェイス部４０３を介して、基準ラインの向きを変更する。そして、メイン制御部４０２は、Ｓ２２０４へ進み、ユーザーインターフェイス部４０３を介して、平面原稿画像２２１１の傾きに合わせてＧＵＩ部品の配置及び表示位置を変更し、投射表示する。例えば、ユーザーインターフェイス部４０３は、図２２Ｂ（ｆ）のように手のフレームインした方向に合わせてボタン位置を移動させる。また、ユーザーインターフェイス部４０３は、図２２Ｂ（ｇ）のようにボタンの表示位置は変えずにボタンの向き又はボタンの文字列表記をユーザーの手の方向に合わせて回転させる等して、ＧＵＩ画像を更新する。
【００６２】
以上の処理により、ユーザーが書画台２０４上に物体を置く、又は書画台２０４上でジェスチャー操作を行う際に、ユーザーの操作方向を推定して、ユーザーの操作方向に合わせてＧＵＩ部品の表示制御を行うことができる。これにより、ユーザーのＧＵＩ部品の視認性が向上し、操作性を向上させることができる。
なお、本実施形態では物体や手がフレームインした方向に基づいてユーザーの操作方向を特定する例について説明したが、他の検出方法によってユーザーの操作方向を特定してもよい。また、図３に示すような本装置の構成以外に、ユーザーの方向を特定できるような近距離センサー等を用いたり、人物を特定するために使用するカメラを使用したりするような構成であってもよい。
【００６３】
＜実施形態４＞
実施形態３では、書画台２０４に置かれた対象物の周囲に投射表示されたＧＵＩ部品に対してユーザーがジェスチャー操作を行う際、ユーザーの手が入って来た方向を判定してＧＵＩ部品の配置及び投射領域を変更する技術について説明した。実施形態４では、ユーザーの手が入って来た方向を判定し、既に投射表示されていたＧＵＩ部品に加えて、更にユーザーの方向にもＧＵＩ部品を投射表示する技術について説明する。
実施形態４は、実施形態３に対して、図２３ＡのＧＵＩ部品更新処理のみが異なる。ここでは、実施形態３で説明した図２２ＡのＧＵＩ部品更新処理に、本実施形態で新たに追加されたＳ２３０１〜Ｓ２３０３の処理について説明し、それ以外の処理については説明を省略する。
図２３ＡのＳ２２０１で、メイン制御部４０２は、書画台２０４への物体載置を検知したかどうかを判定し、物体載置を検知したと判定した場合はＳ１８０１へ進み、実施形態３と同じ処理を実行する。一方、メイン制御部４０２は、物体載置を検知しなかったと判定した場合はＳ２２０２へ進む。
Ｓ２２０２で、メイン制御部４０２は、物体フレームインを検知したか判定する。メイン制御部４０２は、物体がフレームインした場合にはＳ２２０３以降の処理へ進み、ユーザーインターフェイス部４０３を介して、ＧＵＩ部品をフレームインした方向に合わせて表示位置を変更する処理を行う。一方、メイン制御部４０２は、ジェスチャーを行う手がフレームインした場合にはＳ２２０５へ進み、ユーザーインターフェイス部４０３を介して、基準ラインを手のフレームインした方向に変更する。
【００６４】
Ｓ２３０３で、ユーザーインターフェイス部４０３は、物体が置かれた際に投射表示したＧＵＩ部品を、手がフレームインした方向に対しても表示するために、追加ＧＵＩ部品を生成する。そして、ユーザーインターフェイス部４０３は、Ｓ１６０１以降の処理で、物体に合わせたＧＵＩ部品表示を行う。図２３Ｂ（ｂ）は、原稿が載置された直後にＧＵＩ部品２３２１〜２３２３が投射表示された様子を示している。ユーザーインターフェイス部４０３は、手がフレームインした際には、図２３Ｂ（ｃ）に示すように追加ＧＵＩ部品２３３１〜２３３３を投射表示する。
Ｓ２２０２で、メイン制御部４０２は、物体のフレームインを検知しなかった場合はＳ２３０１へ進む。
Ｓ２３０１で、メイン制御部４０２は、タッチ操作を検出したか否かを判定する。メイン制御部４０２は、タッチ操作が検出された場合はＳ２３０２へ進み、検出されなかった場合は更新処理を行わず処理を終了する。
Ｓ２３０２で、ユーザーインターフェイス部４０３は、タッチ操作が行われなかったＧＵＩ部品を削除する。図２３Ｂ（ｄ）は、ＧＵＩ部品２３２１へのタッチ操作が行われ、ユーザーインターフェイス部４０３が、Ｓ２３０３で追加表示した追加ＧＵＩ部品２３３１〜２３３３の表示を削除している様子を示している。また、図２３Ｂ（ｅ）は、追加ＧＵＩ部品２３３１へのタッチ操作が行われ、ユーザーインターフェイス部４０３が、Ｓ１８０３で初期表示したＧＵＩ部品２３２１〜２３２３の表示を削除している様子を示している。
【００６５】
以上の処理により、書画台２０４に置かれた物体周囲に表示されたＧＵＩ部品に対してユーザーがジェスチャー操作を行おうとした場合、ユーザーインターフェイス部４０３は、ユーザーが手を挿入した方向にも同じＧＵＩ部品の追加表示を行う。また、ユーザーインターフェイス部４０３は、タッチ操作を検出した場合には、使用されなかったＧＵＩ部品を消去する。これにより、ユーザーのＧＵＩ部品の視認性と操作性とを向上させることができる。
【００６６】
＜実施形態５＞
実施形態１〜４では、書画台２０４上に立体物が載置された場合にも、機器の死角となる領域を避けつつ、ユーザーの操作方向を特定して操作しやすいＧＵＩ部品の配置を行う技術について説明した。実施形態５では、書画台２０４上に立体物を載置した際、立体物自体がユーザーの死角となってしまい、ＧＵＩ部品が隠されてしまうことを回避するための技術について説明する。
実施形態５は、実施形態４に対して、図２４Ａ（ａ）のＧＵＩ部品更新処理のみが異なる。ここでは、実施形態４で説明した図２３ＡのＧＵＩ部品更新処理に、本実施形態で新たに追加されたＳ２４０１のユーザー死角領域算出処理について説明し、それ以外の処理については説明を省略する。
【００６７】
図２４Ｂ（ｃ）に示す立体物２４２１が書画台２０４にフレームインすると、メイン制御部４０２は、Ｓ２２０１とＳ２２０２とにおいて物体フレームインを検知する。Ｓ２２０３で、メイン制御部４０２は、ユーザーインターフェイス部４０３を介して、基準ラインを立体物２４２１のフレームインした方向に更新し、Ｓ２２０４で図２４Ｂ（ｃ）に示すようにＧＵＩ部品の表示位置を変更する。
処理が進み、メイン制御部４０２は、Ｓ２２０１で立体物２４２１の載置を検知すると、Ｓ１８０１からＳ１８０４へ進む。Ｓ１８０４で、メイン制御部４０２は、投射領域検出部４１５を介して物体死角領域の検出を行い、図２４Ｂ（ｄ）に示すような物体死角領域２４２５を検出する。
続いて、Ｓ２４０１で、メイン制御部４０２は、投射領域検出部４１５を介して、ユーザー死角領域算出処理を行う。図２４Ａ（ｂ）は、Ｓ２４０１におけるユーザー死角領域算出処理の一例を示すフローチャートである。なお、Ｓ２３０３においてユーザーのジェスチャー操作時に追加ＧＵＩ部品が生成された後の処理でも本処理が適用される。
Ｓ２４１１で、投射領域検出部４１５は、書画台２０４に載置された立体物２４２１の高さが所定値以上であるかを判定する。投射領域検出部４１５は、立体物２４２１の高さが所定値以上でないと判定した場合には、立体物２４２１による死角が生じない、又は立体物２４２１による影響が少ないと判定し、処理を終了する。一方、投射領域検出部４１５は、立体物２４２１の高さが所定値以上であると判定した場合には、立体物２４２１によってユーザーの死角や操作しにくい領域が生じる可能性があると判定し、Ｓ２４１２へ進む。
【００６８】
Ｓ２４１２で、投射領域検出部４１５は、ユーザーの死角領域を設定する。投射領域検出部４１５は、立体物又はユーザーの手がフレームインした方向をユーザーの視点方向と特定し、立体物２４２１の奥側部分をユーザーの死角領域と判定する。即ち、投射領域検出部４１５は、立体物２４２１を隔てて、ユーザーがいる側と反対側を死角領域と判定する。図２４Ｂ（ｅ）は、ユーザーの操作方向（基準ライン）を基にして、立体物２４２１に対するユーザー死角領域２４２６が算出された様子を示している。そして、投射領域検出部４１５は、図２４Ｂ（ｆ）に示すように物体死角領域２４２５とユーザー死角領域２４２６とを足し合わせた領域を死角領域として設定する。その後、投射領域検出部４１５は、Ｓ１６０４で投射領域を検出する際には、この統合された死角領域を除く部分を投射候補領域とすることで投射領域を検出する。なお、ここでは、ユーザーの視点高さを考慮していないため、物体奥側全体をユーザー死角領域として設定する場合について説明した。しかし、ユーザーの視点高さ（上限値）を事前に設定しておくことで、限定された範囲をユーザー死角領域として設定することも可能である。図２４Ｂ（ｇ）に最終的にＳ１６０５でＧＵＩ部品が投射表示された様子を示す。なお、図２４Ｂ（ｈ）にはユーザー死角領域を考慮せずにＧＵＩ部品を配置した場合を示している。この場合にはＧＵＩ部品２４２２〜２４２４の一部が見えなくなるという状況が発生することになるため、ユーザー操作に支障が出てしまうことがわかる。
【００６９】
以上の処理により、書画台２０４に立体物が置かれた際に、ユーザーの死角領域を推定してＧＵＩ部品表示を行わないようにする。これにより、立体物が邪魔になってＧＵＩ部品が見えない、又は操作ができないという状態を回避することができ、ユーザーのＧＵＩ部品の視認性と操作性とを向上させることができる。
【００７０】
＜実施形態６＞
実施形態１〜５では、書画台２０４上でユーザーが視認及び操作しやすい場所を検出してＧＵＩ部品を投射表示する技術について説明した。実施形態６では、書画台２０４に載置された物体が大きい場合等に、ＧＵＩ部品を表示できる場所がなくなることが生じ得ることを考慮した技術について説明する。
書画台２０４に載置された物体が大きい場合や、立体物による死角領域が広い場合に、図２４Ａ（ａ）のＳ１６０４における投射領域検出処理で、ＧＵＩ部品を投射する領域が検出できない場合がある。そのような場合、ユーザーインターフェイス部４０３は、ユーザーに対して警告メッセージを提示する。
【００７１】
図２５（ａ）〜（ｅ）は、警告メッセージ（警告表示）の一例を示す図である。
図２５（ａ）は、立体物２５０１が載置された際、ユーザーインターフェイス部４０３がユーザー死角領域２５０３として設定された領域を利用して警告２５０４を示した投射例である。この際、立体物による影響を少なくするため、表示するメッセージはユーザー視点位置から最も離れた位置にするのが好ましい。
図２５（ｂ）は、載置された平面原稿画像２５０５上において、ユーザーインターフェイス部４０３が無地領域２５０６を検出し、その領域に対して警告２５０６を示した投射例である。
図２５（ｃ）は、載置された立体物２５０１上において、テクスチャや凹凸が少ない領域２５０７を検出し、ユーザーインターフェイス部４０３がその領域に対して警告２５０７を示した投射例である。これは、立体形状測定部４１３が、カメラ部２０２で撮影された２次元画像から物体領域上でテクスチャの少ない部分を検出し、距離画像センサ部２０８で取得した距離画像上で、距離変化が小さい部分を算出することで検出する。
図２５（ｄ）は、ユーザーインターフェイス部４０３がメッセージ全体を表示するのではなく、スクロールとして表示することで小さな領域２５０８で警告を表示した投射例である。
図２５（ｅ）は、書画台２０４全体又は書画台２０４周囲等の領域２５０９に対し、ユーザーインターフェイス部４０３が警告色を点灯又は点滅等させて表示することでユーザーに警告を提示する投射例である。なお、この場合、書画台２０４上の物体が除去された際に、ユーザーインターフェイス部４０３が、ＧＵＩ部品を表示する場所がなかった旨をユーザーに提示するメッセージを表示させるのが望ましい。
【００７２】
以上の処理により、投射領域検出処理でＧＵＩ部品を投射する領域が検出できない場合に、ユーザーに警告表示を提示することでユーザーの視認性と操作性とを向上させることができる。
なお、この際に表示される警告としては、図２５に示したように対象物の移動方向を指定して移動を促すメッセージであってもよいし、ユーザー自身の移動を促すメッセージであってもよい。これにより、立体物による死角領域が広い場合においても、ユーザーの視認性と操作性との向上に対して、より柔軟に対応することができる。
【００７３】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００７４】
以上、上述した各実施形態によれば、カメラスキャナ１０１等の画像処理装置におけるユーザーの操作性を向上させることができる。より具体的には、プロジェクタ２０７によるユーザーインターフェイスの投射と、カメラ部２０２及び距離画像センサ部２０８により、物体検知やジェスチャー認識が行える。その上で、ユーザーが書画台２０４上に対象物を置いたことを検知し、書画台２０４上に対象物に合わせた位置・向きで操作画面を投射表示することができる。これにより、対象物に対して適切に操作画面が表示されるため、ユーザーの操作性を向上させることが可能となる。
【００７５】
以上、本発明の好ましい形態について詳述したが、本実施形態は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００７６】
１０１  カメラスキャナ、２０１  コントローラ部、２０２  カメラ部、２０４  書画台、２０７  プロジェクタ、２０８  距離画像センサ部
【図１】
2015212892.tif 000007
【図２】
2015212892.tif 000008
【図３】
2015212892.tif 000009
【図４】
2015212892.tif 000010
【図５】
2015212892.tif 000011
【図６】
2015212892.tif 000012
【図７】
2015212892.tif 000013
【図８】
2015212892.tif 000014
【図９】
2015212892.tif 000015
【図１０】
2015212892.tif 000016
【図１１】
2015212892.tif 000017
【図１３】
2015212892.tif 000018
【図１４】
2015212892.tif 000019
【図１５】
2015212892.tif 000020
【図１６Ａ】
2015212892.tif 000021
【図１６Ｂ】
2015212892.tif 000022
【図１７】
2015212892.tif 000023
【図１８Ａ】
2015212892.tif 000024
【図１８Ｂ】
2015212892.tif 000025
【図１９】
2015212892.tif 000026
【図２０】
2015212892.tif 000027
【図２１】
2015212892.tif 000028
【図２２Ａ】
2015212892.tif 000029
【図２２Ｂ】
2015212892.tif 000030
【図２３Ａ】
2015212892.tif 000031
【図２３Ｂ】
2015212892.tif 000032
【図２４Ａ】
2015212892.tif 000033
【図２４Ｂ】
2015212892.tif 000034
【図２５】
2015212892.tif 000035
【図１２】
2015212892.tif 000036