場所を特定できるカメラの概要

HoloLens には、デバイスの前面に world-facing カメラが搭載されており、ユーザーが見るものをアプリに映すことができます。 開発者は、スマートフォン、ポータブル、デスクトップのカラー カメラの場合と同じように、カメラのアクセスと制御を行うことができます。 モバイルやデスクトップで動作するユニバーサルな Windows メディア キャプチャや Windows メディア ファンデーション API は、HoloLens でも同様に動作します。 Unity では、これらの Windows API がラップされており、HoloLens のカメラの使用機能が抽象化されます。 特徴的なタスクとしては、通常の写真やビデオの撮影 (ホログラムの有無にかかわらず)、シーンでのカメラの位置および視点の特定などが挙げられます。

デバイス カメラの情報

HoloLens (第 1 世代)

  • オート ホワイト バランス、自動露出、完全な画像処理パイプラインを備えた、固定フォーカスの写真/ビデオ (PV) カメラ。

  • カメラが作動しているときに点灯する、world facing 白色プライバシー LED。

  • カメラでは、30、24、20、15、5 fps での以下のモードがサポートされています (すべてのモードで縦横比は 16:9 です)。

    ビデオ プレビュー 静止画 水平画角 (H-FOV) 推奨される使用法
    1,280 x 720 1,280 x 720 1,280 x 720 45° (ビデオ手ブレ補正を使用した既定のモード)
    該当なし 該当なし 2048 x 1152 67° 高解像度の静止画像
    1408 x 792 1408 x 792 1408 x 792 48° ビデオ手ブレ補正前のオーバースキャン (パディング) 解像度
    1344 x 756 1344 x 756 1344 x 756 67° オーバースキャンでの大きな視野角のビデオ モード
    896 x 504 896 x 504 896 x 504 48° 画像処理タスクのための低電力/低解像度モード

HoloLens 2

  • オート ホワイト バランス、自動露出、完全な画像処理パイプラインを備えた、オートフォーカスの写真/ビデオ (PV) カメラ。 自動フォーカス システムでは、オブジェクトの距離を 30 cm から無限大に調整できます。 HoloLens 2 PV カメラ レンズの有効焦点距離は、4.87 mm +/- 5% です。 製造許容範囲による 5% の変動に加えて、焦点距離は自動フォーカス システムによって動的に変化します。 AF の移動 (ストローク) は最大 0.2 mm です。

  • カメラが作動しているときに点灯する、world facing 白色プライバシー LED。

  • HoloLens 2 は、さまざまなカメラ プロファイルに対応しています。 カメラ機能を検出および選択する方法を確認してください。

  • カメラでは、次のプロファイルと解像度がサポートされています (すべてのビデオ モードで縦横比は 16:9 です)。

    プロファイル ビデオ プレビュー 静止画 フレーム レート 水平画角 (H-FOV) 推奨される使用法
    レガシ、0 BalancedVideoAndPhoto、100 2272 x 1278 2272 x 1278 15.30 64.69 高画質のビデオ記録
    レガシ、0 BalancedVideoAndPhoto、100 896 x 504 896 x 504 15.30 64.69 高画質な写真キャプチャのためのプレビュー ストリーム
    レガシ、0 BalancedVideoAndPhoto、100 3904 x 2196 64.69 高画質な写真キャプチャ
    BalancedVideoAndPhoto、120 1952 x 1100 1952 x 1100 1952 x 1100 15.30 64.69 長時間のシナリオ
    BalancedVideoAndPhoto、120 1504 x 846 1504 x 846 15.30 64.69 長時間のシナリオ
    Videoconferencing、100 1952 x 1100 1952 x 1100 1952 x 1100 15、30、60 64.69 ビデオ会議、長期間のシナリオ
    Videoconferencing、100 1504 x 846 1504 x 846 5、15、30、60 64.69 ビデオ会議、長期間のシナリオ
    Videoconferencing、100 BalancedVideoAndPhoto、120 1,920 x 1,080 1,920 x 1,080 1,920 x 1,080 15、30 64.69 ビデオ会議、長期間のシナリオ
    Videoconferencing、100 BalancedVideoAndPhoto、120 1,280 x 720 1,280 x 720 1,280 x 720 15、30 64.69 ビデオ会議、長期間のシナリオ
    Videoconferencing、100 BalancedVideoAndPhoto、120 1128 x 636 15、30 64.69 ビデオ会議、長期間のシナリオ
    Videoconferencing、100 BalancedVideoAndPhoto、120 960 x 540 15、30 64.69 ビデオ会議、長期間のシナリオ
    Videoconferencing、100 BalancedVideoAndPhoto、120 760 x 428 15、30 64.69 ビデオ会議、長期間のシナリオ
    Videoconferencing、100 BalancedVideoAndPhoto、120 640 x 360 15、30 64.69 ビデオ会議、長期間のシナリオ
    Videoconferencing、100 BalancedVideoAndPhoto、120 500 x 282 15、30 64.69 ビデオ会議、長期間のシナリオ
    Videoconferencing、100 BalancedVideoAndPhoto、120 424 x 240 15、30 64.69 ビデオ会議、長期間のシナリオ

Note

顧客は、Mixed Reality キャプチャを活用して、ホログラムを含むアプリのビデオや写真を撮影し、ビデオ手ブレ補正を使用することができます。

ユーザーのキャプチャ内容を少しでも良く見せたい場合は、考慮すべきことがいくつかあります。 また、アプリ内から直接、Mixed Reality キャプチャを有効にしたり、カスタマイズしたりすることもできます。 開発者向け Mixed Reality キャプチャに関する記事を参照してください。

デバイス カメラを世界に配置する

HoloLens で写真やビデオを撮影すると、キャプチャされたフレームには、その世界でのカメラの位置やカメラのレンズ モデルが表示されます。 この情報により、アプリケーションで実世界でのカメラの位置を推定し、拡張イメージングのシナリオに役立てることができます。 開発者は、好みの画像処理またはカスタムのコンピューター ビジョン ライブラリを使用して、独自のシナリオをクリエイティブに展開できます。

HoloLens の別のドキュメントにある "カメラ" は、"仮想ゲーム カメラ" (アプリがレンダリングする視錐台) を指している場合があります。 このページでは、特に説明がない限り、"カメラ" は実世界の RGB カラー カメラを指します。

歪みによる誤差

HoloLens 2 では、動画や静止画のストリームがシステムの画像処理パイプラインで歪みなく処理された後、フレームがアプリケーションで利用できるようになります。 プレビュー ストリームには、元の歪んだフレームが含まれています。 CameraIntrinsics でのみ可能なため、アプリケーションでは、画像フレームが完璧なピンホール カメラを表していると想定する必要があります。

HoloLens (第 1 世代) では、フレーム メタデータに CameraIntrinsics を使用して画像プロセッサによる歪み補正が行われても、最大 10 ピクセルの誤差が残ることがあります。 多くの場合、このエラーは問題ではありません。 ただし、たとえば、ホログラムを実世界のポスターやマーカーに合わせた時に、< 10 ピクセル (2 m 先にホログラムを配置する場合、約 11 mm) のずれが生じた場合は、この歪みによる誤差が原因である可能性があります。

場所を特定できるカメラの使用例

キャプチャされた世界の写真またはビデオを表示する

デバイス カメラ フレームには、「カメラから世界」への変換が備わっており、これを使用して、画像をキャプチャした時のデバイスの位置を正確に示すことができます。 たとえば、この位置に小さなホログラフィック アイコンを配置したり (CameraToWorld.MultiplyPoint(Vector3.zero))、カメラが向いていた方向に小さな矢印を描画することもできます (CameraToWorld.MultiplyVector(Vector3.forward))。

タグ/パターン/ポスター/オブジェクトの追跡

多くの Mixed Reality アプリケーションでは、認識可能な画像または視覚パターンを使用して、空間内に追跡可能な点を作成します。 アプリケーションは、その点を基準にオブジェクトをレンダリングしたり、既知の場所を作成したりできます。 HoloLens の一般的な使用例は、基準点でタグ付けされた実世界のオブジェクトを見つけることです。 たとえば、Wi-Fi 経由で HoloLens と通信するように設定されたタブレットで、このようなことが起こります。

視覚パターンを認識し、アプリケーションの世界空間にオブジェクトを配置するためには、次のとおりいくつか必要なことがあります。

  1. QR コード、AR タグ、顔検索ツール、円トラッカー、OCR などの画像パターン認識ツールキット。
  2. 実行時に画像フレームを収集し、認識レイヤーに渡す。
  3. 画像の位置を、世界の位置またはふさわしい世界の光線に投影する。
  4. これらの世界の位置に仮想モデルを配置する。

以下は、重要な画像処理のリンクです。

対話型アプリケーションのフレームレートを維持することは、特に長時間動作する画像認識アルゴリズムを処理する場合には非常に重要です。 このため、一般的に次のパターンを使用します。

  1. メイン スレッド: カメラ オブジェクトを管理します。
  2. メイン スレッド: 新しいフレームを要求します (非同期)。
  3. メイン スレッド: 新しいフレームを追跡スレッドに渡します。
  4. 追跡スレッド: イメージを処理して主要な点を収集します。
  5. メイン スレッド: 検出された主要な点と一致するように仮想モデルを移動します。
  6. メイン スレッド: 手順 2 から繰り返します。

一部の画像マーカー システムでは、実行可能な位置の光線と同じ単一ピクセルの位置しか提供されない場合があります (他のユーザーは完全な変換を提供します。この場合、このセクションは必要ありません)。1 つの 3D 位置に到達するには、複数のレイを計算し、近似積集合によって最終的な結果を見つけることができます。 この結果を得るには、次のことを実行する必要があります。

  1. 複数のカメラ画像を収集するループを作成する。
  2. 関連付けられている特徴点とそれらの世界の光線を見つける。

追跡されたタグの位置が 2 つ以上あれば、ユーザーの現在のシナリオに合わせてモデル化されたシーンを配置することができます。 重力を想定できない場合は、タグの位置が 3 つ必要です。 多くの場合、配色が用いられ、白い球体はリアルタイムに追跡されたタグの位置を表し、青い球体はモデル化されたタグの位置を表します。 これにより、ユーザーは配置の質を視覚的に測定できます。 すべてのアプリケーションで次のものがセットアップされることを想定しています。

  • 2 つ以上のモデル化されたタグの位置。
  • 1 つの "調整空間"。シーン内のものをタグの親とする。
  • カメラ機能識別子。
  • モデル化されたタグをリアルタイムのタグに合わせるために、調整空間を移動させる動作 (他の接続はマーカーに対する相対位置のため、モデル化されたマーカー自体ではなく、親空間を移動させるように注意します)。

LED や他の認識ライブラリを使用して、タグ付けされた静止または移動している実世界のオブジェクト/顔を追跡または識別する

例 :

  • LED 搭載の産業用ロボット (または動きが遅いオブジェクトの QR コード)。
  • 部屋にあるオブジェクトを識別して認識する。
  • たとえばホログラフィックの連絡先カードを顔にかざすなどして、部屋にいる人を識別して認識する。

関連項目