本稿は、
■パノラマ映像を遠隔地に転送し、より見やすい形で提示する
ことを目的とするメモ書きである。
前の作品からの変更を検討する点は、以下の通りである。
既に広く応用されていて、真新しいことは何もないARToolKitだが、以下のことを簡単に実現できる。
このため、ある場所のパノラマを離れた場所で見られるような、以下のようなモデルを考えた。
これをAndroid 2.2 FroyoにNyARToolKitを用いて実装したが、性能は比較的足りているものの、いかんせん画面が小さいため、わかりにくいという結果になってしまった。なので、これをC言語版のARToolKitに移植することにする。
基本的に、前回のパノラマカメラでは、全てOpenCVによる画像処理によってパノラマを実現してきた。しかし、パノラマ処理には重い負荷がかかり、以下の環境
で、
という程度の処理速度である。一方、今回は実用的な画質を目指しているため、
を実現したい。まあ適切なチューニングを施して、デュアルコアを有効に使えば実現できなくもなさそうだが、今回は同じマシンでARToolKitも動かす予定のため、できるだけ処理は減らしたい。
そこで考えたのが、テクスチャマッピングで全方位映像を直接ポリゴンに貼付けるという方法である。現在のパノラマ展開方法は、テクスチャマッピングの原理そのままであるので、展開処理と3D描画を同時に行うことができる。
以上は、次の手順で実装する。
遠隔映像システムでは、映像の伝送が問題になる。今回の場合、距離によらない伝送を目指しているが、特に遠隔会議などでは、10/1秒の遅れが人の行動に影響を及ぼす場合がある。そこで、無圧縮で伝送を行うことで、処理の遅延を減らす方策を考えた。
無圧縮の場合、例えば全部24bitカラーとして、今回検討する機材で可能な映像のビットレートを算出すると
この程度の帯域を実現できる伝送路は
この中から、接続の簡単さと汎用性、安さから1000BASE-Tで、クロスケーブルを選択した。なお、以下は判断から除外した。
通信にはソケット通信を用い、1回の送信で1フレーム(1MB-6MB)を送信した。この設定で速度試験を行ったところ、実効速度は340Mbps程度のようだ。
以上をあわせたシステムの構成図は以下のとおりである。
なお、これは「今あるもので」「適当に」作ったシステムである。画質や通信帯域には明らかな改善が必要である。このシステム全体で25万かかっていないと思うし、今ならもっと安くいいものが作れると思う。
まあ大体完成して、1週間後にはYouTubeか何かでデモ的なものを見せられると思う。ただ、その前に大学院での実験があるので、それを念頭に置いて、パノラマが「ただ面白い」を超えて何ができるかを考えてみる。
実は、このシステムの元はパノラマではなく、遠隔共同作業用のロボットを、機械いじりが苦手だからパノラマとARを使って再現したものだ。例えば、ロボットなら首を振って周囲を見渡すことができるが、それができない代わりにパノラマで360度の映像を取得しておいて、ARToolKitで表示する領域を制御できるようにする、といったものだ。だから、このシステムの目的も、机とかじゃなくて部屋とかそういう人が歩ける範囲で作業をするのを、遠隔地から支援してやるというものだ。
大きなロボットが共同作業の場にいることは、凄いメリットだ。人間と同じくらいの存在感があり、体の配置や手の動きなど、共同作業を行う際に必要なノンバーバルなコミュニケーションを再現することができる。これにAR(もしくはもっと広くVR全般)で対抗するとしたら、テレプレゼンスを異常に洗練させるか、もしくは大きなロボットではできない、小さいからできることをしなきゃならない。