こちらのブログ記事にて紹介させてもらった「ToF AR Samples Basic」
ToF ARには様々なコンポーネントが存在していますが、それらをまとめて実装し、個々の動作を確認できるサンプルとなっています。
今回はそれぞれのサンプルシーンの機能について前回記事よりもう少し深く紹介できればと思います。
動作方法
紹介記事と内容が多少重複しますが、アプリの動作手順を記載します。
ストアからのアプリをダウンロードすればそのまま使用できるのでオススメです。
開発者の方の場合Unityプロジェクトを取得してもらえれば、内部の構成も合わせて確認することが可能です。
・Storeからダウンロード
アプリがApple App Store / Google Play Storeに公開されているのでダウンロードを行い、アプリを起動することで動作を確認することが出来ます。
Apple App Store : ToF AR Samples Basic
Google Play Store : ToF AR Samples Basic
・Unityプロジェクトのビルド
ソースコードがGithubに公開されているので、取得後Unityでビルドを行えばアプリデータを作成することが可能です。
※ReadMeにも記載がありますが、ビルドを行う際はプロジェクトファイルとは別にToF AR SDKのUnityPackageが必要となるので以下のサイトからダウンロードを行い、プロジェクトへのインポートが必要です。
アプリを起動するとメインメニューが表示され、各コンポーネントの動作を確認することが出来ます。
iOS/Android共に端末によって非対応、または動作に制限があります。
下記対応一覧を確認し、実行端末を選定していただければと思います。
シーン紹介
ここから各シーンについてキャプチャを交えて紹介を行います。
各シーンの共通項目として、右下のカメラマークのボタンを押すと起動するColor or ToFのカメラ解像度を選択して起動することが出来ます。
又、カメラ起動中は各コンポーネントのデータを録画/再生する機能も備わっており、録画データを使って何度も同じ条件を再現して動作検証することも可能です。(録画に関しては未対応のシーンも有り)
起動するカメラの選択
データ録画
データ再生
Color
RGBカメラの映像を表示します。
カメラに対する様々な設定を追加で行う事が出来ます。
FPSの変更、焦点や露出の設定、フラッシュライトのモード設定などが用意されています。
Backカメラの映像
iOSの設定項目
Androidの設定項目
Color Depth
RGBカメラにToFのDepthデータを重ねた映像を表示します。
Depthデータは距離によって表示される色合いが変わり、距離近いほど寒色、遠いほど暖色になっています。
特定のAndroid端末は物理的な問題でピッタリ重ねて表示ができませんが、内部パラメーターを利用して補正を行っています。
Backカメラの映像
Frontカメラの映像
設定項目
Basic Stream
前述のColor(RGB)とDepth、さらにConfidenceの映像を並べて表示します。
重ねて表示を行わず、各データをそれぞれ見比べる場合に活用できるシーンになっています。
Default表示
Confidenceデータのみ表示
Frontカメラの表示
Depth Confidence
Depthデータの詳細表示や保存を行います。
表示はBasic Streamシーンと似ていますが、指定範囲の平均距離情報の表示やフレームレートを指定してデータを端末に保存することができます。(.raw)
保存データを別のアプリやシステムに利用したい場合に活用出来ます。
Backカメラの映像
Frontカメラの映像
設定項目
Point Cloud
ToFのポイントクラウドデータを表示します。
ポイントクラウドのデータはDepthデータと内部パラメーターを利用してSDKが用意してくれています。
表示する視野角や向きをスワイプ操作で変更することが出来るので、様々な視点からデータを確認することが可能です。
iOS/Backカメラの映像
Android/Backカメラの映像
Frontカメラの映像
Colored Point Cloud
ToFのポイントクラウドデータにColorのRGB映像を重ね合わせた映像を表示します。
Color Depthシーンと同様にColor(RGB)とDepthのデータを重ねて表示出来る補正をかけてくれています。
iOS/Backカメラの映像
Android/Backカメラの映像
Frontカメラの映像
Human Point Cloud
ToFのポイントクラウドデータにColor(RGB)映像を重ね合わせた映像を人の要素部分のみ切り抜いて表示します。
後述する「Segmentation」の機能と合わせて、「人物」のデータだけを表示することができます。
ポイントクラウドは保存の為にデータ量を削減したいパターンが多いので、フィルタリング機能は活用シーンが多そうです。
iOS/Backカメラの映像
Android/Backカメラの映像
Frontカメラの映像
Segmentation
Segmentation認識結果を表示します。
認識出来る要素として「人物」「空」が対応可能で、マスク画像データで提供されます。
Backカメラ 人物推定
Frontカメラ 人物推定
空推定
Hand
手の認識情報を表示します。
ToF ARで最も力を入れている機能となっています。
関節位置の3次元情報、ポーズやジェスチャーの認識結果など様々な情報を取得可能です。
アプリではデータが適用された3Dモデルの動作確認を行うこともできます。
認識速度がかなり早いので、手のリアクションによってリアルタイムに画面に変化を与えるなどの活用が期待出来ます。
Frontカメラの映像
3Dモデルの表示
Backカメラの映像
設定項目
内部パラメーターなどの詳細表示
Live Mesh Occlusion
Depthデータを利用したオクルージョン表示を行います。
内部でリアルタイムに3DMeshを生成し、それを利用して現実映像と3DCGの自然な合成表示を実現しています。
現状ではDepthのデータが存在しないと再現は難しいデータになるので、AIによる画像編集などより優位性があります。
3Dオブジェクトの奥に手を配置
3Dオブジェクトの手前に手を配置
設定項目
Color Hand Occlusion
オクリュージョンの処理を手の認識部分のみに適用した表示を行います。
表示として少し分かりづらいですが、表示されている3DCGが手が認識されていない場合すべて手前に表示されています。手が認識されると、その場所だけCGが消えて、手が表示されています。
花瓶はオクルージョン表示されない
手の部分のみオクルージョン表示
Frontカメラの映像
ここまででおおよそ半分のシーンについて記載を行いました。
ToFに関連した機能だけではなく、ARに活用が出来そうな機能も多く実装されています。
残りのシーンを記載するとかなり長い記事となってしまうので、別の記事にて後日記載させてもらいます。
個人的にはやはりHandの機能はアウトプットがわかりやすく、応用の検討が一番容易かと思っています。
ここまで記載した内容で気になる機能などがありましたら、まずはStoreからアプリをダウンロードしてご自身の端末で動作を確認いただき、利用ケースが見いだせましたら、是非お問い合わせをいただければと思います。
システムフレンドはxRの技術を利用し、楽しい「体験」を実現するための開発を行っています。
ご相談や事例の紹介など弊社のエンジニアがフレンドリーに対応させていただきます。
お気軽にお問い合わせください。