Partager via


structure DML_ROI_ALIGN_OPERATOR_DESC (directml.h)

Effectue une opération d’alignement du retour sur investissement, comme décrit dans le document Mask R-CNN . En résumé, l’opération extrait les cultures du tenseur d’image d’entrée et les redimensionne à une taille de sortie commune spécifiée par les 2 dernières dimensions de OutputTensor à l’aide de l’InterpolationMode spécifié.

Syntaxe

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;
};

Membres

InputTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant les données d’entrée avec des dimensions { BatchCount, ChannelCount, InputHeight, InputWidth }.

ROITensor

Type : const DML_TENSOR_DESC*

Tenseur contenant les données de régions d’intérêt (ROI). Les dimensions autorisées de ROITensor sont { NumROIs, 4 }, { 1, NumROIs, 4 }ou { 1, 1, NumROIs, 4 }. Pour chaque retour sur investissement, les valeurs sont les coordonnées de ses coins supérieurs gauche et inférieur droit dans l’ordre [x1, y1, x2, y2].

BatchIndicesTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant les index de lot à partir desquels extraire les ROI. Les dimensions autorisées de BatchIndicesTensor sont { NumROIs }, { 1, NumROIs }, { 1, 1, NumROIs }ou { 1, 1, 1, NumROIs }. Chaque valeur est l’index d’un lot d’InputTensor. Le comportement n’est pas défini si les valeurs ne se trouvent pas dans la plage [0, BatchCount).

OutputTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant les données de sortie. Les dimensions attendues de OutputTensor sont { NumROIs, ChannelCount, OutputHeight, OutputWidth }.

ReductionFunction

Type : DML_REDUCE_FUNCTION

Fonction de réduction à utiliser lors de la réduction de tous les échantillons d’entrée qui contribuent à un élément de sortie (DML_REDUCE_FUNCTION_AVERAGE ou DML_REDUCE_FUNCTION_MAX). Le nombre d’exemples d’entrée à réduire est limité par MinimumSamplesPerOutput et MaximumSamplesPerOutput.

InterpolationMode

Type : DML_INTERPOLATION_MODE

Mode d’interpolation à utiliser lors du redimensionnement des régions.

  • DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. Utilise l’algorithme Voisin le plus proche , qui choisit l’élément d’entrée le plus proche du centre de pixels correspondant pour chaque élément de sortie.
  • DML_INTERPOLATION_MODE_LINEAR. Utilise l’algorithme bilinéaire , qui calcule l’élément de sortie en effectuant la moyenne pondérée des 2 éléments d’entrée voisins les plus proches par dimension. Étant donné que seules 2 dimensions sont redimensionnées, la moyenne pondérée est calculée sur un total de 4 éléments d’entrée pour chaque élément de sortie.

SpatialScaleX

Type : FLOAT

Composant X (ou largeur) du facteur de mise à l’échelle pour multiplier les coordonnées ROITensor par afin de les rendre proportionnelles à InputHeight et InputWidth. Par exemple, si ROITensor contient des coordonnées normalisées (valeurs dans la plage [0..1]), SpatialScaleX a généralement la même valeur que InputWidth.

SpatialScaleY

Type : FLOAT

Composant Y (ou height) du facteur de mise à l’échelle pour multiplier les coordonnées ROITensor par afin de les rendre proportionnelles à InputHeight et InputWidth. Par exemple, si ROITensor contient des coordonnées normalisées (valeurs dans la plage [0..1]), SpatialScaleY a généralement la même valeur que InputHeight.

OutOfBoundsInputValue

Type : FLOAT

Valeur à lire à partir d’InputTensor lorsque les ROIs sont en dehors des limites de InputTensor. Cela peut se produire lorsque les valeurs obtenues après la mise à l’échelle de ROITensor par SpatialScaleX et SpatialScaleY sont supérieures à InputWidth et InputHeight.

MinimumSamplesPerOutput

Type : UINT

Nombre minimal d’exemples d’entrée à utiliser pour chaque élément de sortie. L’opérateur calcule le nombre d’échantillons d’entrée en effectuant ScaledCropSize / OutputSize, puis le serre sur MinimumSamplesPerOutput et MaximumSamplesPerOutput.

MaximumSamplesPerOutput

Type : UINT

Nombre maximal d’exemples d’entrée à utiliser pour chaque élément de sortie. L’opérateur calcule le nombre d’échantillons d’entrée en effectuant ScaledCropSize / OutputSize, puis le serre sur MinimumSamplesPerOutput et MaximumSamplesPerOutput.

Disponibilité

Cet opérateur a été introduit dans DML_FEATURE_LEVEL_3_0.

Contraintes tensoriels

InputTensor, OutputTensor et ROITensor doivent avoir le même DataType.

Prise en charge des tenseurs

DML_FEATURE_LEVEL_5_0 et versions ultérieures

Tenseur Type Nombre de dimensions pris en charge Types de données pris en charge
InputTensor Entrée 4 FLOAT32, FLOAT16
ROITensor Entrée 2 à 4 FLOAT32, FLOAT16
BatchIndicesTensor Entrée 1 à 4 UINT64, UINT32
OutputTensor Output 4 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_3_0 et versions ultérieures

Tenseur Type Nombre de dimensions pris en charge Types de données pris en charge
InputTensor Entrée 4 FLOAT32, FLOAT16
ROITensor Entrée 2 à 4 FLOAT32, FLOAT16
BatchIndicesTensor Entrée 1 à 4 UINT32
OutputTensor Output 4 FLOAT32, FLOAT16

Spécifications

   
Client minimal pris en charge Windows 10 Build 20348
Serveur minimal pris en charge Windows 10 Build 20348
En-tête directml.h