説明

情報処理装置、情報処理方法

【課題】 仮想現実空間または複合現実空間においてユーザの意図した場所に仮想物体を作成するための技術を提供すること。
【解決手段】 ユーザの視点の位置姿勢を取得し、取得した位置姿勢を用いて視点から見える仮想空間の画像を生成し、生成した仮想空間の画像を出力する情報処理装置1900である。この情報処理装置1900において仮想物体形状記憶部1080は、操作部1090の位置を取得し、仮想空間中の、この取得した位置に、仮想平面を設定し、仮想平面の設定後、操作部1090の移動軌跡を記録する。そして仮想物体形状記憶部1080は、移動軌跡を仮想平面上に投影した投影移動軌跡を求め、求めた投影移動軌跡を、生成対象仮想物体の仮想平面上における輪郭を表す輪郭データとして記録する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、現実空間と仮想空間との合成空間において仮想物体を作成するための技術に関する。
【背景技術】
【0002】
従来、製造設計分野では、三次元モデルを設計する際、三次元CADシステムが用いられている。従来の三次元CADシステムでは、作業者はディスプレイ(モニタ)とマウスとを使って三次元モデルを作成する際に、基準となる平面を設定し、平面上に三次元モデルの底面を作成し、高さを与えることによって三次元モデルを作成するのが一般的である。
【0003】
さらに、HMD(ヘッドマウントディスプレイ、頭部装着型ディスプレイ)を用いて仮想現実空間で三次元CADシステムを用いて設計を行なう事が可能なシステムも研究されている(非特許文献1)。
【0004】
また、三次元CADのように専門の知識を持たなくても簡易に三次元モデルを作成するために、作業者が作成したい三次元モデルの輪郭を描くだけでモデルの作成が可能なシステムも研究されている(非特許文献2)。
【0005】
一方、近年では、現実空間と仮想空間との繋ぎ目のない結合を目的とした、複合現実感(MR:Mixed Reality)に関する研究が盛んに行われている。複合現実感の提示を行う画像表示装置は、例えば次のような構成を有する装置である。即ち、ビデオカメラ等の撮像装置が撮像した現実空間の画像上に、撮像装置の位置及び姿勢に応じて生成した仮想空間の画像(例えばコンピュータグラフィックスにより描画された仮想物体や文字情報等)を重畳描画した画像を表示する装置である。このような装置には、例えば、HMDを用いることができる。
【0006】
また、係る画像表示装置は、作業者の頭部に装着された光学シースルー型ディスプレイに、作業者の視点の位置及び姿勢に応じて生成した仮想現実空間の画像を表示する方式によっても実現される。
【0007】
ところで、仮想現実空間または複合現実空間を作業者に提示する画像表示装置に対して、仮想現実空間または複合現実空間に対して操作を行うためのインターフェースが各種提案されている(特許文献1)。このような以上の技術を組み合わせることで、仮想現実空間又は複合現実空間で三次元モデルを作成することが可能となる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特許第03944019号公報
【非特許文献】
【0009】
【非特許文献1】井上智之、西住直樹、鈴木伸明、安福尚文、佐賀聡人、仮想空間中での手書きジェスチャ認識に基づいた3次元モデリングインタフェースBlueGrottoの提案 電子情報通信学会論文誌(D-II) 、J87-D-II、6、 (2004-06)、pp.1309-1318」
【非特許文献2】T. Igarashi、 S. Matsuoka、 and H. Tanaka。 Teddy: A sketching interface for 3D freeform design. In SIGGRAPH ’99 Proceedings、 pp.409-416、 1999
【発明の概要】
【発明が解決しようとする課題】
【0010】
従来の方法では作業者が、仮想現実空間又は複合現実空間で仮想物体の作成を行う際、事前に決定した任意平面を基準としてモデリングを行なっていた。この方法では、任意の平面上に仮想物体を作成することは出来るが、仮想現実空間または複合現実空間において、作業者が簡易に仮想物体を作成したい場所に作成することが難しかった。この時、作業者が仮想物体の作成を行う際には、作業者の動作によって自動的に任意の平面が決定され仮想物体の作成が可能となる事が求められていた。
【0011】
本発明は以上の問題に鑑みてなされたものであり、仮想現実空間または複合現実空間においてユーザの意図した場所に仮想物体を作成するための技術を提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。即ち、ユーザの視点の位置姿勢を取得し、該取得した位置姿勢を用いて該視点から見える仮想空間の画像を生成し、該生成した仮想空間の画像を出力する情報処理装置であって、前記ユーザが操作する指示具の位置を取得する取得手段と、前記仮想空間中の、前記取得手段が取得した位置に、仮想平面を設定する設定手段と、前記仮想平面の設定後、前記指示具の移動軌跡を記録する第1の記録手段と、前記移動軌跡を前記仮想平面上に投影した投影移動軌跡を求め、該求めた投影移動軌跡を、生成対象仮想物体の前記仮想平面上における輪郭を表す輪郭データとして記録する第2の記録手段とを備えることを特徴とする。
【発明の効果】
【0013】
本発明の構成によれば、仮想現実空間または複合現実空間においてユーザの意図した場所に仮想物体を作成することができる。
【図面の簡単な説明】
【0014】
【図1】システムの構成例を示すブロック図。
【図2】システムの外観図。
【図3】仮想物体形状記憶部1080の構成例を示すブロック図。
【図4】仮想物体形状記憶部1080の動作を説明する図。
【図5】仮想物体形状生成部3040の構成例を示すブロック図。
【図6】生成対象仮想物体2010を生成するための手順を示す図。
【図7】情報処理装置1900が行う処理のフローチャート。
【図8】システムの構成例を示すブロック図。
【図9】システムの外観図。
【図10】情報処理装置8900が行う処理のフローチャート。
【図11】第11の実施形態を説明する図。
【図12】情報処理装置1900(8900)に適用可能なコンピュータの構成例を示すブロック図。
【発明を実施するための形態】
【0015】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の1つである。
【0016】
[第1の実施形態]
先ず、本実施形態に係るシステムについて、図1のブロック図及び図2の外観図を用いて説明する。図2に示す如く、現実空間中の所定の位置には、磁界を発生する磁界発生装置2020が設けられている。この磁界発生装置2020の動作制御はセンサコントローラ2030が行う。
【0017】
頭部装着型表示装置としてのHMD1000には、磁気センサ(例えばPolhemus社の3D SPACE FASTRAKセンサ)としての頭部位置姿勢計測部1020が取り付けられている。頭部位置姿勢計測部1020は、磁界発生装置2020が発生する磁界中における自身の位置姿勢に応じた磁界の変化を計測し、その計測結果をセンサコントローラ2030に対して送出する。センサコントローラ2030は、この計測結果から、センサ座標系における頭部位置姿勢計測部1020の位置姿勢を示す信号値を生成して情報処理装置1900に送出する。ここで、センサ座標系とは、磁界発生装置2020の位置を原点とし、この原点で互いに直交する3軸をそれぞれ、X軸、Y軸、Z軸とする座標系である。以下では説明を簡単にするために、仮想空間を規定する座標系の原点及び3軸は何れもセンサ座標系と一致しているものとするが、仮にずれがあってもそのずれが既知であれば、一方の座標系における座標値を他方の座標系における座標値に変換することができる。
【0018】
また、HMD1000を頭部に装着するユーザが手等に把持して操作する指示具としての操作部1090(例えばスタイラス)にも、頭部位置姿勢計測部1020と同様の磁気センサである操作部位置姿勢計測部1070が取り付けられている。操作部位置姿勢計測部1070も頭部位置姿勢計測部1020と同様に自身の位置姿勢に応じた磁界の変化を計測し、その計測結果をセンサコントローラ2030に対して送出する。センサコントローラ2030は、この計測結果から、センサ座標系における操作部位置姿勢計測部1070の位置姿勢(操作部1090の位置姿勢)を示す信号値を生成して情報処理装置1900に送出する。
【0019】
なお、本実施形態では、位置姿勢の計測方法として磁気センサを用いた計測方法を採用している。しかし本実施形態は、位置姿勢の計測方法に依存するものではないため、光学式センサや超音波式センサなど、磁気センサ以外のセンサを用いる位置姿勢計測方法を採用しても良い。また、HMD1000に撮像装置を取り付け、撮像装置による撮像画像から撮像装置の位置姿勢を推定する方法を採用しても良い。また、複数の位置姿勢計測方法を組み合わせて用いても良い。
【0020】
HMD1000には更に、HMD1000を頭部に装着したユーザの右眼、左眼のそれぞれに画像を提示するための表示部1030が設けられている。然るにHMD1000を頭部に装着したユーザは右眼で右目用の表示部1030を観察し、左眼で左目用の表示部1030を観察することになる。もちろん、HMD1000に2つの表示部1030を設けることは一例であり、右眼と左眼で共有して観察する1つの表示部1030をHMD1000に設けても良い。この表示部1030には、情報処理装置1900から送出された画像や文字が表示されることになる。
【0021】
また、操作部1090には、イベントを発生させるためにユーザが操作するイベント入力部1060が設けられている。例えば、イベント入力部1060は押下可能なボタンであり、ユーザはイベントを発生させたい場合にこのボタンを押下する。このボタンが押下されると、操作部1090はイベントを発生させ、情報処理装置1900に対して出力する。
【0022】
情報処理装置1900が有する頭部位置姿勢推定部1050は、頭部位置姿勢計測部1020からセンサコントローラ2030を介して「センサ座標系における頭部位置姿勢計測部1020の位置姿勢を示す信号値」を取得する。そして頭部位置姿勢推定部1050は、この取得した信号値が示す位置姿勢に、予め測定した「表示部1030(視点)と頭部位置姿勢計測部1020との位置姿勢関係」を加えることで、「センサ座標系における視点の位置姿勢」を求める。なお、「センサ座標系における視点の位置姿勢」を求める為の処理はこれに限るものではなく、様々な処理が考え得る。例えば、現実空間中の位置が既知である特徴点を用いて求める方法や、頭部位置姿勢計測部1020の計測誤差を推定して修正する方法などを適応してもよい。
【0023】
仮想物体形状記憶部1080は、操作部1090や視点の位置姿勢等を用いて後述の仮想平面2000を設定し、仮想平面2000の設定後における操作部1090の移動軌跡を記録する。そして仮想物体形状記憶部1080は、この記録した移動軌跡を仮想平面2000上(仮想平面上)に投影した投影移動軌跡を、生成対象仮想物体2010の仮想平面2000上の輪郭データとして記録する。
【0024】
仮想物体形状記憶部1080の更に詳細な構成について、図3のブロック図を用いて説明する。ここで、図4に示す如く、頭部位置姿勢計測部1020の位置を原点とし、この原点で互いに直交する3軸をそれぞれX軸4020、Y軸4010、Z軸4030とするローカル座標系を考える。
【0025】
先ず、HMD1000を頭部に装着しているユーザがイベント入力部1060を操作すると、イベント入力部1060はイベントを発生させ、発生させたイベントを、仮想物体形状記憶部1080内の頂点選択部3010に対して出力する。
【0026】
頂点選択部3010は、このイベントを検知すると、この検知のタイミング近傍で操作部位置姿勢計測部1070からセンサコントローラ2030を介して取得した「センサ座標系における操作部1090の位置姿勢」のうち「位置」を抽出する。そして頂点選択部3010は、仮想空間において、この抽出した位置に、頂点4040を配置する。この頂点4040は可視状態でも良いし、不可視の状態でも良い。
【0027】
基準平面生成部3020は、「頂点選択部3010がイベントを検知したタイミング」近傍で頭部位置姿勢推定部1050が求めた「センサ座標系における視点の位置姿勢」のうち「姿勢」を抽出する。そして基準平面生成部3020は、この抽出した姿勢が示す姿勢ベクトル(Z軸4030に沿った方向のベクトル)を法線ベクトルとし、上記頂点4040を含む平面を仮想平面(基準平面)2000として求める。例えば、頂点4040の座標を(x0、y0、z0)とし、視点の姿勢ベクトルを(a、b、c)とした場合、仮想平面2000は以下の式で表される。
【0028】
a(x−x0)+b(y−y0)+c(z−z0)=0
そして基準平面生成部3020は、このようにして求めた仮想平面2000を、仮想空間中に配置(設定)する。
【0029】
仮想物体形状生成部3040は、仮想平面2000の設定後、操作部1090の移動軌跡を記録し、この記録した移動軌跡を仮想平面2000上に投影した投影移動軌跡を、生成対象仮想物体2010の仮想平面2000上の輪郭データとして記録する。仮想物体形状生成部3040の更に詳細な構成について、図5のブロック図を用いて説明する。
【0030】
記憶部3030には、操作部位置姿勢計測部1070により計測され、センサコントローラ2030から送出された「センサ座標系における操作部1090の位置姿勢」が順次記録される。
【0031】
仮想平面2000の設定後にユーザが操作部1090を所望の位置に移動させ、そこでイベント入力部1060を操作すると、操作部1090はイベントを発生させ、発生させたイベントを、三次元形状輪郭生成部5010に対して出力する。三次元形状輪郭生成部5010は、このイベントを検出すると、検出したタイミング近傍で記憶部3030に格納された「センサ座標系における操作部1090の位置姿勢」を読み出す。この読み出した位置姿勢は、ユーザがイベント入力部1060を操作したタイミング近傍での操作部1090の位置姿勢である。そして三次元形状輪郭生成部5010は、この読み出した位置姿勢のうち「位置」を抽出し、仮想空間においてこの抽出した位置に頂点を配置する。三次元形状輪郭生成部5010は、イベントを検出するたびにこのような頂点配置処理を行うので、結果として仮想空間中には、イベント入力部1060を操作するたびに、その操作の時点における操作部1090の位置に頂点が配置されることになる。このようにして配置される頂点の集合が、操作部1090の移動軌跡を表す。
【0032】
ここで、図6(A)に示す如く、仮想平面2000の設定後に最初にユーザがイベント入力部1060を操作したことで三次元形状輪郭生成部5010が配置した頂点が、頂点6100Aであるとする。そして図6(B)に示す如く、頂点6100Aの配置後、最初にユーザがイベント入力部1060を操作したことで三次元形状輪郭生成部5010が配置した頂点が、頂点6100Bであるとする。また、図6(B)に示す如く、頂点6100Bの配置後、最初にユーザがイベント入力部1060を操作したことで三次元形状輪郭生成部5010が配置した頂点が、頂点6100Cであるとする。また、図6(B)に示す如く、頂点6100Cの配置後、最初にユーザがイベント入力部1060を操作したことで三次元形状輪郭生成部5010が配置した頂点が、頂点6100Dであるとする。また、図6(B)に示す如く、頂点6100Dの配置後、最初にユーザがイベント入力部1060を操作したことで三次元形状輪郭生成部5010が配置した頂点が、頂点6100Eであるとする。このようにして図6(C)に示す如く、頂点6100A、頂点6100B、頂点6100C、頂点6100D、頂点6100E、頂点6100F、頂点6100G、頂点6100H、がこの順に配置されたとする。
【0033】
そして三次元形状輪郭生成部5010は、イベント入力部1060や、情報処理装置1900が有する操作入力装置(不図示)などを介して、頂点配置終了を示すイベントが入力されたことを検知するまでは、上記のような頂点の配置処理を行う。
【0034】
一方、頂点配置終了を示すイベントが入力されたことを検知した場合には、次の処理に進む。以下では説明上、頂点6100A〜頂点6100Hが配置された時点で、頂点配置終了を示すイベントが入力されたものとして説明する。
【0035】
三次元形状輪郭生成部5010は頂点配置終了を示すイベントを検知すると、頂点6100Aを通り、視点の姿勢ベクトルが示す方向(Z軸4030に沿った方向)を方向ベクトルとする直線を求め、求めた直線と仮想平面2000との交点を求める。そして三次元形状輪郭生成部5010は、この求めた交点の位置に、頂点6100Aに対応する投影頂点6200Aを配置する。即ち、図6(C)に示す如く、三次元形状輪郭生成部5010は、頂点6100Aを、視点の姿勢ベクトルが示す方向(Z軸4030に沿った方向)に沿って仮想平面2000上に投影した位置(投影位置)に、投影頂点6200Aを配置する。そして三次元形状輪郭生成部5010は、同様の投影処理を、頂点6100B〜6100Hのそれぞれについて行うことで、図6(C)に示す如く、仮想平面2000上に投影頂点6200B〜6200Hを配置する。
【0036】
そして三次元形状輪郭生成部5010は、投影頂点6200A、6200B、6200C、6200D、6200E、6200F、6200G、6200H、をこの順で並べたもの(投影位置の集合)を、輪郭データとして記録する。
【0037】
三次元形状生成部5020は、三次元形状輪郭生成部5010により記録された輪郭データを用いて、例えば、非特許文献1に記載の方法を用いて、図6(D)に示す如く、生成対象仮想物体2010の三次元形状を作成する。この三次元形状の作成については周知の技術であるため、これについての説明は省略する。なお、三次元形状の作成方法はこれに限定するものではなく、輪郭データから作成するのであれば、如何なる方法を用いても良い。
【0038】
図1に戻って、仮想画像生成部1110は、頭部位置姿勢推定部1050が求めた位置姿勢を有する視点から見える仮想空間の画像を生成する。この仮想空間に、仮想平面2000や頂点6100A〜6100H、投影頂点6200A〜6200H、生成対象仮想物体2010等を配置したのであれば、仮想空間の画像にも、この配置したものが含まれうる。
【0039】
そして仮想画像生成部1110は、生成した仮想空間の画像を画像出力部1130に対して出力する。画像出力部1130は、仮想画像生成部1110から受けた仮想空間の画像を、HMD1000が有する表示部1030に対して出力する。これにより、HMD1000を頭部に装着しているユーザの眼前には、自身の視点の位置姿勢に応じた仮想空間の画像が提示されることになる。
【0040】
次に、本実施形態に係る情報処理装置1900が行う処理を、同処理のフローチャートを示す図7を用いて説明する。なお、図7に示した各ステップにおける処理の詳細は上述の通りであるので、ここでは簡単に説明する。
【0041】
ステップS7020では、頭部位置姿勢推定部1050は、頭部位置姿勢計測部1020からセンサコントローラ2030を介して「センサ座標系における頭部位置姿勢計測部1020の位置姿勢を示す信号値」を取得する。そして頭部位置姿勢推定部1050は、この取得した信号値が示す位置姿勢に、予め測定した「表示部1030(視点)と頭部位置姿勢計測部1020との位置姿勢関係」を加えることで、「センサ座標系における視点の位置姿勢」を求める。
【0042】
ステップS7030では仮想物体形状記憶部1080は、操作部位置姿勢計測部1070により計測され、センサコントローラ2030から送出された「センサ座標系における操作部1090の位置姿勢」を順次、記憶部3030に格納する。
【0043】
ステップS7040では頂点選択部3010は、既に仮想平面2000を生成したか否かを判断する。この判断の結果、既に生成しているのであれば処理はステップS7080に進み、未だ生成していないのであれば処理はステップS7050に進む。
【0044】
ステップS7050では頂点選択部3010は、イベント入力部1060からイベント(イベントA)を受けた否かを判断する。この判断の結果、受けた場合には処理はステップS7060に進み、受けていない場合には処理はステップS7140に進む。
【0045】
ステップS7060で頂点選択部3010は、イベントAを検知したタイミング近傍でセンサコントローラ2030を介して取得した「操作部1090の位置姿勢」のうち「位置」を抽出し、抽出した位置に頂点4040を配置する。
【0046】
ステップS7070では基準平面生成部3020は、「頂点選択部3010がイベントAを検知したタイミング」近傍で頭部位置姿勢推定部1050が求めた「センサ座標系における視点の位置姿勢」のうち「姿勢」を抽出する。そして基準平面生成部3020は、この抽出した姿勢が示す姿勢ベクトルを法線ベクトルとし、頂点4040を含む平面を仮想平面(基準平面)2000として求める。
【0047】
一方、ステップS7080では三次元形状輪郭生成部5010は、上記の頂点配置終了を示すイベント(イベントC)が入力されたのか、それとも頂点配置のイベント(イベントB)が入力されたのかを判断する。この判断の結果、イベントCが入力された場合には処理はステップS7110に進み、イベントBが入力された場合には処理はステップS7090に進む。
【0048】
ステップS7090では、三次元形状輪郭生成部5010は、イベントBを検出したタイミング近傍で記憶部3030に格納された「センサ座標系における操作部1090の位置姿勢」を読み出す。そして三次元形状輪郭生成部5010は、この読み出した位置姿勢のうち「位置」を抽出し、仮想空間においてこの抽出した位置に頂点を配置する。ステップS7100では、三次元形状輪郭生成部5010は、ステップS7090で抽出した位置を記録する(第1の記録)。
【0049】
一方、ステップS7110では、三次元形状輪郭生成部5010は、ステップS7100で記録したそれぞれの頂点の位置を、仮想平面2000上に投影することで、それぞれの頂点に対応する投影頂点を仮想平面2000上に配置する。そして三次元形状輪郭生成部5010は、それぞれの投影頂点を、輪郭データとして記録する(第2の記録)。
【0050】
ステップS7120では、三次元形状生成部5020は、三次元形状輪郭生成部5010により記録された輪郭データを用いて生成対象仮想物体2010の三次元形状を作成する。そしてステップS7130では、三次元形状生成部5020は、作成した三次元形状を有する生成対象仮想物体2010のデータを記録する。
【0051】
ステップS7140では、仮想画像生成部1110は、頭部位置姿勢推定部1050が求めた位置姿勢を有する視点から見える仮想空間の画像を生成する。そしてステップS7150では仮想画像生成部1110は、生成した仮想空間の画像を画像出力部1130に対して出力し、画像出力部1130は、仮想画像生成部1110から受けた仮想空間の画像を、HMD1000が有する表示部1030に対して出力する。
【0052】
そして次のフレームについて上記の処理を行うのであれば処理はステップS7160を介してステップS7020に戻るし、次のフレームについて上記の処理は行わないのであれば、ステップS7160を介して本処理を終了する。
【0053】
<変形例>
操作部1090の位置姿勢に、何らかの仮想物体を配置しても良いし、その配置の可否を切替可能にしても良い。また、仮想平面2000は、可視状態で配置しても良いし、不可視状態で配置しても良い。
【0054】
また、本実施形態では、図1に示す如く、頭部位置姿勢推定部1050、仮想画像生成部1110、仮想物体形状記憶部1080、画像出力部1130、は何れも1つの情報処理装置1900内に収まっているものとして説明した。しかし、これら全ての機能部が同じ装置内に収まっていなくても良く、複数台の装置に分散させても良い。
【0055】
また、本実施形態では、仮想平面2000の設定後は、イベントBが入力される毎に、そのときの操作部1090の位置に頂点を配置していたが、操作部位置姿勢計測部1070が予め定められた時間間隔毎のタイミングで計測した位置に頂点を配置しても良い。
【0056】
[第2の実施形態]
図1に示したHMD1000は、光学シースルー方式のものであるが、HMD1000の代わりにビデオシースルー型のものを用いても良い。本実施形態に係るシステムについて、図8のブロック図及び図9の外観図を用いて説明する。図8,9において、図1,2と同じ構成要素には同じ参照番号を付けており、その説明は省略する。
【0057】
ビデオシースルー型のHMD8000には、光学シースルー方式のHMD1000に加えて撮像部1010が備わっている。撮像部1010は、現実空間の動画像を撮像するもので、撮像したそれぞれの画像(現実空間の画像)は順次、情報処理装置8900が有する撮像画像の取得部1040に入力される。撮像部1010は、HMD8000を頭部に装着するユーザの右目用と左目用の2つが備わっている。右目用の撮像部1010が撮像した現実空間の画像は右目用の表示部1030に表示され、左目用の撮像部1010が撮像した現実空間の画像は左目用の表示部1030に表示される。
【0058】
撮像画像の取得部1040は取得した現実空間の画像を画像合成部1120に送出する。画像合成部1120は、仮想画像生成部1110が生成した仮想空間の画像と、撮像画像の取得部1040から取得した現実空間の画像との合成画像を生成する。この合成画像は右目用と左目用の2つが作成される。そして画像合成部1120は、生成した合成画像をMR画像出力部8130に出力するので、MR画像出力部8130は、この合成画像を表示部1030に対して出力する。
【0059】
なお、本実施形態においても第1の実施形態と同様、1つの情報処理装置8900内に収まっているものとして図7に示した全ての機能部が同じ装置内に収まっていなくても良く、複数台の装置に分散させても良い。
【0060】
次に、本実施形態に係る情報処理装置8900が行う処理を、同処理のフローチャートを示す図10を用いて説明する。なお、図10に示したフローチャートは、図7のフローチャートにステップS7010を加えると共に、ステップS7150の代わりにステップS7260を加えたものである。然るにここではステップS7010及びステップS7260について説明する。
【0061】
ステップS7010では、撮像画像の取得部1040は、取得した現実空間の画像を画像合成部1120に送出する。ステップS7260では画像合成部1120は、仮想画像生成部1110が生成した仮想空間の画像と、撮像画像の取得部1040から取得した現実空間の画像との合成画像を生成する。そして画像合成部1120は、生成した合成画像をMR画像出力部8130に出力するので、MR画像出力部8130は、この合成画像を表示部1030に対して出力する。
【0062】
[第3の実施形態]
上記の実施形態において、操作部1090の代わりに、ユーザの指など、ユーザの体の所定部位を用いても良い。その場合、その所定部位の位置姿勢を計測するための構成が必要となる。
【0063】
また、イベント入力は、ユーザの所定部位の動きにより入力しても良い。その場合、所定部位の動きを認識し、認識した動きがどのイベント入力を表しているのかを特定する為の構成が必要となる。何れにせよ、スタイラスのような操作部1090及びユーザの体の所定部位の何れも、ユーザが操作する指示具として機能することになる。
【0064】
[第4の実施形態]
仮想平面2000を求めるための方法には様々なものが考えられる。例えば、視点の姿勢ベクトルを法線とし、配置した頂点(図6(C)では頂点6100A〜6100H)のうち1つの位置若しくは複数個の重心位置を含む平面を仮想平面2000として求めても良い。この場合、仮想平面2000の設定よりも頂点の配置処理を先に行うことになる。
【0065】
[第5の実施形態]
仮想平面2000を求めるための方法には様々なものが考えられる。例えば、上記の頂点4040の代わりに3個以上の頂点を指示し、指示したそれらの頂点の位置を含む平面を仮想平面2000として求めても良い。
【0066】
[第6の実施形態]
仮想平面2000を求めるための方法には様々なものが考えられる。例えば、世界座標系のX−Y平面・Y−Z平面・Z−X平面のうち一つの平面に平行で、頂点4040を含む平面を仮想平面2000として設定しても良い。ここで、世界座標系とは、現実空間中の1点を原点とし、この原点で互いに直交する3軸をそれぞれX軸、Y軸、Z軸とする座標系である。なお、頂点4040の代わりに、事前に定められた頂点を用いても良い。
【0067】
[第7の実施形態]
仮想平面2000を求めるための方法には様々なものが考えられる。例えば、第1の実施形態において視点の姿勢ベクトルの代わりに、操作部1090の姿勢ベクトルを用いても良い。
【0068】
[第8の実施形態]
仮想平面2000を求めるための方法には様々なものが考えられる。例えば、操作部1090の姿勢ベクトルを法線ベクトルとし、視点の位置から規定の距離だけ離間した点を含む平面を仮想平面2000として求めても良い。
【0069】
[第9の実施形態]
仮想平面2000を求めるための方法には様々なものが考えられる。例えば、視点の位置と操作部1090の位置とを通るベクトルを法線ベクトルとし、操作部1090の位置を含む平面を仮想平面2000として求めても良い。
【0070】
[第10の実施形態]
上記の実施形態では、何れかの方法を用いて設定された仮想平面2000はそのまま固定されたものである。しかし、この仮想平面2000を新たに他の方法で作成し直すことで、その時々でユーザの要望に応じた仮想平面2000を設定することができる。即ち、上記の実施形態で説明した複数種類の仮想平面2000の作成方法から、任意のタイミングで1つを選択し、現在完成している仮想平面2000を、この新たに選択した作成方法でもって作成した仮想平面2000に置き換える。なお、この作成方法の切替については、キーボードやマウスなどを用いて行っても良いし、音声入力などでもって行っても良い。
【0071】
[第11の実施形態]
第1の実施形態では、非特許文献1の方法を用いて生成対象仮想物体の形状を作成したが、操作部1090の移動距離に応じて生成対象仮想物体を変形させても良い。例えば、図11に示す如く、頂点6100Aを含むように仮想平面2000を作成する。そして、仮想平面2000から最も遠い頂点6100Hを含み、仮想平面2000と平行な仮想平面9000を作成し、その間の距離9100によって、生成対象仮想物体の仮想平面2000の法線方向の幅を決定する。
【0072】
[第12の実施形態]
上記の実施形態では、一人のユーザに対して仮想空間若しくは複合現実空間を提供するシステムについて説明したが、同様の提供を複数人に対して行うようにしても良い。また、仮想平面2000の設定に係る操作や、操作部1090を用いて頂点群を指定する操作などを、複数人のユーザによって行うようにしても良い。
【0073】
[第13の実施形態]
情報処理装置1900(8900)を構成する各部はハードウェアで構成しても良い。しかし、仮想物体形状記憶部1080、画像出力部1130、MR画像出力部8130、撮像画像の取得部1040、記憶部3030、を除く各部はコンピュータプログラムとして実装しても良い。この場合、このコンピュータプログラムをコンピュータにインストールし、このコンピュータがこのコンピュータプログラムを実行することで、対応する機能部の機能を実現することができる。
【0074】
情報処理装置1900(8900)に適用可能なコンピュータの構成例について、図12のブロック図を用いて説明する。もちろん、情報処理装置1900(8900)に適用可能なコンピュータの構成についてはこれに限るものではなく、必要なデータを取得し、取得したデータを用いて、コンピュータプログラムとして実装されたものを実行可能な構成を有していればよい。
【0075】
CPU1201は、RAM1202やROM1203に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の動作制御を行うと共に、情報処理装置1900(8900)が行うものとして上述した各処理を実行する。
【0076】
RAM1202は、外部記憶装置1206からロードされたコンピュータプログラムやデータ、I/F(インターフェース)1207を介して外部から受信したデータ、を一時的に記憶するためのエリアを有する。更にRAM1202は、CPU1201が各種の処理を実行する際に用いるワークエリアも有する。即ち、RAM1202は、各種のエリアを適宜提供することができる。ROM1203には、コンピュータの設定データやブートプログラムなどが格納されている。
【0077】
操作部1204は、キーボードやマウスなどにより構成されており、ユーザが操作することで、各種の指示をCPU1201に対して入力することができる。例えば、上記の頂点配置終了を示すイベントは、この操作部1204を用いて入力することができる。
【0078】
表示装置1205は、CRTや液晶画面などにより構成されており、CPU1201による処理結果を画像や文字などでもって表示することができる。例えば、画像出力部1130が出力する仮想空間の画像や、MR画像出力部8130が出力する合成画像を表示することができる。
【0079】
外部記憶装置1206は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置1206には、OS(オペレーティングシステム)や、情報処理装置1900(8900)が行うものとして上述した各処理をCPU1201に実行させるためのコンピュータプログラムやデータが保存されている。このコンピュータプログラムには、仮想物体形状記憶部1080、画像出力部1130、MR画像出力部8130、撮像画像の取得部1040、記憶部3030、を除く各部の機能をCPU1201に実現させるためのコンピュータプログラムが含まれている。また、このデータには、仮想空間に係るデータの他、既知の情報として上述したものが含まれる。外部記憶装置1206に保存されているコンピュータプログラムやデータは、CPU1201による制御に従って適宜RAM1202にロードされ、CPU1201による処理対象となる。
【0080】
なお、仮想物体形状記憶部1080や記憶部3030は、外部記憶装置1206やRAM1202等でもって実装可能である。もちろん、仮想物体形状記憶部1080や記憶部3030は1つもメモリ構成しても良いし、別個のメモリで構成しても良い。
【0081】
I/F1207は、HMD1000(8000)やセンサコントローラ2030等を接続する為のもので、本コンピュータはこのI/F1207を介してこれらの装置とのデータ通信を行う。上記の画像出力部1130、MR画像出力部8130、撮像画像の取得部1040はこのI/F1207でもって実装可能である。上記の各部はバス1208に接続されている。
【0082】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
ユーザの視点の位置姿勢を取得し、該取得した位置姿勢を用いて該視点から見える仮想空間の画像を生成し、該生成した仮想空間の画像を出力する情報処理装置であって、
前記ユーザが操作する指示具の位置を取得する取得手段と、
前記仮想空間中の、前記取得手段が取得した位置に、仮想平面を設定する設定手段と、
前記仮想平面の設定後、前記指示具の移動軌跡を記録する第1の記録手段と、
前記移動軌跡を前記仮想平面上に投影した投影移動軌跡を求め、該求めた投影移動軌跡を、生成対象仮想物体の前記仮想平面上における輪郭を表す輪郭データとして記録する第2の記録手段と
を備えることを特徴とする情報処理装置。
【請求項2】
前記第2の記録手段は、
前記移動軌跡を構成する各位置について、該位置を前記視点の姿勢ベクトルに沿って前記仮想平面上に投影した投影位置を求め、求めたそれぞれの投影位置の集合を前記輪郭データとして記録することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記設定手段は、
前記視点の姿勢ベクトルを法線ベクトルとし、前記指示具の位置を含む平面を、前記仮想平面として設定することを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記取得手段は更に前記指示具の姿勢ベクトルを取得し、
前記設定手段は、
前記姿勢ベクトルを法線ベクトルとし、前記視点の位置から規定の距離だけ離間した点を含む平面を、前記仮想平面として設定することを特徴とする請求項1又は2に記載の情報処理装置。
【請求項5】
前記設定手段は、
前記視点の位置と前記指示具の位置とを通るベクトルを法線ベクトルとし、前記指示具の位置を含む平面を、前記仮想平面として設定することを特徴とする請求項1又は2に記載の情報処理装置。
【請求項6】
前記取得手段は更に前記指示具の姿勢ベクトルを取得し、
前記設定手段は、
前記姿勢ベクトルを法線ベクトルとし、前記指示具の位置を含む平面を、前記仮想平面として設定することを特徴とする請求項1又は2に記載の情報処理装置。
【請求項7】
前記取得手段は、前記指示具の複数の位置を取得し、
前記設定手段は、
前記複数の位置を含む平面を、前記仮想平面として設定することを特徴とする請求項1又は2に記載の情報処理装置。
【請求項8】
前記第1の記録手段は、規定のタイミングごとに前記取得手段が取得した位置の集合を、前記移動軌跡として記録することを特徴とする請求項1乃至7の何れか1項に記載の情報処理装置。
【請求項9】
前記規定のタイミングは、前記指示具に備わっているボタンが押下されたことで該指示具において発生するイベントを前記情報処理装置が検知したタイミングであることを特徴とする請求項8に記載の情報処理装置。
【請求項10】
前記規定のタイミングは、予め定められた時間間隔毎のタイミングであることを特徴とする請求項8に記載の情報処理装置。
【請求項11】
更に、
前記視点の位置姿勢を有する撮像装置が撮像した現実空間の画像を取得する手段と、
前記仮想空間の画像を前記現実空間の画像と合成して出力する手段と
を備えることを特徴とする請求項1乃至10の何れか1項に記載の情報処理装置。
【請求項12】
ユーザの視点の位置姿勢を取得し、該取得した位置姿勢を用いて該視点から見える仮想空間の画像を生成し、該生成した仮想空間の画像を出力する情報処理装置が行う情報処理方法であって、
前記情報処理装置の取得手段が、前記ユーザが操作する指示具の位置を取得する取得工程と、
前記情報処理装置の設定手段が、前記仮想空間中の、前記取得工程で取得した位置に、仮想平面を設定する設定工程と、
前記情報処理装置の第1の記録手段が、前記仮想平面の設定後、前記指示具の移動軌跡を記録する第1の記録工程と、
前記情報処理装置の第2の記録手段が、前記移動軌跡を前記仮想平面上に投影した投影移動軌跡を求め、該求めた投影移動軌跡を、生成対象仮想物体の前記仮想平面上における輪郭を表す輪郭データとして記録する第2の記録工程と
を備えることを特徴とする情報処理方法。
【請求項13】
コンピュータを、請求項1乃至11の何れか1項に記載の情報処理装置が有する各手段として機能させるためのコンピュータプログラム。

【図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


【公開番号】特開2012−53631(P2012−53631A)
【公開日】平成24年3月15日(2012.3.15)
【国際特許分類】
【出願番号】特願2010−195073(P2010−195073)
【出願日】平成22年8月31日(2010.8.31)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】