(57)【要約】【課題】現実物体に応じた仮想物体を容易に提示することが可能な仕組みを提供すること【解決するための手段】第１の空間において現実物体を検出する検出し、当該現実物体が存在する第１の空間とは別の第２の空間に、当該現実物体にかかる仮想物体を表示させるべく制御する。また、第１の空間の画像を表示する表示画面においては、当該現実物体が視認可能となるように仮想物体を描画する。【選択図】図７
2020107152.tif 000002
【特許請求の範囲】
【請求項１】
第１の空間において現実物体を検出する検出手段と、
前記現実物体が存在する第１の空間とは別の第２の空間に、前記現実物体にかかる仮想物体を表示させるべく制御する制御手段と、
を備えることを特徴とする情報処理システム。
【請求項２】
前記第１の空間の画像を表示する表示画面において、前記現実物体が視認可能となるように仮想物体を描画する描画手段と、
を備えることを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記現実物体にかかる仮想物体とは、前記現実物体の位置に配置されるマスクオブジェクトと略同一形状の、非マスクオブジェクトであることを特徴とする請求項１又は２に記載の情報処理システム。
【請求項４】
前記第１の空間の画像を表示する表示画面において表示される仮想物体のうち、前記第１の空間で検出された現実物体にかかる仮想物体を識別表示する識別表示手段と、
を備えることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理システム。
【請求項５】
前記第２の空間において前記仮想物体が移動された場合に、前記第１の空間の画像を表示する表示画面において、前記仮想物体の移動にかかる表示をする表示手段と、
を備えることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理システム。
【請求項６】
情報処理システムにおいて、
第１の空間において現実物体を検出する検出工程と、
前記現実物体が存在する第１の空間とは別の第２の空間に、前記現実物体にかかる仮想物体を表示させるべく制御する制御工程と、
を含む制御方法。
【請求項７】
情報処理システムを、
第１の空間において現実物体を検出する検出手段と、
前記現実物体が存在する第１の空間とは別の第２の空間に、前記現実物体にかかる仮想物体を表示させるべく制御する制御手段として機能させるためのプログラム。
【請求項８】
第１の空間において現実物体を検出する検出手段と、
前記現実物体が存在する第１の空間とは別の第２の空間に、前記現実物体にかかる仮想物体を表示させるべく制御する制御手段と、
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、現実に仮想物体（ＣＧ等）を重ねて表示する各超現実や複合現実の技術が普及してきている。これらの技術を用いて、現実物体と同形状の仮想物体を、現実物体とぴったり重ねて表示したい場合がある。
【０００３】
例えば特許文献１には、作成した簡易試作物（現実のモックアップ）に、同じ３次元ＣＡＤのデータを変換して作成した３次元データを、ＡＲシステムを使って位置姿勢を一致させて重ね合わせ、表示することについて記載されている。
【０００４】
また、非特許文献１には、対象物を撮影し、撮影装置から対象物体の位置姿勢を求めるモデルベーストラッキングが試みられている。また、特許文献２には、撮像装置からの２次元的な画像情報に基づいて、物体の頂点やエッジなどの３次元的な幾何特徴を抽出し、これを物体の幾何モデルと照合することにより、物体の位置姿勢を決定することが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−０４０９１３号公報
【特許文献２】特開平０８−００５３３３号公報
【特許文献３】特開２００５−３４６４６８号公報
【非特許文献１】R．Ｔ．Ａｚｕｍａ，  “Ａ  Survey  ｏｆ  Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ”，  Ｐｒｅｓｅｎｃｅ：Ｔｅｌｅｏｐｅｒａｔｏｒｓ  ａｎｄ  Ｖｉｒｔｕａｌ  Ｅｎｖｉｒｏｎｍｅｎｔｓ，ｖｏｌ，６，１９９７，ｐｐ３５５−３８５．
【発明の開示】
【発明が解決しようとする課題】
【０００６】
拡張現実や複合現実等の技術を用いて異なる場所にいるユーザが会議を行うことがある。例えば部屋Ａと部屋Ｂとで仮想物体の位置姿勢や表示を同期させることで、異なる部屋にいるユーザが同じ位置姿勢・表示状態の仮想物体を見ることができ、見えているものについて意見を交換したり検証したりすることができる。
【０００７】
一方で、もし現実物体が存在するのであれば、仮想物体よりもリアルな、現実物体の方をユーザに確認させたいという要望がある。例えば特許文献３には、現実の手の領域について仮想物体をマスクする（仮想物体を表示しないようにする）技術が記載されている。
【０００８】
なお、会議を行う各部屋において現実物体の配置状況が全く同じであるとは限らない。例えば部屋Ａには卓上に現実物体の電話があるが、部屋Ｂにはその現実物体がない場合がある。例えば部屋Ａで現実物体の電話を見たユーザが、部屋Ｂのユーザに対して当該電話について話を持ち掛けても、部屋Ｂのユーザは当該電話を見ることはできず、適切にコミュケーションを取ることができない。
【０００９】
本発明は、現実物体に応じた仮想物体を容易に提示することが可能な仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の情報処理装置は、第１の空間において現実物体を検出する検出手段と、前記現実物体が存在する第１の空間とは別の第２の空間に、前記現実物体にかかる仮想物体を表示させるべく制御する制御手段と、を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、現実物体に応じた仮想物体を容易に提示することが可能な仕組みを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態における、情報処理システムの構成の一例を示す図である。
【図２】本発明の実施形態における、各種装置のハードウェア構成の一例を示す図である。
【図３】本発明の実施形態における、各種装置の機能構成の一例を示す図である。
【図４】本発明の実施形態における、各種装置のモジュール構成の一例を示す図である。
【図５】本発明の実施形態における、複合現実画像の表示処理の一例を示すフローチャートである。
【図６】本発明の実施形態における、データ構成の一例を示す図である。
【図７】本発明の実施形態における、複合現実画像の生成処理の一例を示すフローチャートである。
【図８】本発明の実施形態における、データ構成の一例を示す図である。
【図９】本発明の実施形態における、現実画像、仮想画像、複合現実画像の一例を示す図である。
【図１０】本発明の実施形態における、仮想物体の移動にかかる表示処理の一例を示すフローチャートである。
【図１１】本発明の実施形態における、現実画像、仮想画像、複合現実画像の一例を示す図である。
【図１２】本発明の実施形態における、マスクモデルにかかる仮想物体の表示の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の実施の形態の一例について説明する。
【００１４】
＜第１の実施形態＞
まず図１を参照して、本発明の第１の実施形態における、情報処理システムの構成の一例について説明する。
【００１５】
図１に示すように、本発明における各種装置はネットワークを介して通信可能に接続されている。例えばＰＣ１００ＡとＰＣ１００Ｂは、ＷＡＮであるネットワーク１５０によって接続されている。
【００１６】
また、ＰＣ１００（ＰＣ１００Ａと１００Ｂの総称）には、各ＰＣ１００が管理するＨＭＤ１０１（ＨＭＤ１０１Ａ−１、ＨＭＤ１０１Ａ−２、ＨＭＤ１０１Ｂ−１、ＨＭＤ１０１Ｂ−２の総称）が通信可能に接続されている。
【００１７】
各ＰＣ１００には、各ＰＣ１００に接続されているＨＭＤ１０１により撮像される現実画像に重畳する３次元モデル（仮想物体）が記憶されている。
【００１８】
ＰＣ１００は自機の管理するＨＭＤ１０１より現実画像を取得して、当該現実画像に３次元モデルを重畳したＭＲ画像（複合現実画像）を生成し、ＨＭＤ１０１のディスプレイに表示させるべく、当該ＭＲ画像をＨＭＤ１０１に送信する。ＨＭＤ１０１は受信したＭＲ画像をディスプレイに表示する。
【００１９】
本発明の説明においては、ＰＣ１００ＡとＰＣ１００Ｂは、別個の仮想空間（Ｘ，Ｙ，Ｚ座標で定義される空間）を記憶しており、当該仮想空間における３次元モデル（仮想物体）の位置姿勢を記憶する機能を有する。
【００２０】
また、ＰＣ１００Ａは現実空間Ａに存在し、現実空間ＡにおけるＨＭＤ１０１の位置姿勢を検出、記憶する。また、ＰＣ１００Ｂは現実空間Ｂに存在し、現実空間ＢにおけるＨＭＤ１０１の位置姿勢を検出、記憶する。
【００２１】
なお、現実空間のＸ，Ｙ，Ｚ座標と、仮想空間のＸ，Ｙ，Ｚ座標は一致している。例えば、現実空間が部屋である場合、仮想空間は当該部屋と同じ形状・大きさが定義されており、現実空間の原点（Ｘ，Ｙ，Ｚ＝０，０，０）と仮想空間の原点は一致しているものとして、ＰＣ１００の外部メモリに記憶されている。
【００２２】
ＰＣ１００ＡとＰＣ１００Ｂは、例えば、同一の３次元モデルを、現実空間ＡのＨＭＤ１０１Ａと現実空間ＡのＨＭＤ１０１Ｂにそれぞれ表示する。こうすることで、異なる現実空間（例えば東京、大阪等の遠隔地）においても、ＨＭＤ１０１を装着するだけで、３次元モデルの表示を共有し、同じ景色を共有することができる。以上が図１の説明である。
【００２３】
次に図２を参照して、本発明の第１の実施形態における各種装置のハードウェア構成の一例について説明する。
【００２４】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２５】
また、ＲＯＭ２０２には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステム（ＯＳ）、その他各種装置の実行する機能を実現するために必要な各種プログラムが記憶されている。
【００２６】
ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２７】
本発明のＰＣ１００が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００２８】
入力コントローラ２０５は、キーボードやマウス等のポインティングデバイス（入力デバイス２０９）からの入力を制御する。
【００２９】
ビデオコントローラ２０６は、ＨＭＤ１０１が備える右目・左目ディスプレイ２２２等の表示器への表示を制御する。右目・左目ディスプレイ２２２に対しては、例えば外部出力端子（例えば、Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）を用いて出力される。また、右目・左目ディスプレイ２２２は、右目用のディスプレイと左目用のディスプレイとから構成されている。
【００３０】
また、ビデオコントローラ２０６は、ＰＣ１００が備えるディスプレイ２１０（表示器）への表示を制御する。
【００３１】
メモリコントローラ２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスクやフレキシブルディスク或いはカード型メモリ等の外部メモリ２１１へのアクセスを制御する。
【００３２】
通信Ｉ／Ｆコントローラ２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。また、通信Ｉ／Ｆコントローラ２０８は、ギガビットイーサネット（登録商標）等を通じて光学式センサ１０４との通信も制御する。
【００３３】
汎用バス２１２は、ＨＭＤ１０１の右目・左目ビデオカメラ２２１からの映像を取り込むために使用される。右目・左目ビデオカメラ２２１からは、外部入力端子（例えば、ＩＥＥＥ１３９４端子）を用いて入力される。右目・左目ビデオカメラ２２１は、右目用のビデオカメラと左目用のビデオカメラとから構成されている。
【００３４】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ上の不図示のマウスカーソル等でのユーザ指示を可能とする。以上が図２の説明である。
【００３５】
次に図３を参照して、本発明の第１の実施形態における機能構成図について説明する。
【００３６】
現実物体検出部３０１は、ＨＭＤ１０１のカメラにより撮像された現実画像から、現実物体を検出する処理部である。
【００３７】
仮想物体記憶部３０２は、仮想物体（３次元モデル）を、仮想空間における座標と対応付けて記憶する。なお、仮想物体には、２つ種類があるものとする。
【００３８】
１つは、ディスプレイに表示される３次元モデルである。もう１つは、ディスプレイには表示されない３次元モデルであり、仮想物体を描画しない領域を定義するための３次元モデル、すなわちマスクモデルである。
【００３９】
マスクモデルに対し、通常の３次元モデルを非マスクモデルと呼ぶ。マスクモデルか通常の3次元モデルかは、３次元モデルに付与された属性により決定・特定される。
【００４０】
位置決定部３０３は、仮想空間における３次元モデルの位置を決定する処理部である。
【００４１】
描画部３０４は、ＨＭＤ１０１から見た３次元モデルの画像を、現実画像に重畳して描画する処理部である。
【００４２】
なお、描画部３０４は、マスクモデルに内包される仮想空間上の領域に通常の３次元モデルの一部分が入り込んだ場合、当該入り込んだ部分については描画せず、マスクモデルの外側にある部分だけを描画する。
【００４３】
マスクモデルと非マスクモデルの仮想空間上における位置関係と、描画される画像の一例を図１２に示す。
【００４４】
１２００は、ＨＭＤ１０１、非マスクモデル１２０１〜１２０３、マスクモデル１２０４を、上方（Ｚ軸方向）から俯瞰した場合の位置関係を示している。各モデルのＺ軸における位置は同一であるものとする。また、非マスクモデル１２０１〜１２０３は直方体形状、マスクモデル１２０４は球体形状であるものとする。
【００４５】
１２０５は、非マスクモデル１２０２の一部であり、マスクモデル１２０４に内包されている（重なっている）。
【００４６】
１２１０は、ＨＭＤ１０１に描画される３次元モデルの画像を示す。Ｘ軸方向（奥行方向）において、ＨＭＤ１０１から見てマスクモデル１２０４の手前又は奥に位置し、マスクモデル１２０４と重なっていない非マスクモデル１２０１と１２０３は欠けることなく描画されている。
【００４７】
一方、マスクモデル１２０４と重なっている非マスクモデル１２０２は、１２０５に相当する部分は描画しておらず、かけた状態である。
【００４８】
図３の説明に戻る。制御部３０５は、マスクモデルの位置姿勢を、第１の現実空間（例：現実空間Ａ）に存在する現実物体の位置姿勢（現実空間上の位置姿勢）と同じ位置姿勢（仮想空間上の位置姿勢）に決定する。
【００４９】
また、当該マスクモデルと同じ形状の非マスクモデルの仮想空間Ｂにおける位置を、仮想空間Ａにおける前記マスクモデルと同じ位置に決定する。
【００５０】
これらのマスクモデルと非マスクモデルは、各ＰＣ１００において対応付けて記憶される。
【００５１】
識別表示部３１１は、制御部３０５によって位置決定された非マスクモデルを識別表示する処理部である。すなわち、現実空間Ａには現実物体として存在するが、現実空間Ｂにおいては存在せず、仮想物体として表示されていることを識別表示する。
【００５２】
移動処理部３１２は、非マスクモデルを仮想空間上において移動（位置の変更）させる処理部である。
【００５３】
移動情報表示部３０６は、仮想空間Ａにおけるマスクモデル（現実物体の位置に基づいて位置決定されたモデル）に対応する、別の仮想空間Ｂにおける非マスクモデルが移動された場合、当該移動されたことを、現実空間ＡにおけるＨＭＤ１０１Ａにおいて識別表示する処理部である。
【００５４】
なお、本実施形態においては、以降のフローチャートにおける記載に合わせて、３０１〜３０６、３１１〜３１２を別の筐体が備えているものと説明しているが、実際はＰＣ１００ＡとＰＣ１００Ｂの両方が３０１〜３０６および３１１〜３１２の全ての機能を備えている。以上が図３の説明である。
【００５５】
次に図４を参照して、本発明の第１の実施形態における、各種装置のモジュール構成の一例について説明する。
【００５６】
ＰＣ１００は、オペレーティングシステム４０１（ＯＳ）、グラフィックエンジン４０２、複合現実感プラットフォーム４０３（ＭＲプラットフォームともいう）、複合現実感アプリケーション４０４（ＭＲアプリケーションやビューアアプリケーションともいう）で構成され、ＣＰＵ２０１により制御されている。
【００５７】
オペレーティングシステム４０１は、ＨＭＤ１０１の入出力を制御しカメラ２２１から入力インターフェースを介して得られた現実画像を複合現実感プラットフォーム４０３へ受け渡す。またグラフィックエンジン４０２で描画された複合現実画像を、出力インターフェースを介して、ディスプレイ２２２へ出力する。
【００５８】
グラフィックエンジン４０２は、外部メモリ２１１に記憶されている３次元モデルから描画する画像を生成し、現実画像に重畳し、合成する。描画に利用するエンジンは、例えば、ＯｐｅｎＧＬやＤｉｒｅｃｔＸなどの広く利用されているグラフィックエンジンでも、独自に開発したグラフィックエンジンでもよい。なお、本実施形態ではグラフィックライブラリとしてＯｐｅｎＧＬを利用するものとする。
【００５９】
複合現実感プラットフォーム４０３は、例えばＨＭＤ１０１のカメラで撮像された現実画像を解析し、当該現実画像の中に写り込んだ二次元マーカの角度、大きさ等からＨＭＤ１０１の位置姿勢を特定し、現実空間と仮想空間の位置合わせを行う。なお、位置姿勢や位置合わせの技術は、既知の技術として開示されている特開２００２−３２７８４、特開２００６−０７２９０３、特開２００７−１６６４２７等を用いて実現することが可能である。
【００６０】
なお、二次元マーカを使用せずに、ＨＭＤ１０１に位置センサを備え、この位置センサを用いて三角測量により計測された位置をもとに、ＨＭＤ１０１の位置や姿勢を特定して実現することも可能である。
【００６１】
複合現実感アプリケーション４０４は、複合現実感プラットフォーム４０３からＨＭＤ１０１の位置姿勢、３次元モデルの形状の情報や位置姿勢の情報を受け付け、グラフィックエンジン４０２に対して当該３次元モデルの描画命令を発行する。この時、ＯｐｅｎＧＬのＡＰＩを用いて、描画する３次元モデルの識別情報、位置姿勢の情報を設定した命令を発行する。以上が図４の説明である。
【００６２】
次に図５を参照して、本発明の第１の実施形態における複合現実画像の生成及び表示処理について説明する。図５の処理はＰＣ１００ＡとＰＣ１００Ｂのそれぞれで実行される。
【００６３】
なお、本実施形態における各フローチャートの各処理は、各ＰＣ１００が備えるＣＰＵ２０１が、ＰＣ１００が備える機能を用いて実行するものとする。
【００６４】
ＨＭＤ１０１は、ステップＳ５０１で起動後、カメラ２２１の機能を用いて現実画像の撮像を開始する（ステップＳ５０２）。そして、撮像処理によって取得した現実画像をＰＣ１００に送信する（ステップＳ５０３）。
【００６５】
ＰＣ１００はＨＭＤ１０１より現実画像を受信し（ステップＳ５０４）、受信した現実画像を外部メモリ２１１に記憶する（ステップＳ５０５）。例えば、図６の現実画像テーブル６３０に示すように、現実画像の送信元のＨＭＤ１０１の識別情報であるＨＭＤ  ＩＤ６３１と、現実画像６３２とを対応付けて記憶する。
【００６６】
ＰＣ１００は、ＨＭＤ１０１の位置姿勢を取得して（ステップＳ５０６）、外部メモリ２１１に記憶する（ステップＳ５０７）。例えば、図６のＨＭＤ情報６１０に示すように、ＨＭＤ１０１の識別情報であるＨＭＤ  ＩＤ６１１と、当該ＨＭＤの位置６１２（Ｘ，Ｙ，Ｚ座標）、姿勢６１３（Ｘ，Ｙ，Ｚ座標の値により表現されるＨＭＤ１０１の向いている方向）を記憶する。
【００６７】
ＰＣ１００は、ステップＳ５０８で、ＨＭＤ１０１から受信した現実画像に３次元モデルの画像を重畳して描画した複合現実画像の生成処理を行う。当該処理の詳細は図７の説明で後述する。
【００６８】
ＰＣ１００は、当該複合現実画像をＨＭＤ１０１に送信する（ステップＳ５０９）。
【００６９】
ＨＭＤ１０１は、ＰＣ１００から複合現実画像を受信し（ステップＳ５１０）、表示画面に表示する（ステップＳ５１１）。以上が図５の説明である。
【００７０】
次に図７を参照して、本発明における複合現実画像の生成処理について説明する。ここでは、ＰＣ１００ＡがステップＳ５０８の処理を開始したものとして説明する。
【００７１】
ＰＣ１００Ａは、ステップＳ５０５で記憶した画像のうち未処理の画像を取得し（ステップＳ７０１）、当該画像に写っている二次元マーカ画像を特定する。
【００７２】
そして、当該二次元マーカと対応付けて記憶されている３次元モデルを特定し、当該３次元モデルの位置姿勢を決定する。当該二次元マーカに基づく３次元モデルの位置決定には既存の技術を用いる。
【００７３】
二次元マーカの形状は問わないが、例えば正方形であり、全て同じサイズであるものとする。各二次元マーカにはユニークなマーカ番号が埋め込まれているものとする。そして、ＨＭＤ１０１に設けられたカメラで撮像した際に、個々の二次元マーカが識別でき、デコードした際に、そのマーカ番号が得られるものとする。撮像した画像中の３つの二次元マーカのサイズから、ＨＭＤ１０１から当該二次元マーカまでの距離を求める。なお、マーカの法線方向に視点があるとき、その二次元マーカ画像が正方形に見えることになる。そして、視点が法線方向からずれると、そのずれの度合いに応じて正方形が歪んで見える。つまり、この歪みから、視点の軸に対する二次元マーカで規定される平面の向きが判明し、二次元マーカのサイズから視点と二次元マーカ間の距離を検出でき、二次元マーカが貼り付けられた平面が規定できる。また、二次元マーカには、互いに識別できる２つの印が設けられ、二次元マーカの中心位置を原点とし、二次元マーカで規定される上記の平面上の、原点からその印に向かう２つのベクトルを２軸、二次元マーカの中心位置から法線方向の１軸で、局所的（ローカル）な３次元座標を規定する３軸を規定しているものとする。
【００７４】
当該二次元マーカが検出された際、例えば当該二次元マーカの重心位置からオフセットを持つ位置を、二次元マーカと対応付けて記憶されている３次元モデルの位置として決定し、モデル情報６２０の位置姿勢に記憶する。
【００７５】
図６のモデル情報６２０は、３次元モデルの情報（３次元モデルのファイルおよび位置姿勢の情報）の一例である。
【００７６】
モデル情報６２０は、予めＰＣ１００Ａの外部メモリ２１１に記憶されている情報である。モデルＩＤ６２１は３次元モデルの識別情報である。
【００７７】
モデル名６２２は、３次元モデルのファイル名である。ファイルパス６２３は、ファイルが記憶されている場所を示す。位置６２４、姿勢６２５は、仮想空間における３次元モデルの位置姿勢を示す。
【００７８】
ステップＳ７０２で決定した３次元モデルの位置姿勢は、図６の６２４、６２５に記憶する。
【００７９】
また、ＰＣ１００Ａは、ステップＳ７０１で取得した画像から特徴量を抽出することで現実物体を検出する（ステップＳ７０３）。また当該現実物体の特徴量と類似する特徴量を持つ３次元モデルがあるか判定する。すなわち、現実物体と略同一形状の３次元モデルがあるか判定する（ステップＳ７０４）。
【００８０】
なお、現実物体の特徴量抽出の手法及び３次元モデルと類似しているかの判定手法、また、ＨＭＤ１０１から見た現実物体の座標の計測手法は、例えば特開平８−５３３３の手法を用いるものとする。
【００８１】
すなわち、３次元モデル上の任意の３個の特徴点から形成されるモデル三角形を予め記憶しておく。また、右目・左目カメラ２２１（２台のカメラ）で撮像して得られたそれぞれの計測画像から現実物体の特徴点を抽出し、また、ある計測画像の特徴点に対する他の計測画像の特徴点の１以上の対応候補を抽出する。対応候補を組み合わせて形成される計測三角形とモデル三角形との対応の組み合わせを作成し、各組み合わせにおける計測三角形とモデル三角形とを比較する。両三角形が一致しない場合には，対応決定部４により新たな組み合わせを作成する。一致又は一致率が所定以上（例：９５％以上）の場合には、現実物体の位置姿勢を認識するための両三角形間の座標変換係数を演算する。
【００８２】
なお、当該一致判定及び現実物体の位置姿勢特定の方法はあくまで一例であり、他の手法を用いても良い。例えば、デプスセンサ（深度センサ）や３次元スキャナをＨＭＤ１０１に搭載しておき、当該センサやスキャナによる計測で得られた現実空間の立体データと、３次元モデルの輪郭の一致判定を行うようにしても良い。デプスセンサを利用すれば、各計測点（現実物体の表面の３次元座標）とＨＭＤ１０１との位置関係を特定可能である。また、ＨＭＤ１０１の現実空間上の位置姿勢を使って、各計測店の座標を仮想空間上の座標に変換することが可能であることはいうまでもない。
【００８３】
略同一形状の３次元モデルがない場合、図７の処理をステップＳ７０９に移行する。略同一形状の３次元モデルがある場合、処理をステップＳ７０５に移行する。
【００８４】
ＰＣ１００Ａは、現実物体と略同一形状であると判定された３次元モデルを、仮想空間上における位置姿勢を決定する新たな３次元モデルとして決定し、外部メモリ２１１のモデル情報８００（図８）に記憶する（ステップＳ７０５）。
【００８５】
モデル情報８００の８０１〜８０５の構成は、図６のモデル情報６２０における６２１〜６２５と同じであるため説明は割愛する。
【００８６】
ＰＣ１００Ａは、当該３次元モデルの位置姿勢を、現実物体の位置姿勢と同じ位置姿勢に決定する（ステップＳ７０６）。例えば、現実物体上で計測した３点と、それに対応する３次元モデル上の３点が一致する位置姿勢を、ＨＭＤ１０１の位置姿勢、現実画像の中における当該３点の大きさ、角度、位置から特定する。当該特定方法は
【００８７】
決定した位置姿勢の情報は、モデル情報８００の８０４、８０５に記憶する。
【００８８】
ＰＣ１００Ａは、当該３次元モデルをマスクモデルに設定し、記憶する（ステップＳ７０７）。具体的には、モデル情報８００の属性８０６に「ｍａｓｋ」の値を挿入して記憶する。属性８０６に「ｍａｓｋ」が記憶されていない３次元モデル、又は、そもそも属性８０６の項目が対応付けられていない３次元モデルは非マスクモデルである。
【００８９】
また、表示先８０７に、ＰＣ１００Ａと接続されている他の端末の識別情報を記憶する。例えば「ＰＣ１００Ｂ」の値を、当該マスクモデルと同一形状のモデルを表示指示する先として記憶する。
【００９０】
ＰＣ１００Ａは、当該マスクモデルと同じ３次元モデルを、非マスクモデルとして、当該マスクモデルと同じ位置姿勢として記憶・表示するようＰＣ１００Ｂ（表示先８０７に記憶されている端末）に指示する（ステップＳ７０８）。つまり、自機とは異なる現実空間を管理する装置に対して、自機の管理する現実空間における現実物体の３次元モデル（仮想物体）を表示するよう指示する。
【００９１】
ＰＣ１００Ａは、マスクモデルのモデル情報８００を、当該指示に含めて送信する。
【００９２】
当該指示を受け付けたＰＣ１００Ｂは、マスクモデルのモデル情報８００を受信し（ステップＳ７１１）、当該モデル情報８００を自機に記憶する（ステップＳ７１２）。当該モデル情報８００は、位置姿勢が決定済みの３次元モデルとして、ＰＣ１００Ｂの外部メモリ２１１に記憶される。
【００９３】
また、ＰＣ１００Ｂは、当該モデル情報８００の属性８０６に記憶されている「ｍａｓｋ」の値を、当該モデル情報８００の送信元の端末及びモデルＩＤを合わせた値に書き換える。例えば、ＰＣ１００Ａから受信したモデルＩＤ＝Ｘ１１１のマスクモデルの属性を、「ＰＣ１００Ａ＿Ｘ１１１」に書き換えて記憶する。
【００９４】
「ＰＣ１００Ａ＿Ｘ１１１」は、ＰＣ１００ＢにおけるモデルＩＤ８０１＝Ｘ１１１の３次元モデルが、ＰＣ１００におけるＸ１１１と対応付けられていることを示す。当該対応付けの情報は、３次元モデルの位置姿勢の同期に用いられる。
【００９５】
例えば、ＰＣ１００がＸ１１１（マスクモデル）をＸ１，Ｙ２，Ｚ３に移動した場合、ＰＣ１００ＡはＰＣ１００Ｂに対して、Ｘ１１１がＸ１，Ｙ２，Ｚ３に移動した旨の情報を送信する。ＰＣ１００Ｂは当該情報を受信して、属性８０６にＰＣ１００Ａ及びＸ１１１の値を持つ３次元モデル（属性８０６＝ＰＣ１００Ａ＿Ｘ１１１）を特定し、Ｘ１，Ｙ２，Ｚ３に移動させる。
【００９６】
なお、ＰＣ１００ＢにおいてＸ１１１の３次元モデルは「ｍａｓｋ」属性を持っていないため、非マスクモデルである。
【００９７】
ＰＣ１００Ａは、自機の外部メモリ２１１から、既に位置姿勢が決定・記憶済の３次元モデルを、図６のモデル情報６２０及び図８のモデル情報８００から取得する（ステップＳ７０９）。
【００９８】
そして、ＨＭＤ１０１Ａの位置６１２・姿勢６１３から、ＨＭＤ１０１Ａと同じ画角を持つカメラが、当該３次元モデルを撮像した場合の、当該３次元モデルの画像を描画データ６４０として生成する（ステップＳ７１０）。
【００９９】
なお、マスクモデル及び非マスクモデルを各モデル情報に記憶されている位置姿勢で仮想空間に配置した場合に、非マスクモデルの、マスクモデルに内包される部分については描画しない。以上が図７の説明である。
【０１００】
なお、ＰＣ１００ＡおよびＰＣ１００Ｂでは、それぞれ図５及び図７の処理が実行される。よって、例えばＰＣ１００Ａの管理するＨＭＤ１０１Ａ−１には、マスクモデル（Ｘ１１１）により現実物体が視認可能に表示される。また、ＰＣ１００Ｂには、非マスクモデル（Ｘ１１１）が表示されることとなる。
【０１０１】
現実画像、現実画像に重畳する３次元モデルの画像（仮想画像）、複合現実画像の一例を図９に示す。
【０１０２】
９００はＨＭＤ１０１Ａ−１のカメラで撮像されている現実画像である。電話の現実物体９０１が写し出されている。
【０１０３】
９１０は現実画像９００に重畳する仮想画像である。マスクモデル９１１は、現実物体９０１と同じ位置姿勢で管理されている。よって、仮想画像上も、現実物体９０１と同じ位置姿勢、大きさである。しかし、マスクモデルであるため描画はされない。非マスクモデルと区別するため９１０においては破線で示している。
【０１０４】
９２０は、現実画像９００に仮想画像９１０を重畳した複合現実画像である。マスクモデルによって、現実画像９００に写っている現実物体９０１を確認できる。
【０１０５】
９３０はＨＭＤ１０１Ｂ−１のカメラで撮像されている現実画像である。電話の現実物体９０１は存在しない。
【０１０６】
９４０は現実画像９３０に重畳する仮想画像である。マスクモデル９１１と同じ位置姿勢で、非マスクモデル９４１が配置され、描画されている。
【０１０７】
９５０は、現実画像９３０に仮想画像９４０を重畳した複合現実画像である。電話の現実物体９０１そのものではなく、電話の３次元モデルである９５１が表示されている。
【０１０８】
以上説明したように、本発明の第１の実施形態によれば、現実物体に応じた仮想物体を容易に提示することが可能な仕組みを提供することができる。
【０１０９】
例えば、現実物体のある拠点では現実物体そのものを提示し、当該現実物体のない拠点では当該現実物体に応じた仮想物体を提示することができる。
【０１１０】
すなわち、現実物体と、現実物体に応じた仮想物体を容易に提示することが可能な仕組みを提供することができる。
【０１１１】
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。第２の実施形態では、現実物体に応じた仮想物体の移動にかかる情報を容易に提示することが可能な仕組みを提供する。
【０１１２】
なお、第１の実施形態と共通する装置、機能部、処理、画面等の説明は割愛する。
【０１１３】
図１０を参照して、本発明の第２の実施形態における、仮想物体の移動にかかる表示処理について説明する。
【０１１４】
ＰＣ１００Ｂは、モデル情報６２０またはモデル情報８００で位置決定されている３次元モデルの移動・姿勢変更の指示を受け付ける（ステップＳ１００１）。
【０１１５】
例えばユーザの手と３次元モデルが接触した状態で手が移動したり角度変更したりした場合、当該手の移動・角度変更に応じて３次元モデルの移動指示、姿勢変更指示を受け付けたものとする。
【０１１６】
なお、手と３次元モデルが接触している状態とは、例えば手の位置に合わせて位置決定され、手の移動に基づいて移動する、手の形状をした、手の動きに応じて変形・移動するマスクモデルと、当該３次元モデルとが接触している状態であるものとする。
【０１１７】
なお、３次元モデルの移動・姿勢変更の方法はこれに限るものではない。例えばＰＣ１００に接続されたコントローラのスティックを上下左右に動かすことで移動・姿勢変更させてもよいし、ＰＣ１００のキーボードを使用して当該３次元モデルの位置姿勢の値（Ｘ，Ｙ，Ｚ値）を書き換えることで移動・姿勢変更させてもよい。
【０１１８】
ＰＣ１００Ｂは、移動指示に応じて３次元モデルを移動させる（ステップＳ１００２）。また姿勢変更の指示がある場合は、当該３次元モデルの姿勢を変更する。すなわち、３次元モデルの位置姿勢の値（Ｘ，Ｙ，Ｚ値）をユーザからの指示に応じて更新する。
【０１１９】
ＰＣ１００Ｂは、ステップＳ１００２で位置姿勢が変更された３次元モデルが、属性８０６に「１００Ａ＿Ｘ１１１」を持つモデルか判定する。つまり、当該３次元モデルが、他の端末（ここではＰＣ１００Ａ）により検出された現実物体に応じて生成された３次元モデルか判定する（ステップＳ１００３）。
【０１２０】
本発明の実施形態においては、他のＰＣ１００により検出された現実物体に応じて生成された３次元モデルとは、例えばＰＣ１００Ａにて生成されたマスクモデルに対応する、ＰＣ１００Ｂに記憶されている非マスクモデルである。
【０１２１】
移動された３次元モデルが、他の端末により検出された現実物体に応じて生成された３次元モデルである場合は処理をステップＳ１００４に移行する。他の端末により検出された現実物体に応じて生成された３次元モデルでない場合は処理を終了する。
【０１２２】
ステップＳ１００４においてＰＣ１００Ｂは、ステップＳ１００２で移動・姿勢変更した３次元モデルの、変更後の位置姿勢の値をＰＣ１００Ａに送信する（ステップＳ１００４）。
【０１２３】
ＰＣ１００Ａは当該値を受信し、当該値の示す位置姿勢で、Ｘ１１１をコピーした新たな３次元モデルを生成し、非マスクモデルとして記憶する（ステップＳ１００５）。例えば、位置＝Ｘ１，Ｙ２，Ｚ３、姿勢＝Ｘ５，Ｙ６，Ｚ７の情報を受信した場合、ＰＣ１００Ａは、当該値を位置８０４・姿勢８０５に持つモデルＩＤ８０１＝Ｘ１１１Ａの３次元モデルを、ＰＣ１００Ａのモデル情報８００に追加する。なお、モデル名８０２及びファイルパス８０３は、モデルＩＤ８０１＝Ｘ１１１と同一の値を挿入する。
【０１２４】
また、属性８０６には、「ＰＣ１００Ｂ＿Ｘ１１１」を記憶する。つまり、ＰＣ１００ＡにおけるＸ１１２とＰＣ１００ＢにおけるＸ１１１の３次元モデルを対応付ける。
【０１２５】
その後、ＰＣ１００Ａは、モデル情報８００において、モデルＩＤ８０１＝Ｘ１１１の３次元モデル（ステップＳ１００５で位置姿勢を受信した３次元モデルと同じモデルＩＤを持つ３次元モデル）の表示先８０７から、ＰＣ１００Ｂの値を削除する（ステップＳ１００６）。
【０１２６】
つまり、ＰＣ１００Ａにおけるマスクモデル（Ｘ１１１）と、ＰＣ１００Ｂにおける非マスクモデル（Ｘ１１１）との、位置姿勢の同期（対応付け）を解除する。
【０１２７】
なお、ＰＣ１００ＡおよびＰＣ１００Ｂでは、それぞれ図５及び図７の処理が実行される。よって、ＰＣ１００Ａの管理するＨＭＤ１０１Ａには、マスクモデル（Ｘ１１１）により現実物体が視認可能に表示され、且つ、当該現実物体と略同一形状の非マスクモデル（Ｘ１１２）が表示される。また、ＰＣ１００Ｂには、非マスクモデル（Ｘ１１１）が表示されることとなる。
【０１２８】
現実画像、現実画像に重畳する３次元モデルの画像（仮想画像）、複合現実画像の一例を図１１に示す。
【０１２９】
１１３０はＨＭＤ１０１Ｂ−１のカメラで撮像されている現実画像である。電話の現実物体９０１は存在しない。
【０１３０】
１１４０は現実画像１１３０に重畳する仮想画像である。非マスクモデル９４１が移動されている。
【０１３１】
１１５０は、現実画像１１３０に仮想画像１１４０を重畳した複合現実画像である。電話の現実物体９０１そのものではなく、電話の３次元モデルである９５１が、移動先の位置に表示されている。
【０１３２】
１１００はＨＭＤ１０１Ａ−１のカメラで撮像されている現実画像である。電話の現実物体９０１が写し出されている。
【０１３３】
１１１０は現実画像１１００に重畳する仮想画像である。マスクモデル９１１は、現実物体９０１と同じ位置姿勢で管理されている。また、ステップＳ１００５で記憶された新たな非マスクモデル１１１１（例：モデルＩＤ＝Ｘ１１２）が、ＰＣ１００Ｂの管理する仮想空間において非マスクモデル９４１が移動された位置と同じ位置に描画されている。
【０１３４】
１１２０は、現実画像１１００に仮想画像１１１０を重畳した複合現実画像である。マスクモデルによって、現実画像１１００に写っている現実物体９０１を確認できる。また同時に、仮想画像における非マスクモデル１１１１が確認できる。
【０１３５】
以上説明したように、本発明の第２の実施形態によれば、現実物体に応じた仮想物体の移動にかかる情報を容易に提示することが可能な仕組みを提供することができる。
【０１３６】
以上、本発明の実施形態の例について説明したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１３７】
例えば、図２に示すＰＣ１００の構成を全て備えるＨＭＤ１０１Ａ−１〜１０Ｂ−２の全機が、自機の機能をＣＰＵ２０１で実行して、上述した実施形態においてＰＣ１００の実行するものとして説明した処理の全てを実行するようにしてもよい。
【０１３８】
また、本発明におけるプログラムは、図５、図７、図１０に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は当該フローチャートの処理によって実現される処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは各装置の処理方法ごとのプログラムであってもよい。
【０１３９】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１４０】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【０１４１】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、シリコンディスク、ソリッドステートドライブ等を用いることができる。
【０１４２】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４３】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４４】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１４５】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１４６】
１００Ａ  ＰＣ
１００Ｂ  ＰＣ
１０１Ａ−１  ＨＭＤ
１０１Ａ−２  ＨＭＤ
１０１Ｂ−１  ＨＭＤ
１０１Ｂ−２  ＨＭＤ
１０３  光学式マーカ
１０４  光学式センサ
１５０  ネットワーク
【図１】
2020107152.tif 000003
【図２】
2020107152.tif 000004
【図３】
2020107152.tif 000005
【図４】
2020107152.tif 000006
【図５】
2020107152.tif 000007
【図６】
2020107152.tif 000008
【図７】
2020107152.tif 000009
【図８】
2020107152.tif 000010
【図９】
2020107152.tif 000011
【図１０】
2020107152.tif 000012
【図１１】
2020107152.tif 000013
【図１２】
2020107152.tif 000014