2016年8月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

最近のトラックバック

無料ブログはココログ

« MOVERIO BT-200の電脳メガネとしての可能性 | トップページ | MOVERIO BT-200アプリ開発者備忘録 »

2014年9月15日 (月)

MOVERIO BT-200を光学シースルー型HMDとして使うための方法

前回お話したように、MOVERIO BT-200を光学シースール型HMDとして使うことができれば、アニメ「電脳コイル」が実現している世界に一歩近づくことができます。そこで今回は、そのために必要な方法を最小の手間で実装する方法について検討してみます。

まず、下記の2編の論文のいずれかを読むことをお勧めします。

上記の論文では、HMDのスクリーンに映し出されたCG映像を、ユーザの眼に映る現実映像中のマーカーを基準にして正確に重ね合わせるためのキャリブレーションと呼ばれる手法が提案されています。
このためには、以下の2段階のキャリブレーションが必要になります。
  1. カメラキャリブレーション:マーカー座標系からHMDに搭載されたカメラ座標系への変換行列を求める処理
  2. HMDキャリブレーション:カメラ座標系からHMDスクリーン座標系の変換行列を求める処理
上記の2段階のキャリブレーションを行うことにより、2つの変換行列の積からマーカー座標系からHMDスクリーン座標系への変換行列が求められます。この変換行列を用いてマーカー座標系基準でCGをHMDスクリーン上に描画すれば、適切な位置に仮想オブジェクトを重ね合わせることができます。

1の「カメラキャリブレーション」は、比較的古くから確立している手法で、ビデオシースルー型HMDではカメラ映像に直接仮想オブジェクトを重ね合わせるだけでいいので、この第1段階だけでキャリブレーションは完了です。このカメラキャリブレーションは、多くの研究者がソースコードを公開していいて、OpenCVなどのライブラリとしても実装されています。ここでは、最も手っ取り早い方法として下記のツールを紹介しておきます。

 Metaio Toolbox

  Get it on Google Play

このツールは、下記サイトからキャリブレーション用のマーカーをダウンロードして、印刷し、
 http://www.augmentedmarketing.ca/marketing/Marker.pdf
"Camera Calibration"ツールを使ってカメラに映すことで、自動的に上記第1段階のカメラキャリブレーションが行われ、必要なパラメータファイルを保存してくれます。BT-200などの工業製品の生産工程は均一でバラつきはないと考えていいので、このパラメータファイルは、1度誰かが行っておけば、BT-200ユーザに共通して利用してもおそらく精度に大きな影響を及ぼさないでしょう。

2の「HMDキャリブレーション」は、眼の特性は人それぞれ異なるため、ユーザごとに行う必要があります。残念ながら、BT-200のようなOSTHMDが一般に手に入るようになったのが最近であるため、ソースコードや「Camera Calibration」ツールのような形で無償で提供しているところはまだほとんどありません。私の調べた限りでは、「ARToolKit」の商用ライセンス版には、下記サイトにあるように
 http://www.artoolworks.com/support/library/Using_an_optical_see-through_display
先に掲げた論文の手法を実装したツールが提供されています。しかしながら、このツールを組み込んだ形でキャリブレーションアプリを作成できるのか、また、それを他のAR用SDKで作成したアプリに使っていいのかどうかわかりません。また、このツールは有償で、アプリを公開して販売すると売り上げに応じてロイヤリティが発生するため、できれば、本研究所でツールを自作して提供したいと考えています。理論的には実装はそれほどむずかしくありません。その手順は論文中に記述されているように、

  • HMDスクリーンにヘアカーソルを表示する。
  • HMDユーザーは手にマーカーを持ち、その中心がヘアカーソルに一致して見えるように動かす。
  • ぴったり一致したところでマウスをクリックし、HMDスクリーン上の位置情報を取得する。

上記手順を、左右の眼それぞれについて5回ずつ行うことで、HMDスクリーン座標系からそれぞれの眼座標系への変換行列の11個の未知係数を算出できます。この計算方法は、カメラキャリブレーションで実装されているルーチンをそのまま流用できます。また、この手法は、1回の位置合わせにつき一度のマウスクリックだけで済むので、頭部を固定して位置決めする必要がないため、ユーザーに苦痛を与えず、高精度なキャリブレーションを行えるという大きな利点があります。

また、BT-200用のMetaio SDK が提供されており、光学シースルー型として利用するためのパラメータについて下記の{Metaio Developer Portal」サイトで活発に議論されています。ここで提示されいる値を使えば、それなりに適切な位置に仮想オブジェクトを提示できるかもしません。
 http://helpdesk.metaio.com/questions/34614/reset-hmd-calibration-for-moverio
 http://helpdesk.metaio.com/questions/30643/how-to-do-hand-eye-calibration-moverio-bt-200

さらに、最近、KDDIの研究所が提案している下記の論文は、先に掲げた論文をさらに改良した手法であり、

下記YouTubeサイトで比較映像を見ることができます。

映像を見ると、とても正確にマーカーを追従していることがわかります。しかしながら、ユーザーがオンラインで行うHMDキャリブレーションにおいて、4点以上のHMDスクリーン座標上の対応点を同時に取得する必要があるようなので、ユーザーの頭部を固定しなければならないという問題があると思われます。また、上記映像は、HMDスクリーンに映った映像を別のカメラでとらえ画像処理により自動的に対応関係を取っているので、正確な結果が得られていると思われます。実際のユーザに対して主観的な評価が行われていないので、先の論文に対する優位性についてはよくわからないところがあります。

眼鏡屋さんに行って視力検査を行うように、電脳メガネのキャリブレーションを行ってくれるようなサービスが提供される日がいつか来るかもしれません。

« MOVERIO BT-200の電脳メガネとしての可能性 | トップページ | MOVERIO BT-200アプリ開発者備忘録 »

AR」カテゴリの記事

BT-200」カテゴリの記事

HMD」カテゴリの記事

MOVERIO」カテゴリの記事

キャリブレーション」カテゴリの記事

光学シースルー」カテゴリの記事

電脳メガネ」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/596451/60318633

この記事へのトラックバック一覧です: MOVERIO BT-200を光学シースルー型HMDとして使うための方法:

« MOVERIO BT-200の電脳メガネとしての可能性 | トップページ | MOVERIO BT-200アプリ開発者備忘録 »