Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ARの教科書輪読会 第13章発表スライド

689 views

Published on

輪読会の説明スライドです。
イベントURL:
https://vrtokyo.connpass.com/event/115177/

Published in: Technology
  • Be the first to comment

ARの教科書輪読会 第13章発表スライド

  1. 1. 『ARの教科書』輪読会 @cluster #8 イベントURL :https://vrtokyo.connpass.com/event/115177/ 対象書籍URL:https://book.mynavi.jp/ec/products/detail/id=91748 第13章 ソフトウェア構造 2019/1/31 Limes(@WheetTweet)
  2. 2. この章の概要 ARを使ったシステムのソフトウェア構造について解説 ARアプリケーションの要件だけでなく、ソフトウェア工学 の観点で様々な手法を紹介。 教科書に入る前の説明
  3. 3. 13.1 ARアプリケーションの要件 13.1.1 環境制御とシーンダイナミクス 使用者の姿勢変化、実世界の変化に対しても即座に反応できる コンテンツであること。 13.1.2 ディスプレイ空間 表示されるコンテンツが、実世界の配置に関連していること (例:テーブルに置いたカードにコンテンツを表示)
  4. 4. 13.1 ARアプリケーションの要件 13.1.3 実- 仮想間の一貫性 実世界でありそうな操作、表示方法が使われていること 13.1.4 意味的知識 (Semantic Knowledge) AR表示されるオブジェクトの使用や配置場所を決定するため、 現実の物理空間をセンシングし、現実とAR表示するオブジェク トに関係性を持たせる必要がある。
  5. 5. 13.1 ARアプリケーションの要件 13.1.5 物理空間 ARの使用者は物理的な移動をするので、移動してもアプリケー ションが破綻しないこと 補足:VRでも移動はしますが、移動の範囲がARよりは少ない、 としたようです。
  6. 6. 13.2 ソフトウェア工学上の要件 13.2.1 プラットフォーム抽象化 ARは入出力手段が統一されていないので開発環境の互換性が必 要。 一般的には、Unity、Qt、ACEなどがある 補足: ACEとは、Adaptive Communication Environment Toolkit ネットワーク関係の開発環境のようです。
  7. 7. 13.2 ソフトウェア工学上の要件 13.2.2 ユーザインタフェースの抽象化 PCは、Window、Icon、Menu、Pointer (WIMP)でアプリ ケーションが作れる 一方、ARアプリは単一のUIがない =色々なUIに対応できるようにインターフェースは抽象化 することが望ましい 抽象化すると開発者にはメリットもある。 例:実機のカメラ移動動作はUnity EditorのCameraで代替。 開発後半になったら、実機デプロイして確認
  8. 8. 13.2 ソフトウェア工学上の要件 13.2.3 再利用性と拡張性 ソフトウェア構成要素が再利用されるべき (注:これはARに限らないはず) 13.2.4 分散コンピューティング ARアプリケーションは分散コンピューティングの概念が 必要(=色々な処理を分散させて成立している)。 分散=ネットワーク経由とすると、通信インターフェース の統一化や、イベント駆動による通信設計に注意する
  9. 9. 13.2 ソフトウェア工学上の要件 13.2.5 分離シミュレーション 2種類以上のソフトウェア要素で構成 独立したスレッドで同時に実行 環境情報は必要に応じて、非同期で共有
  10. 10. 13.3 分散システム 分散システム=ネットワークで接続された複数のコン ピュータで作業を分担して行うシステム ここで注目すべきキーワード:CORBA、JavaRMI、 DWARF =分散システムを構成するミドルウェアの代表例 参考:https://hnavi.co.jp/knowledge/blog/distribution_system/
  11. 11. 13.3.1 オブジェクト管理 DWARFは、起動時に必要なソフトウェアコンポーネントを 繋げる =ソフトウェアコンポーネントをいつでも切り替えられる。 (例:より優れたトラッキング機能があれば、システムを止める ことなく、そちらに乗り換える) DWARF : Distributed Wearable Augmented Reality Framework
  12. 12. 参考:DWARF概念を使った研究 http://www.mclab.ics.ritsumei.ac.jp/pdf/yamashita_vrsj.pdf 山下, 他, "モバイル MR システム構築のための機能分散型フレームワーク -システムアーキテク チャとコンテンツ制御機構",第 14 回日本バーチャルリアリティ学会大会論文集, 2009.
  13. 13. 13.3.2 事例研究:SHEEP MacWilliams, A., Sandor, C., Wagner, M., Bauer, M., Klinker, G., and Brügge, B. (2003) Herding sheep: Live system development for distributed augmented reality. Proceedings of the IEEE and ACM International Symposium on Mixed and Augmented Reality (ISMAR), 123–132. 2003年の論文。プロジェクタ投影した映像とHMD、Palmtop(スマートフォン のようなもの、PCでAR表示を共有する仕組み。DWARFを活用し、Third Party 製ソフトウェアの組み合わせで実現。
  14. 14. 13.4 データフロー 個々の構成要素をノードと呼び、それらの集合をデータフローという。 分散型システムはデータフローによって説明できる。 P.439には、ノードの例として3種類が説明されているが、具体例の記述はなし 説明もわかりづらいので、13.4.4 事例研究を解説する。 https://www.crossroad-tech.com/entry/UnityAsset_ShaderForge ノードとエッジの考え方
  15. 15. 13.4.4 事例研究:装着型拡張現実感構成 (原文:Wearable Augmented Reality Setup) [右側のタブレット端末の画像]Reitmayr, G., and Schmalstieg, D. (2001) An open software architecture for virtual reality interaction. ACM Symposium on Virtual Reality Software and Technology (VRST), 47–54. [右上のデータフローグラフ]Reitmayr, G., and Schmalstieg, D. (2005) OpenTracker: A flexible software design for three-dimensional interaction. Virtual Reality 9, 1, Springer, 79–92. 2000年初期の論文。ノートP C、HMD、ARToolkit付ペンとWacomタブレット で、ARによる表示を行う例。データフローで設計された例の1つ。
  16. 16. 13.5 シーングラフ CG表現に広く利用されるデータ構造の考え方。調べた限り、単独のオブジェク トの性質か、オブジェクト間の関係をノードベースで示すために使われている http://www.geocities.jp/okamotojava/univtest/02-2Java3D.SceneGraph.pdf 単独のオブジェクトの性質を シーングラフで示した例 オブジェクト間の関係を シーングラフで示した例
  17. 17. 13.6 開発者支援 分散システム、データフロー、シーングラフなどにより、ARアプリケーション の設計が可能。ただし、これらは複雑であり、扱うのは容易ではない。 完成された設計からARアプリケーションを作ることはほぼない。 =プロトタイピングを繰り返して改良していくのが、現実的な開発スタイル http://www.geocities.jp/okamotojava/univtest/02-2Java3D.SceneGraph.pdf パラメータ(例:keyとvalueによる値管理)を使うと便利だが、環境が複雑化する と管理困難 XMLのようなマークアップ言語、状態管理などが使われている (Obliq、JESS、alVRed、Avango、Studierstubeなど)
  18. 18. 13.6.3 事例研究:拡張現実感ツアーガイド (原文:Augmented Reality Tour Guide) HMDで見える表示の例 ARマーカで位置特定し、キャラクタアニメーションにより目的地まで誘導する 仕組み。APRIL言語で状態管理を記述。 Tour Guildの状態遷移 F. Ledermann, I. Barakonyi, D. Schmalstieg: "Abstraction and Implementation Strategies for Augmented Reality Authoring"; in: "EmergingTechnologies of Augmented Reality: Interfaces and Design", IGI Global, 2007,
  19. 19. 13.6のまとめ その他開発時のTips アプリケーションの制御や分岐を柔軟に表現するには、手続き型スクリプト 言語(関連用語:ノードベース、プロシージャル)を推奨 状況に応じて、手続き型と宣言型言語(関連用語:C,C++など)を 組み合わせて使うのが良い。 ARアプリケーションは構成要素が多い。各要素を動的に再実行できると便利。 (データフローとシーングラフの制御ができるHTMLを自動生成して、Web ブラウザからデバッグを可能にした例もある) 開発ツールの進化が著しい。開発要求に応じて選択すべき。 Vuforiaだけでなく、D'Fusion(Total Immersion社提供)も有名。 Seibert, H., and Dähne, P. (2006) System architecture of a mixed reality framework. Journal of Virtual Reality and Broadcasting 3, 7, urn:nbn:de:0009-6-7774.
  20. 20. 補足:D'Fusion Studio マルチプラットフォーム向けARオーサリングツール。色々機能はあるが、 HP、You Tubeに公開している動画の更新日からは、最近アップデートなし と見える。体験版の入手は見つけられず。有償と思われるが、価格不明。 http://www.t-immersion.com/products/dfusion-suite/dfusion-studio
  21. 21. 13.6 まとめ 本章では、ARアプリケーションのソフトウェア構造の説明、 要件や、開発に必要な技術を説明 [主要な説明内容] 分散システムの運用、データフローによるデータ整備、シーン グラフによるオブジェクト管理、ラピッドプロトタイピングを 可能にする開発手法

×