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      

最近のトラックバック

無料ブログはココログ

キャリブレーション

2015年4月14日 (火)

MOVERIO BT-200を光学シースルー型ARグラスとして利用するためのヒント

MOVERIO BT-200を光学シースルー型ARグラスとして利用するアプリをUnityで開発するためのSDKには、以下の2つの選択肢があります。

オリジナルアプリを開発するために、まず最初にやることは、サンプルプログラムをビルドして、実行することです。いずれのSDKも、現在のところ、Windows OSでは、32ビット版のUnity5にしか対応していないようですから、ここでは、32ビット版を使います。

Vuforia場合、上記サイトからUnityのサンプルアプリをダウンロードして、
プラットフォームをAndroidとしてビルドすれば、問題なくapkが作成されます。BT-200をUSBデバッグできるように設定するのは面倒なので、私の場合は、PCにBT-200をUSB接続して、生成されたapkを直接適当なフォルダにコピーし、ESファイルエクスプローラーのようなファイルマネージャを使ってインストールしています。
(注:BT-200は、ESファイルエクスプローラーのようなMOVERIO Apps Marketで提供されていないアプリは、Amazon App StoreAPK Downloaderなどを使ってインストールできます。最近、Moverio Apps Marketから、MovExplorerというファイルマネージャがダウンロードできるようになりました。)
生成されたサンプルプログラムを実行する前に、上記サイトから「Calibration App」をダウンロードして実行し、下記サイトに記述されているように、指示に従ってキャリブレーションプロファイルを作成しておく必要があります。

Metaioの場合、Metaio SDKをインストールすると、下記フォルダに
 C:\Users\[username]\Documents\metaio\Metaio SDK 6.0.2\_Unity
サンプルプロジェクトのフォルダ「Example」があるので、このフォルダをUnityのプロジェクトしてオープンします。豊富なサンプルがこの1つのプロジェクトにまとめられていますが、目的のBT-200用のサンプルsceneは「TutorialStereoRendering」というフォルダに収められています。なお、いくつかのサンプルを実行している映像は下記Webnarの前半部分で見ることができます。顔認識や円などの輪郭による追跡などの他のサンプルも面白いと思います。



Vuforiaと同様に、ビルドすればapkが生成されると思いましたが、残念ながら、Vuforiaのようにはすんなりapkを作成することができませんでした。まず、下記サイトに記述されているように、
Unity5(32bit版)の起動オプションに
 -force-opengl
を加えて、レンダリングをOpenGLベースにして起動する必要があります(デフォルトは、DirectX)。つぎに、Build SettingsでプラットフォームをAndroidに変更してビルドすると、
 "Found Plugins with same names and architectures ....."
といようなエラーメッセージが出ます。「x86」と「x86_64」のプラグインにあるDLL名が重複しているということらしいので、「Project」ペインの中にある「Assets/Plugins/x86_64」フォルダを削除してしまいます。これで、このエラーメッセージはなくなり、apkが生成されます。ところが、このapkをBT-200にインストールしてサンプルアプリを立ち上げても、映像が何も映りません。そこで、Metaio helpdeskで調べたところ、C#スクリプト「metaioDeviceCamera.cs」の61行目の
   #if UNITY_IPHONE
  #if UNITY_IPHONE || UNITY_ANDROID
に修正すればよいということがわかりました。修正後、ビルド・インストールし、BT-200を3Dモードにすれば、無事サンプルが実行されます。
Vuforiaと同様、Metaioの場合も、Google Playから「Metaio Toolbox」をダウンロードし、下記サイトに記述されているように、キャリブレーションを行っておく必要があります。

2つのSDKのサンプルを比較してみると、キャリブレーションを行う手間も精度もどちらも同程度だと感じました。強いて言うなら、Metaioの方がキャリブレーションの際の位置合わせが若干やりやすいかなと思いました。

2015年4月10日 (金)

Vuforia for Digital Eyewearのキャリブレーション精度

Vuforia Developer Portalβ版ダウンロードサイトから早速キャリブレーションツールとUnityのサンプルプログラムを入手し、試してみました。仮想オブジェクトを正確に重畳させるために重要なキャリブレーションの手順は下記に記述されています。

 Vuforia Calibration App

この中の写真にあるように、片目をつぶりながら、スクリーンに表示される赤い枠と眼前に置いたターゲット(Stone)の4隅をできるだけ一致するように視点を移動させなければならないのですが、なかなかピッタリいかず、むずかしいです。

とりあえずどこかで妥協して、キャリブレーションプロファイルを保存し、サンプルプログラムを実行してみたところ、大きな視点移動をさせずゆっくり動かせば下記のビデオくらいの精度でターゲットを追従してくれます。

 

視野に対してスクリーンサイズが小さく感じられますが、工具の位置指定や蓋の開閉などの作業支援には十分使えるのではないかと思います。ただ、SMDLabが提供している「誰でも美文字AR」のように高い位置精度が要求されるアプリには、まだ適用がむずかしいかもしれません。

2015年4月 8日 (水)

Vuforia for Digital Eyewearのβ版がリリース

本日、待望のVuforia for Digital Eyewearのβ版がリリースされました。Vuforiaのユーザ登録をしていれば、どなたでも下記サイトからダウンロードできるようです。

 https://developer.vuforia.com/downloads/beta

これで、VuforiaでもMOVERIO BT-200用の光学シースルー型ARアプリを開発できるようになります。MetaioでもStereo See-Through Calibration Toolboxを使えば可能になったのですが、以前の記事でも取り上げたように、キャリブレーションがあまり正確でないようです。近いうちに両者を比較した記事を書きたいと思っていますが、キャリブレーションの正確さを比較するためには、自分の眼が実際に見ている映像上のターゲットとHMDスクリーン上の仮想オブジェクトがどの程度一致しているかをお見せする必要があります。残念ながら、自分が眼が捉えている映像のスクリーンショットを取ることはできないので、以前の記事でもご紹介した論文
の中で示されているFig.4のようなカメラをユーザの眼と見立てた装置を作る必要があります。これには少し時間がかかりますので、とりあえず、自分で眼で両者のキャリブレーション精度の比較を行ってみたいと思います。

2015年2月13日 (金)

MOVERIO BT-200用ARアプリをMetaio SDKで作成するためのヒント

最近、特に目新しいことがありませんでしたので、しばらく記事を書いておりませんでしたが、Metaio SDKを用いてMOVERIO BT-200用のARアプリ作成を考えている方にとって有益な情報がMetaio Developer PortalHelpdeskに掲載されているのでご紹介しておきます。

質問者自身がコミュニティで問題を共有するため、Unity Projectを公開しているので、アプリ制作のとっかかりとなる最初のサンプルとして利用できるのではないでしょうか?

2014年12月12日 (金)

Metaio Stereo See-Through Calibration Toolbox for MOVERIO BT-200

Metaio Developer Portal サイトで、Epson MOVERIO BT-200ステレオシースルーキャリブレーションを行うためのToolboxが公開されたと発表されています。また、2014年12月4日のWebnarでその解説がなされています。



Toolboxの最新バージョン6.0.1はGoogle Playからインストールできますが、BT-200にインストールするには、apkが必要になるので、「APK Downloader」などからダウンロードするか、Metaio Developer Portalの「Metaio Toolbox」から「Android APK」をダウンロードして、Epson MOVERIOサイトのインストール方法に従ってインストールしてください。MOVERIOからToolboxを起動したときだけ、「Stereo See-Through Calibration Toolbox」が現れます。

早速試して、「誰でも美文字AR」をMetaioに移植し、BT-200のシースルーARアプリとして実装したいと考えています。

2014年11月28日 (金)

Vuforia SDK for Digital Eyewearの概要

以前、Qualcomm社が主催する「Uplinq 2014」において、「Vuforia SDK for Digital Eyewear」が発表されたことを記事にしました。そのときのプレゼンの模様がYouTubeに公開されています。



この中で特に注目すべきトピックを時系列順(分:秒)に抽出してみました。

  • (12:20) 
    ユーザキャリブレーションに必要なステップは片眼で2ステップ、両眼で計4ステップ
    キャリブレーションに要する時間は、熟練者で30秒、初心者で60秒くらい
    ユーザごとにキャリブレーションプロファイルを保存
  • (15:00)
    Unityのコンテンツを簡単にステレオ化
  • (20:52)
    Vuforia Native APIに3つ新しいクラスを追加
    プロファイルマネージャにより10人までのユーザプロファイルを管理
    Calibrator Classにより独自のキャリブレーションプロセスを作成可能

  • (22:40)
    Unity Extensionの具体的な解説

公開が待ち遠しいです。

2014年9月20日 (土)

Vuforia SDK for Digital Eyewearの発表

昨日、Qualcomm社が主催する「Uplinq 2014」において、「Vuforia SDK for Digital Eyewear」 が発表されました。このSDKは下記の3つのウェアラブルデバイスをサポートし、簡便なキャリブレーション手法を含んでいるとのことです。

各デバイスについての概説は下記サイトが参考になります。
 http://linuxgizmos.com/android-eyewear-uses-qualcomm-vr-platform/

うれしいことに、これまでこのブログで解説してきたMOVERIO BT-200がサポートされているので、このSDKが発表されれば、「誰でも美文字AR for BT-200」の開発を一気に進められるかもしれません。下記サイトで申請し認定されれば、ベータ版を入手することができるということなので、早速登録してみました。
 https://developer.vuforia.com/support/contact/beta

ぜひとも認定されて、いち早く開発に取り組んでみたいです。

2014年9月16日 (火)

MOVERIO BT-200の今後に期待すること

MOVERIO BT-200は現存するスマートグラスとしては、

  • 映像の高解像度性
  • ステレオ(3D)映像サポート
  • ヘッドセットの軽量性
  • カメラ搭載
などの点でとても先駆的な製品だと思います。現在、光学シースルー型HMDとしてのハードウェアの機能を十分有している唯一の市販製品です。したがって、前回考察したようなユーザごとにHMDキャリブレーションを高精度で行えるアプリを提供できれば、現状でも電脳メガネとして普及する大きな潜在的価値があります。しかし残念ながら、家庭に1台あるいは1人1台というほどはまだ普及していません。

そこで今回は、今後さらに我々ユーザにとってMOVERIOをぜひとも手にしたいと思えるようにするにはどう改良すればよいか、すなわち後継機BT-300に期待することについて考えてみます。
  1. ヘッドセット部分だけを独立させて、AndroidやiPhoneなどのスマートフォンと連携して動作できるようにすること
  2. カメラの視野角を画像が歪まない程度にできるだけ大きくすること
  3. HMDスクリーンのさらなる高解像度化、拡大化すること
  4. 普通の眼鏡をかけているかのように自他とも違和感のないものにすること
すでにエプソンではすべてについて検討がなされていると期待していますが、特に、1のヘッドセット部だけを独立させて、ユーザーがもつスマートフォンの画面をMiracast技術で送信し、ヘッドセットのカメラ映像やセンサ信号をNFC技術で受信できるようにすれば、爆発的にヒットするのではないでしょうか。また、これらの送受信処理をAPIとして開発者に提供し、Google PlayやApp Storeでアプリを公開できれば、多くの人たちが専用アプリの開発に参入すると思います。個人的には、Google GlassやApple Watchなどよりはるかに面白く、ぜひ手に入れたい製品になると思います。

BT-300の登場で、「歩きスマホ」ならぬ、「歩きスマグラ」が社会問題化する日が来るかもしれません。その時のために、加速度センサでユーザが歩いているかどうかを判定し、、歩行中は映像が映らないような仕掛けを考えておくのはいかがでしょう。実装も簡単です。

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スクリーンに映った映像を別のカメラでとらえ画像処理により自動的に対応関係を取っているので、正確な結果が得られていると思われます。実際のユーザに対して主観的な評価が行われていないので、先の論文に対する優位性についてはよくわからないところがあります。

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