説明

プログラム、情報記憶媒体及び画像生成システム

【課題】拡張現実におけるリアリティ度を向上できるプログラム、情報記憶媒体、画像生成システム等の提供。
【解決手段】画像生成システムは、撮像部により撮影された撮影画像を取得する撮影画像取得部と、撮影画像に映る被写体の奥行き情報を取得する奥行き情報取得部と、取得された奥行き情報に基づいて、被写体とバーチャルオブジェクトとの奥行き方向での前後関係を判断して、撮影画像にバーチャルオブジェクトを合成するための処理を行うオブジェクト処理部と、撮影画像にバーチャルオブジェクトが合成された画像を生成する画像生成部を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及び画像生成システム等に関する。
【背景技術】
【0002】
近年、コンピュータを用いて現実世界に情報を付加提示する技術として、拡張現実(AR: Augmented Reality)と呼ばれる技術が脚光を浴びている。この拡張現実(AR)は、強化現実とも呼ばれ、現実の環境の一部に、付加情報としてのバーチャルな物体を合成して表示する。このような拡張現実の従来技術としては例えば特許文献1に開示される技術がある。この特許文献1の従来技術では、所定の模様が描かれたマーカが配置された現実世界の様子を撮像部により撮影する。そして、撮像部により撮影された画像内におけるマーカの位置を推定すると共にマーカの画像認識を行い、推定された位置に、マーカの模様に対応するバーチャルオブジェクトを重畳して合成表示する。
【0003】
しかしながら、この従来技術では、マーカに対応するバーチャルオブジェクトが常に手前側に来るように、撮影画像に対してバーチャルオブジェクトが重畳するように合成される。このため、撮影画像内の他の被写体とバーチャルオブジェクトとの前後関係に矛盾が生じてしまい、ユーザが不自然さを感じるおそれがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−170316号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の幾つかの態様によれば、拡張現実におけるリアリティ度を向上できるプログラム、情報記憶媒体、画像生成システム等を提供できる。
【課題を解決するための手段】
【0006】
本発明の一態様は、撮像部により撮影された撮影画像を取得する撮影画像取得部と、前記撮影画像に映る被写体の奥行き情報を取得する奥行き情報取得部と、取得された前記奥行き情報に基づいて、前記被写体とバーチャルオブジェクトとの奥行き方向での前後関係を判断して、前記撮影画像に前記バーチャルオブジェクトを合成するための処理を行うオブジェクト処理部と、前記撮影画像に前記バーチャルオブジェクトが合成された画像を生成する画像生成部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【0007】
本発明の一態様によれば、撮影画像に映る被写体の奥行き情報が取得される。そして取得された奥行き情報により、被写体とバーチャルオブジェクトとの奥行き方向での前後関係が判断されて、撮影画像にバーチャルオブジェクトが合成された画像が生成される。このようにすれば、被写体の奥行き情報を反映させたバーチャルオブジェクトの合成処理を実現できるため、拡張現実におけるリアリティ度を向上できる。
【0008】
また本発明の一態様では、前記オブジェクト処理部は、前記奥行き情報に基づいて、前記被写体が前記バーチャルオブジェクトよりも奥行き方向において手前側に位置すると判断された場合に、前記被写体が前記バーチャルオブジェクトよりも手前側に表示される画像を合成するための処理を行ってもよい。
【0009】
このようにすれば、被写体がバーチャルオブジェクトの手前側に位置するのに、バーチャルオブジェクトの奥側に被写体が表示される画像が生成されてしまう事態を防止できる。
【0010】
また本発明の一態様では、前記オブジェクト処理部は、前記バーチャルオブジェクトの配置位置を決めるための配置位置決定用被写体の奥行き情報と、前記被写体の奥行き情報とに基づいて、前記バーチャルオブジェクトと前記被写体の前後関係を判断してもよい。
【0011】
このようにすれば、被写体の奥行き情報と、バーチャルオブジェクトの配置位置決定用被写体の奥行き情報を用いて、被写体とバーチャルオブジェクトとの前後関係を判断して、撮影画像にバーチャルオブジェクトが合成された画像を生成できるようになる。
【0012】
また本発明の一態様では、前記撮像部で撮影された複数のスルー画の画像データを記憶する撮影画像記憶部を含み(撮影画像記憶部としてコンピュータを機能させ)、前記奥行き情報取得部は、前記複数のスルー画に基づいて、前記配置位置決定用被写体の奥行き情報を取得し、前記オブジェクト処理部は、前記スルー画から取得された前記配置位置決定用被写体の奥行き情報と、前記被写体の奥行き情報とに基づいて、前記バーチャルオブジェクトと前記被写体の前後関係を判断してもよい。
【0013】
このようにすれば、スルー画を有効活用して、被写体とバーチャルオブジェクトとの前後関係を適正に判断できるようになる。
【0014】
また本発明の一態様では、前記奥行き情報取得部は、前記複数のスルー画のうち、前記配置位置決定用被写体の配置位置決定部分が前記被写体により隠れていないと判断されたスルー画に基づいて、前記配置位置決定用被写体の奥行き情報を取得してもよい。
【0015】
このようにすれば、配置位置決定用被写体の配置位置決定部分が被写体により隠れている場合にも、スルー画を有効活用して、被写体とバーチャルオブジェクトとの前後関係を適正に判断できるようになる。
【0016】
また本発明の一態様では、前記オブジェクト処理部は、前記奥行き情報に基づいて、前記被写体と前記バーチャルオブジェクトとのヒット判定処理を行ってもよい。
【0017】
このようにすれば、取得された奥行き情報を反映させた、被写体とバーチャルオブジェクトとのヒット判定処理を実現できる。
【0018】
また本発明の一態様では、前記オブジェクト処理部は、前記バーチャルオブジェクトの配置位置を決めるための配置位置決定用被写体の奥行き情報に基づいて、前記バーチャルオブジェクト用のヒットボリュームを設定し、設定された前記ヒットボリュームを用いて、前記被写体と前記バーチャルオブジェクトとのヒット判定処理を行ってもよい。
【0019】
このようにすれば、配置位置決定用被写体の奥行き情報によりバーチャルオブジェクト用のヒットボリュームを設定して、ヒット判定処理を行えるようになるため、より精度の高いヒット判定処理を実現できる。
【0020】
また本発明の一態様では、前記オブジェクト処理部は、前記ヒット判定処理により、前記バーチャルオブジェクトに前記被写体がヒットしたと判定された場合に、前記バーチャルオブジェクトの表示態様を変化させる処理及び前記バーチャルオブジェクトに対応する音の出力処理の少なくとも一方の処理を行ってもよい。
【0021】
このようにすれば、被写体がバーチャルオブジェクトにヒットすると、バーチャルオブジェクトの表示態様が変化したり、バーチャルオブジェクトに対応する音が出力されるようになるため、バーチャルオブジェクトの実在感が増し、拡張現実におけるリアリティ度を更に向上できる。
【0022】
また本発明の一態様では、前記オブジェクト処理部は、前記奥行き情報に基づいて、前記バーチャルオブジェクトの移動処理を行ってもよい。
【0023】
このようにすれば、取得された奥行き情報を反映させたバーチャルオブジェクトの移動処理を実現できる。
【0024】
また本発明の一態様では、前記オブジェクト処理部は、前記バーチャルオブジェクトの配置位置を決めるための配置位置決定用被写体の奥行き情報と、前記被写体の奥行き情報とに基づいて、前記配置位置決定用被写体の位置と前記被写体の位置の間で、前記バーチャルオブジェクトを移動させる処理を行ってもよい。
【0025】
このようにすれば、配置位置決定用被写体の奥行き情報と被写体の奥行き情報が取得されると、配置位置決定用被写体の位置と被写体の位置の間でバーチャルオブジェクトが移動する画像が生成されるようになるため、これまでにないタイプの拡張現実画像の生成が可能になる。
【0026】
また本発明の一態様では、前記撮影画像取得部は、前記撮像部が有する第1のカメラで撮影された第1の撮影画像を左眼用画像として取得し、前記撮像部が有する第2のカメラで撮影された第2の撮影画像を右眼用画像として取得し、前記奥行き情報取得部は、前記左眼用画像と前記右眼用画像から得られる視差情報に基づいて、前記奥行き情報を取得してもよい。
【0027】
このようにすれば、第1、第2のカメラで撮影された左眼用画像、右眼用画像を有効活用して、奥行き情報を取得できる。
【0028】
また本発明の一態様では、前記画像生成部は、前記左眼用画像と前記右眼用画像による立体視用画像に前記バーチャルオブジェクトが合成された画像を生成してもよい。
【0029】
このようにすれば、リアリティ度の高い拡張現実と立体視表現とを両立して実現できるようになる。
【0030】
また本発明の一態様では、前記撮影画像取得部は、前記撮像部が有するデプスカメラからのデプス画像を取得し、前記奥行き情報取得部は、前記デプス画像に基づいて、前記奥行き情報を取得してもよい。
【0031】
このようにすれば、デプスカメラからのデプス画像を利用して、より精度の高い被写体の奥行き情報を取得できるようになる。
【図面の簡単な説明】
【0032】
【図1】本実施形態の画像生成システムの構成例。
【図2】図2(A)、図2(B)は、画像生成システムの一例である携帯型ゲーム装置の構成例。
【図3】図3(A)、図3(B)は、配置位置決定用のマーカの位置にバーチャルオブジェクトを配置する手法の説明図。
【図4】携帯型ゲーム装置を用いた撮影場面の説明図。
【図5】バーチャルオブジェクトの合成画像の例。
【図6】図6(A)、図6(B)は本実施形態の手法の説明図。
【図7】図7(A)〜図7(D)はスルー画を利用したマーカの認識手法の説明図。
【図8】図8(A)、図8(B)はヒット判定結果を用いたバーチャルオブジェクトの表示態様変更処理、音出力処理の説明図。
【図9】奥行き情報を用いてヒットボリュームを設定してヒット判定処理を行う手法の説明図。
【図10】図10(A)、図10(B)は奥行き情報を用いてバーチャルオブジェクトを移動させる手法の説明図。
【図11】奥行き情報を用いてバーチャルオブジェクトを移動させる手法の説明図。
【図12】図12(A)〜図12(C)は左眼用画像と右眼用画像の視差情報から奥行き情報を取得する手法の説明図。
【図13】左眼用画像と右眼用画像の視差情報を取得する手法の説明図。
【図14】図14(A)、図14(B)はデプスカメラからのデプス画像から奥行き情報を取得する手法の説明図。
【図15】本実施形態の詳細な処理を説明するフローチャート。
【図16】本実施形態の詳細な処理を説明するフローチャート。
【図17】本実施形態の詳細な処理を説明するフローチャート。
【発明を実施するための形態】
【0033】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0034】
1.構成
図1に本実施形態の画像生成システム(ゲーム装置、携帯型電子機器)のブロック図の例を示す。なお、本実施形態の画像生成システムの構成は図1に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0035】
撮像部150は、被写体(撮像対象物)を撮影するためのものであり、例えばCCDやCOMセンサなどの撮像素子や、レンズなどの光学系を含む。また撮像部150は、シャッター機構(電子シャッター、メカニカルシャッター)や、アナログフロントエンド回路(A/D変換回路)や、フォーカス調整部などを含むことができる。撮像部150により撮影された撮影画像(撮影画像データ)は撮影画像記憶部172(画像バッファ)に記憶されて保存される。
【0036】
そして図1では、撮像部150は、第1のカメラCM1と第2のカメラCM2を含む。立体視用の画像を撮影する場合には、第1のカメラCM1は左眼用カメラとなり、第2のカメラCM2は右眼用カメラとなる。本実施形態では、撮像部150が有する第1のカメラCM1で撮影された第1の撮影画像である左眼用画像と、第2のカメラCM2で撮影された第2の撮影画像である右眼用画像とから得られる視差情報に基づいて、奥行き情報を取得できる。なお撮像部150が、デプスカメラとカラー画像カメラを有していてもよい。この場合には、撮像部150が有するデプスカメラからのデプス画像に基づいて、奥行き情報を取得すればよい。
【0037】
操作部160は、プレーヤ(広義にはユーザ)が操作データを入力するためのものであり、その機能は、方向指示キー、操作ボタン、アナログスティック、レバー、各種センサ(角速度センサ、加速度センサ等)、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
【0038】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。
【0039】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリ(ROM等)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0040】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、LCD、有機ELディスプレイ、CRT、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0041】
補助記憶装置194(補助メモリ、2次メモリ)は、記憶部170の容量を補うために使用される記憶装置であり、SDメモリーカード、マルチメディアカードなどのメモリーカードなどにより実現できる。
【0042】
通信部196は、有線や無線のネットワークを介して外部(例えば他の画像生成システム、サーバ、ホスト装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【0043】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバ(ホスト装置)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170、補助記憶装置194)に配信してもよい。このようなサーバ(ホスト装置)による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0044】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部100は記憶部170をワーク領域として各種処理を行う。この処理部100の機能は、各種プロセッサ(CPU、GPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0045】
処理部100は、撮影画像取得部102、奥行き情報取得部104、オブジェクト処理部106、ゲーム演算部112、画像生成部120、音生成部130を含む。なお、これらの一部(例えばゲーム演算部)の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0046】
撮影画像取得部102は撮像部150で撮影された撮影画像を取得する。なお、通信部196から受信した画像や記憶部170に記憶された画像を撮影画像として取得してもよい。奥行き情報取得部104は、奥行き情報を取得する。オブジェクト処理部106は、バーチャルオブジェクトなどのオブジェクトに関する各種の処理を行う。このオブジェクト処理部106は、前後関係判断部107、合成処理部108、ヒット判定部109、移動処理部110を含む。なお、これらの各部の構成・動作の詳細については後述する。
【0047】
ゲーム演算部112はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【0048】
画像生成部120は、処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ178(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、描画処理は頂点シェーダ処理やピクセルシェーダ処理により実現することができる。
【0049】
なお、画像生成部120が、いわゆる立体視用の画像を生成するようにしてもよい。この場合には、基準となる仮想カメラの位置とカメラ間距離を用いて、左眼用仮想カメラと右眼用仮想カメラを配置設定する。そして画像生成部120が、オブジェクト空間内において左眼用仮想カメラから見える左眼用画像と、オブジェクト空間内において右眼用仮想カメラから見える右眼用画像を生成する。そしてこれらの左眼用画像、右眼用画像を用いて、眼分離眼鏡方式や、レンチキュラなどを用いた裸眼方式などにより、立体視を実現すればよい。
【0050】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0051】
そして本実施形態では、撮影画像取得部102が、撮像部150により撮影された撮影画像を取得すると、奥行き情報取得部104が、撮影画像に映る被写体の奥行き情報を取得する。そしてオブジェクト処理部106が、取得された奥行き情報に基づいて、被写体とバーチャルオブジェクトとの奥行き方向(Z軸方向)での前後関係を判断して、撮影画像にバーチャルオブジェクトを合成するための処理を行う。すると画像生成部120は、撮影画像にバーチャルオブジェクトが合成された画像を生成する。ここで撮影画像は静止画であってもよいし、動画であってもよい。
【0052】
具体的には、オブジェクト処理部106は、奥行き情報に基づいて、被写体がバーチャルオブジェクトよりも奥行き方向において手前側に位置すると判断された場合に、被写体がバーチャルオブジェクトよりも手前側に表示される画像を合成するための処理を行う。例えばバーチャルオブジェクトの各部分のうち被写体よりも奥側にある部分については、被写体により隠れて見ないようにする合成処理(描画処理)を行う。例えばオブジェクト処理部106は、バーチャルオブジェクトの配置位置を決めるための配置位置決定用被写体(例えば配置位置決定用の模様が描かれたマーカ等の被写体)の奥行き情報と、被写体の奥行き情報とに基づいて、バーチャルオブジェクトと被写体の前後関係を判断する。そしてユーザの手等の被写体が、配置位置決定用被写体よりも手前側にあると判断された場合には、手等の被写体がバーチャルオブジェクトの手前側に表示される画像を生成する。即ち、手等の被写体によりバーチャルオブジェクトが隠面消去された画像を生成する。
【0053】
ここで、撮影画像に映る被写体は、バーチャルオブジェクトとの前後関係が問題となる現実世界の物体である。具体的には、ユーザ(プレーヤ)の手等の部位や所持物などである。また奥行き情報は、例えば奥行き方向での奥行き値(デプス値、Z値)を表す情報である。具体的には、撮像部150のカメラCM1、CM2の光軸方向での奥行き値などである。
【0054】
バーチャルオブジェクトは、拡張現実(AR)において、現実の環境の一部に、付加情報として合成されるバーチャルな物体である。具体的には、キャラクタ(人、動物、ロボット、車、船舶、飛行機等)などのオブジェクトである。このバーチャルオブジェクトは、例えばポリゴン、自由曲面又はサブディビジョンサーフェイスなどの複数のプリミティブ面により構成できる。このバーチャルオブジェクトのオブジェクトデータは、オブジェクトデータ記憶部174に記憶される。
【0055】
奥行き方向での前後関係は、撮像部150(カメラCM1、CM2)から見て、被写体とバーチャルオブジェクトのいずれが手前側(或いは奥側)にあるのかについての関係である。この前後関係の判断処理は前後関係判断部107が行う。また撮影画像にバーチャルオブジェクトを合成するための処理は、例えば隠面消去を行いながら、撮影画像にバーチャルオブジェクトを合成する処理であり、バーチャルオブジェクトの各部分(各画素)について、被写体よりも奥側にあるため隠れて見えない部分を描画しないようにする処理である。この合成処理は合成処理部108が行う。なお被写体とバーチャルオブジェクトが重なる部分については半透明合成処理(α合成処理)を行うようにしてもよい。
【0056】
また撮影画像記憶部172は、撮像部150で撮影された複数のスルー画(スルー画像)の画像データを記憶する。ここでスルー画は、ユーザがシャッター操作を行わない場合にも、撮像部150により撮影されて、表示部190等に表示される画像(動画)であり、これらの一連のスルー画の画像データが、例えばリングバッファ構造の撮影画像記憶部172に順次保存される。そして奥行き情報取得部104は、これらの複数のスルー画に基づいて、配置位置決定用被写体の奥行き情報を取得する。具体的には、これらの複数のスルー画のうち、配置位置決定用被写体の配置位置決定部分(例えば模様部分)が被写体により隠れていないと判断されたスルー画に基づいて、配置位置決定用被写体の奥行き情報を取得する。例えば配置位置決定用被写体が映るスルー画のうち、少なくとも配置位置決定に必要な部分が被写体により隠れていないスルー画を検出し、検出されたスルー画に基づいて、配置位置決定用被写体の奥行き情報を取得する。するとオブジェクト処理部106(前後関係判断部107)は、スルー画から取得された配置位置決定用被写体の奥行き情報と、被写体の奥行き情報とに基づいて、バーチャルオブジェクトと被写体の前後関係を判断する。このようにすることで、配置位置決定用被写体の一部が、ユーザの手等の被写体に隠れてしまった場合にも、配置位置決定用被写体の奥行き情報を適正に取得できるようになる。
【0057】
またオブジェクト処理部106は、奥行き情報に基づいて、被写体とバーチャルオブジェクトとのヒット判定処理を行ってもよい。このヒット判定処理はヒット判定部109が行う。具体的にはオブジェクト処理部106は、バーチャルオブジェクトの配置位置を決めるための配置位置決定用被写体の奥行き情報に基づいて、バーチャルオブジェクト用のヒットボリューム(ヒットボックス、ヒットエリア)を設定する。例えば配置位置決定用被写体の奥行き値に対応する位置にバーチャルオブジェクト用のヒットボリュームを配置設定する。そして設定されたヒットボリュームを用いて、被写体とバーチャルオブジェクトとのヒット判定処理を行う。例えば被写体の奥行き値に対応する位置に設定された被写体用のヒットボリュームと、バーチャルオブジェクト用のヒットボリュームの間に重なりが生じていないか否かを判定することでヒット判定処理を実現する。或いは、被写体の位置とバーチャルオブジェクト用のヒットボリュームとに基づいてヒット判定処理を行ってもよい。
【0058】
そしてオブジェクト処理部106は、上記のヒット判定処理により、バーチャルオブジェクトに被写体がヒットしたと判定された場合には、バーチャルオブジェクトの表示態様を変化させる処理及びバーチャルオブジェクトに対応する音の出力処理の少なくとも一方の処理を行う。ここで、バーチャルオブジェクトの表示態様を変化させる処理は、バーチャルオブジェクトを動作させたり、バーチャルオブジェクトの色、輝度等の画像を変化させる処理などである。具体的には、例えばヒット時に行われる動作として用意されたバーチャルオブジェクトのアニメーション処理(モーション処理)などを行う。バーチャルオブジェクトに対応する音の出力処理は、ヒット時用の音声や効果音等の音を出力する処理などである。具体的には、ヒット時用に用意されたバーチャルオブジェクトの音声等を出力する。
【0059】
またオブジェクト処理部106は、奥行き情報に基づいて、バーチャルオブジェクトの移動処理を行ってもよい。即ち奥行き情報に対応する移動処理をバーチャルオブジェクトに行わせる。この移動処理は移動処理部110が行う。
【0060】
具体的にはオブジェクト処理部106は、バーチャルオブジェクトの配置位置を決めるための配置位置決定用被写体の奥行き情報と、被写体の奥行き情報とに基づいて、移動処理を行う。例えば配置位置決定用被写体の位置と被写体の位置の間で、バーチャルオブジェクトを移動させる処理を行う。例えば配置位置決定用被写体の位置(マーカの位置)から被写体の位置までバーチャルオブジェクトを移動させる処理などを行う。
【0061】
また撮影画像取得部102は、撮像部150が有する第1のカメラCM1で撮影された第1の撮影画像を左眼用画像として取得し、撮像部150が有する第2のカメラCM2で撮影された第2の撮影画像を右眼用画像として取得する。そして奥行き情報取得部104は、これらの左眼用画像と右眼用画像から得られる視差情報(視差による表示位置のずれ)に基づいて、奥行き情報を取得する。例えば視差情報により表される視差(同一被写体の表示位置のずれ)が小さい場合には、被写体等の奥行き値が小さいと判断し、視差(同一被写体の表示位置のずれ)が大きい場合には、奥行き値が大きいと判断する。
【0062】
この場合に画像生成部120は、左眼用画像と右眼用画像による立体視用画像にバーチャルオブジェクトが合成された画像を生成する。即ち、被写体やバーチャルオブジェクトが3次元物体に見える立体視用画像を生成する。
【0063】
ここで立体視方式としては、2眼分離眼鏡方式や、パララックスバリアやレンチキュラや、その他、光線の方向を制御することができる光学素子を用いた裸眼方式などの様々な方式を想定できる。2眼分離眼鏡方式としては、例えば偏光眼鏡方式、継時分離方式、2色分離方式などがある。偏光眼鏡方式では、例えば表示部190の奇数ラインと偶数ラインに左眼用画像と右眼用画像を交互に表示し、これを偏光眼鏡(例えば左眼に水平方向の偏光フィルタ、右眼に垂直方向の偏光フィルタを付けた眼鏡)で見ることで立体視を実現する。或いは左眼用画像と右眼用画像を特殊な偏光フィルタを有するプロジェクタで投影し、投影画像を偏光眼鏡で見ることで立体視を実現してもよい。また継時分離方式(ページ・フリップ方式)では、表示部190に左眼用画像、右眼用画像を所定期間毎(例えば1/120秒毎、1/60秒毎)に交互に表示する。そして、この表示の切り替えに連動して液晶シャッター付きの眼鏡の左眼、右眼の液晶シャッターを交互に開閉することで、立体視を実現する。2色分離方式では、アナグリフ画像を生成し、赤青眼鏡等で見ることで、立体視を実現する。
【0064】
また左眼用画像と右眼用画像から立体用視画像を生成する機能は、画像生成部120に持たせてもよいし、表示部190(テレビ等)に持たせてもよい。例えば画像生成部120が、サイドバイサイド方式の画像信号を出力する。すると表示部190が、このサイドバイサイドの画像信号に基づいて、奇数ラインと偶数ラインに左眼用画像と右眼用画像が交互に割り当てられるフィールドシーケンシャル方式の画像を表示する。或いは、左眼用画像と右眼用画像が所定期間毎に交互に切り替えられるフレームシーケンシャル方式の画像を表示する。或いは画像生成部120の方が、フィールドシーケンシャル方式やフレームシーケンシャル方式の画像を生成して、表示部190に出力するようにしてもよい。
【0065】
なお、撮影画像取得部102が、撮像部150が有するデプスカメラ(図示せず)からのデプス画像を取得し、奥行き情報取得部104が、このデプス画像に基づいて、奥行き情報を取得してもよい。或いは測距センサなどを用いて奥行き情報を取得してもよい。
【0066】
2.本実施形態の手法
次に本実施形態の手法について具体的に説明する。
【0067】
2.1 奥行き情報に基づくバーチャルオブジェクトの合成処理
まず、本実施形態の画像生成システムが適用される携帯型ゲーム装置の例について図2(A)、図2(B)を用いて説明する。この携帯型ゲーム装置は、メイン表示部190Mとサブ表示部190Sを有する。サブ表示部190Sは、例えばタッチパネル方式の液晶ディスプレイにより実現され、ゲーム装置の筐体10に設けられる。メイン表示部190Mは、サブ表示部190よりも例えば画素数が多いディスプレイとなっており、例えば液晶ディスプレイなどにより実現される。
【0068】
ゲーム装置の筐体10と筐体20は回動自在に設けられており、筐体10には、方向指示キー12、アナログスティック14、操作ボタン16が設けられている。また図2(B)に示すように、筐体20の背面側(メイン表示部190Mの反対側)には第1、第2のカメラCM1、CM2が設けられている。これらの第1、第2のカメラCM1、CM2を用いて被写体を撮影することで、視差のある左眼用画像と右眼用画像を得ることが可能になり、立体視表示が可能になる。
【0069】
図3(A)は配置位置決定用被写体の一例である配置位置決定用のマーカOBM(カード)である。このマーカOBMには、出現させるバーチャルオブジェクトの種類等を決定するための模様(記号、文字等)が描かれている。そして撮像部150により、マーカOBMを撮影して、描かれている模様の画像認識を行い、画像認識の結果に基づいて、図3(B)に示すようにマーカOBMに対応するバーチャルオブジェクトOBVを出現させる。即ち、撮像部150の撮影画像にバーチャルオブジェクトOBVの画像が合成された画像を生成する。生成された画像は表示部190に表示されたり、記憶部170に記憶される。
【0070】
このようにすることで、ユーザは、自身が所望するバーチャルオブジェクトに対応するマーカOBM(カード)を配置することで、自身が撮影した画像の中にバーチャルオブジェクトOBVを出現させることが可能になり、いわゆる拡張現実(AR)を実現できるようになる。
【0071】
図4は、図2(A)、図2(B)で説明した携帯型のゲーム装置(携帯型端末)をユーザが左手に持ち、撮像部150によりマーカOBMを撮影している場面である。図4ではユーザが、被写体となる右の手OBHを伸ばしており、ゲーム装置の撮像部150とマーカOBMの間に手OBHが介在している。
【0072】
このような場合に従来の拡張現実手法では図5に示すような画像が生成されてしまう。即ち、図4の状況の場合には本来ならばユーザの手OBH(広義には被写体)がバーチャルオブジェクトOBVの手前側に表示されるべきであるはずなのに、図5では、バーチャルオブジェクトOBVの奥側に手OBHが存在するような画像が生成されてしまう。つまり、従来の拡張現実手法では、ユーザが撮影した画像に対してバーチャルオブジェクトOBVを上書きで描画する。従って、バーチャルオブジェクトOBVとユーザの手OBHの奥行き方向での前後関係は判断されず、OBVとOBHの前後関係に依らずに、常に、被写体である手OBHの手前側にバーチャルオブジェクトOBVが描画されてしまう。このため、ユーザが不自然さを感じ、拡張現実の実現が不十分になってしまう。
【0073】
そこで本実施形態では、撮影画像に映る手OBH等の被写体の奥行き情報を取得する。そして取得された奥行き情報に基づいて、手OBH等の被写体とバーチャルオブジェクトOBVとの奥行き方向での前後関係を判断して、撮影画像にバーチャルオブジェクトを合成する処理を行う。具体的には、奥行き情報に基づいて、図4のように手OBH(被写体)がバーチャルオブジェクトOBVよりも奥行き方向(Z方向)において手前側に位置すると判断された場合には、図6(A)のように手OBHがバーチャルオブジェクトOBVよりも手前側に表示される画像を生成する。逆に、手OBHがバーチャルオブジェクトOBVよりも奧側に位置すると判断された場合には、図5のように手OBHがバーチャルオブジェクトOBVよりも奧側に表示される画像を生成する。
【0074】
このようにすれば、手OBHがバーチャルオブジェクトOBV(マーカOBM)の手前側に位置する場合には図6(A)に示す画像が生成され、奥側に位置する場合には図5に示す画像が生成されるようになるため、ユーザの手OBHの付近に、あたかもバーチャルオブジェクトOBVが実在するような感覚をユーザに与えることが可能になる。従って、これまでにないタイプの拡張現実を実現できる。
【0075】
特に本実施形態では、後述するように、被写体の撮影画像から、被写体の奥行き情報を取得できる点に着目している。そして、バーチャルオブジェクトOBVの合成対象となる撮影画像から被写体の奥行き情報を抽出し、抽出された奥行き情報に基づいて、撮影画像とバーチャルオブジェクトOBVの合成処理を行う点に本実施形態の特徴がある。このようにすることで、撮影画像から奥行き情報を抽出しながら、その奥行き情報を利用して、正しい前後関係の合成画像を生成できるようになる。
【0076】
また本実施形態では、図6(B)に示すように、バーチャルオブジェクトOBVの配置位置を決めるための配置位置決定用のマーカOBM(広義には配置位置決定用被写体)の奥行き値ZM(奥行き情報)と、手OBH(被写体)の奥行き値ZH(奥行き情報)を取得する。そして、これらの奥行き値ZM、ZHとに基づいて、バーチャルオブジェクトOBVと手OBHの前後関係を判断する。即ち、奥行き値ZMとZHを比較し、ZH<ZMであれば、手OBHがバーチャルオブジェクトOBV(マーカOBM)の手前側に位置すると判断して、図6(A)に示すような画像を生成する。即ち、手OBHによりバーチャルオブジェクトOBVの一部が隠面消去された画像を生成する。
【0077】
このようにすることで、マーカOBMの模様に対応するバーチャルオブジェクトOBVを出現させることが可能になると共に、出現させたバーチャルオブジェクトOBVと手OBHとの前後関係も適正に判断して拡張現実の画像を生成できるようになる。
【0078】
なお、図6(A)、図6(B)では、バーチャルオブジェクトの配置位置決定用被写体がマーカである場合を例にとり説明しているが、配置位置決定用被写体はマーカには限定されない。例えば、被写体の形状自体の認識を行い、形状認識の結果に応じたバーチャルオブジェクトを出現させてもよい。具体的には第1の形状(例えば四角形状)の物体が認識された場合には、第1のバーチャルオブジェクトを出現させ、第2の形状(例えば丸形状)の物体が認識された場合には第2のバーチャルオブジェクトを出現させる。
【0079】
また、バーチャルオブジェクトとの隠面消去の対象となる被写体は、ユーザの手などの部位には限定されず、例えばユーザが所持するペンやポインタなどの所持物であってもよい。また図6(A)では、ユーザの手等の被写体が手前側にある場合に、その手等の被写体によりバーチャルオブジェクトが完全に隠面消去される場合の合成画像の例であるが、手等の被写体の画像とバーチャルオブジェクトの画像が半透明合成された画像を生成してもよい。また、手等の被写体とバーチャルオブジェクトとの前後関係の判定処理も図6(B)に示す手法には限定されずに、種々の変形実施が可能である。
【0080】
2.2 スルー画の利用
さて、図4のようにユーザの手OBHが、ゲーム装置の撮像部150とマーカOBMとの間に介在する場合には、マーカOBMの模様の画像認識を適正に実現できなくなるおそれがある。そこで、このような場合に、本実施形態では、デジタルカメラなどで一般的に使用されるスルー画(動画)を有効活用して、マーカOBMの奥行き情報を取得する。このスルー画は、例えば図4においてメイン表示部190Mに表示される。
【0081】
例えば図7(A)〜図7(D)に、撮像部150により撮影される一連のスルー画の例を示す。図7(A)〜図7(C)のスルー画では、マーカOBMの配置位置決定部分である模様部分が、被写体である手OBHにより隠れてしまっている。従って、マーカOBMの模様部分(文字、記号等)の画像認識処理を適正に実行することができず、適正なバーチャルオブジェクトを出現させることが困難になる。
【0082】
一方、図7(D)のスルー画では、マーカOBMの模様部分(配置位置決定部分)が、手OBHによって隠れていない。従って、図7(D)のスルー画を用いることで、マーカOBMの模様部分の画像認識を適正に実現でき、適正なバーチャルオブジェクトを出現させることが可能になる。
【0083】
そこで本実施形態では、図7(A)〜図7(D)のような一連のスルー画を撮影画像記憶部172に記憶して保存しておく。具体的には、例えばユーザがシャッタ操作を行ったタイミングの前の期間及び後ろの期間の少なくとも一方の期間における複数のスルー画を保存する。そして、これらの複数のスルー画(動画の各画像)のうち、模様部分(配置位置決定部分)が、被写体である手OBHにより隠れていないと判断されたスルー画(一部が隠れているスルー画であってもよい)に基づいて、配置位置決定用マーカOBM(配置位置決定用被写体)の奥行き情報を取得する。
【0084】
例えば図7(A)〜図7(D)に示す複数のスルー画をマッチング処理の対象として、テンプレート模様とのマッチング処理を行う。具体的には、ユーザがシャッタ操作を行ったタイミングの前の期間及び後ろの期間の少なくとも一方の期間における複数のスルー画をマッチング処理の対象として、テンプレート模様(テンプレートとなる文字、記号等)とのマッチング処理を行う。例えば、複数のスルー画から抽出された特徴量と、テンプレート模様の特徴量とのマッチング処理を行う。そして図7(A)〜図7(D)の場合には、図7(D)のスルー画に表示される模様が、テンプレート模様とマッチングしたと判断されるため、図7(D)のスルー画に基づいて、マーカOBMの奥行き情報が取得される。
【0085】
そして図7(D)のスルー画から取得されたマーカOBMの奥行き情報と、手OBHの奥行き情報とに基づいて、バーチャルオブジェクトOBVと手OBHの前後関係を判断する。
【0086】
このようにすれば、ユーザの手OBHによりマーカOBMの模様が隠れて見えなくなった場合にも、マーカOBMの奥行き情報を取得して手OBHとの前後関係を判断できるようになり、適正な前後関係でバーチャルオブジェクトOBVを表示することが可能になる。
【0087】
なお、撮影画像記憶部172に記憶して保存しておくスルー画は、シャッター操作により記録される撮影画像よりも低解像度のものであってもよい。また、撮像部の前に手を挿入しない事をユーザに指示し、その状態で撮影された画像に基づいてマーカOBMの奥行き情報を取得してもよい。また図7(C)のようにマーカOBMの模様の一部が手OBHにより隠れている場合にも、テンプレート模様とのマッチング率が一定値以上である場合には、模様部分が手OBHにより隠れていないと判断して、マーカOBMの奥行き情報を取得してもよい。
【0088】
2.3 ヒット判定処理
本実施形態では、撮影画像から取得された奥行き情報に基づいて、被写体とバーチャルオブジェクトとのヒット判定処理を行ってもよい。
【0089】
具体的には図8(A)、図8(B)では、バーチャルオブジェクトOBVの方にユーザは手OBHを動かしている。この場合に本実施形態では、取得された奥行き情報に基づいて、手OBHとバーチャルオブジェクトOBVとのヒット判定処理を行う。そして、手OBHがバーチャルオブジェクトOBVにヒットしたと判定されると、手OBHがバーチャルオブジェクトOBVに仮想的に接触した状態であると判断する。そしてバーチャルオブジェクトOBVの表示態様を変化させる処理や、バーチャルオブジェクトOBVに対応する音の出力処理を行う。
【0090】
例えば図8(A)では、手OBHがバーチャルオブジェクトOBVにヒットしたと判定された場合に(接触したと判定された場合に)、バーチャルオブジェクトOBVのアニメーション処理(モーション処理)を行っている。具体的には図8(A)では、バーチャルオブジェクトOBVが両手を上げるアニメーション処理を行っている。
【0091】
このアニメーション処理は、静止画により実現してもよいし、動画により実現してもよい。例えば静止画で実現する場合には、手OBHがバーチャルオブジェクトOBVにヒットしていないと判定された場合には、両手を下げた状態のバーチャルオブジェクトOBVを、静止画の撮影画像に合成する。一方、手OBHがバーチャルオブジェクトOBVにヒットしたと判定された場合には、両手を上げた状態のバーチャルオブジェクトOBVを、静止画の撮影画像に合成する。
【0092】
動画により実現する場合には、図4のメイン表示部190Mに、撮影画像にバーチャルオブジェクトOBVが合成された動画(スルー画)を表示する。そして、手OBHがバーチャルオブジェクトOBVにヒットしていないと判定された場合には、両手を下げた状態のバーチャルオブジェクトOBVが撮影画像に合成された動画を、メイン表示部190Mに表示する。一方、手OBHがバーチャルオブジェクトOBVにヒットしたと判定された場合には、両手を上げるモーションを行っているバーチャルオブジェクトOBVが撮影画像に合成された動画を、メイン表示部190Mに表示する。
【0093】
図8(B)では、手OBHがバーチャルオブジェクトOBVにヒットしたと判定された場合に、バーチャルオブジェクトOBVに対応する音を出力する処理を行っている。具体的には図8(B)では、手OBHが触れたことに対応する音声(例えば「ハーイ」などの音声)を、バーチャルオブジェクトOBVが発声する処理を行っている。この場合に、音声ではなく、手OBHが触れたことに対応する効果音等を出力するようにしてもよい。
【0094】
次にヒット判定処理の具体例について説明する。例えば図9では、配置位置決定用のマーカOBMの奥行き情報に基づいて、バーチャルオブジェクト用のヒットボリュームHTVを設定し、設定されたヒットボリュームHTVを用いて、手OBH等の被写体とバーチャルオブジェクトOBVとのヒット判定処理を実現している。
【0095】
具体的には図9において、マーカOBMの奥行き値ZMが奥行き情報として検出されている。この場合には、奥行き値=ZMの位置にバーチャルオブジェクト用のヒットボリュームHTVを設定する。このヒットボリュームHTVのサイズや形状は、例えばマーカOBMの模様パターンにより出現するバーチャルオブジェクトOBVのサイズや形状に応じたサイズや形状に設定すればよい。例えば大きなサイズのバーチャルオブジェクトOBVを出現させる場合には、ヒットボリュームHTVのサイズも大きくし、小さなサイズのバーチャルオブジェクトOBVを出現させる場合には、ヒットボリュームHTVのサイズも小さくする。また、例えば立った姿勢(形状)のバーチャルオブジェクトOBVを出現させる場合と、座った姿勢のバーチャルオブジェクトOBVを出現させる場合とで、ヒットボリュームHTVの形状を変化させてもよい。
【0096】
また図9では、手OBHの奥行き値ZHが奥行き情報として検出されており、奥行き値=ZHの位置に手用(被写体用)のヒットボリュームHTHが設定されている。そしてヒットボリュームHTVとHTHの間に重なりが存在するか否かを判定するヒット判定処理が行われる。そして、重なりが存在すると判定された場合には、手OBHがバーチャルオブジェクトOBVにヒットしたと判断して、図8(A)、図8(B)に示すような表示態様の変化処理や音の出力処理を行う。
【0097】
このようにバーチャルオブジェクトの奥行き値に応じたヒットボリュームを設定してヒット判定処理を行うことで、より精度の高いヒット判定処理を実現することができ、拡張現実におけるリアリティ度を更に向上することができる。
【0098】
以上のように本実施形態では、取得された奥行き情報に基づいて手等の被写体とバーチャルオブジェクトとのヒット判定処理を行っている。これによりユーザに対して、あたかも現実の物体がバーチャルオブジェクトとして撮影画像上に映し出されているような感覚を与えることが可能になる。即ち、ユーザが手をバーチャルオブジェクトに触れることで、図8(A)、図8(B)のようにバーチャルオブジェクトが反応するため、バーチャルオブジェクトの実在感が増し、拡張現実におけるリアリティ度を向上できる。
【0099】
なお、ヒット時の表示態様の変化手法や音出力手法は図8(A)、図8(B)で説明した手法に限定されない。例えば被写体とバーチャルオブジェクトのヒット位置に応じて、表示態様の変化のさせ方や出力させる音を異ならせてもよい。具体的には、バーチャルオブジェクトの第1の部位(例えば頭部)に手等がヒットした場合には、バーチャルオブジェクトの第1のアニメーション処理(例えば片手を上げる第1のモーション処理)を行い、第2の部位(例えば胴体部)にヒットした場合には、第2のアニメーション処理(例えば両手を上げる第2のモーション処理)を行ってもよい。またバーチャルオブジェクトの第1の部位に手等がヒットした場合には、バーチャルオブジェクトが第1のパターンの音声(例えば「ありがとう」という音声)を出力し、第2の部位にヒットした場合には、第2のパターンの音声(例えば「ハーイ」という音声)を出力してもよい。
【0100】
またヒット判定手法は、図9で説明した手法に限定されない。例えば手等の被写体についてはヒットボリュームを設定せずに、被写体の代表位置と、バーチャルオブジェクトのヒットボリュームを用いてヒット判定処理を行ってもよい。或いは、ヒットボリュームを用いずに、例えばバーチャルオブジェクトの代表位置と被写体の代表位置を用いてヒット判定処理を行ってもよい。また被写体のヒットボリュームを設定する場合には、図9のような1つの奥行き値ZHだけではなくて、その被写体について取得された複数の奥行き値に基づいてヒットボリュームを設定してもよい。具体的には後述する図14(B)に示すようなデプス画像が取得される場合には、このデプス画像の奥行き値を用いて、手等の被写体のヒットボリュームを設定してもよい。
【0101】
2.4 移動処理
本実施形態では、取得された奥行き情報に基づいて、バーチャルオブジェクトの移動処理を行ってもよい。具体的には、配置位置決定用のマーカの奥行き情報と、被写体の奥行き情報とに基づいて、マーカの位置と被写体の位置の間で、バーチャルオブジェクトを移動させる処理を行う。
【0102】
例えば図10(A)では、配置位置決定用のマーカOBMの模様パターンにより、鳥のバーチャルオブジェクトOBVが出現している。そして、この鳥のバーチャルオブジェクトOBVの前に、ユーザの手OBHが存在することが検出されると、図10(B)に示すように、バーチャルオブジェクトOBVがユーザの手OBHの方に飛んで移動して、手OBHの上に止まる移動処理が行われる。このようにすることで、バーチャルオブジェクトOBVが、あたかも生きている本物の鳥のような感覚をユーザに対して与えることができ、拡張現実のリアリティ度を向上できる。
【0103】
次に移動処理の具体例について図11を用いて説明する。図11では、配置位置決定用のマーカOBMの奥行き値ZMが奥行き情報として検出されている。また被写体である手OBHの奥行き位置ZHが奥行き情報として検出されている。この場合には、この奥行き値ZMとZHに基づいて図11に示すような移動軌道TRが設定され、この移動軌道上でバーチャルオブジェクトOBVを移動させる処理が行われる。このようにすることで、図10(B)に示すように、ユーザの手OBHにバーチャルオブジェクトOBVが飛び乗る画像を生成することが可能になる。
【0104】
このようにすれば、検出された奥行き値ZM、ZHを有効活用して、バーチャルオブジェクトOBVの移動処理を実現することが可能になり、少ない処理負荷で、リアリティ度の高い拡張現実を実現できるようになる。
【0105】
なお、図10(A)、図10(B)とは逆に、ユーザの手OBHの位置からマーカOBMの位置にバーチャルオブジェクトOBVを移動させる処理を行ってもよい。また、出現するバーチャルオブジェクトOBVの種類に応じて、移動軌道TRを変化させてもよい。或いは、マーカOBMの手前側に存在することが検出された被写体の形状等に応じて、バーチャルオブジェクトOBVの移動軌跡等の移動態様を変化させてもよい。
【0106】
また移動処理に基づく画像生成は、静止画により実現してもよいし、動画により実現してもよい。例えば静止画で実現する場合には、撮影画像の奥行き情報に基づいてマーカOBMの手前側に手OBHが存在することが検出された場合に、図10(A)の静止画の画像と、図10(B)の静止画の画像を生成する。一方、動画で実現する場合には、図10(A)から図10(B)へとバーチャルオブジェクトOBVが移動する動画の画像を生成して、例えば図4のメイン表示部190Mに表示する。
【0107】
2.5 奥行き情報の取得
次に奥行き情報の具体的な取得手法について説明する。
【0108】
例えば本実施形態では、図2(B)の第1、第2のカメラCM1、CM2で取得された画像の視差情報(同一被写体の表示位置のずれ、水平視差)に基づいて奥行き情報を取得する。具体的には第1のカメラCM1で撮影された画像を左眼用画像として取得し、第2のカメラCM2で撮影された画像を右眼用画像として取得する。そして図12(A)〜図12(C)に示すように、左眼用画像と右眼用画像から得られる視差情報に基づいて、奥行き情報を取得する。
【0109】
例えば図12(A)において、OBLは、左眼用画像に映る被写体の画像であり、OBRは、右眼用画像に映る同一被写体の画像である。そして図12(A)では、これらの被写体画像OBL、OBRの間の視差(視差による表示位置のずれ)が小さいため、カメラCM1、CM2から見た被写体の奥行き値は小さいと判断される。一方、図12(B)では、これらの被写体画像OBL、OBRの間の視差が中ぐらいであるため、被写体の奥行き値は中ぐらいであると判断される。また図12(C)では、被写体画像OBL、OBRの間の視差(視差による表示位置のずれ)が大きいため、被写体の奥行き値は大きいと判断される。
【0110】
このように、カメラCM1、CM2で撮影された画像の視差情報(同一被写体の表示位置のずれ情報)を用いて、撮影画像に映る被写体の奥行き情報を取得できる。従って、手OBHやマーカOBMの被写体の視差情報を検出することで、手OBHやマーカOBMの奥行き値ZH、ZMを取得することが可能になり、これらの奥行き値ZH、ZMを用いて、図6(A)〜図11で説明したバーチャルオブジェクトOBVの合成処理、ヒット判定処理、移動処理などを実現できるようになる。
【0111】
また、カメラCM1、CM2により左眼用画像、右眼用画像を撮影することで、立体視画像の生成も可能になる。従って、図6(A)、図8(A)、図8(B)、図10(A)、図10(B)の画像を、立体視用画像として生成することが可能になり、リアリティ度の高い拡張現実と立体視表現とを両立して実現できるという利点がある。
【0112】
なお視差情報の検出は、例えば図13に示す手法により実現できる。例えば図13では、奥行き情報の取得対象となる被写体の右眼用画像でのブロック画像BRと、左眼用画像のブロック画像BLとのマッチング処理が行われる。そして右眼用画像のブロック画像BRと左眼用画像のブロック画像BLがマッチングしたと判断されると、例えばブロック画像BRの位置のX座標とブロック画像BLの位置のX座標の座標差が、視差情報として取得される。そして、取得された視差情報から例えば所定の変換式を用いて奥行き情報が算出され、当該被写体(マーカ、手等)の奥行き情報が取得される。このようにすることで、マッチング処理を利用した簡素な処理で、被写体の奥行き情報を取得できるようになる。
【0113】
なお、奥行き情報の取得手法は、視差情報に基づくものに限定されず、種々の手法を想定できる。例えば撮像部150がデプスカメラを有する場合には、デプスカメラ(デプスセンサ)により撮影されたデプス画像に基づいて、奥行き情報を取得してもよい。
【0114】
例えば図14(A)、図14(B)にカラー画像カメラにより撮影されたカラー画像と、デプスカメラにより撮影されたデプス画像の例を示す。カラー画像カメラは、CCDやCMOSセンサなどのRGBセンサにより実現され、デプスカメラは、例えば赤外線センサなどにより実現される。例えば図2(B)のカメラCM1の位置にカラー画像カメラが設けられ、カメラCM2の位置にデプスカメラが設けられる。
【0115】
そしてカラー画像カメラを用いて図14(A)に示すようなカラー画像が撮影され、デプスカメラを用いて図14(B)に示すようなデプス画像が撮影される。例えばカラー画像では、被写体やその周りの風景の色情報が得られる。一方、デプス画像では、被写体やその周りの風景の奥行き値(デプス値)が、例えばグレースケール値として得られる。例えばカラー画像は、その各画素位置にカラー値(RGB)が設定された画像であり、デプス画像は、その各画素位置に奥行き値(デプス値)が設定された画像である。
【0116】
デプス画像の奥行き情報の取得手法としては、公知に種々の手法を想定できる。例えばデプスカメラから赤外線等の光を投射し、その投射光の反射強度や、投射光が戻ってくるまでの時間(Time Of Flight)を検出することで、奥行き情報を取得し、デプスカメラの位置から見た被写体のシェイプを検出する。具体的には、奥行き情報(デプス情報)は、例えばデプスカメラから近い被写体では明るくなり、デプスカメラから遠い被写体では暗くなるグレースケールデータとして表される。或いはデプスカメラである赤外線レーザによるモアレ縞に基づいて奥行き情報(デプス距離)を取得する。
【0117】
なお奥行き情報の取得手法としては種々の変形実施が可能であり、超音波などを用いた測距センサなどにより奥行き情報を取得してもよい。
【0118】
2.6 具体的な処理例
次に本実施形態の具体的な処理例について図15〜図17のフローチャートを用いて説明する。
【0119】
図15は奥行き情報に基づくバーチャルオブジェクトの合成処理について説明するためのフローチャートである。
【0120】
まずシャッターが押されたか否かを判断する(ステップS1)。シャッター操作は例えば図2(A)の操作ボタン16を押すことなどにより行われる。シャッターが押された場合には、シャッターが押されたタイミングでの撮影画像を保存する(ステップS2)。そしてバーチャルオブジェクトの配置位置決定用マーカの認識処理を行う(ステップS3)。例えばテンプレートとなる模様とのマッチング処理を行うことで、認識処理を実現する。
【0121】
次に、保存された撮影画像からマーカ(マーカの模様)が認識されたか否かを判断し(ステップS4)、認識されなかった場合には、図7(A)〜図7(D)で説明したように、保存された撮影画像の前後のスルー画からマーカが認識されたか否かを判断する(ステップS5)。そしてステップS4又はステップS5のいずれかでマーカが認識された場合には、認識されたマーカの種類からバーチャルオブジェクトの種類を決定する(ステップS6)。例えばマーカが第1の種類のマーカである場合には、第1のバーチャルオブジェクトを出現させ、第2の種類のマーカである場合には、第2のバーチャルオブジェクトを出現させる。
【0122】
次に、図2(B)のカメラCM1,CM2により撮影された左眼用画像、右眼用画像の視差情報から、図12(A)〜図12(C)で説明したようにマーカの奥行き値ZMを求める(ステップS7)。また左眼用画像、右眼用画像の視差情報から、ユーザの手等の被写体の奥行き値ZHを求める(ステップS8)。
【0123】
次に、取得された奥行き値がZH<ZMであるか否かを判断する(ステップS9)。そしてZH<ZMである場合には、図6(A)に示すように手等の被写体がバーチャルオブジェクトの手前側に表示されるように画像を合成する(ステップS10)。一方、ZH≧ZMである場合には、図5に示すように手等の被写体がバーチャルオブジェクトの奥側に表示されるように画像を合成する(ステップS11)。
【0124】
図16は、手等の被写体とバーチャルオブジェクトのヒット判定処理を説明するためのフローチャートである。
【0125】
マーカの奥行き値ZMが取得されると、図9で説明したように奥行き値ZMの位置にバーチャルオブジェクト用のヒットボリュームHTVを配置設定する(ステップS21)。また手等の被写体の奥行き値ZHが取得されると、奥行き値ZHの位置に、手等の被写体用のヒットボリュームHTHを配置設定する(ステップS22)。そして、ヒットボリュームHTVとHTHのヒットチェック処理を行う(ステップS23)。即ちヒットボリュームHTVとHTHの間に重なりがあるか否かを判定するヒットチェック処理を行う。そしてヒットしたと判定された場合には(ステップS24)、図8(A)、図8(B)で説明したように、バーチャルオブジェクトのアニメーション処理(モーション処理)や音声出力処理を行う(ステップS25)。例えばヒット位置に応じたアニメーション処理や音声出力処理を行う。
【0126】
図17は、奥行き情報に基づくバーチャルオブジェクトの移動処理を説明するためのフローチャートである。
【0127】
図17のステップS31〜S38は図15のステップS1〜S8と同様であるため説明を省略する。図17のステップS37、S38で、マーカの奥行き値ZMと、ユーザの手等の被写体の奥行き値ZHが取得されると、ステップS39に示すように、奥行き値ZMの位置からZHの位置に、バーチャルオブジェクトが移動する画像を合成する(ステップS39)。例えば図11で説明したように奥行き値ZMとZHで特定される移動軌道TRに沿ってバーチャルオブジェクトが移動する画像を合成する。これにより図10(A)、図10(B)に示すような画像を生成できるようになる。
【0128】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(被写体、配置位置決定用被写体等)と共に記載された用語(手、配置位置決定用マーカ等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、奥行き情報の取得処理、奥行き情報に基づくバーチャルオブジェクトの合成処理、奥行き情報に基づくヒット判定処理、奥行き情報に基づくバーチャルオブジェクトの移動処理等も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は、携帯型ゲーム装置、家庭用ゲーム装置、業務用ゲーム装置、携帯電話機、携帯型情報端末などの種々の画像生成システムに適用できる。
【符号の説明】
【0129】
OBM 配置位置決定用マーカ(配置位置決定用被写体)、OBH 手(被写体)、
OBV バーチャルオブジェクト、ZM、ZH 奥行き値、
HTV、HTH ヒットボリューム、CM1、CM2 第1、第2のカメラ、
10、20 筐体、12 方向指示キー、14 アナログスティック、
16 操作ボタン、
100 処理部、102 撮影画像取得部、104 奥行き情報取得部、
106 オブジェクト処理部、107 前後関係判断部、108 合成処理部、
109 ヒット判定部、110 移動処理部、112 ゲーム演算部、
120 画像生成部、130 音生成部、150 撮像部、160 操作部、
170 記憶部、172 撮影画像記憶部、174 オブジェクトデータ記憶部、
178 描画バッファ、180 情報記憶媒体、
190(190M、190S) 表示部、192 音出力部、
194 補助記憶装置、196 通信部

【特許請求の範囲】
【請求項1】
撮像部により撮影された撮影画像を取得する撮影画像取得部と、
前記撮影画像に映る被写体の奥行き情報を取得する奥行き情報取得部と、
取得された前記奥行き情報に基づいて、前記被写体とバーチャルオブジェクトとの奥行き方向での前後関係を判断して、前記撮影画像に前記バーチャルオブジェクトを合成するための処理を行うオブジェクト処理部と、
前記撮影画像に前記バーチャルオブジェクトが合成された画像を生成する画像生成部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項2】
請求項1において、
前記オブジェクト処理部は、
前記奥行き情報に基づいて、前記被写体が前記バーチャルオブジェクトよりも奥行き方向において手前側に位置すると判断された場合に、前記被写体が前記バーチャルオブジェクトよりも手前側に表示される画像を合成するための処理を行うことを特徴とするプログラム。
【請求項3】
請求項2において、
前記オブジェクト処理部は、
前記バーチャルオブジェクトの配置位置を決めるための配置位置決定用被写体の奥行き情報と、前記被写体の奥行き情報とに基づいて、前記バーチャルオブジェクトと前記被写体の前後関係を判断することを特徴とするプログラム。
【請求項4】
請求項3において、
前記撮像部で撮影された複数のスルー画の画像データを記憶する撮影画像記憶部として、
コンピュータを機能させ、
前記奥行き情報取得部は、
前記複数のスルー画に基づいて、前記配置位置決定用被写体の奥行き情報を取得し、
前記オブジェクト処理部は、
前記スルー画から取得された前記配置位置決定用被写体の奥行き情報と、前記被写体の奥行き情報とに基づいて、前記バーチャルオブジェクトと前記被写体の前後関係を判断することを特徴とするプログラム。
【請求項5】
請求項4において、
前記奥行き情報取得部は、
前記複数のスルー画のうち、前記配置位置決定用被写体の配置位置決定部分が前記被写体により隠れていないと判断されたスルー画に基づいて、前記配置位置決定用被写体の奥行き情報を取得することを特徴とするプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記オブジェクト処理部は、
前記奥行き情報に基づいて、前記被写体と前記バーチャルオブジェクトとのヒット判定処理を行うことを特徴とするプログラム。
【請求項7】
請求項6において、
前記オブジェクト処理部は、
前記バーチャルオブジェクトの配置位置を決めるための配置位置決定用被写体の奥行き情報に基づいて、前記バーチャルオブジェクト用のヒットボリュームを設定し、設定された前記ヒットボリュームを用いて、前記被写体と前記バーチャルオブジェクトとのヒット判定処理を行うことを特徴とするプログラム。
【請求項8】
請求項6又は7において、
前記オブジェクト処理部は、
前記ヒット判定処理により、前記バーチャルオブジェクトに前記被写体がヒットしたと判定された場合に、前記バーチャルオブジェクトの表示態様を変化させる処理及び前記バーチャルオブジェクトに対応する音の出力処理の少なくとも一方の処理を行うことを特徴とするプログラム。
【請求項9】
請求項1乃至8のいずれかにおいて、
前記オブジェクト処理部は、
前記奥行き情報に基づいて、前記バーチャルオブジェクトの移動処理を行うことを特徴とするプログラム。
【請求項10】
請求項9において、
前記オブジェクト処理部は、
前記バーチャルオブジェクトの配置位置を決めるための配置位置決定用被写体の奥行き情報と、前記被写体の奥行き情報とに基づいて、前記配置位置決定用被写体の位置と前記被写体の位置の間で、前記バーチャルオブジェクトを移動させる処理を行うことを特徴とするプログラム。
【請求項11】
請求項1乃至10のいずれかにおいて、
前記撮影画像取得部は、
前記撮像部が有する第1のカメラで撮影された第1の撮影画像を左眼用画像として取得し、前記撮像部が有する第2のカメラで撮影された第2の撮影画像を右眼用画像として取得し、
前記奥行き情報取得部は、
前記左眼用画像と前記右眼用画像から得られる視差情報に基づいて、前記奥行き情報を取得することを特徴とするプログラム。
【請求項12】
請求項11において、
前記画像生成部は、
前記左眼用画像と前記右眼用画像による立体視用画像に前記バーチャルオブジェクトが合成された画像を生成することを特徴とするプログラム。
【請求項13】
請求項1乃至10のいずれかにおいて、
前記撮影画像取得部は、
前記撮像部が有するデプスカメラからのデプス画像を取得し、
前記奥行き情報取得部は、
前記デプス画像に基づいて、前記奥行き情報を取得することを特徴とするプログラム。
【請求項14】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至13のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項15】
撮像部により撮影された撮影画像を取得する撮影画像取得部と、
前記撮影画像に映る被写体の奥行き情報を取得する奥行き情報取得部と、
取得された前記奥行き情報に基づいて、前記被写体とバーチャルオブジェクトとの奥行き方向での前後関係を判断して、前記撮影画像に前記バーチャルオブジェクトを合成するための処理を行うオブジェクト処理部と、
前記撮影画像に前記バーチャルオブジェクトが合成された画像を生成する画像生成部と、
を含むことを特徴とする画像生成システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2012−58968(P2012−58968A)
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願番号】特願2010−200905(P2010−200905)
【出願日】平成22年9月8日(2010.9.8)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】