(57)【要約】【課題】拡張現実におけるリアリティ度を向上できるプログラム、情報記憶媒体、画像生成システム等の提供。【解決手段】画像生成システムは、撮像部により撮影された撮影画像を取得する撮影画像取得部と、撮影画像に映る被写体の奥行き情報を取得する奥行き情報取得部と、取得された奥行き情報に基づいて、被写体とバーチャルオブジェクトとの奥行き方向での前後関係を判断して、撮影画像にバーチャルオブジェクトを合成するための処理を行うオブジェクト処理部と、撮影画像にバーチャルオブジェクトが合成された画像を生成する画像生成部を含む。【選択図】図１５
2012058968.tif 000002
【特許請求の範囲】
【請求項１】
撮像部により撮影された撮影画像を取得する撮影画像取得部と、
前記撮影画像に映る被写体の奥行き情報を取得する奥行き情報取得部と、
取得された前記奥行き情報に基づいて、前記被写体とバーチャルオブジェクトとの奥行き方向での前後関係を判断して、前記撮影画像に前記バーチャルオブジェクトを合成するための処理を行うオブジェクト処理部と、
前記撮影画像に前記バーチャルオブジェクトが合成された画像を生成する画像生成部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記オブジェクト処理部は、
前記奥行き情報に基づいて、前記被写体が前記バーチャルオブジェクトよりも奥行き方向において手前側に位置すると判断された場合に、前記被写体が前記バーチャルオブジェクトよりも手前側に表示される画像を合成するための処理を行うことを特徴とするプログラム。
【請求項３】
請求項２において、
前記オブジェクト処理部は、
前記バーチャルオブジェクトの配置位置を決めるための配置位置決定用被写体の奥行き情報と、前記被写体の奥行き情報とに基づいて、前記バーチャルオブジェクトと前記被写体の前後関係を判断することを特徴とするプログラム。
【請求項４】
請求項３において、
前記撮像部で撮影された複数のスルー画の画像データを記憶する撮影画像記憶部として、
コンピュータを機能させ、
前記奥行き情報取得部は、
前記複数のスルー画に基づいて、前記配置位置決定用被写体の奥行き情報を取得し、
前記オブジェクト処理部は、
前記スルー画から取得された前記配置位置決定用被写体の奥行き情報と、前記被写体の奥行き情報とに基づいて、前記バーチャルオブジェクトと前記被写体の前後関係を判断することを特徴とするプログラム。
【請求項５】
請求項４において、
前記奥行き情報取得部は、
前記複数のスルー画のうち、前記配置位置決定用被写体の配置位置決定部分が前記被写体により隠れていないと判断されたスルー画に基づいて、前記配置位置決定用被写体の奥行き情報を取得することを特徴とするプログラム。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記オブジェクト処理部は、
前記奥行き情報に基づいて、前記被写体と前記バーチャルオブジェクトとのヒット判定処理を行うことを特徴とするプログラム。
【請求項７】
請求項６において、
前記オブジェクト処理部は、
前記バーチャルオブジェクトの配置位置を決めるための配置位置決定用被写体の奥行き情報に基づいて、前記バーチャルオブジェクト用のヒットボリュームを設定し、設定された前記ヒットボリュームを用いて、前記被写体と前記バーチャルオブジェクトとのヒット判定処理を行うことを特徴とするプログラム。
【請求項８】
請求項６又は７において、
前記オブジェクト処理部は、
前記ヒット判定処理により、前記バーチャルオブジェクトに前記被写体がヒットしたと判定された場合に、前記バーチャルオブジェクトの表示態様を変化させる処理及び前記バーチャルオブジェクトに対応する音の出力処理の少なくとも一方の処理を行うことを特徴とするプログラム。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記オブジェクト処理部は、
前記奥行き情報に基づいて、前記バーチャルオブジェクトの移動処理を行うことを特徴とするプログラム。
【請求項１０】
請求項９において、
前記オブジェクト処理部は、
前記バーチャルオブジェクトの配置位置を決めるための配置位置決定用被写体の奥行き情報と、前記被写体の奥行き情報とに基づいて、前記配置位置決定用被写体の位置と前記被写体の位置の間で、前記バーチャルオブジェクトを移動させる処理を行うことを特徴とするプログラム。
【請求項１１】
請求項１乃至１０のいずれかにおいて、
前記撮影画像取得部は、
前記撮像部が有する第１のカメラで撮影された第１の撮影画像を左眼用画像として取得し、前記撮像部が有する第２のカメラで撮影された第２の撮影画像を右眼用画像として取得し、
前記奥行き情報取得部は、
前記左眼用画像と前記右眼用画像から得られる視差情報に基づいて、前記奥行き情報を取得することを特徴とするプログラム。
【請求項１２】
請求項１１において、
前記画像生成部は、
前記左眼用画像と前記右眼用画像による立体視用画像に前記バーチャルオブジェクトが合成された画像を生成することを特徴とするプログラム。
【請求項１３】
請求項１乃至１０のいずれかにおいて、
前記撮影画像取得部は、
前記撮像部が有するデプスカメラからのデプス画像を取得し、
前記奥行き情報取得部は、
前記デプス画像に基づいて、前記奥行き情報を取得することを特徴とするプログラム。
【請求項１４】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至１３のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１５】
撮像部により撮影された撮影画像を取得する撮影画像取得部と、
前記撮影画像に映る被写体の奥行き情報を取得する奥行き情報取得部と、
取得された前記奥行き情報に基づいて、前記被写体とバーチャルオブジェクトとの奥行き方向での前後関係を判断して、前記撮影画像に前記バーチャルオブジェクトを合成するための処理を行うオブジェクト処理部と、
前記撮影画像に前記バーチャルオブジェクトが合成された画像を生成する画像生成部と、
を含むことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システム等に関する。
【背景技術】
【０００２】
近年、コンピュータを用いて現実世界に情報を付加提示する技術として、拡張現実（AR: Augmented Reality）と呼ばれる技術が脚光を浴びている。この拡張現実（ＡＲ）は、強化現実とも呼ばれ、現実の環境の一部に、付加情報としてのバーチャルな物体を合成して表示する。このような拡張現実の従来技術としては例えば特許文献１に開示される技術がある。この特許文献１の従来技術では、所定の模様が描かれたマーカが配置された現実世界の様子を撮像部により撮影する。そして、撮像部により撮影された画像内におけるマーカの位置を推定すると共にマーカの画像認識を行い、推定された位置に、マーカの模様に対応するバーチャルオブジェクトを重畳して合成表示する。
【０００３】
しかしながら、この従来技術では、マーカに対応するバーチャルオブジェクトが常に手前側に来るように、撮影画像に対してバーチャルオブジェクトが重畳するように合成される。このため、撮影画像内の他の被写体とバーチャルオブジェクトとの前後関係に矛盾が生じてしまい、ユーザが不自然さを感じるおそれがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１７０３１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の幾つかの態様によれば、拡張現実におけるリアリティ度を向上できるプログラム、情報記憶媒体、画像生成システム等を提供できる。
【課題を解決するための手段】
【０００６】
本発明の一態様は、撮像部により撮影された撮影画像を取得する撮影画像取得部と、前記撮影画像に映る被写体の奥行き情報を取得する奥行き情報取得部と、取得された前記奥行き情報に基づいて、前記被写体とバーチャルオブジェクトとの奥行き方向での前後関係を判断して、前記撮影画像に前記バーチャルオブジェクトを合成するための処理を行うオブジェクト処理部と、前記撮影画像に前記バーチャルオブジェクトが合成された画像を生成する画像生成部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【０００７】
本発明の一態様によれば、撮影画像に映る被写体の奥行き情報が取得される。そして取得された奥行き情報により、被写体とバーチャルオブジェクトとの奥行き方向での前後関係が判断されて、撮影画像にバーチャルオブジェクトが合成された画像が生成される。このようにすれば、被写体の奥行き情報を反映させたバーチャルオブジェクトの合成処理を実現できるため、拡張現実におけるリアリティ度を向上できる。
【０００８】
また本発明の一態様では、前記オブジェクト処理部は、前記奥行き情報に基づいて、前記被写体が前記バーチャルオブジェクトよりも奥行き方向において手前側に位置すると判断された場合に、前記被写体が前記バーチャルオブジェクトよりも手前側に表示される画像を合成するための処理を行ってもよい。
【０００９】
このようにすれば、被写体がバーチャルオブジェクトの手前側に位置するのに、バーチャルオブジェクトの奥側に被写体が表示される画像が生成されてしまう事態を防止できる。
【００１０】
また本発明の一態様では、前記オブジェクト処理部は、前記バーチャルオブジェクトの配置位置を決めるための配置位置決定用被写体の奥行き情報と、前記被写体の奥行き情報とに基づいて、前記バーチャルオブジェクトと前記被写体の前後関係を判断してもよい。
【００１１】
このようにすれば、被写体の奥行き情報と、バーチャルオブジェクトの配置位置決定用被写体の奥行き情報を用いて、被写体とバーチャルオブジェクトとの前後関係を判断して、撮影画像にバーチャルオブジェクトが合成された画像を生成できるようになる。
【００１２】
また本発明の一態様では、前記撮像部で撮影された複数のスルー画の画像データを記憶する撮影画像記憶部を含み（撮影画像記憶部としてコンピュータを機能させ）、前記奥行き情報取得部は、前記複数のスルー画に基づいて、前記配置位置決定用被写体の奥行き情報を取得し、前記オブジェクト処理部は、前記スルー画から取得された前記配置位置決定用被写体の奥行き情報と、前記被写体の奥行き情報とに基づいて、前記バーチャルオブジェクトと前記被写体の前後関係を判断してもよい。
【００１３】
このようにすれば、スルー画を有効活用して、被写体とバーチャルオブジェクトとの前後関係を適正に判断できるようになる。
【００１４】
また本発明の一態様では、前記奥行き情報取得部は、前記複数のスルー画のうち、前記配置位置決定用被写体の配置位置決定部分が前記被写体により隠れていないと判断されたスルー画に基づいて、前記配置位置決定用被写体の奥行き情報を取得してもよい。
【００１５】
このようにすれば、配置位置決定用被写体の配置位置決定部分が被写体により隠れている場合にも、スルー画を有効活用して、被写体とバーチャルオブジェクトとの前後関係を適正に判断できるようになる。
【００１６】
また本発明の一態様では、前記オブジェクト処理部は、前記奥行き情報に基づいて、前記被写体と前記バーチャルオブジェクトとのヒット判定処理を行ってもよい。
【００１７】
このようにすれば、取得された奥行き情報を反映させた、被写体とバーチャルオブジェクトとのヒット判定処理を実現できる。
【００１８】
また本発明の一態様では、前記オブジェクト処理部は、前記バーチャルオブジェクトの配置位置を決めるための配置位置決定用被写体の奥行き情報に基づいて、前記バーチャルオブジェクト用のヒットボリュームを設定し、設定された前記ヒットボリュームを用いて、前記被写体と前記バーチャルオブジェクトとのヒット判定処理を行ってもよい。
【００１９】
このようにすれば、配置位置決定用被写体の奥行き情報によりバーチャルオブジェクト用のヒットボリュームを設定して、ヒット判定処理を行えるようになるため、より精度の高いヒット判定処理を実現できる。
【００２０】
また本発明の一態様では、前記オブジェクト処理部は、前記ヒット判定処理により、前記バーチャルオブジェクトに前記被写体がヒットしたと判定された場合に、前記バーチャルオブジェクトの表示態様を変化させる処理及び前記バーチャルオブジェクトに対応する音の出力処理の少なくとも一方の処理を行ってもよい。
【００２１】
このようにすれば、被写体がバーチャルオブジェクトにヒットすると、バーチャルオブジェクトの表示態様が変化したり、バーチャルオブジェクトに対応する音が出力されるようになるため、バーチャルオブジェクトの実在感が増し、拡張現実におけるリアリティ度を更に向上できる。
【００２２】
また本発明の一態様では、前記オブジェクト処理部は、前記奥行き情報に基づいて、前記バーチャルオブジェクトの移動処理を行ってもよい。
【００２３】
このようにすれば、取得された奥行き情報を反映させたバーチャルオブジェクトの移動処理を実現できる。
【００２４】
また本発明の一態様では、前記オブジェクト処理部は、前記バーチャルオブジェクトの配置位置を決めるための配置位置決定用被写体の奥行き情報と、前記被写体の奥行き情報とに基づいて、前記配置位置決定用被写体の位置と前記被写体の位置の間で、前記バーチャルオブジェクトを移動させる処理を行ってもよい。
【００２５】
このようにすれば、配置位置決定用被写体の奥行き情報と被写体の奥行き情報が取得されると、配置位置決定用被写体の位置と被写体の位置の間でバーチャルオブジェクトが移動する画像が生成されるようになるため、これまでにないタイプの拡張現実画像の生成が可能になる。
【００２６】
また本発明の一態様では、前記撮影画像取得部は、前記撮像部が有する第１のカメラで撮影された第１の撮影画像を左眼用画像として取得し、前記撮像部が有する第２のカメラで撮影された第２の撮影画像を右眼用画像として取得し、前記奥行き情報取得部は、前記左眼用画像と前記右眼用画像から得られる視差情報に基づいて、前記奥行き情報を取得してもよい。
【００２７】
このようにすれば、第１、第２のカメラで撮影された左眼用画像、右眼用画像を有効活用して、奥行き情報を取得できる。
【００２８】
また本発明の一態様では、前記画像生成部は、前記左眼用画像と前記右眼用画像による立体視用画像に前記バーチャルオブジェクトが合成された画像を生成してもよい。
【００２９】
このようにすれば、リアリティ度の高い拡張現実と立体視表現とを両立して実現できるようになる。
【００３０】
また本発明の一態様では、前記撮影画像取得部は、前記撮像部が有するデプスカメラからのデプス画像を取得し、前記奥行き情報取得部は、前記デプス画像に基づいて、前記奥行き情報を取得してもよい。
【００３１】
このようにすれば、デプスカメラからのデプス画像を利用して、より精度の高い被写体の奥行き情報を取得できるようになる。
【図面の簡単な説明】
【００３２】
【図１】本実施形態の画像生成システムの構成例。
【図２】図２（Ａ）、図２（Ｂ）は、画像生成システムの一例である携帯型ゲーム装置の構成例。
【図３】図３（Ａ）、図３（Ｂ）は、配置位置決定用のマーカの位置にバーチャルオブジェクトを配置する手法の説明図。
【図４】携帯型ゲーム装置を用いた撮影場面の説明図。
【図５】バーチャルオブジェクトの合成画像の例。
【図６】図６（Ａ）、図６（Ｂ）は本実施形態の手法の説明図。
【図７】図７（Ａ）〜図７（Ｄ）はスルー画を利用したマーカの認識手法の説明図。
【図８】図８（Ａ）、図８（Ｂ）はヒット判定結果を用いたバーチャルオブジェクトの表示態様変更処理、音出力処理の説明図。
【図９】奥行き情報を用いてヒットボリュームを設定してヒット判定処理を行う手法の説明図。
【図１０】図１０（Ａ）、図１０（Ｂ）は奥行き情報を用いてバーチャルオブジェクトを移動させる手法の説明図。
【図１１】奥行き情報を用いてバーチャルオブジェクトを移動させる手法の説明図。
【図１２】図１２（Ａ）〜図１２（Ｃ）は左眼用画像と右眼用画像の視差情報から奥行き情報を取得する手法の説明図。
【図１３】左眼用画像と右眼用画像の視差情報を取得する手法の説明図。
【図１４】図１４（Ａ）、図１４（Ｂ）はデプスカメラからのデプス画像から奥行き情報を取得する手法の説明図。
【図１５】本実施形態の詳細な処理を説明するフローチャート。
【図１６】本実施形態の詳細な処理を説明するフローチャート。
【図１７】本実施形態の詳細な処理を説明するフローチャート。
【発明を実施するための形態】
【００３３】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３４】
１．構成
図１に本実施形態の画像生成システム（ゲーム装置、携帯型電子機器）のブロック図の例を示す。なお、本実施形態の画像生成システムの構成は図１に限定されず、その構成要素（各部）の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００３５】
撮像部１５０は、被写体（撮像対象物）を撮影するためのものであり、例えばＣＣＤやＣＯＭセンサなどの撮像素子や、レンズなどの光学系を含む。また撮像部１５０は、シャッター機構（電子シャッター、メカニカルシャッター）や、アナログフロントエンド回路（Ａ／Ｄ変換回路）や、フォーカス調整部などを含むことができる。撮像部１５０により撮影された撮影画像（撮影画像データ）は撮影画像記憶部１７２（画像バッファ）に記憶されて保存される。
【００３６】
そして図１では、撮像部１５０は、第１のカメラＣＭ１と第２のカメラＣＭ２を含む。立体視用の画像を撮影する場合には、第１のカメラＣＭ１は左眼用カメラとなり、第２のカメラＣＭ２は右眼用カメラとなる。本実施形態では、撮像部１５０が有する第１のカメラＣＭ１で撮影された第１の撮影画像である左眼用画像と、第２のカメラＣＭ２で撮影された第２の撮影画像である右眼用画像とから得られる視差情報に基づいて、奥行き情報を取得できる。なお撮像部１５０が、デプスカメラとカラー画像カメラを有していてもよい。この場合には、撮像部１５０が有するデプスカメラからのデプス画像に基づいて、奥行き情報を取得すればよい。
【００３７】
操作部１６０は、プレーヤ（広義にはユーザ）が操作データを入力するためのものであり、その機能は、方向指示キー、操作ボタン、アナログスティック、レバー、各種センサ（角速度センサ、加速度センサ等）、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
【００３８】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＤＲＡＭ、ＶＲＡＭ）などにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部１７０に保持される。
【００３９】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＣＤ等）、ＨＤＤ（ハードディスクドライブ）、或いはメモリ（ＲＯＭ等）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータ（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００４０】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＬＣＤ、有機ＥＬディスプレイ、ＣＲＴ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００４１】
補助記憶装置１９４（補助メモリ、２次メモリ）は、記憶部１７０の容量を補うために使用される記憶装置であり、ＳＤメモリーカード、マルチメディアカードなどのメモリーカードなどにより実現できる。
【００４２】
通信部１９６は、有線や無線のネットワークを介して外部（例えば他の画像生成システム、サーバ、ホスト装置）との間で通信を行うものであり、その機能は、通信用ＡＳＩＣ又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【００４３】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、サーバ（ホスト装置）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０、補助記憶装置１９４）に配信してもよい。このようなサーバ（ホスト装置）による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００４４】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部１００は記憶部１７０をワーク領域として各種処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＧＰＵ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００４５】
処理部１００は、撮影画像取得部１０２、奥行き情報取得部１０４、オブジェクト処理部１０６、ゲーム演算部１１２、画像生成部１２０、音生成部１３０を含む。なお、これらの一部（例えばゲーム演算部）の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００４６】
撮影画像取得部１０２は撮像部１５０で撮影された撮影画像を取得する。なお、通信部１９６から受信した画像や記憶部１７０に記憶された画像を撮影画像として取得してもよい。奥行き情報取得部１０４は、奥行き情報を取得する。オブジェクト処理部１０６は、バーチャルオブジェクトなどのオブジェクトに関する各種の処理を行う。このオブジェクト処理部１０６は、前後関係判断部１０７、合成処理部１０８、ヒット判定部１０９、移動処理部１１０を含む。なお、これらの各部の構成・動作の詳細については後述する。
【００４７】
ゲーム演算部１１２はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【００４８】
画像生成部１２０は、処理部１００で行われる種々の処理（ゲーム処理、シミュレーション処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。具体的には、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数プリミティブ面）を、描画バッファ１７８（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ）に描画する。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、描画処理は頂点シェーダ処理やピクセルシェーダ処理により実現することができる。
【００４９】
なお、画像生成部１２０が、いわゆる立体視用の画像を生成するようにしてもよい。この場合には、基準となる仮想カメラの位置とカメラ間距離を用いて、左眼用仮想カメラと右眼用仮想カメラを配置設定する。そして画像生成部１２０が、オブジェクト空間内において左眼用仮想カメラから見える左眼用画像と、オブジェクト空間内において右眼用仮想カメラから見える右眼用画像を生成する。そしてこれらの左眼用画像、右眼用画像を用いて、眼分離眼鏡方式や、レンチキュラなどを用いた裸眼方式などにより、立体視を実現すればよい。
【００５０】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００５１】
そして本実施形態では、撮影画像取得部１０２が、撮像部１５０により撮影された撮影画像を取得すると、奥行き情報取得部１０４が、撮影画像に映る被写体の奥行き情報を取得する。そしてオブジェクト処理部１０６が、取得された奥行き情報に基づいて、被写体とバーチャルオブジェクトとの奥行き方向（Ｚ軸方向）での前後関係を判断して、撮影画像にバーチャルオブジェクトを合成するための処理を行う。すると画像生成部１２０は、撮影画像にバーチャルオブジェクトが合成された画像を生成する。ここで撮影画像は静止画であってもよいし、動画であってもよい。
【００５２】
具体的には、オブジェクト処理部１０６は、奥行き情報に基づいて、被写体がバーチャルオブジェクトよりも奥行き方向において手前側に位置すると判断された場合に、被写体がバーチャルオブジェクトよりも手前側に表示される画像を合成するための処理を行う。例えばバーチャルオブジェクトの各部分のうち被写体よりも奥側にある部分については、被写体により隠れて見ないようにする合成処理（描画処理）を行う。例えばオブジェクト処理部１０６は、バーチャルオブジェクトの配置位置を決めるための配置位置決定用被写体（例えば配置位置決定用の模様が描かれたマーカ等の被写体）の奥行き情報と、被写体の奥行き情報とに基づいて、バーチャルオブジェクトと被写体の前後関係を判断する。そしてユーザの手等の被写体が、配置位置決定用被写体よりも手前側にあると判断された場合には、手等の被写体がバーチャルオブジェクトの手前側に表示される画像を生成する。即ち、手等の被写体によりバーチャルオブジェクトが隠面消去された画像を生成する。
【００５３】
ここで、撮影画像に映る被写体は、バーチャルオブジェクトとの前後関係が問題となる現実世界の物体である。具体的には、ユーザ（プレーヤ）の手等の部位や所持物などである。また奥行き情報は、例えば奥行き方向での奥行き値（デプス値、Ｚ値）を表す情報である。具体的には、撮像部１５０のカメラＣＭ１、ＣＭ２の光軸方向での奥行き値などである。
【００５４】
バーチャルオブジェクトは、拡張現実（ＡＲ）において、現実の環境の一部に、付加情報として合成されるバーチャルな物体である。具体的には、キャラクタ（人、動物、ロボット、車、船舶、飛行機等）などのオブジェクトである。このバーチャルオブジェクトは、例えばポリゴン、自由曲面又はサブディビジョンサーフェイスなどの複数のプリミティブ面により構成できる。このバーチャルオブジェクトのオブジェクトデータは、オブジェクトデータ記憶部１７４に記憶される。
【００５５】
奥行き方向での前後関係は、撮像部１５０（カメラＣＭ１、ＣＭ２）から見て、被写体とバーチャルオブジェクトのいずれが手前側（或いは奥側）にあるのかについての関係である。この前後関係の判断処理は前後関係判断部１０７が行う。また撮影画像にバーチャルオブジェクトを合成するための処理は、例えば隠面消去を行いながら、撮影画像にバーチャルオブジェクトを合成する処理であり、バーチャルオブジェクトの各部分（各画素）について、被写体よりも奥側にあるため隠れて見えない部分を描画しないようにする処理である。この合成処理は合成処理部１０８が行う。なお被写体とバーチャルオブジェクトが重なる部分については半透明合成処理（α合成処理）を行うようにしてもよい。
【００５６】
また撮影画像記憶部１７２は、撮像部１５０で撮影された複数のスルー画（スルー画像）の画像データを記憶する。ここでスルー画は、ユーザがシャッター操作を行わない場合にも、撮像部１５０により撮影されて、表示部１９０等に表示される画像（動画）であり、これらの一連のスルー画の画像データが、例えばリングバッファ構造の撮影画像記憶部１７２に順次保存される。そして奥行き情報取得部１０４は、これらの複数のスルー画に基づいて、配置位置決定用被写体の奥行き情報を取得する。具体的には、これらの複数のスルー画のうち、配置位置決定用被写体の配置位置決定部分（例えば模様部分）が被写体により隠れていないと判断されたスルー画に基づいて、配置位置決定用被写体の奥行き情報を取得する。例えば配置位置決定用被写体が映るスルー画のうち、少なくとも配置位置決定に必要な部分が被写体により隠れていないスルー画を検出し、検出されたスルー画に基づいて、配置位置決定用被写体の奥行き情報を取得する。するとオブジェクト処理部１０６（前後関係判断部１０７）は、スルー画から取得された配置位置決定用被写体の奥行き情報と、被写体の奥行き情報とに基づいて、バーチャルオブジェクトと被写体の前後関係を判断する。このようにすることで、配置位置決定用被写体の一部が、ユーザの手等の被写体に隠れてしまった場合にも、配置位置決定用被写体の奥行き情報を適正に取得できるようになる。
【００５７】
またオブジェクト処理部１０６は、奥行き情報に基づいて、被写体とバーチャルオブジェクトとのヒット判定処理を行ってもよい。このヒット判定処理はヒット判定部１０９が行う。具体的にはオブジェクト処理部１０６は、バーチャルオブジェクトの配置位置を決めるための配置位置決定用被写体の奥行き情報に基づいて、バーチャルオブジェクト用のヒットボリューム（ヒットボックス、ヒットエリア）を設定する。例えば配置位置決定用被写体の奥行き値に対応する位置にバーチャルオブジェクト用のヒットボリュームを配置設定する。そして設定されたヒットボリュームを用いて、被写体とバーチャルオブジェクトとのヒット判定処理を行う。例えば被写体の奥行き値に対応する位置に設定された被写体用のヒットボリュームと、バーチャルオブジェクト用のヒットボリュームの間に重なりが生じていないか否かを判定することでヒット判定処理を実現する。或いは、被写体の位置とバーチャルオブジェクト用のヒットボリュームとに基づいてヒット判定処理を行ってもよい。
【００５８】
そしてオブジェクト処理部１０６は、上記のヒット判定処理により、バーチャルオブジェクトに被写体がヒットしたと判定された場合には、バーチャルオブジェクトの表示態様を変化させる処理及びバーチャルオブジェクトに対応する音の出力処理の少なくとも一方の処理を行う。ここで、バーチャルオブジェクトの表示態様を変化させる処理は、バーチャルオブジェクトを動作させたり、バーチャルオブジェクトの色、輝度等の画像を変化させる処理などである。具体的には、例えばヒット時に行われる動作として用意されたバーチャルオブジェクトのアニメーション処理（モーション処理）などを行う。バーチャルオブジェクトに対応する音の出力処理は、ヒット時用の音声や効果音等の音を出力する処理などである。具体的には、ヒット時用に用意されたバーチャルオブジェクトの音声等を出力する。
【００５９】
またオブジェクト処理部１０６は、奥行き情報に基づいて、バーチャルオブジェクトの移動処理を行ってもよい。即ち奥行き情報に対応する移動処理をバーチャルオブジェクトに行わせる。この移動処理は移動処理部１１０が行う。
【００６０】
具体的にはオブジェクト処理部１０６は、バーチャルオブジェクトの配置位置を決めるための配置位置決定用被写体の奥行き情報と、被写体の奥行き情報とに基づいて、移動処理を行う。例えば配置位置決定用被写体の位置と被写体の位置の間で、バーチャルオブジェクトを移動させる処理を行う。例えば配置位置決定用被写体の位置（マーカの位置）から被写体の位置までバーチャルオブジェクトを移動させる処理などを行う。
【００６１】
また撮影画像取得部１０２は、撮像部１５０が有する第１のカメラＣＭ１で撮影された第１の撮影画像を左眼用画像として取得し、撮像部１５０が有する第２のカメラＣＭ２で撮影された第２の撮影画像を右眼用画像として取得する。そして奥行き情報取得部１０４は、これらの左眼用画像と右眼用画像から得られる視差情報（視差による表示位置のずれ）に基づいて、奥行き情報を取得する。例えば視差情報により表される視差（同一被写体の表示位置のずれ）が小さい場合には、被写体等の奥行き値が小さいと判断し、視差（同一被写体の表示位置のずれ）が大きい場合には、奥行き値が大きいと判断する。
【００６２】
この場合に画像生成部１２０は、左眼用画像と右眼用画像による立体視用画像にバーチャルオブジェクトが合成された画像を生成する。即ち、被写体やバーチャルオブジェクトが３次元物体に見える立体視用画像を生成する。
【００６３】
ここで立体視方式としては、２眼分離眼鏡方式や、パララックスバリアやレンチキュラや、その他、光線の方向を制御することができる光学素子を用いた裸眼方式などの様々な方式を想定できる。２眼分離眼鏡方式としては、例えば偏光眼鏡方式、継時分離方式、２色分離方式などがある。偏光眼鏡方式では、例えば表示部１９０の奇数ラインと偶数ラインに左眼用画像と右眼用画像を交互に表示し、これを偏光眼鏡（例えば左眼に水平方向の偏光フィルタ、右眼に垂直方向の偏光フィルタを付けた眼鏡）で見ることで立体視を実現する。或いは左眼用画像と右眼用画像を特殊な偏光フィルタを有するプロジェクタで投影し、投影画像を偏光眼鏡で見ることで立体視を実現してもよい。また継時分離方式（ページ・フリップ方式）では、表示部１９０に左眼用画像、右眼用画像を所定期間毎（例えば１／１２０秒毎、１／６０秒毎）に交互に表示する。そして、この表示の切り替えに連動して液晶シャッター付きの眼鏡の左眼、右眼の液晶シャッターを交互に開閉することで、立体視を実現する。２色分離方式では、アナグリフ画像を生成し、赤青眼鏡等で見ることで、立体視を実現する。
【００６４】
また左眼用画像と右眼用画像から立体用視画像を生成する機能は、画像生成部１２０に持たせてもよいし、表示部１９０（テレビ等）に持たせてもよい。例えば画像生成部１２０が、サイドバイサイド方式の画像信号を出力する。すると表示部１９０が、このサイドバイサイドの画像信号に基づいて、奇数ラインと偶数ラインに左眼用画像と右眼用画像が交互に割り当てられるフィールドシーケンシャル方式の画像を表示する。或いは、左眼用画像と右眼用画像が所定期間毎に交互に切り替えられるフレームシーケンシャル方式の画像を表示する。或いは画像生成部１２０の方が、フィールドシーケンシャル方式やフレームシーケンシャル方式の画像を生成して、表示部１９０に出力するようにしてもよい。
【００６５】
なお、撮影画像取得部１０２が、撮像部１５０が有するデプスカメラ（図示せず）からのデプス画像を取得し、奥行き情報取得部１０４が、このデプス画像に基づいて、奥行き情報を取得してもよい。或いは測距センサなどを用いて奥行き情報を取得してもよい。
【００６６】
２．本実施形態の手法
次に本実施形態の手法について具体的に説明する。
【００６７】
２．１  奥行き情報に基づくバーチャルオブジェクトの合成処理
まず、本実施形態の画像生成システムが適用される携帯型ゲーム装置の例について図２（Ａ）、図２（Ｂ）を用いて説明する。この携帯型ゲーム装置は、メイン表示部１９０Ｍとサブ表示部１９０Ｓを有する。サブ表示部１９０Ｓは、例えばタッチパネル方式の液晶ディスプレイにより実現され、ゲーム装置の筐体１０に設けられる。メイン表示部１９０Ｍは、サブ表示部１９０よりも例えば画素数が多いディスプレイとなっており、例えば液晶ディスプレイなどにより実現される。
【００６８】
ゲーム装置の筐体１０と筐体２０は回動自在に設けられており、筐体１０には、方向指示キー１２、アナログスティック１４、操作ボタン１６が設けられている。また図２（Ｂ）に示すように、筐体２０の背面側（メイン表示部１９０Ｍの反対側）には第１、第２のカメラＣＭ１、ＣＭ２が設けられている。これらの第１、第２のカメラＣＭ１、ＣＭ２を用いて被写体を撮影することで、視差のある左眼用画像と右眼用画像を得ることが可能になり、立体視表示が可能になる。
【００６９】
図３（Ａ）は配置位置決定用被写体の一例である配置位置決定用のマーカＯＢＭ（カード）である。このマーカＯＢＭには、出現させるバーチャルオブジェクトの種類等を決定するための模様（記号、文字等）が描かれている。そして撮像部１５０により、マーカＯＢＭを撮影して、描かれている模様の画像認識を行い、画像認識の結果に基づいて、図３（Ｂ）に示すようにマーカＯＢＭに対応するバーチャルオブジェクトＯＢＶを出現させる。即ち、撮像部１５０の撮影画像にバーチャルオブジェクトＯＢＶの画像が合成された画像を生成する。生成された画像は表示部１９０に表示されたり、記憶部１７０に記憶される。
【００７０】
このようにすることで、ユーザは、自身が所望するバーチャルオブジェクトに対応するマーカＯＢＭ（カード）を配置することで、自身が撮影した画像の中にバーチャルオブジェクトＯＢＶを出現させることが可能になり、いわゆる拡張現実（ＡＲ）を実現できるようになる。
【００７１】
図４は、図２（Ａ）、図２（Ｂ）で説明した携帯型のゲーム装置（携帯型端末）をユーザが左手に持ち、撮像部１５０によりマーカＯＢＭを撮影している場面である。図４ではユーザが、被写体となる右の手ＯＢＨを伸ばしており、ゲーム装置の撮像部１５０とマーカＯＢＭの間に手ＯＢＨが介在している。
【００７２】
このような場合に従来の拡張現実手法では図５に示すような画像が生成されてしまう。即ち、図４の状況の場合には本来ならばユーザの手ＯＢＨ（広義には被写体）がバーチャルオブジェクトＯＢＶの手前側に表示されるべきであるはずなのに、図５では、バーチャルオブジェクトＯＢＶの奥側に手ＯＢＨが存在するような画像が生成されてしまう。つまり、従来の拡張現実手法では、ユーザが撮影した画像に対してバーチャルオブジェクトＯＢＶを上書きで描画する。従って、バーチャルオブジェクトＯＢＶとユーザの手ＯＢＨの奥行き方向での前後関係は判断されず、ＯＢＶとＯＢＨの前後関係に依らずに、常に、被写体である手ＯＢＨの手前側にバーチャルオブジェクトＯＢＶが描画されてしまう。このため、ユーザが不自然さを感じ、拡張現実の実現が不十分になってしまう。
【００７３】
そこで本実施形態では、撮影画像に映る手ＯＢＨ等の被写体の奥行き情報を取得する。そして取得された奥行き情報に基づいて、手ＯＢＨ等の被写体とバーチャルオブジェクトＯＢＶとの奥行き方向での前後関係を判断して、撮影画像にバーチャルオブジェクトを合成する処理を行う。具体的には、奥行き情報に基づいて、図４のように手ＯＢＨ（被写体）がバーチャルオブジェクトＯＢＶよりも奥行き方向（Ｚ方向）において手前側に位置すると判断された場合には、図６（Ａ）のように手ＯＢＨがバーチャルオブジェクトＯＢＶよりも手前側に表示される画像を生成する。逆に、手ＯＢＨがバーチャルオブジェクトＯＢＶよりも奧側に位置すると判断された場合には、図５のように手ＯＢＨがバーチャルオブジェクトＯＢＶよりも奧側に表示される画像を生成する。
【００７４】
このようにすれば、手ＯＢＨがバーチャルオブジェクトＯＢＶ（マーカＯＢＭ）の手前側に位置する場合には図６（Ａ）に示す画像が生成され、奥側に位置する場合には図５に示す画像が生成されるようになるため、ユーザの手ＯＢＨの付近に、あたかもバーチャルオブジェクトＯＢＶが実在するような感覚をユーザに与えることが可能になる。従って、これまでにないタイプの拡張現実を実現できる。
【００７５】
特に本実施形態では、後述するように、被写体の撮影画像から、被写体の奥行き情報を取得できる点に着目している。そして、バーチャルオブジェクトＯＢＶの合成対象となる撮影画像から被写体の奥行き情報を抽出し、抽出された奥行き情報に基づいて、撮影画像とバーチャルオブジェクトＯＢＶの合成処理を行う点に本実施形態の特徴がある。このようにすることで、撮影画像から奥行き情報を抽出しながら、その奥行き情報を利用して、正しい前後関係の合成画像を生成できるようになる。
【００７６】
また本実施形態では、図６（Ｂ）に示すように、バーチャルオブジェクトＯＢＶの配置位置を決めるための配置位置決定用のマーカＯＢＭ（広義には配置位置決定用被写体）の奥行き値ＺＭ（奥行き情報）と、手ＯＢＨ（被写体）の奥行き値ＺＨ（奥行き情報）を取得する。そして、これらの奥行き値ＺＭ、ＺＨとに基づいて、バーチャルオブジェクトＯＢＶと手ＯＢＨの前後関係を判断する。即ち、奥行き値ＺＭとＺＨを比較し、ＺＨ＜ＺＭであれば、手ＯＢＨがバーチャルオブジェクトＯＢＶ（マーカＯＢＭ）の手前側に位置すると判断して、図６（Ａ）に示すような画像を生成する。即ち、手ＯＢＨによりバーチャルオブジェクトＯＢＶの一部が隠面消去された画像を生成する。
【００７７】
このようにすることで、マーカＯＢＭの模様に対応するバーチャルオブジェクトＯＢＶを出現させることが可能になると共に、出現させたバーチャルオブジェクトＯＢＶと手ＯＢＨとの前後関係も適正に判断して拡張現実の画像を生成できるようになる。
【００７８】
なお、図６（Ａ）、図６（Ｂ）では、バーチャルオブジェクトの配置位置決定用被写体がマーカである場合を例にとり説明しているが、配置位置決定用被写体はマーカには限定されない。例えば、被写体の形状自体の認識を行い、形状認識の結果に応じたバーチャルオブジェクトを出現させてもよい。具体的には第１の形状（例えば四角形状）の物体が認識された場合には、第１のバーチャルオブジェクトを出現させ、第２の形状（例えば丸形状）の物体が認識された場合には第２のバーチャルオブジェクトを出現させる。
【００７９】
また、バーチャルオブジェクトとの隠面消去の対象となる被写体は、ユーザの手などの部位には限定されず、例えばユーザが所持するペンやポインタなどの所持物であってもよい。また図６（Ａ）では、ユーザの手等の被写体が手前側にある場合に、その手等の被写体によりバーチャルオブジェクトが完全に隠面消去される場合の合成画像の例であるが、手等の被写体の画像とバーチャルオブジェクトの画像が半透明合成された画像を生成してもよい。また、手等の被写体とバーチャルオブジェクトとの前後関係の判定処理も図６（Ｂ）に示す手法には限定されずに、種々の変形実施が可能である。
【００８０】
２．２  スルー画の利用
さて、図４のようにユーザの手ＯＢＨが、ゲーム装置の撮像部１５０とマーカＯＢＭとの間に介在する場合には、マーカＯＢＭの模様の画像認識を適正に実現できなくなるおそれがある。そこで、このような場合に、本実施形態では、デジタルカメラなどで一般的に使用されるスルー画（動画）を有効活用して、マーカＯＢＭの奥行き情報を取得する。このスルー画は、例えば図４においてメイン表示部１９０Ｍに表示される。
【００８１】
例えば図７（Ａ）〜図７（Ｄ）に、撮像部１５０により撮影される一連のスルー画の例を示す。図７（Ａ）〜図７（Ｃ）のスルー画では、マーカＯＢＭの配置位置決定部分である模様部分が、被写体である手ＯＢＨにより隠れてしまっている。従って、マーカＯＢＭの模様部分（文字、記号等）の画像認識処理を適正に実行することができず、適正なバーチャルオブジェクトを出現させることが困難になる。
【００８２】
一方、図７（Ｄ）のスルー画では、マーカＯＢＭの模様部分（配置位置決定部分）が、手ＯＢＨによって隠れていない。従って、図７（Ｄ）のスルー画を用いることで、マーカＯＢＭの模様部分の画像認識を適正に実現でき、適正なバーチャルオブジェクトを出現させることが可能になる。
【００８３】
そこで本実施形態では、図７（Ａ）〜図７（Ｄ）のような一連のスルー画を撮影画像記憶部１７２に記憶して保存しておく。具体的には、例えばユーザがシャッタ操作を行ったタイミングの前の期間及び後ろの期間の少なくとも一方の期間における複数のスルー画を保存する。そして、これらの複数のスルー画（動画の各画像）のうち、模様部分（配置位置決定部分）が、被写体である手ＯＢＨにより隠れていないと判断されたスルー画（一部が隠れているスルー画であってもよい）に基づいて、配置位置決定用マーカＯＢＭ（配置位置決定用被写体）の奥行き情報を取得する。
【００８４】
例えば図７（Ａ）〜図７（Ｄ）に示す複数のスルー画をマッチング処理の対象として、テンプレート模様とのマッチング処理を行う。具体的には、ユーザがシャッタ操作を行ったタイミングの前の期間及び後ろの期間の少なくとも一方の期間における複数のスルー画をマッチング処理の対象として、テンプレート模様（テンプレートとなる文字、記号等）とのマッチング処理を行う。例えば、複数のスルー画から抽出された特徴量と、テンプレート模様の特徴量とのマッチング処理を行う。そして図７（Ａ）〜図７（Ｄ）の場合には、図７（Ｄ）のスルー画に表示される模様が、テンプレート模様とマッチングしたと判断されるため、図７（Ｄ）のスルー画に基づいて、マーカＯＢＭの奥行き情報が取得される。
【００８５】
そして図７（Ｄ）のスルー画から取得されたマーカＯＢＭの奥行き情報と、手ＯＢＨの奥行き情報とに基づいて、バーチャルオブジェクトＯＢＶと手ＯＢＨの前後関係を判断する。
【００８６】
このようにすれば、ユーザの手ＯＢＨによりマーカＯＢＭの模様が隠れて見えなくなった場合にも、マーカＯＢＭの奥行き情報を取得して手ＯＢＨとの前後関係を判断できるようになり、適正な前後関係でバーチャルオブジェクトＯＢＶを表示することが可能になる。
【００８７】
なお、撮影画像記憶部１７２に記憶して保存しておくスルー画は、シャッター操作により記録される撮影画像よりも低解像度のものであってもよい。また、撮像部の前に手を挿入しない事をユーザに指示し、その状態で撮影された画像に基づいてマーカＯＢＭの奥行き情報を取得してもよい。また図７（Ｃ）のようにマーカＯＢＭの模様の一部が手ＯＢＨにより隠れている場合にも、テンプレート模様とのマッチング率が一定値以上である場合には、模様部分が手ＯＢＨにより隠れていないと判断して、マーカＯＢＭの奥行き情報を取得してもよい。
【００８８】
２．３  ヒット判定処理
本実施形態では、撮影画像から取得された奥行き情報に基づいて、被写体とバーチャルオブジェクトとのヒット判定処理を行ってもよい。
【００８９】
具体的には図８（Ａ）、図８（Ｂ）では、バーチャルオブジェクトＯＢＶの方にユーザは手ＯＢＨを動かしている。この場合に本実施形態では、取得された奥行き情報に基づいて、手ＯＢＨとバーチャルオブジェクトＯＢＶとのヒット判定処理を行う。そして、手ＯＢＨがバーチャルオブジェクトＯＢＶにヒットしたと判定されると、手ＯＢＨがバーチャルオブジェクトＯＢＶに仮想的に接触した状態であると判断する。そしてバーチャルオブジェクトＯＢＶの表示態様を変化させる処理や、バーチャルオブジェクトＯＢＶに対応する音の出力処理を行う。
【００９０】
例えば図８（Ａ）では、手ＯＢＨがバーチャルオブジェクトＯＢＶにヒットしたと判定された場合に（接触したと判定された場合に）、バーチャルオブジェクトＯＢＶのアニメーション処理（モーション処理）を行っている。具体的には図８（Ａ）では、バーチャルオブジェクトＯＢＶが両手を上げるアニメーション処理を行っている。
【００９１】
このアニメーション処理は、静止画により実現してもよいし、動画により実現してもよい。例えば静止画で実現する場合には、手ＯＢＨがバーチャルオブジェクトＯＢＶにヒットしていないと判定された場合には、両手を下げた状態のバーチャルオブジェクトＯＢＶを、静止画の撮影画像に合成する。一方、手ＯＢＨがバーチャルオブジェクトＯＢＶにヒットしたと判定された場合には、両手を上げた状態のバーチャルオブジェクトＯＢＶを、静止画の撮影画像に合成する。
【００９２】
動画により実現する場合には、図４のメイン表示部１９０Ｍに、撮影画像にバーチャルオブジェクトＯＢＶが合成された動画（スルー画）を表示する。そして、手ＯＢＨがバーチャルオブジェクトＯＢＶにヒットしていないと判定された場合には、両手を下げた状態のバーチャルオブジェクトＯＢＶが撮影画像に合成された動画を、メイン表示部１９０Ｍに表示する。一方、手ＯＢＨがバーチャルオブジェクトＯＢＶにヒットしたと判定された場合には、両手を上げるモーションを行っているバーチャルオブジェクトＯＢＶが撮影画像に合成された動画を、メイン表示部１９０Ｍに表示する。
【００９３】
図８（Ｂ）では、手ＯＢＨがバーチャルオブジェクトＯＢＶにヒットしたと判定された場合に、バーチャルオブジェクトＯＢＶに対応する音を出力する処理を行っている。具体的には図８（Ｂ）では、手ＯＢＨが触れたことに対応する音声（例えば「ハーイ」などの音声）を、バーチャルオブジェクトＯＢＶが発声する処理を行っている。この場合に、音声ではなく、手ＯＢＨが触れたことに対応する効果音等を出力するようにしてもよい。
【００９４】
次にヒット判定処理の具体例について説明する。例えば図９では、配置位置決定用のマーカＯＢＭの奥行き情報に基づいて、バーチャルオブジェクト用のヒットボリュームＨＴＶを設定し、設定されたヒットボリュームＨＴＶを用いて、手ＯＢＨ等の被写体とバーチャルオブジェクトＯＢＶとのヒット判定処理を実現している。
【００９５】
具体的には図９において、マーカＯＢＭの奥行き値ＺＭが奥行き情報として検出されている。この場合には、奥行き値＝ＺＭの位置にバーチャルオブジェクト用のヒットボリュームＨＴＶを設定する。このヒットボリュームＨＴＶのサイズや形状は、例えばマーカＯＢＭの模様パターンにより出現するバーチャルオブジェクトＯＢＶのサイズや形状に応じたサイズや形状に設定すればよい。例えば大きなサイズのバーチャルオブジェクトＯＢＶを出現させる場合には、ヒットボリュームＨＴＶのサイズも大きくし、小さなサイズのバーチャルオブジェクトＯＢＶを出現させる場合には、ヒットボリュームＨＴＶのサイズも小さくする。また、例えば立った姿勢（形状）のバーチャルオブジェクトＯＢＶを出現させる場合と、座った姿勢のバーチャルオブジェクトＯＢＶを出現させる場合とで、ヒットボリュームＨＴＶの形状を変化させてもよい。
【００９６】
また図９では、手ＯＢＨの奥行き値ＺＨが奥行き情報として検出されており、奥行き値＝ＺＨの位置に手用（被写体用）のヒットボリュームＨＴＨが設定されている。そしてヒットボリュームＨＴＶとＨＴＨの間に重なりが存在するか否かを判定するヒット判定処理が行われる。そして、重なりが存在すると判定された場合には、手ＯＢＨがバーチャルオブジェクトＯＢＶにヒットしたと判断して、図８（Ａ）、図８（Ｂ）に示すような表示態様の変化処理や音の出力処理を行う。
【００９７】
このようにバーチャルオブジェクトの奥行き値に応じたヒットボリュームを設定してヒット判定処理を行うことで、より精度の高いヒット判定処理を実現することができ、拡張現実におけるリアリティ度を更に向上することができる。
【００９８】
以上のように本実施形態では、取得された奥行き情報に基づいて手等の被写体とバーチャルオブジェクトとのヒット判定処理を行っている。これによりユーザに対して、あたかも現実の物体がバーチャルオブジェクトとして撮影画像上に映し出されているような感覚を与えることが可能になる。即ち、ユーザが手をバーチャルオブジェクトに触れることで、図８（Ａ）、図８（Ｂ）のようにバーチャルオブジェクトが反応するため、バーチャルオブジェクトの実在感が増し、拡張現実におけるリアリティ度を向上できる。
【００９９】
なお、ヒット時の表示態様の変化手法や音出力手法は図８（Ａ）、図８（Ｂ）で説明した手法に限定されない。例えば被写体とバーチャルオブジェクトのヒット位置に応じて、表示態様の変化のさせ方や出力させる音を異ならせてもよい。具体的には、バーチャルオブジェクトの第１の部位（例えば頭部）に手等がヒットした場合には、バーチャルオブジェクトの第１のアニメーション処理（例えば片手を上げる第１のモーション処理）を行い、第２の部位（例えば胴体部）にヒットした場合には、第２のアニメーション処理（例えば両手を上げる第２のモーション処理）を行ってもよい。またバーチャルオブジェクトの第１の部位に手等がヒットした場合には、バーチャルオブジェクトが第１のパターンの音声（例えば「ありがとう」という音声）を出力し、第２の部位にヒットした場合には、第２のパターンの音声（例えば「ハーイ」という音声）を出力してもよい。
【０１００】
またヒット判定手法は、図９で説明した手法に限定されない。例えば手等の被写体についてはヒットボリュームを設定せずに、被写体の代表位置と、バーチャルオブジェクトのヒットボリュームを用いてヒット判定処理を行ってもよい。或いは、ヒットボリュームを用いずに、例えばバーチャルオブジェクトの代表位置と被写体の代表位置を用いてヒット判定処理を行ってもよい。また被写体のヒットボリュームを設定する場合には、図９のような１つの奥行き値ＺＨだけではなくて、その被写体について取得された複数の奥行き値に基づいてヒットボリュームを設定してもよい。具体的には後述する図１４（Ｂ）に示すようなデプス画像が取得される場合には、このデプス画像の奥行き値を用いて、手等の被写体のヒットボリュームを設定してもよい。
【０１０１】
２．４  移動処理
本実施形態では、取得された奥行き情報に基づいて、バーチャルオブジェクトの移動処理を行ってもよい。具体的には、配置位置決定用のマーカの奥行き情報と、被写体の奥行き情報とに基づいて、マーカの位置と被写体の位置の間で、バーチャルオブジェクトを移動させる処理を行う。
【０１０２】
例えば図１０（Ａ）では、配置位置決定用のマーカＯＢＭの模様パターンにより、鳥のバーチャルオブジェクトＯＢＶが出現している。そして、この鳥のバーチャルオブジェクトＯＢＶの前に、ユーザの手ＯＢＨが存在することが検出されると、図１０（Ｂ）に示すように、バーチャルオブジェクトＯＢＶがユーザの手ＯＢＨの方に飛んで移動して、手ＯＢＨの上に止まる移動処理が行われる。このようにすることで、バーチャルオブジェクトＯＢＶが、あたかも生きている本物の鳥のような感覚をユーザに対して与えることができ、拡張現実のリアリティ度を向上できる。
【０１０３】
次に移動処理の具体例について図１１を用いて説明する。図１１では、配置位置決定用のマーカＯＢＭの奥行き値ＺＭが奥行き情報として検出されている。また被写体である手ＯＢＨの奥行き位置ＺＨが奥行き情報として検出されている。この場合には、この奥行き値ＺＭとＺＨに基づいて図１１に示すような移動軌道ＴＲが設定され、この移動軌道上でバーチャルオブジェクトＯＢＶを移動させる処理が行われる。このようにすることで、図１０（Ｂ）に示すように、ユーザの手ＯＢＨにバーチャルオブジェクトＯＢＶが飛び乗る画像を生成することが可能になる。
【０１０４】
このようにすれば、検出された奥行き値ＺＭ、ＺＨを有効活用して、バーチャルオブジェクトＯＢＶの移動処理を実現することが可能になり、少ない処理負荷で、リアリティ度の高い拡張現実を実現できるようになる。
【０１０５】
なお、図１０（Ａ）、図１０（Ｂ）とは逆に、ユーザの手ＯＢＨの位置からマーカＯＢＭの位置にバーチャルオブジェクトＯＢＶを移動させる処理を行ってもよい。また、出現するバーチャルオブジェクトＯＢＶの種類に応じて、移動軌道ＴＲを変化させてもよい。或いは、マーカＯＢＭの手前側に存在することが検出された被写体の形状等に応じて、バーチャルオブジェクトＯＢＶの移動軌跡等の移動態様を変化させてもよい。
【０１０６】
また移動処理に基づく画像生成は、静止画により実現してもよいし、動画により実現してもよい。例えば静止画で実現する場合には、撮影画像の奥行き情報に基づいてマーカＯＢＭの手前側に手ＯＢＨが存在することが検出された場合に、図１０（Ａ）の静止画の画像と、図１０（Ｂ）の静止画の画像を生成する。一方、動画で実現する場合には、図１０（Ａ）から図１０（Ｂ）へとバーチャルオブジェクトＯＢＶが移動する動画の画像を生成して、例えば図４のメイン表示部１９０Ｍに表示する。
【０１０７】
２．５  奥行き情報の取得
次に奥行き情報の具体的な取得手法について説明する。
【０１０８】
例えば本実施形態では、図２（Ｂ）の第１、第２のカメラＣＭ１、ＣＭ２で取得された画像の視差情報（同一被写体の表示位置のずれ、水平視差）に基づいて奥行き情報を取得する。具体的には第１のカメラＣＭ１で撮影された画像を左眼用画像として取得し、第２のカメラＣＭ２で撮影された画像を右眼用画像として取得する。そして図１２（Ａ）〜図１２（Ｃ）に示すように、左眼用画像と右眼用画像から得られる視差情報に基づいて、奥行き情報を取得する。
【０１０９】
例えば図１２（Ａ）において、ＯＢＬは、左眼用画像に映る被写体の画像であり、ＯＢＲは、右眼用画像に映る同一被写体の画像である。そして図１２（Ａ）では、これらの被写体画像ＯＢＬ、ＯＢＲの間の視差（視差による表示位置のずれ）が小さいため、カメラＣＭ１、ＣＭ２から見た被写体の奥行き値は小さいと判断される。一方、図１２（Ｂ）では、これらの被写体画像ＯＢＬ、ＯＢＲの間の視差が中ぐらいであるため、被写体の奥行き値は中ぐらいであると判断される。また図１２（Ｃ）では、被写体画像ＯＢＬ、ＯＢＲの間の視差（視差による表示位置のずれ）が大きいため、被写体の奥行き値は大きいと判断される。
【０１１０】
このように、カメラＣＭ１、ＣＭ２で撮影された画像の視差情報（同一被写体の表示位置のずれ情報）を用いて、撮影画像に映る被写体の奥行き情報を取得できる。従って、手ＯＢＨやマーカＯＢＭの被写体の視差情報を検出することで、手ＯＢＨやマーカＯＢＭの奥行き値ＺＨ、ＺＭを取得することが可能になり、これらの奥行き値ＺＨ、ＺＭを用いて、図６（Ａ）〜図１１で説明したバーチャルオブジェクトＯＢＶの合成処理、ヒット判定処理、移動処理などを実現できるようになる。
【０１１１】
また、カメラＣＭ１、ＣＭ２により左眼用画像、右眼用画像を撮影することで、立体視画像の生成も可能になる。従って、図６（Ａ）、図８（Ａ）、図８（Ｂ）、図１０（Ａ）、図１０（Ｂ）の画像を、立体視用画像として生成することが可能になり、リアリティ度の高い拡張現実と立体視表現とを両立して実現できるという利点がある。
【０１１２】
なお視差情報の検出は、例えば図１３に示す手法により実現できる。例えば図１３では、奥行き情報の取得対象となる被写体の右眼用画像でのブロック画像ＢＲと、左眼用画像のブロック画像ＢＬとのマッチング処理が行われる。そして右眼用画像のブロック画像ＢＲと左眼用画像のブロック画像ＢＬがマッチングしたと判断されると、例えばブロック画像ＢＲの位置のＸ座標とブロック画像ＢＬの位置のＸ座標の座標差が、視差情報として取得される。そして、取得された視差情報から例えば所定の変換式を用いて奥行き情報が算出され、当該被写体（マーカ、手等）の奥行き情報が取得される。このようにすることで、マッチング処理を利用した簡素な処理で、被写体の奥行き情報を取得できるようになる。
【０１１３】
なお、奥行き情報の取得手法は、視差情報に基づくものに限定されず、種々の手法を想定できる。例えば撮像部１５０がデプスカメラを有する場合には、デプスカメラ（デプスセンサ）により撮影されたデプス画像に基づいて、奥行き情報を取得してもよい。
【０１１４】
例えば図１４（Ａ）、図１４（Ｂ）にカラー画像カメラにより撮影されたカラー画像と、デプスカメラにより撮影されたデプス画像の例を示す。カラー画像カメラは、ＣＣＤやＣＭＯＳセンサなどのＲＧＢセンサにより実現され、デプスカメラは、例えば赤外線センサなどにより実現される。例えば図２（Ｂ）のカメラＣＭ１の位置にカラー画像カメラが設けられ、カメラＣＭ２の位置にデプスカメラが設けられる。
【０１１５】
そしてカラー画像カメラを用いて図１４（Ａ）に示すようなカラー画像が撮影され、デプスカメラを用いて図１４（Ｂ）に示すようなデプス画像が撮影される。例えばカラー画像では、被写体やその周りの風景の色情報が得られる。一方、デプス画像では、被写体やその周りの風景の奥行き値（デプス値）が、例えばグレースケール値として得られる。例えばカラー画像は、その各画素位置にカラー値（ＲＧＢ）が設定された画像であり、デプス画像は、その各画素位置に奥行き値（デプス値）が設定された画像である。
【０１１６】
デプス画像の奥行き情報の取得手法としては、公知に種々の手法を想定できる。例えばデプスカメラから赤外線等の光を投射し、その投射光の反射強度や、投射光が戻ってくるまでの時間（Time Of Flight）を検出することで、奥行き情報を取得し、デプスカメラの位置から見た被写体のシェイプを検出する。具体的には、奥行き情報（デプス情報）は、例えばデプスカメラから近い被写体では明るくなり、デプスカメラから遠い被写体では暗くなるグレースケールデータとして表される。或いはデプスカメラである赤外線レーザによるモアレ縞に基づいて奥行き情報（デプス距離）を取得する。
【０１１７】
なお奥行き情報の取得手法としては種々の変形実施が可能であり、超音波などを用いた測距センサなどにより奥行き情報を取得してもよい。
【０１１８】
２．６  具体的な処理例
次に本実施形態の具体的な処理例について図１５〜図１７のフローチャートを用いて説明する。
【０１１９】
図１５は奥行き情報に基づくバーチャルオブジェクトの合成処理について説明するためのフローチャートである。
【０１２０】
まずシャッターが押されたか否かを判断する（ステップＳ１）。シャッター操作は例えば図２（Ａ）の操作ボタン１６を押すことなどにより行われる。シャッターが押された場合には、シャッターが押されたタイミングでの撮影画像を保存する（ステップＳ２）。そしてバーチャルオブジェクトの配置位置決定用マーカの認識処理を行う（ステップＳ３）。例えばテンプレートとなる模様とのマッチング処理を行うことで、認識処理を実現する。
【０１２１】
次に、保存された撮影画像からマーカ（マーカの模様）が認識されたか否かを判断し（ステップＳ４）、認識されなかった場合には、図７（Ａ）〜図７（Ｄ）で説明したように、保存された撮影画像の前後のスルー画からマーカが認識されたか否かを判断する（ステップＳ５）。そしてステップＳ４又はステップＳ５のいずれかでマーカが認識された場合には、認識されたマーカの種類からバーチャルオブジェクトの種類を決定する（ステップＳ６）。例えばマーカが第１の種類のマーカである場合には、第１のバーチャルオブジェクトを出現させ、第２の種類のマーカである場合には、第２のバーチャルオブジェクトを出現させる。
【０１２２】
次に、図２（Ｂ）のカメラＣＭ１，ＣＭ２により撮影された左眼用画像、右眼用画像の視差情報から、図１２（Ａ）〜図１２（Ｃ）で説明したようにマーカの奥行き値ＺＭを求める（ステップＳ７）。また左眼用画像、右眼用画像の視差情報から、ユーザの手等の被写体の奥行き値ＺＨを求める（ステップＳ８）。
【０１２３】
次に、取得された奥行き値がＺＨ＜ＺＭであるか否かを判断する（ステップＳ９）。そしてＺＨ＜ＺＭである場合には、図６（Ａ）に示すように手等の被写体がバーチャルオブジェクトの手前側に表示されるように画像を合成する（ステップＳ１０）。一方、ＺＨ≧ＺＭである場合には、図５に示すように手等の被写体がバーチャルオブジェクトの奥側に表示されるように画像を合成する（ステップＳ１１）。
【０１２４】
図１６は、手等の被写体とバーチャルオブジェクトのヒット判定処理を説明するためのフローチャートである。
【０１２５】
マーカの奥行き値ＺＭが取得されると、図９で説明したように奥行き値ＺＭの位置にバーチャルオブジェクト用のヒットボリュームＨＴＶを配置設定する（ステップＳ２１）。また手等の被写体の奥行き値ＺＨが取得されると、奥行き値ＺＨの位置に、手等の被写体用のヒットボリュームＨＴＨを配置設定する（ステップＳ２２）。そして、ヒットボリュームＨＴＶとＨＴＨのヒットチェック処理を行う（ステップＳ２３）。即ちヒットボリュームＨＴＶとＨＴＨの間に重なりがあるか否かを判定するヒットチェック処理を行う。そしてヒットしたと判定された場合には（ステップＳ２４）、図８（Ａ）、図８（Ｂ）で説明したように、バーチャルオブジェクトのアニメーション処理（モーション処理）や音声出力処理を行う（ステップＳ２５）。例えばヒット位置に応じたアニメーション処理や音声出力処理を行う。
【０１２６】
図１７は、奥行き情報に基づくバーチャルオブジェクトの移動処理を説明するためのフローチャートである。
【０１２７】
図１７のステップＳ３１〜Ｓ３８は図１５のステップＳ１〜Ｓ８と同様であるため説明を省略する。図１７のステップＳ３７、Ｓ３８で、マーカの奥行き値ＺＭと、ユーザの手等の被写体の奥行き値ＺＨが取得されると、ステップＳ３９に示すように、奥行き値ＺＭの位置からＺＨの位置に、バーチャルオブジェクトが移動する画像を合成する（ステップＳ３９）。例えば図１１で説明したように奥行き値ＺＭとＺＨで特定される移動軌道ＴＲに沿ってバーチャルオブジェクトが移動する画像を合成する。これにより図１０（Ａ）、図１０（Ｂ）に示すような画像を生成できるようになる。
【０１２８】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語（被写体、配置位置決定用被写体等）と共に記載された用語（手、配置位置決定用マーカ等）は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、奥行き情報の取得処理、奥行き情報に基づくバーチャルオブジェクトの合成処理、奥行き情報に基づくヒット判定処理、奥行き情報に基づくバーチャルオブジェクトの移動処理等も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は、携帯型ゲーム装置、家庭用ゲーム装置、業務用ゲーム装置、携帯電話機、携帯型情報端末などの種々の画像生成システムに適用できる。
【符号の説明】
【０１２９】
ＯＢＭ  配置位置決定用マーカ（配置位置決定用被写体）、ＯＢＨ  手（被写体）、
ＯＢＶ  バーチャルオブジェクト、ＺＭ、ＺＨ  奥行き値、
ＨＴＶ、ＨＴＨ  ヒットボリューム、ＣＭ１、ＣＭ２  第１、第２のカメラ、
１０、２０  筐体、１２  方向指示キー、１４  アナログスティック、
１６  操作ボタン、
１００  処理部、１０２  撮影画像取得部、１０４  奥行き情報取得部、
１０６  オブジェクト処理部、１０７  前後関係判断部、１０８  合成処理部、
１０９  ヒット判定部、１１０  移動処理部、１１２  ゲーム演算部、
１２０  画像生成部、１３０  音生成部、１５０  撮像部、１６０  操作部、
１７０  記憶部、１７２  撮影画像記憶部、１７４  オブジェクトデータ記憶部、
１７８  描画バッファ、１８０  情報記憶媒体、
１９０（１９０Ｍ、１９０Ｓ）  表示部、１９２  音出力部、
１９４  補助記憶装置、１９６  通信部
【図１】
2012058968.tif 000003
【図２】
2012058968.tif 000004
【図３】
2012058968.tif 000005
【図４】
2012058968.tif 000006
【図５】
2012058968.tif 000007
【図６】
2012058968.tif 000008
【図７】
2012058968.tif 000009
【図８】
2012058968.tif 000010
【図９】
2012058968.tif 000011
【図１０】
2012058968.tif 000012
【図１１】
2012058968.tif 000013
【図１２】
2012058968.tif 000014
【図１３】
2012058968.tif 000015
【図１４】
2012058968.tif 000016
【図１５】
2012058968.tif 000017
【図１６】
2012058968.tif 000018
【図１７】
2012058968.tif 000019