(57)【特許請求の範囲】
【請求項１】
画像処理装置であって、
頭部装着型表示装置のユーザの視点の位置を取得する取得手段と、
前記画像処理装置の動作モードとして第１のモードが設定されている間は、ユーザにより設定された位置姿勢を有する第１の視点から見える仮想物体を含む仮想空間の画像を生成して、前記頭部装着型表示装置とは異なる表示装置に出力する第１の生成手段と、
前記画像処理装置の動作モードが前記第１のモードから第２のモードに切り替えられた場合、該切り替えられた時点での前記頭部装着型表示装置のユーザの視点の位置を基準位置とし、該第２のモードが設定されている間は、該切り替えられた時点での前記第１の視点の位置と、前記基準位置と、前記取得手段が取得した前記頭部装着型表示装置のユーザの現在の視点の位置と、に基づいて決定される第２の視点から見える仮想空間の画像を生成して該頭部装着型表示装置に出力する第２の生成手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記取得手段は、更に、前記頭部装着型表示装置のユーザの視点の姿勢を取得し、
前記第２の生成手段は、前記画像処理装置の動作モードとして前記第２のモードが設定されている間は、更に、前記取得手段が取得したユーザの視点の姿勢に基づいて前記第２の視点を決定し、該第２の視点から見える仮想空間の画像を生成して出力することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２の生成手段は、
前記画像処理装置の動作モードとして前記第２のモードが設定されている間は、更に、前記取得手段が取得したユーザの視点の姿勢を前記第１のモード時にユーザにより設定された姿勢及び前記画像処理装置の動作モードが前記第２のモードに切り替わった際の前記頭部装着型表示装置のユーザの視点の姿勢を用いて修正した修正姿勢に基づいて、前記第２の視点を決定し、該第２の視点から見える仮想空間の画像を生成して出力することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
更に、
現実空間の画像を取得する手段を備え、
前記第２の生成手段は、該第２の生成手段が生成した仮想空間の画像を、前記現実空間の画像と合成してから出力する
ことを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の取得手段が、頭部装着型表示装置のユーザの視点の位置を取得する取得工程と、
前記画像処理装置の第１の生成手段が、前記画像処理装置の動作モードとして第１のモードが設定されている間は、ユーザにより設定された位置姿勢を有する第１の視点から見える仮想物体を含む仮想空間の画像を生成して前記頭部装着型表示装置とは異なる表示装置に出力する第１の生成工程と、
前記画像処理装置の第２の生成手段が、前記画像処理装置の動作モードが前記第１のモードから第２のモードに切り替えられた場合、該切り替えられた時点での前記頭部装着型表示装置のユーザの視点の位置を基準位置とし、該第２のモードが設定されている間は、該切り替えられた時点での前記第１の視点の位置と、前記基準位置と、前記取得工程で取得した前記頭部装着型表示装置のユーザの現在の視点の位置と、に基づいて決定される第２の視点から見える仮想空間の画像を生成して該頭部装着型表示装置に出力する第２の生成工程と
を備えることを特徴とする画像処理方法。
【請求項６】
コンピュータを請求項１乃至４の何れか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間若しくは複合現実空間を提供する技術に関するものである。
【背景技術】
【０００２】
近年、現実空間と仮想空間との繋ぎ目のない結合を目的とした、複合現実感（ＭＲ：Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）に関する研究が盛んに行われている。複合現実感の提示を行う画像表示装置は、例えば次のような構成を有する装置である。即ち、ビデオカメラ等の撮像装置が撮像した現実空間の画像上に、撮像装置の位置及び姿勢に応じて生成した仮想空間の画像（例えばコンピュータグラフィックスにより描画された仮想物体や文字情報等）を重畳描画した画像を表示する装置である。このような装置には、例えば、ＨＭＤ（ヘッドマウントディスプレイ、頭部装着型ディスプレイ）を用いることができる。
【０００３】
画像表示装置は、操作者の頭部に装着された光学シースルー型ディスプレイに、操作者の視点の位置及び姿勢に応じて生成した仮想空間の画像を表示する光学シースルー方式によっても実現される。
【０００４】
一方、仮想物体を作成する際には、市販のＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）や３ＤＣＧソフト（三次元コンピューターグラフィックスソフト）を一般的には利用している（非特許文献１）。さらに、３ＤＣＧソフトを生かしたまま仮想現実空間や複合現実空間の体験を提供する手法も開示されている（特許文献１）。以上の技術を組み合わせることで、ＣＡＤや３ＤＣＧソフトと仮想現実空間や複合現実空間を組み合わせて操作者に体験させる事が出来る。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平２００７−２９９０６２号公報
【非特許文献】
【０００６】
【非特許文献１】株式会社ワークスコーポレーション  編集、ＣＧ＆映像しくみ事典、２００３年１２月３１日発行、ｐｐ．９８−１０１
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来の方法では、ＣＧソフトで操作者が確認していた仮想物体を複合現実空間で確認を行う際に、ＣＧソフトで操作者が最後に確認した視点と複合現実空間の視点が全く違うため、仮想物体がどこにあるか分からなくなるという課題があった。
【０００８】
本発明はこのような問題に鑑みてなされたものであり、仮想空間の画像を生成するための視点を切り替えて使用する場合に、切り替えの前後で視界の変化を極力抑えるための技術を提供する。
【課題を解決するための手段】
【０００９】
本発明の一様態によれば、画像処理装置は、画像処理装置であって、
頭部装着型表示装置のユーザの視点の位置を取得する取得手段と、
前記画像処理装置の動作モードとして第１のモードが設定されている間は、ユーザにより設定された位置姿勢を有する第１の視点から見える仮想物体を含む仮想空間の画像を生成して、前記頭部装着型表示装置とは異なる表示装置に出力する第１の生成手段と、
前記画像処理装置の動作モードが前記第１のモードから第２のモードに切り替えられた場合、該切り替えられた時点での前記頭部装着型表示装置のユーザの視点の位置を基準位置とし、該第２のモードが設定されている間は、該切り替えられた時点での前記第１の視点の位置と、前記基準位置と、前記取得手段が取得した前記頭部装着型表示装置のユーザの現在の視点の位置と、に基づいて決定される第２の視点から見える仮想空間の画像を生成して該頭部装着型表示装置に出力する第２の生成手段と
を備えることを特徴とする。
【発明の効果】
【００１０】
本発明の構成によれば、仮想空間の画像を生成するための視点を切り替えて使用する場合に、切り替えの前後で視界の変化を極力抑えるための技術を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】システムの機能構成例を示すブロック図。
【図２】コンピュータのハードウェア構成例を示すブロック図。
【図３】画像処理装置１０００が行う処理のフローチャート。
【図４】仮想空間を示す図。
【図５】仮想空間の画像を示す図。
【図６】画像処理装置１０００が行う処理のフローチャート。
【図７】仮想空間を示す図。
【図８】システムの機能構成例を示すブロック図。
【図９】画像処理装置８０００が行う処理のフローチャート。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００１３】
［第１の実施形態］
先ず、本実施形態に係るシステムの機能構成例について、図１のブロック図を用いて説明する。図１に示す如く、本実施形態に係るシステムは、磁界発生装置１２００、頭部装着型表示装置（以下、ＨＭＤ：Head Mounted Displayと呼称する）１１００、画像処理装置１０００、入力部１３００、表示部１４００、を有する。
【００１４】
先ず、ＨＭＤ１１００について説明する。ＨＭＤ１１００は、ユーザの頭部に装着することで、該ユーザの眼前に画像を提供する表示装置１１１０と、自身の位置姿勢を計測するための磁気レシーバ１１２０と、を有する。
【００１５】
表示装置１１１０には表示画面が取り付けられており、該表示画面は、ユーザが該表示装置１１１０を自身の頭部に装着した場合に該ユーザの右目、左目の眼前に位置するように該表示装置１１１０に取り付けられている。該表示画面には、画像処理装置１０００から出力された画像が表示される。従ってユーザの眼前には画像処理装置１０００が生成した画像が提供されることになる。
【００１６】
磁界発生装置１２００は、自身の周囲に磁界を発生させる装置である。磁気レシーバ１１２０は、この磁界発生装置１２００が発する磁場において、磁気レシーバ１１２０自身の位置姿勢に応じた磁気の変化を検知し、検知した結果を示す信号を画像処理装置１０００に出力する。ここで、ＨＭＤ１１００と画像処理装置１０００との間の通信は有線通信であっても良いし、無線通信であっても良い。
【００１７】
次に、画像処理装置１０００について説明する。位置姿勢計測部１０１０は磁気レシーバ１１２０からの信号を受けると、該信号に基づいて、世界座標系における磁気レシーバ１１２０の位置姿勢を求める。世界座標系とは、現実空間中の所定の位置を原点とし、この原点の位置で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系のことである。
【００１８】
そして位置姿勢計測部１０１０は、世界座標系における磁気レシーバ１１２０の位置姿勢に、「磁気レシーバ１１２０と表示装置１１１０の左目用の表示画面との間の位置姿勢関係」を加えることで、世界座標系における左目用の視点位置姿勢を求める。そして位置姿勢計測部１０１０は、この求めた世界座標系における左目用の視点位置姿勢をデータ記憶部１０４０に格納する。
【００１９】
また位置姿勢計測部１０１０は、世界座標系における磁気レシーバ１１２０の位置姿勢に、「磁気レシーバ１１２０と表示装置１１１０の右目用の表示画面との間の位置姿勢関係」を加えることで、世界座標系における右目用の視点位置姿勢を求める。そして位置姿勢計測部１０１０は、この求めた世界座標系における右目用の視点位置姿勢をデータ記憶部１０４０に格納する。
【００２０】
ここで、「磁気レシーバ１１２０と表示装置１１１０の左目用の表示画面との間の位置姿勢関係」、「磁気レシーバ１１２０と表示装置１１１０の右目用の表示画面との間の位置姿勢関係」は何れも、予め測定されている既知の値である。この既知の値は予めデータ記憶部１０４０に格納されている。
【００２１】
このように、本実施形態では、磁気センサを用いて視点（右目用の表示画面、左目用の表示画面）の位置姿勢を計測しているが、位置姿勢を計測する方法には様々な方法があり、如何なる方法を採用しても構わない。例えば、赤外線センサ、超音波センサ、光学式センサ等を用いて位置姿勢の計測を行うようにしても構わない。また、表示装置１１１０に取り付けた撮像装置によって撮像された画像から撮像装置の位置姿勢（表示装置１１１０の位置姿勢）を求めるようにしても構わない。また、機械的に計測を行うようにしても構わない。
【００２２】
なお、右目用の表示画面に表示する画像を生成する処理と、左目用の表示画面に表示する画像を生成する処理とは、それぞれの視点（右目用の表示画面、左目用の表示画面）の位置姿勢が異なるだけで基本的には同じである。然るに、以下では、右目用の表示画面、左目用の表示画面のうち何れか一方の視点（表示画面）に対して画像を提供する処理については説明するものの、他方の視点については一方の視点に対して行った処理と同様の処理を行うため、説明は省略する。
【００２３】
位置姿勢入力部１０２０は、ユーザが入力部１３００を操作することで入力した視点の位置姿勢をデータ記憶部１０４０に格納する。詳しくは後述するが、ユーザが入力部１３００を操作して入力し、位置姿勢入力部１０２０がデータ記憶部１０４０に格納する視点の位置姿勢は、アプリモード時に仮想空間の画像を生成する為に用いるものであり、アプリモード用の視点の位置姿勢である。
【００２４】
モード設定部１０６０は、画像処理装置１０００の動作モードを、ユーザが入力部１３００を操作することで入力したモード（ＶＲモード、アプリモードの何れか一方）に設定し、該設定したモードを示す情報をデータ記憶部１０４０に格納する。ユーザによるモード入力とは、換言すれば、仮想空間の画像を生成するために用いる視点の位置姿勢として、どのような視点の位置姿勢を用いるのかを選択する操作である。
【００２５】
アプリモードが設定された場合、仮想空間の画像を生成するために用いる視点の位置姿勢として、位置姿勢入力部１０２０がデータ記憶部１０４０に格納した視点の位置姿勢、即ち、ユーザにより指定された視点の位置姿勢を用いる。
【００２６】
ＶＲモードが設定された場合、位置姿勢入力部１０２０がデータ記憶部１０４０に格納した視点の位置姿勢と、位置姿勢計測部１０１０がデータ記憶部１０４０に格納した視点の位置姿勢と、から新たな位置姿勢を求める。そしてこの新たな位置姿勢を、仮想空間の画像を生成するために用いる視点の位置姿勢として用いる。
【００２７】
位置姿勢算出部１０３０は、ＶＲモードが設定されたときに動作するものであり、ＶＲモード時に仮想空間の画像を生成するために用いる視点の位置姿勢（ＶＲモード用の視点位置姿勢）を算出する処理を行う。位置姿勢算出部１０３０の動作の詳細な説明は後述する。そして位置姿勢算出部１０３０は、算出した視点の位置姿勢をデータ記憶部１０４０に格納する。
【００２８】
仮想空間生成部１０７０は、データ記憶部１０４０に格納されている仮想空間のデータを用いて、仮想空間を構築する。仮想空間のデータには、仮想空間を構成する各オブジェクトに係るデータや、該仮想空間を照射する光源に係るデータなどが含まれている。
【００２９】
画像生成部１０５０は、ＶＲモードが設定されている場合には、ＶＲモード用の視点の位置姿勢をデータ記憶部１０４０から選択し、アプリモードが設定されている場合には、アプリモード用の視点の位置姿勢をデータ記憶部１０４０から選択する。そして画像生成部１０５０は、データ記憶部１０４０から選択した視点の位置姿勢を用いて、該視点から見た、仮想空間生成部１０７０が構築した仮想空間の画像を生成する。なお、所定の位置姿勢を有する視点から見える仮想空間の画像を生成する処理については周知の技術であるために、これに係る詳細な説明は省略する。そして画像生成部１０５０は、生成した仮想空間の画像を表示装置１１１０（表示画面）に対して送出する。なお、画像生成部１０５０は、生成した仮想空間の画像を、表示装置１１１０に加えて、表示部１４００に送出するようにしても構わない。また、例えば、ＶＲモード、アプリモードの何れが設定されているのかに応じて、生成した仮想空間の画像を表示装置１１１０、表示部１４００の何れかに送出するようにしても構わない。また、仮想空間の画像の出力先は以上に示した対象に限るものではなく、例えば、タブレット・スマートフォン等の表示端末であっても良い。
【００３０】
データ記憶部１０４０は上記の通り、計算されたデータや取得したデータを読み出し可能に格納したり、既知の情報として予め確定しているデータを格納するために用いるメモリであり、ＲＡＭやハードディスクドライブ装置などにより構成されている。
【００３１】
入力部１３００は、マウスやキーボード、タッチパネル式の画面などにより構成されており、ユーザが操作することで上記の通り、様々な指示やデータなどを入力することができる。なお、このように、様々な指示やデータを入力することができるのであれば、入力部１３００は如何なる装置であってもよく、例えばユーザのジェスチャを認識する装置であってもよく、この場合、認識したジェスチャに応じた指示やデータを入力することになる。もちろん、入力部１３００は、２以上の装置の組み合わせによって形成されても良い。
【００３２】
次に、画像処理装置１０００が仮想空間の画像を生成して出力するために行う処理について、同処理のフローチャートを示す図３を用いて説明する。先ず、ステップＳ３０００では、モード設定部１０６０は、以降の処理で用いるフラグの値を０に初期化する。このフラグの値はデータ記憶部１０４０内で管理されているものとする。
【００３３】
次に、ステップＳ３０１０では、モード設定部１０６０は、入力部１３００からモードを設定する指示を受けたか否かを判断する。この判断の結果、モードを設定する指示を受けた場合には、処理はステップＳ３１００に進み、モードを設定する指示を受けていない場合には、処理はステップＳ３０２０に進む。
【００３４】
ステップＳ３０２０では、モード設定部１０６０は、画像処理装置１０００の現在の動作モードがＶＲモードであるのか、アプリモードであるのかを判断する。この判断の結果、ＶＲモードである場合には、処理はステップＳ３２２０に進み、アプリモードである場合には、処理はステップＳ３０３０に進む。
【００３５】
ステップＳ３０３０では、画像生成部１０５０は、位置姿勢入力部１０２０によってデータ記憶部１０４０に格納されたアプリモード用の視点の位置姿勢を、該データ記憶部１０４０から読み出す。
【００３６】
そしてステップＳ３０４０では、仮想空間生成部１０７０は、データ記憶部１０４０に格納されている仮想空間に係るデータを読み出し、該読み出したデータを用いて仮想空間を構築する。
【００３７】
そしてステップＳ３０５０では、画像生成部１０５０は、ステップＳ３０４０で構築した仮想空間を、ステップＳ３０３０でデータ記憶部１０４０から読み出した位置姿勢を有する視点から見た場合の画像を生成する。そして画像生成部１０５０は、この生成した仮想空間の画像を、表示装置１１１０や表示部１４００に対して送出する。
【００３８】
一方、ステップＳ３１００では、モード設定部１０６０は、入力部１３００から指示されたモードを示す情報をデータ記憶部１０４０に格納し、該モードがＶＲモードであるのか、それともアプリモードであるのかを判断する。この判断の結果、ＶＲモードである場合には、処理はステップＳ３２００に進み、アプリモードである場合には、処理はステップＳ３１１０に進む。ステップＳ３１１０では、モード設定部１０６０は、画像処理装置１０００の動作モードをアプリモードに設定する。そしてステップＳ３０３０以降の処理を行う。
【００３９】
一方、ステップＳ３２００では、モード設定部１０６０は、画像処理装置１０００の動作モードをＶＲモードに設定する。そしてステップＳ３２１０では、モード設定部１０６０は、フラグの値を１に設定する。
【００４０】
ステップＳ３２２０では、位置姿勢計測部１０１０は、この段階で磁気レシーバ１１２０から受けた信号に基づいて上記の処理を行うことで、視点の位置姿勢を求める。ステップＳ３２３０では、モード設定部１０６０は、フラグの値が１であるのか、それとも０であるのかを判断する。この判断の結果、フラグの値が１であれば、処理はステップＳ３３００に進み、フラグの値が０であれば、処理はステップＳ３２４０に進む。
【００４１】
ステップＳ３３００では、位置姿勢計測部１０１０は、ステップＳ３２２０で求めた視点の位置姿勢を、以下の処理で基準の位置姿勢として使用すべく、該位置姿勢を基準位置姿勢としてデータ記憶部１０４０に格納する。そしてステップＳ３３１０では、モード設定部１０６０は、フラグの値を０に設定する。
【００４２】
ステップＳ３２４０では、位置姿勢算出部１０３０は、以下に説明する処理を実行することで、ＶＲモード用の視点の位置姿勢を求める。ここで、具体例を挙げて、ステップＳ３２４０においてＶＲモード用の視点の位置姿勢を求める処理について説明する。
【００４３】
図４（Ａ）、（Ｃ）は、世界座標系におけるＸ−Ｙ平面に対して垂直な方向からＺ軸に沿って該平面を俯瞰して観察した仮想空間を示す図（紙面に垂直な方向がＺ軸方向）である。また、図４（Ｂ）、（Ｄ）は、世界座標系におけるＸ−Ｚ平面に対して垂直な方向からＹ軸に沿って該平面を俯瞰して観察した仮想空間を示す図（紙面に垂直な方向がＹ軸方向）である。
【００４４】
アプリモードでは図４（Ａ），（Ｂ）に示す如く、入力部１３００によって位置姿勢が指定された視点４１１０を設定し、該視点４１１０に対する視錐台４１２０内の空間（仮想物体４５００を含む）の画像を仮想空間の画像として生成する。この視点４１１０が、いわゆる「アプリモード用の視点」である。
【００４５】
ここで、アプリモードにおいて視点の位置姿勢が図４（Ａ），（Ｂ）に示したような状態で、画像処理装置１０００の動作モードがＶＲモードに切り替わったとする。ここで、ＶＲモードに切り替わると、仮想空間の画像を生成するために用いる視点が位置姿勢計測部１０１０が求めた位置姿勢を有する視点に切り替わったとする。図４（Ｃ）、（Ｄ）において視点４２１０は、位置姿勢計測部１０１０によってその位置姿勢が求められた視点である。このとき、アプリモード用の視点４１１０の視界（４１２０）には仮想物体４５００が含まれているが、視点４２１０の視界（４２２０）には仮想物体４５００は含まれていない。
【００４６】
そこで位置姿勢算出部１０３０は、アプリモード用の視点４１１０、位置姿勢計測部１０１０が計測した視点４２１０、ＶＲモードに切り替わった直後の視点、からＶＲモード用の視点４３１０（仮想物体４５００を視界（４３２０）に納める視点）を決定する。
【００４７】
ここで、データ記憶部１０４０に格納されている最新の（ＶＲモードに切り替わる直前の）アプリモード用の視点４１１０の位置を（ｘ０，ｙ０，ｚ０）とする。また、ステップＳ３３００でデータ記憶部１０４０に格納された視点位置（基準位置姿勢のうち位置成分）を（ｘｂ、ｙｂ、ｚｂ）とする。また、ステップＳ３２２０で求めた現在の視点４２１０の位置を（ｘ１，ｙ１，ｚ１）とする。
【００４８】
このとき、ＶＲモード用の視点４３１０の位置（ｘｖ、ｙｖ、ｚｖ）は（ｘｖ、ｙｖ、ｚｖ）＝（ｘ０＋（ｘ１−ｘｂ）、ｙ０＋（ｙ１−ｙｂ）、ｚ０＋（ｚ１−ｚｂ））として求める。
【００４９】
ステップＳ３２４０では、位置姿勢算出部１０３０は、このような計算を行うことで、ＶＲモード用の視点の位置を求める。ＶＲモード用の視点の姿勢に関しては、例えば、ステップＳ３２２０で求めた視点の姿勢（ヨー・ロール・ピッチ角）を採用しても構わないし、この姿勢に基づいて新たな姿勢を求め、これを採用しても構わない。そして位置姿勢算出部１０３０は、このようにして求めたＶＲモード用の視点の位置姿勢をデータ記憶部１０４０に格納する。
【００５０】
ステップＳ３２５０では、画像生成部１０５０は、ステップＳ３２４０でデータ記憶部１０４０に格納した、ＶＲモード用の視点の位置姿勢を、該データ記憶部１０４０から読み出す。
【００５１】
そしてステップＳ３２６０では、仮想空間生成部１０７０は、データ記憶部１０４０に格納されている仮想空間に係るデータを読み出し、該読み出したデータを用いて仮想空間を構築する。
【００５２】
そしてステップＳ３２７０では、画像生成部１０５０は、ステップＳ３２６０で構築した仮想空間を、ステップＳ３２５０でデータ記憶部１０４０から読み出した位置姿勢を有する視点から見た場合の画像を生成する。そして画像生成部１０５０は、この生成した仮想空間の画像を、表示装置１１１０や表示部１４００に対して送出する。
【００５３】
図４（Ａ）、（Ｂ）の状態において視点４１１０に基づいて生成される仮想空間の画像の例を図５（Ａ）に示す。視点４１１０の視界には仮想物体４５００が含まれているので、図５（Ａ）に示す如く、視点４１１０に基づく仮想空間の画像内には仮想物体４５００が含まれている。
【００５４】
ＶＲモードに切り替えた場合、位置姿勢計測部１０１０が求めた位置姿勢を有する視点４２１０に基づく仮想空間の画像（図５（Ｂ））を生成しても、視点４２１０の視界には仮想物体４５００は含まれないので、該画像には仮想物体４５００は含まれていない。しかし本実施形態の場合、アプリモード用の視点との位置関係が、基準位置と位置姿勢計測部１０１０が求めた位置との間の位置関係となるような視点をＶＲモード用の視点とするため、図５（Ｃ）に示す如く、画像には仮想物体４５００が含まれている。
【００５５】
図３に戻って、次に、ユーザが入力部１３００を用いて処理を終了する指示を入力したことを検知するなど、処理の終了条件が満たされたことを画像処理装置１０００（不図示の制御部）が検知した場合には、処理はステップＳ３０６０を介して終了する。一方、処理の終了条件が満たされていない限りは、処理はステップＳ３０６０を介してステップＳ３０１０に戻り、以降の処理が繰り返される。
【００５６】
このように、本実施形態に係る画像処理装置は、ユーザにより設定された視点の位置姿勢を取得（第１の取得）すると共に、頭部装着型表示装置の位置姿勢を取得（第２の取得）する構成を有する。
【００５７】
そして、画像処理装置の動作モードとして第１のモードが設定されている間は、第１の取得で取得した位置姿勢を有する視点から見える仮想空間の画像を生成して出力する（第１の生成）。
【００５８】
ここで、画像処理装置の動作モードが第１のモードとは異なる第２のモードに切り替わったことを検知すると、該検知の時点で第２の取得で取得した位置を基準位置としてメモリに記録する。そして、第２のモードが設定されている間は、第１の取得で取得した位置との位置関係が、基準位置と第２の取得で取得した位置との間の位置関係となるような位置を視点位置とする視点から見える仮想空間の画像を生成して出力する（第２の生成）。  
【００５９】
［第２の実施形態］
本実施形態ではＶＲモード用の視点の位置姿勢を、アプリモード用の視点位置姿勢、ＶＲモードに切り替わった直後に位置姿勢計測部１０１０が求めた視点位置姿勢、ＶＲモードに切り替わった以降の位置姿勢計測部１０１０が求めた視点位置姿勢から求める。以下では、第１の実施形態との差分のみについて説明し、以下で特に触れない限りは、第１の実施形態と同様であるとする。
【００６０】
本実施形態に係る画像処理装置１０００が仮想空間の画像を生成して出力するために行う処理について、同処理のフローチャートを示す図６を用いて説明する。図６において、図３と同じ処理を行う処理ステップには同じステップ番号を付しており、該ステップにおける処理の説明は省略する。
【００６１】
ステップＳ６０２０では、位置姿勢算出部１０３０は、以下に説明する処理を実行することで、ＶＲモード用の視点の位置姿勢を求める。ステップＳ６０２０における処理について、図７を用いて説明する。図７において、図４と同じ部分には同じ参照番号を付しており、該部分に係る説明は省略する。
【００６２】
図７（Ａ）、（Ｃ）は、世界座標系におけるＸ−Ｙ平面に対して垂直な方向からＺ軸に沿って該平面を俯瞰して観察した仮想空間を示す図（紙面に垂直な方向がＺ軸方向）である。また、図７（Ｂ）、（Ｄ）は、世界座標系におけるＸ−Ｚ平面に対して垂直な方向からＹ軸に沿って該平面を俯瞰して観察した仮想空間を示す図（紙面に垂直な方向がＹ軸方向）である。
【００６３】
視点７１１０は、位置姿勢計測部１０１０によってその位置姿勢が求められた視点であり、７１２０は、視点７１１０の視界を示す視錐台である。本実施形態では、アプリモード用の視点４１１０、位置姿勢計測部１０１０が計測した視点７１１０、ＶＲモードに切り替わった直後の視点、からＶＲモード用の視点７１４０を決定する。
【００６４】
ここで、データ記憶部１０４０に格納されている最新の（ＶＲモードに切り替わる直前の）アプリモード用の視点４１１０の位置を（ｘ０，ｙ０，ｚ０）、姿勢（ヨー・ロール・ピッチ角）を（Ｙ０，Ｒ０，Ｐ０）とする。また、ステップＳ３３００でデータ記憶部１０４０に格納された視点位置（基準位置姿勢のうち位置成分）を（ｘｂ、ｙｂ、ｚｂ）、視点姿勢（基準位置姿勢のうち姿勢成分）を（Ｙｂ，Ｒｂ，Ｐｂ）とする。また、ステップＳ３２２０で求めた現在の視点７１１０の位置を（ｘ１，ｙ１，ｚ１）、姿勢を（Ｙ１，Ｒ１，Ｐ１）とする。
【００６５】
このとき、ＶＲモード用の視点７１４０の位置（ｘｖ、ｙｖ、ｚｖ）は（ｘｖ、ｙｖ、ｚｖ）＝（ｘ０＋（ｘ１−ｘｂ）、ｙ０＋（ｙ１−ｙｂ）、ｚ０＋（ｚ１−ｚｂ））として求める。また、ＶＲモード用の視点７１４０の姿勢（Ｙｖ，Ｒｖ，Ｐｖ）は（Ｙｖ，Ｒｖ，Ｐｖ）＝（Ｙ１，Ｒ０＋（Ｒ１−Ｒｂ），Ｐ１）として求める。
【００６６】
そして位置姿勢算出部１０３０は、このようにして求めたＶＲモード用の視点の位置及び姿勢を、データ記憶部１０４０に格納する。そしてステップＳ３２５０以降の処理を行う。
【００６７】
なお、ステップＳ３２２０で求めた姿勢を、ステップＳ３３００でデータ記憶部１０４０に格納した姿勢とアプリモード用の視点の姿勢とを用いて修正して修正姿勢（ＶＲモード用の視点の姿勢）を計算する方法は上記の方法に限るものではない。
【００６８】
［第３の実施形態］
上記の実施形態では、表示装置１１１０は、仮想空間の画像を表示する表示画面を有するものとして説明した。しかし、表示装置１１１０は、光学シースルータイプの表示装置であってもよく、この場合、表示装置１１１０を頭部に装着したユーザは、表示画面を透過して見える現実空間に仮想空間の画像が重畳された状態で観察することができる。
【００６９】
また、表示装置１１１０は、撮像装置を有し、且つ該撮像装置により撮像された現実空間の画像と仮想空間の画像とを合成した合成画像（複合現実空間の画像）を表示する、いわゆるビデオシースルータイプの表示装置であっても構わない。
【００７０】
本実施形態では、図１の表示装置１１１０の代わりに、ビデオシースルータイプの表示装置を使用する形態について説明する。本実施形態に係るシステムの機能構成例について、図８のブロック図を用いて説明する。図８において、図１と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。以下では、磁気レシーバ１１２０による計測結果を利用して仮想空間の画像を生成するモードをＭＲモードと呼称する。
【００７１】
頭部装着型表示装置８１００は、磁気レシーバ１１２０と、ビデオシースルータイプの表示装置８０１０と、を有する。
【００７２】
表示装置８０１０は、表示装置８０１０を装着したユーザの右目の位置から現実空間の動画像を撮像する撮像装置８０１１ａと、左目の位置から現実空間をの動画像を撮像する撮像装置８０１１ｂと、を有する。それぞれの撮像装置は、撮像した各フレームの現実空間の画像を順次、画像処理装置８０００に対して送信する。更に、表示装置８０１０は、表示装置１１１０と同様、ユーザの右目の眼前に画像を提示するための表示画面と、左目の眼前に画像を提示するための表示画面と、を有する。
【００７３】
画像処理装置８０００が有する画像取得部８０２０は、それぞれの撮像装置から送出される現実空間の画像（右目用の現実空間の画像、左目用の現実空間の画像）を取得し、該取得した現実空間の画像をデータ記憶部１０４０に格納する。
【００７４】
なお、本実施形態では、位置姿勢計測部１０１０が求める視点の位置姿勢は、撮像装置８０１１ａ、８０１１ｂの位置姿勢であることに注意されたい。磁気レシーバ１１２０からの信号に基づいて、若しくはその他の方法でもって撮像装置８０１１ａ、８０１１ｂの位置姿勢を求める方法には様々な方法が適用可能である。
【００７５】
なお、右目用の表示画面に表示する画像を生成する処理と、左目用の表示画面に表示する画像を生成する処理とは、それぞれの視点（撮像装置８０１１ａ、撮像装置８０１１ｂ）の位置姿勢が異なるだけで基本的には同じである。然るに、以下では、右目用の表示画面、左目用の表示画面のうち何れか一方の視点（表示画面）に対して画像を提供する処理については説明するものの、他方の視点については一方の視点に対して行った処理と同様の処理を行うため、説明は省略する。
【００７６】
画像生成部８０３０は、画像生成部１０５０と同様にして仮想空間の画像を生成する。そして、画像処理装置８０００の動作モードとしてＭＲモードが設定されている場合には、右目用の現実空間の画像と右目用の仮想空間の画像とを合成した合成画像、左目用の現実空間の画像と左目用の仮想空間の画像とを合成した合成画像、を生成する。それぞれの目に対応する仮想空間の画像は、それぞれの目に対応する撮像装置（撮像装置８０１１ａ、８０１１ｂ）の位置姿勢を用いれば生成可能である。合成画像は、例えば、データ記憶部１０４０等のメモリ上に現実空間の画像を描画し、該現実空間の画像上に仮想空間の画像を重畳描画することで、該メモリ上に合成画像を生成することができる。
【００７７】
そして画像生成部８０３０は、右目用の合成画像（右目用の現実空間の画像と右目用の仮想空間の画像との合成画像）を右目用の表示画面に対して送出する。また、画像生成部８０３０は、左目用の合成画像（左目用の現実空間の画像と左目用の仮想空間の画像との合成画像）を左目用の表示画面に対して送出する。
【００７８】
一方、アプリモードの場合には、画像生成部８０３０は、合成画像は生成せずに、生成した仮想空間の画像を表示部１４００に対して送出する。この時、仮想空間生成部１０７０では奥行等の情報から現実空間のデータを生成してもよい。
【００７９】
本実施形態に係る画像処理装置８０００が行う処理について、同処理のフローチャートを示す図９を用いて説明する。図９において、図３、６と同じ処理を行う処理ステップには同じステップ番号を付しており、該ステップにおける処理の説明は省略する。
【００８０】
ステップＳ３２００では、モード設定部１０６０は、ＭＲモードを設定する。ステップＳ９０１０では、画像取得部８０２０は、現実空間の画像を取得し、該取得した現実空間の画像をデータ記憶部１０４０に格納する。
【００８１】
ステップＳ９０２０では、モード設定部１０６０は、データ記憶部１０４０に格納されている、画像処理装置８０００の動作モードを示す情報を参照し、画像処理装置８０００の動作モードがＭＲモードであるのか、アプリモードであるのかを判断する。この判断の結果、ＭＲモードである場合には、処理はステップＳ９０３０に進み、アプリモードである場合には、処理はステップＳ３０４０に進む。
【００８２】
ステップＳ９０３０では、仮想空間生成部１０７０は、第１の実施形態と同様にして仮想空間を構築する。この時、仮想空間内に画像処理及びセンサ等から取得した現実空間のモデルデータを含めた仮想空間を生成しても良い。
【００８３】
ステップＳ９０４０では、画像生成部８０３０は、ステップＳ３２５０で設定されたＭＲモード用の視点の位置姿勢に基づいて、第１の実施形態と同様にして仮想空間（ステップＳ９０３０で構築された）の画像を生成する。そして画像生成部８０３０は、該生成した仮想空間の画像と、ステップＳ９０１０で取得した現実空間の画像と、の合成画像（それぞれの目に対応する合成画像）を生成し、表示装置８０１０のそれぞれの表示画面に対して送出する。
【００８４】
［第４の実施形態］
上記の実施形態では、画像処理装置１０００の動作モードとして、アプリモード、ＶＲ（ＭＲ）モードを挙げて説明したが、それぞれの動作モードにおける処理を平行して行うようにしても構わない。
【００８５】
［第５の実施形態］
上記の実施形態で説明したＶＲ（ＭＲ）モード用の視点の位置や姿勢を計算する方法はあくまでも一例に過ぎず、視点と仮想物体の相対的な位置または姿勢を維持するように位置姿勢を設定算出しても良い。
【００８６】
［第６の実施形態］
上記の実施形態では、表示装置１１１０には、右目用の表示画面と左目用の表示画面とが設けられているものとして説明した。しかし、これに限るものではなく、表示画面は１つとし、この１つの表示画面を両目で共有するようにしても構わない。
【００８７】
また、頭部装着型表示装置の代わりに、表示装置と自身の位置姿勢を計測可能な計測装置とを有する装置を用いても構わない。また、表示装置と計測装置とは一体型であっても構わないし、別個の装置であっても構わない。
【００８８】
また、頭部装着型表示装置の代わりに、表示装置と撮像装置とを有する装置を用いても構わない。また、表示装置と撮像装置とは一体型であっても構わないし、別個の装置であっても構わない。
【００８９】
［第７の実施形態］
上記の実施形態では、画像処理装置１０００の動作モードが変わると、それに応じて視点もＶＲ（ＭＲ）モード用の視点からアプリモード用の視点、若しくはその逆に切り替わっていた。しかし、事前に、動作モードが変更したことに応じて視点の切り替えを行うか否かを設定しておくようにしても構わない。
【００９０】
また、視点の設定を行う場合に、利用する位置姿勢成分の中の位置成分又は姿勢成分又はその両方又はその一部の成分の夫々を利用するのか否か、を切り替えるようにしても構わない。
【００９１】
［第８の実施形態］
表示装置１１１０や表示部１４００といった１つの表示機器に対し、出力する画像を切り替えても構わない。また、例えば、アプリモード用の画像を表示する機器、ＶＲ（ＭＲ）モード用の画像を表示する機器、アプリモード用の画像とＶＲ（ＭＲ）モード用の画像とを切り替えて表示する機器、を画像処理装置１０００に接続するようにしても構わない。この場合、出力画像に応じて何れかの機器に該出力画像を送出する。他にも、アプリモードとＶＲ（ＭＲ）モードの画像が常に提示されるが、視点の位置姿勢は現在のモードに合わせて更新される表示装置があっても良い。
【００９２】
［第９の実施形態］
図１，８に示した画像処理装置１０００（８０００）を構成する各機能部は何れもハードウェアで構成しても良いし、データ記憶部１０４０以外の各機能部のうち１以上をソフトウェア（コンピュータプログラム）で構成しても良い。その場合、データ記憶部１０４０をメモリとして有し且つハードウェアで実現する機能部を有する装置のＣＰＵがこのソフトウェアを実行することで、該装置は画像処理装置１０００（８０００）として機能することになる。データ記憶部１０４０以外の各機能部をソフトウェアで構成し、データ記憶部１０４０をメモリとして有するコンピュータのハードウェア構成例を図２に示す。
【００９３】
ＣＰＵ２００１は、ＲＡＭ２００２やＲＯＭ２００３に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の動作制御を行うと共に、画像処理装置１０００（８０００）が行うものとして上述した各処理を実行する。
【００９４】
ＲＡＭ２００２は、外部記憶装置２００７や記憶媒体ドライブ２００８からロードされたコンピュータプログラムやデータを一時的に記憶するための領域を有する。更にＲＡＭ２００２は、Ｉ／Ｆ（インターフェース）２００９を介して外部から受信したデータ（例えば、磁気レシーバ１１２０から受信した信号（データ）や撮像装置８０１１ａ、８０１１ｂからの画像）を一時的に記憶するためのエリアを有する。更にＲＡＭ２００２は、ＣＰＵ２００１が各種の処理を実行する際に用いるワークエリアも有する。即ち、ＲＡＭ２００２は、各種のエリアを適宜提供することができる。例えば、ＲＡＭ２００２は、データ記憶部１０４０としても機能する。
【００９５】
ＲＯＭ２００３には、コンピュータの設定データやブートプログラムなどが格納されている。キーボード２００４、マウス２００５は、上記の入力部１３００として機能するものであり、コンピュータの操作者が操作することで、各種の情報（モード設定指示やアプリモード用の視点の位置姿勢など）をＣＰＵ２００１に対して入力することができる。
【００９６】
表示部２００６は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ２００１による処理結果を画像や文字などで表示することができる。表示部２００６は、例えば、上記表示部１４００として機能し、仮想空間の画像や複合現実空間の画像、表示装置１１１０（８０１０）の位置姿勢計測のために表示すべきメッセージ、などを表示することができる。
【００９７】
外部記憶装置２００７は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置２００７には、ＯＳ（オペレーティングシステム）や、画像処理装置１０００（８０００）が行うものとして上述した各処理をＣＰＵ２００１に実行させるためのコンピュータプログラムやデータが保存されている。このプログラムには、画像処理装置１０００（８０００）を構成する各機能部のうちデータ記憶部１０４０を除く各機能部の機能をＣＰＵ２００１に実行させるためのコンピュータプログラムが含まれている。また、このデータには、データ記憶部１０４０に予め格納されているものとして説明したデータ（例えば、仮想空間のデータや、上述の説明において既知の情報として説明したもの）が含まれている。外部記憶装置２００７に保存されているコンピュータプログラムやデータは、ＣＰＵ２００１による制御に従って適宜ＲＡＭ２００２にロードされる。ＣＰＵ２００１はこのロードされたプログラムやデータを用いて処理を実行することで、結果として本コンピュータは、画像処理装置１０００（８０００）が行うものとして上述した各処理を実行することになる。なお、外部記憶装置２００７は、データ記憶部１０４０としても機能する。
【００９８】
記憶媒体ドライブ２００８は、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記録されているコンピュータプログラムやデータを読み出したり、該記憶媒体にコンピュータプログラムやデータを書き込んだりする。なお、外部記憶装置２００７に保存されているものとして説明したコンピュータプログラムやデータの一部若しくは全部をこの記憶媒体に記録しておいても良い。記憶媒体ドライブ２００８が記憶媒体から読み出したコンピュータプログラムやデータは、外部記憶装置２００７やＲＡＭ２００２に対して出力される。  
【００９９】
Ｉ／Ｆ２００９は、表示装置１１１０（８０１０）や磁気レシーバ１１２０などの外部機器を本コンピュータに接続するためのインターフェースである。Ｉ／Ｆ２００９は例えば、撮像装置８０１１ａ（８０１１ｂ）を本コンピュータに接続する為のアナログビデオポートやＩＥＥＥ１３９４等のデジタル入出力ポート、画像を表示装置１１１０（８０１０）に出力する為のイーサネットポート、等により構成される。Ｉ／Ｆ２００９を介して受信したデータは、ＲＡＭ２００２や外部記憶装置２００７に入力される。上述の各部は何れも、バス２０１０に接続されている。
【０１００】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005845211.tif 000002
【図２】
0005845211.tif 000003
【図３】
0005845211.tif 000004
【図４】
0005845211.tif 000005
【図５】
0005845211.tif 000006
【図６】
0005845211.tif 000007
【図７】
0005845211.tif 000008
【図８】
0005845211.tif 000009
【図９】
0005845211.tif 000010