以下、図面と共に本発明に係る映像表示システムの実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
まず、図1から図5を参照して、本実施形態に係る映像表示システム100について説明する。図1は、映像表示システム100のブロック図を示す。映像表示システム100は、例えばユーザに装着されるHMD等によって実現され、実空間(ワールド座標系)に対応付けられたCG(コンピュータグラフィックス)による仮想物体を表示する。映像表示システム100は、ハーフミラーを用いて実空間の実物体と仮想物体とをユーザに視認させる光学シースルー方式を採用している。映像表示システム100は、実空間の映像に仮想物体を融合してユーザに視認させるビデオシースルー方式を採用してもよい。以下では、映像表示システム100がMR技術に用いられるHMDであることを例に説明する。
図2は、映像表示システム100を使った作業で用いられる各種部材を示している。映像表示システム100は、実空間に配置された実物体である作業対象物121に対応してディスプレイ140に仮想物体を表示することでユーザの作業を支援する。「配置」は、所定の3次元座標軸上の座標及び3次元座標軸の各軸周りの回転(3次元座標上の向き)によって規定される6自由度の状態を意味する。具体的には、映像表示システム100は、ユーザの目線と同様の撮像方向等で撮像を行う。映像表示システム100は、撮像を行った画像に基づいて、ディスプレイ140に表示する仮想物体の配置を決定する。ユーザは、この表示を見ることで、実空間に配置された作業対象物121に応じた、現実にはない仮想物体を見ることができる。仮想物体としては、実空間の作業対象物121を示すものが含まれていてもよい。
映像表示システム100は、3次元座標である仮想空間(スクリーン座標系)を用いて仮想物体の表示を行う。映像表示システム100は、仮想空間上の予め設定された位置に仮想物体を配置しておき、仮想空間と実空間との対応関係を算出する。仮想物体の仮想空間上の配置を表示配置という。以下の説明では、仮想空間において仮想物体の位置を示す座標軸を仮想座標軸αという。映像表示システム100は、実空間での撮像位置及び撮像方向に対応する仮想空間上での位置及び方向から見た画像を仮想物体の表示とする。即ち、仮想的なユーザの視線から、仮想空間上の仮想物体を見た画像を表示する。上記の仮想物体の表示は、従来のMR技術を用いて実施することができる。
本実施形態では、作業対象物121は、10m以上の長尺形状のH形鋼であり、断面がH字形状の鋼材である。このため、作業対象物121は、長手方向に直線状のエッジ131,132、短手方向に直線状のエッジ133,134を有している。エッジ131とエッジ133は、作業対象物121において上方に配置されたフランジのエッジである。エッジ132とエッジ134は、作業対象物121において下方に配置されたフランジのエッジである。映像表示システム100は、実空間に配置された鋼材(作業対象物121)に対して、当該鋼材を示す仮想物体201と当該鋼材に溶接する予定の鉄板を示す仮想物体202とを表示する。具体的には、映像表示システム100は、ユーザに対して、仮想物体201が実空間に配置された作業対象物121に重なって視認されるように表示し、仮想物体202が溶接されるべき配置で視認されるように表示する。これによって、映像表示システム100は、ユーザが鋼材に鉄板を溶接する作業を支援できる。図3は、ユーザが移動して作業をする場所(以下、「作業位置」という)に移動する前の映像表示システム100の表示と周辺環境とを示している。図4は、ユーザが移動した後、かつ、仮想物体の表示配置を修正する前の映像表示システム100の表示と周辺環境とを示している。
映像表示システム100は、ユーザの移動を検出して、ユーザの移動に応じた視線の変化にあわせるように当該移動に応じて表示を変化させる。映像表示システム100では、ユーザの移動量に応じて移動検出の誤差が蓄積し、作業対象物121に対応して仮想物体201,202の表示配置がずれる(即ち、実空間と仮想空間との対応付けがずれる)。映像表示システム100は、作業対象物121に対して実空間に配置された、指標部材123と、作業対象物121のエッジ131,132,133,134とによって、作業対象物121に対する仮想物体201,202の表示配置を修正する。
指標部材123は、作業対象物121に対して予め決められた位置に配置されている。本実施形態では、指標部材123は、長尺形状を有しており、作業対象物121の面121a上で、作業対象物121の長手方向に沿って配置されている。指標部材123は、実空間において作業対象物121のエッジ133に対して予め決められた位置に配置された複数の指標124を含んでいる。複数の指標124の各々は、作業対象物121に対して予め配置されたマーカ125等を含んでいる。本実施形態では、各マーカ125は、撮像装置101による撮像画像の画像認識によって、各指標124が指標部材123のどの位置に配置されるかを判断可能な特徴(数字、模様、形状、色等)を有している。このため、指標部材123が作業対象物121に対して予め決められた位置に配置されている場合、マーカ125の画像認識によって、当該マーカ125を含む指標124の作業対象物121に対する3次元配置を識別できる。
本実施形態では、指標部材123は巻き尺である。複数の指標124は、マーカ125に加えて矩形状を有した目盛りを有しており、所定の間隔(例えば、等間隔)で指標部材123に設けられている。各マーカ125は、各指標124の位置を示す数字を含んでいる。各指標124は、指標部材123が延在する直線上に、所定位置から1cmごとに付されている。各マーカ125は、対応する指標124の当該所定位置からの距離を示す数字(具体的には、目盛りの数値)を含んでいる。指標部材123は、指標部材123の予め設定された位置(例えば、端部の中央の点である0cm地点)である基準点Mが作業対象物121の一端のエッジ133の中心に位置するように配置されている。このようにマーカ125は、所定の間隔(例えば、等間隔)で指標部材123に設けられている。
指標部材123は、同一間隔でマーカ125が付された紐であってもよい。作業対象物121に、レーザー、チョーク等でマーカ125が記されていてもよい。プロジェクションマッピングによって、作業対象物121上に、マーカ125が表示されてもよい。
映像表示システム100は、図1に示されているように、撮像装置101、撮像装置101の移動を検出する移動検出部102、データ格納部103、表示部104、操作部105、及び表示制御部150を備えている。映像表示システム100のうち、少なくとも撮像装置101、移動検出部102、及び表示部104は、ユーザに装着可能である。
撮像装置101は、実空間を撮像し、撮像した画像を逐次、表示制御部150へ送信する。本実施形態では、ユーザの頭に固定され、ユーザの頭の動きに合わせて撮像装置101の位置及び姿勢が変動する。撮像装置101の位置は、撮像装置101の座標位置である。撮像装置101の姿勢は、3次元座標の各軸周りの回転(3次元座標上の向き)である。撮像装置101は、深度カメラ、及びRGBカメラ等の複数のカメラから構成されている。
データ格納部103は、作業対象物121のエッジ131,133及びマーカ125の配置と基準点Mとの配置関係を予め格納している。データ格納部103は、基準点Mと、仮想座標軸αとの配置関係も予め格納している。実空間における基準点Mの位置と、仮想座標軸αの原点Nとが対応付けられており、実空間における作業対象物121の一端のエッジ133と、仮想座標軸αの原点Nとが対応付けられている。
基準点Mとする位置には、画像認識によって、実空間における基準点Mの3次元配置を識別可能な特徴を有する図形等(例えば、2次元コード)を有する基準マーカが配置されてもよい。この場合、データ格納部103に、予め当該基準マーカと仮想座標軸αの配置とを対応付けた配置情報を格納しておく。当該基準マーカを検出すると共にデータ格納部103を参照することによって、当該基準マーカの位置、すなわち基準点Mに仮想座標軸αの原点Nを対応付けることができると共に、実空間上の方向を仮想座標軸αの方向に対応付けることができる。
データ格納部103は、仮想物体201,202の表示に必要な各種情報(CGデータ)を予め格納している。例えば、データ格納部103は、仮想空間における仮想座標軸αに予め対応付けられた、仮想物体201,202(鋼材のCGデータ)の表示配置、当該仮想物体201,202の仮想エッジ203,204,205,206、及び複数の仮想位置210の情報を含む配置情報を予め格納している。具体的には、データ格納部103は、仮想物体201,202の表示配置、仮想エッジ203,204,205,206、及び複数の仮想位置210の仮想座標軸α上の座標を格納している。仮想座標軸αを実空間に対応付けることで、実空間での撮像装置101の位置及び姿勢に対応する仮想物体201,202の表示配置、複数の仮想位置210が決定される。複数の仮想位置210は、仮想物体201,202の表示配置の修正(即ち、実空間と仮想空間との対応付けの修正)に用いられる。
仮想座標軸αの原点Nと複数の仮想位置210の各々との相対位置関係は、基準点Mと複数の指標124の各々との相対位置関係に対応している。すなわち、複数の仮想位置210の各々は、各指標124の位置を示す各マーカ125に対応付けられている。例えば、それらの相対位置関係は、同じものとなる。本実施形態では、複数の仮想位置210は、仮想座標軸αの原点Nから直線上に実空間の1cmに相当する距離ごとに位置する。なお、上記の仮想空間に係る情報の形式は、従来のMR技術で用いられるものを用いることができる。
仮想エッジ203,204,205,206は、作業対象物121に対応する仮想物体201のエッジである。仮想エッジ203,204,205,206は、それぞれ、実空間における作業対象物121のエッジ131,132,133,134に対応する直線状のエッジである。仮想座標軸αの原点Nと仮想エッジ203,204,205,206の各々との相対位置関係は、基準点Mとエッジ131,132,133,134の各々との相対位置関係に対応している。例えば、それらの相対位置関係は、同じものとなる。仮想エッジ203,204は、仮想座標軸αに平行である。
表示部104は、図3及び図4に示されているように、撮像装置101の位置及び姿勢に応じて、仮想物体201,202を含む仮想映像をディスプレイ140に表示する。表示部104は、データ格納部103に格納されている仮想物体201,202の表示配置等の配置情報と、仮想座標軸αと撮像装置101の位置及び姿勢との関係とから、従前の方法で、仮想物体201,202をディスプレイ140に表示する配置を演算する。表示部104は、仮想物体201,202の表示に必要な各種情報をデータ格納部103から取得する。表示部104による表示は、実空間での撮像位置及び撮像方向に対応する仮想空間上での位置及び方向から見た画像を、仮想物体の表示とするものである。
本実施形態では、表示部104は、仮想映像として、当該鋼材を示す仮想物体201と、当該鋼材に溶接する予定の鉄板を示す仮想物体202と、仮想位置210とを表示する。実空間に対する仮想座標軸αの配置、及び撮像装置101の位置及び姿勢は、表示制御部150で決定される。表示部104は、ユーザが仮想物体201,202を適切に視認できる状態でユーザの頭に固定される。
操作部105は、ユーザによって操作された際に、当該操作に応じた信号を表示制御部150へ逐次送信する。例えば、操作部105は、ユーザの操作に応じて表示制御部150に、仮想物体201,202の表示配置の修正を指示する信号を送信する。
移動検出部102は、撮像装置101の移動を検出し、検出結果を逐次、表示制御部150へ送信する。映像表示システム100は、当該検出結果に基づいて、ユーザの移動に追従した映像を表示する。例えば、移動検出部102は、撮像装置101の移動の方向及び移動の量を示す移動ベクトルを検出する。本実施形態では、移動検出部102は、ユーザの頭に固定された、加速度センサ、ジャイロセンサ、及び方位センサ等を有する慣性計測ユニットによって構成されている。本実施形態では、移動検出部102は、それ自体が移動を検出する。移動検出部102が慣性計測ユニット等の出力信号を表示制御部150へ送信し、表示制御部150が移動を演算してもよい。移動の検出は、従来のMR技術に用いられている方法を用いて実施することができる。
表示制御部150は、撮像装置101で撮像された画像(以下、「撮像画像」という)に基づいて、仮想物体201,202の表示配置を規定する仮想座標軸αと、位置姿勢演算部152で演算された撮像装置101の位置及び姿勢との関係を決定する。これによって、表示部104における仮想物体201,202の表示配置が決定される。表示制御部150は、基準配置設定部151、位置姿勢演算部152、関係設定部153、及び関係修正部154を有している。
基準配置設定部151は、撮像装置101の撮像画像に基づいて、仮想物体201,202の表示配置を規定する仮想座標軸αを実空間に対応付ける。具体的には、基準配置設定部151は、撮像装置101を作業対象物121のエッジ131に近づけて撮像した撮像画像から作業対象物121の基準点Mを検出する。例えば、基準配置設定部151は、予め基準点Mの周囲のエッジ131,133の形状等の特徴と基準点Mとの位置関係を記憶しておく。基準配置設定部151は、撮像画像から周囲のエッジ131,133の形状等の特徴を検出して、当該検出結果と記憶した位置関係とから、基準点Mを検出する。基準配置設定部151は、検出結果と、データ格納部103に格納されている情報とから、実空間における基準点Mを特定し、基準点Mに仮想座標軸αの原点Nを対応付ける。
基準配置設定部151は、データ格納部103に格納されている情報にしたがって、検出されたエッジ131,133の位置に仮想エッジ203,205に対応付ける。検出されたエッジ131,133等から実空間上の方向が、仮想座標軸αの方向に対応付けられる。これによって、実空間における基準点Mの配置に、仮想物体201,202の表示配置、仮想位置210が対応付けられる。なお、基準点Mに上述した基準マーカが配置されている場合には、基準配置設定部151は、基準マーカの検出結果とデータ格納部103に予め格納されている配置情報とから、基準点Mに仮想座標軸αの原点Nを対応付ける。この場合、エッジ131,133を用いずに、基準マーカによって、基準点Mの配置に仮想物体201,202の表示配置、仮想位置210が対応付けられる。
位置姿勢演算部152は、撮像装置101の位置及び姿勢を演算する。位置姿勢演算部152は、映像表示システム100の電源がONに切り替わると、撮像装置101の位置及び姿勢の初期状態を設定する。例えば、位置姿勢演算部152は、当該撮像装置101の撮像画像から特徴点を検出し、当該特徴点を実空間上の原点に設定する。位置姿勢演算部152は、当該原点と撮像装置101との相互配置、並びに、加速度センサ及びジャイロセンサ等の出力から、撮像装置101の位置及び姿勢の初期状態を演算する。本実施形態では、基準点Mを、撮像装置101の位置及び姿勢の初期状態を演算する実空間上の原点として説明する。また、位置姿勢演算部152は、当該画像から、設定した原点に対する撮像装置101の位置及び姿勢を演算する。
位置姿勢演算部152は、移動検出部102で検出された移動と撮像装置101の撮像画像から検出される特徴点の遷移ベクトルとから、撮像装置101の位置及び姿勢を逐次演算する。具体的には、位置姿勢演算部152は、移動後の撮像装置101の位置及び姿勢(即ち、撮像装置101の現時点での位置及び姿勢)を演算する。表示制御部150は、基準点Mが撮像画像から検出されない場合、初期状態における仮想座標軸αと撮像装置101の位置及び姿勢との関係、及び位置姿勢演算部152で演算された撮像装置101の位置及び姿勢から、仮想座標軸αの配置を逐次判断する。
本実施形態では、位置姿勢演算部152は、基準配置設定部151によって検出された基準点Mに対する撮像装置101の位置及び姿勢を逐次演算する。位置姿勢演算部152は、移動検出部102の検出結果のみから、撮像装置101の位置及び姿勢を演算してもよい。位置姿勢演算部152は、演算した撮像装置101の位置及び姿勢のデータを、データ格納部103に格納する。位置姿勢演算部152は、演算した当該データを、直接、表示部104へ送信してもよい。位置姿勢演算部152における演算結果の誤差は、ユーザの移動量が増加に応じて蓄積される。位置姿勢演算部152における演算結果の誤差が蓄積されるにしたがって、位置姿勢演算部152で演算された撮像装置101の位置及び姿勢の実空間に対するズレ、及び仮想座標軸αの実空間に対する配置のズレが増加する。その結果、映像表示システム100では、仮想物体201,202の表示配置がずれる。本実施形態では、作業対象物121が10m以上の長尺形状であるため、ユーザは主に作業対象物121の長手方向に移動する。このため、主に、実空間における長手方向に対応する誤差(ズレ)が生じる。撮像装置101の位置及び姿勢の演算は、従来のMR技術に用いられている方法を用いて実施することができる。
表示制御部150は、関係設定部153、及び関係修正部154によって、後述するズレ修正処理を行う。表示制御部150は、ズレ修正処理によって、ユーザの移動量に応じて蓄積した移動検出の誤差による仮想物体201,202の表示配置のズレを修正する。本実施形態において、表示制御部150は、操作部105の操作に応じて当該修正を行う。例えば、表示制御部150は、ボタンの押下等の操作部105が操作されたタイミングで当該修正を行う。図4には、作業対象物121に対して仮想物体201,202がずれて表示されている状態が示されている。
関係設定部153は、作業位置において、作業対象物121のエッジ131,132によって、仮想座標軸αと撮像装置101の位置及び姿勢との関係を設定する。本実施形態では、関係設定部153は、撮像装置101によって撮像された画像(以下、関係設定部153で使用される画像を「第1画像」という)から、作業対象物121のエッジ(実物体である作業対象物121の輪郭を示す線)131,132を検出する。例えば、当該第1画像は、ユーザが作業を行うために基準点Mから移動した位置において撮像された画像である。関係設定部153は、当該検出結果と、位置姿勢演算部152で演算された、エッジ131,132を撮像した際の撮像装置101の位置及び姿勢と、仮想座標軸αに予め対応付けられた仮想エッジ203,204とから、仮想座標軸αと撮像装置101の位置及び姿勢との関係を設定する。本実施形態では、関係設定部153による関係の設定は、作業対象物121の長手方向以外の方向(第1方向)について、仮想物体201,202の位置ズレをなくすためのものである。これによって、例えば、ユーザの移動量が増加に応じて位置姿勢演算部152における演算結果の誤差が蓄積されても、作業対象物121の長手方向以外における仮想物体201,202の表示配置(作業対象物121に対する仮想座標軸αの位置及び回転ズレ)が修正され得る。
関係設定部153は、作業対象物121の長手方向に延在するエッジであれば、作業対象物121のエッジ131,132の代わりに指標部材123のエッジを用いてもよい。関係設定部153は、作業対象物121のエッジと指標部材123のエッジとの両方を用いてもよい。関係設定部153は、作業対象物121のエッジ131,132のうち一方のみずつを用いて処理を行ってもよいし、2つの平行なエッジ131を用いて処理を行ってもよい。以下、関係設定部153で行われる、仮想座標軸αと撮像装置101の位置及び姿勢との関係の設定について、詳細に説明する。
関係設定部153は、まず、第1画像から、実空間に配置された作業対象物121のエッジ131,132を検出(抽出)する。エッジの検出では、処理負荷の観点からエッジの3次元位置(撮像装置101に対する相対的な3次元位置)を直接的に演算しない方法が用いられる。従って、以下のように2つのエッジから、エッジの3次元位置を算出する。
本実施形態では、関係設定部153は、従前の方法によって第1画像からエッジを検出し、検出された全てのエッジの各々について、エッジ131,132に相当するものであるか否か判断する。例えば、関係設定部153は、検出されたエッジのうち最も長いエッジ及びそのエッジにおおよそ平行なエッジをエッジ131,132に相当するものであると判断する。「おおよそ」とするのは、2次元画像上では、パースが入るため、正確に平行にならない場合があるためである。関係設定部153は、そのように判断されたエッジのうち2つの平行なエッジに挟まれているエッジを除去する。すなわち、関係設定部153は、第1画像の2次元平面上のエッジの延在方向に直交する方向において、最も外側の2つのエッジを抽出する。これによって、図4に示されている状態では、エッジ131,132(図中の作業対象物121最も上及び下のエッジ131,132)が抽出される。なお、撮像方向によっては、2つのエッジ131が抽出される場合もあるが、この場合は、以降の処理についてエッジ131,132を2つのエッジ131と読み替える。
関係設定部153は、作業対象物121のエッジ131,132の検出結果と、位置姿勢演算部152で演算された、エッジ131,132を撮像した際の撮像装置101の位置及び姿勢とから、エッジ131,132の各々及び撮像装置101の当該位置を通る平面P1,P2を演算し、仮想空間に配置する。すなわち、平面P1,P2は、撮像画像上では線として認識されるような位置に配置される。関係設定部153は、仮想空間上において、平面P1,P2に対して適切な仮想エッジ203,204を回転させ平行移動させて、当該仮想エッジ203,204を平面P1、P2上に配置させる。関係設定部153は、当該仮想エッジ203,204の回転及び平行移動に対応して、仮想座標軸αも平面P1,P2に対して回転させ平行移動させる。換言すれば、関係設定部153は、仮想エッジ203,204が作業対象物121のエッジ131,132に沿うように、仮想座標軸αと撮像装置101の位置及び姿勢との関係を設定する。これによって、仮想空間における仮想物体201の配置が修正される。関係設定部153は、3次元の仮想空間において、平面P1に対する仮想物体201の配置を修正した後に、平面P2に対する仮想物体201の配置を修正する。図5から図7は、平面P1に対する、仮想物体201の表示配置の修正を説明するための図である。
関係設定部153は、データ格納部103に格納されている配置情報とエッジ131,132を撮像した際の撮像装置101の位置及び姿勢とから、仮想物体201の仮想エッジ203,204のうち、平面P1に最も近い仮想エッジを、回転させる対象として選択する。関係設定部153は、データ格納部103に格納されている配置情報とエッジ131,132を撮像した際の撮像装置101の位置及び姿勢とから、ディスプレイ140に表示される部分が、最も長い仮想エッジを選択してもよい。この際、予め設定されている閾値等を用いて、仮想エッジを選択する。あいまいなエッジしか抽出できない場合には、エラーを表示して撮像装置101の位置及び姿勢を変えることとしてもよい。あるいは、関係設定部153は、想定される撮像位置等に基づき、位置合わせに用いる2つの仮想エッジを予め決めておいてもよい。図5に示した状態では、仮想エッジ203の1つが選択される。
関係設定部153は、仮想空間において、撮像画像の中心を通る撮像方向に平行な軸周りに、選択された仮想エッジ203が平面P1と平行になるように回転させる。関係設定部153は、データ格納部103に格納されている配置情報を参照して、回転させた仮想エッジ203の配置に応じて仮想座標軸α及び仮想物体201,202を配置する。具体的には、関係設定部153は、仮想空間上の撮像装置101の位置及び姿勢を動かさないまま、仮想エッジ203の回転と同様に仮想物体201,202及び仮想位置210を回転させる。その結果、図6に示されているように、平面P1に仮想物体201の長辺が平行になるように、仮想物体201が配置される。
関係設定部153は、仮想エッジ203の回転を行った後、仮想物体201の仮想エッジ203,204のうち、平面P1への平行移動の移動量が最も少ない仮想エッジを平行移動の対象として選択する。図6では、仮想エッジ203が選択される。関係設定部153は、図7に示されているように、選択された仮想エッジ203が平面P1上に配置されるように、当該仮想エッジ203を平面P1に直交する方向に平行移動する。関係設定部153は、データ格納部103に格納されている配置情報を参照して、平行移動した仮想エッジ203に対応して、仮想座標軸α及び仮想物体201,202を再配置する。具体的には、関係設定部153は、仮想空間上の撮像装置101の位置及び姿勢を動かさないまま、仮想エッジ203の平行移動と同様に仮想物体201,202及び仮想位置210を平行移動させる。
関係設定部153は、上述したように仮想エッジ203を平面P1に一致させた後に、平面P1に対する処理と同様に、仮想物体201の仮想エッジ203,204のうち、平面P2に対して回転させる対象を選択し、選択された仮想エッジ(仮想エッジ204とする)を平面P2と平行になるように回転させる。この際、関係設定部153は、仮想エッジ203を平面P1に対して回転させた回転軸と直交する軸周り(平面P1に直交する軸周り)に、回転させる対象である仮想エッジ204を回転させる。関係設定部153は、データ格納部103に格納されている配置情報を参照して、回転させた仮想エッジ204の配置に応じて仮想座標軸α及び仮想物体201,202を再配置する。具体的には、関係設定部153は、仮想空間上の撮像装置101の位置及び姿勢を動かさないまま、仮想エッジ204の回転と同様に仮想物体201,202及び仮想位置210を回転させる。
関係設定部153は、仮想エッジ203を平面P1に対して回転させた回転軸、及び、仮想エッジ204を平面P2に対して回転させた回転軸、と直交する回転軸周りに、作業対象物121の面121aに対応する仮想物体201の面が地面に対しておおよそ平行になるように、当該仮想物体201を回転させる。おおよそとしたのは、回転状況に応じては平行にできない可能性もあるためである。関係設定部153は、データ格納部103に格納されている配置情報を参照して、回転させた仮想エッジ204の配置に応じて仮想座標軸α及び仮想物体201,202を再配置する。具体的には、関係設定部153は、仮想空間上の撮像装置101の位置及び姿勢を動かさないまま、仮想エッジ204の回転と同様に仮想物体201,202及び仮想位置210を回転させる。
関係設定部153は、仮想エッジ204の回転を行った後、平面P1に対する処理と同様に、仮想物体201の仮想エッジ203,204のうち、平面P2への平行移動の移動量が最も少ない仮想エッジを平行移動の対象として選択する。関係設定部153は、選択された仮想エッジ(仮想エッジ204とする)が平面P2上に配置されるように、当該仮想エッジ204を、平面P1に平行かつ位置姿勢演算部152によって演算された撮像装置101の位置の方向に平行移動する。関係設定部153は、データ格納部103に格納されている配置情報を参照して、平行移動した仮想エッジ204に対応して、仮想座標軸α及び仮想物体201,202を再配置する。具体的には、関係設定部153は、仮想空間上の撮像装置101の位置及び姿勢を動かさないまま、仮想エッジ204の平行移動と同様に仮想物体201,202及び仮想位置210を平行移動させる。関係設定部153は、以上のようにして、作業対象物121のエッジ131,132によって再配置された仮想座標軸αと、エッジ131,132を撮像した際の撮像装置101の位置及び姿勢との関係を設定(修正)する。
関係修正部154は、関係設定部153によって設定された、仮想座標軸αと撮像装置101の位置及び姿勢との関係を、マーカ125によって修正する。本実施形態では、関係修正部154は、撮像装置101によって撮像された画像(以下、関係修正部154で使用される画像を「第2画像」という)、マーカ125を検出する。本実施形態では、第2画像は、関係設定部153による上記処理が終了した後に撮像された画像であり、第1画像とは異なる画像である。第1画像と第2画像は、同じ画像であってもよい。第2画像は、マーカ125を画像から検出しやすいように、第1画像を撮像した場合よりも撮像装置101を作業対象物121に近づけて撮像した画像である。
関係修正部154は、マーカ125の検出結果と、位置姿勢演算部152で演算された、マーカ125を撮像した際の撮像装置101の位置及び姿勢と、仮想座標軸αに予め対応付けられた仮想位置210とから、関係設定部153によって設定された、仮想座標軸αと撮像装置101の位置及び姿勢との関係を修正する。関係修正部154は、例えば、作業対象物121の長手方向(仮想エッジ203,204に平行な方向(第1方向とは異なる第2方向))において、関係設定部153によって設定された、仮想座標軸αと撮像装置101の位置及び姿勢との関係を修正する。これによって、関係設定部153では修正しきれていない、作業対象物121の長手方向における仮想物体201,202の表示配置が修正される。
関係修正部154は、マーカ125を従前の方法によって画像認識で読み込むことで、マーカ125を検出する。関係修正部154は、マーカ125の検出結果と、第2画像を撮像した際の撮像装置101の位置及び姿勢と、第2画像とから、検出された指標124の実空間上の座標位置を求めて、更に当該実空間上の座標から、仮想座標軸α上における指標124の座標位置を求める。検出されたマーカ125から、指標124の実空間及び仮想座標軸α上の座標位置の算出は、従来のMR技術に用いられている方法を用いて実施することができる。第2画像は、第1画像よりも作業対象物121の近くで撮像された画像であるため、マーカ125の数字が画像認識によって読み込まれやすい。第2画像を撮像した際の撮像装置101の位置及び姿勢は、位置姿勢演算部152で演算される。
関係修正部154は、求めた指標124の座標位置と、データ格納部103に格納されている相対位置関係とから、仮想空間における検出されたマーカ125に含まれる指標124と、当該指標124に対応する仮想位置210との位置関係を演算する。関係修正部154は、指標124と当該指標124に対応する仮想位置210との位置関係として、指標124に対する仮想位置210の仮想座標軸α上におけるズレ量及びズレ方向を演算する。演算されたズレ量は、作業対象物121の長手方向のズレ量及びズレ方向である。関係修正部154は、当該ズレ量の分だけ、関係設定部153で設定された仮想座標軸αと撮像装置101の位置及び姿勢との関係を修正する。本実施形態では、関係修正部154は、ズレ量の分だけ、仮想座標軸αの配置を修正する。具体的には関係修正部154は、演算されたズレ方向及びズレ量で、仮想空間上の撮像装置101の位置及び姿勢を動かさないまま、仮想位置210及び仮想物体201,202の表示配置を移動させる。これによって、仮想座標軸α上の撮像装置101の位置及び姿勢に対する仮想座標軸α上の仮想物体201,202の位置及び姿勢が修正される。
関係修正部154における処理が終了すると、表示部104は、データ格納部103に格納されている配置情報と、関係修正部154によって修正された、仮想座標軸αと位置姿勢演算部152で演算された撮像装置101の位置及び姿勢との関係とに基づいて、従前の方法で、仮想物体201,202をディスプレイ140に表示する。したがって、仮想座標軸αと撮像装置101の位置及び姿勢との関係が修正されると、ディスプレイ140で表示される仮想物体201,202等の配置も修正される。なお、表示部104は、関係設定部153によって、仮想座標軸αと位置姿勢演算部152で演算された撮像装置101の位置及び姿勢との関係が設定された段階で、データ格納部103に格納されている配置情報と当該設定された関係とに基づいて、仮想物体201,202をディスプレイ140に表示してもよい。
関係修正部154は、位置姿勢演算部152で演算された撮像装置101の位置及び姿勢を修正してもよい。具体的には、関係修正部154は、演算されたズレ量を打ち消すように、仮想空間における撮像装置101の位置及び姿勢を移動させることとしてもよい。関係修正部154は、実空間に対する仮想座標軸αの配置と位置姿勢演算部152で演算された撮像装置101の位置及び姿勢との両方を修正してもよい。
次に、図8を参照して、映像表示システム100における仮想物体201,202の表示配置を修正する工程について説明する。図8は、仮想物体201,202の表示配置を修正する工程を示すフローチャートである。なお、以下の処理中、撮像装置101、移動検出部102による上述した処理は、順次行われている。
ステップS101において、ユーザが、作業対象物121に、指標部材123(マーカ125を含む指標124)を配置する。続いて、工程はステップS102へ進む。
ステップS102において、表示制御部150が、基準マーカ又はエッジ131,133に応じて、仮想座標軸αを実空間に対応付ける。続いて、工程はステップS103へ進む。
ステップS103において、ユーザが、作業位置へ移動する。続いて、工程はステップS104へ進む。
ステップS104において、ユーザが、操作部105を操作し、仮想物体201,202の表示配置の修正を指示する。続いて、ステップS105へ工程が進む。
ステップS105において、表示制御部150が、関係設定部153及び関係修正部154によって、エッジ検出とマーカ125の検出とに基づいて仮想物体201,202の表示配置の設定処理を行う。
次に、図9を参照して、表示制御部150による仮想物体201,202の表示配置の制御処理について説明する。図9は、表示制御部150によって行われる制御処理を示すフローチャートである。
ステップS111において、表示制御部150は、基準配置設定部151によって、撮像装置101の撮像画像からエッジ131,133及び0cmを示すマーカ125を検出する。エッジ131,133のみが検出される方式であってもよい。続いて、表示制御部150は、ステップS112へ処理を進める。
ステップS112において、表示制御部150は、基準配置設定部151によって、ステップS111における検出結果と、データ格納部103に格納されている情報とから、実空間における作業対象物121の配置に仮想座標軸αを対応付ける。続いて、表示制御部150は、ステップS113へ処理を進める。
ステップS113において、表示制御部150は、位置姿勢演算部152によって、撮像装置101の位置及び姿勢を演算する。演算結果は、データ格納部103に格納される。続いて、表示制御部150は、ステップS114へ処理を進める。
ステップS114において、表示制御部150は、表示部104によって、仮想映像をディスプレイ140に表示する。この際、表示部104は、データ格納部103を参照して、仮想物体201,202を上記ディスプレイ140に表示する位置を演算する。続いて、表示制御部150は、ステップS115へ処理を進める。
ステップS115において、表示制御部150は、操作部105から仮想物体201,202の表示配置の修正指示を受けたか否か判断する。修正指示を受けた場合、表示制御部150は、ステップS116へ処理を進める。修正指示を受けていない場合、表示制御部150は、ステップS117へ処理を進める。
ステップS116において、表示制御部150は、関係設定部153、関係修正部154によって、ズレ修正処理を行う。ズレ修正処理によって、ユーザの移動量に応じて蓄積した移動検出の誤差による仮想物体201,202の表示配置のズレが修正される。表示制御部150は、ズレ修正処理が終了すると、ステップS113へ処理を進める。
ステップS117において、表示制御部150は、制御処理を終了するか判断する。制御処理を終了しない場合は、ステップS113へ処理を進める。制御処理を終了する場合は、処理を終了する。
次に、図10を参照して、表示制御部150によるズレ修正処理について詳細に説明する。図10は、表示制御部150によって行われるズレ修正処理を示すフローチャートである。
ステップS121において、表示制御部150は、関係設定部153によって、撮像装置101の撮像画像(第1画像)から作業対象物121のエッジ131,132を検出する。続いて、表示制御部150は、ステップS122へ処理を進める。
ステップS122において、表示制御部150は、関係設定部153によって、ステップS121で検出されたエッジ131,133及び位置姿勢演算部152で演算された撮像装置101の位置を通る平面P1,P2を算出する。続いて、表示制御部150は、ステップS123へ処理を進める。
ステップS123において、表示制御部150は、関係設定部153によって、対応する仮想エッジ203,204が平面P1,P2上に配置されるように、平面P1,P2に対して仮想座標軸αを回転させ、平行移動させる。続いて、表示制御部150は、ステップS124へ処理を進める。
ステップS124において、表示制御部150は、関係修正部154によって、撮像装置101の撮像画像(第2画像)から、作業位置におけるマーカ125を検出する。続いて、表示制御部150は、ステップS125へ処理を進める。
ステップS125において、表示制御部150は、関係修正部154によって、仮想位置210とマーカ125との位置関係を演算する。関係修正部154は、マーカ125の検出結果と、撮像装置101が該マーカ125を撮像した際の撮像装置101の位置及び姿勢とから、対応する仮想位置210と撮像したマーカ125との位置関係を演算する。続いて、表示制御部150は、ステップS126へ処理を進める。
ステップS126において、表示制御部150は、関係修正部154によって、仮想座標軸αと位置姿勢演算部152で演算された撮像装置101の位置及び姿勢との関係を修正する。ステップS126では、関係修正部154は、ステップS125において演算された、仮想位置210とマーカ125との位置関係から、仮想座標軸αと撮像装置101の位置及び姿勢との関係を修正する。表示制御部150は、ステップS126の処理が終了すると、ズレ修正処理を終了する。
本実施形態では、表示制御部150は、図9で示したように、操作部105の操作に応じた修正指示を受けてズレ修正処理を開始する。しかし、表示制御部150は、ズレ修正処理を行うトリガーは操作部105による修正指示でなくともよい。例えば、表示制御部150は、所定時間毎にズレ修正処理を行うように設定されてもよい。
次に、本実施形態に係る映像表示システム100の主な作用及び効果について説明する。
映像表示システム100では、作業対象物121のエッジ131,132とマーカ125とが用いられている。このため、作業対象物121のエッジ131,132,133,134の全体が検出されなくても、映像表示システム100は作業対象物121に対して仮想物体201,202を正確に表示し得る。映像表示システム100は、座標軸と位置姿勢演算部で演算された撮像装置の位置及び姿勢との関係を、作業対象物121のエッジ131,132に基づいて設定した後にマーカ125に基づいて修正している。エッジ131,132に基づく位置合わせは、マーカ125に基づく位置合わせと比べて処理負荷が低い。したがって、エッジ131,132による処理で適切に設定されていない次元に関する情報のみがマーカ125から取得されればよいため、検出精度が確保されながら処理負荷が低減され得る。
位置姿勢演算部152は、移動検出部102によって検出された移動から撮像装置101の位置及び姿勢を演算している。これによって、映像表示システム100は、ユーザの移動に追従して映像を表示する。しかし、ユーザの移動量に応じて移動検出部102における検出誤差が蓄積するおそれがある。映像表示システム100は、関係設定部153及び関係修正部154を有しているため、移動検出部102で生じた検出誤差による仮想物体201,202の表示配置のズレを修正することができる。
関係設定部153は、直線状のエッジ131,132に直線状の仮想エッジ203,204が沿うように、仮想座標軸αと撮像装置101の位置及び姿勢との関係を設定している。関係修正部154は、マーカ125の検出結果と、位置姿勢演算部152で演算された、マーカ125を撮像した際の撮像装置101の位置及び姿勢と、仮想座標軸αに予め対応付けられた仮想位置210とから、仮想エッジ203,204に平行な方向において、関係設定部153によって設定された、仮想座標軸αと撮像装置101の位置及び姿勢との関係を修正している。このため、少なくとも、撮像方向に平行な軸周りの回転ズレと、エッジ131,132に直交する方向成分の位置ズレとが関係設定部153によって修正され得る。したがって、関係修正部154におけるマーカ125を用いた処理の負荷が低減され得る。
関係設定部153と関係修正部154とが互いに異なる画像に基づいて処理する方式であれば、作業対象物121のエッジ131,132による処理とマーカ125による処理とに対してそれぞれ適切な同一解像度の画像を用いて段階的に行うことができる。このため、撮像装置101によって撮像される各画像が低解像度であっても、エッジ131,132とマーカ125とをそれぞれ適切に検出できる。例えば、第1画像にエッジ131,133の検出及びマーカ125の認識ができるようにエッジ131,132及びマーカ125を入れることができない場合であっても、エッジ131,132とマーカ125とをそれぞれ適切に検出できる。
なお、上記実施の形態の説明に用いたブロック図は、機能単位のブロックを示している。これらの機能ブロック(構成部)は、ハードウェア及び/又はソフトウェアの任意の組み合わせによって実現される。また、各機能ブロックの実現手段は特に限定されない。すなわち、各機能ブロックは、物理的及び/又は論理的に結合した1つの装置により実現されてもよいし、物理的及び/又は論理的に分離した2つ以上の装置を直接的及び/又は間接的に(例えば、有線及び/又は無線)で接続し、これら複数の装置により実現されてもよい。
例えば、本発明の一実施の形態における映像表示システムは、本実施形態における処理を行うコンピュータとして機能してもよい。図11は、本発明の一実施の形態に係る映像表示システムのハードウェア構成の一例を示す図である。上述した映像表示システム100は、物理的には、プロセッサ1001、メモリ1002、ストレージ1003、通信装置1004、入力装置1005、出力装置1006、バス1007などを含むコンピュータ装置として構成されてもよい。また、映像表示システム100は、上記以外にも、撮像装置101、移動検出に用いられるセンサ等のハードウェアも備える。
なお、以下の説明では、「装置」という文言は、回路、デバイス、ユニットなどに読み替えることができる。映像表示システム100のハードウェア構成は、図に示した各装置を1つ又は複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
映像表示システム100における各機能は、プロセッサ1001、メモリ1002などのハードウェア上に所定のソフトウェア(プログラム)を読み込ませることで、プロセッサ1001が演算を行い、通信装置1004による通信や、メモリ1002及びストレージ1003におけるデータの読み出し及び/又は書き込みを制御することで実現される。
プロセッサ1001は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサ1001は、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置(CPU:Central Processing Unit)で構成されてもよい。例えば、表示部104、基準配置設定部151、位置姿勢演算部152、関係設定部153、及び関係修正部154などは、プロセッサ1001で実現されてもよい。
また、プロセッサ1001は、プログラム(プログラムコード)、ソフトウェアモジュールやデータを、ストレージ1003及び/又は通信装置1004からメモリ1002に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施の形態で説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、表示部104、基準配置設定部151、位置姿勢演算部152、関係設定部153、及び関係修正部154は、メモリ1002に格納され、プロセッサ1001で動作する制御プログラムによって実現されてもよく、他の機能ブロックについても同様に実現されてもよい。上述の各種処理は、1つのプロセッサ1001で実行される旨を説明してきたが、2以上のプロセッサ1001により同時又は逐次に実行されてもよい。プロセッサ1001は、1以上のチップで実装されてもよい。なお、プログラムは、電気通信回線を介してネットワークから送信されても良い。
メモリ1002は、コンピュータ読み取り可能な記録媒体であり、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、RAM(Random Access Memory)などの少なくとも1つで構成されてもよい。メモリ1002は、レジスタ、キャッシュ、メインメモリ(主記憶装置)などと呼ばれてもよい。メモリ1002は、本発明の一実施の形態に係る方法を実施するために実行可能なプログラム(プログラムコード)、ソフトウェアモジュールなどを保存することができる。
ストレージ1003は、コンピュータ読み取り可能な記録媒体であり、例えば、CD−ROM(Compact Disc ROM)などの光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Blu−ray(登録商標)ディスク)、スマートカード、フラッシュメモリ(例えば、カード、スティック、キードライブ)、フロッピー(登録商標)ディスク、磁気ストリップなどの少なくとも1つで構成されてもよい。ストレージ1003は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、例えば、メモリ1002及び/又はストレージ1003を含むデータベース、サーバその他の適切な媒体であってもよい。
通信装置1004は、有線及び/又は無線ネットワークを介してコンピュータ間の通信を行うためのハードウェア(送受信デバイス)であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどともいう。映像表示システム100は、通信装置1004による外部との通信によってデータ格納部103の内部のデータを書き換えてもよい。
入力装置1005は、外部からの入力を受け付ける入力デバイス(例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、センサなど)である。出力装置1006は、外部への出力を実施する出力デバイス(例えば、ディスプレイ、スピーカー、LEDランプなど)である。なお、入力装置1005及び出力装置1006は、一体となった構成(例えば、タッチパネル)であってもよい。
また、プロセッサ1001やメモリ1002などの各装置は、情報を通信するためのバス1007で接続される。バス1007は、単一のバスで構成されてもよいし、装置間で異なるバスで構成されてもよい。
また、映像表示システム100は、マイクロプロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)などのハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部又は全てが実現されてもよい。例えば、プロセッサ1001は、これらのハードウェアの少なくとも1つで実装されてもよい。
以上、本発明について詳細に説明したが、当業者にとっては、本発明が本明細書中に説明した実施形態に限定されるものではないということは明らかである。本発明は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。したがって、本明細書の記載は、例示説明を目的とするものであり、本発明に対して何ら制限的な意味を有するものではない。
例えば、基準配置設定部151によって基準点Mと仮想座標軸αとの対応付けを行わずに、作業位置で関係設定部153と関係修正部154とによって、仮想座標軸αを作業対象物121に対応付けてもよい。なお、基準配置設定部151で、基準点Mと仮想座標軸αとの予め対応付けを行うことで、仮想物体の表示の精度が向上され得る。
関係設定部153は、平面P1,P2を演算せずに、第1画像上の2次元空間で作業対象物121のエッジ131,132上に仮想エッジ203,204が配置されるように、仮想座標軸αと撮像装置101の位置及び姿勢との関係を修正してもよい。
本明細書で説明した各態様/実施形態は、LTE(Long Term Evolution)、LTE−A(LTE-Advanced)、SUPER 3G、IMT−Advanced、4G、5G、FRA(Future Radio Access)、W−CDMA(登録商標)、GSM(登録商標)、CDMA2000、UMB(Ultra Mobile Broadband)、IEEE 802.11(Wi−Fi)、IEEE 802.16(WiMAX)、IEEE 802.20、UWB(Ultra-WideBand)、Bluetooth(登録商標)、その他の適切なシステムを利用するシステム及び/又はこれらに基づいて拡張された次世代システムに適用されてもよい。
本明細書で説明した各態様/実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本明細書で説明した方法については、例示的な順序で様々なステップの要素を提示しており、提示した特定の順序に限定されない。
入出力された情報等は特定の場所(例えば、メモリ)に保存されてもよいし、管理テーブルで管理してもよい。入出力される情報等は、上書き、更新、または追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
判定は、1ビットで表される値(0か1か)によって行われてもよいし、真偽値(Boolean:trueまたはfalse)によって行われてもよいし、数値の比較(例えば、所定の値との比較)によって行われてもよい。
本明細書で説明したデータは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
また、本明細書で説明したデータ、パラメータなどは、絶対値で表されてもよいし、所定の値からの相対値で表されてもよいし、対応する別の情報で表されてもよい。上述したパラメータに使用する名称はいかなる点においても限定的なものではない。
本明細書で使用する「判断(determining)」、「決定(determining)」という用語は、多種多様な動作を包含する場合がある。「判断」、「決定」は、例えば、判定(judging)、計算(calculating)、算出(computing)、処理(processing)、導出(deriving)、調査(investigating)、探索(looking up)(例えば、テーブル、データベースまたは別のデータ構造での探索)、確認(ascertaining)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、受信(receiving)(例えば、情報を受信すること)、送信(transmitting)(例えば、情報を送信すること)、入力(input)、出力(output)、アクセス(accessing)(例えば、メモリ中のデータにアクセスすること)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、解決(resolving)、選択(selecting)、選定(choosing)、確立(establishing)、比較(comparing)などした事を「判断」「決定」したとみなす事を含み得る。つまり、「判断」「決定」は、何らかの動作を「判断」「決定」したとみなす事を含み得る。
本明細書で使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
「含む(include)」、「含んでいる(including)」、およびそれらの変形が、本明細書あるいは特許請求の範囲で使用されている限り、これら用語は、用語「備える」と同様に、包括的であることが意図される。さらに、本明細書あるいは特許請求の範囲において使用されている用語「または(or)」は、排他的論理和ではないことが意図される。
本開示の全体において、文脈から明らかに単数を示したものではなければ、複数のものを含むものとする。