ブログ@HoloLabInc

株式会社ホロラボのブログです

Matterportを利用して事務所の3Dスキャンを試してみた

Matterport というカメラとサービスを利用して、事務所を3Dスキャンしてみました。

スキャンされた部屋はこちらから見られます。

準備と費用

準備するものは、サポートされているカメラと、スキャンデータ構築のためのサービスです。

カメラはiPhoneやRICOH THETAのような360度カメラでの撮影と、Matterport Pro2やLeica BLK360の奥行きが取れるカメラでの撮影の2つがあります。Matterport Pro2やLeica BLK360での撮影の場合、空間の閲覧のほかに、あとで3Dモデルをダウンロードして利用することが可能です。

3D Cameras & iPhone Capture App | Matterport

サービスの価格については、無償からいくつかのパターンがあります。Matterport Pro2を利用した3Dスキャンを活用する場合は月額$69のProfessional Plans以上が必要です。このほか3Dモデルをダウンロードして利用する場合には、スキャンデータあたり$49のMatterPak が別途必要です。

Matterport Price List – Help Center

撮影

Matterport Pro2で撮影する場合は、このような形で三脚にカメラを設置します。撮影はiOSのアプリから行います。

撮影は2m間隔を推奨しており、約50坪(160m2)ほどの事務所での撮影時間は約1時間でした。

f:id:kaorun55:20200603133847j:plain

MatterPak(追加費用) でのデータダウンロード

MatterPakを利用するとスキャンデータの3Dモデルがダウンロードできるようにます。データ形式はobj(メッシュ)およびxyz(点群)です。

f:id:kaorun55:20200604003528p:plain
obj形式のメッシュデータ

f:id:kaorun55:20200604003937p:plain
xyz形式の点群データ

スキャンデータの活用

部屋の閲覧

空間スキャンした部屋の閲覧に利用できます。不動産の内覧や、博物館のスキャンの利用事例があります。

Vuforia Area Target

Vuforia というソフトウェアを利用してARの空間位置合わせに利用できます。

blog.hololab.co.jp

cluster

cluster というバーチャルイベントサービスに、Matterport で撮影した3Dモデルをアップロードすることで、イベントなどに利用できます。

cluster.mu

スキャンのご依頼

有償にてスキャンのご依頼も承りますので、下記よりお問い合わせください

hololab.co.jp

AIとAzure Kinectでどこでもグリーンバックを実現する「Virtual Stage」を試してみた

コロナ禍でイベントがバーチャル化するなか、いままでのオフラインイベントのようなステージ上での講演のような動画を作成できる「Virtual Stage」が発表されました。なお、リアルタイムではなく録画データを使用した後処理になります。

www.youtube.com

オープンソースなので機材を準備すれば誰でも同じ動画を作成することがきでます。

github.com

実際に作ってみた動画がこちらです

www.youtube.com

撮影環境はこのようになっています。真っ白な壁に向かってAzure Kinectで撮影します。

f:id:kaorun55:20200601001417j:plain

環境

環境はこのようになっています(画像はGitHubより引用) PCにAzure Kinectを2台接続しています(なお、Azure Kinectは1台でも最後まで動作します)

f:id:kaorun55:20200601001525p:plain

この環境で「Speaker.Recorder」を起動すると、Azure Kinectの録画(カラー、深度)と、PowerPointのスライド録画と音声が、それぞれ記録されます。

f:id:kaorun55:20200601001611p:plain

撮影したAzure Kinectの録画データを「Background Matting」というソフトウェアを使用して背景の除去を行います。

f:id:kaorun55:20200601001628p:plain

「Background Matting」は下記をベースに、Azure Kinectの深度データを使って除去の精度を向上させているようです。

grail.cs.washington.edu

撮影手順

撮影の手順は大きく下記のようになります。

流れ

準備

  • ハードウェア
    • NVIDIAのGPUが搭載されたPC
      • Azure Kinect BodyTracking SDKを使用しているためNVIDIAのGPU(CUDA)が必要です
    • Azure Kinect
  • 各種ソフトウェアのインストール
    • 「Speaker.Recorder」のビルドに必要なソフトウェアの設定
    • 「Background Matting」の実行に必要なソフトウェアの設定

撮影

  • 「Speaker.Recorder」で講演を記録します
  • 「Background Matting」で講演者の背景を除去した動画を作成します
  • 背景が除去された動画を使用して、講演動画を作成します

準備

GitHubからプロジェクトをダウンロードします。

github.com

Speaker.Recorder

「Speaker.Recorder.sln」を開き「Speaker.Recorder」をスタートアッププロジェクトに設定してビルドします。

f:id:kaorun55:20200601002716p:plain

ビルド環境は下記になります。

  • Windows 10 64 ビット版 version 1903 以降
  • Windows 10 SDK 10.0.18362
  • Visual Studio 2019 16.5.5

アプリケーションの実行には下記が必要です

Background Matting

Background MattingはPythonのスクリプトです。ここでAzure Kiectの録画データを使って背景除去を行います。

環境構築はちょっと手間がかかります。

  • Windows 10 x64 と NVIDIA のグラフィックカード
  • NVIDIA CUDA 10.0 と NVIDIA CudNN をインストールする(CudNNはcudnn64_7.dllを「BackgroundMatting」フォルダにコピーする)
  • Conda 環境のインストール

    • minicondaをインストールする
    • PowerShellでBackgroundMattingフォルダへ移動し初期化と環境設定を行う

    conda init exit conda env create -f .\environment.yaml

  • OpenCV 4.3.0

    • OpenCV 4.3.0 をダウンロードする
    • 3rdparty/opencv フォルダに展開する(訳注: ほかの環境でも利用する場合はCドライブ直下などでパスを通した方がよい)
    • [ROOT]\3rdparty\opencv\build\x64\vc15\bin にパスを通す
  • FFMPEG 4.2.2
    • ffmpeg 4.2.2 をダウンロードする
    • 3rdparty/ffmpeg-4.2.2 フォルダに展開する(訳注: ほかの環境でも利用する場合はCドライブ直下などでパスを通した方がよい)
    • [ROOT]\3rdparty\ffmpeg-4.2.2\bin にパスを通す
  • Visual C++ Redistributable
  • 推論モデル
    • 推論モデル をダウンロードする
    • 「BackgroundMatting」の Models\ フォルダに配置する
  • Azure Kinect SDK 1.4.0
    • ダウンロード してインストールする
    • 環境変数 PATHC:\Program Files\Azure Kinect SDK v1.4.0\sdk\windows-desktop\amd64\release\bin フォルダを追加する
  • Azure Kinect Body Tracking SDK 1.0.1
    • ダウンロード してインストールする
    • 環境変数 PATHC:\Program Files\Azure Kinect Body Tracking SDK\sdk\windows-desktop\amd64\release\bin フォルダを追加する

撮影

最初に「Speaker.Recorder」で講演の記録を行います。

「Speaker.Recorder」を実行すると、PowerPointの選択(必要な場合)、背景の記録、撮影、後処理の順で進んでいきます。

講演に使用するPowerPointファイルを指定すると、スライドと音声が記録された動画もAzure Kinectの録画ファイルと一緒に生成されます。

f:id:kaorun55:20200601003721p:plain

PowerPointファイルを開いた時にこのようなエラーがよく発生します。アプリを再起動して直ることもありますが、場合によってはスライドを作り直す必要もあるかもしれません。

f:id:kaorun55:20200601003739p:plain

録画が完了するとドキュメントフォルダの「Recorded Sessions」に記録された動画が保存されます。

  • kinect0.mkv: Azure Kinectの録画データ(mkvファイル)
  • presentation.mp4: スライドと音声の動画
  • slides.pptx: 実際のスライドファイル

f:id:kaorun55:20200601004101p:plain

続いて「Background Matting」を実行します。「BackgroundMatting」フォルダの「run.ps1」が実行用のスクリプトです。

これを開くと下記のようになっています。--input および --outputを指定します。 全体を変換する場合 --startおよび--durationは削除します(この時「--fixed_threshold "640," ’」の最後の「’」は削除します)。

conda activate bgmatting
$Env:CUDA_VISIBLE_DEVICES=0
python .\bg_matting.py `
  --name "Speaker" `
  --input D:\Speaker\ `
  --output_dir D:\Speaker\output\ `
  --fixed_threshold "640," `
  --start 34 `
  --duration 234
conda deactivate

スクリプトが正常に終了すると --output で指定したフォルダに背景除去された動画が生成されます。

f:id:kaorun55:20200601005937p:plain

  • kinect0_color_Speaker.mp4: オリジナル動画
  • kinect0_matte_Speaker.mp4: 背景が除去された動画
  • kinect0_out_Speaker.mp4: マスク動画

編集

kinect0_matte_Speaker.mp4を動画編集ツールなどでグリーンバック動画として利用します。

完成した動画がこちら。背景やスライドの重ね合わせについては、いろいろアイデアがでそうですね。

www.youtube.com

参考

元の動画を並べたもの

www.youtube.com

背景除去を行った動画

www.youtube.com

編集後1

www.youtube.com

編集後2

www.youtube.com

書籍「HoloLens 2入門」で紹介しているリンク集

「HoloLens 2 入門」で紹介しているリンクについてまとめています。

その他「HoloLens 2 入門」に関する記事はこちらです。

書籍発売後に更新された情報

ドキュメント

Microsoft HoloLens | Microsoft Docs

HoloLens 2とMR(Mixed Reality)の概要

事例

Dynamics 365

Remote Assist

Guides

Layout

サードパーティー製アプリケーション

開発環境

MRPP

HoloLens ハードウェア

XR10

Mixed Reality とは

HoloLens 2のセットアップ

セットアップ

プロビジョニングファイルを利用したセットアップ

MDM(Mobile Device Management)

HoloLens 2のリセット(OSの再インストール)

Insider Preview版を適用する

Windows Autopilot

HoloLens 2の基本的な使い方

スタートメニュー

HoloLens 2におけるアプリとデバイスの利用

インストール済みアプリを使用する

Microsoft Edge

QRコードの読み取り

WebVR

Microsoft Store

USBやBluetoothデバイスの利用

Dynamics 365アプリの使い方

Dynamics 365アプリ

Dynamics 365 Remote Assist

Dynamics 365 Guides

開発者モードとデバイスポータル

デバイスポータルの概要と利用の開始

Views

Hologram Stability

Performance

Performance Tracing

公開されているアプリパッケージをインストールして使ってみる

最新のMRTK Examples Hub(サンプルアプリ)はStoreで公開されています www.microsoft.com

HoloLens 2の最新OSバージョンのWindows Holographic version 2004がリリースされました

HoloLens 2の最新OSバージョンのWindows Holographic version 2004がリリースされました。

バージョン番号は OSバージョン 2004( ビルド 10.0.19041.1103 ) になっています。

f:id:kaorun55:20200513131157j:plain

Windows Updateにより更新可能です。

リリースノートはこちら

英語

docs.microsoft.com

日本語

docs.microsoft.com

更新された機能は下記になります(DeepLでの翻訳を改定したもの)

全体的に、大規模導入、運用、セキュリティ、安定化のようです。

USB 5G/LTEでUSB接続のドングルがサポートされるとのことで、HoloLens 2内蔵ではないですがHoloLens 2のOSレベルでSIMが使えるようになるのは楽しみですね。

項目 概要
Windows Autopilot Windows Autopilot を使用して、本番用の新しいデバイスを事前に設定しセットアップします。
FIDO2対応 FIDO2セキュリティキーをサポートし、共有デバイスの高速かつ安全な認証を実現します。
プロビジョニングの改善 USBドライブからHoloLensにプロビジョニングパッケージを適用します。
アプリのインストール状況 設定アプリにて、MDM経由でHoloLens 2にプッシュされたアプリのインストール状況を確認します。
構成サービス・プロバイダ(CSP) 管理者の制御機能を強化する新しい構成サービス・プロバイダ(CSP)を追加しました。
USB 5G/LTEサポート 拡張されたUSBイーサネット機能により、5G/LTEドングルのサポートが可能になりました。
ダークアプリモード ダークアプリモードは、OSのダークとライトの両方に対応したアプリで、視聴体験を向上させます。
音声コマンド HoloLensのハンズフリーを制御するための追加のシステム音声コマンドをサポートします。
ハンドトラッキングの改善 ハンドトラッキングの改善により、ボタンと2Dアプリのインタラクションがより正確になりました。
品質改善と修正 プラットフォーム全体での様々なシステムパフォーマンスと信頼性が向上しました。

詳細は下記に記載します(DeepLでの翻訳を改定したもの)

Windows Autopilotのサポート

Windows Autopilot for HoloLens 2 を使用すると、デバイス販売チャネルは、Intune テナントに HoloLens を事前に登録することができます。デバイスが到着すると、テナントの下で共有デバイスとして自己展開する準備が整います。セルフデプロイを利用するには、セットアップの最初の画面で、USB-C to ethernetドングルまたはUSB-C to LTEドングルを使用して、デバイスをネットワークに接続する必要があります。

ユーザーが Autopilot のセルフデプロイのプロセスを開始すると、以下の手順でプロセスが完了します。

  1. デバイスをAzure Active Directory(Azure AD)に参加させます。
  2. Azure ADを使用して、デバイスをMicrosoft Intune(または別のMDMサービス)に登録します。
  3. デバイスをターゲットにしたポリシー、証明書、およびネットワーキングプロファイルをダウンロードします。
  4. デバイスをプロビジョニングします。
  5. ユーザーにサインイン画面を提示します。

詳細はWindows Autopilot for HoloLens 2 評価ガイドを参照してください。

FIDO2 セキュリティキー対応

職場や学校の環境では、多くの人とHoloLensデバイスを共有している方が多いと思います。教室で学生同士でデバイスを共有している場合でも、デバイスロッカーからチェックアウトしている場合でも、長いユーザー名やパスワードを入力することなく、迅速かつ簡単にユーザーを変更できることが重要です。

FIDOを使えば、組織内の誰でも(AADテナント)、ユーザー名やパスワードを入力することなく、シームレスにHoloLensにサインインすることができます。

FIDO2セキュリティキーは、どのようなフォームファクタでも利用可能な、フィッシング不可能な標準ベースのパスワードレス認証方法です。Fast Identity Online(FIDO)は、パスワードレス認証のためのオープンスタンダードです。FIDOは、ユーザーや組織がこの規格を活用して、外部のセキュリティ・キーやデバイスに組み込まれたプラットフォーム・キーを使用して、ユーザー名やパスワードなしでリソースにサインインできるようにします。

パスワードレス・セキュリティ・ドキュメントを読んで、パスワードレス認証を始めましょう。

プロビジョニングパッケージによるMDM登録の改善

プロビジョニングパッケージを使用すると、HoloLensの設定を設定ファイルで行うことができ、HoloLensのアウトオブボックスではなく、設定ファイルを使ってHoloLensの設定を行うことができます。以前は、プロビジョニングパッケージをHoloLensの内部メモリにコピーしなければなりませんでしたが、USBドライブに保存できるようになったので、複数のHoloLensでの再利用が容易になり、より多くの人がHoloLensのプロビジョニングを並行して行うことができます。また、プロビジョニングパッケージは、デバイス管理に登録するための新しいフィールドをサポートしているので、プロビジョニング後の手動設定は不要です。

試してみるには、WindowsストアからWindows Configuration Designerの最新版をPCにダウンロードします。

www.microsoft.com

Provision HoloLens Devicesを選択 > Provision HoloLens 2 devicesを選択。

設定プロファイルを構築し、完了したら、作成したすべてのファイルをUSB-Cストレージデバイスにコピーします。

フラッシュしたばかりのHoloLensに接続し、音量を下げて電源を入れ、プロビジョニングパッケージを適用します。

(ホロラボ追記) 2020/5/17 現在、Windows Configuration Designerのバージョンの変化は見られない(2020.226.0.0)

f:id:kaorun55:20200517143134p:plain

業務系アプリケーションのインストール状況

ビジネスライン(LOB)アプリのためのMDMアプリの展開と管理は、お客様にとって非常に重要です。管理者やユーザーは、監査や診断の目的で、アプリのインストール状況を確認できる必要があります。

このリリースでは、設定 > アカウント > 仕事や学校にアクセス > アカウントをクリック > 情報に詳細を追加しています。

(ホロラボ追記)

f:id:kaorun55:20200517125129j:plain

追加のCSPとポリシー

構成サービスプロバイダ(CSP)は、デバイス上の構成設定の読み取り、設定、変更、削除を行うためのインタフェースです。このリリースでは、より多くのポリシーのサポートを追加し、管理者が展開されたHoloLensデバイスを制御できるようにしています。

HoloLensがサポートするCSPのリストについては、このリンクを参照してください。このリリースの新機能

ポリシー CSP

ポリシー構成サービス プロバイダは、企業が Windows デバイス上でポリシーを構成することを可能にします。このリリースでは、HoloLens 用の新しいポリシーを追加しています。サポートされているポリシーの詳細については、こちらを参照してください。

  • LetAppsAccessCamera_ForceAllowTheseApps
  • LetAppsAccessCamera_ForceDenyTheseApps
  • LetAppsAccessCamera_UserInControlOfTheseApps
  • LetAppsAccessGazeInput
  • LetAppsAccessGazeInput_ForceAllowTheseApps
  • LetAppsAccessGazeInput_ForceDenyTheseApps
  • LetAppsAccessGazeInput_UserInControlOfTheseApps
  • LetAppsAccessMicrophone_ForceAllowTheseApps
  • LetAppsAccessMicrophone_ForceDenyTheseApps
  • LetAppsAccessMicrophone_UserInControlOfTheseApps
  • WiFiの許可

NetworkQoSPolicy CSP

NetworkQoSPolicy 構成サービス プロバイダは、ネットワーク QoS (Quality of Service) ポリシーを作成します。QoS ポリシーは、一致する条件のセットに基づいて、ネットワーク トラフィックに対して一連のアクションを実行します。

このポリシーの詳細については、こちらを参照してください。

5G/LTEテザリングデバイス向けにUSBイーサネットのサポートを拡大

USB経由でHoloLens 2にテザリングした場合に、5G/LTE電話やWiFiホットスポットなどの特定のモバイルブロードバンドデバイスを有効にするためのサポートが追加されました。

これらのデバイスは、ネットワーク設定で別のイーサネット接続として表示されます。外部ドライバを必要とするモバイルブロードバンドデバイスはサポートされていません。これにより、WiFiが利用できず、WiFiテザリングでは十分なパフォーマンスが得られない場合に、高帯域幅の接続が可能になります。サポートされているUSBデバイスの詳細については、こちらをご覧ください。

LTEのUSBドングル

(ホロラボ追記)

手元の環境でもLTEのUSBドングルを使用してHoloLens 2単体での通信が確認できました。

グリーンハウス GREEN HOUSE GH-UDG-MCLTEC-WH [docomo / au両対応LTE USBドングル ホワイト]

f:id:kaorun55:20200515151626j:plain:w350f:id:kaorun55:20200515142101j:plain:w410

ハンドトラッキングの改善

このリリースでは、ハンドトラッキングがいくつかの改善を受けました。

ポインティングポーズの安定性。人差し指が手のひらで塞がれた状態になったときに、システムが人差し指を曲げることに抵抗するようになりました。これにより、ボタンを押すとき、タイピングするとき、コンテンツをスクロールするときなどの精度が向上します。

偶発的なAirTapsを減少させました。AirTapジェスチャーの検出機能が向上しました。手を横に落とすなど、いくつかの一般的なケースでの偶発的なアクティベーションが少なくなりました。 ユーザースイッチの信頼性。デバイスを前後に共有する際に、手のサイズを更新する際の信頼性が向上しました。

手を盗むことを減らしました。センサーから見える手が2つ以上ある場合の取り扱いを改善しました。複数の人が近くで作業をしている場合、追跡された手がユーザーからシーン内の他の人の手に飛び移る可能性が格段に低くなりました。

システムの信頼性。デバイスに高負荷がかかった場合、ハンドトラッキングが一定期間動作しなくなる問題を修正しました。

ダークモード

多くのWindowsアプリがダークモードとライトモードの両方をサポートするようになり、HoloLens 2の顧客は両方をサポートするアプリのデフォルトモードを選択できるようになりました。アップデートすると、アプリのデフォルトモードは「ダーク」になりますが、簡単に変更することができます。設定>システム>色に移動して "デフォルトのアプリモードを選択 "を見つけてください。ここでは、ダークモードをサポートしているインボックスアプリをいくつか紹介します。

  • 設定
  • Microsoft Store
  • メール
  • カレンダー
  • エクスプローラ
  • フィードバックHub
  • OneDrive
  • 写真
  • 3Dビューア
  • 映画・テレビ

システム音声コマンド

デバイス上の任意のアプリを使用している間に、あなたの声でコマンドにすばやくアクセスして使用することができるようになりました。異なる言語でシステムを実行している場合は、その言語で適切なコマンドをお試しください。

コマンドの詳細と使用方法については、こちらのドキュメントを参照してください。

(ホロラボ追記) 追加された音声コマンドは下記になります。

音声コマンド 目的
デバイスを再起動 デバイスを再起動するかどうかを確認するダイアログが表示されます。 「はい」と言って再起動します。
デバイスをシャットダウン デバイスの電源を切るかどうかを確認するダイアログが表示されます。 「はい」と言って確認します。
「明るさを上げる」/「明るさを下げる」 ディスプレイの明るさを 10% 上げるまたは下げます。
「音量を上げる」/「音量を下げる」 音量を 10% 上げるまたは下げます。
「自分の IP」 ローカル ネットワーク上のデバイスの現在の IP アドレスを表示するダイアログが表示されます。
「写真を撮る」 実際に見ているものの Mixed Reality 写真を撮ります。
「ビデオを撮る」 Mixed Reality ビデオの録画を開始します。
「ビデオの停止」 現在、Mixed Reality ビデオを録画している場合は停止します。

コルタナのアップデート

アップデートされたアプリは、Microsoft 365と統合され、現在は英語(米国)のみで、デバイス全体でより多くの仕事をこなすことができるようになります。

HoloLens 2では、Cortanaは、音量の調整やデバイスの再起動などの特定のデバイス固有のコマンドをサポートしなくなりますが、これは前述の新しいシステム音声コマンドでサポートされるようになりました。

新しいCortanaアプリとその方向性についての詳細は、こちらのブログをご覧ください。

注意事項

現在調査中の問題があり、「Hey Cortana」キーワードのアクティベーションを使用するためにデバイスを起動した後にアプリを起動する必要があります。また、18362ビルドからアップデートした場合、スタートに旧バージョンのCortanaアプリのアプリタイルが表示され、機能しなくなる可能性があります。

(ホロラボ追記) 2020/05/18 現在、新しいCortanaアプリが日本語をサポートしません。基本的なCortanaコマンドそのものはシステム音声コマンドに移行されていました。

品質改善と修正

アップデートでの改善点や修正点を紹介

  • アップデートでは、アクティブディスプレイキャリブレーションシステムが導入されています。これにより、ホログラムの安定性とアライメントが改善され、頭を左右に動かしたときにホログラムが - 所定の位置に留まるようになります。
  • HoloLensへのWi-Fiストリーミングが定期的に中断されるバグを修正しました。アプリケーションが低遅延ストリーミングを必要としていることを示している場合は、この関数を呼び出すことでこの - 修正を行うことができます。
  • リサーチモードでのストリーミング中にデバイスがハングアップすることがある問題を修正しました。
  • セッション再開時にサインイン画面に正しいユーザーが表示されない場合がある不具合を修正しました。
  • 設定からMDMログをエクスポートできない不具合を修正しました。
  • アウトオブボックスセットアップ直後のアイトラッキングの精度が仕様より低くなることがある問題を修正しました。
  • 特定の条件下でアイトラッキングサブシステムが初期化やキャリブレーションに失敗することがある問題を修正しました。
  • 既にキャリブレーションされているユーザーに対して、アイトラッキングのキャリブレーションを要求することがある問題を修正しました。
  • アイキャリブレーション中にドライバーがクラッシュする問題を修正しました。
  • 電源ボタンを繰り返し押すと、60秒間のシステムタイムアウトとシェルクラッシュが発生することがある問題を修正しました。
  • デプスバッファの安定性が向上しました。
  • フィードバックハブに「共有」ボタンを追加し、フィードバックをより簡単に共有できるようになりました。
  • RoboRaidが正しくインストールされないバグを修正しました。