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