Compartir a través de


estructura DML_ROI_ALIGN_OPERATOR_DESC (directml.h)

Realiza una operación de alineación de ROI, como se describe en el documento Mask R-CNN . En resumen, la operación extrae los recortes del tensor de la imagen de entrada y los cambia de tamaño a un tamaño de salida común especificado por las últimas 2 dimensiones de OutputTensor mediante el InterpolationMode especificado.

Sintaxis

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

Miembros

InputTensor

Tipo: const DML_TENSOR_DESC*

Tensor que contiene los datos de entrada con dimensiones { BatchCount, ChannelCount, InputHeight, InputWidth }.

ROITensor

Tipo: const DML_TENSOR_DESC*

Tensor que contiene las regiones de interés (ROI). Las dimensiones permitidas de ROITensor son { NumROIs, 4 }, { 1, NumROIs, 4 }o { 1, 1, NumROIs, 4 }. Para cada ROI, los valores serán las coordenadas de sus esquinas superior izquierda e inferior derecha en el orden [x1, y1, x2, y2].

BatchIndicesTensor

Tipo: const DML_TENSOR_DESC*

Tensor que contiene los índices por lotes de los que se van a extraer las ROIs. Las dimensiones permitidas de BatchIndicesTensor son { NumROIs }, { 1, NumROIs }, { 1, 1, NumROIs }o { 1, 1, 1, NumROIs }. Cada valor es el índice de un lote de InputTensor. El comportamiento no está definido si los valores no están en el intervalo [0, BatchCount).

OutputTensor

Tipo: const DML_TENSOR_DESC*

Tensor que contiene los datos de salida. Las dimensiones esperadas de OutputTensor son { NumROIs, ChannelCount, OutputHeight, OutputWidth }.

ReductionFunction

Tipo: DML_REDUCE_FUNCTION

Función de reducción que se va a usar al reducir en todas las muestras de entrada que contribuyen a un elemento de salida (DML_REDUCE_FUNCTION_AVERAGE o DML_REDUCE_FUNCTION_MAX). El número de muestras de entrada que se van a reducir se limita mediante MinimumSamplesPerOutput y MaximumSamplesPerOutput.

InterpolationMode

Tipo: DML_INTERPOLATION_MODE

Modo de interpolación que se va a usar al cambiar el tamaño de las regiones.

  • DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. Usa el algoritmo Vecino más cercano, que elige el elemento de entrada más cercano al centro de píxeles correspondiente para cada elemento de salida.
  • DML_INTERPOLATION_MODE_LINEAR. Usa el algoritmo bilineal , que calcula el elemento de salida haciendo el promedio ponderado de los 2 elementos de entrada vecinos más cercanos por dimensión. Dado que solo se cambia el tamaño de 2 dimensiones, el promedio ponderado se calcula en un total de 4 elementos de entrada para cada elemento de salida.

SpatialScaleX

Tipo: FLOAT

Componente X (o ancho) del factor de escalado para multiplicar las coordenadas roiTensor por para que sean proporcionales a InputHeight y InputWidth. Por ejemplo, si ROITensor contiene coordenadas normalizadas (valores del intervalo [0..1]), SpatialScaleX normalmente tendría el mismo valor que InputWidth.

SpatialScaleY

Tipo: FLOAT

Componente Y (o alto) del factor de escalado para multiplicar las coordenadas roiTensor por para que sean proporcionales a InputHeight y InputWidth. Por ejemplo, si ROITensor contiene coordenadas normalizadas (valores del intervalo [0..1]), SpatialScaleY normalmente tendría el mismo valor que InputHeight.

OutOfBoundsInputValue

Tipo: FLOAT

Valor que se va a leer de InputTensor cuando las ROIs están fuera de los límites de InputTensor. Esto puede ocurrir cuando los valores obtenidos después de escalar ROITensor por SpatialScaleX y SpatialScaleY son mayores que InputWidth y InputHeight.

MinimumSamplesPerOutput

Tipo: UINT

Número mínimo de muestras de entrada que se van a usar para cada elemento de salida. El operador calculará el número de muestras de entrada realizando ScaledCropSize / OutputSizey, a continuación, lo sujetará a MinimumSamplesPerOutput y MaximumSamplesPerOutput.

MaximumSamplesPerOutput

Tipo: UINT

Número máximo de muestras de entrada que se van a usar para cada elemento de salida. El operador calculará el número de muestras de entrada realizando ScaledCropSize / OutputSizey, a continuación, lo sujetará a MinimumSamplesPerOutput y MaximumSamplesPerOutput.

Disponibilidad

Este operador se introdujo en DML_FEATURE_LEVEL_3_0.

Restricciones tensor

InputTensor, OutputTensor y ROITensor deben tener el mismo DataType.

Compatibilidad con Tensor

DML_FEATURE_LEVEL_5_0 y versiones posteriores

Tensor Kind Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada 4 FLOAT32, FLOAT16
ROITensor Entrada De 2 a 4 FLOAT32, FLOAT16
BatchIndicesTensor Entrada De 1 a 4 UINT64, UINT32
OutputTensor Resultados 4 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_3_0 y versiones posteriores

Tensor Kind Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada 4 FLOAT32, FLOAT16
ROITensor Entrada De 2 a 4 FLOAT32, FLOAT16
BatchIndicesTensor Entrada De 1 a 4 UINT32
OutputTensor Resultados 4 FLOAT32, FLOAT16

Requisitos

   
Cliente mínimo compatible Compilación 20348 de Windows 10
Servidor mínimo compatible Compilación 20348 de Windows 10
Encabezado directml.h