(57)【要約】【課題】  複合現実空間の体験時の記録を容易に保存するための技術を提供すること。【解決手段】  ユーザの視点に基づく現実空間の画像と、該視点の位置姿勢に応じて生成した仮想物体の画像と、の合成画像を生成する。ユーザの位置若しくは視線方向に基づいて、ユーザの人体の姿勢を計測することで得られる情報と合成画像とを保存する条件を満たすか否かを判断する。条件を満たすと判断した場合に、情報と合成画像とを保存する。【選択図】  図１
2019040357.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの視点に基づく現実空間の画像と、該視点の位置姿勢に応じて生成した仮想物体の画像と、の合成画像を生成する生成手段と、
前記ユーザの位置若しくは視線方向に基づいて、前記ユーザの人体の姿勢を計測することで得られる情報と前記合成画像とを保存する条件を満たすか否かを判断する判断手段と、
前記条件を満たすと前記判断手段が判断した場合に、前記情報と前記合成画像とを保存する保存手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記判断手段は、前記ユーザの位置が規定の位置若しくは特定の仮想物体の位置から規定の距離以内であるとの条件を満たした場合には、前記情報と前記合成画像とを保存すると判断することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記判断手段は、前記ユーザが特定の仮想物体と干渉しているとの条件を満たした場合には、前記情報と前記合成画像とを保存すると判断することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記判断手段は、前記ユーザの視線方向に特定の仮想物体が存在するとの条件を満たした場合には、前記情報と前記合成画像とを保存すると判断することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記判断手段は、前記ユーザの位置若しくは視線方向に基づき、特定の仮想物体における前記ユーザの状態が所定時間続く場合には、前記情報と前記合成画像とを保存すると判断することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記特定の仮想物体は仮想空間に配置する仮想物体のうち予め指定された仮想物体であることを特徴とする請求項２乃至５の何れか１項に記載の画像処理装置。
【請求項７】
前記情報は、前記ユーザに取り付けられているマーカをモーションキャプチャシステムによって計測することで得られる該マーカの３次元位置であることを特徴とする請求項１乃至６の何れか１項に記載の画像処理装置。
【請求項８】
前記情報は、前記ユーザに取り付けられているマーカをモーションキャプチャシステムによって計測することで得られる該マーカの３次元位置から生成した、前記ユーザの人体の姿勢を表す人体モデルであることを特徴とする請求項１乃至６の何れか１項に記載の画像処理装置。
【請求項９】
前記情報は、前記ユーザに取り付けられているマーカをモーションキャプチャシステムによって計測することで得られる該マーカの３次元位置から生成した前記ユーザの人体の姿勢を表す人体モデルを前記視点とは別個の視点から見た該人体モデルの画像を、該別個の視点に基づく現実空間の画像に合成した合成画像であることを特徴とする請求項１乃至６の何れか１項に記載の画像処理装置。
【請求項１０】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の生成手段が、ユーザの視点に基づく現実空間の画像と、該視点の位置姿勢に応じて生成した仮想物体の画像と、の合成画像を生成する生成工程と、
前記画像処理装置の判断手段が、前記ユーザの位置若しくは視線方向に基づいて、前記ユーザの人体の姿勢を計測することで得られる情報と前記合成画像とを保存する条件を満たすか否かを判断する判断工程と、
前記画像処理装置の保存手段が、前記条件を満たすと前記判断工程で判断した場合に、前記情報と前記合成画像とを保存する保存工程と
を備えることを特徴とする画像処理方法。
【請求項１１】
コンピュータを、請求項１乃至９の何れか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合現実空間の提示に係る技術に関するものである。
【背景技術】
【０００２】
近年、複合現実（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ／以下、ＭＲと記載）の技術が普及している。複合現実の技術を用いることで、ヘッドマウントディスプレイ（ＨＭＤ）を装着したユーザに対し、現実画像にＣＧモデルを配置した複合現実画像を提供し、現実と仮想を複合した複合現実の世界（複合現実空間）を体験させることができる（例えば、特許文献１）。複合現実画像を生成するにあたり、ＨＭＤの位置とＣＧモデルの位置とを、センサや二次元マーカを用いて特定する手法が取られている。
【０００３】
特許文献２には、客観カメラにより撮影された体験者を含む画像と、体験者が体験している際に映し出されるＣＧ画像と、を合成して、ディスプレイに表示する技術が開示されている。
【０００４】
また、技術の発展によってモーションキャプチャ技術が利用可能となり、複合現実の技術とモーションキャプチャ技術とを組み合わせた仕組みが試みられている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−３０８５１４号公報
【特許文献２】特開２０１５−１７０２３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、複合現実など、ＨＭＤを用いた体験型の映像システムにおいてモーションキャプチャを用いる場合、モデルを見ている場合やモデルに対して指示をしている場合に、どのような姿勢をしているのかを特定するために用いることがある。例えば、ある製品を組み立てる、或いは修理する際の検討として、どのような体勢で部品に対してどのように触れるのかをモーションキャプチャと複合現実感システムを用いて確認する。誰かに体験をさせ、他のユーザがその状況を確認しながら検討することもあるが、後日検討する際には、改めて同じ状況で体験させる必要があり、手間がかかるという問題があった。また、体験時の状況をすべて記録しておくことは可能であるが、不要な記録まで残るため検討には適さないという問題があった。
【０００７】
本発明は、複合現実空間の体験時の記録を容易に保存するための技術を提供する。
ための技術を提供する。
【課題を解決するための手段】
【０００８】
本発明の目的を達成するために、例えば、本発明の画像処理装置は次のような構成を有する。すなわち、ユーザの視点に基づく現実空間の画像と、該視点の位置姿勢に応じて生成した仮想物体の画像と、の合成画像を生成する生成手段と、前記ユーザの位置若しくは視線方向に基づいて、前記ユーザの人体の姿勢を計測することで得られる情報と前記合成画像とを保存する条件を満たすか否かを判断する判断手段と、前記条件を満たすと前記判断手段が判断した場合に、前記情報と前記合成画像とを保存する保存手段とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明により、複合現実空間の体験時の記録を容易に保存することができる。
【図面の簡単な説明】
【００１０】
【図１】システムの概要を示す図。
【図２】ＨＭＤ１０１及びＰＣ１００のそれぞれのハードウェア構成例を示すブロック図。
【図３】ＰＣ１００の機能構成例を示すブロック図。
【図４】ＰＣ１００のモジュール構成例を示すブロック図。
【図５】ＨＭＤ１０１及びＰＣ１００が行う処理のフローチャート。
【図６】ステップＳ５２２における処理のフローチャート。
【図７】外部メモリ２１１に保持される情報の構成例を示す図。
【図８】ステップＳ６０２における処理のフローチャート。
【図９】ステップＳ６０３における処理のフローチャート。
【図１０】ステップＳ６０４における処理のフローチャート。
【図１１】ステップＳ８１１における処理のフローチャート。
【図１２】客観画像ディスプレイ１６０の表示例を示す図。
【図１３】複合現実空間の画像の一例を示す図。
【図１４】保存情報の表示例を示す図。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１２】
［第１の実施形態］
本実施形態に係るシステムは、現実空間と仮想空間との合成空間である複合現実空間を、ＨＭＤ等の頭部装着型表示装置や、頭部装着型表示装置は別個に設けられた表示装置に対して提示する複合現実感提示システムである。先ず、本実施形態に係るシステムの概要について、図１を用いて説明する。
【００１３】
ユーザの頭部にはＨＭＤ１０１が装着されており、ＨＭＤ１０１の表示画面には、画像処理装置としてのＰＣ１００から出力される複合現実空間の画像が表示される。ユーザはＨＭＤ１０１の表示画面に表示される複合現実空間の画像を観察することで複合現実空間を体験する。
【００１４】
ＨＭＤ１０１には、光学式センサ１０４で検知可能（計測可能）な光学式マーカ１０３が取り付けられており、光学式センサ１０４による光学式マーカ１０３の計測結果はＰＣ１００に送出される。図１では図示を簡略化するために、光学式センサ１０４の数を１としているが、実際には複数の光学式センサ１０４を配置する。ＰＣ１００は光学式センサ１０４による光学式マーカ１０３の計測結果に基づいて光学式マーカ１０３の位置姿勢を求める。光学式センサ１０４による光学式マーカ１０３の計測結果に基づいて該光学式マーカ１０３の位置姿勢を求めるための技術については周知であるため、該技術に係る詳細な説明は省略する。そしてＰＣ１００は、例えばＨＭＤ１０１に備わっているカメラをユーザの視点（ユーザ視点）とする場合には、予め求めた「ユーザ視点と光学式マーカ１０３との間の相対的な位置姿勢関係」を用いて、光学式マーカ１０３の位置姿勢をユーザ視点の位置姿勢に変換する。
【００１５】
なお、ユーザ視点の位置姿勢を取得する方法は特定の方法に限らない。例えば、ユーザ視点の位置姿勢を得るために用いる位置姿勢計測用センサは光学式センサ１０４に限らず、磁気センサ、超音波センサなど他の種類の位置姿勢計測用センサを用いてユーザ視点の位置姿勢を取得するようにしても良い。また、現実空間中に配されている二次元マーカ１０２をＨＭＤ１０１に備わっているカメラにより撮像し、該撮像により得られる撮像画像を用いてユーザ視点の位置姿勢を求めても良い。また、位置姿勢計測用センサと２次元マーカとを併用してユーザ視点の位置姿勢を取得するようにしても良い。
【００１６】
そしてＰＣ１００は、ＣＧモデル１３０等の仮想物体を生成して仮想空間中に配置し、ユーザ視点から見た仮想物体の画像を生成する。そしてＰＣ１００は、この生成した仮想物体の画像と、ＨＭＤ１０１が有するカメラにより撮像された現実空間の画像と、を合成した合成画像を複合現実空間の画像として生成し、該生成した複合現実空間の画像をＨＭＤ１０１に対して送出する。これによりユーザは、自身の視点の位置姿勢に応じた複合現実空間の画像を眼前に観察することができる。
【００１７】
また、現実空間には、ユーザが複合現実空間を体験している様子を撮像する客観カメラ１０６が配置されており、客観カメラ１０６による撮像画像はＰＣ１００に送出される。図１では図示を簡略化するために、客観カメラ１０６の数を１としているが、複数台の客観カメラ１０６を配置しても良い。ＰＣ１００は、客観カメラ１０６の位置姿勢（既知）を用いて、該位置姿勢を有する視点から見えるＣＧモデル１３０等の仮想物体の画像を生成し、該生成した画像を、客観カメラ１０６により撮像された現実空間の画像と合成して、客観画像ディスプレイ１６０に対して送出する。つまり客観画像ディスプレイ１６０には、複合現実空間を体験するユーザの視点（主観視点）とは異なる視点（客観視点）から見た複合現実空間の画像が表示されることになる。
【００１８】
また、ユーザの人体には、モーションキャプチャー技術で用いる複数個のモーションマーカ１０５が取り付けられている。これらのモーションマーカ１０５は光学式センサ１０４によって計測され、その計測結果はＰＣ１００に送出される。なお、モーションマーカ１０５は、モーションマーカを計測可能な専用のモーションセンサで計測することも可能であり、モーションマーカ１０５を計測するためのモーションキャプチャシステムに適用可能なシステムは特定のシステムに限らない。ＰＣ１００は、光学式センサ１０４によるモーションマーカ１０５の計測結果に基づいて、それぞれのモーションマーカ１０５の３次元位置を求める。光学式センサ１０４によるモーションマーカ１０５の計測結果に基づいて該モーションマーカ１０５の３次元位置を求めるための技術については周知であるため、該技術に係る詳細な説明は省略する。そしてＰＣ１００は、後述する条件が満たされた場合に、ユーザの現在の人体の姿勢を表す人体モデルをモーションマーカ１０５の３次元位置に基づいて生成し、客観カメラ１０６の位置姿勢を有する視点から見える人体モデルの画像を生成し、該生成した画像を、客観カメラ１０６による撮像画像に合成して客観画像ディスプレイ１６０に出力する。つまり、後述する条件が満たされた場合には、客観画像ディスプレイ１６０には、客観カメラ１０６の位置姿勢に応じて生成された仮想物体及び人体モデルの画像と、客観カメラ１０６による撮像画像と、が合成された合成画像が複合現実空間の画像として表示されることになり、後述する条件が満たされていない場合には、客観画像ディスプレイ１６０には、客観カメラ１０６の位置姿勢に応じて生成された仮想物体の画像と、客観カメラ１０６による撮像画像と、が合成された合成画像が複合現実空間の画像として表示されることになる。人体モデルは、例えば、モーションマーカ１０５の３次元位置を線分モデルで結んだ３次元モデルでも良いし、モーションマーカ１０５の３次元位置を関節の位置とする３次元モデルでも良いし、モーションマーカ１０５の３次元位置を輪郭とする３次元モデルでも良い。
【００１９】
次に、ＨＭＤ１０１及びＰＣ１００のそれぞれのハードウェア構成例について、図２のブロック図を用いて説明する。なお、図２に示した構成は、ＨＭＤ１０１、ＰＣ１００に適用可能なハードウェア構成の一例であり、図２の構成に限るものではない。
【００２０】
先ず、ＨＭＤ１０１について説明する。右目・左目ビデオカメラ２２１は、ユーザの右目に提供する現実空間の画像を撮像するための右目用ビデオカメラと、ユーザの左目に提供する現実空間の画像を撮像するための左目用ビデオカメラと、を有し、それぞれのビデオカメラによる撮像画像（現実空間の画像）はＰＣ１００に送出される。
【００２１】
右目・左目ディスプレイ２２２は、ユーザの右目に映像（画像及び文字を含む）を提供するための右目用ディスプレイと、ユーザの左目に映像（画像及び文字を含む）を提供するための左目用ディスプレイと、を有する。ＰＣ１００から送出された右目用の映像は右目用ディスプレイに表示され、左目用の映像は左目用ディスプレイに表示される。
【００２２】
次に、ＰＣ１００について説明する。汎用バス２１２は、右目・左目ビデオカメラ２２１から送出される現実空間の画像を受信するためのインターフェースとして機能するものであり、例えば、外部入力端子（例えば、ＩＥＥＥ１３９４端子）によって構成される。
【００２３】
ＣＰＵ２０１はＲＯＭ２０２やＲＡＭ２０３に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりＣＰＵ２０１は、ＰＣ１００全体の動作制御を行うと共に、ＰＣ１００が行うものとして後述する各処理を実行若しくは制御する。
【００２４】
ＲＯＭ２０２には、書換不要のコンピュータプログラムやデータ、例えば、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）が格納されている。
【００２５】
ＲＡＭ２０３は、ＲＯＭ２０２や外部メモリ２１１からロードされたコンピュータプログラムやデータを格納するためのエリアを有する。またＲＡＭ２０３は、汎用バス２１２を介して右目・左目ビデオカメラ２２１から受信した現実空間の画像を格納するためのエリアを有する。またＲＡＭ２０３は、通信Ｉ／Ｆコントローラ２０８を介して光学式センサ１０４から受信した計測結果を格納するためのエリアを有する。またＲＡＭ２０３は、通信Ｉ／Ｆコントローラ２０８を介して客観カメラ１０６から受信した現実空間の画像を格納するためのエリアを有する。またＲＡＭ２０３は、ＣＰＵ２０１が各種の処理を実行する際に用いるワークエリアを有する。このようにＲＡＭ２０３は、各種のエリアを適宜提供することができる。
【００２６】
ビデオコントローラ２０６は、右目・左目ディスプレイ２２２、ディスプレイ２１０、客観画像ディスプレイ１６０の表示制御を行うためのものである。右目・左目ディスプレイ２２２に対しては、例えば外部出力端子（例えば、Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）を用いて映像信号（画像や文字の表示用信号）の出力を行う。ディスプレイ２１０は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ２０１による処理結果を画像や文字などでもって表示することができる。
【００２７】
入力コントローラ２０５は、入力デバイス２０９の動作制御を行うためのものである。入力デバイス２０９は、マウスやキーボードなどのユーザインターフェースとして機能するものであり、ユーザが操作することで各種の指示をＣＰＵ２０１に対して入力することができる。例えば、入力デバイス２０９がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンを押下（指等でタッチ）することにより、各種の指示の入力を行うことができる。なお、タッチパネルは、マルチタッチスクリーンなどの、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
【００２８】
メモリコントローラ２０７は、外部メモリ２１１への情報の読み書きを制御するためのものである。外部メモリ２１１は、ハードディスクドライブ装置、フレキシブルディスク、ＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等のメモリ装置である。外部メモリ２１１には、ＯＳ（オペレーティングシステム）や、ＰＣ１００が行うものとして後述する各処理をＣＰＵ２０１に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。
【００２９】
外部メモリ２１１に保存されているコンピュータプログラムには、以下に説明する各フローチャートに従った処理をＣＰＵ２０１に実行させるためのコンピュータプログラムが含まれている。また、外部メモリ２１１に保存されているデータには、本実施形態を含む以下の各実施形態において既知の情報として取り扱う情報や、ＣＧモデル１３０を含む様々な仮想物体の描画に要するデータ（描画データ）が含まれている。外部メモリ２１１に保存されているコンピュータプログラムやデータは、ＣＰＵ２０１による制御に従って適宜ＲＡＭ２０３にロードされ、ＣＰＵ２０１による処理対象となる。なお、外部メモリ２１１は、ＵＳＢメモリ、ＳＤカードなどのメモリ装置であっても良い。
【００３０】
通信Ｉ／Ｆコントローラ２０８は、光学式センサ１０４及び客観カメラ１０６のそれぞれから計測結果や現実空間の画像を受信するためのインターフェースとして機能するものである。また通信Ｉ／Ｆコントローラ２０８は、ＬＡＮやインターネットなどのネットワークを介して外部の機器との間のデータ通信を行うためのインターフェースとして機能するものである。例えば、通信Ｉ／Ｆコントローラ２０８は、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。また通信Ｉ／Ｆコントローラ２０８は、ギガビットイーサネット（登録商標）等を通じて光学式センサ１０４との通信も制御する。なお、図１では、光学式センサ１０４、客観カメラ１０６、及び客観画像ディスプレイ１６０と、ＰＣ１００と、の間のデータ通信は有線であるが、無線であっても良い。例えば、ＰＣ１００は、ＬＡＮケーブルやＵＳＢケーブル、無線通信など様々な通信形態によって光学式センサ１０４、客観画像ディスプレイ１６０、客観カメラ１０６との間のデータ通信を行うことができる。
【００３１】
上記の汎用バス２１２、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、ビデオコントローラ２０６、入力コントローラ２０５、メモリコントローラ２０７、通信Ｉ／Ｆコントローラ２０８は何れも、システムバス２０４に接続されている。
【００３２】
なお、本実施形態では、ＨＭＤ１０１とＰＣ１００とを別個の機器とするが、ＨＭＤ１０１とＰＣ１００とを一体化させても良い。また、ＰＣ１００をサーバ装置として取り扱っても良い。
【００３３】
次に、ＰＣ１００のモジュール構成例について、図４のブロック図を用いて説明する。オペレーティングシステム４０１は、ＨＭＤ１０１との間の入出力を制御し、右目・左目ビデオカメラ２２１から汎用バス２１２を介して得られた現実空間の画像を複合現実感プラットフォーム４０３へと受け渡す。またオペレーティングシステム４０１は、グラフィックエンジン４０２で描画された複合現実空間の画像を、ビデオコントローラ２０６を介して、右目・左目ディスプレイ２２２へ出力する。
【００３４】
グラフィックエンジン４０２は、外部メモリ２１１に記憶されている仮想物体の描画データを用いて仮想物体の画像を生成し、該生成した仮想物体の画像を右目・左目ビデオカメラ２２１による撮像画像上に重畳することで複合現実空間の画像を生成する。仮想物体の画像の生成（描画）に利用するエンジンは、例えば、ＯｐｅｎＧＬやＤｉｒｅｃｔＸなどの広く利用されているグラフィックエンジンでも、独自に開発したグラフィックエンジンでもよい。なお、本実施形態ではグラフィックライブラリとしてＯｐｅｎＧＬを利用するものとする。
【００３５】
複合現実感プラットフォーム（ＭＲプラットフォームともいう）４０３は、上記のようにしてユーザの視点の位置姿勢を求め、現実空間と仮想空間との位置合わせを行う。これらの技術は、例えば、特開２００２−３２７８４号公報、特開２００６−０７２９０３公報、特開２００７−１６６４２７公報等に開示されている既存の技術を用いて実現することが可能である。
【００３６】
複合現実感アプリケーション（ＭＲアプリケーションやビューアアプリケーションともいう）４０４は、複合現実感プラットフォーム４０３から視点の位置姿勢や、仮想物体の色や形状の情報、仮想物体の位置姿勢等の仮想物体の描画に要する情報を受け付け、グラフィックエンジン４０２に対して、仮想物体の画像の描画命令を発行する。この時、ＯｐｅｎＧＬのＡＰＩを用いて、描画する仮想物体の識別情報、位置姿勢の情報を設定した命令を発行する。
【００３７】
また、複合現実感プラットフォーム４０３は、客観カメラ１０６から撮像画像を受信すると、該撮像画像を複合現実感アプリケーション４０４へ受け渡す。モーションキャプチャシステム４０５は、光学式センサ１０４によるモーションマーカ１０５の計測結果に基づいてモーションマーカ１０５の３次元位置を求める。複合現実感アプリケーション４０４は、モーションキャプチャシステム４０５から取得したモーションマーカ１０５の３次元位置と人体モデルとに応じた人体モデルの描画情報（後述する条件が満たされた場合）と、撮像画像と、仮想物体の描画命令と、をグラフィックエンジン４０２に出力する。グラフィックエンジン４０２は、人体モデル及び仮想物体が撮像画像に重畳された複合現実空間の画像を生成して客観画像ディスプレイ１６０に出力する。
【００３８】
次に、１枚（１フレーム分）の複合現実空間の画像を生成してＨＭＤ１０１や客観画像ディスプレイ１６０に表示するためにＨＭＤ１０１及びＰＣ１００が行う処理について、図５のフローチャートに従って説明する。
【００３９】
ステップＳ５０３では、右目・左目ビデオカメラ２２１は、撮像した現実空間の画像（右目用カメラによる撮像画像、左目用カメラによる撮像画像）をＰＣ１００に対して出力する。
【００４０】
ステップＳ５０４では、ＣＰＵ２０１は、右目・左目ビデオカメラ２２１から出力された現実空間の画像を汎用バス２１２を介して受信し、ステップＳ５０５ではＣＰＵ２０１は、該受信した現実空間の画像をＲＡＭ２０３や外部メモリ２１１に格納する。
【００４１】
ステップＳ５０６では、ＣＰＵ２０１は、光学式センサ１０４による光学式マーカ１０３の計測結果を通信Ｉ／Ｆコントローラ２０８を介して取得し、該取得した計測結果に基づいて上記のようにしてユーザ視点の位置姿勢（ＨＭＤ１０１の位置姿勢）を求める。ステップＳ５０６で求めるユーザ視点の位置姿勢は、右の視点（右目用ビデオカメラ）の位置姿勢、左の視点（左目用ビデオカメラ）の位置姿勢、である。右の視点については上記と同様、予め求めた「右の視点と光学式マーカ１０３との間の相対的な位置姿勢関係」を用いて、光学式マーカ１０３の位置姿勢を変換することで求めることができる。同様に、左の視点については上記と同様、予め求めた「左の視点と光学式マーカ１０３との間の相対的な位置姿勢関係」を用いて、光学式マーカ１０３の位置姿勢を変換することで求めることができる。
【００４２】
ステップＳ５０７では、ＣＰＵ２０１は、ステップＳ５０６で求めた視点の位置姿勢を、ＨＭＤ１０１の識別情報（ＩＤ）と関連づけて外部メモリ２１１に格納する。例えば、図７（ａ）に示す如く、ＨＭＤごとにＩＤ、位置、姿勢を対応付けて管理しているＨＭＤ情報１１１０の欄１１１１にＨＭＤ１０１のＩＤを登録し、欄１１１２にＨＭＤ１０１の位置を登録し、欄１１１３にＨＭＤ１０１の姿勢を登録する。ＨＭＤ情報１１１０は外部メモリ２１１に保存されている。
【００４３】
ステップＳ５０８では、ＣＰＵ２０１は、外部メモリ２１１に格納されている仮想物体の描画データをＲＡＭ２０３に読み出し、該読み出した描画データに基づいて仮想物体を生成し、該生成した仮想物体を仮想空間中に配置する。そしてＣＰＵ２０１は、ステップＳ５０６で求めた視点の位置姿勢に基づいて、該視点から見た仮想物体の画像を生成する。そしてＣＰＵ２０１は、ステップＳ５０４で受信した現実空間の画像上に、仮想物体の画像を重畳させることで複合現実空間の画像（ＭＲ画像）を生成する。厳密にはＣＰＵ２０１は、右目用カメラによる撮像画像（現実空間の画像）上に、右の視点の位置姿勢に基づいて生成した仮想物体の画像を重畳させることで、右目用の複合現実空間の画像を生成すると共に、左目用カメラによる撮像画像（現実空間の画像）上に、左の視点の位置姿勢に基づいて生成した仮想物体の画像を重畳させることで、左目用の複合現実空間の画像を生成する。
【００４４】
ステップＳ５０９では、ＣＰＵ２０１は、ステップＳ５０８において生成した複合現実空間の画像（右目用の複合現実空間の画像、左目用の複合現実空間の画像）を、ビデオコントローラ２０６を介してＨＭＤ１０１及びディスプレイ２１０に対して出力する。
【００４５】
ステップＳ５１０では、右目・左目ディスプレイ２２２は、ステップＳ５０９においてＰＣ１００から送信された右目用の複合現実空間の画像及び左目用の複合現実空間の画像を受信する。そしてステップＳ５１１では、右目・左目ディスプレイ２２２は、右目用の複合現実空間の画像を右目用ディスプレイに表示すると共に、左目用の複合現実空間の画像を左目用ディスプレイに表示する。
【００４６】
右目・左目ディスプレイ２２２に表示される複合現実空間の画像の一例を図１３に示す。図１３（ａ）は、ＣＧモデル１３０を観察するユーザ視点に基づく複合現実空間の画像の一例を示している。図１３（ｂ）は、ＣＧモデル１３０の下側に位置するユーザ視点に基づく複合現実空間の画像の一例を示しており、ＣＧモデル１３０に加えてユーザの腕１３０１が写っている。
【００４７】
また、ＰＣ１００は、ステップＳ５０４〜Ｓ５０９の処理と並行して、ステップＳ５２０〜Ｓ５２４の処理も実行する。
【００４８】
ステップＳ５２０では、ＣＰＵ２０１は、光学式センサ１０４によるモーションマーカ１０５の計測結果を通信Ｉ／Ｆコントローラ２０８を介して取得し、該取得した計測結果に基づいてモーションマーカ１０５の３次元位置を人体情報として求める。
【００４９】
ステップＳ５２１ではＣＰＵ２０１は、ステップＳ５２０において求めた人体情報を外部メモリ２１１に格納する。
【００５０】
ステップＳ５２２では、ＣＰＵ２０１は、図６のフローチャートに従った処理を実行する。
【００５１】
ステップＳ６０１では、ＣＰＵ２０１は、人体情報に基づく上記の人体モデルを生成するのか否か（人体モデルを生成して客観カメラ１０６による撮像画像上に重畳させるのか（反映させるのか）否か）を決定するための複数の条件（モード）のうち、現在ＰＣ１００に設定されているモードを判定する。
【００５２】
この判定の結果、現在ＰＣ１００に設定されているモードが「近接・指定位置モード」の場合には、処理はステップＳ６０２に進む。また、現在ＰＣ１００に設定されているモードが「干渉モード」の場合には、処理はステップＳ６０３に進む。また、現在ＰＣ１００に設定されているモードが「視線モード」の場合には、処理はステップＳ６０４に進む。
【００５３】
ステップＳ６０２における処理の詳細について、同処理のフローチャートを示す図８を用いて説明する。
【００５４】
ステップＳ８０１では、ＣＰＵ２０１は、ステップＳ５０６において求めた視点の位置（右の視点、左の視点の何れでも良い）を取得する。
【００５５】
ここで、上記の「近接・指定位置モード」には、「指定位置近接モード」と「ＣＧモデル近接モード」とが含まれている。ステップＳ８０２ではＣＰＵ２０１は、現在ＰＣ１００に設定されているモードが「近接・指定位置モード」のうち「指定位置近接モード」でるのか、それとも「ＣＧモデル近接モード」であるのかを判断する。この判断の結果、現在ＰＣ１００に設定されているモードが「近接・指定位置モード」のうち「指定位置近接モード」であれば、処理はステップＳ８０４に進み、現在ＰＣ１００に設定されているモードが「近接・指定位置モード」のうち「ＣＧモデル近接モード」であれば、処理はステップＳ８０３に進む。
【００５６】
ステップＳ８０３では、ＣＰＵ２０１は、ステップＳ５０６において求めた視点の位置と、仮想空間中に配置した仮想物体のうち特定の仮想物体の配置位置と、の間の距離を求める。
【００５７】
ここで、外部メモリ２１１には、図７（ｃ）に示す如く、仮想空間に配置するそれぞれの仮想物体を管理するＣＧモデル情報１１２０が保存されている。ＣＧモデル情報１１２０における欄１１２１には、仮想物体に固有のＩＤ（モデルＩＤ）が登録されており、欄１１２２には、仮想物体の描画データのファイル名（モデル名）が登録されており、欄１１２３には、仮想物体の描画データが格納されているファイルのパス（ファイルパス）が登録されており、欄１１２４には、仮想物体の配置位置が登録されており、欄１１２５には、仮想物体の配置姿勢が登録されている。然るに上記のステップＳ５０８では、ＣＰＵ２０１は、外部メモリ２１１に格納されているＣＧモデル情報１１２０を参照することで、描画対象となる仮想物体のＩＤに対応する欄１１２２及び欄１１２３のそれぞれに登録されているモデル名及びファイルパスに基づいて該仮想物体の描画データを読み出し、該読み出した描画データに基づいて該仮想物体を生成し、該生成した仮想物体を、該ＩＤに対応する欄１１２４及び欄１１２５のそれぞれに登録されている位置及び姿勢でもって仮想空間中に配置する。
【００５８】
更に、ＣＧモデル情報１１２０の欄１１２６には、仮想物体に対する人体制御フラグの値（ＯＮ若しくはＯＦＦ）が登録されている。ステップＳ８０３では、ＣＰＵ２０１は、ステップＳ５０６において求めた視点の位置と、ＣＧモデル情報１１２０に登録されている仮想物体のうち、人体制御フラグの値が「ＯＮ」の仮想物体の配置位置（欄１１２４）と、の間の距離を求める。図７（ｃ）の場合、モデルＩＤ＝Ｍ１１１に対応する仮想物体及びモデルＩＤ＝Ｍ３３３に対応する仮想物体のそれぞれの位置と視点の位置との間の距離を求めることになる。
【００５９】
一方、ステップＳ８０４では、ＣＰＵ２０１は、ステップＳ５０６において求めた視点の位置と、現実空間（若しくは仮想空間）における規定位置（予め指定された指定位置）と、の間の距離を求める。
【００６０】
ステップＳ８０５では、ＣＰＵ２０１は、現モードについて予め設定されている設定値としての規定距離を取得する。例えば外部メモリ２１１には図７（ｂ）に示す如く、現在ＰＣ１００に設定されているモードを示すモード設定１１３０が登録されており、モード設定１１３０における欄１１３１には、現在ＰＣ１００に設定されているモードが登録されており、欄１１３２には、現在ＰＣ１００に設定されているモードに対応する設定値が登録されている。図７（ｂ）に示したモード設定１１３０では、ＰＣ１００に設定されているモードとして「指定位置近接モード」が設定されており、「指定位置近接モード」に対応する設定値として「５０ｃｍ」が設定されている。然るにこの場合、ステップＳ８０５では、モード設定１１３０から設定値として「５０ｃｍ」を規定距離として取得することになる。
【００６１】
ステップＳ８０６では、ＣＰＵ２０１は、ステップＳ８０３もしくはステップＳ８０４で求めた距離ｄと、ステップＳ８０５において取得した規定距離θと、の大小比較を行う。ステップＳ８０３において複数の距離ｄを求めた場合には、そのうちの１つ（例えば最小の距離）と、ステップＳ８０５において取得した規定距離θと、の大小比較を行う。この大小比較の結果、ｄ＜θの場合には、処理はステップＳ８０７に進み、ｄ≧θの場合には、処理はステップＳ８０９に進む。
【００６２】
ステップＳ８０７では、ＣＰＵ２０１は、上記のステップＳ５２１において外部メモリ２１１に格納した人体情報を読み出す。そしてステップＳ８０８では、ＣＰＵ２０１は、人体情報に基づいて上記の人体モデルを生成する。例えば、ユーザの人体の基本姿勢を表す人体モデルとして図７（ｅ）に示す人体モデルを使用する場合、黒丸で示している箇所の位置を、該箇所に対応するモーションマーカ１０５の３次元位置に応じて移動させることで、現在のユーザの姿勢を表す人体モデルに変形させる。
【００６３】
一方、ステップＳ８０９では、ＣＰＵ２０１は、終了判定フラグの値（初期値はＯＦＦ）をＯＮに設定する。
【００６４】
ステップＳ８０８からステップＳ８１０に処理が進んだ場合、ステップＳ８１０では、ＣＰＵ２０１は、客観カメラ１０６の位置姿勢を有する視点から見える仮想物体及び人体モデルの画像を生成し、該生成した画像を、客観カメラ１０６により撮像された現実空間の画像と合成することで客観視点に基づく複合現実空間の画像を生成し、該生成した客観視点に基づく複合現実空間の画像を客観画像ディスプレイ１６０に対して送出する。
【００６５】
一方、ステップＳ８０９からステップＳ８１０に処理が進んだ場合、ステップＳ８１０では、ＣＰＵ２０１は、客観カメラ１０６の位置姿勢を有する視点から見える仮想物体の画像を生成し、該生成した画像を、客観カメラ１０６により撮像された現実空間の画像と合成することで客観視点に基づく複合現実空間の画像を生成し、該生成した客観視点に基づく複合現実空間の画像を客観画像ディスプレイ１６０に対して送出する。
【００６６】
ステップＳ８１１では、ＣＰＵ２０１は、複合現実空間の画像や人体情報を外部メモリ２１１に保存する処理を行う。ステップＳ８１１における処理の詳細について、同処理のフローチャートを示す図１１を用いて説明する。
【００６７】
ステップＳ１１０１では、ＣＰＵ２０１は、終了判定フラグ＝ＯＮであるか否かを判断する。この判断の結果、終了判定フラグ＝ＯＮであれば、処理はステップＳ１１０２に進み、終了判定フラグ＝ＯＦＦであれば、処理はステップＳ１１０３に進む。
【００６８】
終了判定フラグ＝ＯＮは、人体情報を対応付けて保存しない条件であり、例えば、ユーザと対象モデルとの距離が規定距離外であった場合には、人体情報と複合現実空間の画像を対応付けて保存しない。これは後からユーザの姿勢を検証する際に、検証に不要な姿勢（人体情報）を記録する処理を軽減するためである。
【００６９】
ステップＳ１１０３では、ＣＰＵ２０１は、複合現実空間の画像を動画像として保存するのか、静止画像として保存するのかを判断する。「複合現実空間の画像を動画像として保存する」とは、連続的に生成される各フレームの複合現実空間の画像を１つのファイルに格納することを意味する。「複合現実空間の画像を静止画像として保存する」とは、１つのファイルに１フレーム分の複合現実空間の画像を格納することを意味する。複合現実空間の画像を動画像として保存するのか静止画像として保存するのかは予め設定されているものとする。複合現実空間の画像を動画像として保存する場合には、処理はステップＳ１１０４に進み、複合現実空間の画像を静止画像として保存する場合には、処理はステップＳ１１０６に進む。
【００７０】
ステップＳ１１０４では、ＣＰＵ２０１は、複合現実空間の画像を動画像として外部メモリ２１１に保存する。
【００７１】
ステップＳ１１０５では、ＣＰＵ２０１は、人体情報を外部メモリ２１１に保存する。なお、ステップＳ１１０４において保存する複合現実空間の画像とステップＳ１１０５において保存する人体情報とは対応付けて保存するものとする。なお、人体情報の代わりに、該人体情報に基づいて変形させた人体モデルを保存するようにしても良いし、客観カメラ１０６による撮像画像に仮想物体及び人体モデルを重畳させた複合現実空間の画像を保存するようにしても良い。
【００７２】
ステップＳ１１０６では、ＣＰＵ２０１は、上記のステップＳ８０６においてｄ＜θの状態が連続して所定時間（例えば３秒）以上経過した、以下のステップＳ９０２において判定対象との干渉状態が連続して所定時間以上経過した、以下のステップＳ１００３において視線ベクトルと交点を有する状態が連続して所定時間以上経過した、の何れか条件が満たされているか否かを判断する。この判断の結果、何れかの条件が満たされている場合には、処理はステップＳ１００７に進み、何れの条件も満たされていない場合には、図１１のフローチャートに従った処理は完了する。
【００７３】
ステップＳ１１０７では、ＣＰＵ２０１は、複合現実空間の画像を静止画像として外部メモリ２１１に保存する。
【００７４】
ステップＳ１１０８では、ＣＰＵ２０１は、人体情報を外部メモリ２１１に保存する。なお、ステップＳ１１０７において保存する複合現実空間の画像とステップＳ１１０８において保存する人体情報とは対応付けて保存するものとする。なお、人体情報の代わりに、該人体情報に基づいて変形させた人体モデルを保存するようにしても良いし、客観カメラ１０６による撮像画像に仮想物体及び人体モデルを重畳させた複合現実空間の画像を保存するようにしても良い。
【００７５】
一方、ステップＳ１１０２では、ＣＰＵ２０１は、複合現実空間の画像を動画像として保存している場合には、ステップＳ１１０４において複合現実空間の画像の格納処理を行っているファイルを外部メモリ２１１に保存する。
【００７６】
図８に戻って、ステップＳ８１２では、ＣＰＵ２０１は、終了判定フラグ＝ＯＮであるか否かを判断する。この判断の結果、終了判定フラグ＝ＯＮであれば、処理はステップＳ５２３に進む。一方、終了判定フラグ＝ＯＦＦであれば、処理はステップＳ８０１に進む。
【００７７】
次に、上記のステップＳ６０３における処理の詳細について、同処理のフローチャートを示す図９を用いて説明する。
【００７８】
ステップＳ９０１では、ＣＰＵ２０１は、仮想空間に配置されている仮想物体のうち特定の仮想物体を、干渉判定の対象（判定対象モデル）として特定する。例えば、ＣＰＵ２０１は、上記のＣＧモデル情報１１２０において人体制御フラグの値が「ＯＮ」の仮想物体を判定対象モデルとして特定する。
【００７９】
次にステップＳ９０２では、ＣＰＵ２０１は、ユーザと判定対象モデルとの間で干渉があったか否かを判断する。この判断には様々な方法を適用することができる。例えば、ユーザの手にも光学式マーカ１０３を取り付けておき、光学式センサ１０４によってユーザの手に取り付けられている光学式マーカ１０３の３次元位置を求める。そして、ユーザの手に取り付けられている光学式マーカ１０３の３次元位置と、判定対象モデルの３次元位置と、の間の距離が規定距離以内であれば、ユーザの手と判定対象モデルとの間で干渉があったと判定することができる。また、ＨＭＤ１０１が有する右目・左目ビデオカメラ２２１により撮像された撮像画像から手の３次元位置を算出し、該算出した３次元位置と、判定対象モデルの３次元位置と、の間の距離が規定距離以内であれば、ユーザの手と判定対象モデルとの間で干渉があったと判定することができる。なお、ユーザの手の代わりに他の物体と判定対象モデルとの間の干渉を判定しても良い。例えば、ユーザが手で把持する指示具と判定対象モデルとの間の干渉を判定するようにしても良い。この場合、指示具に光学式マーカ１０３を取り付けおき、光学式センサ１０４によって指示具に取り付けられている光学式マーカ１０３の３次元位置を求める。そして、指示具に取り付けられている光学式マーカ１０３の３次元位置と判定対象モデルの３次元位置と、の間の距離が規定距離以内であれば、指示具と判定対象モデルとの間で干渉があったと判定することができる。また、ユーザの手の位置姿勢に応じてその位置姿勢を変化させる仮想物体としての指示具と判定対象モデルとの間で干渉があったか否かを判定しても良い。
【００８０】
このような判断の結果、干渉があったと判断した場合には、処理はステップＳ９０３に進み、干渉はなかったと判断した場合には、処理はステップＳ９０５に進む。
【００８１】
ステップＳ９０３では、ＣＰＵ２０１は、上記のステップＳ５２１において外部メモリ２１１に格納した人体情報を読み出す。そしてステップＳ９０４では、ＣＰＵ２０１は、上記のステップＳ８０８と同様にして、人体情報に基づいて上記の人体モデルを生成する。
【００８２】
一方、ステップＳ９０５では、ＣＰＵ２０１は、終了判定フラグの値（初期値はＯＦＦ）をＯＮに設定する。
【００８３】
ステップＳ９０４からステップＳ９０６に処理が進んだ場合、ステップＳ９０６では、ＣＰＵ２０１は、客観カメラ１０６の位置姿勢を有する視点から見える仮想物体及び人体モデルの画像を生成し、該生成した画像を、客観カメラ１０６により撮像された現実空間の画像と合成することで客観視点に基づく複合現実空間の画像を生成し、該生成した客観視点に基づく複合現実空間の画像を客観画像ディスプレイ１６０に対して送出する。
【００８４】
一方、ステップＳ９０５からステップＳ９０６に処理が進んだ場合、ステップＳ９０６では、ＣＰＵ２０１は、客観カメラ１０６の位置姿勢を有する視点から見える仮想物体の画像を生成し、該生成した画像を、客観カメラ１０６により撮像された現実空間の画像と合成することで客観視点に基づく複合現実空間の画像を生成し、該生成した客観視点に基づく複合現実空間の画像を客観画像ディスプレイ１６０に対して送出する。
【００８５】
ユーザの手とＣＧモデル１３０との間に干渉がない場合、客観画像ディスプレイ１６０の表示画面には、図１２（ａ）に示す如く、ＨＭＤ１０１を頭部に装着したユーザ１２００と、ＣＧモデル１３０と、が表示されている。ユーザの手とＣＧモデル１３０との間に干渉が発生している間は、客観画像ディスプレイ１６０には、図１２（ｂ）に示す如く、ＨＭＤ１０１を頭部に装着したユーザ１２００、ＣＧモデル１３０、に加え、ユーザ１２００の基本姿勢を表す人体モデルを人体情報に応じて変形させることで現在のユーザ１２００の姿勢に合わせた人体モデル１２０１が表示される。
【００８６】
ステップＳ９０７では、ＣＰＵ２０１は、上記の図１１のフローチャートに従った処理を行う。
【００８７】
ステップＳ９０８では、ＣＰＵ２０１は、終了判定フラグ＝ＯＮであるか否かを判断する。この判断の結果、終了判定フラグ＝ＯＮであれば、処理はステップＳ５２３に進む。一方、終了判定フラグ＝ＯＦＦであれば、処理はステップＳ９０２に進む。
【００８８】
次に、上記のステップＳ６０４における処理の詳細について、同処理のフローチャートを示す図１０を用いて説明する。
【００８９】
ステップＳ１００１では、ＣＰＵ２０１は、仮想空間に配置されている仮想物体のうち特定の仮想物体を、判定対象（判定対象モデル）として特定する。例えば、ＣＰＵ２０１は、上記のＣＧモデル情報１１２０において人体制御フラグの値が「ＯＮ」の仮想物体を判定対象モデルとして特定する。
【００９０】
ステップＳ１００２では、ＣＰＵ２０１は、視点（右の視点、左の視点の何れでも良い）の姿勢を表すベクトルを視線方向ベクトルとして求める。なお、ＨＭＤ１０１が視線センサを有する場合には、視線センサによる視線検出（アイトラッキング）により特定される視線方向を表すベクトルを視線方向ベクトルとして取得するようにしても良い。
【００９１】
ステップＳ１００３では、ＣＰＵ２０１は、視線方向ベクトルを方向ベクトルとする直線と判定対象モデルとに交点が存在するか否かを判断する。この判断の結果、交点が存在する場合には、処理はステップＳ１００４に進み、交点が存在しない場合には、処理はステップＳ１００６に進む。
【００９２】
ステップＳ１００４では、ＣＰＵ２０１は、上記のステップＳ５２１において外部メモリ２１１に格納した人体情報を読み出す。そしてステップＳ１００５では、ＣＰＵ２０１は、上記のステップＳ８０８と同様にして、人体情報に基づいて上記の人体モデルを生成する。
【００９３】
一方、ステップＳ１００６では、ＣＰＵ２０１は、終了判定フラグの値（初期値はＯＦＦ）をＯＮに設定する。
【００９４】
ステップＳ１００５からステップＳ１００７に処理が進んだ場合、ステップＳ１００７では、ＣＰＵ２０１は、客観カメラ１０６の位置姿勢を有する視点から見える仮想物体及び人体モデルの画像を生成し、該生成した画像を、客観カメラ１０６により撮像された現実空間の画像と合成することで客観視点に基づく複合現実空間の画像を生成し、該生成した客観視点に基づく複合現実空間の画像を客観画像ディスプレイ１６０に対して送出する。
【００９５】
一方、ステップＳ１００６からステップＳ１００７に処理が進んだ場合、ステップＳ１００７では、ＣＰＵ２０１は、客観カメラ１０６の位置姿勢を有する視点から見える仮想物体の画像を生成し、該生成した画像を、客観カメラ１０６により撮像された現実空間の画像と合成することで客観視点に基づく複合現実空間の画像を生成し、該生成した客観視点に基づく複合現実空間の画像を客観画像ディスプレイ１６０に対して送出する。
【００９６】
ステップＳ１００８では、ＣＰＵ２０１は、上記の図１１のフローチャートに従った処理を行う。
【００９７】
ステップＳ１００９では、ＣＰＵ２０１は、終了判定フラグ＝ＯＮであるか否かを判断する。この判断の結果、終了判定フラグ＝ＯＮであれば、処理はステップＳ５２３に進む。一方、終了判定フラグ＝ＯＦＦであれば、処理はステップＳ１００２に進む。
【００９８】
図５に戻って、次にステップＳ５２３では、ＣＰＵ２０１は、ステップＳ５０８において生成したユーザ視点に基づく複合現実空間の画像（右目用の複合現実空間の画像、左目用の複合現実空間の画像）と、ステップＳ８１０、ステップＳ９０６、ステップＳ１００７の何れかにおいて生成した客観視点に基づく複合現実空間の画像と、を対応付けて保存情報として外部メモリ２１１に保存する。また、客観視点に基づく複合現実空間の画像に人体モデルを重畳させている場合には、この人体モデルの生成時に使用した人体情報（ステップＳ８０７，ステップＳ９０３，ステップＳ１００４の何れかにおいて取得した人体情報）も、対応付けて保存情報として外部メモリ２１１に保存する。保存情報の構成例を図７（ｄ）に示す。
【００９９】
図７（ｄ）に示す保存情報１１４０における欄１１４１には、１フレーム分のユーザ視点に基づく複合現実空間の画像に対する固有のＩＤ（登録ＩＤ）が登録されており、欄１１４２には、１フレーム分のユーザ視点に基づく複合現実空間の画像を格納した日時が登録されており、欄１１４３には、人体情報が登録されており、欄１１４４には、ユーザ視点に基づく複合現実空間の画像のファイル名（ファイルのパスを含む）と、客観視点に基づく複合現実空間の画像のファイル名（ファイルのパスを含む）と、が登録されている。なお、人体情報の代わりに、該人体情報に基づいて変形させた人体モデルを欄１１４３に登録するようにしても良い。
【０１００】
また、保存情報１１４０の各レコードには、現在のモード設定１１３０や保存対象となった仮想物体のモデルＩＤ（欄１１２１）を合わせて保存することが望ましい。これは後から検証する際に、どのモデルに対してどのようなタイミングで保存がされたのかを特定することができるためである。
【０１０１】
なお、ステップＳ５２３における保存は、図１１における保存処理により保存された保存情報を確定させるものであり、外部メモリ２１１に各種情報を保存させる。本実施形態では、ステップＳ５２３にて図１１で保存した情報を確定するような処理となっているが、ステップＳ５２３の処理を図１１内で行ってもよい。すなわち、ステップＳ５２３を省略することも可能であるとともに、図１１とステップＳ５２３は不整合のない処理である。
【０１０２】
ステップＳ５２４では、ＣＰＵ２０１は、外部メモリ２１１に保存した上記の保存情報をディスプレイ２１０等の表示装置に表示する。ＰＣ１００の操作者は、表示された保存情報に含まれる何れかの行を入力デバイス２０９などを操作して指定することができ、ＣＰＵ２０１は、操作者によって指定した行に対応する人体情報、ユーザ視点に基づく複合現実空間の画像、客観視点に基づく複合現実空間の画像、を外部メモリ２１１から読み出してディスプレイ２１０に表示する。なお、これらの情報の表示形態は特定の表示形態に限るものではないし、これらの情報の全てを表示することに限るものではない。また、これらの情報に加えて／代えて他の情報を表示しても良い。
【０１０３】
保存情報の表示例を図１４に示す。図１４（ａ）の表示例は、ＣＧモデル１３０の下側に位置するユーザ視点に基づく複合現実空間の画像の右上に人体情報に基づいて生成した人体モデル１４０２を重畳させて表示した例を示している。なお、複合現実空間の画像と人体モデルとを重畳させて表示することに限るものではなく、それぞれ別個の表示領域に表示しても良い。図１４（ｂ）の表示例は、ＣＧモデル１３０の下側に位置するユーザ視点に基づく複合現実空間の画像の右上に客観視点に基づく複合現実空間の画像１４５０を重畳させて表示した例を示している。なお、ユーザ視点に基づく複合現実空間の画像に客観視点に基づく複合現実空間の画像を重畳させて表示することに限るものではなく、それぞれ別個の表示領域に表示しても良い。
【０１０４】
ユーザの体勢を検証する際には、ユーザの体勢が客観的に見える画像（客観視点に基づく複合現実空間の画像）と、その時のユーザの見ている画像（ユーザ視点に基づく複合現実空間の画像）と、表示されることが望ましい。
【０１０５】
人体情報に基づく人体モデルを生成して、視点から見た人体モデルの画像を生成する処理をフレームごとに行うことは、ＰＣ１００に大きな処理負担を与えることになる。本実施形態によれば、上記の条件が満たされた場合に人体情報に基づく人体モデルの生成及び視点から見た人体モデルの画像の生成、を行うので、ＰＣ１００の処理負担を軽減させることができる。
【０１０６】
また、本実施形態によれば、ユーザによる複合現実空間の体験に係る様々な情報を容易に記録することができる。このような記録によれば、例えば、人体情報を用いてユーザの姿勢（無理な体勢でないか）を検証する際には有効となる。
【０１０７】
最後に、上記のＰＣ１００の機能構成例について、図３のブロック図を用いて説明する。なお、図３の各機能部はハードウェアで実装しても良いし、ソフトウェア（コンピュータプログラム）で実装しても良い。前者の場合、例えばこのようなハードウェアをＨＭＤ１０１に搭載することで、ＨＭＤ１０１は、ＰＣ１００が行うものとして上述した各処理をも実行することができる。後者の場合、このようなコンピュータプログラムを外部メモリ２１１に保存しておき、ＣＰＵ２０１がこのコンピュータプログラムを適宜ＲＡＭ２０３に読み出して実行することで、対応する機能部の機能を実現することができる。
【０１０８】
取得部３０１は、ＰＣ１００に入力される各種のデータを取得する。ユーザ視点画像生成部３０２は、取得部３０１が取得したデータに基づいてユーザ視点に基づく複合現実空間の画像を生成してＨＭＤ１０１に送出する。判断部３０３は、人体情報に基づく上記の人体モデルを生成するのか否かを判断する。客観視点画像生成部３０４は、客観視点に基づく複合現実空間の画像を生成して客観画像ディスプレイ１６０に送出する。保存部３０５は、外部メモリ２１１への各種の情報の格納処理を行う。
【０１０９】
つまり、本実施形態に係る画像処理装置は、ユーザの人体の姿勢を計測することで得られる人体情報から該ユーザの人体の姿勢を表す人体モデルを生成するか否かを、該ユーザの位置若しくは視線方向に基づいて判断し、人体情報から人体モデルを生成すると判断した場合に、人体情報から人体モデルを生成し、該人体モデルを含む画像を生成して表示装置に出力する。
【０１１０】
［第２の実施形態］
第１の実施形態では、ＨＭＤ１０１とＰＣ１００とを別個の装置としているが、ＨＭＤ１０１とＰＣ１００とを一体化させ、ＨＭＤ１０１は自機が行うものとして上述した各処理だけでなく、ＰＣ１００が行うものとして説明した上記の各処理も行うようにしても良い。
【０１１１】
第１の実施形態では、ＨＭＤ１０１はビデオシースルー方式の頭部装着型表示装置であるものとして説明した。しかし、ＨＭＤ１０１として光学シースルー方式の頭部装着型表示装置を使用しても良い。
【０１１２】
また、ユーザの頭部に装着されているＨＭＤ１０１に加えて若しくは代えて他の表示装置、例えばタブレット端末装置やスマートフォン等の携帯端末装置に対してユーザ視点に基づく複合現実空間の画像を出力するようにしても良い。この場合、携帯端末装置は、該携帯端末装置に備わっているセンサやアプリケーションを使用することで該携帯端末装置の位置姿勢をユーザ視点として取得することができる。ユーザ視点に基づく複合現実空間の画像はＰＣ１００が生成しても良いし、携帯端末装置側で生成しても良い。
【０１１３】
また、第１の実施形態では、現実空間と仮想空間とを合成した複合現実空間をユーザに提示する複合現実感提示システム（ＭＲシステム）を例にとり説明したが、仮想空間のみをユーザに提示する、所謂ＶＲシステムに適用しても構わない。その場合、現実空間の撮像や現実空間の画像との合成に係る処理は不要となる。
【０１１４】
また、客観カメラ１０６の代わりに、他のユーザの頭部に装着されているＨＭＤ１０１に備わっている右目・左目ビデオカメラ２２１を使用しても構わない。
【０１１５】
また、第１の実施形態では説明を簡単にするために、１台のＰＣ１００に１台のＨＭＤ１０１が接続されているものとしたが、１台のＰＣ１００に２台以上のＨＭＤ１０１を接続するようにしても良い。
【０１１６】
［第３の実施形態］
第１の実施形態では、ステップＳ８０６においてｄ＜θの状態が連続して所定時間（例えば３秒）以上経過した、ステップＳ９０２において判定対象との干渉状態が連続して所定時間以上経過した、ステップＳ１００３において視線ベクトルと交点を有する状態が連続して所定時間以上経過した、の何れか条件が満たされている場合に、複合現実空間の画像を静止画像として保存すると共に人体情報を保存していた。しかし、複合現実空間の画像を静止画像として保存すると共に人体情報を保存するための条件はこれらの条件に限らない。例えば、上記のステップＳ８０６においてｄ＜θとなった、ステップＳ９０２において判定対象との干渉があった、ステップＳ１００３において視線ベクトルと交点があった、の何れか条件が満たされている場合に、複合現実空間の画像を静止画像として保存すると共に人体情報を保存するようにしても良い。また、第１の実施形態と同様に、人体情報に加えて若しくは代えて、人体モデルや客観視点に基づく複合現実空間の画像など、他の情報を保存するようにしても良い。
【０１１７】
また、第１の実施形態では、複合現実空間の画像を動画像として保存する場合、保存のための条件は特に設けていなかったが、静止画像として保存する場合と同様に、様々な条件を設け、設けた条件が満たされた場合に、複合現実空間の画像を動画像として保存すると共に人体情報を保存するようにしても良い。また、２以上の条件が満たされた場合に複合現実空間の画像（動画像でも静止画像でも良い）及び人体情報の保存を行うようにしても良い。また、第１の実施形態では、様々な情報の保存ステップを設けたが、状況に応じて幾つかの保存ステップは省略しても良い。
【０１１８】
［その他の実施形態］
以上、本発明の実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１１９】
また、本発明におけるプログラムは、フローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は処理方法をコンピュータが実行可能なプログラムが記憶されている。
【０１２０】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１２１】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【０１２２】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク、ソリッドステートドライブ等を用いることができる。
【０１２３】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２４】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２５】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１２６】
さらに、本発明を達成するためのプログラムを通信線上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１２７】
なお、以上説明した各実施形態の一部若しくは全部を適宜組み合わせて使用しても構わないし、以上説明した各実施形態の一部若しくは全部を選択的に使用しても構わない。
【図１】
2019040357.tif 000003
【図２】
2019040357.tif 000004
【図３】
2019040357.tif 000005
【図４】
2019040357.tif 000006
【図５】
2019040357.tif 000007
【図６】
2019040357.tif 000008
【図７】
2019040357.tif 000009
【図８】
2019040357.tif 000010
【図９】
2019040357.tif 000011
【図１０】
2019040357.tif 000012
【図１１】
2019040357.tif 000013
【図１２】
2019040357.tif 000014
【図１３】
2019040357.tif 000015
【図１４】
2019040357.tif 000016