(57)【要約】【課題】良好な結果を得るための最適な画像が異なるような複数の検知機能を１つの撮影デバイスで精度よく実現すること。【解決手段】カメラスキャナ101のメイン制御部402は、ジェスチャー検知部409が行うジェスチャー検知処理、および、物体検知部410が物体検知処理のうち、優先する検知処理を判定し（S1001）、撮影パラメータを、前記優先する検知処理と判定された検知処理に応じた撮影パラメータに切り替えるように制御する（S1002、S1005）。【選択図】図１０
2018191195.tif 000002
【特許請求の範囲】
【請求項１】
所定の撮影領域を撮影する撮影手段と、
前記撮影手段により撮影された画像データに基づいてそれぞれ異なる検知処理を行う複数の検知手段と、
前記複数の検知手段がそれぞれ行う検知処理のうち優先する検知処理を判定する判定手段と、
前記撮影手段の撮影モードを、前記判定手段により優先する検知処理と判定された検知処理に応じたモードに切り替える切り替え手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記複数の検知手段は、ジェスチャーを検知する第１検知処理を行う第１検知手段と、前記撮影領域において物体の静止、移動又は除去がなされたことを検知する第２検知処理を行う第２検知手段とを含むことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記撮影領域に操作画面を表示する表示手段を有し、
前記判定手段は、前記撮影領域に表示される操作画面の遷移、及び前記操作画面に対する操作の少なくともいずれかに基づいて、優先する検知処理を判定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記判定手段は、前記撮影領域の中に優先する検知処理を定義した領域を設定し、前記第２の検知処理を優先する領域内での移動物体の有無に基づいて優先する検知処理を判定することを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記判定手段は、前記撮影領域の中に優先する検知処理を定義した領域を設定し、前記第２の検知処理を優先する領域内での物体の位置に基づいて優先する検知処理を判定することを特徴とする請求項２に記載の画像処理装置。
【請求項６】
前記判定手段は、前記撮影領域の中に優先する検知処理を定義した優先領域を設定し、前記第１の検知処理で所定のジェスチャーが検知された領域の近傍に設定される前記優先領域に基づいて優先する検知処理を判定することを特徴とする請求項２に記載の画像処理装置。
【請求項７】
前記判定手段は、前記第１の検知処理で所定の手の形状が検知されたことに基づいて優先する検知処理を判定することを特徴とする請求項２に記載の画像処理装置。
【請求項８】
前記撮影手段は、設定される撮影パラメータに基づいて撮影を行うものであり、
前記撮影手段の撮影モードの切り替えは、前記撮影パラメータの切り替えであることを特徴とする請求項１〜７のいずれか１項に記載の画像処理装置。
【請求項９】
前記撮影パラメータは、露光時間、ＩＳＯ感度、絞りの少なくともいずれかを含むこと特徴とする請求項８に記載の画像処理装置。
【請求項１０】
所定の撮影領域を撮影する撮影手段と、前記撮影手段により撮影された画像データに基づいてそれぞれ異なる検知処理を行う複数の検知手段と、を有する画像処理装置の制御方法であって、
前記複数の検知手段がそれぞれ行う検知処理のうち優先する検知処理を判定する判定ステップと、
前記撮影手段の撮影モードを、前記判定ステップにて優先する検知処理と判定された検知処理に応じたモードに切り替える切り替えステップと、
を有することを特徴とする画像処理装置の制御方法。
【請求項１１】
コンピュータを、請求項１〜１０のいずれか１項に記載の判定手段および切り替え手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影デバイスで撮影した画像を処理する画像処理装置、画像処理装置の制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、撮影デバイスから得られる画像を基に、ユーザのジェスチャー操作を認識して対応する処理を実行するように制御するシステムや、物体（人や物）の動きを検知してイベントを通知するシステムなどが提案されている（特許文献１、２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−０２１７６０号公報
【特許文献２】特開２０１４−１３５６１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、撮影デバイスから取得した画像を解析して人の手や指等を検出し、ジェスチャー操作として認識する技術（ジェスチャー検知機能）が提案されている。特許文献２では、撮影デバイスから取得した画像を解析して検出対象である人や物の動きを検知する技術（物体検知機能）が提案されている。しかし、上記従来の技術はいずれも、ジェスチャー検知機能や物体検知機能などのいずれか１つの検知機能を実現するものであり、１つの撮影デバイスで２つの検知機能を実現するものではなかった。
【０００５】
例えば１つの撮影デバイスでジェスチャー検知機能と、物体検知機能の双方を実現させようとした場合、それぞれの検知機能で検知性能を最大限発揮できるような画像の特性が異なるため、従来の技術では十分な性能を満たすことができなかった。
ジェスチャー検知機能では、動きに強い連続画像が必要となるため、露光時間を短くしてでも高フレームレートを満たすことが望ましい。一方、物体検知では、物体をはっきりと検出するために、露光時間を長くしてでも鮮明な画像を取ることが望ましい。このため、１つの撮影デバイスを用いて、上述のような異なる２つの要望を同時に満たすことができなかった。従来では、良好な結果を得るための最適な画像が異なるような複数の検知機能（例えば物体検知機能、ジェスチャー検知機能）を両立させるためには、個々の機能ごとに撮影デバイスを用意する必要があった。
【０００６】
このように、従来の技術では、１つの撮影デバイスで撮影された画像を用いてジェスチャー検知機能や物体検知機能などの良好な結果を得るための最適な画像が異なるような複数の検知機能を精度よく実現するができなかった。
【０００７】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、良好な結果を得るための最適な画像が異なるような複数の検知機能を１つの撮影デバイスで精度よく実現することができる仕組みを提供することである。
【課題を解決するための手段】
【０００８】
本発明は、所定の撮影領域を撮影する撮影手段と、前記撮影手段により撮影された画像データに基づいてそれぞれ異なる検知処理を行う複数の検知手段と、前記複数の検知手段がそれぞれ行う検知処理のうち優先する検知処理を判定する判定手段と、前記撮影手段の撮影モードを、前記判定手段により優先する検知処理と判定された検知処理に応じたモードに切り替える切り替え手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、良好な結果を得るための最適な画像が異なるような複数の検知機能を１つの撮影デバイスで精度よく実現することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施例の画像処理装置を示すカメラスキャナを含むネットワーク構成図
【図２】本実施例のカメラスキャナの構成の一例を説明する図
【図３】コントローラ部のハードウェア構成図
【図４】本実施例のカメラスキャナの制御用プログラムの機能構成図
【図５Ａ】距離画像取得部の処理および距離画像センサを説明する図
【図５Ｂ】距離画像取得部の処理および距離画像センサを説明する図
【図６Ａ】ジェスチャー検知部の処理を説明する図
【図６Ｂ】ジェスチャー検知部の処理を説明する図
【図７Ａ】物体検知部の処理を説明する図
【図７Ｂ】物体検知部の処理を説明する図
【図８Ａ】スキャン処理部が実行する書籍原稿スキャン処理を説明する図
【図８Ｂ】スキャン処理部が実行する書籍原稿スキャン処理を説明する図
【図８Ｃ】スキャン処理部が実行する書籍原稿スキャン処理を説明する図
【図９】実施例１におけるＵＩ表示と操作者の操作の様子を示す図
【図１０】実施例１の処理を説明するフローチャート
【図１１】実施例２におけるＵＩ表示と操作者の操作の様子を示す図
【図１２】実施例２の処理を説明するフローチャート
【図１３】実施例３を説明する図
【図１４】実施例４を説明する図
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を参照して説明する。
【実施例１】
【００１２】
図１は、本発明の画像処理装置の一実施例を示すスタンド型スキャナを含むネットワーク構成の一例を示す図である。
カメラスキャナ101は、本実施例のスタンド型スキャナである。カメラスキャナ101は、イーサネット（登録商標）等のネットワーク104を介して、ホストコンピュータ102およびプリンタ103と通信可能に接続されている。
【００１３】
カメラスキャナ101は、ホストコンピュータ102からの指示により、カメラスキャナ101から画像を読み取るスキャン機能や、スキャンデータをプリンタ103により出力するプリント機能の実行が可能である。また、カメラスキャナ101は、ホストコンピュータ102を介さず、カメラスキャナ101への直接の指示により、スキャン機能、プリント機能の実行も可能である。
【００１４】
＜カメラスキャナの構成＞
図２は、カメラスキャナ101の構成の一例を説明する図である。
図２（ａ）に示すように、カメラスキャナ101は、コントローラ部201、カメラ部202、腕部203、短焦点プロジェクタ207、距離画像センサ部208を含む。
【００１５】
カメラスキャナの本体であるコントローラ部201と、撮影を行うためのカメラ部202、短焦点プロジェクタ207および距離画像センサ部208は、腕部203により連結されている。腕部203は、関節を用いて曲げ伸ばしが可能である。
【００１６】
図２（ａ）には、カメラスキャナ101が設置されている書画台204も示している。カメラスキャナ101のカメラ部202および距離画像センサ部208のレンズは、書画台204方向に向けられている。カメラスキャナ101は、破線で囲まれた読み取り領域205内の画像を読み取り可能である。図２の例では、読み取り領域205内に原稿206が置かれているため、カメラスキャナ101により原稿206を読み取り可能である。
【００１７】
また、書画台204内にはターンテーブル209が設けられている。ターンテーブル209は、コントローラ部201からの指示によって回転することが可能である。ターンテーブル209を回転することにより、ターンテーブル209上に置かれた物体とカメラ部202との角度を変えることができる。
【００１８】
なお、カメラ部202は、単一解像度で画像を撮影するものとしてもよいが、高解像度画像撮影と低解像度画像撮影が可能なものとすることが好ましい。
【００１９】
また、図２には示していないが、カメラスキャナ101は、図３に示すように、ＬＣＤタッチパネル330およびスピーカ340をさらに備えることもできる。さらに、カメラスキャナ101は、周囲の環境情報を収集するための人感センサ、照度センサ、加速度センサなどの各種センサデバイスを含むこともできる。
【００２０】
図２（ｂ）は、カメラスキャナ101における座標系について表している。
カメラスキャナ101では、各ハードウェアデバイスに対して、「カメラ座標系」、「距離画像センサ座標系」、「プロジェクタ座標系」という座標系が定義されている。これらの座標系は、カメラ部202および距離画像センサ部208のＲＧＢカメラ363が撮影する画像平面、あるいはプロジェクタ207が投影する画像平面をＸＹ平面とし、画像平面に直交する方向をＺ方向として定義したものである。
【００２１】
さらに、本実施例では、これらの独立した座標系の３次元データを統一的に扱えるようにするために「直交座標系」が定義されている。直交座標系では、書画台204を含む平面をＸＹ平面とし、このＸＹ平面から上方に垂直な向きをＺ軸とする。
【００２２】
以下、座標系を変換する場合の例を、図２（ｃ）を用いて説明する。
図２（ｃ）は、直交座標系とカメラ座標系とを用いて表現された空間と、カメラ部202が撮影する画像平面との関係を示す。
直交座標系における３次元点Ｐ［Ｘ，Ｙ，Ｚ］は、（１）式によって、カメラ座標系における３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］へ変換できる。
【００２３】
【数１】
2018191195.tif 000003
【００２４】
ここで、Ｒｃおよびｔｃは、直交座標系に対するカメラの姿勢（回転）と位置（並進）によって求まる外部パラメータによって構成され、Ｒｃを３×３の回転行列、ｔｃを並進ベクトルと呼ぶ。
【００２５】
逆に、カメラ座標系で定義された３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］は（２）式によって、直交座標系における３次元点Ｐ［Ｘ，Ｙ，Ｚ］への変換することができる
【００２６】
【数２】
2018191195.tif 000004
【００２７】
さらに、カメラ部202で撮影される２次元のカメラ画像平面は、カメラ部202によって３次元空間中の３次元情報が２次元情報に変換されたものである。即ち、カメラ座標系上での３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］を、（３）式によってカメラ画像平面での２次元座標ｐｃ［ｘｐ，ｙｐ］に透視投影変換することによって変換することができる。
【００２８】
【数３】
2018191195.tif 000005
【００２９】
ここで、Ａは、カメラの内部パラメータと呼ばれ、焦点距離と画像中心などで表現される３×３の行列である。
【００３０】
以上のように、（１）式と（３）式を用いることで、直交座標系で表された３次元点群を、カメラ座標系での３次元点群座標やカメラ画像平面に変換することができる。なお、各ハードウェアデバイスの内部パラメータおよび直交座標系に対する位置姿勢（外部パラメータ）は、公知のキャリブレーション手法により予めキャリブレーションされているものとする。以後、特に断りがなく３次元点群と表記した場合は、直交座標系における３次元データを表しているものとする。
【００３１】
＜カメラスキャナ101のコントローラ部201のハードウェア構成＞
図３は、カメラスキャナ101の本体であるコントローラ部201のハードウェア構成の一例を示す図である。
【００３２】
図３に示すように、コントローラ部201は、システムバス301に接続されたＣＰＵ302、ＲＡＭ303、ＲＯＭ304、ＨＤＤ305及びネットワークＩ／Ｆ306を有する。さらに、コントローラ部201は、画像処理プロセッサ307、カメラＩ／Ｆ308、ディスプレイコントローラ309、シリアルＩ／Ｆ310、オーディオコントローラ311及びＵＳＢコントローラ312を有する。
【００３３】
ＣＰＵ302は、コントローラ部201全体の動作を制御する中央演算装置である。ＲＡＭ303は、揮発性メモリである。ＲＯＭ304は不揮発性メモリであり、ＣＰＵ302の起動用プログラム等が格納されている。ＨＤＤ305は、ＲＡＭ303と比較して大容量なハードディスクドライブ（ＨＤＤ）である。ＨＤＤ305には、コントローラ部201の実行する、カメラスキャナ101の制御用プログラム等が格納されている。
【００３４】
ＣＰＵ302は、電源ＯＮ等の起動時、ＲＯＭ304に格納されている起動用プログラムを実行する。この起動用プログラムは、ＨＤＤ305に格納されている制御用プログラムを読み出し、ＲＡＭ303上に展開するためのものである。ＣＰＵ302は、起動用プログラムを実行すると、続けてＲＡＭ303上に展開した制御用プログラムを実行し、制御を行う。また、ＣＰＵ302は、制御用プログラムによる動作に用いるデータもＲＡＭ303上に格納して読み書きを行う。ＨＤＤ305には、さらに制御用プログラムによる動作に必要な各種設定や、カメラ入力によって生成された画像データ等を格納することができる。ＨＤＤ305は、ＣＰＵ302によって読み書き可能である。ＣＰＵ302は、ネットワークＩ／Ｆ306を介してネットワーク104上の他の機器との通信を行う。
【００３５】
画像処理プロセッサ307は、ＲＡＭ303に格納された画像データを読み出して処理し、またＲＡＭ303へ書き戻す。なお、画像処理プロセッサ307が実行する画像処理は、回転、変倍、色変換等を含む。
【００３６】
カメラＩ／Ｆ308は、カメラ部202および距離画像センサ部208と接続される。カメラＩ／Ｆ308は、ＣＰＵ302からの指示に応じて、カメラ部202から画像データを、距離画像センサ部208から距離画像データ（距離情報）を取得して、ＲＡＭ303へ書き込む。また、カメラＩ／Ｆ308は、ＣＰＵ302からの制御コマンドを、カメラ部202及び距離画像センサ部208へ送信し、カメラ部202及び距離画像センサ部208の設定を行う。距離画像センサ部208については後述する図５で説明する。
【００３７】
なお、コントローラ部201は、ディスプレイコントローラ309、シリアルＩ／Ｆ310、オーディオコントローラ311およびＵＳＢコントローラ312のうち少なくとも１つを備える。
【００３８】
ディスプレイコントローラ309は、ＣＰＵ302の指示に応じて、ディスプレイへの画像データの表示を制御する。ここで、ディスプレイコントローラ309は、短焦点プロジェクタ207およびＬＣＤタッチパネル330に接続されており、これらの表示を制御する。
【００３９】
シリアルＩ／Ｆ310は、シリアル信号の入出力を行う。ここでは、シリアルＩ／Ｆ310はターンテーブル209に接続され、ＣＰＵ302の回転開始・終了および回転角度の指示をターンテーブル209へ送信する。また、シリアルＩ／Ｆ310はＬＣＤタッチパネル330に接続され、ＣＰＵ302はＬＣＤタッチパネル330が押下されたときに、シリアルＩ／Ｆ310を介して押下された座標を取得する。
【００４０】
オーディオコントローラ311はスピーカ340に接続され、ＣＰＵ302の指示に応じて音声データをアナログ音声信号に変換し、スピーカ340を通じて音声を出力する。
【００４１】
ＵＳＢコントローラ312は、ＣＰＵ302の指示に応じて外付けのＵＳＢデバイスの制御を行う。ここでは、ＵＳＢコントローラ312は、ＵＳＢメモリやＳＤカードなどの外部メモリ350と接続され、外部メモリ350へのデータの読み書きを行う。
【００４２】
＜カメラスキャナ101の制御用プログラムの機能構成＞
図４（ａ）は、ＣＰＵ302が実行するカメラスキャナ101の制御用プログラムの機能構成401の一例を示す図である。カメラスキャナ101の制御用プログラムは前述のようにＨＤＤ305に格納され、ＣＰＵ302が起動時にＲＡＭ303上に展開して実行する。即ち、図４（ａ）に示す機能構成401は、ＣＰＵ302がＨＤＤ305に格納されるカメラスキャナ101の制御用プログラムをＲＡＭ303にロードして実行することにより実現される。
また、図４（ｂ）は、機能構成401の各モジュールの処理の関係を示すシーケンス図である。
【００４３】
機能構成401において、メイン制御部402は制御の中心であり、機能構成401内の他の各モジュールを図４（ｂ）に示すように制御する。詳細は、以下に示す各モジュールの説明とともに説明する。
【００４４】
画像取得部416は、画像入力処理を行うモジュールである。画像取得部416は、カメラ画像取得部407、距離画像取得部408を有する。
カメラ画像取得部407は、カメラＩ／Ｆ308を介してカメラ部202が出力する画像データを取得し、ＲＡＭ303へ格納する。
距離画像取得部408は、カメラＩ／Ｆ308を介して距離画像センサ部208が出力する距離画像データを取得し、ＲＡＭ303へ格納する。距離画像取得部408の処理の詳細は、後述する図５Ａ、図５Ｂを用いて説明する。
【００４５】
認識処理部417は、カメラ画像取得部407、距離画像取得部408が取得する画像データから書画台204上の物体の動きを検知して認識するモジュールである。認識処理部417は、ジェスチャー検知部409、物体検知部410を有する。
【００４６】
ジェスチャー検知部409は、画像取得部416から書画台204上の画像を取得し続け、タッチなどのジェスチャーを検知するとメイン制御部402へ通知する。ジェスチャー検知部409の処理の詳細は図６を用いて後述する。
【００４７】
物体検知部410は、画像取得部416から書画台204を撮影した画像を取得し、書画台204上に物体が置かれるタイミング、物体が置かれて静止するタイミング、あるいは物体が取り除かれるタイミングなどを検知する処理を行う。物体検知部410の処理の詳細は図７を用いて後述する。物体検知部410は、メイン制御部402からの要求により、物体検知処理を開始し、物体検知処理で発行されたイベントを、メイン制御部402へ通知する。
【００４８】
画像処理部418は、カメラ部202および距離画像センサ部208から取得した画像を画像処理プロセッサ307で解析するために用いられる。画像処理部418は、スキャン処理部411、各種画像処理モジュール（例えばＯＣＲ処理部412等）を有する。
【００４９】
スキャン処理部411は、対象物のスキャンを行うモジュールである。スキャン処理部411は、メイン制御部402からの要求により、平面原稿／書籍／立体物にそれぞれ適した処理を実行し、それぞれに応じた形式のデータを出力する。スキャン処理部411で実行される処理の１つである書籍原稿スキャン処理の詳細については図８を用いて後述する。
ＯＣＲ処理部412は、文字認識処理を行う。
【００５０】
ジェスチャー検知部409やスキャン処理部411は、画像処理部418の各種画像処理モジュールを利用して処理を実行する。
【００５１】
ユーザインタフェース部403は、メイン制御部402からの要求を受け、メッセージやボタン等のＧＵＩ部品を生成する。そして、ユーザインタフェース部403は、表示部406へ生成したＧＵＩ部品の表示を要求する。
【００５２】
表示部406は、ディスプレイコントローラ309を介して、プロジェクタ207もしくはＬＣＤタッチパネル330へ要求されたＧＵＩ部品の表示を行う。プロジェクタ207は、書画台204に向けて設置されているため、書画台204上にＧＵＩ部品を投射することが可能となっている。また、ユーザインタフェース部403は、ジェスチャー検知部409が認識したタッチ等のジェスチャー操作、あるいはシリアルＩ／Ｆ310を介したＬＣＤタッチパネル330からの入力操作、そしてさらにそれらの座標を受信する。そして、ユーザインタフェース部403は、描画中の操作画面の内容と操作座標を対応させて操作内容（押下されたボタン等）を判定する。ユーザインタフェース部403は、この操作内容をメイン制御部402へ通知することにより、操作者の操作を受け付ける。
【００５３】
ネットワーク通信部404は、ネットワークＩ／Ｆ306を介して、ネットワーク104上の他の機器と例えばＴＣＰ／ＩＰによる通信を行う。
データ管理部405は、制御用プログラム401の実行において生成した作業データなど様々なデータをＨＤＤ305上の所定の領域へ保存し、管理する。データ管理部405が管理するデータは、例えば、画像取得部416によって撮影され、スキャン処理部411により平面原稿／書籍／立体物に応じた形式で出力されたスキャンデータなどである。
【００５４】
＜距離画像センサおよび距離画像取得部の説明＞
図５Ａ、図５Ｂは、距離画像取得部408の処理および距離画像センサ部208を説明する図である。
距離画像センサ部208は、赤外線によるパターン投射方式の距離画像センサである。赤外線パターン投射部361は、対象物に対して、人の目には不可視である赤外線によって３次元形状測定パターンを投射する。赤外線カメラ362は、対象物に投射した３次元形状測定パターンを読み取るカメラである。ＲＧＢカメラ363は、人の目に見える可視光をＲＧＢ信号で撮影するカメラである。
【００５５】
図５Ａ（ａ）は、距離画像取得部408の処理を説明するフローチャートである。図５Ａ（ａ）のフローチャートに示す処理は、距離画像取得部408により実行される。即ち、図５Ａ（ａ）に示す処理は、ＣＰＵ302がＨＤＤ305に格納されるカメラスキャナ101の制御用プログラムをＲＡＭ303にロードして実行することにより実現される。
また、図５Ｂの（ｂ）〜（ｄ）はパターン投射方式による距離画像の計測原理を説明するための図である。
【００５６】
距離画像取得部408は、処理を開始すると、図５Ａ（ａ）のS501において、距離画像センサ部208を用いて、例えば図５Ｂ（ｂ）に示すように、赤外線パターン投射部361を用いて赤外線による３次元形状測定パターン522を対象物521に投射する。
【００５７】
次に、S502において、距離画像取得部408は、ＲＧＢカメラ363を用いて対象物を撮影したＲＧＢカメラ画像523を１フレーム取得する。また、距離画像取得部408は、赤外線カメラ362を用いて、上記S501で投射した３次元形状測定パターン522を撮影した赤外線カメラ画像524を１フレーム取得する。なお、赤外線カメラ362とＲＧＢカメラ363とでは設置位置が異なるため、図５Ｂ（ｃ）に示すようにそれぞれで撮影される２つのＲＧＢカメラ画像523および赤外線カメラ画像524の撮影領域が異なる。そこで、距離画像取得部408は、以下のS503、S504の処理においてこれらの対応付けを行う。
【００５８】
S503において、距離画像取得部408は、赤外線カメラ362の座標系からＲＧＢカメラ363の座標系への座標系変換を用いて赤外線カメラ画像524をＲＧＢカメラ画像523の座標系に合わせる。なお、赤外線カメラ362とＲＧＢカメラ363の相対位置や、それぞれの内部パラメータは事前のキャリブレーション処理により既知であるとする。
【００５９】
次に、S504において、距離画像取得部408は、図５Ｂ（ｄ）に示すように、３次元形状測定パターン522と上記S503で座標変換を行った赤外線カメラ画像524間での対応点を抽出する。例えば、距離画像取得部408は、赤外線カメラ画像524上の1点を３次元形状測定パターン522上から探索して、同一の点が検出された場合に対応付けを行う。あるいは、距離画像取得部408は、赤外線カメラ画像524の画素の周辺のパターンを３次元形状測定パターン522上から探索し、一番類似度が高い部分と対応付けてもよい。
【００６０】
次に、S505において、距離画像取得部408は、赤外線パターン投射部361と赤外線カメラ362を結ぶ直線を基線525（図５Ｂ（ｂ））として三角測量の原理を用いて計算を行うことにより、赤外線カメラ362からの距離を算出する。距離画像取得部408は、上記S504で対応付けができた画素については、赤外線カメラ362からの距離を算出して画素値として保存し、対応付けができなかった画素については、距離の計測ができなかった部分として無効値を保存する。距離画像取得部408は、これを上記S503で座標変換を行った赤外線カメラ画像524の全画素に対して行うことで、各画素に距離値が入った距離画像を生成する。
【００６１】
次に、S506において、距離画像取得部408は、距離画像の各画素にＲＧＢカメラ画像523のＲＧＢ値を保存することにより、1画素につきＲ、Ｇ、Ｂ、距離の４つの値を持つ距離画像を生成する。ここで取得した距離画像は、距離画像センサ部208のＲＧＢカメラ363で定義された距離画像センサ座標系が基準となっている。そこで、S507において、距離画像センサ部208は、図２（ｂ）を用いて上述したように、距離画像センサ座標系として得られた距離データを直交座標系における３次元点群に変換する。以後、特に指定がなく３次元点群と表記した場合は、直交座標系における３次元点群を示すものとする。
そして、上記S507の処理の後、距離画像取得部408は、本フローチャートの処理を終了する。
【００６２】
なお、本実施例では、上述したように、距離画像センサ部208として赤外線パターン投射方式を採用しているが、他の方式の距離画像センサを用いることも可能である。例えば、２つのＲＧＢカメラでステレオ立体視を行うステレオ方式や、レーザー光の飛行時間を検出することで距離を測定するＴＯＦ（Time of Flight）方式など、他の計測手段を用いても構わない。
【００６３】
＜ジェスチャー検知部の説明＞
図６Ａ、図６Ｂは、ジェスチャー検知部409の処理を説明する図である。
図６Ａ（ａ）は、ジェスチャー検知部409の処理の詳細を説明するフローチャートである。図６Ａ（ａ）のフローチャートに示す処理は、ジェスチャー検知部409により実行される。即ち、図６Ａ（ａ）に示す処理は、ＣＰＵ302がＨＤＤ305に格納されるカメラスキャナ101の制御用プログラムをＲＡＭ303にロードして実行することにより実現される。
また、図６Ｂの（ｂ）〜（ｄ）は、指先検出処理の方法を模式的に表した図である。
【００６４】
ジェスチャー検知部409は、処理を開始すると、図６Ａ（ａ）のS601において、初期化処理を行う。初期化処理では、ジェスチャー検知部409は、距離画像取得部408から距離画像を１フレーム取得する。ここで、ジェスチャー検知部409の処理開始時は書画台204上に対象物が置かれていない状態であるため、初期状態として書画台204の平面の認識を行う。つまり、ジェスチャー検知部409は、取得した距離画像から最も広い平面を抽出し、その位置と法線ベクトル（以下「書画台204の平面パラメータ」と呼ぶ）を算出し、ＲＡＭ303に保存する。
【００６５】
続いて、S602において、ジェスチャー検知部409は、書画台204上に存在する物体の３次元点群を取得する（S621、S622）。以下、詳細に説明する。
S621において、ジェスチャー検知部409は、距離画像取得部408から距離画像と３次元点群を１フレーム取得する。さらに、S622において、ジェスチャー検知部409は、書画台204の平面パラメータを用いて、取得した３次元点群から書画台204を含む平面にある点群を除去する。
【００６６】
次に、S603において、ジェスチャー検知部409は、上記S602で取得した３次元点群から操作者の手の形状および指先を検出する処理を行う（S631〜S634）。ここで、図６Ｂの（ｂ）〜（ｄ）に示す、指先検出処理の方法を模式的に表した図を用いて、S603の処理について詳細を説明する。
【００６７】
まず、S631において、ジェスチャー検知部409は、上記S602で取得した３次元点群から、書画台204を含む平面から所定の高さ以上にある、肌色の３次元点群を抽出することで、手の３次元点群を得る。図６Ｂ（ｂ）の661は、抽出した手の３次元点群の一例を表している。
【００６８】
次に、S632において、ジェスチャー検知部409は、上記S631で抽出した手の３次元点群を、書画台204の平面に射影した２次元画像を生成して、その手の外形を検出する。図６Ｂ（ｂ）の662は、書画台204の平面に投影した３次元点群の一例を表す。投影は、点群の各座標を、書画台204の平面パラメータを用いて投影すればよい。また、図６Ｂ（ｃ）に示すように、投影した３次元点群から、ｘｙ座標の値だけを取り出せば、ｚ軸方向から見た２次元画像663として扱うことができる。この時、ジェスチャー検知部409は、手の３次元点群の各点が、書画台204の平面に投影した２次元画像の各座標のどれに対応するかを、記憶しておくものとする。
【００６９】
次に、S633において、ジェスチャー検知部409は、上記S632で検出した手の外形上の各点について、その点での外形の曲率を算出し、算出した曲率が所定値より小さい点を指先として検出する。図６Ｂ（ｄ）は、外形の曲率から指先を検出する方法を模式的に表したものである。図６Ｂ（ｄ）において、664は、書画台204の平面に投影された２次元画像663の外形を表す点の一部を表している。ここで、664のような、外形を表す点のうち、隣り合う５個の点を含むように円を描くことを考える。円665、667が、その例である。このような円を、全ての外形の点に対して順に描き、その直径（例えば666、668）が所定の値より小さい（曲率が小さい）ことを以て、指先とする。この例では、隣り合う５個の点としたが、その数は限定されるものではない。また、ここでは曲率を用いたが、外形に対して楕円フィッティングを行うことで、指先を検出してもよい。
【００７０】
次に、S634において、ジェスチャー検知部409は、上記S633で検出した指先の個数および各指先の座標を算出する。この時、前述したように、書画台204に投影した２次元画像の各点と、手の３次元点群の各点の対応関係を記憶しているため、各指先の３次元座標を得ることができる。ここでは、３次元点群から２次元画像に投影した画像から指先を検出する方法を説明したが、指先検出の対象とする画像は、これに限定されるものではない。例えば、距離画像の背景差分や、ＲＧＢカメラ画像の肌色領域から手の領域を抽出し、上に述べたのと同様の方法（外形の曲率計算等）で、手領域のうちの指先を検出してもよい。この場合、検出した指先の座標はＲＧＢカメラ画像や距離画像といった、２次元画像上の座標であるため、その座標における距離画像の距離情報を用いて、直交座標系の３次元座標に変換する必要がある。この時、指先点となる外形上の点ではなく、指先を検出するときに用いた、曲率円の中心を指先点としてもよい。
【００７１】
次に、S604において、ジェスチャー検知部409は、検出した手の形状および指先からのジェスチャー判定処理（S641〜Ｓ646）を行う。以下、詳細に説明する。
S641において、ジェスチャー検知部409は、上記S603で検出した指先が１つかどうか判定する。ジェスチャー検知部409は、検出した指先が１つでないと判定した場合（S641でNOの場合）、S646に処理を進める。S646において、ジェスチャー検知部409は、ジェスチャーなしと判定し、S605に処理を進める。
【００７２】
一方、上記S641において、ジェスチャー検知部409は、検出した指先が１つであると判定した場合（S641でYESの場合）、S642に処理を進める。
S642において、ジェスチャー検知部409は、検出した指先と書画台204を含む平面との距離を算出する。
【００７３】
次に、S643において、ジェスチャー検知部409は、上記S642で算出した距離が微小な所定値以下であるかどうかを判定する。ジェスチャー検知部409は、算出した距離が微小な所定値以下であると判定した場合（S643でYESの場合）、S644に処理を進める。S644において、ジェスチャー検知部409は、指先が書画台204へタッチした、タッチジェスチャーありと判定し、S605に処理を進める。
【００７４】
一方、上記S643において、ジェスチャー検知部409は、上記S642で算出した距離が微小な所定値以下でないと判定した場合（S643でNOの場合）、S645に処理を進める。S645において、ジェスチャー検知部409は、指先が移動したジェスチャー（タッチはしていないが指先が書画台204上に存在するジェスチャー）と判定し、S605に処理を進める。
【００７５】
S605において、ジェスチャー検知部409は、上記S644、S645又はS646で判定したジェスチャーをメイン制御部402へ通知し、S602へ処理を戻し、ジェスチャー検知処理を繰り返す。
なお、ここでは一本指でのジェスチャー検知について説明を行ったが、複数の指あるいは複数の手でのジェスチャー検知に応用することも可能である。
【００７６】
＜物体検知部の処理＞
図７Ａ、図７Ｂは、物体検知部410の処理を説明する図である。
図７Ａの（ａ）、（ｂ）は、物体検知部410の処理の詳細を説明するフローチャートである。図７Ａ（ａ）、（ｂ）のフローチャートに示す処理は、物体検知部410により実行される。即ち、図７Ａ（ａ）、（ｂ）に示す処理は、ＣＰＵ302がＨＤＤ305に格納されるカメラスキャナ101の制御用プログラムをＲＡＭ303にロードして実行することにより実現される。
また、図７Ｂの（ｃ）〜（ｉ）は、状態管理テーブルの状態を例示する図である。
【００７７】
物体検知部410は、処理を開始すると、図７Ａ（ａ）のS701において、初期化処理（S711〜Ｓ713）を行う。以下、初期化処理について詳細に説明する。
【００７８】
S711において、物体検知部410は、距離画像取得部408からカメラ画像と距離画像をそれぞれ１フレーム取得する。
次に、S712において、物体検知部410は、データ管理部405を介して、上記S711で取得したカメラ画像を、書画台背景カメラ画像／前フレームカメラ画像／直前静止カメラ画像としてＨＤＤ305にそれぞれ保存する。また、物体検知部410は、上記S711で取得した距離画像も同様に、書画台背景距離画像／前フレーム距離画像／直前静止距離画像としてＨＤＤ305に保存する。なお、以後の説明において、書画台背景画像／前フレーム画像／直前静止画像と記載した場合には、カメラ画像と距離画像の両方を含むものとする。
次に、S713において、物体検知部410は、状態管理テーブルを初期化し、データ管理部405を介して、ＲＡＭ303へ保存する。
【００７９】
以下、状態管理テーブルについて詳細に説明する。
図７Ｂの（ｃ）〜（ｉ）に示すように、状態管理テーブルは、書画台管理テーブルと物体管理テーブルを含む。書画台管理テーブルでは、書画台204上から検知された物体数（objNums）と書画台204上の状態を記録する。また、物体管理テーブルでは、物体ごとに、物体の状態（移動中／静止／原稿検出済など）や、物体の位置・大きさ（幅、高さ等）を含む情報を管理する。これ以外にも状態管理テーブルには、物体に関連する情報を保持することが可能である。
図７Ｂ（ｃ）は、初期化処理後の状態管理テーブルを示しており、物体数（objNums）に「０」が設定され、物体管理テーブル内は空欄となっている。
【００８０】
続いて、S702において、物体検知部410は、物体検知メイン処理（S721〜S725）を行い、書画台204上での物体の動きを検知する。以下、詳細に説明する。
S721において、物体検知部410は、距離画像取得部408からカメラ画像と距離画像をそれぞれ１フレーム取得する。以後の説明において、現フレーム画像と記載した場合には、本ステップで取得したカメラ画像と距離画像と両方を含むものとする。
【００８１】
次に、S722において、物体検知部410は、上記S702で取得したカメラ画像および距離画像を用いて物体検知処理を行う。ここで、図７Ａ（ｂ）を用いて物体検知処理について詳細に説明する。
【００８２】
図７Ａ（ｂ）のS731において、物体検知部410は、上記S702で取得したカメラ画像および距離画像と、書画台背景画像との差分値を算出する。そこで、物体検知部410は、カメラ画像および距離画像それぞれにおいて、上記S712で保存された書画台背景画像と、上記S721で撮影された現フレーム画像との差分２値画像を生成する。なお、背景差分２値画像中の黒画素部分は画像変化量がない、即ち物体が存在していない部分を表している。また、背景差分２値画像中の白画素部分は画像変化量がある、即ち物体が存在している部分であることを示している。
【００８３】
次に、S732において、物体検知部410は、前フレームでの処理において静止物体が検知されている、あるいは上記S731で算出した距離背景差分画像での差分値が予め決めておいた所定値以上かどうかに基づき、物体の検知を判定する。物体検知部410は、書画台204上に物体が存在しない（検知していない）と判定した場合（S732でNOの場合）、S733に処理を進める。なお、S733以降の処理については後述する。
【００８４】
一方、物体検知部410は、書画台204上に物体が存在する（検知した）と判定した場合（S732でYESの場合）、S737に処理を進める。
【００８５】
S737において、物体検知部410は、上記S731で生成した背景差分画像を基にして物体数の増減の判定を行う。物体検知部410は、物体数が増減したと判定した場合（S737でYESの場合）、S738に処理を進める。
【００８６】
S738において、物体検知部410は、上記S731で検出された書画台背景画像の差分領域が直前フレームで検出された物体と同一か否かを判定することで、新規物体か否かを判定する。即ち、直前フレームでは物体が検出されていない領域より物体が検出されたことによる物体数の増加は、新規に書画台204上にフレームインした物体によるものと判断する。この場合、物体検知部410は、新規物体を検出したと判定し（S738でYES）、S739に処理を進める。S739において、物体検知部410は、上記S738のフレームイン判定結果を受け、物体フレームインイベントを発行する。この場合、物体検知部410は、S736において、図７Ｂ（ｄ）に示すように物体のフレームイン情報および物体の位置情報などを書き込むことで状態管理テーブルを更新して、図７Ａ（ｂ）の処理を終了する。
【００８７】
一方、直前フレームで検知されていた物体が分離・統合したことによる物体数の増減は、書画台204上に物体を載置するために手を放した、あるいは載置されていた物体を掴んだなどの要因によるものであると考えられる。この場合、物体検知部410は、新規物体を検出していないと判定し（S738でNO）、S736に処理を進め、図７Ｂ（ｆ）に示すように分離・統合した物体情報を書き込むことで状態管理テーブルを更新して、図７Ａ（ｂ）の処理を終了する。
【００８８】
また、上記S737において、物体検知部410は、物体数が増減していないと判定した場合（S737でNOの場合）、S740に処理を進める。
S740において、物体検知部410は、カメラ画像および距離画像それぞれで、後述するS724（図７A（ａ））で保存された前フレーム画像と、上記S721で撮影された現フレーム画像との差分画像を生成する。そして、物体検知部410は、所定値によって２値化処理を行うことで差分値を算出する。
【００８９】
次に、S741において、物体検知部410は、上記S740で算出した差分値が予め決めておいた所定値未満かどうかを判定する。物体検知部410は、算出した差分値が所定値以上であると判定した場合（S741でNOの場合）、S736に処理を進め、図７Ｂ（ｅ）に示すように状態管理テーブルの物体の位置情報などを更新して、図７Ａ（ｂ）の処理を終了する。
【００９０】
一方、物体検知部410は、算出した差分値が所定値未満であると判定した場合（S741でYESの場合）、S742に処理を進める。
S742において、物体検知部410は、上記S740が連続してYESとなった回数から、算出した差分値が所定値未満の状態（つまり書画台204上の物体が静止した状態）が、予め決めておいたフレーム数続いたかどうかを判定する。物体検知部410は、差分値が所定値未満の状態が所定フレーム数続いていないと判定した場合（S742でNOの場合）、S736へ進み、図７Ｂ（ｇ）に示すように状態管理テーブルの物体の位置情報などを更新して、図７Ａ（ｂ）の処理を終了する。
【００９１】
一方、上記S742において、物体検知部410は、差分値が所定値未満の状態が所定フレーム数続いたと判定した場合（S742でYESの場合）、書画台204上の物体が静止したと判断し、S743に処理を進める。
【００９２】
S743において、物体検知部410は、カメラ画像および距離画像それぞれにおいて、直前静止画像と現フレーム画像との差分画像を生成し、所定値によって２値化処理を行い、直前静止画像との差分値を算出する。
【００９３】
次に、S744において、物体検知部410は、上記S743で算出した差分値が予め決めておいた所定値以上かどうかを判定する。物体検知部410は、算出した差分値が所定値未満と判定した場合（S744でNOの場合）、直前の静止状態から変化がないと判断し、S745に処理を進める。S745では、物体検知部410は、上記S742及びS744において、直前の静止状態と同じ状態での物体静止であると判断されたことを受け、物体静止イベントを再発行し、S736に処理を進める。この場合、S736において、物体検知部410は、S745で発行された物体静止イベントを受け、図７Ｂ（ｈ）に示すように状態管理テーブルを更新して、図７Ａ（ｂ）の処理を終了する。
【００９４】
一方、上記S744において、物体検知部410は、算出した差分値が所定値以上と判定した場合（S744でYESの場合）、S746に処理を進める。
【００９５】
S746において、物体検知部410は、上記S742およびS744において、直前の静止状態とは異なる状態での物体静止であると判断したことを受け、物体静止イベントを発行する。
さらに、S747において、物体検知部410は、データ管理部405を介して、現フレームのカメラ画像および距離画像を、直前静止カメラ画像および直前静止距離画像としてＨＤＤ305に保存し、S736に処理を進める。この場合、S736において、物体検知部410は、S746で発行された物体静止イベントを受け、図７Ｂ（ｈ）に示すように状態管理テーブルを更新して、図７Ａ（ｂ）の処理を終了する。
【００９６】
また、上記S732において、物体検知部410は、書画台204上に物体が存在しない（検知していない）と判定した場合（S732でNOの場合）、S733に処理を進める。
S733において、物体検知部410は、直前のフレームにおいて移動物体が検知中であったかを確認することで、フレームアウト判定処理を行う。即ち、物体検知部410は、直前フレームで移動物体を検知していなかった場合には、書画台204上に物体が無い状態が続いている（即ちフレームアウトでない）と判定し（S733でNOと判定し）、図７Ａ（ｂ）の処理を終了する。
【００９７】
一方、上記S733において、物体検知部410は、直前フレームで移動物体を検知していた場合には、直前まで検出された移動物体がフレームアウトしたと判定し（S733でYESと判定し）、S734に処理を進める。
【００９８】
S734において、物体検知部410は、上記S733のフレームアウト判定結果を受け、物体フレームアウトイベントを発行する。次に、S735において、物体検知部410は、データ管理部405を介して、現フレームのカメラ画像および距離画像を、直前静止カメラ画像および直前静止距離画像としてＨＤＤ305にそれぞれ保存する。なお、物体検知部410は、本ステップにおいて、さらに現フレーム画像を書画台背景画像として更新してもよい。またこの場合、S736において、物体検知部410は、図７Ｂ（ｉ）に示すように物体のフレームアウト情報を書き込むことで状態管理テーブルを更新する。あるいは、図７Ｂ（ｃ）に示すように状態管理テーブルを初期化してもよい。状態管理テーブルの更新後、図７Ａ（ｂ）の処理を終了する。
図７Ａ（ｂ）の処理を終了すると、図７Ａ（ａ）の処理に戻る。
【００９９】
図７Ａ（ａ）のS723において、物体検知部410は、上記Ｓ722（即ち図７Ａ（ｂ）の物体検知処理）で発行されたイベントを、メイン制御部402へ通知する。なお、同一フレーム内で複数の物体検知イベントが発行された場合には、物体検知部410は、全ての物体検知イベントをメイン制御部402へ通知する。
【０１００】
次に、S724において、物体検知部410は、データ管理部405を介して、上記S721で取得したカメラ画像および距離画像を、前フレームカメラ画像および前フレーム距離画像としてＨＤＤ305に保存する。
【０１０１】
次に、S725において、物体検知部410は、物体検知処理の終了判定を行い、終了判定がなされるまで上記S721〜S725の処理を繰り返すように制御する。なお、システムの終了はＵＩ画面上に投射表示された終了ボタン（不図示）の操作、カメラスキャナ101の本体の電源ボタン（不図示）の押下などにより行われ、メイン制御部402から通知されるものとする。
【０１０２】
＜スキャン処理部の説明＞
図８Ａ、図８Ｂ、図８Ｃは、スキャン処理部411が実行する書籍原稿スキャン処理を説明する図である。
図８Ａ（ａ）、（ｂ）及び図８Ｂ（ｃ）は、スキャン処理部411が実行する書籍原稿スキャン処理の詳細を説明するフローチャートである。図８Ａ（ａ）、（ｂ）及び図８Ｂ（ｃ）のフローチャートに示す処理は、スキャン処理部411により実行される。即ち、図８Ａ（ａ）、（ｂ）及び図８Ｂ（ｃ）に示す処理は、ＣＰＵ302がＨＤＤ305に格納されるカメラスキャナ101の制御用プログラムをＲＡＭ303にロードして実行することにより実現される。
また、図８Ｃの（ｄ）〜（ｋ）は、書籍原稿スキャン処理を説明するための模式図である。
【０１０３】
スキャン処理部411は、処理を開始すると、図８Ａ（ａ）のS801において、カメラ画像取得部407、距離画像取得部408を用いて、カメラ部202からカメラ画像を、距離画像センサ部208から距離画像を、それぞれ１フレームずつ取得する。
【０１０４】
上記S801で得られるカメラ画像の例を図８Ｃ（ｄ）に示す。
図８Ｃ（ｄ）に示す例では、書画台204と撮影対象書籍861を含むカメラ画像851が得られている。
【０１０５】
また、上記S801で得られた距離画像の例を図８Ｃ（ｅ）に示す。
図８Ｃ（ｅ）に示す例では、距離画像センサ部208に近い方が濃い色であらわされており、距離画像センサ部208から対象物体862上の各画素への距離が含まれる距離画像852が得られている。また、図８Ｃ（ｅ）において、距離画像センサ部208からの距離が書画台204よりも遠い画素については白で表されており、対象物体862の書画台204に接している部分（対象物体862では右側のページ）も同じく白色となる。
【０１０６】
次に、S802において、スキャン処理部411は、上記S801で取得したカメラ画像と距離画像から書画台204上に載置された書籍物体の３次元点群を算出する処理を行う。
次に、S803において、スキャン処理部411は、上記S801取得したカメラ画像と上記S802で算出した３次元点群から、書籍画像のゆがみ補正処理を行い、２次元の書籍画像を生成する。以下、上記S802およびS803の処理について図８Ａ（ｂ）、図８Ｂ（ｃ）を用いて詳細に説明する。
【０１０７】
まず、S802の書籍物体３次元点群算出処理について、図８Ａ（ｂ）のフローチャートを用いて説明する。
スキャン処理部411は、書籍物体３次元点群算出処理を開始すると、S811にて、カメラ画像851と書画台背景カメラ画像との画素毎の差分を算出して二値化を行い、図８Ｃ（ｆ）のように物体領域863が黒で示されるカメラ差分画像853を生成する。
【０１０８】
次に、S812において、スキャン処理部411は、カメラ差分画像853を、カメラ座標系から距離画像センサ座標系への変換を行い、図８Ｃ（ｇ）のように距離画像センサ部208からみた物体領域864を含むカメラ差分画像854を生成する。
【０１０９】
次に、S813において、スキャン処理部411は、距離画像と書画台背景距離画像との画素毎の差分を算出して二値化を行い、図８Ｃ（ｈ）のように物体領域865が黒で示される距離差分画像855を生成する。ここで、対象物体861の書画台204と同じ色で有る部分については、画素値の差が小さくなるためカメラ差分画像854中の物体領域864に含まれなくなる場合がある。また、対象物体862の書画台204と高さが変わらない部分については距離画像センサ部208からの距離値が書画台204と差が小さいため、距離差分画像855中の物体領域865には含まれない場合がある。
【０１１０】
そこで、S814において、スキャン処理部411は、カメラ差分画像854と距離差分画像855の和をとって図８Ｃ（ｉ）に示す物体領域画像856を生成し、物体領域866を得る。ここで物体領域866は、書画台204と比べて色が異なるか又は高さが異なる領域となり、カメラ差分画像853中の物体領域863か距離差分画像855中の物体領域865のいずれか片方のみを使った場合よりも、より正確に物体領域を表している。
【０１１１】
次に、S815において、スキャン処理部411は、距離画像852から物体領域画像856中の物体領域866のみを抽出する。物体領域画像856は距離画像センサ座標系であるため、距離画像852から物体領域画像856中の物体領域866のみを抽出することが可能である。
【０１１２】
次に、S816において、スキャン処理部411は、上記S815で抽出した距離画像を直交座標系に変換することにより図８Ｃ（ｊ）に示した３次元点群867を生成する。この３次元点群867が書籍物体の３次元点群であり、書籍物体３次元点群算出処理（S802）を終了する。
【０１１３】
次に、図８Ｂ（ｃ）のフローチャートを用いて、上記S803の書籍画像ゆがみ補正処理について説明する。
スキャン処理部411は、書籍画像ゆがみ補正処理を開始すると、S821において、物体領域画像856を距離センサ画像座標系からカメラ座標系に変換する。
【０１１４】
次に、S822において、スキャン処理部411は、カメラ画像851から物体領域画像856中の物体領域866をカメラ座標系に変換したものを用いて物体領域を抽出する。
次に、S823において、スキャン処理部411は、抽出した物体領域画像を書画台平面へ射影変換する。
【０１１５】
次に、S824において、スキャン処理部411は、射影変換した物体領域画像を矩形近似し、その矩形が水平になるように回転することによって、図８Ｃ（ｋ）の書籍画像858を生成する。書籍画像858は近似矩形の片方の編がＸ軸に平行となっているため、以降書籍画像858に対してＸ軸方向へのゆがみ補正処理を行う。
次に、S825において、スキャン処理部411は、書籍画像858の最も左端の点をＰとする（図８Ｃ（ｋ）の点Ｐ）。
【０１１６】
次に、S826において、スキャン処理部411は、書籍物体の３次元点群867から点Ｐの高さ（図８Ｃ（ｋ）のｈ1）を取得する。
次に、S827において、スキャン処理部411は、書籍画像858の点Ｐに対してＸ軸方向に所定の距離（図８Ｃ（ｋ）のｘ1）離れた点をＱとする（図８Ｃ（ｋ）の点Ｑ）。
次に、S828において、スキャン処理部411は、３次元点群867から点Ｑの高さ（図８Ｃ（ｋ）のｈ2）を取得する。
次に、S829において、スキャン処理部411は、式（４）を用いて、点Ｐと点Ｑの書籍物体上での距離（図８Ｃ（ｇ）のｌ1）を直線近似で算出する。
【０１１７】
【数４】
2018191195.tif 000006
【０１１８】
次に、S830において、スキャン処理部411は、上記S869で算出した距離ｌ1でＰＱ間の距離を補正し、図８Ｃ（ｋ）における画像869上の点Ｐ'と点Ｑ'の位置に画素をコピーする。
次に、S831において、スキャン処理部411は、処理を行った点Ｑを点Ｐとする（点Ｑを点Ｐに入れ替える）。
【０１１９】
次に、S832において、スキャン処理部411は、ゆがみ補正処理を全ての点について終えたかどうかを判断する。スキャン処理部411は、未だ全ての点について終えていないと判定した場合（S832でNOの場合）、上記S826に処理を戻し、同じ処理を行う。これにより、図８Ｃ（ｋ）の点Ｑと点Ｒの間の補正を実行することができ、画像869上の点Ｑ'と点Ｒ'の画素とする。この処理を全画素について繰り返すことにより、画像869はゆがみ補正後の画像となる。
【０１２０】
また、上記S832において、スキャン処理部411は、ゆがみ補正処理を全ての点について終えたと判定した場合（S832でYESの場合）、書籍物体のゆがみ補正処理（S803）を終了する。
以上のようにして、上記S802、S803の処理を行ってゆがみ補正を行った書籍画像を生成することができる。
【０１２１】
以下、図８Ａ（ａ）の説明に戻る。
ゆがみ補正を行った書籍画像の生成後、スキャン処理部411は、S804において、上記S802及びS803で生成した書籍画像に階調補正を行う。
次に、S805において、スキャン処理部411は、上記階調補正を行った書籍画像に対して、予め決めておいた画像フォーマット（例えばＪＰＥＧ、ＴＩＦＦ、ＰＤＦ等）に合わせて圧縮およびファイルフォーマット変換を行う。
次に、S806において、スキャン処理部411は、上記変換を行った画像データを、データ管理部405を介して、ＨＤＤ305の所定の領域へファイルとして保存し、スキャン処理部411で実行する書籍原稿スキャン処理を終了する。
【０１２２】
＜メイン制御部402の説明＞
以下、図９の操作説明図と、図１０のフローチャート図を用いて、メイン制御部402が実行する優先機能切り替え処理について説明する。
【０１２３】
図９は、実施例１において、スキャンを実行する際のＵＩ表示と操作者901の操作の様子の一例を示す図である。
図９（ａ）にスキャン開始時のＵＩ画面の一例を示す。ＵＩ画面には、メイン制御部402の制御により、操作指示メッセージ902、スキャン終了ボタン903、スキャン実行ボタン904が投影表示されている。
【０１２４】
図９（ｂ）に示すように、操作者901がスキャン実行ボタン904を押下すると、メイン制御部402は、図９（ｃ）に示すような、スキャン実行画面に表示を遷移させる。スキャン実行画面では、メイン制御部402は、操作指示メッセージ902を更新すると共に、プロジェクタ207を用いて、スキャン原稿を載置するための原稿載置領域905を投影表示する。
【０１２５】
操作者901が、図９（ｄ）に示すように、操作指示メッセージ902に従い原稿載置領域905に原稿906を載置する。図９（ｅ）〜（ｇ）に示すように、メイン制御部402は、原稿載置完了を検知すると、スキャン処理を実行し、原稿を取り除くように操作指示メッセージ902を更新する。
【０１２６】
そして、図９（ｈ）に示すように、操作者901が原稿906を除去すると、メイン制御部402は、図９（ｉ）に示すようなスキャンを続行するか終了するかを選択する確認画面へ表示を遷移させる。なお、スキャンを続行する場合には、操作者901はスキャン実行ボタン904を押下する。
【０１２７】
図１０（ａ）は、実施例１において、メイン制御部402が実行する処理の一例を説明するフローチャートである。また、図１０（ｂ）は、実施例１において、ユーザインタフェース部403が実行する優先機能判定処理の一例を説明するフローチャートである。即ち、図１０（ａ）、（ｂ）に示す処理は、ＣＰＵ302がＨＤＤ305に格納されるカメラスキャナ101の制御用プログラムをＲＡＭ303にロードして実行することにより実現される。
【０１２８】
メイン制御部402は、処理を開始すると、図１０（ａ）のS1001において、ユーザインタフェース部403に要求して、図１０（ｂ）に示す優先機能判定処理を実行させる。
【０１２９】
図１０（ｂ）のS1011において、ユーザインタフェース部403は、アプリケーションから優先機能切り替え指示の有無を判定する。このアプリケーションは、図９に示したスキャンを実行する際のＵＩ等のＵＩ表示を行うためのものである。また、このアプリケーションは、例えば、カメラスキャナ101の起動時や、所定のボタン（不図示）が操作された際などに実行開始されるものとする。さらに、このアプリケーションは、ＣＰＵ302がＨＤＤ305に格納される該アプリケーションの実行モジュールをＲＡＭ303にロードして実行することにより実行される。
【０１３０】
図９に示した一連の処理において、図９（ａ）、（ｂ）及び（ｉ）ではボタン操作を検知する必要がある。このため、図９（ａ）、（ｂ）及び（ｉ）の画面が表示されている状態では、ジェスチャー検知処理の優先指示がアプリケーションより通知されている必要がある。一方、図９（ｃ）〜（ｈ）では、操作者901の原稿載置を検知する必要がある。このため、図９（ｃ）〜（ｈ）の画面が表示されている状態では、物体検知モードの優先指示がアプリケーションより通知されている必要がある。なお、アプリケーションからの優先機能の通知は必要なタイミングで行えばよいため、図９（ａ）を表示するタイミングや、図９（ｂ）から図９（ｃ）、あるいは図９（ｈ）から図９（ｉ）に遷移するタイミングで通知すればよい。なお、アプリケーションからの優先機能切り替え指示は、画面遷移時に限定されるものではなく、例えば優先機能選択ボタンを表示しておき、操作者901がＵＩボタンを押下したことを受けて優先機能切り替え指示を通知するなどしても構わない。このように、優先機能切り替え指示は、ＵＩ表示の遷移、及びＵＩ表示に対する操作等に基づいて通知される。
【０１３１】
上記S1011において、ユーザインタフェース部403は、優先機能切り替え指示があると判定した場合（S1011でYESの場合）、S1012に処理を進める。S1012において、ユーザインタフェース部403は、指定された検知機能への切り替えを指示する。そして、優先機能判定処理（図１０（ｂ））を終了する。
【０１３２】
一方、上記S1011において、ユーザインタフェース部403は、優先機能切り替え指示がないと判定した場合（S1011でNOの場合）、優先機能切り替えを指示することなく、優先機能判定処理（図１０（ｂ））を終了する。
【０１３３】
以下、図１０（ａ）の説明に戻る。
上記S1001の優先機能判定処理（図１０（ｂ））が終了すると、メイン制御部402は、S1002に処理を進める。S1002において、メイン制御部402は、優先機能切り替え指示の有無に基づき、優先機能切り替え処理の必要性を判定する。メイン制御部402は、優先機能切り替え処理がないと判定した場合（S1002でNOの場合）、S1003に処理を進める。
【０１３４】
S1003において、メイン制御部402は、ジェスチャー検知部409からジェスチャーイベントの有無を判定し、ジェスチャーに対応した処理を実行する。例えば、図９（ｂ）の場合には、スキャン終了ボタン903あるいはスキャン実行ボタン904へのタッチ操作の有無を判定する。そして、スキャン実行ボタン904が押されたと判断された場合には、スキャン実行画面へ遷移するように判定し、ユーザインタフェース部403に対して図９（ｃ）のようなスキャン画面を表示するように指示を行う。ユーザインタフェース部403は、プロジェクタ207によってＵＩ画面を書画台204上へ投影表示させる。
【０１３５】
次に、S1004において、メイン制御部402は、物体検知部410からの物体検知イベントの有無を判定し、物体検知イベントに対応した処理を実行する。例えば、図９（ｅ）の場合には、原稿の静止イベントを受け、スキャン処理部411に対してスキャン実行指示を行う。
【０１３６】
一方、上記S1002において、メイン制御部402は、優先機能切り替え処理があったと判定した場合（S1002でYESの場合）、S1005に処理を進める。
S1005において、メイン制御部402は、優先機能切り替え処理を実行する。ここでは、メイン制御部402は、ジェスチャー検知及び物体検知に用いる距離画像センサ部208の撮影パラメータ（例えば露光時間）を変更する。
【０１３７】
例えば、ジェスチャー優先が指示されていた場合には、露光時間を短くすることでフレームレートを向上させることができ、滑らかなジェスチャー検知を実現することができる。一方、物体検知優先が指示されていた場合には、露光時間を短くすることでコントラストが低い検知対象物であってもより鮮明に撮影でき、物体検知精度の向上を実現することができる。なお、各機能の性能を最大限発揮できるような撮影画像が取得できるのであれば、撮影パラメータは露光に限定されるものではない。例えば、前記撮影パラメータは、ＩＳＯ感度や、絞りに対応するパラメータであってもよい。
【０１３８】
次に、S1006において、メイン制御部402は、物体検知処理用の背景画像を更新する。具体的には、上述の図７Ａ（ａ）のS712、図７Ａ（ｂ）のS724、S735、S747でそれぞれＨＤＤ305に保存した、書画台背景カメラ画像／前フレームカメラ画像／直前静止カメラ画像を更新する。これにより、S1005で撮影パラメータを変更したことによって取得できるカメラ画像が大幅に変わったとしても、物体検知イベントとして誤検知することを防止することができる。
【０１３９】
上記S1004又はS1006の処理の後、メイン制御部402は、S1007に処理を進める。
S1007において、メイン制御部402は、アプリケーションが終了されたか否かを判定する。なお、アプリケーションの終了はＵＩ画面上に投射表示された終了ボタン（例えば、図９スキャン終了ボタン903）の操作、カメラスキャナ101の本体の電源ボタン（図示なし）の押下などにより行われるものとする。
【０１４０】
上記S1007において、メイン制御部402は、まだアプリケーションが終了されていないと判定した場合（S1007でNOの場合）、上記S1001に処理を戻す。
一方、メイン制御部402は、アプリケーションが終了されたと判定した場合（S1007でYES場合）、図１０（ａ）の処理を終了する。
【０１４１】
以上のように、実施例１によれば、ＵＩ表示を行うアプリケーションからの優先機能切り替え指示に応じて、指定された優先機能に応じた撮影パラメータに変更することにより、各機能に適したカメラ画像が撮影できるようになる。これにより、アプリケーションの要求するタイミング（必要なタイミング）で各検知機能の処理性能を最大限に高めることができるようになる。この結果、良好な結果を得るための最適な画像が異なるような複数の検知機能を１つの撮影デバイスで精度よく実現することが可能になる。
【実施例２】
【０１４２】
上記実施例１では、ＵＩ表示を行うアプリケーションから画面遷移時や操作者901によるボタン押下などのタイミングにおいて通知される優先機能切り替え指示によって、優先機能の切り替え処理を行う構成について説明した。本実施例２では、ＵＩ画面が遷移しないタイミングでも優先機能を動的に切り替えることが可能な仕組みについてさらに説明する。
【０１４３】
以下、図１１の操作説明図と、図１２のフローチャート図を用いて、実施例２において、メイン制御部402が実行する優先機能切り替え処理について説明する。
【０１４４】
図１１は、実施例２において、スキャンを実行する際のＵＩ表示と操作者901の操作の様子の一例を示す図である。なお、図９と同一のものには同一の符号を付してある。
図１１（ａ）にスキャン開始時のＵＩ画面の一例を示す。ＵＩ画面には、操作指示メッセージ902、スキャン終了ボタン903、原稿載置領域905が投影表示されている。
【０１４５】
操作者901は、操作指示メッセージ902に従い、図１１（ｂ）〜（ｄ）に示すように、原稿載置領域905内に原稿906を載置する。メイン制御部402は、原稿載置完了を検知すると、図１１（ｄ）に示すようにスキャン処理が実行できる状態であると判断し、操作指示メッセージ902を更新し、スキャン実行ボタン904を表示する。
【０１４６】
そして、図１１（ｅ）に示すように操作者901がスキャン実行ボタン904を押下すると、メイン制御部402は、図１１（ｆ）に示すようにスキャン処理を開始する。スキャン処理が終了すると、メイン制御部402は、図１１（ｇ）に示すようにスキャン原稿を取り除くように操作指示メッセージ902を更新し、スキャン実行ボタン904を非表示にする。
【０１４７】
そして、図１１（ｈ）に示すように操作者901が原稿を除去すると、メイン制御部402は、図１１（ｉ）に示すようなスキャン開始時のＵＩ画面へ表示を遷移させる。
【０１４８】
図１２（ａ）は、実施例２において、メイン制御部402が実行する処理の一例を説明するフローチャートである。また、図１２（ｂ）は、実施例２において、ユーザインタフェース部403が実行する優先機能判定処理の一例を説明するフローチャートである。即ち、図１２（ｂ）に示す処理は、ＣＰＵ302がＨＤＤ305に格納されるカメラスキャナ101の制御用プログラムをＲＡＭ303にロードして実行することにより実現される。なお、実施例１と同様の処理については同じステップ番号を付与し、詳細な説明は割愛する。
【０１４９】
メイン制御部402は、処理を開始すると、図１２（ａ）のS1201において、ＵＩ画面の更新の有無を確認する。上記S1201において、メイン制御部402は、ＵＩ画面が更新されたと判定した場合（S1201でYESの場合）、S1202へ処理を進める。
【０１５０】
S1202において、メイン制御部402は、ＵＩ画面上の各領域に対して優先機能を割り当てる。例えば図１１（ａ）において、スキャン終了ボタン903に対してはジェスチャー機能優先を、原稿載置領域905に対しては物体検知優先を割り当て、この領域内における物体検知イベントを受信するように設定する。それ以外の領域に関しては所定の機能を割り当てることが可能であるが、基本的にはジェスチャー機能優先を割り当てることが望ましい。上記S1202の処理の後、S1203へ処理を進める。
【０１５１】
一方、上記S1201において、メイン制御部402は、ＵＩ画面が更新されていないと判定した場合（S1201でNOの場合）、S1203へ処理を進める。
【０１５２】
S1201において、メイン制御部402は、ユーザインタフェース部403に、図１２（ｂ）に示す優先機能判定処理を実行させる。
【０１５３】
図１２（ｂ）のS1211において、メイン制御部402は、物体検知部410からの物体フレームインイベントを受信したか否かを判定する。物体検知部410は、物体検知優先領域への物体フレームインを検知した場合に物体フレームインイベントをメイン制御部402に通知する。例えば、図１１（ｃ）に示す状態では、物体検知部410が、物体検知優先領域として設定されている原稿載置領域905内において物体フレームインを検知して物体フレームインイベントをメイン制御部402に通知する。メイン制御部402は、物体検知部410から物体フレームインイベントを受信したと判定した場合（S1211でYESの場合）、S1212へ処理を進める。S1212において、メイン制御部402は、原稿載置領域905内での物体検知精度を高めるために、物体検知優先に切り替えるように指示し、優先機能判定処理（図１２（ｂ））を終了する。
【０１５４】
また、例えば図１１（ａ）〜図１１（ｂ）に示す状態では、原稿載置領域905内において物体フレームインを検知しないため、物体検知部410から物体フレームインイベントは通知されない。上記S1211において、メイン制御部402は、物体フレームインイベントを受信してないと判定した場合（S1211でNOの場合）、S1213へ処理を進める。
【０１５５】
S1213において、メイン制御部402は、物体検知部410からの物体フレームアウトイベントあるいは物体静止イベントを受信したか否かを判定する。物体検知部410は、物体検知優先領域からの物体フレームアウトを検知した場合に物体フレームアウトイベントをメイン制御部402に通知する。また、物体検知部410は、物体検知優先領域での物体静止を検知した場合に物体静止イベントをメイン制御部402に通知する。例えば、図１１（ｄ）に示す状態では、物体検知部410が、原稿載置領域905内において物体静止を検知して物体静止イベントをメイン制御部402に通知する。また、図１１（ｈ）に示す状態では、物体検知部410が、原稿載置領域905内において物体フレームアウトを検知して物体フレームアウトイベントをメイン制御部402に通知する。メイン制御部402は、物体検知部410から、物体フレームアウトイベントあるいは物体静止イベントを受信したと判定した場合（S1213でYesの場合）、S1214へ処理を進める。
【０１５６】
S1214において、メイン制御部402は、スキャン終了ボタン903やスキャン実行ボタン904へのジェスチャー検知精度を高めるために、ジェスチャー機能優先に切り替えるように指示し、優先機能判定処理（図１２（ｂ））を終了する。
【０１５７】
また、図１１（ｅ）〜図１１（ｇ）までの状態においては、物体検知部410は、原稿載置領域905内において物体フレームアウトも物体静止も検知しないため、物体検知部410から物体フレームアウトイベント及び物体静止イベントのいずれも通知されない。メイン制御部402は、物体検知部410から、物体フレームアウトイベント及び物体静止イベントのいずれも受信していないと判定した場合（S1213でNOの場合）、そのまま優先機能判定処理（図１２（ｂ））を終了する。
【０１５８】
以下、図１２（ａ）の説明に戻る。
上記S1203の処理の後、メイン制御部402は、S1002に処理を進める。なお、以下の処理に関しては実施例１と同様であるため説明を省略する。
【０１５９】
以上のように、実施例２によれば、ＵＩ画面内の領域に応じて優先する機能を設定しておき、物体検知優先領域内で移動している物体の検知有無によって優先する機能を動的に切り替える。これにより、同一ＵＩ画面内においても、必要なタイミングで各機能の性能を最大限発揮できるようになる。この結果、良好な結果を得るための最適な画像が異なるような複数の検知機能を１つの撮影デバイスで精度よく実現することが可能になる。
【実施例３】
【０１６０】
上記実施例２では、ＵＩ画面の遷移がないタイミングでも優先機能を動的に切り替える構成について説明した。本実施例３では、ＵＩ画面内の領域の配置の仕方に依存せず優先機能を動的に切り替え可能な構成についてさらに説明する。
【０１６１】
以下、図１３を用いて、実施例３において、メイン制御部402が実行する優先機能切り替え処理について説明する。
図１３は、実施例３の優先機能切り替え処理を説明する図である。
図１３の（ａ）〜（ｃ）に実施例３におけるスキャンを実行する際のＵＩ表示と操作者901の操作の様子の一例を示す。なお、図１１と同一のものには同一の符号を付してある。
【０１６２】
図１３（ａ）では、上述の原稿載置領域905の上部に、ホーム画面へ遷移するためのホームボタン1301が配置されている。なお、ホームボタン1301には、図１２（ａ）のS1202において、ジェスチャー検知優先が設定されているものとする。
【０１６３】
図１３（ｂ）では、操作者901が原稿載置領域905上へ原稿906を載置しようとしている様子を示している。また、図１３（ｃ）では、操作者901がホームボタン1301を押下する様子を示している。
【０１６４】
図１３（ｄ）は、実施例３において、ユーザインタフェース部403が実行する優先機能判定処理の一例を説明するフローチャートである。即ち、図１３（ｄ）に示す処理は、ＣＰＵ302がＨＤＤ305に格納されるカメラスキャナ101の制御用プログラムをＲＡＭ303にロードして実行することにより実現される。なお、図１２と同様の処理については同じステップ番号を付与し、詳細な説明は割愛する。
【０１６５】
図１３（ｄ）のS1211において、メイン制御部402は、物体フレームインイベントを受信していないと判定した場合（S1211でNOの場合）、S1311へ処理を進める。
【０１６６】
S1311において、メイン制御部402は、物体検知部410からの物体フレームアウトイベントを受信したか否かを判定する。メイン制御部402は、物体フレームアウトイベントを受信したと判定した場合（S1311でYESの場合）、S1214に処理を進め、ジェスチャー機能優先に切り替えるように指示する。
【０１６７】
一方、メイン制御部402は、物体フレームアウトイベントを受信していないと判定した場合（S1311でNOの場合）、S1312に処理を進める。
【０１６８】
S1312において、メイン制御部402は、物体検知部410からの物体移動イベントや物体静止イベントを解析し、検知された物体が物体検知優先領域をまたぐような位置で検知したか否かを判定する。物体検知部410は、物体検知優先領域での物体移動を検知した場合に物体移動イベントをメイン制御部402に通知する。例えば図１３（ｂ）に示す状態においては、検知されている物体は、物体検知優先領域である原稿載置領域905の一方向にのみ存在していることから、物体検知優先領域である原稿載置領域905に対する操作をしているものと判断する。この場合、メイン制御部402は、物体検知優先領域をまたぐような静止ｏｒ移動を検知していないと判定する。メイン制御部402は、物体検知優先領域をまたぐような静止ｏｒ移動を検知していないと判定した場合（S1312でNOの場合）、物体検知優先のまま優先機能判定処理（図１３（ｄ））を終了する。
【０１６９】
一方、例えば図１３（ｃ）に示す状態においては、操作者901の腕が、物体検知優先領域である原稿載置領域905を超えてホームボタン1301を押下しようとしており、物体検知優先領域である原稿載置領域905の二方向にまたがり物体が検知される。このため、メイン制御部402は、物体検知優先領域をまたぐような静止ｏｒ移動を検知したと判定する。メイン制御部402は、物体検知優先領域をまたぐような静止ｏｒ移動を検知したと判定した場合（S1312でYESの場合）、S1313に処理を進める。
【０１７０】
S1313において、メイン制御部402は、物体検知優先領域以外に他の優先機能を設定した領域が存在するかを確認する。メイン制御部402は、他の優先機能を設定した領域が存在しないと判定した場合（S1313でNOの場合）、そのまま優先機能判定処理（図１３（ｄ））を終了する。
【０１７１】
一方、上記S1313において、メイン制御部402は、他の優先機能を設定した領域が存在すると判定した場合（S1313でYESの場合）、S1214に処理を進め、ジェスチャー検知優先への切り替えを指示する。例えば、図１３（ｃ）においては、ホームボタン1301に対してジェスチャー検知優先が設定されているため、メイン制御部402は、S1214において、ジェスチャー優先に切り替えるように指示する。これにより、ホームボタン1301への押下判定を最大性能で行うことができるようになる。
【０１７２】
以上のように、実施例３によれば、物体検知優先が設定された領域内における検出物体の位置関係を考慮して優先機能を切り替えることによって、ＵＩ領域の配置に関わらず各機能の性能を最大限発揮できるようになる。良好な結果を得るための最適な画像が異なるような複数の検知機能を１つの撮影デバイスで精度よく実現することが可能になる。
【実施例４】
【０１７３】
上記実施例２及び３では、物体検知部410で検知した物体検知優先領域内の物体検知イベントに基づいて優先機能の切り替え判定を行う構成について説明した。本実施例４では、ジェスチャー検知部409で検知したジェスチャーイベントに基づいて優先機能を切り替える仕組みについて説明する。
【０１７４】
以下、図１４を用いて、実施例４において、メイン制御部402が実行する優先機能切り替え処理について説明する。
図１４は、実施例４の優先機能切り替え処理を説明する図である。
図１４の（ａ），（ｂ）に実施例４におけるスキャンを実行する際のＵＩ表示と操作者901の操作の様子の一例を示す。なお、図１１と同一のものには同一の符号を付してある。
【０１７５】
図１４（ａ）では、原稿載置領域905内に原稿906が載置してある。図１４（ｂ）では、操作者901が原稿載置領域905上の原稿906に対して、下線描画やメモ書きなどのアノテーション付与のジェスチャー操作を行おうとしている様子を示している。
【０１７６】
図１４（ｃ）は、実施例４において、ユーザインタフェース部403が実行する優先機能判定処理の一例を説明するフローチャートである。即ち、図１４（ｃ）に示す処理は、ＣＰＵ302がＨＤＤ305に格納されるカメラスキャナ101の制御用プログラムをＲＡＭ303にロードして実行することにより実現される。なお、図１２と同様の処理については同じステップ番号を付与し、詳細な説明は割愛する。
【０１７７】
図１４（ｃ）のS1401において、メイン制御部402は、ジェスチャー検知部409からタッチイベントを受信したか否かを判定する。メイン制御部402は、タッチイベントを受信したと判定した場合（S1401でYESの場合）、S1402に処理を進める。
【０１７８】
S1402において、メイン制御部402は、ジェスチャー検知部409が検知したタッチイベントの近傍に設定されている機能優先領域の種別を判定する。メイン制御部402は、タッチイベントの近傍にジェスチャー検知優先領域が設定されている、あるいは、物体検知優先領域の設定がないと判定した場合、S1214に処理を進め、ジェスチャー検知優先を指示する。そして、優先機能判定処理（図１４（ｃ））を終了する。例えば、図１４（ｂ）に示す原稿載置領域905内の原稿906の位置にジェスチャー検知優先領域を設定しておく。これにより、原稿906へのタッチ操作により、ジェスチャー検知優先に切り換える、図１４（ｂ）に示すようなジェスチャー操作を検知して原稿906へのアノテーション付与を実現することが可能となる。
【０１７９】
一方、上記S1402において、メイン制御部402は、タッチイベントの近傍に物体検知優先領域が設定されていると判定した場合、メイン制御部402は、S1212に処理を進め、物体検知優先を指示する。そして、優先機能判定処理（図１４（ｃ））を終了する。
【０１８０】
また、上記S1401において、メイン制御部402は、タッチイベントの受信を検知していないと判定した場合（S1401でNOの場合）、S1403に処理を進める。
S1403において、メイン制御部402は、現在のモードが物体検知優先機能か否かを判定する。例えば、S1212で物体検知優先に切り替えた後などは物体検知優先が設定されていると判定する。
【０１８１】
上記S1403において、メイン制御部402は、現在のモードが物体検知優先機能であると判定した場合（S1403でYESの場合）、S1404に処理を進める。
S1404において、メイン制御部402は、物体検知優先領域内において、物体検知部410から物体フレームアウトあるいは物体静止のイベントが検知されたか否かを判定する。
【０１８２】
上記S1404において、メイン制御部402は、物体フレームアウトあるいは物体静止のイベントが検知されたと判定した場合（S1404でYESの場合）、S1214に処理を進める。S1214において、メイン制御部402は、再びジェスチャー検知優先を指示し、優先機能判定処理（図１４（ｃ））を終了する。
【０１８３】
一方、上記S1404において、メイン制御部402は、物体フレームアウトあるいは物体静止のイベントが検知されていないと判定した場合（S1404でNOの場合）、そのまま優先機能判定処理（図１４（ｃ））を終了する。
【０１８４】
以上のように、実施例４によれば、操作者901のタッチ操作が物体検知優先領域であるか否かを判定する。所定のジェスチャーが検知された領域の近傍に設定される機能優先領域の種別に基づいて優先する検知処理を判定する。これにより、ボタン等へのタッチイベントか、物体検知優先領域内に物体を載置する際に発生したタッチイベントであるかを判別できる。そして、物体載置の際のタッチイベントの場合には、物体位置が確定するまでの間、物体検知を優先することが可能になる。なお、ここではタッチイベントを用いて切り替えを行う方法を説明したが、その他のジェスチャー操作イベントを用いてもよい。この結果、検知に用いる撮影画像の特性の異なる複数の検知機能を１つの撮影デバイスで精度よく実現することが可能になる。
【０１８５】
なお、上記実施例１〜４において、ジェスチャー検知機能モードと物体検知機能モードを動的に切り替える仕組みについて説明した。しかし、同様の目的が果たせるものであれば、切り替え判定方法はこれに限るものではない。例えば、ジェスチャー操作を指差し姿勢（所定の手の形状）で行うことを限定することにより、指差し姿勢であるか否かに基づいてジェスチャー検知機能と物体検知機能の切り替え処理を行うことも可能である。
【０１８６】
また、上記各実施例では、ジェスチャー検知機能と物体検知機能を有し、優先する検知機能を判定し、優先する検知処理に応じた撮影パラメータに切り替える構成について説明した。しかし、検知機能はこれらに限定されるものではない。例えば、３つ以上の異なる検知機能を備える構成であってもよい。即ち、カメラスキャナ101が、撮影された画像データに基づいてそれぞれ異なる検知処理を行う複数の検知機能を有し、これらのうち優先する検知機能を判定し、優先する検知機能に応じた撮影パラメータに切り替えるように構成してもよい。
【０１８７】
以上、各実施例では、優先する検知処理を判断し、それに応じて最適な画像が取得できるように撮影モード（本実施例では撮影パラメータ）を動的に変更する（即ち撮影特性を動的に変更する）。これにより、良好な結果を得るための最適な画像が異なるような複数の検知機能（例えば物体検知機能、ジェスチャー検知機能）を１つの撮影デバイスで精度よく実現することができるようになる。
【０１８８】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されていてもよい。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
【０１８９】
（その他の実施例）
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１９０】
204    書画台
208    距離画像センサ部
402    メイン制御部
409    ジェスチャー検知部
410    物体検知部
【図１】
2018191195.tif 000007
【図２】
2018191195.tif 000008
【図３】
2018191195.tif 000009
【図４】
2018191195.tif 000010
【図５Ａ】
2018191195.tif 000011
【図５Ｂ】
2018191195.tif 000012
【図６Ａ】
2018191195.tif 000013
【図６Ｂ】
2018191195.tif 000014
【図７Ａ】
2018191195.tif 000015
【図７Ｂ】
2018191195.tif 000016
【図８Ａ】
2018191195.tif 000017
【図８Ｂ】
2018191195.tif 000018
【図８Ｃ】
2018191195.tif 000019
【図９】
2018191195.tif 000020
【図１０】
2018191195.tif 000021
【図１１】
2018191195.tif 000022
【図１２】
2018191195.tif 000023
【図１３】
2018191195.tif 000024
【図１４】
2018191195.tif 000025