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