(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023077070
(43)【公開日】2023-06-05
(54)【発明の名称】現実空間に対するヴァーチャル空間の位置合わせ方法
(51)【国際特許分類】
G06T 19/00 20110101AFI20230529BHJP
G06T 7/33 20170101ALI20230529BHJP
G06T 7/70 20170101ALI20230529BHJP
【FI】
G06T19/00 600
G06T7/33
G06T7/70 Z
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2021190196
(22)【出願日】2021-11-24
(71)【出願人】
【識別番号】519372663
【氏名又は名称】HMS株式会社
(72)【発明者】
【氏名】コ シンテイ
【テーマコード(参考)】
5B050
5L096
【Fターム(参考)】
5B050BA09
5B050BA13
5B050CA07
5B050DA01
5B050DA10
5B050EA05
5B050EA07
5B050EA13
5B050EA18
5B050EA19
5B050EA27
5B050FA02
5B050FA09
5B050GA08
5L096FA06
5L096FA12
5L096FA19
5L096FA67
5L096FA69
(57)【要約】
【課題】様々な環境で高い精度を発揮することができる、現実空間に対するヴァーチャル空間の位置合わせ方法を提供する。
【解決手段】本開示における、現実空間に対するヴァーチャル空間の位置合わせ方法は、現実空間における角部または縁部に沿ってマーカを設置するステップと、構造物の角部または縁部に対する前記マーカの位置及び姿勢を測定するステップと、ARデバイスの撮像部でマーカを撮像した画像情報に基づいて、マーカに対するARデバイスの相対的な位置及び姿勢を算出するステップと、測定するステップで得た情報と、算出するステップで得た情報とに基づいて、現実空間の座標系に対する予め記憶部に記憶されたヴァーチャル空間の座標系の位置合わせを行うステップと、を含む。
【選択図】
図7
【特許請求の範囲】
【請求項1】
現実空間における角部または縁部に沿ってマーカを設置するステップと、
前記角部または縁部に対する前記マーカの位置及び姿勢を測定するステップと、
ARデバイスの撮像部でマーカを撮像した画像情報に基づいて、マーカに対するARデバイスの相対的な位置及び姿勢を算出するステップと、
前記測定するステップで得た情報と、前記算出するステップで得た情報とに基づいて、現実空間の座標系に対する予め記憶部に記憶されたヴァーチャル空間の座標系の位置合わせを行うステップと、を含む、現実空間に対するヴァーチャル空間の位置合わせ方法。
【請求項2】
前記マーカを設置するステップにおいて、複数の前記マーカをそれぞれ別の平面に設置する、請求項1に記載の現実空間に対するヴァーチャル空間の位置合わせ方法。
【請求項3】
前記マーカを設置するステップにおいて、複数の前記マーカを、互いに直交する平面にそれぞれ設置する、請求項1または2に記載の現実空間に対するヴァーチャル空間の位置合わせ方法。
【請求項4】
前記マーカを設置するステップにおいて、前記ARデバイスの撮像部で同時に撮像できる領域内に、複数の前記マーカを設置する、請求項1~3の何れかに記載の現実空間に対するヴァーチャル空間の位置合わせ方法。
【請求項5】
前記マーカを設置するステップにおいて、前記縁部と、四角形の前記マーカの一辺とが平行となるように前記マーカを設置する、請求項1~4の何れかに記載の現実空間に対するヴァーチャル空間の位置合わせ方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、現実空間に対するヴァーチャル空間の位置合わせ方法に関する。
【背景技術】
【0002】
従来、ARグラス、スマートフォン、タブレット端末等のAR(拡張現実)を表示するARデバイスを用いて、現実空間(実世界)の風景や撮影画像に、ヴァーチャル画像(例えば3D-CADデータ等)を重ね合わせて表示することが知られている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のようなARデバイスにおいて、現実世界の風景にヴァーチャル画像の位置を合わせるために、現実世界におけるARデバイスの位置、姿勢、移動などの情報を取得する必要がある。特に、土木、建築分野等の現場ではGPSの使用が困難であることが多いため、例えばVSLAMと呼ばれる手法で自己位置の推定と環境地図作成を同時に行うことが考えられる。
【0005】
しかしながら、例えばトンネル工事のように現実世界の風景に特徴点が少なかったり、類似する風景要素が多かったり、あるいは、環境が常に変化していたりする場合には、従来の手法では、現実空間とヴァーチャル空間との位置合わせの精度が低下し易いという問題がある。
【0006】
そこで、本開示は上記技術課題に鑑みてなされたものであり、その目的は、様々な環境で高い精度を発揮することができる、現実空間に対するヴァーチャル空間の位置合わせ方法を提供することである。
【課題を解決するための手段】
【0007】
本開示における、現実空間に対するヴァーチャル空間の位置合わせ方法は、現実空間における角部または縁部に沿ってマーカを設置するステップと、構造物の角部または縁部に対する前記マーカの位置及び姿勢を測定するステップと、ARデバイスの撮像部でマーカを撮像した画像情報に基づいて、マーカに対するARデバイスの相対的な位置及び姿勢を算出するステップと、測定するステップで得た情報と、算出するステップで得た情報とに基づいて、現実空間の座標系に対する予め記憶部に記憶されたヴァーチャル空間の座標系の位置合わせを行うステップと、を含む。
【発明の効果】
【0008】
本開示によれば、様々な環境で高い精度を発揮することができる、現実空間に対するヴァーチャル空間の位置合わせ方法を提供することが可能となる。
【図面の簡単な説明】
【0009】
【
図1】本開示の一実施形態に係るARシステムの構成例を示す図である。
【
図2】本実施形態に係るARデバイスの構成例を示す図である。
【
図3】本実施形態に係るサーバの構成例を示す図である。
【
図4】本実施形態に係るARマーカの設置例を示す図である。
【
図5】本実施形態に係るARデバイスの自己位置推定方法に係るフローチャート図である。
【
図6】本実施形態に係るARマーカの他の設置例を示す図である。
【
図7】本実施形態の現実空間とヴァーチャル空間の位置合わせ方法に係るフローチャート図である。
【
図8】本実施形態に係るマーカの設置例を示す平面図である。
【
図9】本実施形態の現実空間に対するヴァーチャル空間の位置合わせ方法に係るフローチャート図である。
【発明を実施するための形態】
【0010】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0011】
図1は、本発明の一実施形態に係るARシステムの一例を示す。
図1に示すように、本例のARシステムは、ARデバイス10と、サーバ20とを備える。ARデバイス10とサーバ20とは、ネットワーク30を介して接続され、通信可能である。
【0012】
<ARデバイス>
本例のARデバイス10は、眼鏡型の情報処理端末であるARグラスである。なお、ARデバイス10は、ARグラスに限られず、スマートフォン、タブレット端末等の情報処理装置であってもよい。
【0013】
図2は、ARデバイス10の構成の概略を説明するブロック図である。図示のように、ARデバイス10は、例えば、制御部11、記憶部12、表示部13、通信部14、撮像部15、センサ部16を備え、これらが互いにバス17を介して接続される。
【0014】
制御部11は、各部間のデータの受け渡しを行うとともに、ARデバイス10全体の制御を行うものである。例えばCPU(Central Processing Unit)やGPU(Graphics Processing Unit)等のプロセッサによって実現される。制御部11は、記憶部12にアクセス可能であり、記憶部12に情報を格納したり、記憶部12から情報を読み出したりすることができる。
【0015】
制御部11は、記憶部12に記憶されたプログラムを実行することによって、各種データの取得、生成、出力等を行う。制御部11は、撮像部15、センサ部16、サーバ20等の他の装置から取得した情報を取得し、当該情報と記憶部12の情報等に基づいて、ARグラスの位置及び姿勢(向き)を推定することができる。
【0016】
記憶部12は、1つ以上のステップを行うためのプログラム、コード等を記憶しており、制御部11は、当該プログラム等に従って、各部の動作を制御する。記憶部12は、システムプログラムが記憶された読取専用の記憶領域である不揮発性記憶装置と、制御部11による演算処理のワーク領域として使用される書き換え可能な記憶領域である揮発性記憶装置とを有している。不揮発性記憶装置は、例えば、ROM(Read Only Memory)やフラッシュメモリ、ハードディスクなどによって実現され、揮発性記憶装置は、RAM(Random Access Memory)やVRAM(Video Random Access Memory)などによって実現される。
【0017】
記憶部12は、たとえば、SDカードやランダムアクセスメモリ(RAM)などの分離可能な媒体または外部の記憶装置を含んでいてもよい。記憶部12は、撮像部15やセンサ部16から取得した各データを記憶することができる。例えば、撮像部15としてのカメラで撮像した静止画・動画等の画像データが内蔵メモリ又は外部メモリに記憶されるようにしてもよい。
【0018】
表示部13は、例えば液晶表示装置などの表示装置を備えている。表示装置としては、例えば、ウェイブガイド形式のディスプレイ(Wave Guide Display)とすることができる。表示装置には、制御部11により制御される画像が表示される。つまり、表示部13は、制御部11が生成した画像を表示させることができる。また、表示装置は、一部または全体が透明または半透明に構成された透明部を有し、当該透明部を通して現実空間の風景を視認しつつ、ヴァーチャル画像をその風景に重ねて表示させることができる。表示部13は、表示装置とは別に、1以上のレンズを備えていてもよい。
【0019】
表示部13は、現実空間の画像(例えば後述するマーカ等)が撮像(撮影)された際のARグラスの位置(撮像位置)及び姿勢(撮像方向)に応じたヴァーチャル画像(3D-CADモデル、CGモデル等)を、表示装置のレンズを透過して見える現実空間の風景に重ね合わせて表示させる。なお、表示部13は、撮像部15によって撮像された画像にヴァーチャル画像を重ね合わせたAR画像を制御部11等により生成し、当該AR画像を表示するようにしてもよい。
【0020】
通信部14は、ARデバイス10を、インターネットを含むネットワーク30に接続する。この通信部14は、Bluetooth(登録商標)やBLE(Bluetooth Low Energy)といった近距離通信インターフェースを具備するものであってもよい。
【0021】
撮像部15は、1以上の撮像装置(カメラ)を備えている。制御部11は、撮像装置によって撮像された静止画または動画の画像データを記憶部12、サーバ20等に送ることができる。撮像装置は、例えば、RGBカメラ、VSLAM用の左右一対の魚眼カメラ(fisheye Camera)、ToFカメラ(Time-of-Flight Camera)等を含むことができる。このような撮像装置は、センサ部16としても機能し得る。例えば、ToFカメラ(Time-of-Flight Camera)は、光の飛行時間を測定することで対象物との距離することができるものであり、ToFセンサとも称される。
【0022】
撮像部15は、ユーザの操作に応じて、あるいは予め設定された指示情報に基づいて、所定時間にわたって連続した画像を撮像することができる。また、撮像部15は、ユーザの操作、あるいは予め設定された指示情報に基づいて、非連続的な1時点の画像を撮像することもできる。つまり、撮像部15は、静止画、動画の撮像が可能である。
【0023】
センサ部16は、例えば、3軸加速度センサ、3軸ジャイロセンサ、方位センサ、GPS等とすることができる。各センサは、各センサが検出した位置、姿勢、移動の速度、加速度等の情報(検出信号)を制御部11に伝達(入力)することができる。
【0024】
ARグラスは、ユーザ等からの要求(指示)の入力を受け付ける入力部を備えてもよい。入力部は、例えば、タッチパネル、機械的なスイッチとすることができる。なお、入力部は、アイトラッキング技術を用いた視線入力や、マイク等を用いた音声入力を受け付けるものであってもよい。入力部は、スマートフォン等の別の情報処理装置からの入力を受け付けるようにしてもよい。ARグラスは、音声等を出力するスピーカ等の出力部を備えてもよい。
【0025】
<サーバ>
サーバ20は、システム管理者等が各種サービス等を運営・管理する際に利用する情報処理装置であり、例えば、ワークステーションやパーソナルコンピュータのような汎用コンピュータとしてもよいし、或いはクラウド・コンピューティング技術によって論理的に実現されてもよい。
【0026】
図3に示すように、サーバ20は、例えば、制御部21、記憶部22、出力部23、通信部24、入力部25を備え、これらが互いにバス26を介して接続される。サーバ20は、通信部24を介してARグラスと通信可能である。サーバ20は、ARグラス等から各種の要求信号を受信すると、制御部21においてプログラムによる処理を実行し、処理結果(例えば、生成された画像や音声等)を適宜ARグラス等に送信したり、記憶部22に記憶したりする。なお、上記プログラムの一部は、ARグラスに送信されてARグラス上で実行されてもよい。
【0027】
制御部21は、各部間のデータの受け渡しを行うとともに、サーバ20全体の制御を行うものであり、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)が所定のメモリ(記憶部)に格納されたプログラムを実行することによって実現される。
【0028】
記憶部22は、システムプログラムが記憶された読取専用の記憶領域である不揮発性記憶装置と、制御部21による演算処理のワーク領域として使用される書き換え可能な記憶領域である揮発性記憶装置とを有している。不揮発性記憶装置は、例えば、ROM(Read Only Memory)やフラッシュメモリ、ハードディスクなどによって実現され、揮発性記憶装置は、RAM(Random Access Memory)やVRAM(Video Random Access Memory)などによって実現される。
【0029】
記憶部22は、ヴァーチャル空間に関する情報、ヴァーチャル画像に関する情報、マーカに関する情報、各座標系(現実空間座標系、ARデバイス座標系、マーカ座標系、仮想空間座標系)関する情報等を記憶することができる。
【0030】
記憶部22は、ARカメラ等から受信した情報を記憶することができる。また、記憶部22は、上記ARカメラの記憶部12に記憶された情報を記憶するようにしてもよい。
【0031】
出力部23は、音声を出力するスピーカ、画像を表示するディスプレイ等で構成される。
【0032】
通信部24は、サーバ20を、インターネットを含むネットワーク30に接続する。この通信部24は、Bluetooth(登録商標)やBLE(Bluetooth Low Energy)といった近距離通信インターフェースを具備するものであってもよい。
【0033】
入力部25は、キーボードやマウス、あるいはタッチパネル等とすることができる。
【0034】
図4は、ARデバイス10としてのARグラスと、現場の構造物50の壁面に設置したマーカ40を用いて、ARデバイス10の自己位置推定の精度を高める方法を示す図である。
【0035】
<マーカ>
マーカ40は、例えば、AprilTagとすることができるが、これに限られず、ARTag、ARToolkit、ARToolkitPlus、RUNE-Tag、reacTIVison等の、他のARマーカ(ARタグ)とすることができる。マーカ40は、例えば、全体として正方形である。マーカ40は、複数の正方形をした画素が二次元に配列されたマトリクス構造を有するものであり、各画素が白または黒で表示される。マーカ40の形状、描かれた図形はこれに限定されない。
【0036】
マーカ40として、AprilTagを採用する場合、例えば36h11マークシリーズは587個のマーカで構成される。ARデバイス10のカメラで任意のマーカ40を撮像するだけで、それぞれのマーカ40固有のID(識別情報)を取得することができる。なお、ARデバイス10のカメラで任意のマーカ40を撮像する際には、マーカ40を正面から撮像してもよいし、斜めから撮像してもよく、制御部による画像処理によって、各マーカ40固有の識別情報、位置、姿勢の情報を取得することができる。それぞれのマーカ40の画像と、各画像に対応するID情報とが予め関連付けられて記憶部22(もしくは記憶部12)に記憶されている。
【0037】
具体的には、例えば、ARグラスのカメラで撮像した画像データをサーバ20に送信すると、サーバ20の制御部21が記憶部22に記憶されたデータを参照し、そのマーカ40に対応するID情報を、ARグラスに送信する。これにより、ARグラスの制御部11がそのマーカ40に対応するIDを取得することができる。このID情報として、例えば、現実空間における位置、姿勢等の情報を関連付けて記憶部22に記憶させておくことができる。これによれば、カメラでマーカ40を撮像するだけで、マーカ40のIDに加えて、当該マーカの現実空間における位置、姿勢等の情報を正確に把握することができる。
【0038】
このようなマーカ40に関する情報は、ARグラスの表示部13に表示させることができる。ユーザは、ARグラスのカメラでマーカ40を撮像するだけで、そのマーカ40のID、位置、姿勢等の情報を表示部13から確認することができる。なお、カメラで撮像したマーカ40の画像に基づいて、そのマーカ40のIDを取得する処理は、(サーバ20と通信せずに)ARカメラのみで一連の処理を行うようにしてもよい。その場合、ARカメラの記憶部12に、マーカ40に関する情報を予め記憶しておく。
【0039】
<座標系>
ここで、
図4に示すように、ARグラスには、ARグラス固有の座標系(ARデバイス座標系)が設定される。また、マーカ40には、マーカ40固有の座標系(マーカ座標系)が設定されている。さらに、現実空間には、現実空間座標系(世界座標系)が設定され、ヴァーチャルモデルには、ヴァーチャル空間座標系(仮想空間座標系)が設定される。
【0040】
各座標系は、例えば3次元の直交座標系であり、直行する3本の座標軸(x軸、y軸、z軸)と、3本の座標軸が交わる原点を有する。各座標系の情報は、記憶部12、22に記憶することができる。すなわち、各座標系の原点位置、座標軸の向き、並びに、各座標系同士の相対的な位置、姿勢(向き)の関係を、記憶部12、22に記憶することができる。なお、位置とは3次元の座標で表現され、姿勢とは、3次元の方向(x軸、y軸、z軸それぞれの軸の周りでの回転角度)で表現され得る。
【0041】
<ヴァーチャルデータ>
記憶部22は、3次元のヴァーチャル空間(仮想空間)に関する情報、及び、ヴァーチャル空間において所定の位置、姿勢で位置決めされたヴァーチャルモデル(3次元又は2次元のCGモデル)に関する情報を記憶することができる。ヴァーチャルデータは、ヴァーチャル空間座標系の情報を有する。仮想空間データは、所定の現実空間(例えば建築現場)の空間データに対応していることが好ましい。仮想空間における位置、方向、座標系は、現実空間における位置、方向、座標系に対応付けられる。ヴァーチャル空間座標系の原点位置は、現実空間における所定の位置に一致(または対応)させることができる。また、ヴァーチャル空間座標系の3本の座標軸は、現実空間に設定された3本の座標軸に一致(または対応)させることができる。また、ヴァーチャルモデルの仮想空間上の形状、位置及び向きは、例えば、現実空間における実際の建築現場に設けられる建物等の形状、位置及び向きに対応している。
【0042】
ヴァーチャルモデルは、例えば、対象物の3D-CADデータ、あるいはBIM(Building Information Modeling)データから作成することができる。なお、ヴァーチャル画像の作成方法や、画像データの種類は特に限定されない。記憶部12は、仮想空間の座標系の原点に対するヴァーチャルモデルの位置情報、当該仮想空間座標系においてどの方向を向いているかを示す姿勢情報を有する。また、仮想空間の設定、ヴァーチャルモデルの配置は、例えば、BIMデータといった設計データに基づいて予め行われる。また、ヴァーチャルモデルは、平面図(例えば、2Dの施工図又は平面詳細図)に基づくものであってもよい。ヴァーチャルモデルの生成は、サーバ20で行われてもよいし、他の装置で行われてもよい。ARグラスは、サーバ20からヴァーチャルモデルに関するデータを予め取得しておいてもよいし、ARグラスの使用中に連続的に(もしくは断続的に)ヴァーチャルモデルに関するデータを繰り返し取得するようにしてもよい。
【0043】
ARデバイス座標系の原点及び各座標軸は、ARグラスに対して所定の位置、向きで設定されている。制御部11(もしくは制御部21)は、ARグラスの撮像部15で撮像した画像に基づいて、ARグラスの位置、姿勢を推定し、ヴァーチャルデータを現実空間座標系に対応させることができる。
【0044】
ARグラスは、撮像部15で撮像された現実空間の画像(映像)に基づいて、物体のヴァーチャル画像を現実空間の風景(もしくは現実世界の画像)に重ね合わせて表示させる装置である。ARグラスは、例えば、土木、建築、鉄道、交通の現場において、作業員、監督者等のユーザが頭部に装着するなど、携帯して用いられる。当該現場の現実空間の風景に、設置予定の部材や建物等のヴァーチャル画像を設置予定の位置、設置予定の向き(姿勢)で、現実空間の風景(もしくは現実世界の画像)に重ね合わせて表示させる。ヴァーチャル画像は、3D-CAD等により予め生成し、ARデバイス10又はサーバ20等の記憶部12、22に記憶される。
【0045】
ARグラスは、ARグラスの位置、姿勢(角度)の情報を取得して、制御部11が、記憶部12のデータを取得、参照しつつ、当該位置、姿勢に対応する画像データを生成する。そして、生成した画像データ(ヴァーチャル画像のデータ)を、表示部13に表示させる。これにより、ARグラスの位置、姿勢に応じたヴァーチャル画像が、現実世界の風景に重なるようにARグラスに表示される。現場において、ユーザがヴァーチャル画像を確認することで、作業過程又は最終的なイメージを持ちながら作業することができ、作業ミスを抑制しながら確実に作業を進めることができる。また、離れた場所から指示をする場合にも、立体的なヴァーチャル画像を見ながら会話することで、効率的に指示することができる。
【0046】
ARグラスの位置情報、姿勢情報(方向情報)は、例えば自己位置推定の技術により取得することができる。自己位置推定の技術は、例えば、Visual SLAM(Simultaneous Localization And Mapping)、VIO(Visual Inertial Odometry)等の画像情報を活用した技術があり、ARグラスには上記技術を実現するためのカメラやセンサ等が搭載され得る。このような自己位置推定技術は、特に非GPS環境下においては有効である。本例のARグラスは、所謂「Visual SLAM」により、撮像部15で撮像した映像から自己位置推定と環境地図(ヴァーチャル空間)の作成を同時に行うことができる。
【0047】
本実施形態のARグラスは、ユーザが頭部に装着する眼鏡型の表示装置であり、1枚以上のレンズ(表示部13と一体または別体)、レンズ等を支持するフレーム(枠体)、制御部11、撮像部15、センサ部16、表示部13、通信部、記憶部12、入力部等を備えることができる。なお、ARグラスの一部の構成(制御部11等)を別ユニットとして分離し、有線もしくは無線で接続するようにしてもよいし、制御部11や記憶部12を用いて行う処理を、サーバ20で実行するようにしてもよい。
【0048】
ARグラスの位置及び姿勢は、制御部11における自己位置推定部によって決定される。ARグラスは、インターネット等のネットワークを介して、あるいは直接的にサーバ20等の情報処理装置に通信接続するための通信部を備える。これにより、通信部を備えた他の情報処理装置との間で、各種データの送受信を行うことができる。例えば、ARグラスで撮像した画像データ、制御部11で生成した画像データ、センサ部16で取得したセンサデータ等をサーバ20に送信してサーバ20側で記憶、処理したり、サーバ20から送信された画像等のデータを受信したりすることができる。
【0049】
なお、ARデバイス10の撮像部15で撮像した画像をサーバ20に送信して、サーバ20の制御部21において、ARデバイス10に表示する画像を生成するようにしてもよい。
【0050】
制御部11は、撮像部15(カメラ)の位置(撮像位置)及び姿勢(撮像方向)の情報を取得して、当該画像が撮像された際の撮像部15の位置及び姿勢に応じたヴァーチャルモデルの画像を(記憶部12の情報に基づいて)生成し、表示部13に出力する。
【0051】
制御部11は、画像を撮像部15で撮像した際の位置及び姿勢と同じ条件で、当該撮像部15が仮想空間にあると仮定した仮想カメラで仮想空間内に設置されたヴァーチャルモデルを撮像した場合のヴァーチャルモデルの画像を生成し、表示部13は現実空間の風景(もしくは現実空間の画像)に重なり合うように表示する。
【0052】
ヴァーチャルモデルをARグラスの表示部13に表示する際には、カメラの位置及び姿勢だけではなく、例えば、現実空間の明るさ等の他のパラメータを考慮してもよい。また、ヴァーチャルモデルを半透明にして、ヴァーチャルモデル画像が重なる部分(隠れる部分)も視認できるようにしてもよい。なお、ARグラスの表示部13は、カメラの位置及び姿勢に対応して、表示するヴァーチャル画像を設定したり、修正したりする。
【0053】
制御部11は、撮像部15又はセンサ部16からの情報に基づいて、ARグラスの撮像装置の移動状態(移動の有無、移動方向、移動速度等)を推定することができる。制御部11は、当該移動状態情報に応じて、仮想空間におけるカメラの位置及び姿勢(カメラが仮想空間にあるとした場合の位置及び姿勢)を算出する。表示部13は、修正した位置及び姿勢に基づいて画像に対するヴァーチャルモデルの重ね合わせを行う。このような処理を連続的に行うことで、ユーザの動きに応じたARグラスの移動に追従したヴァーチャル画像を、表示部13に表示させることができる。
【0054】
表示部13は、撮影される画像を入力する度(連続的または断続的)に、また、センサ部等から移動状態を示す情報を受け付ける度に、表示される画像の生成及びディスプレイへの出力を行う。即ち、表示部13は、カメラの移動状態に追従するように現実空間の風景又は画像にヴァーチャルモデルを重ね合わせて表示する。表示部13の当該機能は、公知のARの方法(例えば、ARToolKitのトラッキングアルゴリズム、SLAM機能)によって実現することができる。
【0055】
以下、
図4、
図5を参照しつつ、マーカ40を用いた自己位置及び姿勢を校正(補正)する方法について説明する。
【0056】
まず、
図4に示すように、マーカ40を、建築現場等の所定の位置に、予め位置決めして設置しておく(ステップS1)。現実空間座標系におけるマーカ40の位置、姿勢(向き)は、予めARグラスかサーバ20の少なくとも何れかの記憶部(12、22)に記憶しておく。
図4の例では、構造物50の鉛直な壁面にマーカ40を設置しているが、水平面等でもよい。また、構造物50の壁面の上縁(上端部に位置する水平な縁部)と側縁(側端部に位置する鉛直な縁部)に対して、マーカ40の2辺が平行になるように貼り付けられているが、これに限られない。
【0057】
ユーザは、ARグラスのカメラの撮像範囲内に当該マーカ40が位置するようにカメラの向きを調整し、カメラでマーカ40を撮像する(ステップS2)。
【0058】
制御部(11、21)は、撮影されたマーカ40の画像データに基づいて、ARデバイス座標系(カメラ座標系)上でのマーカ40の3次元の位置、姿勢を算出する。その際、正方形のマーカ40の何れかの角を構成する1点と、当該1点の角で直行する2辺(エッジ)を参照要素(参照点、参照線)として、マーカ40の位置と姿勢を決定する。制御部(11、21)は、ARグラス座標系と、マーカ座標系との3次元の相対的な位置関係(座標変換マトリクス(R、T))を算出する。
【0059】
また制御部(11、21)は、ARデバイス座標系上でのマーカ40の位置、姿勢に基づいて、座標変換マトリクス(R、T)を用いて逆算することにより、マーカ座標系上でのARグラスの位置、姿勢を算出する。これにより、制御部(11、21)は、マーカ40に対するARグラスの相対的な位置、姿勢を算出する(ステップS3)。
【0060】
制御部(11、21)は、撮影されたマーカ40の画像データに基づいて、現実空間座標系でのマーカ40の識別情報、位置、姿勢の情報を記憶部(12、22)から取得する。換言すると、制御部(11、21)は、マーカ座標系と、現実空間座標系との3次元の相対的な位置関係(座標変換マトリクス(R0、T0))を記憶部(12、22)から取得する。現実空間座標系上のマーカ40の位置及び姿勢、現実空間座標系とマーカ座標系との相対的な3次元の位置関係(位置と姿勢)は予め記憶部(12、22)に記憶されている。制御部(11、21)は、位置や形状が既知の物体の画像と、それを撮像したカメラの位置及び姿勢を求める、いわゆるPnP問題(Perspective n-Point)を解くことで、カメラ及びこれを含むARグラスの位置座標(撮像位置座標)及び姿勢が推定可能となる。
【0061】
制御部(11、21)は、マーカ40に対するARグラスの相対的な位置、姿勢の情報と、現実空間座標系とマーカ座標系との相対的な3次元の位置関係とに基づいて、(つまり、座標変換マトリクス(R0、T0)を用いて逆算することにより、)現実空間座標系上でのARグラスの位置、姿勢を算出する(ステップS4)。
【0062】
このような方法により、ARグラスは、高い精度で現実空間座標系上での自己位置と姿勢を推定することができる。
【0063】
以下に、
図6、
図7を参照しつつ、現実空間に対するヴァーチャル空間の位置合わせ方法について説明する。より具体的には、ARデバイスを現場で用いる際の初期設定の方法について説明する。
【0064】
本実施形態に係る、現実空間に対するヴァーチャル空間の位置合わせ方法にあっては、現実空間における角部または縁部に沿ってマーカを設置するステップと、構造物の角部または縁部に対する前記マーカの位置及び姿勢を測定するステップと、ARデバイスの撮像部でマーカを撮像した画像情報に基づいて、マーカに対するARデバイスの相対的な位置及び姿勢を算出するステップと、前記測定するステップで得た情報と、前記算出するステップで得た情報とに基づいて、現実空間の座標系に対する予め記憶部に記憶されたヴァーチャル空間の座標系の位置合わせを行うステップと、を含む。このような構成により、どのような環境であっても、つまり様々な環境において、高い精度で現実空間に対するヴァーチャル空間の位置合わせを実行することができる。
【0065】
具体的に、例えば、現場においてARグラスを最初に使用する際に、ユーザは初期設定(セットアップ)を行う。まず、ARグラスの電源スイッチをオンにすること等により、ARグラスに記憶されたアプリケーションを起動させる。そして、初期設定として、3次元のヴァーチャル画像が設定されるヴァーチャル空間座標系(ヴァーチャル世界)と、現実空間座標系(現実世界)との最初の位置合わせを行う。ヴァーチャル画像が設定されるヴァーチャル空間座標系の情報は、記憶部12、22に記憶される。ヴァーチャル空間座標系の情報は、ヴァーチャル座標系と、ヴァーチャルモデルの情報、ヴァーチャル空間におけるマーカの情報を含む。
【0066】
現場において、例えば建物や構造物等が設置される空間の入り口付近において、3次元の設計図面(3D-CAD等)で参照し易い位置の近傍にマーカ40を設置する(ステップS11)。参照し易い位置とは、例えば、建物の角部(外面の角部または内面の角部)や縁部(例えば直線状のエッジ)である。なお、制御部がVSLAM等で自己位置推定とマッピング(地図形成)を行う際には、隣接する2つの平面が交わるエッジ(縁部)、3つの平面が交わる角部を参照点Pとすることができる。マーカを設置する際には、接着手段等を用いて貼り付けることで、対象物にマーカを着脱可能な状態で固定することができる。
【0067】
図6に示す例では、建物内の互いに直交する3面(水平な床面と、2つの鉛直な壁面)が交わる角部(内角部)を、参照点Pとしている。そして、床面に第1のマーカ40aを設置し、壁面(側壁の表面)に第2のマーカ40bを設置している。
【0068】
マーカ40を設置する際には、複数のマーカ40をそれぞれ別の平面(壁面、床面)に設置することが好ましい。これによれば、1つのマーカ40のみを使って位置合わせする場合に比べて、多くの情報を参照することができるので、位置合わせの精度を高めることができる。なお、マーカ40を設置する位置は、鉛直な壁面、水平な床面が好ましいが、これに限られない。また、位置合わせの精度を高める観点から、互いに直交する平面にそれぞれマーカ40を設置することが好ましい。これによれば、互いに対して斜めに延在する平面にマーカを設置する場合に比べて、位置合わせの精度を高めることができる。
【0069】
また、参照点Pである角部を構成する複数の壁面にそれぞれマーカ40を設置することが好ましい。これによれば、参照点Pである角部の周囲に複数のマーカを異なる角度で設置することができ、位置合わせの精度をさらに高めることができる。
【0070】
また、ARデバイス10の撮像部15で同時に撮像できる領域内に、(つまり比較的近接した位置に)複数のマーカ40を配置することが好ましい。
図6の例では、第1のマーカ40aと第2のマーカ40bがそれぞれ互いに直交する平面(床面と壁面)に設置されている。なお、本例のように、2つのマーカ40で縁部(2つの平面が交わる直線状のエッジ)を両側から挟むように、当該2つのマーカ40を設置することが好ましい。例えば、2つのマーカ40の間に位置する縁部に沿う方向において、2つのマーカ40が部分的にまたは全体が重なる位置にあることが好ましい。これにより、2つのマーカ40が近接した位置に配置される。
【0071】
マーカ40は、建物の角部、縁部(エッジ)に沿って設置することが好ましい。より具体的に、建物の内壁面の角部を構成する壁面の、直行する2辺と、正方形状のマーカの角を形成する2辺とがそれぞれ互いに平行になるように、マーカ40を設置することが好ましい。あるいは、建物等の構造物の何れかの縁部と、四角形のマーカ40の1辺とが平行になるように配置することが好ましい。このようにすることで、マーカ40を適切な位置、姿勢で設置し易く、現実空間に対するヴァーチャル空間の位置決めも容易となる。なお、マーカは、所定の位置(緯度、経度)において、所定の姿勢(例えば、東西南北の何れかの方角にマーカの1辺が平行等)で、地面に位置決めした状態で設置してもよい。マーカ40は、墨出し等の方法により、基準となる角、エッジに対して、平面に沿ってオフセットさせて配置することもできる。
【0072】
レーザー測位計などの測定装置を用いて、3D-CAD設計図面の参照点Pと座標軸(方位軸)からの相対的な各マーカ40のずれ(つまりマーカ40の相対的な位置及び姿勢)を示すデータ(R0,T0)を計測する(ステップS12)。ずれの原因としては、例えば、設計図面と現実の建物との間の公差(許容誤差)、マーカの設置誤差等がある。また、ARグラスのカメラ等によるマーカの位置姿勢認識の誤差もあり得る。具体的に、現実空間において、建物の角部(参照点P)及びエッジを基準として、マーカ40の位置、姿勢をそれぞれ測定(実測)する。これにより、現実空間座標系と、それぞれのマーカ座標系との関係(位置、姿勢)を算出できる。現実空間におけるマーカ40の位置、姿勢の情報は、サーバ20の記憶部22に記憶される。サーバ20からARグラスに当該情報を送信する。なお、ずれを示すデータ(座標変換マトリクス(R0,T0))をARグラスの記憶部12に記憶するようにしてもよい。測定装置は、レーザー測位計に限られず、現実空間における特定の2点間の距離、姿勢等を測定できるものであればよい。例えば、水平器や、遠い距離から角度や距離を測る望遠鏡であってもよい。また例えば、自動墨出し装置、レーザー墨出し器等を含めた墨出しによる測定方法を用いてもよい。自動墨出し装置は、装置の基準点に対する相対位置を計測して現在位置を判断したり、基準線の位置において、床に線を引いたりすることができる。測定装置は、例えば、カメラによって撮影した画像から床、壁、参照点の形状、寸法を算出するものであってもよい。または、測定器は、レーザーによる距離測定計を用いて床の寸法を取得するものであってもよい。
【0073】
そして、現場において、ARグラスの撮像部15で設置したマーカ40(40a,40b)を撮像する(ステップS13)。ARグラスの制御部は、マーカ40を自動的に検出する。制御部は、各マーカ40(40a,40b)に対するARグラスの相対的な位置と姿勢を算出する(ステップS14)。そして、各マーカ40(40a,40b)に対するARグラスの相対的な位置と姿勢の情報と、上記のずれを示すデータ(R0,T0)とを利用して、現実空間に対するヴァーチャル空間の最初の位置合わせが実現される(ステップS15)。つまり、現実空間座標系と、ヴァーチャル空間座標系とが関連付けられる。好ましくは、現実空間座標系の原点位置及び3本の座標軸の方向に、ヴァーチャル空間座標系の原点位置及び3本の座標軸の方向を一致させる。
【0074】
なお、本例のように、マーカ40を直交する2つの平面に設置することが好ましく、これによれば、位置合わせの精度をさらに高めることができる。また、互いに直交する3つの平面にそれぞれマーカ40を設置することで、さらに位置合わせの精度を高めることが可能となる。
【0075】
本開示の技術は、例えば、トンネル工事のように特徴点が少ない場所、類似する風景が多い場所、あるいは、常に環境が変化する状況において、特に有効である。そして、このような課題を有する分野として、例えば、土木、建築、鉄道、交通などの分野が挙げられる。
【0076】
以下、
図8、
図9を参照しつつ、複数のマーカ40を用いた自己位置及び姿勢を校正(補正)する方法について説明する。
図8は、現実空間の建物の内部に、入口から複数のマーカを所定の一定間隔で設置する場合を示す平面図である。設置するマーカの位置は床面でも壁面でもよいし、他の位置でもよい。なお、
図8の例では、6個のマーカを設置しているが、これに限られない。なお、各マーカ40は、上述のように、参照点となる現時空間の角部、縁部に沿って設置することが好ましい。
【0077】
本実施形態に係るマーカの設置方法は、現実空間において複数のマーカを所定間隔で設置するステップと、前記現実空間の前記複数のマーカに対応する複数の仮想マーカを含むヴァーチャルデータを記憶部に記憶するステップと、ARデバイスの撮像部で前記現実空間の前記マーカを撮像した画像データにおける前記マーカと、前記画像データに重ねて表示されるヴァーチャルデータの前記仮想マーカとの間のずれを測定するステップと、前記ずれに応じて、複数のマーカの前記間隔を調整するステップと、を含む。このような構成により、マーカを用いてARデバイスにおけるヴァーチャル空間と現実空間との位置合わせを行う際に、効率的に複数のマーカを設置することができる。
【0078】
図8、
図9に示すように、現実空間において一定の間隔で複数のマーカ40を設置する(ステップS21)。例えば、建物や構造物等の空間の入り口付近に、上記位置合わせ用の第1のマーカ40を設置する。複数のマーカ40はそれぞれ、互いに同一のものでも、異なる種類のマーカ40であってもよい。
【0079】
次いで、第1のマーカ40からの距離が特定距離(例えば10m等)となるように、空間に合わせて第2のマーカ40を設置する。同様に、第2のマーカ40からの距離が上記特定距離となるように、第3のマーカ40を設置し、第3のマーカ40からの距離が特定距離となるように第4のマーカ40を設置する。このように、現場の空間(状況)に合わせて、等間隔でマーカ40を設置する。なお、特定距離は特に限定されず、適宜変更可能な数値である。
【0080】
ここで、ヴァーチャル空間に仮想マーカを設定する(ステップS22)。なお、仮想マーカの設定は、現実空間にマーカを設置するステップS21の前でも後でもよい。例えば、記憶部に記憶されるヴァーチャル空間のヴァーチャルモデルにおいて、現実空間のマーカの位置、姿勢と一致するように、それぞれのマーカ40を描画(3Dモデリング)し、記憶する。これにより、ARグラスの表示部13に表示されるヴァーチャル画像として、現実空間のマーカ40に対応する仮想マーカが表示される。なお、現実空間の現場に設置される壁や床等を含む構造物に対応する(同形状)の壁や床を含むヴァーチャルモデルが、ヴァーチャル空間に位置決めされたヴァーチャルデータとして予め記憶部に記憶されている。
【0081】
そして、ARグラスに表示されるヴァーチャル画像を確認しながら、現実空間の現場の入口から空間内を移動し、第1のマーカから第2,第3・・というようにARグラスの撮像部で撮像しながら移動する。その際、現実空間の各マーカ40に重ねて表示されることを想定したそれぞれの仮想マーカ(ARグラスに表示される仮想マーカ)の位置、姿勢と、現実空間のマーカ40の位置、姿勢とを比較する。なお、ARグラスはVSLAM等により自己位置と姿勢を推定し続け、それに応じたヴァーチャル画像を表示部に表示する。そして、現実空間のマーカの位置、姿勢と、仮想マーカの位置、姿勢との間のずれ量が、所定の閾値を超えているか否かを確認する(ステップS23)。閾値は、予め管理者側で定めた値が記憶部に記憶されるようにしてもよいし、ユーザが入力部を介して数値を入力したり、または複数の予め設定された選択肢の中から選択したりすることで、ユーザが設定できるようにしてもよい。位置のずれの閾値は5mmといったように距離で示され、姿勢のずれの閾値は5°といったように角度で示される。
【0082】
ずれ量の測定は、例えば、ARグラス、またはサーバの制御部が実行することができる。ユーザがARグラスの撮像部でマーカを撮像すると、制御部は、ARグラスの撮像部で撮像した画像と、ARグラスの表示部に表示させるためのヴァーチャル画像とを重ね合わせて、現実空間を撮像した画像のマーカの位置、姿勢と、ヴァーチャル画像の位置、姿勢とのずれを、測定する。より具体的には、現実空間を撮像した画像のマーカのマーカ座標系と、ヴァーチャル空間の仮想マーカの仮想マーカ座標系とを比較することができる。現実のマーカ座標系の原点と仮想マーカ座標系の原点同士の距離を測定したり、現実のマーカ座標系の座標軸と仮想マーカ座標系の座標軸の向き(姿勢)とを比較し、それらの差(角度)を測定したりする。また、例えば、参照点同士を比較し、測定することができる。例えば、四角形のマーカ40の特定の角同士の距離を測定したり、辺同士の距離、相対的な角度を測定したりすることで、現実画像のマーカとヴァーチャル画像のマーカとのずれを測定する。なお、ずれの測定方法はこれに限られない。
【0083】
そして、ずれ量が閾値を超えている場合、マーカ40間の距離を調整する(ステップS24)。例えば、現実の第2マーカ40と、第2の仮想マーカとの位置のずれ量が10mmを超えている場合、マーカ40間の距離を短くする。具体的に、上記のようにマーカ40間の距離を10mとしてずれ量を確認した結果、ずれ量が閾値を超えていた場合には、例えば、マーカ間の距離を2m小さくして8mにする等、当初の距離10mよりも短い距離にする。本例では、まず第2のマーカの位置を調整し、例えば、第1のマーカに近い位置となるように、第2のマーカを移動させる(近い位置に設置する)。どの程度距離を短く調整するかは、予め定めて記憶部に記憶させてもよいし、ユーザが決めてもよい。あるいは、ずれ量の大きさに応じて、調整距離を決定してもよい。その場合、ずれ量が大きければ調整距離も大きくし、逆にずれ量が小さければ、調整距離も短くすることができる。なお、上記例においては、調整距離を2mとしている。ずれ量がほとんどない場合、マーカ間の距離を大きくしてもよい。その場合も、どの程度距離を長くするかは、予め定めて記憶部に記憶させてもよいし、ユーザが決めてもよい。あるいは、ずれ量の大きさに応じて、調整距離を決定してもよい。
【0084】
現実空間においてマーカの位置、姿勢を調整した後は、ヴァーチャル空間における仮想マーカの位置もそれに合わせて変更し、記憶部に記憶する。その際、例えばレーザ測位計などの測定装置を用いて、現時空間のマーカの位置、姿勢を測定してもよい。これによれば、より正確な位置、姿勢で、仮想マーカをモデリングすることができる。
【0085】
上記の通り、現実空間のマーカと、ヴァーチャル画像の仮想マーカとの位置、姿勢のずれを確認することで、ARグラスの移動検出等の精度を確認することができる。そして、(ARグラスの精度に応じて)マーカ40間の距離が適切かどうかを確認することができる。その結果、また、マーカ40を適切な感覚で設置することができるので、マーカ40の使用効率を高めることができる。つまり、無駄に多くのマーカ40を使用してしまうことを防止することができる。
【0086】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【0087】
本明細書において説明した装置は、単独の装置として実現されてもよく、一部または全部がネットワークで接続された複数の装置(例えばクラウドサーバ)等により実現されてもよい。例えば、サーバ20の制御部21および記憶部22は、互いにネットワークで接続された異なるサーバにより実現されてもよい。
【0088】
本明細書において説明した装置による一連の処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。本実施形態に係るARデバイス10、サーバ20の各機能を実現するためのコンピュータプログラムを作製し、PC等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ等である。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信されてもよい。
【0089】
また、本明細書においてフローチャート図を用いて説明した処理は、必ずしも図示された順序で実行されなくてもよい。いくつかの処理ステップは、並列的に実行されてもよい。また、追加的な処理ステップが採用されてもよく、一部の処理ステップが省略されてもよい。
【0090】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【0091】
なお、以下のような構成も本開示の技術的範囲に属する。
(項目1)
現実空間における角部または縁部に沿ってマーカを設置するステップと、
前記角部または縁部に対する前記マーカの位置及び姿勢を測定するステップと、
ARデバイスの撮像部でマーカを撮像した画像情報に基づいて、マーカに対するARデバイスの相対的な位置及び姿勢を算出するステップと、
前記測定するステップで得た情報と、前記算出するステップで得た情報とに基づいて、現実空間の座標系に対する予め記憶部に記憶されたヴァーチャル空間の座標系の位置合わせを行うステップと、を含む、現実空間に対するヴァーチャル空間の位置合わせ方法。
(項目2)
前記マーカを設置するステップにおいて、複数の前記マーカをそれぞれ別の平面に設置する、項目1に記載の現実空間に対するヴァーチャル空間の位置合わせ方法。
(項目3)
前記マーカを設置するステップにおいて、複数の前記マーカを、互いに直交する平面にそれぞれ設置する、項目1または2に記載の現実空間に対するヴァーチャル空間の位置合わせ方法。
(項目4)
前記マーカを設置するステップにおいて、前記ARデバイスの撮像部で同時に撮像できる領域内に、複数の前記マーカを設置する、項目1~3の何れかに記載の現実空間に対するヴァーチャル空間の位置合わせ方法。
(項目5)
前記マーカを設置するステップにおいて、前記縁部と、四角形の前記マーカの一辺とが平行となるように前記マーカを設置する、項目1~5の何れかに記載の現実空間に対するヴァーチャル空間の位置合わせ方法。
【符号の説明】
【0092】
1 ARシステム
10 ARデバイス
20 サーバ
30 ネットワーク
40 マーカ