※作業一覧へ
■作成するもの
- 出遅れてるかもしれないが、流行っている「VR」系に乗っかる
- 全天球カメラで撮影した映像を、別の機材でリアルタイムに視聴する環境
- 視覚情報だけであるが、テレイグジスタンスを体験できるように
まずは、流行りの"いらすとや"で、イメージ共有
https://www.irasutoya.com/
ステッチされた正距円筒図法のデータを、スフィアに張り付けるようなことはせずに、
撮影画像のDual Fisheye データを地道にリアルタイム処理する。
和歌山大学 床井研究所の情報を参考にさせていただきました。ありがとうございます。
魚眼レンズ画像の平面展開
ちなみに、
ちょうど、Interface 2018年 7月号で記事になってるみたい。
https://shop.cqpub.co.jp/hanbai/books/MIF/MIF201807.html
スフィアに張り付ける場合は、以下のサイトなどに書かれている。
- THETA Sのmjpegをラズパイで受けてLANでUnityに配信する方法
- Theta UVC Blenderもどきを作ってみた
- THETA Sの動画をopenframeworksで全天球再生(その2)
■用意したもの
-
ラズパイ関連(2セット)
- ラズパイ本体
→ Raspberry Pi 3 Model B+ - microSDカード
→ SanDisk microSDHC 98MB/s 32GB Ultra SDSQUAR-032G - 電源ACアダプタ
→ Physical Computing Lab 電源セット(5V 5.0A 4USBポート) Double Cable付き
※ON/OFFスイッチ付きケーブル有 - ケース(Raspberry Pi 3 Model B+対応のもの)
→ RSコンポーネンツ製ケース 白 - ヒートシンク(念のため)
→ waves Raspberry Pi 2/3 Model B 用 ヒートシンク3点 - 有線LANケーブル
- ラズパイ本体
-
撮影処理関連
- Insta360 Air(MicroUSB版)
※魚眼レンズとセンサーで自作したいところだが、一旦、既製品で代用 - フレキシブルケーブル(USB)
→ ミヨシ MCO フグ-スネックUSB延長ケ-ブル 30cm USB-EX21BK
※ちょっと硬さが足りないかも・・・ナナメだと、Insta360 Airを支えきれない・・・
※ 曲げ繰り返していたら、すぐに断線した・・・ - MicroUSB<->USB変換冶具
→ 変換名人 USBAA-MCB(USB A オス - microB メス)
- Insta360 Air(MicroUSB版)
-
視点向き処理関連
- arduino
→ Arduino Uno R3 - 3DoFセンサー
→ Arduino 9軸モーションシールド
※現在、在庫切れ。もしかして製造終了?BOSCH BNO055が使いやすいので、復活希望。 - スイッチ
→ JOYPAD411
https://kata2coro.jimdo.com/joypad411/
- arduino
-
表示処理関連
- LCDパネル
→ SHARP 5.5インチ高精細CGシリコン液晶パネルセット 1080×1920ドット ラズパイ用 [LS055-CGS-LCD-SET] - LCDパネルケース
→ emerge+ 5.5インチCGシリコン液晶パネルエンクロージャ
https://shop.emergeplus.jp/cgsi-enclosure/ - VRゴーグル
→ エレコム 3D VR ゴーグル P-VRG03BK - PET透明ボード(1mm厚)
- M3x12mmネジ(ネジ頭が薄いもの)
- HDMIケーブル(短め)
- USB-MicroUSBケーブル(短め)
- LCDパネル
-
機器設置関連
- モバイルバッテリー
→ cheero Power Plus 10050mAh DANBOARD CHE-066
※USBポートに3.0Aを供給できるものが必要 - フィッシングベスト
- マジックテープ
- モバイルバッテリー
-
開発環境
- WindowsPC
- microSDカードリーダー
■技術要素
詳細はGitHub側に記載しているので、Qiita側での検索ヒット用にメモ
- Raspbian Stretch
- V4L2 (UVC)
- H.264 / MotionJPEG
- FFmpeg
- OMXPlayer
- OpenGLES
- Shader
- Mesh
- texture
- 3DoF
- Quaternion
- hostap
- 802.11n / 802.11ac
- mjpg-streamer
- openFrameworks
- ofxSerial
- Serial Line Internet Protocol (SLIP)
■作業一覧
- 記事トップ
- ラズパイ初期設定
- 撮影側ラズパイ構築
- 表示側ラズパイ構築
- FFmpeg導入
- H264対応
- openFrameworks導入
- 全天球からVR表示生成
- 3DoF(arduinoベース)構築
- VRゴーグル組み上げ
- 結合動作
- 微調整
■結果
とりあえず動いたレベル
→ソースコード等は、GitHubレポジトリを参照
https://github.com/sisinn/raspi_telexistence_vr
■比較
テレイグジスタンスで、視覚情報を共有する場合
- 方式1:撮影側で、2眼映像を作ってから配信するパターン
- 方式2:撮影側では加工せずに全天球をすべて配信するパターン
それぞれメリット・デメリットが違う。
方式1 | 方式2 | |
---|---|---|
ネットワーク負荷 | 低 | 高 |
解像度 | 高 | 低 |
立体視差 | 〇 | ✖ |
空間自由度 | 6Dof | 3Dof |
反応速度 (首振りに対する) |
遅い | 早い |
視聴人数 | 1名 | 複数可能 |
テレイグジスタンスの主流は方式1と思われるが、状況次第では今回構築した方式2が活躍できる場合もあるかも?
■残課題
- 魚眼レンズ+センサーで、全天球カメラモジュールの自作
- 撮影→表示遅延の削減
- フレームレートの改善
- WiFi接続で11ac対応
- 解像度の向上
- 3DoF反応速度の向上
- 前後センサー境界のステッチ処理の最適化
- 撮影側機器の設置自由化(3軸自動補正)