本文へスキップ
バージョン: 3.0

index


title: class ARSemanticSegmentationManager toc_max_heading_level: 4


class ARSemanticSegmentationManager

(Niantic.Lightship.AR.Semantics.ARSemanticSegmentationManager)

概要

ARSemanticSegmentationManager XRSemanticsSubsystemを制御し、Updateループごとにセマンティクステクスチャを更新する。 テクスチャとXRCpuImagesは、個々のセマンティック・セグメンテーション チャンネルの信頼度マップと、ピクセルごとに選択された信頼度の閾値値を超えたセマンティック・チャンネルを示すビット配列に利用できます。 画面上にセマンティックセグメンテーションテクスチャがオーバーレイ表示されている場合は、画面上の任意の位置でセマンティックプロパティを読み取るユーティリティが表示されます。

    class ARSemanticSegmentationManager:SubsystemLifecycleManager< XRSemanticsSubsystem, XRSemanticsSubsystemDescriptor, XRSemanticsSubsystem.Provider > {
public
// fields

IReadOnlyList<string> ChannelNames => _readOnlyChannelNames;
IReadOnlyDictionary<string, int> ChannelIndices => _readOnlyChannelNamesToIndices;

// properties

uint? TargetFrameRate;
bool IsMetadataAvailable;
Action<ARSemanticSegmentationModelEventArgs> MetadataInitialized;

// events

event FrameReceived();

// methods

void Update();

Texture2D GetSemanticChannelTexture(
string channelName,
out Matrix4x4 samplerMatrix,
XRCameraParams? cameraParams = null
);

Texture2D GetPackedSemanticsChannelsTexture(
out Matrix4x4 samplerMatrix,
XRCameraParams? cameraParams = null
);

bool TryAcquireSemanticChannelCpuImage(
string channel,
out XRCpuImage cpuImage,
out Matrix4x4 samplerMatrix,
XRCameraParams? cameraParams = null
);

bool TryAcquirePackedSemanticChannelsCpuImage(
out XRCpuImage cpuImage,
out Matrix4x4 samplerMatrix,
XRCameraParams? cameraParams = null
);

int GetChannelIndex(string channelName);

uint GetSemantics(
int viewportX,
int viewportY,
XRCameraParams? cameraParams = null
);

List<int> GetChannelIndicesAt(
int viewportX,
int viewportY,
XRCameraParams? cameraParams = null
);

List<string> GetChannelNamesAt(
int viewportX,
int viewportY,
XRCameraParams? cameraParams = null
);

bool DoesChannelExistAt(
int viewportX,
int viewportY,
string channelName,
XRCameraParams? cameraParams = null
);

bool DoesChannelExistAt(
int viewportX,
int viewportY,
int channelIndex,
XRCameraParams? cameraParams = null
);

bool TrySetChannelConfidenceThresholds(Dictionary<string, float> channelConfidenceThresholds);

protected
// メソッド

override void OnBeforeStart();
override void OnDisable();
}

詳細なドキュメント

ARSemanticSegmentationManager XRSemanticsSubsystemを制御し、Updateループごとにセマンティクステクスチャを更新する。 テクスチャとXRCpuImagesは、個々のセマンティック・セグメンテーション チャンネルの信頼度マップと、ピクセルごとに選択された信頼度の閾値を超えたセマンティック・チャンネルを示すビット配列に利用できます。 画面上にセマンティックセグメンテーションテクスチャがオーバーレイ表示されている場合は、画面上の任意の位置でセマンティックプロパティを読み取るユーティリティが表示されます。

フィールド

チャンネル名

IReadOnlyList<string> ChannelNames => _readOnlyChannelNames

現在のモデルで検出可能なセマンティックチャンネルの名前。

チャンネル指数

IReadOnlyDictionary<string, int> ChannelIndices => _readOnlyChannelNamesToIndices

現在のモデルが検出できる意味チャンネルのインデックス。

プロパティ

ターゲットフレームレート

uint??? TargetFrameRate

セマンティック・セグメンテーション推論が目標とするフレームレート。

IsMetadataAvailable

bool IsMetadataAvailable

基礎となるサブシステムの初期化が終了していれば真。

メタデータ初期化

アクション<ARSemanticSegmentationModelEventArgs> MetadataInitialized

基礎となるサブシステムの初期化が終了したときに発生するイベント。

メソッド

OnBeforeStart

override void OnBeforeStart()

サブシステムの起動前(ただし作成後)に実行されるコールバック。

OnDisable

override void OnDisable()

マネージャが無効化されている場合にに実行されるコールバック。

Update

void Update()

マネージャーの更新中に実行されるコールバック。

GetSemanticChannelテクスチャ

Texture2D GetSemanticChannelTexture(
string channelName,
out Matrix4x4 samplerMatrix,
XRCameraParams? cameraParams = null
)

指定されたセマンティックチャンネルのセマンティックセグメンテーションテクスチャーを返します。

    パラメーター

    channelName - 取得するセマンティックチャンネル

    samplerMatrix - 最新のポーズに従ってビューポートから画像座標に変換する行列。

    cameraParams - サンプリングするビューポートのパラメータ。 NULLの場合、デフォルトは現在の画面寸法。

    次の値が返ります。

    ある場合は、指定したセマンティックチャンネルのテクスチャ、 それ以外はNULL。

GetPackedSemanticsChannelsTexture

Texture2D GetPackedSemanticsChannelsTexture(
out Matrix4x4 samplerMatrix,
XRCameraParams? cameraParams = null
)

各ピクセルが異なる分類に対応するビットを持つ整数として解釈できる意味データのテクスチャを取得する。

    パラメーター

    samplerMatrix - 最新のポーズに従ってビューポートから画像座標に変換する行列。

    cameraParams - サンプリングするビューポートのパラメータ。 NULLの場合、デフォルトは現在の画面寸法。

    次の値が返ります。

    もしあれば、マネージャーによって所有される、パックされたセマンティクス・テクスチャー。 それ以外はNULL。

TryAcquireSemanticChannelCpuImage

bool TryAcquireSemanticChannelCpuImage(
string channel,
out XRCpuImage cpuImage,
out Matrix4x4 samplerMatrix,
XRCameraParams? cameraParams = null
)

指定されたセマンティッククラスの最新のセマンティックセグメンテーション XRCpuImage の取得を試みます。 これにより、生のピクセルデータに直接アクセスできるようになります。

XRCpuImageは、リソースリークを避けるために破棄しなければなりません。

    パラメーター

    channel - 取得するセマンティックチャンネル。

    cpuImage - このメソッドが true を返す場合に取得した XRCpuImage。 XRCpuImageは呼び出し元が処分しなければなりません。

    samplerMatrix - 最新のポーズに従ってビューポートから画像座標に変換する行列。

    cameraParams - サンプリングするビューポートのパラメータ。 NULLの場合、デフォルトは現在の画面寸法。

    次の値が返ります。

    CPU画像を取得した場合は真。 False:それ以外の場合

TryAcquirePackedSemanticChannelsCpuImage

bool TryAcquirePackedSemanticChannelsCpuImage(
out XRCpuImage cpuImage,
out Matrix4x4 samplerMatrix,
XRCameraParams? cameraParams = null
)

最新のパックされたセマンティックチャンネルXRCpuImageの取得を試みる。 XRCpuImageの各要素は、その画素について、どの意味チャンネルがそれぞれの検出信頼度閾値を超えたかを示すビットフィールドである。 (GetChannelIndexを参照)

ユーティリティ GetChannelNamesAt は、ビューポートの位置でセマンティックチャンネル名を読み取るために使用できます。

    パラメーター

    cpuImage - このメソッドが trueを返す場合に取得した XRCpuImage。 CPUイメージは呼び出し元が処分しなければならない。

    samplerMatrix - 最新のポーズに従ってビューポートから画像座標に変換する行列。

    cameraParams - サンプリングするビューポートのパラメータ。 NULLの場合、デフォルトは現在の画面寸法。

    次の値が返ります。

    CPU画像を取得した場合は真。 False:それ以外の場合

GetChannelIndex

int GetChannelIndex(string channelName)

指定したセマンティッククラスのチャンネルインデックスを取得します。 これは、インデックス0を最上位ビットとして、パックされたセマンティックバッファのビット位置に相当します。

    パラメーター

    channelName - セマンティッククラスの名前

    次の値が返ります。

    指定されたセマンティッククラスのインデックス、またはチャンネルが存在しない場合は-1。

GetSemantics

uint GetSemantics(
int viewportX,
int viewportY,
XRCameraParams? cameraParams = null
)

画面上の指定されたピクセルのセマンティクスを返します。

    パラメーター

    viewportX - ビューポート空間の水平座標。

    viewportY - ビューポート空間における垂直座標。

    cameraParams - サンプリングするビューポートのパラメータ。 NULLの場合、デフォルトは現在の画面寸法。

    次の値が返ります。

    32ビットの符号なし整数で、各ビットはクラスのバイナリインジケータであり、最上位ビットはChannelNamesリストの0番目の要素であるチャネルに対応する。

GetChannelIndicesAt

リスト<int> GetChannelIndicesAt(
int viewportX,
int viewportY,
XRCameraParams? cameraParams = null
)

画面上の指定したピクセルに存在するチャンネルインデックスの配列を返す。

このクエリでは、ガベージを割り当てます。

    パラメーター

    viewportX - ビューポート空間の水平座標。

    viewportY - ビューポート空間における垂直座標。

    cameraParams - サンプリングするビューポートのパラメータ。 NULLの場合、デフォルトは現在の画面寸法。

    次の値が返ります。

    ピクセルに存在するチャンネルインデックスの配列

GetChannelNamesAt

List<string> GetChannelNamesAt(
int viewportX,
int viewportY,
XRCameraParams? cameraParams = null
)

画面上の指定したピクセルに存在するチャンネル名の配列を返す。

このクエリーはガベージを割り当てます。

    パラメータ

    viewportX - ビューポート空間の水平座標。

    viewportY - ビューポート空間における垂直座標。

    cameraParams - サンプリングするビューポートのパラメータ。 NULLの場合、デフォルトは現在の画面寸法。

    リターン:

    ピクセルに存在するチャンネル名の配列。

DoesChannelExistAt

bool DoesChannelExistAt(
int viewportX,
int viewportY,
string channelName,
XRCameraParams? cameraParams = null
)

このチャンネルに設定された信頼しきい値に基づいて、画面空間内の指定された位置で意味クラスが検出されるかどうかをチェックする。 (TrySetChannelConfidenceThresholds を参照)。

    パラメータ

    viewportX - ビューポート空間の水平座標。

    viewportY - ビューポート空間における垂直座標。

    channelName - 検索するセマンティッククラス

    cameraParams - サンプリングするビューポートのパラメータ。 NULLの場合、デフォルトは現在の画面寸法。

    次の値が返ります。

    True:指定した座標にセマンティッククラスが存在する場合

DoesChannelExistAt

bool DoesChannelExistAt(
int viewportX,
int viewportY,
int channelIndex,
XRCameraParams? cameraParams = null
)

このチャンネルに設定された信頼しきい値に基づいて、画面空間内の指定された位置で意味クラスが検出されるかどうかをチェックする。 (TrySetChannelConfidenceThresholds を参照)。

    パラメータ

    viewportX - ビューポート空間の水平座標。

    viewportY - ビューポート空間における垂直座標。

    channelIndex - ChannelNames リストで探すセマンティック・クラスのインデックス。

    cameraParams - サンプリングするビューポートのパラメータ。 NULLの場合、デフォルトは現在の画面寸法。

    次の値が返ります。

    True:指定した座標にセマンティッククラスが存在する場合

TrySetChannelConfidenceThresholds

bool TrySetChannelConfidenceThresholds(Dictionary<string, float> channelConfidenceThresholds)

パックされたセマンティックチャンネルバッファに、指定したセマンティックチャンネルを含めるための信頼度しきい値を設定します。

各意味チャネルは、 AR セッション中にこの関数によって新しい値が設定されるまで、モデルによって選択されたデフォルトのしきい値を使用する。

    パラメーター

    channelConfidenceThresholds - 必要なセマンティクスチャンネルの名前を指定するキーと、0から1までの値(両端の値を含む)で構成されるディクショナリ。その値を超えるしきい値を設定すると、指定されたチャンネルは、パックされたセマンティックバッファに含められます。 キーは、TryGetChannelNamesが返すリストに存在するセマンティックチャネル名でなければなりません。

    System.NotSupportedException - 信頼度のしきい値の設定が実装でサポートされていない場合はスローされます。

    次の値が返ります。

    True - しきい値が設定された場合 False - それ以外