DML_ROI_ALIGN_OPERATOR_DESC-Struktur (directml.h)
Führt einen ROI-Ausrichtungsvorgang aus, wie im Dokument Mask R-CNN beschrieben. Zusammengefasst extrahiert der Vorgang Feldkulturen aus dem Eingabeimage-Tensor und ändert sie in eine allgemeine Ausgabegröße, die von den letzten 2 Dimensionen von OutputTensor mit dem angegebenen InterpolationMode angegeben wird.
Syntax
struct DML_ROI_ALIGN_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *ROITensor;
const DML_TENSOR_DESC *BatchIndicesTensor;
const DML_TENSOR_DESC *OutputTensor;
DML_REDUCE_FUNCTION ReductionFunction;
DML_INTERPOLATION_MODE InterpolationMode;
FLOAT SpatialScaleX;
FLOAT SpatialScaleY;
FLOAT OutOfBoundsInputValue;
UINT MinimumSamplesPerOutput;
UINT MaximumSamplesPerOutput;
};
Member
InputTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, der die Eingabedaten mit Dimensionen { BatchCount, ChannelCount, InputHeight, InputWidth }
enthält.
ROITensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, der die Roi-Daten (Regions of Interest) enthält. Die zulässigen Dimensionen von ROITensor
sind { NumROIs, 4 }
, { 1, NumROIs, 4 }
oder { 1, 1, NumROIs, 4 }
. Für jeden ROI sind die Werte die Koordinaten der oberen linken und unteren rechten Ecken in der Reihenfolge [x1, y1, x2, y2]
.
BatchIndicesTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, der die Batchindizes enthält, aus denen die ROIs extrahiert werden sollen. Die zulässigen Dimensionen von BatchIndicesTensor
sind { NumROIs }
, { 1, NumROIs }
, { 1, 1, NumROIs }
oder { 1, 1, 1, NumROIs }
. Jeder Wert ist der Index eines Batches von InputTensor. Das Verhalten ist nicht definiert, wenn sich die Werte nicht im Bereich [0, BatchCount) befinden.
OutputTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, der die Ausgabedaten enthält. Die erwarteten Dimensionen von OutputTensor sind { NumROIs, ChannelCount, OutputHeight, OutputWidth }
.
ReductionFunction
Typ: DML_REDUCE_FUNCTION
Die Reduzierungsfunktion, die beim Reduzieren über alle Eingabebeispiele hinweg verwendet werden soll, die zu einem Ausgabeelement beitragen (DML_REDUCE_FUNCTION_AVERAGE oder DML_REDUCE_FUNCTION_MAX). Die Anzahl der Eingabebeispiele, über die reduziert werden soll, wird durch MinimumSamplesPerOutput und MaximumSamplesPerOutput begrenzt.
InterpolationMode
Der Interpolationsmodus, der beim Ändern der Größe der Regionen verwendet werden soll.
- DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. Verwendet den Nearest Neighbor-Algorithmus , der das Eingabeelement auswäht, das dem entsprechenden Pixelzentrum für jedes Ausgabeelement am nächsten liegt.
- DML_INTERPOLATION_MODE_LINEAR. Verwendet den bilinearen Algorithmus, der das Ausgabeelement berechnet, indem er den gewichteten Durchschnitt der 2 nächstgelegenen benachbarten Eingabeelemente pro Dimension ausführt. Da nur 2 Dimensionen geändert werden, wird der gewichtete Mittelwert für insgesamt 4 Eingabeelemente für jedes Ausgabeelement berechnet.
SpatialScaleX
Typ: FLOAT
Die X-Komponente (oder Breite) des Skalierungsfaktors, um die ROITensor-Koordinaten mit zu multiplizieren, um sie proportional zu InputHeight und InputWidth zu machen. Wenn ROITensor beispielsweise normalisierte Koordinaten (Werte im Bereich [0..1]) enthält, hat SpatialScaleX in der Regel den gleichen Wert wie InputWidth.
SpatialScaleY
Typ: FLOAT
Die Y-Komponente (oder Höhe) des Skalierungsfaktors, um die ROITensor-Koordinaten mit zu multiplizieren, um sie proportional zu InputHeight und InputWidth zu machen. Wenn ROITensor beispielsweise normalisierte Koordinaten (Werte im Bereich [0..1]) enthält, hat SpatialScaleY in der Regel den gleichen Wert wie InputHeight.
OutOfBoundsInputValue
Typ: FLOAT
Der Wert, der aus InputTensor gelesen werden soll, wenn sich die ROIs außerhalb der Grenzen von InputTensor befinden. Dies kann vorkommen, wenn die werte, die nach der Skalierung von ROITensor von SpatialScaleX und SpatialScaleY abgerufen wurden, größer als InputWidth und InputHeight sind.
MinimumSamplesPerOutput
Typ: UINT
Die Mindestanzahl von Eingabebeispielen, die für jedes Ausgabeelement verwendet werden sollen. Der Operator berechnet die Anzahl der Eingabebeispiele, indem er ausführt ScaledCropSize / OutputSize
, und klemmt sie dann an MinimumSamplesPerOutput und MaximumSamplesPerOutput.
MaximumSamplesPerOutput
Typ: UINT
Die maximale Anzahl von Eingabebeispielen, die für jedes Ausgabeelement verwendet werden sollen. Der Operator berechnet die Anzahl der Eingabebeispiele, indem er ausführt ScaledCropSize / OutputSize
, und klemmt sie dann an MinimumSamplesPerOutput und MaximumSamplesPerOutput.
Verfügbarkeit
Dieser Operator wurde in DML_FEATURE_LEVEL_3_0
eingeführt.
Tensoreinschränkungen
InputTensor, OutputTensor und ROITensor müssen denselben DataType aufweisen.
Tensorunterstützung
DML_FEATURE_LEVEL_5_0 und höher
Tensor | Typ | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|
InputTensor | Eingabe | 4 | FLOAT32, FLOAT16 |
ROITensor | Eingabe | 2 bis 4 | FLOAT32, FLOAT16 |
BatchIndicesTensor | Eingabe | 1 bis 4 | UINT64, UINT32 |
OutputTensor | Ausgabe | 4 | FLOAT32, FLOAT16 |
DML_FEATURE_LEVEL_3_0 und höher
Tensor | Typ | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|
InputTensor | Eingabe | 4 | FLOAT32, FLOAT16 |
ROITensor | Eingabe | 2 bis 4 | FLOAT32, FLOAT16 |
BatchIndicesTensor | Eingabe | 1 bis 4 | UINT32 |
OutputTensor | Ausgabe | 4 | FLOAT32, FLOAT16 |
Anforderungen
Unterstützte Mindestversion (Client) | Windows 10 Build 20348 |
Unterstützte Mindestversion (Server) | Windows 10 Build 20348 |
Kopfzeile | directml.h |