貴田です。特徴の異なる360度カメラであるRicoh Theta SとLiDARをさわって、2つのデータを組み合わせた映像を生成してみました。
Ricoh Theta Sって?
Ricoh Theta Sは360度撮影ができる全天球カメラです。先週発売されたてホヤホヤです。ご存知の方が多いとおもいます。
LiDARって?
LiDARはレーザーで360度のデプスデータが撮影できるセンサーです。少なくとも家電量販店とかには売ってないので、初めて聞かれた方も多いのでは、と思います。
わかりやすく言うと、「360度+遠距離を撮影できるKinect」。Kinectよりもかなり測定距離が長く(約100[m]とか)、その代わり、機種によりますが、仰角の画角がやや限られる(約30度とか)、という性質があります。
2つのカメラの360度データをリアルタイムに組み合わせて、映像生成しました
LiDARから得られるデプスデータを3角形で繋いで、メッシュを作って、そこにTheta SからUSB経由で得られるリアルタイム全天球映像(1280×720[px]、15[fps])をテクスチャとして貼ってみました。場所は会社近くの高架下です。
次に、あらかじめ撮影したTheta Sのマックスで高解像度(5376×2688[px])な静止画をテクスチャにしてみました。場所は弊社のエレベーターホールや、休憩スペースです。
やってみてわかったことは以下です。
- 2つのカメラは別物なので、どうしても撮れる映像はチョイずれしてしまう。なので、ぴったりテクスチャをメッシュに合わせるのはむずかしい。けど、ざっくり遠目にみるぶんには合っているようにみえた。
- LiDARの仰角が限られるため、その部分だけ切り取ると、リアルタイムなTheta Sの映像だと、テクスチャの解像度がやや低くなってしまった。静止画のThetaの解像度くらいだと、それなりにクッキリ見える。
なにに使えるの?
最近、360度動画が流行ってて、ふつうの360度だと、ぐるぐる見渡せて、単純な動画とくらべて「角度」は自由になるんです。
ですが、その空間上で見たい位置に動けないんです。「位置」が不自由なんです。
今回のように、空間を3Dスキャンして、360度撮影を組み合わせると、空間を自由な位置・角度から眺めることができるようになります。
要するに、この技術をつきつめると、「ムービーの空間を好きなように動き回れるかも」てことです。
これまでの動画体験とは全く違った感覚が得られそうですよね。
裏っかわのテクノロジーについてざっくり
今回はぜんぶopenframeworksを使いました。
(1)Ricoh Theta S編
リアルタイムキャプチャ画像が欲しかったので、USBを繋いで、ofvideoGrabberで取得してみました。そしたら、こんな感じの魚眼画像になりました。
LiDARから得られるメッシュは全天球状ではないので、このまま貼れなくて、魚眼画像をパノラマに変換するシェーダーを書きました。
これを見ると、ThetaSの持つ2つのレンズの端っこの領域は、ややカブってますが、アルファブレンディングとか細かいスティッチ処理を実装できていないので、パノラマのつなぎ目が雑です。(汗)
(2)LiDAR編
こちらはLANケーブル経由のUDP通信でXYZのポイントクラウドデータがバイナリ形式で送られてくる感じでした。
なので、仕様書にそってひたすらパースしました。
秒間でのデータ量が多いので、リアルタイムに処理し切るのにいろいろ工夫しました。
もし需要ありそうだったら、公開できるようにキレイにしようと思います。