【調査報告】iPhone12 Proからはじめるミラーワールド
iPhone12 ProのLiDARスキャナを使って点群データを取得、ARを表示するまでのプロトタイピングをレポートします。
iPhone12 ProのLiDARスキャナを使って点群データを取得、ARを表示するまでのプロトタイピングをレポートします。
しまねソフト研究開発センターでは、「ITOCminiLab」と称してドローンやXR技術を用いた機器等を整備、島根県内事業者と共同で利活用することで、新たな製品やサービス創出の支援をしています。その取り組みの一環として、今回はITOCminiLabのメンターであるミニマルエンジニアリング代表の石倉淳一氏によって、iPhone12 Proに搭載されたLiDARスキャナを使って点群データを取得・AR表示するまでのプロトタイピングを「iPhone12 Proからはじめるミラーワールド」というタイトルでレポートを執筆いただきましたので、ご紹介します。
[著者]石倉 淳一(ミニマルエンジニアリング 代表)
<目次>
▼デジタル世界とフィジカル世界を融合する「ミラーワールド」
▼iPhone12 ProのLiDARスキャナでプロトタイピング
▼プロトタイプでモノをスキャンして配置する「デジタルツイン」の実例
▼LiDARスキャナによる新たなプロダクトの可能性
▼ミラーワールドに向けたプラットフォームの整備と社会実装
現実の都市や社会などの物理空間すべてが縮尺1対1でデジタル化された鏡像世界=ミラーワールドという言葉を近年多く耳にするようになりました。
ミラーワールドとは、複数人によるリアルタイムでの共有が可能な、現実世界にあるすべての土地、道路、建築物、部屋等の3Dデジタルコピーと言われています。つまり、現実世界の存在すべてにバーチャルなデータが紐づけられて、現実世界の対として3Dデジタルコピーが存在することを意味しています。これは、「デジタルツイン」というキーワードで、3Dデジタルコピーによって物理空間の環境を再現し、あらゆるシミュレートを行って将来を予測することに役立つ新しい技術としても注目を集めています。
この「デジタル世界とフィジカル世界を融合する」という考えは、内閣府が科学技術基本計画として提唱する未来社会のコンセプト「Society5.0」にも共通します。
ミラーワールド:ARが生み出す次の巨大プラットフォーム | WIRED.jp
https://wired.jp/special/2019/mirrorworld-next-big-platform
そのような世界の社会実装を推し進めようと、データのプラットフォームを整備する動きも活発化し始めています。
PLATEAU [プラトー] - 国土交通省
https://www.mlit.go.jp/plateau/
ミラーワールドの構築は、「3D都市モデル」の整備から始まる:国土交通省による「PLATEAU」がもたらす革新|WIRED.jp
https://wired.jp/2021/03/26/plateau/
そんな中、iPhone12ProにLiDARが搭載されることで深度センサーが一気に身近なものになったのは、非常に大きな出来事であるように思います。
LiDARとは「Light Detection and Ranging」(光検出と測距)の略であり、光で物体への距離を測定する技術を指します。高精度で周辺環境の位置情報や物体の形状を検出できることが特徴です。
つまり、iPhone12 Proに搭載されたLiDARスキャナを使うことで、物理空間の3Dデジタルコピーを簡単に再現することができるとともに、現実の映像とデジタル情報を合成した映像をリアルタイムにディスプレイやヘッドマウントディスプレイへ表示が可能となります。既に、2020年3月にAppleが発売したiPad Pro(第4世代)にもLiDARが搭載されていましたが、iPhone12 Pro / iPhone12 Pro MAXに搭載されたのは意味が大きいと感じています。常に携帯し、仕事や日常生活など、多くの人々にとってあらゆる活動と密接に関わっているスマートフォンに搭載されるのは、ミラーワールドのような世界が社会実装される上で非常に重要なステップだと思います。
今回、ミラーワールドのような世界を見据えつつ、iPhone12Proに搭載されたLiDARを使ったプロダクト開発はどのようなものかを体験したいと思いました。
以下について知ることをこの取組の目的とします。
上記を明らかにすることで、以下の仮説を検証します。
取り組んだ内容は以下です。
1. Record3DアプリでLiDARを用いて点群データを取得
2. 録画した時系列点群データ(シーケンシャル点群データ)をUnityで表示
3. AR Foundationでシーケンシャル点群データをAR表示
点群データとは、LiDARなどのセンサーによって撮影された、空間上の点の情報をまとめた3Dデータです。データ形式としては、頂点ごとの空間座標(X, Y, Z)と色(R, G, B)の6パラメータが基本の構成要素で、それに加え、スカラー情報と呼ばれる反射率や法線ベクトルなどの情報を含むこともあります。
現在、LiDARを活用したアプリが多く出ています。その中で「Record3D」を使用しました。
Record3D|公式ページ
https://record3d.app/index
LiDARでスキャンしたデータを動画として再生できるアプリで、 PLYファイルまたはglTFファイルとしてエクスポートも可能です。今回はPLYファイルとして取得しました。動画は時系列の点群データ(シーケンシャルPLY)として保存されます(30fpsで記録する場合は1秒間に30個のPLYファイルが生成される)。
時系列の点群データ(シーケンシャルPLY)として保存された様子
1個の点群データファイルを表示した様子
点群データを編集可能なソフトCloudCompareを使用
Record3DはUSB接続またはWi-Fi経由で点群データのストリーミングが出来る機能があり、Unityで表示するサンプルがGitHubにあります。
Record3D|GitHub
https://github.com/marek-simonik/record3d_unity_demo/blob/master/README.md
https://github.com/marek-simonik/record3d-simple-wifi-streaming-demo
今回はこちらを参考に、録画した3D動画(シーケンシャルPLYファイル)をUnityで表示してみます。また、UnityでのPLYファイルの読み込みはこちらを参考にしました。
Pcx - Point Cloud Importer/Renderer for Unity|GitHub
https://github.com/keijiro/Pcx
Unityで表示するのはVisual Effect Graphを使用しています。Visual Effect Graph でとはComputeShaderを生成するビジュアルプログラミング環境を提供するUnity公式のPackageです。特にGPUパーティクルに特化しています。略して VFX Graphと表記されることもあります。PLYファイルから読み込んだ座標および色の情報をそれぞれデータバッファとして使うテクスチャに動的に書き込み、VFX側に渡してパーティクルの制御に使用します。以下を参考にしました。
Rsvfx
https://github.com/keijiro/Rsvfx
VFX Graph の可能性を探る!PointCache動的生成、VAT拡張|note
https://note.com/fuqunaga/n/n8095638b6b14
UnityのVFX Graphで使用するAttribute Mapを動的に生成する|Qiita
https://qiita.com/aa_debdeb/items/cd46d571dcb20f75817b
UnityのVFX Graphで使用するSigned Distance FieldをCompute Shaderで動的に生成する|Qiita
https://qiita.com/aa_debdeb/items/c504ea20da61b032238d
VFXを使用することで、パーティクルに動きを与えたり自由に操作することができます。
動的に生成した座標および色の情報を受け取るVisual Effect Graph側
Visual Effect Graphで座標と色の情報からパーティクルを生成して表示した様子。時系列の点群データを連続で読み込み動的にVisual Effect Graph側へ渡すことで動画の再生となる。手のひらをひっくり返す動きを表示している様子。
AR Foundationとは、ARKitやARCoreなど複数のプラットフォーム対応したUnityのARフレームワークです。
Unity の AR Foundation フレームワーク|Unity
https://unity.com/ja/unity/features/arfoundation
About AR Foundation | AR Foundation | 4.1.5
https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.1/manual/index.html
AR FoundationはiOSのARKit4の深度検出をサポートしています。LiDARスキャナにより環境の理解と奥行き情報の取得が強化されています。
AR Foundation が ARKit 4 の深度検出をサポート|Unity Blog
https://blogs.unity3d.com/jp/2020/06/24/ar-foundation-support-for-arkit-4-depth/
VFX GraphはScriptable Render Pileline(SRP)環境下において動作します。そのため、AR FoundationでVFX Grapshを動かすためにUniversal RPを使用します。
AR Foundation4を使ったVFX Graphの環境構築|note
https://note.com/thedesignium/n/n9b5dba682e38
LiDARで周辺環境を取得し、その結果面として認識した箇所にデジタルオブジェクトをARとして表示します。AR Foundationのサンプルプロジェクトを参考にしました。
AR Foundation Samples|GitHub
https://github.com/Unity-Technologies/arfoundation-samples
実際にテーブル上のモノをLiDARでスキャンし、同じテーブル上にデジタルオブジェクトとして置いたものです。iPhone 12 Pro や iPad Pro(第4世代)に搭載されているLiDARは最大5mの奥行きが計測出来るとされています。部屋一面の空間を瞬時にスキャンできる規模になります。この例でもスキャンしている範囲はテーブルや床を含めた部屋一面になりますが、Visual Effect Graphでパーティクルを生成する際に座標の範囲を限定することでモノのみを可視化しています。またARとして表示する際にも、LiDARでテーブルの表面を高精度に認識することでデジタルオブジェクトがまるで本当にそこへ置かれているかのように自然に表示されています。
LiDARを使って空間の情報を取得することも、それを利用することも、驚くほど簡単になってきていると実感しました。iOS14のARKit4でLiDARで計測した深度情報にアクセスできるAPIが用意され、またUnityのようなツールを使った開発の選択肢があることも敷居を下げてくれています。周囲の物理的な環境を高精度で理解できることで、バーチャルオブジェクトを本当にリアルに物理空間に溶け込ませる事ができるようになったと感じました。
どのようなプロダクト/サービスの可能性があるか:
例えば、工場では機械部品を解体せずに中身の状況を見ることが出来たり、街中では街路や建物に必要な情報を注釈付けることができます。店舗の商品それぞれに広告が紐付けられ、見る人が表示するレベルも操作出来ます。スマートフォンのように日常的なデバイスにスキャナーが搭載されると、誰もがデジタル世界の利用者になるのと同時に、現実世界の3Dデジタルコピーの作成者にも成り得るということになります。そしてその結果場所やモノさえも機械が読み取れるようになり、AI活用などコンピューティングの利用範囲が今以上に広がります。高価な機材や大掛かりな装置が無くても、日常に使用しているスマートフォンにLiDARが搭載されたのは、それを実現する大きな一歩と感じました。
いずれはスマートグラスのような様々なデバイスやカメラで同様の体験が出来るようになると思います。
利用できるツールやサービスなど開発環境はどのようなものがあるか:
LiDARといった深度センサーがデバイスに搭載されそこから得られる情報をAPI経由で利用できるなど、デバイスとOSが連携したAR関連の機能が成熟してきているのが分かりました。さらに、プロダクトやサービスを作るための開発環境としては、Unityのようなマルチプラットフォーム対応のアプリケーションがあり、AR開発用のAR Foundationといったフレームワークもあります。AR開発の敷居はものすごく下がってきていました。一方で、クラウド経由で他者と空間を共有したり、リッチな3Dオブジェクトを共有するような体験をつくるには、まだ実装が大変そうな印象を受けました。
ただ、ロケーションや空間情報をクラウドにホストして複数のユーザーで共有したり(※1)、大きなマシンパワーを必要とする高品質の3Dコンテンツをクラウド上でレンダリングしてストリーミングするサービス(※2)の整備が整ってきています。バックエンドの実装の大変さを吸収するサービスが現在進行系で整備途中であり、ARクラウドを実現するプラットフォームが揃いつつあることを感じました。
※1
Android Cloud Anchors|ARCore
https://developers.google.com/ar/develop/java/cloud-anchors/overview-android
Azure Spatial Anchors|Microsoft Azure
https://azure.microsoft.com/ja-jp/services/spatial-anchors/
※2
Google Cloud による拡張現実のストリーミング|Google Cloud ブログ
https://cloud.google.com/blog/ja/products/networking/google-cloud-streams-augmented-reality
Azure Remote Rendering|Microsoft Azure
https://azure.microsoft.com/ja-jp/services/remote-rendering/
深度センサーがいよいよ身近になってきたという点で、スマートフォンにLiDARが搭載されたのはとても大きな出来事だと感じました。さらに、Microsoft AzureやGoogle Cloudを筆頭に、ARクラウドを実現するサービスが加速しています。クラウド経由で空間を共有することも容易になっていき、またエッジ側では負荷の面で実現しにくかったような規模のレンダリングもクラウドからストリーミングすることで可能になっていきます。今まさに開発環境が整いつつある現状を目の当たりにしました。
加えて、国土交通省が3D都市モデル「PLATEAU」といったオープンデータの基盤整備の動きも活発化しています。プラットフォームの整備が進み、各パブリッククラウドのXR関連サービスが充実し始め、5G通信環境の整備も同時進行で進んでいます。デジタル世界とフィジカル世界が接続する「境界」における最適な体験はどんなものだろうかということを深く議論し、プロダクトやサービスの開発に注力できるようになっている段階だと感じました。
そのようにプロダクト開発に注力する参加者が増えることで、社会に浸透するデジタル空間とはどんなものなのか、そこではどのような体験が再開発され、どのように社会実装されるべきかを掘り下げることがどんどん加速していくと思います。自分も一人の開発者として参加していきたいと思いました。
石倉 淳一(ミニマルエンジニアリング 代表)
広島市立大学情報科学部を卒業後、松江市内のSIer企業に入社。5年ほどシステムエンジニアに従事した後、Web中心のソフトウェアエンジニアとして独立。また、島根県立情報科学高校にて、今後のIT人材を育む事業を展開中。ITOCminiLabプロジェクトに機器選定から関わり、機器メンテナンスとメンターを担当。
* 本レポートに掲載されている情報は2021年4月末時点のものです。
本レポートに関する詳細な内容について、お問合せがありましたら下記へご連絡下さい。
公益財団法人しまね産業振興財団
しまねソフト研究開発センター(ITOC)
担当:渡部
Phone:0852-61-2225
Email:itoc@s-itoc.jp