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 / OutputSize
y, 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 / OutputSize
y, 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 |