JP2018132847A - 情報処理装置、情報処理方法、およびプログラム - Google Patents
情報処理装置、情報処理方法、およびプログラム Download PDFInfo
- Publication number
- JP2018132847A JP2018132847A JP2017024549A JP2017024549A JP2018132847A JP 2018132847 A JP2018132847 A JP 2018132847A JP 2017024549 A JP2017024549 A JP 2017024549A JP 2017024549 A JP2017024549 A JP 2017024549A JP 2018132847 A JP2018132847 A JP 2018132847A
- Authority
- JP
- Japan
- Prior art keywords
- virtual object
- orientation
- dimensional virtual
- plane
- corresponding surface
- 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.)
- Pending
Links
Landscapes
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
【課題】三次元仮想物体を意図した位置姿勢に素早く正確に配置すること。【解決手段】現実物の一つの面に三次元仮想物体の面のうち、一つの面が平行になるように、三次元仮想物体を移動する。このとき、現実物の面を構成する点や辺と三次元仮想物体の面を構成する点や辺が所定の位置関係になるように移動する。さらに、現実物の面と三次元仮想物体の相対位置姿勢を調整する手段を用いて操作しやすい相対位置姿勢に調整する。そして、現実物の面と三次元仮想物体の相対位置姿勢を保ちながら、現実物の移動に合わせて三次元仮想物体を移動させることで素早く正確に三次元仮想物体を配置する。【選択図】図1
Description
本発明は、複合現実感提示システムにおいて、三次元空間上での仮想物体の位置姿勢情報を設定する技術に関する。
CADデータやCGなどの仮想的な三次元モデル(以後、三次元仮想物体と呼ぶ)を三次元空間上に配置する方法を考える。従来方法では、観察者はまず、ディスプレイ等の二次元画面に三次元仮想物体を二次元画像として投影し、擬似的な三次元空間上でキーボード等を用いて物体の位置姿勢の操作を行い、三次元仮想物体の配置を設定していた。しかし、この方法では、二次元画像への投影時に、三次元仮想物体の情報が欠落してしまい、三次元仮想物体を直観的に操作し、配置することが難しい場合がある。この問題を解決するために、複合現実感(Mixed Reality:MR)技術(例えば、特許文献1)を用いて、三次元仮
想物体を三次元空間上で操作して配置する方法が試みられている。
想物体を三次元空間上で操作して配置する方法が試みられている。
三次元仮想物体を三次元の現実空間内で操作する方法の例としては、6自由度位置姿勢計測装置(例えば、Polhemus社のFASTRAK(登録商標)センサのスタイラス)を用いる方法がある。この方法では、観察者は、6自由度位置姿勢計測装置から出力される位置姿勢変化分を取り出し、その変化分を三次元仮想物体の移動回転量として三次元仮想物体の配置を設定する(特許文献1)。
観察者に提示する手段としては、HMD(Head Mounted Display)などが用いられる。このHMDにより、観察者は、現実空間と三次元仮想物体との位置関係を容易に把握し、三次元仮想物体の配置の設定を行うことが出来る。
特許文献1のような手法で、観察者が、現実物体と現実物体の形状を模した三次元仮想物体の配置が同じになるように、三次元仮想物体の位置姿勢を設定しようとする場合を考える。このとき、6自由度位置姿勢計測装置により三次元仮想物体を操作する際に面ではなく点で操作するため、姿勢が一意に定まらず短時間で正確に三次元仮想物体の位置姿勢を設定することは難しい。
そこで、特許文献2では現実物体(手など)の面の情報を取得し、情報取得した面と三次元仮想物体の特定の面が平行に接するように現実物と三次元仮想物体の相対位置姿勢を設定する。そして、現実物の位置姿勢の変化を6自由度位置姿勢計測装置で計測し、現実物体が移動しても、設定された現実物と三次元仮想物体の相対位置姿勢を保つように三次元仮想物体を移動させる。これにより、三次元仮想物体を点ではなく(現実物体の)面で操作でき、現実物体の面の位置姿勢を変えることで仮想物体の位置姿勢を変更し、狙った位置姿勢に三次元仮想物体を配置することができる。
特許文献2のような手法では、三次元仮想物体と現実物体の面同士が平行に接するようにはしているが、その時の三次元仮想物体と現実物体の相対位置姿勢が必ずしも扱いやすい姿勢になるとは限らない。
例えば、図2のように現実物体である直方体200の右側の平面202に対して、三次元仮想物体である直方体201の左側の平面203を平行に接するよう設定する場合を考える。このとき、直方体200の右側の平面202と直方体201の左側の平面203の相対位置姿勢の設定方法は複数のパターンが考えられる。図2(a)の場合には平面202の面の中心位置と平面203の面の中心位置が一致し、かつ、平面202を構成する辺と平面203を構成する辺が平行になっている。
図2(b)の場合には平面202を構成する頂点の位置と平面203の面の中心位置が一致し、かつ、平面202を構成する辺と平面203を構成する辺が平行になっている。図2(c)の場合には平面202を構成する頂点の位置202と平面203を構成する頂点の位置203が一致し、平面202を構成する辺と平面203を構成する辺が平行になっている。また、図2(d)の場合には平面202を構成する辺の中心位置と平面203を構成する辺の中心位置が一致し、かつ、平面202を構成する辺と平面203を構成する辺が平行になっている。また、図2(e)の場合には、平面202の面の中心位置と平面203の面の中心位置が一致し、かつ、平面202を構成する辺と平面203を構成する辺の間の角度が45度になるように設定されている。このように平面同士を平行に接するように設定する場合にも色々な設定方法が考えられる。
この図2のような平面同士の相対位置姿勢の例を用いて、図3のように三次元仮想物体である直方体201を配置することを考える。図3では直方体201の底面が床面301の上に接するように配置されている。このように直方体201を配置するために、図2の各例を用いて直方体201の位置姿勢を変更する場合、各例によって作業の行いやすさに差が出る。例えば、図2(a)や図2(b)の例では、直方体201の底面が現実物である直方体200の底面より下側にある。
そのため、床面301に直方体201の底面を合わせようとすると、直方体200の底面が床面301に平行になり、かつ直方体201の底面の高さが床面301に合うように直方体200を空中で調整しなければならない。空中で現実物を水平に保つことは道具などを使わない限り容易ではないので、精度高く直方体201を配置することは困難になる。また、図2(e)のように直方体200と直方体201の底面の傾きが異なる場合には、直方体201の底面が床面301と平行になるように直方体200を傾けながら高さも調節する必要がある。
これに対して、図2(c)や図2(d)では直方体200の底面と直方体201の底面は平行でかつ同じ高さにある。この場合には、直方体200を床面301の上に置いて、床面の上で直方体200を移動させるだけで目標の位置姿勢に直方体201を配置することができる。
このように、目標とする三次元仮想物体の位置姿勢や、三次元仮想物体と現実物の形状、周辺の環境(図3の例では床面301)によって、どのような三次元仮想物体と現実物の相対位置姿勢が操作しやすいかが異なる。そのため、各条件において、狙った位置姿勢に短時間で正確に三次元仮想物体を配置しやすいように三次元仮想物体と現実物体の相対位置姿勢を決定または調整できる必要がある。
現実物の形状に対応する面である基準面を取得する取得手段と、
前記基準面に関する少なくとも1つ以上の軸または点を取得する基準面情報取得手段と、
三次元仮想物体の面のうち、一つの面を対応面として選択する選択手段と、
前記対応面に関する少なくとも1つ以上の軸または点を取得する対応面情報取得手段と、
前記基準面に関する少なくとも1つ以上の前記軸または点と前記対応面に関する少なくとも1つ以上の軸または点とが所定の位置関係になるように前記三次元仮想物体の位置姿勢を設定する設定手段と、
前記基準面に対する前記対応面の相対位置および相対姿勢の少なくとも1つ以上を調整する調整手段と、
前記基準面の移動に応じて、前記三次元仮想物体の位置を移動する移動手段と、
前記移動手段によって移動された結果に基づいて、前記三次元仮想物体の位置姿勢を決定する決定手段と、
を有することを特徴とする情報処理装置。
前記基準面に関する少なくとも1つ以上の軸または点を取得する基準面情報取得手段と、
三次元仮想物体の面のうち、一つの面を対応面として選択する選択手段と、
前記対応面に関する少なくとも1つ以上の軸または点を取得する対応面情報取得手段と、
前記基準面に関する少なくとも1つ以上の前記軸または点と前記対応面に関する少なくとも1つ以上の軸または点とが所定の位置関係になるように前記三次元仮想物体の位置姿勢を設定する設定手段と、
前記基準面に対する前記対応面の相対位置および相対姿勢の少なくとも1つ以上を調整する調整手段と、
前記基準面の移動に応じて、前記三次元仮想物体の位置を移動する移動手段と、
前記移動手段によって移動された結果に基づいて、前記三次元仮想物体の位置姿勢を決定する決定手段と、
を有することを特徴とする情報処理装置。
本発明によれば、より短時間で三次元仮想物体の位置姿勢を正確に設定することが可能になる。
[実施例1]
図4は、情報処理装置400のハードウェア構成を示す図である。情報処理装置400は、CPU401、RAM402、ROM403、HDD404、インターフェース405、システムバス406から構成され、HMD407が接続されている。
図4は、情報処理装置400のハードウェア構成を示す図である。情報処理装置400は、CPU401、RAM402、ROM403、HDD404、インターフェース405、システムバス406から構成され、HMD407が接続されている。
CPU401は、RAM402をワークメモリとして、ROM403に格納されたプログラムを実行し、システムバス406を介して後述する各構成を統括的に制御する。これにより、後述する様々な処理が実行される。HDD404は、二次記憶装置としての役割を持つ。CPU401は、HDD404からのデータ読み出し、およびHDD404へのデータ書き込みが可能である。なお、二次記憶装置は、HDDの他、光ディスクドライブ等の記憶デバイスでもよい。インターフェース405は、HMD407などの外部機器とのデータのやり取りを行う。
HMD407は、撮影部408、409と表示部410、411とから構成され、撮影部408、409の撮影画像や後述の合成画像を表示部410、411に表示する。なお、本発明は情報処理装置400にHMD407が接続されている場合に限定されず、現実物体の撮影画像を取得できる構成であれば適用可能である。また、HMD407に含まれる表示部410、411の代わりに、ディスプレイを表示部として用いる構成でも可能である。
入力部412は、ユーザーからの入力をシステムに渡すためのものであり、マウスやキーボード、コントローラやボタン、マイク、タッチパネルなどを指す。なお、情報処理装置400の構成要素は上記以外にも存在するが、本発明の主眼ではないので、説明を省略する。
図5は、本実施形態にかかる情報処理装置400の機能構成を示す図である。また、図6は、本実施形態の処理の流れを示すフローチャートである。本実施例では図6のフローチャートを、撮像部408、409から撮影像が送られる度に繰り返し処理する。以下では、図5と図6を参照して、本実施形態の処理の流れを説明する。また、図7は本実施例の使用時の状況の一例を示す図であり、三次元仮想物体702の位置姿勢を、コントロール装置701を用いて変更する場合を示した図である。
ステップS600では、画像取得手段500が撮像部408、409からそれぞれ撮像画像を取得する。以下、撮像部408、409から取得した撮像画像をまとめて、「ステレオ画像」と記述することがある。ステップS601では、位置姿勢算出手段501がステップS500において取得したステレオ画像のそれぞれから撮像部408、409の位置姿勢を算出する。
ステレオ画像から撮像部408、409の位置姿勢を算出する手段として、指標を用いる手法が存在する。これは図7のようにHMD407の撮像部408、409で指標700を撮影し、指標700に対する撮像部408、409の位置姿勢を算出する手法である。この他の撮影画像をもとに撮像部408や撮像部409の位置姿勢を求める手法としてはSLAM(Simultaneous Localization and Mapping)が存在する。
また、本実施例では、撮像部408、409の撮影像から撮像部408、409の位置姿勢を求める手法を示しているが、磁気センサやジャイロセンサなどのセンサを用いて位置姿勢を求めてもよい。また、センサから得られる情報と撮影像を組み合わせて位置姿勢を推定してもよく、撮像部408、409の位置姿勢を求めることができる任意の手段を用いることができる。
ステップS602では、選択手段502が、RAM402に記録されている情報や入力部412からの情報に基づいて、三次元仮想物体702の位置姿勢を変更する処理を行う操作が行われたかを調べる。ここで、入力部412からの入力とはキーボードによるコマンド選択やマウスを用いたGUI(Graphical User Interface)操作、音声認識による操作などによって三次元仮想物体702の位置姿勢を変更するモードに切り替える処理を指す。三次元仮想物体702の位置姿勢を変更する処理が行われている場合にはステップS603へ、行われていない場合にはステップS614へ進む。
ステップS603では、基準面取得手段503がステップS500において取得したステレオ画像から基準面の位置姿勢を算出する。ここでの基準面とは、三次元仮想物体を任意の位置姿勢に配置する際に、三次元仮想物体の位置姿勢を変更するために用いる現実物に対応する面を指す。
本実施例では、図8のように基準面として三次元仮想物体操作用のコントロール装置701に存在する直方体の面800を基準面として用いる場合について示す。基準面の位置姿勢算出の手法としては、コントロール装置701の面800に指標700と異なる指標801を貼り、指標801の位置姿勢を撮影像から推定する手法がある。このとき、図8のように基準面として用いる面800以外の面にも指標を張っておき、各指標間の相対位置姿勢を事前に計算しておくことで、指標801が検出できないときでも指標801の位置姿勢を他の指標から推定することもできる。
なお、基準面の位置姿勢の計算は指標を用いた手法に限らず、ステレオマッチングやSfM(Structure from Motion)などの現実物の形状や位置を推定する技術を用いて得られた結果から、平面領域を推定してもよい。また、撮像部408、409の位置姿勢の計算同様にセンサを用いてもよく、任意の手法で基準面の位置姿勢を求めることができる。また、基準面も本実施例のコントロール装置701の面800のような平面に限らず、特許文献2のように手の形状を平面で近似して基準面とすることができ、任意の現実物を基準面とすることができる。
ステップS604では、基準面情報取得手段504が基準面の情報を取得する。ここでの基準面の情報とは基準面を構成する辺や頂点の位置、辺に平行な軸、法線などを指す。本実施例の図7、8のような場合には、指標801の位置姿勢がステップS603で取得できているので、指標801の位置姿勢と、事前に計測した指標801に対する平面800の辺や頂点の相対位置姿勢から計算することができる。また、指標を用いず、現実物の形状を推定して基準面の位置姿勢を求めるような場合には、推定された形状から基準面の辺や頂点の位置姿勢を求めることができる。
ステップS605では、選択手段502がRAM402に記録されている情報から、三次元仮想物体702の位置姿勢を変更する際の三次元仮想物体702と基準面である面800の相対位置姿勢を設定済みか調べる。設定済みであればステップS609へ、設定済みでなければステップS606へ進む。
ステップS606では、選択手段502がRAM402に記録されている情報や入力部412からの情報に基づいて、基準面である面800に対して所定の位置関係になるように設定する三次元仮想物体702上の対応面を選択する。対応面の選択候補となる面に関しては後で詳細を記述する。選択の手段としては、ステップS602同様にキーボードによるコマンド選択やマウスを用いたGUI操作、音声認識による操作などによる選択を行う。
また、ステップS606になった段階で既に過去に対応面を選択済みであればその面をそのまま用いることもできる。
また、ステップS606になった段階で既に過去に対応面を選択済みであればその面をそのまま用いることもできる。
ここから対応面の選択候補について詳細を説明する。対応面の選択候補としては、三次元仮想物体702を構成する面と、三次元仮想物体702を囲むように構成されたバウンディングボックスの面を利用することができる。具体的には図9のように三次元仮想物体702を構成する面900や面901を対応面として使用することができる。また、バウンディングボックスを作り、バウンディングボックスの一面を用いることもできる。
バウンディングボックスの作り方としては、AABB(Axis-Aligned Bounding box) やOBB(Oriented Bounding box)などがある。AABBでは三次元仮想物体702を構成する頂点のうち、ある座標系の各軸方向において最大値、最小値を持つ頂点を求めて、各軸方向の最大値、最小値を用いた直方体を形成することで作成することができる。AABBの計算に用いる座標系は、三次元仮想物体702の形状を定義するときに用いるローカル座標系902や撮像部408、409の位置姿勢を決めるための指標700で定義される座標系703 (以下、世界座標系と記述する)を用いることができる。
これにより得られたバウンディングボックス904のうちの一面(例えば面903)を対応面として利用する。また、OBBは三次元仮想物体702を構成する頂点のローカル座標系902での座標値を使って主成分分析して、三次元仮想物体702の傾きに合った座標系907を求め、座標系907の各軸でAABBのように最大値、最小値を算出することで作成できる。これにより得られるバウンディングボックス905の一面(例えば面906)を対応面として利用する。
ステップS607では、対応面情報取得手段505がステップS606で選択された対応面の情報を取得する。ここでの対応面の情報とは基準面の情報同様、対応面を構成する辺や頂点の位置、辺に平行な軸、法線などを指す。これらは三次元仮想物体702の形状情報やバウンディングボックス904や905の算出過程の情報から容易に得ることができる。ステップS608では、設定手段506がステップS603やS604で得た基準面の位置姿勢や基準面の情報、ステップS608で得た対応面の情報から、基準面と対応面が所定の相対位置姿勢になるように三次元仮想物体702の位置姿勢を変える。
ここで所定の相対位置姿勢とは、基準面と対応面が平行になり、面同士が接する状態を指す。その上で、基準面の各点や辺または辺に平行な軸と対応面の点または辺、辺に平行な軸が所定の位置関係になるように設定する。これは具体的には図2(a)のように面の中心同士が同じ位置になるようにしたり、各面の辺同士が平行になるようにしたりすることができる。また、図2(b)のように一方の面202の頂点と他方の面203の中心の位置を合わせたり、図2(d)のように各面の辺の中点同士を合わせたりしてもよく、各面に関する情報を用いて定義できる任意の位置関係を用いることができる。
このような処理を用いることによって、例えば三次元仮想物体702のバウンディングボックスの面906を対応面として、面800を基準面として利用する場合には図10(a)のように三次元仮想物体702と面800の相対位置姿勢を決定することができる。図10(a)は面906と面800の面の中心位置が一致し、面の各辺同士が平行になるように配置した場合の図である。
なお、本実施例では基準面と対応面が平行になり、面同士が接する状態を利用しているが、これに限るものではなく面の法線同士の間の角度が任意の角度になる場合や面同士が平行だが接していない場合など任意の相対位置姿勢を用いることができる。
ステップS609では、調整手段507が入力部412からの情報に基づいて、ステップS608で設定された三次元仮想物体702と基準面である面800の間の相対位置姿勢を調整するかどうかを判定する。調整を行う場合にはステップS610へ、調整を行わない場合にはステップS611へ進む。ステップS610では、調整手段507が入力部412からの情報に基づいて、ステップS608で設定された三次元仮想物体702と基準面である面800の間の相対位置姿勢を調整する。調整手段の一例としてはマニピュレータを用いた調整が存在する。
マニピュレータとは、表示映像に三次元仮想物体702の位置や姿勢、スケールを変化させる操作に対応する映像を表示し、マウスのドラッグ操作に応じて対応する処理を行えるGUIのことを指す。図13はマニピュレータの例を示した図であり、図13(a)はマニピュレータの表示例を、図13(b)はマニピュレータを操作する際の様子を、図13(c)はマニピュレータの操作結果を示している。
例えば図13(a)のように平行移動用のマニピュレータ1000を表示している場合、図13(b)のようにマウスカーソル1300でマニピュレータ1000の1つの矢印を選択し、ドラッグすると矢印の向きに三次元仮想物体702を移動させることができる。その結果として図13(c)のように三次元仮想物体702の位置を初期位置1301から操作後位置1302に変更することができる。
このようなマニピュレータ1000を用いる場合、図10(b)のように三次元仮想物体702のバウンディングボックス905の各軸に平行な平行移動用のマニピュレータ1000を表示する。そして、これをマウスで選択、ドラッグすることで相対位置姿勢を調整することができる。なお、今回の例では平行移動用のマニピュレータ1000を示したが、回転用のマニピュレータや平行移動と回転を組み合わせたマニピュレータを用いてもよい。
例えば回転用のマニピュレータを用いる場合、図10(d)のようにバウンディングボックス905の各軸周りへの回転に対応する環状の矢印を組み合わせた回転用マニピュレータ1001を表示する。そして、この回転用マニピュレータ1001のいずれかを選択、ドラッグすることで基準面に対する三次元仮想物体702の姿勢を調整する。
また、マニピュレータに用いる軸の向きも、バウンディングボックス905の軸の向きに限らず、対応面や基準面の辺や法線に平行な軸を用いたり、三次元仮想物体702のローカル座標系の軸向きを用いたり、世界座標系の軸向きを用いたりしてもよい。回転用のマニピュレータを用いる場合の回転の中心も、基準面や対応面を構成する頂点や面の中心点、三次元仮想物体702の重心など任意の点を用いることができる。また、マニピュレータの表示位置や表示方法に関しても任意の表示位置や表示方法を用いることができる。例えば、表示位置は図10(b)では基準面である面800の中心に表示しているが、三次元仮想物体702の中心に表示したり、三次元仮想物体702に重ならないように表示したりしてもよい。また、表示方法も半透明で表示したり、三次元仮想物体702やコントロール装置701との前後関係がわかるように図10(c)のように表示したりしてもよい。
また、調整手段として、マニピュレータ以外にもキーボードを用いて直接調整量を入力するようなGUIを用いたり、音声認識を用いて調整量を指示したりすることなどもできる。
ステップS611では、移動手段508がコントロール装置701の位置姿勢変化に応じて三次元仮想物体702の位置姿勢を変更する。この変更の際には、ステップS608で設定された三次元仮想物体702と基準面の間の相対位置姿勢を、ステップS610で調整した結果得られる三次元仮想物体702と基準面の間の相対位置姿勢を維持するように三次元仮想物体702の位置姿勢を変更する。これにより、コントロール装置701を動かすことで三次元仮想物体702を任意の位置姿勢に移動させることができる。
ステップS612では、決定手段509が入力部412からの情報に基づいて、三次元仮想物体702の位置姿勢を決定するかを判定する。ステップS602同様にキーボードによるコマンド選択やマウスを用いたGUI操作、音声認識による操作などにより位置姿勢を決定するかを判定する。三次元仮想物体702の位置姿勢を決定する場合にはステップS613を、決定しない場合にはステップS614へ進む。
ステップS613では、決定手段509が現在の基準面の位置姿勢や、基準面と三次元仮想物体702の相対位置姿勢をもとにステップS611で移動された三次元仮想物体702の位置姿勢を、三次元仮想物体702の配置位置姿勢としてRAM402に記録する。そして、次の撮影像が送られてきた場合には、ステップS602で配置変更の処理に進まないようにRAM402の内容を書き換えてステップS614へ進むようにする。
ステップS614では、画像合成手段510が、現在の三次元仮想物体702の位置姿勢を用いて、撮像部408、409から得られた撮影像に三次元仮想物体702の描画画像を合成する。この際に、ステップS610を通ってからステップS614に進んできている場合などでは、GUIやマニピュレータ1000やマウスカーソル1300などの操作に必要な情報も合成する。そして、合成された画像を表示部410、411に表示する。
以上のような処理を用いることによって、三次元仮想物体702の位置姿勢を、現実物(コントロール装置701)を用いて任意の位置姿勢に素早く正確に配置することができる。
例えば、三次元仮想物体702を図11のように床面301の上に面900が接するように配置したい場合には、図10(a)のように三次元仮想物体702のバウンディングボックス905の一面906を基準面である面800と合わせる。その後、平行移動用のマニピュレータ1000を用いて面800の辺と面906の辺を一致させるように移動させることで図12のようにする。
これにより、面1200の裏側の面である面1201を床面301に合わせるようにコントロール装置701を移動させるだけで、三次元仮想物体702を目標の位置姿勢に配置することができる。このように、本発明によれば、三次元仮想物体702の位置姿勢変更時に操作をしやすい位置姿勢になるように三次元仮想物体702と現実物の相対位置姿勢を設定・変更することが可能になる。その結果素早く正確に目標の位置姿勢に三次元仮想物体702を配置することができる。
[実施例2]
第1の実施形態では任意の位置姿勢に三次元仮想物体702を配置する場合を説明した。この実施形態を用いて、三次元仮想物体702を図14(a)のように三次元仮想物体702と同じ形状の現実物(モック1400)に重ね合わせる場合や、三次元仮想物体702を他の現実物にくっつける場合を考える。他の現実物にくっつける例としては、三次元仮想物体702をはめ込めるような形状の穴を空けた現実物の枠組み1401に三次元仮想物体702をはめ込む場合などがある。
第1の実施形態では任意の位置姿勢に三次元仮想物体702を配置する場合を説明した。この実施形態を用いて、三次元仮想物体702を図14(a)のように三次元仮想物体702と同じ形状の現実物(モック1400)に重ね合わせる場合や、三次元仮想物体702を他の現実物にくっつける場合を考える。他の現実物にくっつける例としては、三次元仮想物体702をはめ込めるような形状の穴を空けた現実物の枠組み1401に三次元仮想物体702をはめ込む場合などがある。
これらの場合には、例えば三次元仮想物体702の位置姿勢をモック1400に重なるように変更した後に、もしモック1400を動かしてしまうと三次元仮想物体702とモック1400の位置姿勢が合わなくなってしまう。これは三次元仮想物体702がモック1400の動きに追従して移動しないためである。
そこで、第2の実施形態では、三次元仮想物体702を重ねたり、くっつけたり、特定の相対位置姿勢を保たせたりしたい現実物の位置姿勢を取得し、現実物の動きに三次元仮想物体702を追従させる場合を説明する。
図15は、本実施形態にかかる情報処理装置400の機能構成を示す図である。第1の実施形態に加えて、対象現実物位置姿勢取得手段1500が追加されている。また、図16は、本実施形態の処理の流れを示すフローチャートである。第1の実施形態に加えて、ステップS1600が追加されている。また、ステップS600からS614までのうち、ステップS613とS614以外は、第1の実施形態と同じであるため、説明を省略する。また、ステップS613はステップS1601、ステップS614はステップS1602に切り替わっている。
本実施例でも第1の実施例同様に、図16のフローチャートを、撮像部408、409から撮影像が送られる度に繰り返し処理する。以下では、図15と図16を参照して、本実施形態の処理の流れを説明する。また、図17は本実施例の使用時の状況の一例を示す図であり、図7の状況に加えて、三次元仮想物体702を重ね合わせるモック1400が存在する。
ステップS1600では、対象現実物位置姿勢取得手段1500が、三次元仮想物体702との相対値姿勢が所定の位置姿勢になるようにしたい現実物の位置姿勢を取得する。なお、以下の文ではこのような現実物を対象現実物と記述する。図17の例では対象現実物にはモック1400が相当する。
対象現実物の位置姿勢の取得は、ステップS603の基準面の位置姿勢と同様の手法を用いることができる。例えば図17のよう対象現実物の位置姿勢推定用の指標1700を張ったり、位置姿勢センサなどのセンサを利用したりすることができる。ステップS1601では、決定手段509が現在の基準面の位置姿勢や、基準面と三次元仮想物体702の相対位置姿勢を基に移動した三次元仮想物体702の位置姿勢と、対象現実物の位置姿勢から対象現実物と三次元仮想物体702の相対位置姿勢を計算する。
これにより、三次元仮想物体702の位置姿勢決定時の対象現実物と三次元仮想物体702の相対位置姿勢をRAM402に記録することができる。そして、対象現実物を移動させた場合にも記録された相対位置姿勢と対象現実物の位置姿勢から、三次元仮想物体702が対象現実物に追従して移動するように位置姿勢を更新することができる。ステップS1602では、画像合成手段510が、現在の三次元仮想物体702の位置姿勢を用いて、撮像部408、409から得られた撮影像に三次元仮想物体702の描画画像を合成する。
ここでの現在の三次元仮想物体702の位置姿勢とは、ステップS611で決まる位置姿勢または、ステップS1601で決まる対象現実物と三次元仮想物体702の相対位置姿勢と対象現実物の位置姿勢を用いて決まる三次元仮想物体702の位置姿勢を指す。また、本実施例でも第1の実施形態同様にGUIやマニピュレータ1000やマウスカーソル1300などの操作に必要な情報も合成する。そして、合成された画像を表示部410、411に表示する。
以上のような処理により、移動可能な現実物に対して三次元仮想物体702を所定の相対位置姿勢に配置する場合にも、素早く正確に配置することができる。
[実施例3]
第3の実施形態では、第1、第2の実施形態における調整手段507の処理を補正する処理を追加する。これにより、三次元仮想物体702の位置姿勢変更時に操作をしやすい位置姿勢になるように三次元仮想物体702と基準面の相対位置姿勢を変更する際の処理を容易にする。なお、本実施形態にかかる情報処理装置400の機能構成は第1、第2の実施形態と同様である。
第3の実施形態では、第1、第2の実施形態における調整手段507の処理を補正する処理を追加する。これにより、三次元仮想物体702の位置姿勢変更時に操作をしやすい位置姿勢になるように三次元仮想物体702と基準面の相対位置姿勢を変更する際の処理を容易にする。なお、本実施形態にかかる情報処理装置400の機能構成は第1、第2の実施形態と同様である。
下記では、第1の実施形態に調整手段507の処理を補正する処理を追加する場合の例を示す。図18は、本実施形態の処理の流れを示すフローチャートである。第1の実施形態のフローチャートに加えて、ステップS1800が追加されている。また、ステップS600からS614までは第1の実施形態と同じであるため、説明を省略する。ステップS1800では、調整手段507がステップS610により設定された三次元仮想物体702と基準面である面800の間の相対位置姿勢を補正する。例えば、マニピュレータ1000を用いてステップS610で相対位置姿勢を調整した場合について説明する。
ステップS608によって、図19(b)のように基準面である面800とバウンディングボックス905の面906の中心位置が一致し、かつ各面の辺が平行になるように設定されたとする。そして、ステップS610でマニピュレータ1000のうち矢印1900を選択してドラッグした場合、ステップS1800で面800と面906の辺のうち矢印1900の方向にある辺同士が一致するように移動量を補正し、図19(a)のようにする。逆に、図19(b)の状況で矢印1901を選択してドラッグした場合には、面800と面906の辺のうち矢印1901の方向にある辺同士が一致するように移動量を補正し、図19(c)のようにする。
このように、面の中心同士や辺同士、または一方の面の中心と他方の面の辺の中心が一致する移動量になるようにステップS610での調整量を補正する処理を行う。なお、ステップS1800での補正はマニピュレータ1000による調整量を補正する場合に限定するものではない。例えばキーボードによるコマンド選択や音声認識による操作により調整が行われた際の調整量を補正する処理を行ってもよい。また、ステップS610による調整結果を踏まえつつ、他の方向への相対位置姿勢の補正を行ってもよい。
例えば、基準面の位置姿勢が変化している場合に、ある時点で基準面の辺のうち床面301に最も近い辺と、対応面辺のうち床面301に最も近い辺の床面301からの高さが一致するように補正してもよい。
具体的には、ステップS610により図1(a)のようにバウンディングボックス905の一面906の中心位置と、面800の辺2000の中心位置が一致するように調整されたとする。この状態から図1(b)のように基準面800が回転した場合に、ステップS610で調整された相対位置姿勢を維持しつつ、床面301に最も近い辺の床面301からの高さが一致するように補正する。この結果と図1(b)の三次元仮想物体702のような位置姿勢になる。図1(b)では面906の中心が辺2000上にあり、かつ面906と面800の床面301に近い側の辺の高さが一致するように補正されている。
このような処理をする場合の床面301に近い辺を求める手段として、図7の指標700の位置姿勢である世界座標系703を用いることができる。世界座標系のうちの1軸は指標700に垂直な方向、2軸は指標700に平行な方向に定義されるように世界座標系703を定義していれば、指標700に平行な方向に定義された2軸により床面301を推定することができる。また、世界座標系703の代わりに加速度センサなどの重力方向を求めることができるセンサを用いることもできる。
以上のような処理により、三次元仮想物体702と基準面の相対位置姿勢を調整する際に、ユーザーが少ない操作で素早く基準面の辺と対応面の辺の高さを揃えたり、面の中心同士を合わせたりすることができる。その結果、三次元仮想物体702を意図した位置姿勢に配置する際に、三次元仮想物体702と基準面の相対位置姿勢の調整が素早くできる。そして、三次元仮想物体702を意図した位置姿勢に配置する作業も素早くできるようになる。
[他の実施形態]
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記憶媒体に適用する場合、その記憶媒体には先に説明したフローチャートに対応するプログラムコードが格納されることになる。
905 バウンディングボックス
906 面
800 基準面
301 床面
2000 辺
906 面
800 基準面
301 床面
2000 辺
Claims (8)
- 現実物の形状に対応する面である基準面を取得する基準面取得手段と、
前記基準面に関する少なくとも1つ以上の軸または点を取得する基準面情報取得手段と、
三次元仮想物体の面のうち、一つの面を対応面として選択する選択手段と、
前記対応面に関する少なくとも1つ以上の軸または点を取得する対応面情報取得手段と、
前記基準面に関する少なくとも1つ以上の前記軸または点と前記対応面に関する少なくとも1つ以上の軸または点とが所定の位置関係になるように前記三次元仮想物体の位置姿勢を設定する設定手段と、
前記基準面に対する前記対応面の相対位置姿勢を調整する調整手段と、
前記基準面の移動に応じて、前記三次元仮想物体の位置を移動する移動手段と、
前記移動手段によって移動された結果に基づいて、前記三次元仮想物体の位置姿勢を決定する決定手段と、
を有することを特徴とする情報処理装置。 - 前記選択手段は、前記三次元仮想物体のバウンディングボックスを作成し、
該バウンディングボックスの面または前記三次元仮想物体の面のうち、いずれかの面を前記対応面として選択すること
を特徴とする請求項1に記載の情報処理装置。 - 前記調整手段は、前記対応面の位置を前記基準面または前記対応面に関する少なくとも1つ以上の軸方向に平行移動することで調整すること
を特徴とする請求項1に記載の情報処理装置。 - 前記調整手段は、前記対応面の姿勢を前記基準面または前記対応面に関する少なくとも1つ以上の軸方向に回転することで調整すること
を特徴とする請求項1に記載の情報処理装置。 - 前記設定手段は、前記基準面と前記対応面を平行にし、かつ前記対応面に関する軸のいずれか1つ以上が前記基準面に関する軸のいずれか1つ以上と平行になるように設定すること
を特徴とする請求項1に記載の情報処理装置。 - 前記設定手段は、前記基準面と前記対応面を平行にし、かつ前記対応面に関する点のいずれか1つ以上が前記基準面に関する点のいずれか1つ以上と同じ位置になるように設定すること
を特徴とする請求項1に記載の情報処理装置。 - 前記調整手段は、前記基準面と前記対応面のうち、世界座標系のいずれかの平面または床面に最も近い位置にある辺同士の高さを一致させるように補正すること
を特徴とする請求項1に記載の情報処理装置。 - 前記調整手段は、前記対応面に関する点のいずれか1つ以上が前記基準面に関する点のいずれか1つ以上と同じ位置になるように調整量を補正すること
を特徴とする請求項1に記載の情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017024549A JP2018132847A (ja) | 2017-02-14 | 2017-02-14 | 情報処理装置、情報処理方法、およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017024549A JP2018132847A (ja) | 2017-02-14 | 2017-02-14 | 情報処理装置、情報処理方法、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018132847A true JP2018132847A (ja) | 2018-08-23 |
Family
ID=63248404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017024549A Pending JP2018132847A (ja) | 2017-02-14 | 2017-02-14 | 情報処理装置、情報処理方法、およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018132847A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020121483A1 (ja) * | 2018-12-13 | 2020-06-18 | マクセル株式会社 | 表示端末、表示制御システムおよび表示制御方法 |
JP7401245B2 (ja) | 2019-10-08 | 2023-12-19 | キヤノン株式会社 | 画像合成装置、画像合成装置の制御方法およびプログラム |
-
2017
- 2017-02-14 JP JP2017024549A patent/JP2018132847A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020121483A1 (ja) * | 2018-12-13 | 2020-06-18 | マクセル株式会社 | 表示端末、表示制御システムおよび表示制御方法 |
JPWO2020121483A1 (ja) * | 2018-12-13 | 2021-10-28 | マクセル株式会社 | 表示端末、表示制御システムおよび表示制御方法 |
JP7194752B2 (ja) | 2018-12-13 | 2022-12-22 | マクセル株式会社 | 表示端末、表示制御システムおよび表示制御方法 |
US11651567B2 (en) | 2018-12-13 | 2023-05-16 | Maxell, Ltd. | Display terminal, display control system and display control method |
US11972532B2 (en) | 2018-12-13 | 2024-04-30 | Maxell, Ltd. | Display terminal, display control system and display control method |
JP7401245B2 (ja) | 2019-10-08 | 2023-12-19 | キヤノン株式会社 | 画像合成装置、画像合成装置の制御方法およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5791976B2 (ja) | 画像処理装置、画像処理方法、およびプログラム | |
JP6748961B2 (ja) | 投写画像調整システム及び投写画像調整方法 | |
JP6314394B2 (ja) | 情報処理装置、設定方法、設定プログラム、システムおよび管理装置 | |
US8023727B2 (en) | Environment map generating apparatus, environment map generating method, and environment map generating program | |
JP5257335B2 (ja) | 3次元視覚センサにおける計測有効領域の表示方法および3次元視覚センサ | |
JP3944019B2 (ja) | 情報処理装置および方法 | |
US10424122B2 (en) | Augmented reality simulation device which displays a virtual object on a machine tool and computer-readable medium | |
TWI677413B (zh) | 用於機械手臂系統之校正方法及裝置 | |
WO2014128760A1 (ja) | 表示装置、表示方法、表示プログラムおよび位置設定システム | |
JP5709440B2 (ja) | 情報処理装置、情報処理方法 | |
JP2014014912A (ja) | ロボットシステム、ロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラム | |
JP2013520751A (ja) | デバイスレスな拡張現実およびインタラクションのためのプロジェクタおよび深度カメラ | |
JP6318542B2 (ja) | 表示制御方法、表示制御プログラムおよび情報処理装置 | |
JP2018009836A (ja) | プログラム、頭部装着型表示装置、キャリブレーション方法 | |
JP7238060B2 (ja) | 情報処理装置及びその制御方法、並びに、プログラム | |
JP6576042B2 (ja) | 表示制御装置及びその方法、プログラム | |
US20190272670A1 (en) | Real-time hand modeling and tracking using convolution models | |
US20180290300A1 (en) | Information processing apparatus, information processing method, storage medium, system, and article manufacturing method | |
JP2015054378A (ja) | 情報処理装置、ロボット、シナリオ情報生成方法及びプログラム | |
JP2018132847A (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP2009087161A (ja) | 画像処理装置、画像処理方法 | |
JP2006215750A (ja) | 画像処理方法、画像処理装置 | |
JP4595042B2 (ja) | 3次元測定方法およびシステム並びにマニピュレータの制御方法および装置 | |
JP2008040913A (ja) | 情報処理方法、情報処理装置 | |
JP7401245B2 (ja) | 画像合成装置、画像合成装置の制御方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20191125 |