説明

情報処理方法および情報処理装置

【課題】 形状・大きさが同一である現実モデルと仮想モデルとについて、両者の位置・姿勢を正確に一致させるように、仮想モデルの位置・姿勢を簡便に調整する。
【解決手段】 現実物体に合成する仮想物体の位置姿勢を調整する情報処理方法であって、仮想物体に設定された仮想指標の位置情報を取得し、仮想指標の位置をユーザに報知し、ユーザによって操作される指示部の位置情報に基づき、前記仮想指標に対応する現実物体上の現実指標の位置情報を取得し、前記仮想指標の位置情報と前記現実指標の位置情報とに基づき、前記仮想物体の位置姿勢情報を設定する。

【発明の詳細な説明】
【技術分野】
【0001】
現実物体に合成する仮想物体の位置姿勢を調整するものに関する。
【背景技術】
【0002】
現実空間と仮想空間とを違和感なく自然に合成する複合現実感(MR:Mixed Reality)の技術を応用したシステムが盛んに提案されている。これらの複合現実感システムは、カメラなどの撮像装置によって撮影した現実空間の映像に対し、コンピュータグラフィックス(CG:Computer Graphics)で描画した仮想空間の映像を合成し、ヘッドマウントディスプレイ(HMD:Head−Mounted Display)などの表示装置に表示することで、複合現実感映像をシステムのユーザ(使用者)に提示するものである。
【0003】
また近年、3次元CAD(Computer Aided Design)技術やラピッド・プロトタイピング技術の発達により、コンピュータ上の3次元CADシステムで作成した形状モデルデータから、現実物体のモックアップを比較的短時間で、自動的に作成できるようになっている。
【0004】
しかし、ラピッド・プロトタイピング造形装置で作成した現実のモックアップモデル(以下、現実モデルと表記する)は、形状こそ3次元CADシステムで作成した形状モデル(以下、仮想モデルと表記する)と同一であるが、材質については、造形に用いる素材に制約される。そのため、この現実モデルでは、色や質感、模様などの特性については、仮想モデルの特性を反映していない。そこで、複合現実感システムを用いて、現実モデルの元となる仮想モデルをCGで描画し、現実モデルに重畳してユーザに合成表示することによって、従来のラピッド・プロトタイピング技術では実現できなかった、色や質感、模様などの特性に関するデザインの検証までも行えるようになってきた。
【0005】
このようなシステムにおいては、仮想空間中の仮想モデルを、現実空間中に存在する現実モデルに正確に一致させた状態で表示することが要求される。この場合、3次元CADシステムで作成した仮想モデルから現実モデルが作成されるため、形状・大きさについて、両モデルは同一であると言える。しかし、複合現実感技術において、両モデルの位置・姿勢を一致させるためには、現実空間と仮想空間との整合を正確に行うことに加え、現実モデルが存在する現実空間中での現実モデルの位置・姿勢と、仮想空間中での仮想モデルの位置・姿勢とを正確に一致させなければならない。すなわち、まず、現実空間の座標系と仮想空間の座標系を完全に一致させ、その後に、現実モデルと仮想モデルが存在する座標を一致させる必要がある。
【0006】
前者については、従来から多くの取り組みが行われており、現実空間と仮想空間とを正確に整合させるための位置合わせを実現するための方法が提案されている。(特許文献1および2参照)
後者については、従来、現実モデルの位置・姿勢をあらかじめ何らかの方法で測定し、仮想モデルを配置する位置・姿勢にもその測定値を設定することが行われてきた。
【0007】
現実モデルの位置・姿勢を測定する方法には、磁気を利用して3次元位置姿勢を計測する磁気センサなどの位置姿勢計測装置を用いる方法や、現実モデルに3次元位置が既知であるマーカを複数貼り、カメラなどの撮像装置で現実モデルを撮影した画像から、画像処理によりマーカを抽出して、マーカが抽出されたマーカの画像座標とマーカの3次元位置との対応から現実モデルの位置・姿勢を算出する方法が知られている。
【特許文献1】特開2002−229730号公報
【特許文献2】特開2003−269913号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかし、センサは一般的に高価なデバイスであり、製作するシステムにかけることができる費用が制限されている場合は、必要以上の数のセンサを使用することが難しいことがあり、改善が求められていた。また、現実モデルのサイズによっては、現実モデルに磁気センサなどの3次元位置姿勢センサを取り付けることが難しいことがあり、改善が求められていた。
【0009】
一方、デザインの検証を行う際は、現実空間の環境照明条件を様々に変えて検証を行うことがあり、環境照明条件によっては現実モデルに貼ったマーカの色を安定的に抽出することが難しい場合があり、改善が求められていた。また、システムをショールームに設置する場合は、ショールームの景観を損ねないために、現実モデルに特殊な色や形状のマーカを貼ることが難しいことがあり、改善が求められていた。
【0010】
以上のように現実モデルの位置・姿勢を直接測定することが困難である場合には、逆に、仮想モデルの位置・姿勢をあらかじめ規定しておき、現実モデルの位置・姿勢を仮想モデルの位置・姿勢に一致するように設置する方法が採られる。しかし、この方法においても、配置した現実モデルの位置・姿勢に誤差が生じることが多い。そのため、現実モデルを大まかに配置した後で、仮想モデルの位置・姿勢を手作業で試行錯誤的に微調整することによって、最終的に現実モデルの位置・姿勢と、仮想モデルの位置・姿勢とを一致させる。
【0011】
しかし、一般的な複合現実感システムでは、仮想空間の画像は、現実空間の画像の上に重畳して表示される。そのため、システムのユーザには、常に現実モデルの手前に仮想モデルが存在するように観測され、現実モデルと仮想モデルとの間の位置関係を把握することは困難である。とりわけ、仮想モデルの位置・姿勢を微調整するためには、両者の正確な位置・姿勢関係を把握する必要があるため、改善が求められていた。
【0012】
本発明は、現実モデルと仮想モデルの位置・姿勢を正確に一致するように、仮想モデルの位置・姿勢を簡便に調整できるようにすることを目的とする。
【課題を解決するための手段】
【0013】
上記目的を達成するために、現実物体に合成する仮想物体の位置姿勢を調整する情報処理方法であって、仮想物体に設定された仮想指標の位置情報を取得し、
仮想指標の位置をユーザに報知し、ユーザによって操作される指示部の位置情報に基づき、前記仮想指標に対応する現実物体上の現実指標の位置情報を取得し、
前記仮想指標の位置情報と前記現実指標の位置情報とに基づき、前記仮想物体の位置姿勢情報を設定することを特徴とする。
【発明の効果】
【0014】
以上述べたように、本発明によれば、現実物体と仮想物体の位置・姿勢を簡単な調整により一致させることができる。
【発明を実施するための最良の形態】
【0015】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【0016】
(第1の実施形態)
図1は第1の実施形態における概略システム構成を示すブロック図である。
【0017】
図1において、演算処理部100は、コンピュータなどの計算機から構成される。演算処理部100はその内部にCPU101、RAM102、画像出力装置103、システムバス104、ディスク装置105、入力装置106、画像入力装置107を備える。
【0018】
CPU101は、画像処理プログラムに基づき、画像処理方法を制御する。CPU101はシステムバス104に接続され、RAM102、画像出力装置103、ディスク装置105、入力装置106、画像入力装置107と相互に通信することが可能である。
【0019】
RAM102は、メモリ等の主記憶装置によって実現される。RAM102は、システムバス104を介して、画像処理プログラムのプログラムコードやプログラムの制御情報、画像入力装置107から入力した実写画像データのほか、CGモデルや配置情報などの仮想空間データ、センサ計測値、センサ較正データ等の各種データを一時的に保持する。(RAM102は、図示しないビデオバッファを備え、画像データはビデオバッファに保持される。)仮想空間データには、仮想モデル402や仮想指標403のCGモデルと、仮想モデル402や仮想指標403が仮想空間内に配置される位置・姿勢情報と、などが含まれる。仮想モデル402、仮想指標403については、図4、図5の説明で詳しく述べる。なお、本明細書においては、仮想モデルのことを仮想物体とも呼ぶ。
【0020】
画像出力装置103は、グラフィックスカードなどの機器によって実現される。一般的に、画像出力装置103は図示しないグラフィックスメモリを保持している。CPU101上で実行されるプログラムによって生成された画像情報は、システムバス104を介して、画像出力装置103が保持するグラフィックスメモリに書き込まれる。画像出力装置103は、グラフィックスメモリに書き込まれた画像情報を適切な画像信号に変換して表示装置201に送出する。グラフィックスメモリは必ずしも画像出力装置103が保持する必要はなく、RAM102がグラフィックスメモリの機能を実現してもよい。
【0021】
システムバス104は、演算処理部100を構成する各機器が接続され、上記機器が相互に通信するための通信路である。
【0022】
ディスク装置105は、ハードディスク等の補助記憶装置によって実現される。ディスク装置105は、画像処理プログラムのプログラムコードやプログラムの制御情報、仮想空間データ、センサ較正データなどを保持する。
【0023】
入力装置106は、各種インタフェース機器によって実現される。演算処理部100の外部に接続された機器からの信号をデータとして入力し、システムバス104を介して、RAM102にデータを書き込む。また、入力装置106はキーボードやマウスなどの機器を備え、本装置のユーザ(使用者)からの操作入力を受け付ける。
【0024】
画像入力装置107は、キャプチャカードなどの機器によって実現される。撮像装置202から送出される実写画像を入力し、システムバス104を介して、RAM102に画像データを書き込む。なお、表示装置201に光学シースルー型の表示装置を用いる場合には、画像入力装置107は具備しなくてもよい。
【0025】
頭部装着部200は、本実施形態の画像処理装置を体験するために、本装置のユーザが頭部に装着するビデオシースルー型HMDなどによって実現される。頭部装着部200は表示装置201、撮像装置202、センサ301から構成される。本実施形態では、頭部装着部200を構成する装置をユーザが頭部に装着しているが、ユーザが複合現実感を体験できる形態であれば、頭部装着部200は必ずしもユーザが装着する必要はない。
【0026】
表示装置201は、ビデオシースルー型HMDに備えられるディスプレイによって実現される。表示装置201は画像出力装置103から送出される画像信号を表示し、本装置のユーザに複合現実感映像を提示するために用いられる。表示装置201は頭部装着部200を構成する装置であるが、必ずしもユーザが装着する必要はない。ユーザが映像を確認することができる手段であれば、例えば表示装置201として据え置き型のディスプレイ装置を用いてもよいし、手持ち型のディスプレイを用いてもよい。
【0027】
撮像装置202は、CCDカメラなどの1つ以上の撮像装置によって実現される。撮像装置202は本装置のユーザの視点から見た現実世界の実写画像を撮像するために用いられる。そのため、撮像装置202はユーザの頭部の中でも視点位置に近い場所に装着することが望ましいが、ユーザの視点から見た画像が取得できる手段であれば、これに限定されない。また、ハーフミラーやプリズムなどを用いて撮像装置202の光軸と、表示装置201の中心軸を一致させてもよい。
【0028】
撮像装置202が撮像した実写画像は、(アナログ信号もしくはIEEE1394規格のデジタル信号などからなる)画像信号として画像入力装置107に送出される。なお、表示装置201に光学シースルー型の表示装置を用いる場合には、本装置のユーザは表示装置201を通して現実世界を直接観察することになるため、撮像装置202は具備しなくてもよい。
【0029】
センサ部300は、例えば磁気センサなどの6自由度の位置姿勢計測装置によって実現され、本装置を利用するユーザの視点(センサ301)およびスタイラス302の位置・姿勢を計測し、演算処理部100の入力装置106に送出する。センサ部300は、センサ301、スタイラス302、センサ制御装置303から構成される。
【0030】
センサ301は、センサ制御装置303の制御により、本装置のユーザの視点位置・姿勢を計測し、センサ制御装置303に送出する。(センサ301が存在する位置と、ユーザの視点位置とでは位置がずれている。しかし、ユーザは頭部装着部200を頭部に装着しているため、センサ301の位置とユーザの視点位置との位置ずれ量(オフセット量)は一定である。
【0031】
よって、あらかじめその位置ずれ量(オフセット量)を求めておけばよい。本明細書においては、説明のために位置ずれ量(オフセット量)の扱いを省略し、センサ301によって計測する位置姿勢と、ユーザの視点位置・姿勢とを同じものとして扱う。)また、センサ301は、ユーザが頭部に装着する頭部装着部200、センサ部300双方の構成要素である。
【0032】
スタイラス302は、ペンに似た形状をしたデバイスであり、本装置のユーザが手に持って使用する。また、スタイラス302はセンサを備え、その位置・姿勢を計測することができる。図2はスタイラス302の形状および構成を示す図である。スタイラス302は、センサ制御装置303の制御により、先端部305の位置・姿勢を計測し、センサ制御装置303に送出する。
【0033】
以後、本明細書では、スタイラスの先端部305の位置をスタイラス302の位置、スタイラスの軸が向いている方向をスタイラス302の姿勢と表記する。また、スタイラス302には押しボタンスイッチ304が1つ以上取り付けられている。押しボタンスイッチ304が押されたときには、その操作情報がセンサ制御装置303へ通知される。
【0034】
センサ制御装置303は、センサ301、スタイラス302に制御命令を送出し、また、センサ301、スタイラス302から位置・姿勢計測値や、押しボタンスイッチ304の操作情報を取得する。センサ制御装置303は、取得したセンサ301、スタイラス302の位置・姿勢計測値を、センサ301、スタイラス302の位置姿勢情報として入力装置106に送出する。また、取得した押しボタンスイッチ304の操作情報を入力装置106に送出する。
【0035】
現実モデル401は、ラピッド・プロトタイピング造形装置などを用いることによって3次元CADデータから作成された現実物体である。なお本明細書においては、現実モデルのことを現実物体とも呼ぶ。
【0036】
また、本実施形態の画像処理装置は、図示しないラピッド・プロトタイピング装置や3次元CADシステムを含む。
【0037】
以上のような構成を備えた本実施形態の制御について、以下説明する。図3は、本実施形態の画像処理装置の処理の流れを示す図である。なお、図3に従ったプログラムコードは、本実施形態の装置内のディスク装置105やRAM102などの記憶装置内に格納され、CPU101により読み出され、実行される。
【0038】
まず、3次元CADのデータから現実モデル401と、仮想モデル/仮想指標描画データ1220とを作成する手順を図3(a)を用いて説明する。なお、図3(a)の処理は、図3(b)の処理に備えてあらかじめ実行しておき、実行の際は、本実施形態の画像処理装置である図1の構成を利用してもよいし、それ以外の構成を利用してもよい。
【0039】
通常、ユーザが3次元CADシステム(1010)を使って形状やデザインなどの設計業務を行う場合、形状データはそれぞれの3次元CADシステム固有のソリッドデータ(1020)として保存されるのが一般的である。本実施形態においては、まず3次元CADシステム1010を使って、3次元CADソリッドデータ1020の表面に目印の形状データを付加し(1110)、その位置情報を記録する(1120)。(目印については、図4、図5の説明で詳しく述べる。)
目印は、3次元CADシステム1010を利用して、3次元CADソリッドデータ1020に形状データとして複数付加される。同時に、それぞれの形状データには、1から始まる個別の整数値のID番号(identification number)を付加する。目印の形状データは、たとえばスタイラス302の先端部分をはめ込むことが可能な小さな穴形状(もしくはカギ形状や溝形状)で表すことができる。この目印形状は、現実モデル401の表面にその形状が反映されるのであれば、3次元CADシステム1010のプラグイン機能によって付加することも可能であるし、3次元CADシステム1010を利用して普通のCADオブジェクトデータとして付加することも可能である。
【0040】
そして、目印を付加した3次元CADソリッドデータ1020から、ラピッド・プロトタイピング装置を用いて現実モデル401を生成する(1130)。つまり、現実モデル401の表面には、(スタイラス302の先端をはめ込むことができる)小さな穴形状といった目印が複数付加されることになる。この穴形状の近くに、対応する形状データのID番号(1から始まる個別の整数値)を刻印してもよく、こうすることでユーザが穴形状の認識を容易に行うことができる。
【0041】
一方、3次元CADソリッドデータ1020は、各設計部品の幾何学的なパラメータの集合で表現されており、そのままでは一般的なCG表示システムにおいて仮想モデル402として描画することはできない。そこで、3次元CADソリッドデータ1020を一般的なCG表示システムにおいて描画が可能なデータ形式(たとえばVRML形式)に変換する(1210)。同様に、1110で付加した目印形状についても、目印形状位置に対応した位置に仮想指標403として、一般的なCG表示システムにおいて描画が可能なデータ形式(たとえばVRML形式)に変換する(1210)。
【0042】
変換された仮想指標403それぞれは、対応する目印形状のID番号を含む。本実施形態では、このように変換された仮想モデル/仮想指標描画データ1220を利用して、仮想モデル402および仮想指標403を仮想空間中に描画する。
【0043】
なお、この時点では、仮想空間中における仮想モデル402の位置・姿勢は適当に定めておき、仮想モデル/仮想指標描画データ1220に仮想モデルデータと共に保持しておく。(仮想指標403は、仮想モデル402の表面上にあるため、仮想モデル402の位置・姿勢が定められれば、仮想指標403の位置は一意に定まる。仮想指標403の位置についても仮想モデル/仮想指標描画データ1220に保持しておく。)
次に、複合現実感映像を出力する手順を図3(b)を用いて説明する。
【0044】
頭部装着部200の構成要素であるセンサ301と、センサ制御装置303とを利用して、ユーザの視点位置・姿勢情報を計測する(2010)。この位置・姿勢情報は、入力装置106を通して演算処理部100に取り込まれる。
【0045】
ここで、対応点登録モード(2110)の処理について、図4の処理手順、および図5を用いて詳しく説明する。(対応点登録モードとは、仮想モデル上の位置に対応する現実モデル上の位置を測定し、測定結果と測定順番とを共に登録していくモードのことである。)
2110の処理は、ユーザが、キーボードやマウスやスタイラスボタンなどのデバイスを操作して、「対応点登録モード」を開始することで始まる。全ての仮想指標403それぞれには1から始まる個別の整数値でID番号(identification number)が付けられており、対応点登録モードの開始と同時に仮想指標のID番号を指定する「k」を1にリセットする(2111)。
【0046】
対応点登録モードの開始と同時に、図5(a)に示すように、撮像装置202で撮影した現実映像と、仮想モデル402および仮想指標403とを表示装置201の画面に表示する(2112)。図5においては、現実映像の一部分にウィンドウを作り、適当な視点位置・視線方向を設定して描画した仮想モデル402および仮想指標403の映像をウィンドウの中に表示しているが、現実映像の一部分に仮想モデル402および仮想指標403とを直接表示してもよい。
【0047】
このとき、仮想モデル402および仮想指標403を半透明表示したり、ワイアフレーム表示することで現実映像が完全に隠されることがないので容易に対応点登録モード処理を進めることができる。(なお、現実映像と仮想モデル表示の関係を逆にしてもよい。)また、図5では、現実映像中に現実モデル401が写るように撮像装置202(すなわち頭部装着部200)を配置している。
【0048】
2113ではまず仮想指標403のうちのID番号がk番目の仮想指標一つだけを、他の仮想指標と区別できるように点滅させるなど目立たせて表示する。図5(b)には、仮想指標403のうちの一つを、他と区別できるように目立たせて表示している様子を示している。また、対応点登録モードにおいて仮想指標を目立たせて表示することは、その仮想指標位置に対応した現実モデル上の位置にスタイラス302の先端を合わせて、押しボタンスイッチ304を押すようユーザに指示していることを意味する。
【0049】
このとき、ユーザに対して「点滅している仮想指標に対応する現実モデル位置にスタイラスの先端を合わせてスイッチを押してください。」という指示を、表示装置201の画面上に表示したり、音声で知らせてもよい。なお、2113では仮想指標一つを、他の仮想指標と区別できるように点滅させるなど目立たせて表示しているが、その仮想指標一つのみ表示してその他は表示させないようにしてもよい。
【0050】
ユーザが押しボタンスイッチ304を押したことを検出すると(2114:Y)、そのときのスタイラス先端部305の位置を測定し、測定結果と共に、仮想指標のID番号「k」をRAM102もしくはディスク装置105に記録する(2115)。仮想指標のID番号は、1から始まる整数値であるので、「k」は計測順番とも言うことができる。(このとき、先端部305に圧電素子などの圧力センサを設け、先端部305が現実モデル401の表面に接触したことを検知して、押しボタンスイッチ304が押されたこととしてもよい。)
ここで、仮想モデル402と現実モデル401とは同じデータから作成されており、同様に仮想指標403と現実モデル上の穴形状404とは同じデータから作成されているため、仮想指標403それぞれの位置に対応する現実モデル位置には穴形状404がそれぞれあることになる。よって、仮想指標403それぞれの位置に対応する現実モデル位置(穴形状)にスタイラスの先端部305をはめ込み固定することができるため、各対応点位置を正確に計測することができる。
【0051】
2116では、押しボタンスイッチ304がn回押されたかどうか検出する。すなわちnとkが等しいかどうかを検出する。(nは、仮想モデルの位置姿勢と、現実モデルの位置姿勢とを一致させるために必要な対応点数である。このnについては、仮想指標が同一平面上に存在していなければ4点以上、もしくは計測順番を考慮すれば3点以上、もしくは視点位置から仮想指標位置までの距離を考慮すれば3点以上であれば、仮想モデルの位置・姿勢と現実モデルの位置・姿勢とを一致させることが一般的に知られている。)
もし、押しボタンスイッチ304がn回押された場合は、処理を図3の2210へ進ませる。しかし、もし押しボタンスイッチ304がn回押されていない場合は、2117でkに1を加え、処理を2112に戻し、押しボタンスイッチがn回押されるまで繰り返し処理を行う。(図5(c)・・・)
2210では、2010で計測した視点位置・姿勢情報と、2110で記録したスタイラス位置情報(および仮想指標のID番号=計測順番)と、1220に記録されている仮想指標位置情報をもとに、仮想モデルを現実モデルに合わせて描画するための仮想モデル変換行列を算出する。仮想モデルの変換行列は、2110で記録したスタイラス先端部305の位置それぞれと、対応する仮想指標の位置それぞれとが一致するように求めればよい。
【0052】
仮想モデル402上の仮想指標をpとし(kは仮想指標のID番号)、座標位置をp=(X,Y,Z,1)と表現する。また、pに対応して2110で計測した現実モデル401上の穴形状位置を、同様にq=(x,y,z,1)とする。また、pをn点分だけ並べた行列をP=(p・・・p)とする。ここでnは、
【0053】
【数1】

(もしくは3)である。また同様に、Q=(q・・・q)とする。このとき、PとQの関係をQ=MPと記述できる。ここでMは、点pをqに変換する4行4列の仮想モデル変換行列である。すなわち、当初位置・姿勢を適当に設定した仮想モデル402に対してMで表される仮想モデル変換行列を適用することで、仮想モデル402の位置・姿勢を、現実モデル401の位置・姿勢に一致させることができる。なお、このMは、以下の式から求めることができる。
【0054】
M=Q(PP)−1
(ここで(PP)−1はPの疑似逆行列を表す。)
一方、前記2010、2110、2210の処理と並行して、頭部装着部200の構成要素である撮像装置202を用いて、現実空間の映像を、画像入力装置107を通して演算処理部100に取り込む(3010)。さらに、3010で取り込んだ現実空間の映像データをビデオバッファなどのメモリに展開する(3020)。
【0055】
2220では、2210で算出した仮想モデル変換行列Mと、仮想モデル/仮想指標描画データ1220に保持されている仮想モデルデータとをもとに、合成すべき仮想モデル映像をビデオバッファなどのメモリに展開する(2220)。
【0056】
なお、この仮想モデル映像では、仮想モデル部分以外の画面領域は、背景を透過するようにしておくことが望ましい。また、3010で取り込んだ現実空間の映像データもビデオバッファなどのメモリに展開し(3020)、2220で描画した仮想モデル映像を現実映像に重畳合成する(4010)。合成された映像は、画像出力装置103にてアナログなどのビデオ信号、もしくはデジタル信号などに変換され、頭部装着部200の構成要素である表示装置201に表示される(4020)。
【0057】
前記2010から4020までの処理(すなわち図3(b)の処理)を、表示装置201における映像更新間隔、あるいは仮想モデル描画処理(2220)における生成更新間隔で繰り返し行うことで、リアルタイムに情報提示を行う。
【0058】
なお、本実施例では、位置・姿勢を計測する手段として磁気を使った装置を例に説明したが、発明の本質としてはこれに限定されるものではなく、光学的な位置姿勢計測装置や、機械的な位置姿勢計測装置や、測量機など他の手段で実現できることはいうまでもない。
【0059】
また、図1乃至図5に示されている各構成について、同じ符号を有する構成は同じ機能を実現するものであることは言うまでもない。
【0060】
以上述べたように、本発明の第1の実施形態によれば、形状・大きさが同一である現実モデルと仮想モデルとについて、両者の位置・姿勢を正確に一致させるように、仮想モデルの位置・姿勢を簡便に調整することが可能となる。
【0061】
(第2の実施形態)
画像処理装置の第2の実施形態におけるシステム構成は、図1乃至2に示す第1の実施形態におけるシステム構成と同じである。
【0062】
以下では、本実施形態の制御について、図3乃至図5を用いて述べる。
【0063】
図3の2210では、2010で計測した視点位置・姿勢情報と、2110で記録したスタイラス位置情報(および仮想指標のID番号=計測順番)と、1220に記録されている仮想指標位置情報をもとに、仮想モデルを現実モデルに合わせて描画するための仮想モデル変換行列Mを算出するが、仮想モデル変換行列Mを一意に求めることができない場合は、エラー状態として、表示装置201の画面上にエラー状態であることを表示したり、音声で知らせてもよい。
【0064】
このエラーの原因としては、対応点登録モード2110において、仮想モデル402上の仮想指標403それぞれと、現実モデル401上の穴形状それぞれの対応がきちんと取れていないことが考えられる。すなわち、図4の2113〜2114の処理のときに、指示された仮想指標の対応位置とは異なる現実モデル位置でスタイラス先端部305の位置を計測したことが考えられる。
【0065】
よって、2210の処理においてエラー状態であることが判明した場合は、処理を2110に戻し、対応点登録モード2110をやり直すなどの対処を行うことが望ましい。
【0066】
また、図3乃至図5に示されている各構成について、その他の符号を有する構成は、第1実施形態と同じ機能を実現するものである。
【0067】
以上述べたように、本発明の第2の実施形態によれば、形状・大きさが同一である現実モデルと仮想モデルとについて、両者の位置・姿勢を正確に一致させるように、仮想モデルの位置・姿勢を簡便に調整することが可能となる。さらに、仮想モデル変換行列を一意に求めることができない場合は、エラー状態として、対応点登録処理をやり直すことで容易に対処することが可能となる。
【0068】
(第3の実施形態)
画像処理装置の第3の実施形態におけるシステム構成は、図1乃至2に示す第1の実施形態における概略システム構成と同じである。
【0069】
以下では、本実施形態の制御について、図3乃至図5を用いて述べる。
【0070】
図3の2210では、2010で計測した視点位置・姿勢情報と、2110で記録したスタイラス位置情報(および仮想指標のID番号=計測順番)と、1220に記録されている仮想指標位置情報をもとに、仮想モデルを現実モデルに合わせて描画するための仮想モデル変換行列Mを算出する。仮想モデル変換行列Mは、2110で記録したスタイラス先端部305の位置それぞれと、対応する仮想指標の位置それぞれとが一致するように求めればよい。
【0071】
第1の実施形態の2110では、仮想モデルの位置姿勢と、現実モデルの位置姿勢とを一致させるために必要な対応点数nとして、4点もしくは3点を指定していたが、これは仮想モデル上の仮想指標それぞれと、現実モデル上の穴形状それぞれとの対応位置が一致していることが前提である。しかし、実際には、現実モデルを作成する際のラピッド・プロトタイピング装置の精度誤差により、対応位置が多少ずれることがある。
【0072】
そこで、仮想モデルの位置姿勢と、現実モデルの位置姿勢とを一致させるために必要な対応点数nとして、5点以上を指定して、ICP(Iterative Closest Point)アルゴリズムのような手法を利用して、繰り返し演算によって数値解析的に変換パラメータを求めてもよい。
【0073】
なお、ICPアルゴリズムとは、事前の対応づけを与えることなしに変換パラメータを求める手法である。仮想モデルの位置姿勢と、現実モデルの位置姿勢とを一致させる場合、まず、仮想モデル上の仮想指標それぞれについて、対応する現実モデル上の穴形状それぞれに「最も近い点」へ対応づけることで、仮の対応づけを行う。そして、その対応づけを利用して変換パラメータ推定を行う。
【0074】
次に、その変換パラメータで仮想モデルを変換し、再度、最近点で対応づけをやり直す、というような処理を繰り返し、変換パラメータを推定する。ICPアルゴリズムのような繰り返し演算による数値解析的な手法は、仮想モデルと現実モデルとのそれぞれの対応点位置が、ラピッド・プロトタイピング装置の精度誤差などによって多少ずれている場合に有効である。
【0075】
また、図3乃至図5に示されている各構成について、その他の符号を有する構成は、第1実施形態と同じ機能を実現するものである。
【0076】
以上述べたように、本発明の第3の実施形態によれば、形状・大きさが同一である現実モデルと仮想モデルとについて、両者の位置・姿勢を正確に一致させるように、仮想モデルの位置・姿勢を簡便に調整することが可能となる。さらに、仮想モデルと現実モデルとのそれぞれの対応点位置が、ラピッド・プロトタイピング装置の精度誤差などによって多少ずれている場合に有効である。
【0077】
(第4の実施形態)
第4の実施形態におけるシステム構成は、図1乃至2に示す第1の実施形態における概略システム構成と同じである。ただし、現実モデル401の代わりに現実モデル401’を用い、仮想モデル402の代わりに仮想モデル402’を用い、仮想指標403の代わりに仮想指標403’を用いる。
【0078】
以下では、本実施形態の制御について、図6乃至図8を用いて述べる。図6は、本実施形態の画像処理装置の処理の流れを示す図である。なお、図6に従ったプログラムコードは、本実施形態の装置内のディスク装置105やRAM102などの記憶装置内に格納され、CPU101により読み出され、実行される。
【0079】
まず、3次元CADのデータから現実モデル401’と、仮想モデル/仮想指標描画データ1221とを作成する手順を図6(a)を用いて説明する。なお、図6(a)の処理は、図6(b)の処理に備えてあらかじめ実行しておき、実行の際は、本実施形態の画像処理装置である図1の構成を利用してもよいし、それ以外の構成を利用してもよい。
【0080】
通常、ユーザが3次元CADシステム(1011)を使って形状やデザインなどの設計業務を行う場合、形状データはそれぞれの3次元CADシステム固有のソリッドデータ(1021)として保存されるのが一般的である。本実施形態においては、まず3次元CADシステム1011を使って、3次元CADソリッドデータ1021の表面に目印の形状データを付加し(1111)、その位置情報を記録する(1121)。(目印については、図7、図8の説明で詳しく述べる。)目印の形状データは、3次元CADシステム1011を利用して、3次元CADソリッドデータ1021に形状データとして複数付加される。同時に、それぞれの形状データには、1から始まる個別の整数値のID番号(identification number)を付加する。3次元CADソリッドデータ1021に付加する目印の形状データは、3次元CADソリッドデータ1021から現実モデル401’を生成したときに、スタイラス302の先端部分を一意に当てやすい特徴部分、例えば凸部分や凹部分といった角部分に付加するのが望ましい。(目印形状データの付加処理では、ユーザが手作業で任意の位置に付加してもよいし、3次元CADソリッドデータ1021のうち、特徴部分を所定のアルゴリズムによって自動検出して付加してもよい。)この目印形状データは、3次元CADシステム1011のプラグイン機能によって付加することも可能であるし、3次元CADシステム1011を利用して普通のCADオブジェクトデータとして付加することも可能である。そして、3次元CADソリッドデータ1021から、ラピッド・プロトタイピング装置を用いて現実モデル401’を生成する(1131)。ここで本実施形態においては、目印形状データを3次元CADソリッドデータ1021とは別のデータとして管理しておき、現実モデル401’を生成する際には、表面に目印形状データを反映させない。すなわち第1〜3実施例とは異なり、小さな穴形状といった目印が付加されないため、3次元CADソリッドデータ1021そのままの現実モデルが生成される。
【0081】
一方、3次元CADソリッドデータ1021は、各設計部品の幾何学的なパラメータの集合で表現されており、そのままでは一般的なCG表示システムにおいて仮想モデル402’として描画することはできない。そこで、3次元CADソリッドデータ1021を一般的なCG表示システムにおいて描画が可能なデータ形式(たとえばVRML形式)に変換する(1211)。同様に、1111で付加した目印形状についても、目印形状位置に対応した位置に仮想指標403’として、一般的なCG表示システムにおいて描画が可能なデータ形式(たとえばVRML形式)に変換する(1211)。変換された仮想指標403’それぞれは、対応する目印形状のID番号を含む。本実施形態では、このように変換された仮想モデル/仮想指標描画データ1221を利用して、仮想モデル402’および仮想指標403’を仮想空間中に描画する。なお、この時点では、仮想空間中における仮想モデル402’の位置・姿勢は適当に定めておき、仮想モデル/仮想指標描画データ1221に仮想モデルデータと共に保持しておく。(仮想指標403’は、仮想モデル402’の表面上にあるため、仮想モデル402’の位置・姿勢が定められれば、仮想指標403’の位置は一意に定まる。仮想指標403’の位置についても仮想モデル/仮想指標描画データ1221に保持しておく。)
次に、複合現実感映像を出力する手順を図6(b)を用いて説明する。
【0082】
頭部装着部200の構成要素であるセンサ301と、センサ制御装置303とを利用して、ユーザの視点位置・姿勢情報を計測する(2011)。この位置・姿勢情報は、入力装置106を通して演算処理部100に取り込まれる。
【0083】
ここで、対応点登録モード(2120)の処理について、図7の処理手順、および図8を用いて詳しく説明する。(対応点登録モードとは、仮想モデル上の位置に対応する現実モデル上の位置を測定し、測定結果と測定順番とを共に登録していくモードのことである。)
2120の処理は、ユーザが、キーボードやマウスやスタイラスボタンなどのデバイスを操作して、「対応点登録モード」を開始することで始まる。全ての仮想指標403’それぞれには1から始まる個別の整数値でID番号(identification number)が付けられており、対応点登録モードの開始と同時に仮想指標のID番号を指定する「k」を1にリセットする(2121)。対応点登録モードの開始と同時に、図8(a)に示すように、撮像装置202で撮影した現実映像と、仮想モデル402’および仮想指標403’とを表示装置201の画面に表示する(2122)。図8においては、現実映像の一部分にウィンドウを作り、適当な視点位置・視線方向を設定して描画した仮想モデル402’および仮想指標403’の映像をウィンドウの中に表示しているが、現実映像の一部分に仮想モデル402’および仮想指標403’とを直接表示してもよい。このとき、仮想モデル402’および仮想指標403’を半透明表示したり、ワイアフレーム表示することで現実映像が完全に隠されることがないので容易に対応点登録モード処理を進めることができる。(なお、現実映像と仮想モデル表示の関係を逆にしてもよい。)また、図8では、現実映像中に現実モデル401’が写るように撮像装置202(すなわち頭部装着部200)を配置している。
【0084】
2123ではまず仮想指標403’のうちのID番号がk番目の仮想指標一つだけを、他の仮想指標と区別できるように点滅させるなど目立たせて表示する。図8(b)には、仮想指標403’のうちの一つを、他と区別できるように目立たせて表示している様子を示している。また、対応点登録モードにおいて仮想指標を目立たせて表示することは、その仮想指標位置に対応した現実モデル上の位置にスタイラス302の先端を合わせて、押しボタンスイッチ304を押すようユーザに指示していることを意味する。このとき、ユーザに対して「点滅している仮想指標に対応する現実モデル位置にスタイラスの先端を合わせてスイッチを押してください。」という指示を、表示装置201の画面上に表示したり、音声で知らせてもよい。なお、2123では仮想指標一つを、他の仮想指標と区別できるように点滅させるなど目立たせて表示しているが、その仮想指標一つのみ表示してその他は表示させないようにしてもよい。ユーザが押しボタンスイッチ304を押したことを検出すると(2124:Y)、そのときのスタイラス先端部305の位置を測定し、測定結果と共に、仮想指標のID番号「k」をRAM102もしくはディスク装置105に記録する(2125)。仮想指標のID番号は、1から始まる整数値であるので、「k」は計測順番とも言うことができる。(このとき、先端部305に圧電素子などの圧力センサを設け、先端部305が現実モデル401’の表面に接触したことを検知して、押しボタンスイッチ304が押されたこととしてもよい。)ここで、仮想モデル402’と現実モデル401’とは同じデータから作成されており、また、仮想モデル402’上における仮想指標403’は、対応する現実モデル上においてスタイラス302の先端部分を一意に当てやすい特徴部分、例えば凸部分や凹部分といった角部分に配置されている。よって、仮想指標403’それぞれの位置に対応する現実モデル位置にスタイラスの先端部305を当てやすく、各対応点位置を正確に計測することができる。
【0085】
2126では、押しボタンスイッチ304がn回押されたかどうか検出する。すなわちnとkが等しいかどうかを検出する。(nは、仮想モデルの位置姿勢と、現実モデルの位置姿勢とを一致させるために必要な対応点数である。このnについては、仮想指標が同一平面上に存在していなければ4点以上、もしくは計測順番を考慮すれば3点以上、もしくは視点位置から仮想指標位置までの距離を考慮すれば3点以上であれば、仮想モデルの位置・姿勢と現実モデルの位置・姿勢とを一致させることが一般的に知られている。)もし、押しボタンスイッチ304がn回押された場合は、処理を図6の2211へ進ませる。しかし、もし押しボタンスイッチ304がn回押されていない場合は、2127でkに1を加え、処理を2122に戻し、押しボタンスイッチがn回押されるまで繰り返し処理を行う。(図8(c)・・・)
2211では、2011で計測した視点位置・姿勢情報と、2120で記録したスタイラス位置情報(および仮想指標のID番号=計測順番)と、1221に記録されている仮想指標位置情報をもとに、仮想モデルを現実モデルに合わせて描画するための仮想モデル変換行列を算出する。仮想モデルの変換行列は、2120で記録したスタイラス先端部305の位置それぞれと、対応する仮想指標の位置それぞれとが一致するように求めればよい。
【0086】
仮想モデル402’上の仮想指標をpとし(kは仮想指標のID番号)、座標位置をp=(Xk,k,k,1)と表現する。また、pに対応して2120で計測した現実モデル401’上の位置を、同様にq=(xk,k,k,1)とする。また、pをn点分だけ並べた行列をP=(p・・・p)とする。ここでnは、
【0087】
【数2】

(もしくは3)である。また同様に、Q=(q・・・q)とする。このとき、PとQの関係をQ=MPと記述できる。ここでMは、点pをqに変換する4行4列の仮想モデル変換行列である。すなわち、当初位置・姿勢を適当に設定した仮想モデル402’に対してMで表される仮想モデル変換行列を適用することで、仮想モデル402’の位置・姿勢を、現実モデル401’の位置・姿勢に一致させることができる。なお、このMは、以下の式から求めることができる。
【0088】
M=Q(PP)−1
(ここで(PP)−1はPの疑似逆行列を表す。)
一方、前記2011、2120、2211の処理と並行して、頭部装着部200の構成要素である撮像装置202を用いて、現実空間の映像を、画像入力装置107を通して演算処理部100に取り込む(3011)。さらに、3011で取り込んだ現実空間の映像データをビデオバッファなどのメモリに展開する(3021)。
【0089】
2221では、2211で算出した仮想モデル変換行列Mと、仮想モデル/仮想指標描画データ1221に保持されている仮想モデルデータとをもとに、合成すべき仮想モデル映像をビデオバッファなどのメモリに展開する(2221)。なお、この仮想モデル映像では、仮想モデル部分以外の画面領域は、背景を透過するようにしておくことが望ましい。また、3011で取り込んだ現実空間の映像データもビデオバッファなどのメモリに展開し(3021)、2221で描画した仮想モデル映像を現実映像に重畳合成する(4011)。合成された映像は、画像出力装置103にてアナログなどのビデオ信号、もしくはデジタル信号などに変換され、頭部装着部200の構成要素である表示装置201に表示される(4021)。
【0090】
前記2011から4021までの処理(すなわち図6(b)の処理)を、表示装置201における映像更新間隔、あるいは仮想モデル描画処理(2221)における生成更新間隔で繰り返し行うことで、リアルタイムに情報提示を行う。
【0091】
なお、本実施例では、位置・姿勢を計測する手段として磁気を使った装置を例に説明したが、発明の本質としてはこれに限定されるものではなく、光学的な位置姿勢計測装置や、機械的な位置姿勢計測装置や、測量機など他の手段で実現できることはいうまでもない。
【0092】
また、図6乃至図8に示されている各構成について、その他の符号を有する構成は、第1実施形態と同じ機能を実現するものである。
【0093】
以上述べたように、第4の実施形態によれば、形状・大きさが同一である現実モデルと仮想モデルとについて、両者の位置・姿勢を正確に一致させるように、仮想モデルの位置・姿勢を簡便に調整することが可能となる。本実施形態においては、現実モデル上に目印形状データが反映されないので、3次元CADソリッドデータそのままの現実モデルを利用することができる。
【0094】
(その他の実施形態)
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【0095】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0096】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0097】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0098】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【0099】
【図1】画像処理装置の構成を示すブロック図である。
【図2】画像処理装置のスタイラスを説明するための図である。
【図3】画像処理装置の処理手順を説明するためのフローチャートである。
【図4】画像処理装置の処理手順2110を説明するためのフローチャートである。
【図5】対応点登録モードを説明するための図である。
【図6】第4実施形態における画像処理装置の処理手順を説明するためのフローチャートである。
【図7】第4実施形態における画像処理装置の処理手順2120を説明するためのフローチャートである。
【図8】第4実施形態における対応点登録モードを説明するための図である。

【特許請求の範囲】
【請求項1】
現実物体に合成する仮想物体の位置姿勢を調整する情報処理方法であって、
仮想物体に設定された仮想指標の位置情報を取得し、
仮想指標の位置をユーザに報知し、
ユーザによって操作される指示部の位置情報に基づき、前記仮想指標に対応する現実物体上の現実指標の位置情報を取得し、
前記仮想指標の位置情報と前記現実指標の位置情報とに基づき、前記仮想物体の位置姿勢情報を設定することを特徴とする情報処理方法。
【請求項2】
前記仮想物体の幾何情報を取得し、
視点位置姿勢情報を取得し、
前記視点位置情報および前記幾何情報を用いて、前記仮想物体の画像を生成し、
前記現実物体の画像と前記仮想物体の画像を合成することを特徴とする請求項1記載の情報処理方法。
【請求項3】
前記現実物体および前記仮想物体の幾何情報は、同一のCADデータから作成されることを特徴とする請求項2記載の情報処理方法。
【請求項4】
前記現実物体は前記CADデータをもとにラピッド・プロトタイミングにより作成されることを特徴とする請求項3に記載の画像処理方法。
【請求項5】
前記報知は、ユーザが次に指示すべき仮想指標の位置をガイダンスすることを特徴とする請求項1記載の情報処理方法。
【請求項6】
前記現実物体の前記現実指標の位置の形状が指標用に加工されていることを特徴とする請求項1記載の情報処理方法。
【請求項7】
前記仮想物体の位置情報は、ICPアルゴリズムを用いて求めることを特徴とする請求項1記載の情報処理方法。
【請求項8】
前記前記仮想指標の位置情報と前記現実指標の位置情報から前記仮想物体の位置姿勢情報を求めることができなかった場合は、エラー表示を行うことを特徴とする請求項1記載の情報処理方法。
【請求項9】
前記現実指標は、現実物体表面上に形成される穴形状であることを特徴とする請求項1に記載の情報処理方法。
【請求項10】
請求項1記載の情報処理方法をコンピュータにて実現するためのプログラム。
【請求項11】
現実物体に合成する仮想物体の位置姿勢を調整する情報処理装置であって、
仮想物体に設定された仮想指標の位置情報を取得する仮想指標位置情報取得部と、
仮想指標の位置をユーザに報知する報知部と
ユーザによって操作される指示部の位置情報に基づき、前記仮想指標に対応する現実物体上の現実指標の位置情報を取得する現実指標位置情報取得部と、
前記仮想指標の位置情報と前記現実指標の位置情報とに基づき、前記仮想物体の位置姿勢情報を設定する設定部とを有することを特徴とする情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2006−48639(P2006−48639A)
【公開日】平成18年2月16日(2006.2.16)
【国際特許分類】
【出願番号】特願2005−120914(P2005−120914)
【出願日】平成17年4月19日(2005.4.19)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】