JP2005251118A - 画像処理方法、画像処理装置 - Google Patents

画像処理方法、画像処理装置 Download PDF

Info

Publication number
JP2005251118A
JP2005251118A JP2004064491A JP2004064491A JP2005251118A JP 2005251118 A JP2005251118 A JP 2005251118A JP 2004064491 A JP2004064491 A JP 2004064491A JP 2004064491 A JP2004064491 A JP 2004064491A JP 2005251118 A JP2005251118 A JP 2005251118A
Authority
JP
Japan
Prior art keywords
virtual object
orientation
observer
image
sensor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2004064491A
Other languages
English (en)
Inventor
Tomohiko Shimoyama
朋彦 下山
Akihiro Katayama
昭宏 片山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2004064491A priority Critical patent/JP2005251118A/ja
Publication of JP2005251118A publication Critical patent/JP2005251118A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Processing Or Creating Images (AREA)

Abstract

【課題】 現実空間と仮想空間とを合成した複合現実空間を観察している観察者に、この複合現実空間中に配置される仮想物体を、より直感的に操作可能とさせるための技術を提供すること。
【解決手段】 観察者の手に装着されている手持ちセンサの位置姿勢を観察者が観察する対象の仮想物体の位置姿勢として設定し(S206)、位置姿勢が設定された仮想物体を観察者の視点から見た場合の画像を生成して(S208)、現実空間に重畳させて観察者に提供する(S211)。
【選択図】 図11

Description

本発明は、現実空間中に仮想物体を重畳させて観察者に提供する為の技術に関するものである。
MR、AR技術は実写映像とCG(Computer Graphics)とを合成し、仮想のCG物体が利用者の前に存在するかのように見せる為の技術である。
MR技術の典型的なアプリケーションでは、利用者はビデオシースルー型のHMDを装着する。HMD内のディスプレイには、HMDの前面のカメラからの映像と、計算機が作成したCG映像が合成される。CG映像は、位置センサにより測定した利用者の視点の位置姿勢に応じて描かれるため、利用者にはあたかも現実空間に仮想のCGが存在するかのように見える。
実際のMR技術の応用としては、図1に示すような工業デザインの検証が挙げられる。図1は、CADモデル(プリンタのトナーカートリッジのCADモデル)100を上記CG物体として表示し、CADモデルのプレビューに使用している様子を示す図である。このとき、上述の通り、このCADモデルをプレビューする利用者は、自身の頭部に上記HMD(Head Mount Display)を装着する必要がある。
図2は、HMDの構成を示す図である。
同図に示すHMDはビデオシースルー方式のHMDである。HMDは、右目カメラ1110、左目カメラ1111、HMD内蔵位置センサ1120、右目LCD1130、左目LCD1131からなる。
利用者はHMDを自身の頭部に装着してCADモデルをプレビューする。このとき、図3に示す如く、HMD内の各LCD1130、1131には、各カメラ1110、1111で撮影された実写映像と、CG画像として描かれたCADモデル300が合成されて表示される。
図4は、複数人により観察できる、MR技術を使用したCADビューワの機器構成を示す図である。ここでは3人(4a〜4c)同時にCADモデル4000をプレビューしているが、3人のそれぞれに対する機器の構成はほぼ同一である。
利用者4bを例に取ると、HMD1100に備わっているカメラにより撮影された実写映像は計算機1300にキャプチャされ、内部でCADモデル4000のCGと合成される。合成した画像は映像信号としてHMD1100に送られる。
計算機1300は位置センサ1200から、HMD1100の3次元での位置を知ることができる。計算機1300はこの位置情報から、画面中にどのようにCADモデル4000のCGを描画するかを決める。
実写映像の上にCADモデル4000が合成されることで、利用者にはあたかもCADモデル4000がその場にあるかのように観測される。
特開2002−271693号公報 特開2003−303356号公報
しかしながら先に示したMR技術を使ったCADモデルのプレビューでは、表示しているCADモデル4000を直感的に移動させることが難しかった。
先に説明したように計算機1300は、CADモデルの描画位置をHMDの位置情報から決めていた。つまり図4の例では、HMD1100を移動させると、LCD1130,1131の画面上でのCADモデル4000の位置は変わるが、CADモデル4000は常にあらかじめ設定しておいた机の上に描画される。
しかし、CADモデル4000をいろいろな方向から見るためには、CADモデル4000が常に机の上に描画されるのでは不都合である。例えばCADモデル4000の底面を見たい場合、なんらかの方法でCADモデル4000の描画位置を変更しなければならない。
従来、CADモデル4000の描画位置の変更は、計算機1300にCADモデル4000を向けたい方向を入力する必要があった。そのためには向けたい方向のベクトルや角度を数値で入力する必要があり、直感的にモデルを移動させられるとは言いがたかった。
このことは多人数でCADモデル4000を見るような際に、特に問題になっていた。例えばCADモデルとして特定の部品を利用者全員で見たい場合、どのようにモデルを置けばよいか相談し、計算機1300を操作するのでは使い勝手が悪かった。
またもう一つの問題点として、CADモデル4000に新しい部品を追加、削除したとき、追加、削除した部品がどこにあるのかわからなくなることがあげられる。追加、削除した部品が利用者からみてCADモデル4000の裏側にある場合、CADモデル4000にどんな変更が加えられたかを把握することが難しかった。
本発明は以上の問題に鑑みてなされたものであり、現実空間と仮想空間とを合成した複合現実空間を観察している観察者に、この複合現実空間中に配置される仮想物体を、より直感的に操作可能とさせるための技術を提供することを目的とする。
本発明の目的を達成するために、例えば本発明の画像処理方法は以下の構成を備える。
すなわち、現実空間中に仮想物体を重畳させて観察者に提供する画像処理方法であって、
前記観察者の視点の位置姿勢を計測する為のセンサの計測結果に基づいて、当該視点の位置姿勢を計算する第1の計算工程と、
前記観察者の手に装着されている手持ちセンサにより計測された結果に基づいて、当該手持ちセンサの位置姿勢を求める第2の計算工程と、
前記第2の計算工程で計算された位置姿勢を、前記観察者が観察する対象の仮想物体の位置姿勢として設定する設定工程と、
前記設定工程で位置姿勢が設定された仮想物体を前記第1の計算工程で求めた位置姿勢の視点から見た場合の画像を生成して、現実空間に重畳させて前記観察者に提供する提供工程とを備え、
更に前記提供工程では、
前記仮想物体における一部分が指示された場合、当該一部分が前記視点の位置姿勢から見えるように前記仮想物体の向きを変化させた前記仮想物体を前記第1の計算工程で求めた位置姿勢の視点から見た場合の画像を生成して、現実空間に重畳させて前記観察者に提供することを特徴とする。
本発明の目的を達成するために、例えば本発明の画像処理装置は以下の構成を備える。
すなわち、現実空間中に仮想物体を重畳させて観察者に提供する画像処理装置であって、
前記観察者の視点の位置姿勢を計測する為のセンサの計測結果に基づいて、当該視点の位置姿勢を計算する第1の計算手段と、
前記観察者の手に装着されている手持ちセンサにより計測された結果に基づいて、当該手持ちセンサの位置姿勢を求める第2の計算手段と、
前記第2の計算手段によって計算された位置姿勢を、前記観察者が観察する対象の仮想物体の位置姿勢として設定する設定手段と、
前記設定手段によって位置姿勢が設定された仮想物体を前記第1の計算手段によって求めた位置姿勢の視点から見た場合の画像を生成して、現実空間に重畳させて前記観察者に提供する提供手段とを備え、
更に前記提供手段は、
前記仮想物体における一部分が指示された場合、当該一部分が前記視点の位置姿勢から見えるように前記仮想物体の向きを変化させた前記仮想物体を前記第1の計算手段によって求めた位置姿勢の視点から見た場合の画像を生成して、現実空間に重畳させて前記観察者に提供することを特徴とする。
本発明の構成により、現実空間と仮想空間とを合成した複合現実空間を観察している観察者に、この複合現実空間中に配置される仮想物体を、より直感的に操作させることができる。
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
図8は、本実施形態に係るシステムの外観図である。同図では、システムと共に、このシステムを利用している観察者を示している。なお、同図では観察者の数を3としているが、以下の説明はこれに限定するものではない。
本実施形態に係るシステムは、現実空間中に仮想物体(CGモデル)を重畳させて観察者に提供する周知のMR技術を用いて、観察者の観察対象である仮想物体に対して、観察者がその位置や姿勢の変更といった各種の操作をより簡便にするためのものである。以下、本実施形態に係るシステムについて詳細に説明する。
同図において1000,2000,3000はそれぞれ観察者で、本システムを用いて、現実空間中に仮想物体を重畳させた空間(複合現実空間)を観察する。それぞれの観察者の頭部には周知のHMD1100,2100,3100が装着されており、それぞれの観察者は自身の頭部に装着されたHMDにより、複合現実空間の画像を見ることができる。
それぞれの観察者に提供する複合現実空間の画像は、それぞれのHMDに接続されている計算機1300,2300,3300により生成される。
ここで、それぞれの観察者に対して複合現実空間の画像を生成して提供する為の装置の構成については実施的には同じであるので、以下の説明では観察者1000に対して複合現実空間の画像を提供する装置の構成について説明するが、同様の説明は特に断らない限り、それ以外の観察者2000,3000に対しても同様に適用可能である。
観察者1000は自身の頭部にHMD1100を装着しており、MR技術では周知の通り、観察者1000はこのHMDにより自身の頭部の位置姿勢に応じた複合現実空間の画像を見ることができる。
また、観察者1000は手持ちセンサ5000を手に持っている。本実施形態では手持ちセンサ5000は観察者1000、2000、3000の何れかが持っていればよいが、本実施形態では観察者1000のみが持っているものとする。
なお、手持ちセンサ5000は必ずしも手に「持つ」必要はなく、手に「装着」していればよい。手持ちセンサ5000は、後述する3次元センサ固定局1210との相対位置姿勢を計測し、その計測結果を示す信号を後述する3次元センサ本体1200に出力する。
3次元センサ固定局1210は、磁気センサの場合、HMD1100に備わっている後述のセンサ、手持ちセンサ5000がそれぞれの位置姿勢の計測を行うために検知する磁界を発生する。以下の説明では便宜上、センサは全て磁気センサものを用いることとするが、その他のセンサ、例えば、超音波センサなどを用いても以下の説明は実質的には同じである。
3次元センサ本体1200は、HMD1100に備わっている後述のセンサ、3次元センサ固定局1210、手持ちセンサ5000を制御し、HMD1100に備わっている後述のセンサ、手持ちセンサ5000が計測した結果をデータとして計算機1300に出力する。
計算機1300は例えばPC(パーソナルコンピュータ)やWS(ワークステーション)等により構成されており、観察者1000に自身の頭部の位置姿勢に応じた複合現実空間の画像を提供するための各種の処理を行う。また、計算機1300はネットワークハブ6000に接続されており、他の計算機2300,3300とのデータ通信を行うことができ、例えば手持ちセンサ5000により計測された結果を計算機1300から計算機2300,3300に送信することができる。
図9は、観察者1000に対して複合現実空間の画像を提供する為の装置の基本構成を示す図である。
HMD1100はHMD内蔵センサ1120,右目カメラ1110、左目カメラ1111、右目LCD1130,左目LCD1131により構成されている。HMD内蔵センサ1120は、3次元センサ固定局1210から発せられる磁界を検知し、検知した磁界の強度を示す信号を3次元センサ本体1200に出力する。
手持ちセンサ5000は、上述の通り、観察者1000の手に装着されているもので、その位置姿勢は観察者1000の手が動くことにより変化する。手持ちセンサ5000は、3次元センサ固定局1210から発せられる磁界を検知し、検知した磁界の強度を示す信号を3次元センサ本体1200に出力する。
3次元センサ本体1200は、HMD内蔵センサ1120、手持ちセンサ5000から受けた信号の強度に基づいて、センサ座標系(世界座標系(現実空間中の1点を原点とし、この原点で互いに直交する3軸をそれぞれx、y、z軸とする座標系)における位置がわかっている所定位置を原点とし、この原点で互いに直交する3軸をそれぞれx、y、z軸とする座標系)におけるHMD内蔵センサ1120、手持ちセンサ5000の位置姿勢を示すデータを求め、計算機1300に出力する。
右目カメラ1110、左目カメラ1111はそれぞれ、HMD1100を頭部に装着する観察者1000の右目、左目から見える現実空間の動画像を撮像するものである。右目カメラ1110、左目カメラ1111のそれぞれにより撮像された動画像を構成する各フレームの画像データは計算機1300に出力する。
右目LCD1130、左目LCD1131はそれぞれ、右目カメラ1110、左目カメラ1111のそれぞれによって撮像された現実空間に、計算機1300が生成した仮想物体の画像を重畳させた画像(複合現実空間の画像)を表示するものであり、これにより、HMD1100を頭部に装着した観察者1000は、自身の右目、左目に対応する複合現実空間の画像を眼前に見ることができる。
次に計算機1300について説明する。
シリアルI/O1310は、3次元センサ本体1200から出力されるデータを受ける為のインターフェースとして機能するものであり、受けたデータはメモリ1302に出力される。なお、このデータは上述の取り、HMD内蔵センサ1120や手持ちセンサ5000のセンサ座標系における位置姿勢を示すデータである。本実施形態ではこの位置姿勢は、位置(x、y、z)を示すデータと、姿勢(roll,pitch,yaw)を示すデータにより構成されているものとする。すなわち、HMD内蔵センサ1120、手持ちセンサ5000は、6自由度の計測センサである。
なお、位置姿勢を表現する方法は他にも考えられ、これに限定するものではない。
ここで、メモリ1302には、世界座標系における予め計測された3次元センサ固定局1210の位置姿勢を示すデータ(オフセットデータ)が記憶されている。従って、このオフセットデータを用いれば周知の通り、センサ座標系における任意の位置姿勢を、世界座標系における位置姿勢に変換することができるので、CPU1301は、オフセットデータと、シリアルI/O1310を介してメモリ1302に入力された「センサ座標系におけるHMD内蔵センサ1120の位置姿勢を示すデータ」とを用いれば、「世界座標系におけるHMD内蔵センサ1120の位置姿勢」を求めることができるし、オフセットデータと、シリアルI/O1310を介してメモリ1302に入力された「センサ座標系における手持ちセンサ5000の位置姿勢を示すデータ」とを用いれば、「世界座標系における手持ちセンサ5000の位置姿勢」を求めることができる。
このような座標変換による位置姿勢の計算技術については周知の技術であるので、これ以上の説明は省略する。
ビデオキャプチャカード1320、1321はそれぞれ、右目カメラ1110、左目カメラ1111から入力される、各フレームの画像を受けるためのインターフェースとして機能するものであり、受けた画像は順次メモリ1302に出力する。本実施形態では、各フレームの画像はNTSCに準拠したものであるとするが、これに限定するものではない。
ビデオカード1330,1331はそれぞれ、CPU1301が後述する処理により生成した右目、左目に対応する複合現実空間の画像を右目LCD1130、左目LCD1131に出力するためのインターフェースとして機能するものであり、右目、左目に対応する複合現実空間の画像はそれぞれ、VGAに準拠した画像信号としてビデオカード1330、1331を介して右目LCD1130、左目LCD1131に出力される。
CPU1301は、計算機1300全体の制御を行うと共に、他の計算機2300,3300とのデータ通信を制御したり、計算機1300が行うべき後述の各処理を実行する。このような処理の実行は、メモリ1302に記憶されている各種のプログラムやデータを実行することでなされる。
メモリ1302は、CPU1301が各種の処理を実行するために使用するワークエリアや、CPU1301に各種の処理を実行させるためのプログラムやデータを記憶するためのエリア、また、シリアルI/O1310、ビデオキャプチャカード1320、1321を介して入力される各種のデータを一時的に記憶するためのエリアを備える。
ネットワークI/F(インターフェース)1390は、計算機1300を通信路を介して上記ネットワークハブ6000に接続するためのインターフェースとして機能するものであり、このネットワークI/F1390を介して計算機1300は他の計算機2300、3300とのデータ通信を行うことができる。
PCIブリッジ1303は、CPU1301、メモリ1302、ネットワークI/F1390がつながっているバスと、シリアルI/O1310、ビデオキャプチャカード1320、1321,ビデオカード1330、1331を繋ぐバスとを電気的に繋ぐためのものである。
次に、以上の構成を備える各装置によって、観察者1000に複合現実空間の画像を提示する処理について説明する。また、以下の説明における「仮想物体」は、観察者1000が観察しようとする対象の仮想物体である。すなわち、よく観察するために、その位置姿勢を観察者1000が簡便に変更するための仮想物体である。
3次元センサ本体1200は常に手持ちセンサ5000、HMD内蔵センサ1120から出力される信号を受け、受けた信号に応じたデータ、すなわち、センサ座標系における位置姿勢を示すデータに変換して計算機1300に出力する。計算機1300のCPU1301は、上記オフセットデータとシリアルI/O1310を介してメモリ1302に入力されたデータとを用いて、世界座標系における手持ちセンサ5000の位置姿勢、世界座標系におけるHMD内蔵センサ1120の位置姿勢を計算する。計算結果を示すデータは後述する処理で用いるために、一時的にメモリ1302に記憶させておく。
図5は、手持ちセンサ5000の構成例を示す図である。手持ちセンサ5000は、3次元センサ固定局1210からの磁界を検知するセンサ部5001と、このセンサ部5001のカバーとして機能するセンサカバー5002と、観察者1000が手に持つ部分の手持ち部5003とから成る。
一方、右目カメラ1110、左目カメラ1111は常に、HMD1100の位置姿勢(換言すれば、観察者1000の頭部の位置姿勢)に応じて見える現実空間の動画像を撮像するので、この動画像を構成する各フレームの画像はデータとしてビデオキャプチャカード1320、1321を介して順次メモリ1302に入力される。
CPU1301は、先に計算したHMD内蔵センサ1120の世界座標系における位置姿勢に、HMD内蔵センサ1120と左目カメラ1111との位置姿勢のずれ(予め計測し、その計測結果を示すデータはメモリ1302に記憶されている)を加算して、世界座標系における左目カメラ1111の位置姿勢を求め、求めた位置姿勢から見える仮想物体の画像を生成する。
ここで、仮想物体の位置姿勢には、手持ちセンサ5000の世界座標系における位置姿勢を設定する。すなわち、観察者1000は、手持ちセンサ5000を任意の位置姿勢に移動させることで、仮想物体の位置姿勢を任意に設定することができる。
これにより、世界座標系における手持ちセンサ5000の位置姿勢に仮想物体を配置することができる。なお、仮想物体の位置姿勢の決定処理の詳細については後述する。
そしてCPU1301は仮想物体の配置後、世界座標系における左目カメラ1111の位置姿勢から見える仮想物体の画像を生成する。また、仮想物体の画像を生成する際には、仮想物体に関するデータ(例えば、仮想物体の形状に関するデータ、色やテクスチャに関するデータなど)を用いるのであるが、このデータはメモリ1302に記憶されている。
そしてCPU1301は、上記処理により生成した仮想物体の画像を、先にメモリ1302にビデオキャプチャカード1321から入力された「観察者の左目から見える現実空間の画像」上に重畳させる。これにより、観察者1000の左目から見た現実空間に、観察者1000の左目から見た仮想物体を重畳させた上記複合現実空間画像を生成することができるので、CPU1301は生成した複合現実空間の画像をビデオカード1331を介してHMD1100の左目LCD1131に出力する。これにより、HMD1100の左目LCD1131には、観察者1000の左目から見た複合現実空間の画像が表示される。
なお、右目LCD1130に観察者1000の右目から見た複合現実空間の画像を表示させる処理についても、上記左目の場合と同様にして行う。すなわち、CPU1301は、先に計算したHMD内蔵センサ1120の世界座標系における位置姿勢に、HMD内蔵センサ1120と右目カメラ1110との位置姿勢のずれ(予め計測し、その計測結果を示すデータはメモリ1302に記憶されている)を加算して、世界座標系における右目カメラ1110の位置姿勢を求め、求めた位置姿勢から見える仮想物体の画像を生成する。
そして生成した仮想物体の画像を、先にメモリ1302にビデオキャプチャカード1320から入力された「観察者の右目から見える現実空間の画像」上に重畳させる。これにより、観察者1000の右目から見た現実空間に、観察者1000の右目から見た仮想物体を重畳させた上記複合現実空間画像を生成することができるので、CPU1301は生成した複合現実空間の画像をビデオカード1330を介してHMD1100の右目LCD1130に出力する。これにより、HMD1100の右目LCD1130には、観察者1000の右目から見た複合現実空間の画像が表示される。
以上の処理により、右目LCD1130、左目LCD1131にはそれぞれ、観察者1000の右目、左目から見える複合現実空間の画像が表示されるので、HMD1100を観察者1000は自身の頭部の位置姿勢に応じた複合現実空間の画像を眼前に見ることができる。
図6は、手持ちセンサ5000の位置姿勢が設定された仮想物体の表示例を示す図である。同図左は、仮想物体を表示していない状態を示しており、同図右は、手持ちセンサ5000の位置姿勢が設定された仮想物体4000の表示例を示している。同図では、仮想物体4000の重心位置(予め決められており、仮想物体に関するデータに含められている)を、手持ちセンサ5000の位置に合わせている。
以上の処理により、観察者1000は、観察しようとする仮想物体の位置姿勢を、手持ちセンサ5000を持った手を動かすだけで変更することができるので、より直感的に仮想物体の位置姿勢を変更することができ、仮想物体をよく観察することができる。
図10は、計算機1300を起動した際にCPU1301が行う処理のフローチャートである。
先ず、HMD1100の右目カメラ1110、左目カメラ1111のカメラパラメータ(画角や焦点距離など)から、projection matrixを作成し、メモリ1302にデータとして記憶しておく(ステップS100)。ここでprojection matrixとは、周知の通り、仮想空間中の物体を表示面に投影して画像を生成するための投影行列である。このprojection matrixを生成しておくことでこのprojection matrixを用いて生成した仮想物体の画像と、右目カメラ1110、左目カメラ1111により撮像された現実空間の画像とを合成した場合に、それぞれの画像間で画角や焦点距離などの整合性がとれる。
次に、仮想物体のローカル座標(仮想物体をCGソフトなどで作成する際にこの仮想物体について設定する原点、及びこの原点で互いに直交する軸をそれぞれx、y、z軸とすることで規定される座標系)での重心(gx、gy、gz)を求める。そして(−gx、−gy、−gz)だけ平行移動する変換行列MGを作成する(ステップS101)。この変換行列MGを仮想物体に適用すれば、仮想物体の重心をローカル座標の原点とすることができる。
次に、仮想物体の方向補正行列MDに単位行列を代入する(ステップS102)。仮想物体の方向補正行列MDは、手持ちセンサ5000に対して、仮想物体がどのような方向を向いているかを示している。初期状態ではMDには単位行列が入っているので、手持ちセンサ5000と仮想物体とは同じ方向を向いている。
このMDに回転を表す行列を設定することで、図7に示す如く、指定された部品を利用者の方向に向けることができる。
このMDは計算機1300のみが保持している(より具体的には計算機1300のメモリ1302のみが保持している)行列であり、この行列は、計算機1300のCPU1301が求めた、世界座標系における手持ちセンサ5000の位置姿勢と共に、計算機2300、3300に送信される。
また、移動中フラグをFALSEに設定する(ステップS102)。移動中フラグは、図7に示す如く、仮想物体が回転中であるか否かを示すためのフラグである。その詳細については後述するが、その使用用途は、指定された部品を観察者の方向に向けるアニメーション動作を実行するかどうかの判断に使用する。
以上の処理が、計算機1300が起動した際に実行される。
図11は、上記処理の後に、CPU1301、及びその他の各部が、複合現実空間の画像を生成して観察者1000に提示する為の処理のフローチャートである。なお、上述の通り、右目LCD1130に複合現実空間の画像を表示するための処理、左目LCD1131に複合現実空間の画像を表示するための処理は何れも実質的には同じであり、その何れも図11に示したフローチャートに従っている。
従って、以下の説明では、右目LCD1130に複合現実空間の画像を表示するための処理を例にとって説明するが、左目LCD1131に複合現実空間の画像を表示する場合についても、係る処理は同じである。
右目カメラ1110により撮像された現実空間の動画像を構成する各フレームの画像(ビデオ映像)は、ビデオキャプチャカード1320を介して計算機1300に入力されるので、CPU1301はこれをメモリ1302に順次入力し(ステップS200)、メモリ1302上に設けられているビデオバッファに書き込む(ステップS201)。本実施形態では、各フレームの画像は、1フレーム(2フィールド)分、640×480ピクセルでもって右目カメラ1110から入力されるが、これに限定するものではない。
一方、シリアルI/O1310を介して、3次元センサ本体1200から、HMD内蔵センサ1120が計測した位置姿勢を示すデータが入力されるので、CPU1301はこのデータと上記オフセットデータとを用いて周知の計算により、世界座標系におけるHMD内蔵センサ1120の位置姿勢を求め、求めた位置姿勢に、HMD内蔵センサ1120と右目カメラ1110との位置姿勢のずれのデータを加算して、世界座標系における右目カメラ1110の位置姿勢を求める(ステップS202)。
次に、上記projection matrixや右目カメラ1110の位置姿勢などに応じて、周知のviewing matrixを生成し、生成したviewing matrixのデータをメモリ1302に記録する(ステップS203)。このviewing matrixは周知の通り、仮想物体を見る仮想カメラの位置姿勢を右目カメラ1110の位置姿勢に一致させるためのものである。
また、シリアルI/O1310を介して、3次元センサ本体1200から、手持ちセンサ5000が計測した位置姿勢を示すデータが入力されるので、CPU1301はこのデータと上記オフセットデータとを用いて周知の計算により、世界座標系における手持ちセンサ5000の位置姿勢を求める(ステップS204)。より具体的には、世界座標系における原点から世界座標系における手持ちセンサ5000の位置姿勢への変換行列STを求める処理を行う。求めた変換行列STのデータはメモリ1302に記録される。
また、この変換行列STのデータは、ネットワークI/F1390、ネットワークハブ6000を介してその他の計算機2300,3300に出力される。
次に、仮想物体の方向調整行列MDを更新する(ステップS205)。これは先に図7で示したように、指定した部品を観察者1000の方向に向けるアニメーションを実現するための処理である。
図15は、このステップS205における処理の詳細を示すフローチャートである。
先ず、CPU1301は、仮想物体が回転中であるか否かを示すフラグを参照し、このフラグがTRUEであるか否かを判断する(ステップS400)。このフラグがFALSEである場合には仮想物体は回転していない、すなわち、回転する必要がないので、同図のフローチャートに従った処理を終了し、図11のステップS206に処理をリターンする。
一方、このフラグがTRUEである場合、処理をステップS401に進め、仮想物体を回転させたい角度(方向補正目標値)RAと、現在の仮想物体の角度(方向補正現在値)RCのとの差が閾値θより小さいか否かを判断する(ステップS401)。本実施形態では閾値θとして「3度」とするが、これに限定されるものではない。また、角度RAについては後述する。
上記差がθよりも小さい場合には、処理をステップS402に進め、回転が終了したものと判断し、フラグの値をFALSEに更新し(ステップS402)、同図のフローチャートに従った処理を終了し、図11のステップS206に処理をリターンする。
一方、上記差がθ以上である場合には、処理をステップS403に進め、現在の仮想物体の角度RCにθを加算して更新する処理を行う(ステップS403)。そして、上記方向調整行列MDに、「仮想物体の回転軸を示すベクトルRVを中心にθだけ回転する変換行列」を乗じて行列MDを更新する処理を行う(ステップS404)。
従って、ベクトルRVを軸に、仮想物体を回転させ、仮想物体の所望の部分(例えば仮想物体において観察者1000が選択した一部分)が観察者1000に見えるような角度になる場合、この角度が上記角度RAに相当する。
以上説明したステップS205における処理を繰り返し行うことで、仮想物体の所望の部分を観察者1000に向けるアニメーションを実現させることができる。
図11に戻って、仮想物体の位置姿勢を示す行列であるworld matrixを以下の式に従って求める(ステップS206)。
MD・MG・ST
ここで、MDは仮想物体の方向補正行列、MGは仮想物体の重心をローカル座標の原点に移動させる変換行列である。これにより求まる行列world matrixは、仮想物体の重心位置を、手持ちセンサ5000の位置姿勢に一致させる為のものである。
次に、上記フラグがTRUEであるか否かを判断する(ステップS207)。フラグがFALSEである場合、処理をステップS208に進め、CPU1301は、仮想物体の画像をworld matrix等を用いて周知の技術により生成する(ステップS208)。この画像は上述の通り、世界座標系における右目カメラ1110の位置姿勢に応じて見える仮想物体の画像である。生成した仮想物体の画像はメモリ1302上でレンダリングする。
一方、ステップS207で、フラグがTRUEである場合、処理をステップS209に進める。ステップS209,S210ではそれぞれ、仮想物体の所望の部分の画像、所望の部分ではない部分の画像をステップS208と同様にしてレンダリングするのであるが、ステップS210でのレンダリングは、レンダリング対象の画像を半透明にしてレンダリングする。レンダリング対象の画像を半透明形式にする技術については周知のものであるので、ここでの説明は省略する。
以上のステップS208、もしくはステップS209,S210の何れの処理を行っても、メモリ1302上には仮想物体の画像がレンダリングされるのであるが、メモリ1302には先に現実空間の画像が格納されており、ステップS208、もしくはステップS209,S210の何れでも、この現実空間の画像上に仮想物体の画像をレンダリングする。これにより、結果としてメモリ1302上には、現実空間の画像上に仮想物体の画像が重畳された画像、すなわち、複合現実空間の画像が生成されるので、CPU1301はこの複合現実空間の画像のデータを、ビデオカード1330のフレームバッファに出力する(ステップS211)。その結果、ビデオカード1330のフレームバッファの画像は右目LCD1130に出力される
以上の処理を繰り返し行うことにより、観察者1000は、観察しようとする仮想物体の位置姿勢を、手持ちセンサ5000を持った手を動かすだけで変更することができるので、より直感的に仮想物体の位置姿勢を変更することができ、仮想物体をよく観察することができる。
また上述の通り、計算機1300が求めた、世界座標系における手持ちセンサ5000の位置姿勢、すなわち、行列STのデータを他の計算機2300,3300に送信することにより、計算機2300,3300は計算機1300と同様の処理を行う(上記処理において行列STを求める処理の代わりに、計算機1300から行列STのデータを受ける処理を行う)ことにより、観察者2000、3000に対して、観察者1000が手持ちセンサ5000でもってその位置や姿勢を操作している仮想物体を見せることができる。
次に、仮想物体の一部分を観察者が指示(選択)した場合に、選択した部分を観察者1000に見えるように、仮想物体を回転させる処理について説明する。
仮想物体の一部分とは、例えば、仮想物体を構成する部品などである。また、その指示(選択)手段については、例えば、予め選択されているものでも良いし、計算機1300のオペレータが計算機1300に備わっているキーボードやマウスなどを用いて指示するようにしても良いし、その指示方法は特に限定するものではない。また、仮想物体の一部分とは、観察者1000に指示されたものに限定するものではなく、仮想物体に追加した部品や、削除した部品などであっても良い。すなわち、仮想物体の一部分とは、観察者1000が観察する対象の部分であって、これが何であるかは特に限定するものではない。
例えば仮想モデルが図14に示す如く、複数の部品(同図では各立方体に相当)により構成されており、且つこの仮想物体を紙面手前から観察者1000が観察しており、同図において4100で示す部品が選択された場合、観察者1000はこの部品4100を観察したいのであるから、この部品4100をより見やすくするために、仮想物体を回転させ、部品4100が紙面手前にくるようにしたい。以下では同図の仮想物体を例に取り説明するが、以下の説明の本質はこれに限定されるものではないことは明らかである。
図12は、仮想物体の一部分が指示されている場合に、この一部分を観察者に対して向けるべく、仮想物体を回転させる処理のフローチャートである。同図のフローチャートに従った処理は、仮想物体の一部が選択された際に、図15のフローチャートにおいて、ステップS400の前で行われるものである。
先ず、CPU1301は、選択された部品4100の重心位置(部品4100の位置)を求める(ステップS300)。この重心位置は、例えば部品4100がポリゴンにより構成されている場合には、各ポリゴンの頂点位置の平均値で近似する。
次に、CPU1301は、ステップS300で求めた重心位置と、仮想物体全体の重心位置とを結ぶベクトルPDを求める(ステップS301)。ベクトルPDは、選択された部品4100が、現在どの方向を向いているかを示すものである。
次に、CPU1301は、世界座標系におけるHMD内蔵センサ1120の位置(この位置を元に、例えば右目カメラ1110の世界座標系における位置や左目カメラ1111の世界座標系における位置を計算し、これらの位置を用いても良いが、観察者1000の「視点位置」とする位置であることが好ましい)と、仮想物体の重心位置とを結ぶベクトルUDを求める(ステップS302)。なお、本実施形態の場合には、観察者は3人いるので、それぞれの観察者の頭部に装着されているHMDに備わっているHMD内蔵センサの世界座標系における位置を取得し、取得した3つの位置を平均化した位置を求め、求めた位置と仮想物体の重心位置とを結ぶベクトルを上記ベクトルUDとして求める。ベクトルUDは、部品4100を向けるべき方向を示すものである。
次に、CPU1301は、ベクトルPDとベクトルUDとがなす角RAをそれぞれのベクトルの内積を計算することにより求める(ステップS303)。RAは、仮想物体を回転させる角度(方向補正目標値)となる。次に、CPU1301は、ベクトルPDとベクトルUDとの外積を計算し、それぞれのベクトルに垂直なベクトルRVを求める(ステップS304)。ベクトルRVは、仮想物体を回転させるときの回転軸となる。図13は、上記各ベクトルRV、UD、PDを示す図である。
次に、CPU1301は、角度RAが180度より大きかった場合には(ステップS305)、回転の向きを逆にするため、回転軸RVの向きを反転させ、角度RAを「180度−RA」に更新する(ステップS306)。
次に、現在何度だけ仮想物体を回転させたかを示す角RC(方向補正現在値)を0度に設定し、仮想物体を回転させている途中であることを示すフラグをTRUEにする(ステップS307)。
そして処理を、図15のステップS400に進める。
すなわち、この処理では、仮想物体の重心位置と部品4100の位置とを結ぶベクトルが、仮想物体の重心位置と観察者の視点位置とを結ぶベクトルと略一致するように、仮想物体を回転させている。
以上の処理により、部品4100を、手持ちセンサ5000の位置で仮想物体の重心を中心に回転させて、観察者1000側に向けることができる。
以上の説明により、本実施形態によって、手持ちセンサの位置を変えたり、向きを変えることで、仮想物体を自由な角度から眺めることができる。
また、手持ちセンサの位置は、仮想物体の重心と一致している。重心が一致しているため、観察者は「手持ちセンサで仮想モデルを持っている」という感覚で仮想物体を操作することができる。
また仮想モデルを構成する一部分(部品)を選択すると、その部品が観察者側に向くよう仮想物体を重心を中心に回転させることができる。また、観察者が複数人のときには、最も多くの観察者に見える方向に仮想物体を回転させることができる。これにより、仮想物体の検討などをスムーズに行うことができる。
また仮想物体が見やすい方向に回転している間は、仮想物体の選択された部品以外の部分は半透明に表示する。これにより選択した部品をよりわかりやすく観察者に提示できる。
なお、本実施形態では、仮想物体の位置姿勢として上記world matrixが示す位置姿勢を設定していたが、単純に、手持ちセンサ5000の位置姿勢をそのまま設定しても良い。 また、本実施形態では、選択した部品の画像以外を半透明にして表示したが、選択した部品以外を半透明にして表示するか否かを切り替えるようにしても良いし、選択した部品以外を所定の色でもって表示するようにしても良いし、選択した部品、選択した部品以外をどのようにして表示するかの表示形態は特に限定するものではない。
また、HMDの位置姿勢を求める方法は上記方法に限定するものではなく、右目カメラ1110、左目カメラ1111が撮像した画像中の世界座標系における位置が既知であるマーカなどから周知の技術によりHMDの姿勢を推定してもよい。
また、本実施形態では、仮想物体を重心位置を中心として回転させたが、回転の中心位置は重心位置に限定するものではなく、仮想物体中の任意の1点でも良いし、その中心位置の設定は特に限定するもではない。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
CADモデル(プリンタのトナーカートリッジのCADモデル)100をCG物体として表示し、CADモデルのプレビューに使用している様子を示す図である。 HMDの構成を示す図である。 HMD内の各LCD1130、1131に表示される、各カメラ1110、1111で撮影された実写映像と、CG画像として描かれたCADモデル300が合成された画像を示す図である。 複数人により観察できる、MR技術を使用したCADビューワの機器構成を示す図である。 手持ちセンサ5000の構成例を示す図である。 手持ちセンサ5000の位置姿勢が設定された仮想物体の表示例を示す図である。 指定された部品を利用者の方向に向ける様子を示す図である。 本発明の実施形態に係るシステムの外観図である。 観察者1000に対して複合現実空間の画像を提供する為の装置の基本構成を示す図である。 計算機1300を起動した際にCPU1301が行う処理のフローチャートである。 CPU1301、及びその他の各部が、複合現実空間の画像を生成して観察者1000に提示する為の処理のフローチャートである。 仮想物体の一部分が指示されている場合に、この一部分を観察者に対して向けるべく、仮想物体を回転させる処理のフローチャートである。 各ベクトルRV、UD、PDを示す図である。 複数の部品(同図では各立方体に相当)により構成されている仮想物体を示す図である。 ステップS205における処理の詳細を示すフローチャートである。

Claims (7)

  1. 現実空間中に仮想物体を重畳させて観察者に提供する画像処理方法であって、
    前記観察者の視点の位置姿勢を計測する為のセンサの計測結果に基づいて、当該視点の位置姿勢を計算する第1の計算工程と、
    前記観察者の手に装着されている手持ちセンサにより計測された結果に基づいて、当該手持ちセンサの位置姿勢を求める第2の計算工程と、
    前記第2の計算工程で計算された位置姿勢を、前記観察者が観察する対象の仮想物体の位置姿勢として設定する設定工程と、
    前記設定工程で位置姿勢が設定された仮想物体を前記第1の計算工程で求めた位置姿勢の視点から見た場合の画像を生成して、現実空間に重畳させて前記観察者に提供する提供工程とを備え、
    更に前記提供工程では、
    前記仮想物体における一部分が指示された場合、当該一部分が前記視点の位置姿勢から見えるように前記仮想物体の向きを変化させた前記仮想物体を前記第1の計算工程で求めた位置姿勢の視点から見た場合の画像を生成して、現実空間に重畳させて前記観察者に提供することを特徴とする画像処理方法。
  2. 前記設定工程では、前記観察者が観察する対象の仮想物体の重心の位置姿勢として、前記第2の計算工程で計算された位置姿勢を設定することを特徴とする請求項1に記載の画像処理方法。
  3. 前記提供工程では、前記仮想物体の重心位置と前記一部分の位置とを結ぶベクトルが、前記仮想物体の重心位置と前記観察者の視点位置とを結ぶベクトルと略一致するように、前記仮想物体を回転させることを特徴とする請求項1に記載の画像処理方法。
  4. 前記提供工程では、前記仮想物体の画像を生成する際、前記一部分以外を半透明にした画像を生成することを特徴とする請求項3に記載の画像処理方法。
  5. 現実空間中に仮想物体を重畳させて観察者に提供する画像処理装置であって、
    前記観察者の視点の位置姿勢を計測する為のセンサの計測結果に基づいて、当該視点の位置姿勢を計算する第1の計算手段と、
    前記観察者の手に装着されている手持ちセンサにより計測された結果に基づいて、当該手持ちセンサの位置姿勢を求める第2の計算手段と、
    前記第2の計算手段によって計算された位置姿勢を、前記観察者が観察する対象の仮想物体の位置姿勢として設定する設定手段と、
    前記設定手段によって位置姿勢が設定された仮想物体を前記第1の計算手段によって求めた位置姿勢の視点から見た場合の画像を生成して、現実空間に重畳させて前記観察者に提供する提供手段とを備え、
    更に前記提供手段は、
    前記仮想物体における一部分が指示された場合、当該一部分が前記視点の位置姿勢から見えるように前記仮想物体の向きを変化させた前記仮想物体を前記第1の計算手段によって求めた位置姿勢の視点から見た場合の画像を生成して、現実空間に重畳させて前記観察者に提供することを特徴とする画像処理装置。
  6. コンピュータに、請求項1乃至4の何れか1項に記載の画像処理方法を実行させることを特徴とするプログラム。
  7. 請求項6に記載のプログラムを格納することを特徴とする、コンピュータ読みとり可能な記憶媒体。
JP2004064491A 2004-03-08 2004-03-08 画像処理方法、画像処理装置 Withdrawn JP2005251118A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004064491A JP2005251118A (ja) 2004-03-08 2004-03-08 画像処理方法、画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004064491A JP2005251118A (ja) 2004-03-08 2004-03-08 画像処理方法、画像処理装置

Publications (1)

Publication Number Publication Date
JP2005251118A true JP2005251118A (ja) 2005-09-15

Family

ID=35031510

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004064491A Withdrawn JP2005251118A (ja) 2004-03-08 2004-03-08 画像処理方法、画像処理装置

Country Status (1)

Country Link
JP (1) JP2005251118A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007042073A (ja) * 2005-07-01 2007-02-15 Canon Inc 映像提示システム、映像提示方法、該映像提示方法をコンピュータに実行させるためのプログラム、および記憶媒体
JP2012108842A (ja) * 2010-11-19 2012-06-07 Konica Minolta Holdings Inc 表示システム、表示処理装置、表示方法、および表示プログラム
JP2012178067A (ja) * 2011-02-25 2012-09-13 Nintendo Co Ltd 情報処理システム、情報処理方法、情報処理装置、及び情報処理プログラム
JP2013061978A (ja) * 2007-01-05 2013-04-04 Total Immersion 画像により表現されている実シーンからのデータを使って、画像ストリームに仮想オブジェクトをリアルタイムで挿入するための方法と装置
JP2015228256A (ja) * 2011-03-29 2015-12-17 クアルコム,インコーポレイテッド 各ユーザの視点に対する共有デジタルインターフェースのレンダリングのためのシステム
US10078914B2 (en) 2013-09-13 2018-09-18 Fujitsu Limited Setting method and information processing device
CN112348753A (zh) * 2020-10-28 2021-02-09 杭州如雷科技有限公司 一种用于沉浸式内容的投影方法和***
JP7480388B2 (ja) 2019-03-06 2024-05-09 マクセル株式会社 ヘッドマウント情報処理装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007042073A (ja) * 2005-07-01 2007-02-15 Canon Inc 映像提示システム、映像提示方法、該映像提示方法をコンピュータに実行させるためのプログラム、および記憶媒体
JP2013061978A (ja) * 2007-01-05 2013-04-04 Total Immersion 画像により表現されている実シーンからのデータを使って、画像ストリームに仮想オブジェクトをリアルタイムで挿入するための方法と装置
JP2012108842A (ja) * 2010-11-19 2012-06-07 Konica Minolta Holdings Inc 表示システム、表示処理装置、表示方法、および表示プログラム
JP2012178067A (ja) * 2011-02-25 2012-09-13 Nintendo Co Ltd 情報処理システム、情報処理方法、情報処理装置、及び情報処理プログラム
US8970623B2 (en) 2011-02-25 2015-03-03 Nintendo Co., Ltd. Information processing system, information processing method, information processing device and tangible recoding medium recording information processing program
JP2015228256A (ja) * 2011-03-29 2015-12-17 クアルコム,インコーポレイテッド 各ユーザの視点に対する共有デジタルインターフェースのレンダリングのためのシステム
US10078914B2 (en) 2013-09-13 2018-09-18 Fujitsu Limited Setting method and information processing device
JP7480388B2 (ja) 2019-03-06 2024-05-09 マクセル株式会社 ヘッドマウント情報処理装置
CN112348753A (zh) * 2020-10-28 2021-02-09 杭州如雷科技有限公司 一种用于沉浸式内容的投影方法和***

Similar Documents

Publication Publication Date Title
KR102517876B1 (ko) 증강 현실 데이터를 레코딩하기 위한 기술
JP4227561B2 (ja) 画像処理方法、画像処理装置
JP4262011B2 (ja) 画像提示方法及び装置
JP4950834B2 (ja) 画像処理装置、画像処理方法
JP4533087B2 (ja) 画像処理方法、画像処理装置
JP4933406B2 (ja) 画像処理装置、画像処理方法
JP4553362B2 (ja) システム、画像処理装置、情報処理方法
JP4757115B2 (ja) 画像処理装置、画像処理方法
JP2009025918A (ja) 画像処理装置、画像処理方法
JP2004062756A (ja) 情報提示装置および情報処理方法
JP2020514909A (ja) 多ソース仮想コンテンツ合成を伴う複合現実システムおよびそれを使用して仮想コンテンツを生成する方法
JP2005107971A (ja) 複合現実空間画像生成方法及び複合現実感システム
JP2019008623A (ja) 情報処理装置、及び、情報処理装置の制御方法、コンピュータプログラム、記憶媒体
JP2005174021A (ja) 情報提示方法及び装置
JP2016122392A (ja) 情報処理装置、情報処理システム、その制御方法及びプログラム
JP2006252468A (ja) 画像処理方法、画像処理装置
JP2022058753A (ja) 情報処理装置、情報処理方法及びプログラム
JP2005251118A (ja) 画像処理方法、画像処理装置
JP4235522B2 (ja) 画像処理装置、画像処理方法、およびプログラム
JP6726016B2 (ja) 情報処理装置、情報処理方法
JP4689344B2 (ja) 情報処理方法、情報処理装置
JP2008217119A (ja) システム、画像処理装置、画像処理方法
JP2023065528A (ja) ヘッドマウント情報処理装置およびヘッドマウントディスプレイシステム
JP4217661B2 (ja) 画像処理方法、画像処理装置
JP2019040357A (ja) 画像処理装置、画像処理方法、コンピュータプログラム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070605