SlideShare ist ein Scribd-Unternehmen logo
1 von 21
『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)
この章の概要
ARを使ったシステムのソフトウェア構造について解説
ARアプリケーションの要件だけでなく、ソフトウェア工学
の観点で様々な手法を紹介。
教科書に入る前の説明
13.1 ARアプリケーションの要件
13.1.1 環境制御とシーンダイナミクス
使用者の姿勢変化、実世界の変化に対しても即座に反応できる
コンテンツであること。
13.1.2 ディスプレイ空間
表示されるコンテンツが、実世界の配置に関連していること
(例:テーブルに置いたカードにコンテンツを表示)
13.1 ARアプリケーションの要件
13.1.3 実- 仮想間の一貫性
実世界でありそうな操作、表示方法が使われていること
13.1.4 意味的知識 (Semantic Knowledge)
AR表示されるオブジェクトの使用や配置場所を決定するため、
現実の物理空間をセンシングし、現実とAR表示するオブジェク
トに関係性を持たせる必要がある。
13.1 ARアプリケーションの要件
13.1.5 物理空間
ARの使用者は物理的な移動をするので、移動してもアプリケー
ションが破綻しないこと
補足:VRでも移動はしますが、移動の範囲がARよりは少ない、
としたようです。
13.2 ソフトウェア工学上の要件
13.2.1 プラットフォーム抽象化
ARは入出力手段が統一されていないので開発環境の互換性が必
要。
一般的には、Unity、Qt、ACEなどがある
補足:
ACEとは、Adaptive Communication Environment Toolkit
ネットワーク関係の開発環境のようです。
13.2 ソフトウェア工学上の要件
13.2.2 ユーザインタフェースの抽象化
PCは、Window、Icon、Menu、Pointer (WIMP)でアプリ
ケーションが作れる
一方、ARアプリは単一のUIがない
=色々なUIに対応できるようにインターフェースは抽象化
することが望ましい
抽象化すると開発者にはメリットもある。
例:実機のカメラ移動動作はUnity EditorのCameraで代替。
開発後半になったら、実機デプロイして確認
13.2 ソフトウェア工学上の要件
13.2.3 再利用性と拡張性
ソフトウェア構成要素が再利用されるべき
(注:これはARに限らないはず)
13.2.4 分散コンピューティング
ARアプリケーションは分散コンピューティングの概念が
必要(=色々な処理を分散させて成立している)。
分散=ネットワーク経由とすると、通信インターフェース
の統一化や、イベント駆動による通信設計に注意する
13.2 ソフトウェア工学上の要件
13.2.5 分離シミュレーション
2種類以上のソフトウェア要素で構成
独立したスレッドで同時に実行
環境情報は必要に応じて、非同期で共有
13.3 分散システム
分散システム=ネットワークで接続された複数のコン
ピュータで作業を分担して行うシステム
ここで注目すべきキーワード:CORBA、JavaRMI、
DWARF
=分散システムを構成するミドルウェアの代表例
参考:https://hnavi.co.jp/knowledge/blog/distribution_system/
13.3.1 オブジェクト管理
DWARFは、起動時に必要なソフトウェアコンポーネントを
繋げる
=ソフトウェアコンポーネントをいつでも切り替えられる。
(例:より優れたトラッキング機能があれば、システムを止める
ことなく、そちらに乗り換える)
DWARF : Distributed Wearable Augmented Reality Framework
参考:DWARF概念を使った研究
http://www.mclab.ics.ritsumei.ac.jp/pdf/yamashita_vrsj.pdf
山下, 他, "モバイル MR システム構築のための機能分散型フレームワーク -システムアーキテク
チャとコンテンツ制御機構",第 14 回日本バーチャルリアリティ学会大会論文集, 2009.
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
製ソフトウェアの組み合わせで実現。
13.4 データフロー
個々の構成要素をノードと呼び、それらの集合をデータフローという。
分散型システムはデータフローによって説明できる。
P.439には、ノードの例として3種類が説明されているが、具体例の記述はなし
説明もわかりづらいので、13.4.4 事例研究を解説する。
https://www.crossroad-tech.com/entry/UnityAsset_ShaderForge
ノードとエッジの考え方
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つ。
13.5 シーングラフ
CG表現に広く利用されるデータ構造の考え方。調べた限り、単独のオブジェク
トの性質か、オブジェクト間の関係をノードベースで示すために使われている
http://www.geocities.jp/okamotojava/univtest/02-2Java3D.SceneGraph.pdf
単独のオブジェクトの性質を
シーングラフで示した例
オブジェクト間の関係を
シーングラフで示した例
13.6 開発者支援
分散システム、データフロー、シーングラフなどにより、ARアプリケーション
の設計が可能。ただし、これらは複雑であり、扱うのは容易ではない。
完成された設計からARアプリケーションを作ることはほぼない。
=プロトタイピングを繰り返して改良していくのが、現実的な開発スタイル
http://www.geocities.jp/okamotojava/univtest/02-2Java3D.SceneGraph.pdf
パラメータ(例:keyとvalueによる値管理)を使うと便利だが、環境が複雑化する
と管理困難
XMLのようなマークアップ言語、状態管理などが使われている
(Obliq、JESS、alVRed、Avango、Studierstubeなど)
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,
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.
補足:D'Fusion Studio
マルチプラットフォーム向けARオーサリングツール。色々機能はあるが、
HP、You Tubeに公開している動画の更新日からは、最近アップデートなし
と見える。体験版の入手は見つけられず。有償と思われるが、価格不明。
http://www.t-immersion.com/products/dfusion-suite/dfusion-studio
13.6 まとめ
本章では、ARアプリケーションのソフトウェア構造の説明、
要件や、開発に必要な技術を説明
[主要な説明内容]
分散システムの運用、データフローによるデータ整備、シーン
グラフによるオブジェクト管理、ラピッドプロトタイピングを
可能にする開発手法

Weitere ähnliche Inhalte

Was ist angesagt?

平滑化処理の繰り返しによる画像セグメンテーションのためのグラフカット
平滑化処理の繰り返しによる画像セグメンテーションのためのグラフカット平滑化処理の繰り返しによる画像セグメンテーションのためのグラフカット
平滑化処理の繰り返しによる画像セグメンテーションのためのグラフカット
MPRG_Chubu_University
 
Disentanglement Survey:Can You Explain How Much Are Generative models Disenta...
Disentanglement Survey:Can You Explain How Much Are Generative models Disenta...Disentanglement Survey:Can You Explain How Much Are Generative models Disenta...
Disentanglement Survey:Can You Explain How Much Are Generative models Disenta...
Hideki Tsunashima
 

Was ist angesagt? (20)

Direct feedback alignment provides learning in Deep Neural Networks
Direct feedback alignment provides learning in Deep Neural NetworksDirect feedback alignment provides learning in Deep Neural Networks
Direct feedback alignment provides learning in Deep Neural Networks
 
ICCV 2019 論文紹介 (26 papers)
ICCV 2019 論文紹介 (26 papers)ICCV 2019 論文紹介 (26 papers)
ICCV 2019 論文紹介 (26 papers)
 
深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定
 
[DL輪読会]Object-Centric Learning with Slot Attention
[DL輪読会]Object-Centric Learning with Slot Attention[DL輪読会]Object-Centric Learning with Slot Attention
[DL輪読会]Object-Centric Learning with Slot Attention
 
SSD: Single Shot MultiBox Detector (ECCV2016)
SSD: Single Shot MultiBox Detector (ECCV2016)SSD: Single Shot MultiBox Detector (ECCV2016)
SSD: Single Shot MultiBox Detector (ECCV2016)
 
[DL輪読会]“Spatial Attention Point Network for Deep-learning-based Robust Autono...
[DL輪読会]“Spatial Attention Point Network for Deep-learning-based Robust Autono...[DL輪読会]“Spatial Attention Point Network for Deep-learning-based Robust Autono...
[DL輪読会]“Spatial Attention Point Network for Deep-learning-based Robust Autono...
 
[DL輪読会]Batch Renormalization: Towards Reducing Minibatch Dependence in Batch-...
[DL輪読会]Batch Renormalization: Towards Reducing Minibatch Dependence in Batch-...[DL輪読会]Batch Renormalization: Towards Reducing Minibatch Dependence in Batch-...
[DL輪読会]Batch Renormalization: Towards Reducing Minibatch Dependence in Batch-...
 
最近のSingle Shot系の物体検出のアーキテクチャまとめ
最近のSingle Shot系の物体検出のアーキテクチャまとめ最近のSingle Shot系の物体検出のアーキテクチャまとめ
最近のSingle Shot系の物体検出のアーキテクチャまとめ
 
[Ridge-i 論文読み会] ICLR2019における不完全ラベル学習
[Ridge-i 論文読み会] ICLR2019における不完全ラベル学習[Ridge-i 論文読み会] ICLR2019における不完全ラベル学習
[Ridge-i 論文読み会] ICLR2019における不完全ラベル学習
 
[DL輪読会]Taskonomy: Disentangling Task Transfer Learning
[DL輪読会]Taskonomy: Disentangling Task Transfer Learning[DL輪読会]Taskonomy: Disentangling Task Transfer Learning
[DL輪読会]Taskonomy: Disentangling Task Transfer Learning
 
[DL輪読会]Weight Agnostic Neural Networks
[DL輪読会]Weight Agnostic Neural Networks[DL輪読会]Weight Agnostic Neural Networks
[DL輪読会]Weight Agnostic Neural Networks
 
文献紹介:YOLO series:v1-v5, X, F, and YOWO
文献紹介:YOLO series:v1-v5, X, F, and YOWO文献紹介:YOLO series:v1-v5, X, F, and YOWO
文献紹介:YOLO series:v1-v5, X, F, and YOWO
 
平滑化処理の繰り返しによる画像セグメンテーションのためのグラフカット
平滑化処理の繰り返しによる画像セグメンテーションのためのグラフカット平滑化処理の繰り返しによる画像セグメンテーションのためのグラフカット
平滑化処理の繰り返しによる画像セグメンテーションのためのグラフカット
 
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
PyMCがあれば,ベイズ推定でもう泣いたりなんかしないPyMCがあれば,ベイズ推定でもう泣いたりなんかしない
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
 
Disentanglement Survey:Can You Explain How Much Are Generative models Disenta...
Disentanglement Survey:Can You Explain How Much Are Generative models Disenta...Disentanglement Survey:Can You Explain How Much Are Generative models Disenta...
Disentanglement Survey:Can You Explain How Much Are Generative models Disenta...
 
[DL輪読会]EfficientDet: Scalable and Efficient Object Detection
[DL輪読会]EfficientDet: Scalable and Efficient Object Detection[DL輪読会]EfficientDet: Scalable and Efficient Object Detection
[DL輪読会]EfficientDet: Scalable and Efficient Object Detection
 
POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用
 
[DL輪読会]Social Influence as Intrinsic Motivation for Multi-Agent Deep Reinforc...
[DL輪読会]Social Influence as Intrinsic Motivation for Multi-Agent Deep Reinforc...[DL輪読会]Social Influence as Intrinsic Motivation for Multi-Agent Deep Reinforc...
[DL輪読会]Social Influence as Intrinsic Motivation for Multi-Agent Deep Reinforc...
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 
強化学習初心者が強化学習でニューラルネットワークの設計を自動化してみたい
強化学習初心者が強化学習でニューラルネットワークの設計を自動化してみたい強化学習初心者が強化学習でニューラルネットワークの設計を自動化してみたい
強化学習初心者が強化学習でニューラルネットワークの設計を自動化してみたい
 

Mehr von WheetTweet

Mehr von WheetTweet (20)

PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順についてPWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
 
Babylon.js EditorでWebXRコンテンツを開発するときのプレビュー確認機能について
Babylon.js EditorでWebXRコンテンツを開発するときのプレビュー確認機能についてBabylon.js EditorでWebXRコンテンツを開発するときのプレビュー確認機能について
Babylon.js EditorでWebXRコンテンツを開発するときのプレビュー確認機能について
 
WebXR TechTokyo #3 in Cluster発表資料
WebXR TechTokyo #3 in Cluster発表資料WebXR TechTokyo #3 in Cluster発表資料
WebXR TechTokyo #3 in Cluster発表資料
 
20200629 web xr_techtokyo_1_min
20200629 web xr_techtokyo_1_min20200629 web xr_techtokyo_1_min
20200629 web xr_techtokyo_1_min
 
WebXR TechTokyo #0 in Cluster発表資料
WebXR TechTokyo #0 in Cluster発表資料WebXR TechTokyo #0 in Cluster発表資料
WebXR TechTokyo #0 in Cluster発表資料
 
XRにおけるプロトタイピングについて
XRにおけるプロトタイピングについてXRにおけるプロトタイピングについて
XRにおけるプロトタイピングについて
 
A 3DCG view trial in Noodl with Babylon.js and A-Frame
A 3DCG view trial in Noodl with Babylon.js and A-FrameA 3DCG view trial in Noodl with Babylon.js and A-Frame
A 3DCG view trial in Noodl with Babylon.js and A-Frame
 
Babylon.jsでOculus Quest向けWebVRアプリを作るときのメリットとデメリット
 Babylon.jsでOculus Quest向けWebVRアプリを作るときのメリットとデメリット Babylon.jsでOculus Quest向けWebVRアプリを作るときのメリットとデメリット
Babylon.jsでOculus Quest向けWebVRアプリを作るときのメリットとデメリット
 
20171027 japan vr_fest開発者会_発表資料_発表用(English)
20171027 japan vr_fest開発者会_発表資料_発表用(English)20171027 japan vr_fest開発者会_発表資料_発表用(English)
20171027 japan vr_fest開発者会_発表資料_発表用(English)
 
20171015 XR動向とコミュニティ活動のすすめ(XRgirls 1st meetup)
20171015 XR動向とコミュニティ活動のすすめ(XRgirls 1st meetup)20171015 XR動向とコミュニティ活動のすすめ(XRgirls 1st meetup)
20171015 XR動向とコミュニティ活動のすすめ(XRgirls 1st meetup)
 
Meta2を動かしてみたことのまとめ
Meta2を動かしてみたことのまとめMeta2を動かしてみたことのまとめ
Meta2を動かしてみたことのまとめ
 
XR community introduction in Japan
XR community introduction in JapanXR community introduction in Japan
XR community introduction in Japan
 
Japan VR Fest 開発者会 in cluster
Japan VR Fest 開発者会 in cluster Japan VR Fest 開発者会 in cluster
Japan VR Fest 開発者会 in cluster
 
20161125 Unity-Android連携の発表資料
20161125 Unity-Android連携の発表資料20161125 Unity-Android連携の発表資料
20161125 Unity-Android連携の発表資料
 
Meta1のSLAM機能を試してみた
Meta1のSLAM機能を試してみたMeta1のSLAM機能を試してみた
Meta1のSLAM機能を試してみた
 
20161014 vrarmr勉強会発表資料 slideshare
20161014 vrarmr勉強会発表資料 slideshare20161014 vrarmr勉強会発表資料 slideshare
20161014 vrarmr勉強会発表資料 slideshare
 
20160902 unity勉強会発表資料
20160902 unity勉強会発表資料20160902 unity勉強会発表資料
20160902 unity勉強会発表資料
 
20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)
20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)
20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)
 
Unity information for new developer
Unity information for new developerUnity information for new developer
Unity information for new developer
 
第2回裏ocufes(2014/3/30) の登壇資料
第2回裏ocufes(2014/3/30) の登壇資料第2回裏ocufes(2014/3/30) の登壇資料
第2回裏ocufes(2014/3/30) の登壇資料
 

Kürzlich hochgeladen

Kürzlich hochgeladen (12)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

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