iPad Pro LiDARで3Dスキャン
1. はじめに
前回の投稿では、「iPad ProのLiDARを使って、AR表示を試してみた」と題して、まずはAppleの公式サンプルARアプリ「Scanning and Detecting 3D Objects」を試してみた感想などを書きました。その時は、せっかくLiDARを搭載しているのに、なぜ密な点群やメッシュなどをとれないのだろうと思っていたのですが、先日 Appleの ARKit のドキュメントを読んでいたところ、リアルタイムに3次元メッシュを取得できるサンプルコード「Visualizing and Interacting with a Reconstructed Scene」を見つけました。
さっそく、このサンプルコードにある機能を利用して、3Dスキャンアプリを作ってみました。
2. アプリの機能
このアプリの機能の一覧を以下に示します。
まず最初に、このアプリはLiDARを搭載したiPad Pro向けです。古いiPhoneなどでは動作しません。起動時に念のためチェックしています。
各機能を説明します。
■ Capture
iPadをかざして3Dメッシュを撮ります。カメラの画像と重ねて3Dメッシュが半透明状に表示されます。取得中の三角ポリゴンの数も表示されます。
■ Viewer
メッシュの取得具合を確認しやすくするため、カメラ画像の表示を無くし、取得した3Dメッシュのみをプレビュー表示します。スワイプ操作で、回転・拡大・移動を行えます。
■ Save
取得した3Dメッシュをファイルに保存します。
■ Loader
すでにファイルに保存した3Dメッシュデータの一覧から、読み込みたいデータを選択すると、Viewerで表示されます。保存されているファイルは、iPadのファイルAppでも「このiPad内」のアプリのフォルダ内に見ることができます。
■ VRシステムでの応用
ただ画面上でスキャンした結果を見るだけでは、そのあとの活用はなにもできませんので、このアプリでは前述の通りファイル出力できるようにしました。ファイルの形式は「GLTF」というフォーマットで、これは近年 SolidWorksやBlenderなどのCAD/CGソフトでもサポートされており、応用が広がってきています。弊社の製造業向けVRデザインレビューシステム「pronoDR バージョン3.0」(※1)でも、このフォーマットを入力データ形式として採用しています。実際に、3Dスキャン結果をGLTFフォーマットのファイル(拡張子は"glb")へ出力し、それを pronoDR にインポートしてVR表示を行った例を示します。バーチャル空間上で形状の確認や計測などを行えます。
(*1)pronoDR:VRヘッドマウントディスプレイによる製造業向けの3次元デザインレビューアプリケーションです。3次元CADで設計された3次元CADデータを簡単操作でコンバートし、VRヘッドマウントディスプレイ(HMD)でのデザインレビューを実現します。
3. 今後
これほど手軽に3Dスキャンをできるようになったとは、10〜15年ほど前に真面目にコンピュータビジョン分野の3Dスキャナの研究をしていた頃には、まったく想像できませんでした。ここまでできると、さらに欲が出てきますね。特にVR表示もとなれば、やはりメッシュを色付きでとりたいところです(限定的ながら、色情報付きの点群を取得することはできているのですが)。ARKit や ARFoundation をいろいと勉強しているところですが、今後のアップデートに期待です。
4. 技術的な話
このアプリを開発するには、AppleのARKit 3.5とXcode11.4以降が必要なのですが、これだけでアプリを作るのは私には敷居が高いので、Unityを使いました。UnityからARKit を利用するために「AR Foundation」という Unity のパッケージが提供されていますので、これを活用しました。
いきなり目的のアプリを作る前に、AR Foundationの使い方を学ぶために、サンプルコードがGitHubに公開されているので、それをビルドして実行してみるなど、いろいろ試してみました。そのとき書き留めた資料を以下で公開していますので、技術的に興味のある方は参照してください。
■ Unity+ARFoundationでiOS用ARサンプルを動かす
■ ARFoundationサンプルプログラム作成手順
(プロノハーツ 中村泰敏)
この記事が気に入ったらサポートをしてみませんか?