[AR好き向け] Immersal苦労話LT会から生まれた役立つ技術知見をまとめる
こんにちは、ARエンジニアのイワケンです。
10月17日にImmersal苦労話LT&雑談会を開催しました。その内容が濃く面白かったので共有したいと思います。
この会の目的は
・Immersal苦労話
・ARCloud的世界の未来の妄想
を共有するという趣旨で開かれました。
この会の感想でもあったのですが
「Immersalの話ができる人が周りに少ない」という課題があり、このような共有会を実施した価値があったと思います。
この内容は、かなり技術的な内容となっていますので、ARに興味がない人はブラウザバックを推奨します。
参加者は、にー兄さん、なつきさん、SATOSHIさん + ファシリテータのイワケンのエンジニア4名です。
Immersalとは
会社自体はフィンランドのAR会社になります。サービスとしてImmersalというARサービスを提供しています。
ポイントとしては
・現実空間のスキャン (3DMapの構築)
・コンテンツの配置
・自己位置推定
を様々なデバイスで行えるといったところが強みです。
イメージふくらましたい人はこちらの動画を見ると良いかと思います
今回では、このImmersalを実践する上での苦労や、理想的にはこういうフローを作りたい、的な話をしました。
Mappingの失敗苦労話
一番盛り上がったのは、Mappingの失敗をどう効率よく解決するかという話題でした。
Immersalの公式Immersal Mapper Appを使用するフローでは、通常は
・現地に移動する
・3DMap構築のための写真を複数枚撮る (20~300枚)
・サーバーに写真群をアップロードする
・専用Webページで、3DMap構築が成功しているか確認する
・位置合わせのデバッグを現地で行う
というフローになります。
理想としては
・一発できれいな3DMap構築を成功する!
なのですが、現状は
・そこそこの確率で3DMap構築が失敗する
・失敗したら写真撮影 (20~300枚)やり直し
かなり、失敗したときのショックが大きいフローになっています。
例えば、こちらはSATOSHIさんがMap構築に成功した平塚競輪場のデータなのですが、何枚も写真撮って「構築に失敗しました」と表示されたら結構萎えますよね...? (的な話)
具体的には
・3DMap構築のための画像をサーバーに投げるときにパケット消費する (Wifiがないとキツイ)
・失敗の理由が特にわからないのでツライ
・昔撮った写真を再活用できない
・現地でないと位置合わせコンテンツのデバッグができない
といった悩みが共有されました。
ImmersalのMappingの理想フローを議論
・現地でmetaデータ付きの動画を撮影すると、安全に3DMapを構築してくれる
・動画から抽出した写真を加工して、色んな送り方を再チャレンジできる
(例) 人が映っているものなどノイズを除去してから送る
などの議論をしました。
これを達成するための技術についての議論や紹介なども行いました。
大前提、Immersalは専用アプリからの画像送信だけでなく、REST APIからも3DMap構築のための画像送信ができるため、自作Mapperを作ることができます。条件としてはRBG画像群とmetaデータ (カメラ情報) がわかればいいのです。
そのうえで、自作Mapper制作の苦労話をしました。
自作Mapper苦労話
特に、
返還後のTextureFormatをRGB24にしたらなんかマップ生成成功した!!!!!
とあるように、Unityのカメラデータから生成したTextureをpngに変換するときの処理の工夫が必要というのが、知見としてありがたかったです。
基本的には、公式Mapperの処理を模倣していくのが良いそうです。
Webのカメラからmeta情報取れない苦労話
なつきさんはWebARからGPSベースのSocial ARを構築しているのですが、VPSのためにImmersal活用を試みるも、Webからだとカメラのメタ情報を取得できないことで苦労しているとのことです。
カメラパラメータもオートフォーカスなどで逐一変わっているので、ウェブから取得できる一気にImmersalの仕様の幅が広がりますよね。
未来の技術妄想話
技術観点の妄想では
・動画撮影してWebにポイッと投げたら3DMapを自動構築するサービス
・フォトグラメトリで撮影したデータから3DMapをシミュレーションするアプリ
・WebXRでImmersalのようなVPSを使えるようにする
と言った話が盛り上がりました。
こういった技術観点と、社会的意義をどうマッチングしていくのかが今後大事になると思うので、引き続きこのようなイベントを開いていきたいと思います。
ではまた!