2018年8月19日(日) 13:01 JST

ステレオAR

  • 2012年11月10日(土) 00:00 JST
  • 投稿者:

先日のオープンラボでは展示物候補が思いのほか多く、選外となった研究ネタをご紹介します。

当研究室ではAR技術の建築分野での応用をさまざま角度から検討しています。最近、大型TVやHMDに、3D機能を備えたものが増えてきました。当研究室でも60インチの3DTVを導入しており、オープンラボでは五重塔や在来軸組構法の架構を3Dでご覧いただきました。

3D表示にするためにプログラム側ですることは、3DTVやHMDに対して規定の形式(サイドバイサイドやフレームパッキング)で画像を流してあげることだけで、これだけで自動的に3D表示されるようにできています。Quadro等のワークステーション用のグラフィックスカードを使えばOpenGLのQuad Stereoが使えますから、フレームパッキングにするのはとても簡単で説明するまでもないでしょう。

今回の試行で困ったのはステレオARに使用するカメラです。ARのステレオ化では、カメラに対する要求は結構高くなります。3D USBカメラといえばMinoru3Dが廉価かつ手軽でよく使われており、当研究室でももちろん重宝していますが、実は2つのUSBカメラを並べただけのものでUSB2.0の帯域ではデータ転送がやや苦しいであるとか、左右のカメラの同期がとれていないかもしれないなど、オールマイティであるとは必ずしもいえません。財布が許せばもう少しよい(がとても高価な)ステレオカメラもありますが、SONYのBloggie 3D(MHS-FS3)というコンパクトカメラが1280×720のサイドバイサイドのUSBカメラとして使えしかも安い、といううわさをネットで見かけ、試してみることにしました。本当に720pのサイドバイサイドなら3DTVに使ってもそこそこの画質が期待できます。

Bloggie 3DをUSBケーブルでPCに接続し、OpenCVのVideoCaptureを使ってキャプチャしますが、どうやっても640x480(サイドバイサイド)でしか撮れません。仕方がないのでDirectShowレベル(久しぶり)でプログラムを書いたところ、うわさ通り1280×720でキャプチャすることができました。フレームレートもかなり高めに出ている様子で、被写体の動きもなめらかに再現できています。ところが、どうも横に長い。4:3を16:9に引き延ばしたときのプロポーションに近いと思われたので1280×720→960×720にリサイズするとちょうどよくなりました。実質的に960×720(サイドバイサイド)のUSBカメラとして使えることが判明しました。

画質的には当初の期待を下回りましたが、フレームレート、左右の完全な同期ともに、8千円程度で入手できると考えれば画期的かと思います。また、コンパクトとはいえさすがにカメラだけあって、通常のUSBカメラに比べて安定感があります。USBカメラ特有のジッターも比較的少なく、ARではジッターはとてもやっかいですので、この点でもステレオAR用途に適したデバイスだと思います。軽さ、大きさともに、なんとかヘルメットに装着できそうでもあります。

こういうことをしているのでヘルメット装着性能は重要なんです(笑)。


上の画像が動画へのリンクになっています。交差法(のはず)です。

〜〜〜〜〜 ※ 〜〜〜〜〜

実は、Bloggie 3D(MHS-FS3)を発注して手許に届くまでの間にステレオUSBカメラがすでにあると仮定してプログラムを書き始めたわけですが、一台のカメラの画像をステレオ化すれば似たようなことができるんじゃないか?と着想を得て、疑似ステレオカメラも作ってみました。こちらについてはその2でご紹介したいと思います。

マーカの見た目は同じですが、今回の実装から研究室オリジナルトラッカーこちら)を使っています。

以下のコメントは、その投稿者が所有するものでサイト管理者はコメントに関する責任を負いません。