다음을 통해 공유


DML_ROI_ALIGN_OPERATOR_DESC 구조체(directml.h)

R-CNN 마스크 용지에 설명된 대로 ROI 맞춤 작업을 수행합니다. 요약하자면, 이 작업은 입력 이미지 텐서에서 자르기를 추출하고 지정된 InterpolationMode를 사용하여 OutputTensor의 마지막 2차원에 지정된 공통 출력 크기로 크기를 조정합니다.

구문

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

멤버

InputTensor

형식: const DML_TENSOR_DESC*

차원이 인 입력 데이터를 포함하는 텐서입니다.{ BatchCount, ChannelCount, InputHeight, InputWidth }

ROITensor

형식: const DML_TENSOR_DESC*

ROI(관심 영역) 데이터를 포함하는 텐서입니다. 의 허용되는 차원 ROITensor 은 , { 1, NumROIs, 4 }또는 { 1, 1, NumROIs, 4 }입니다{ NumROIs, 4 }. 각 ROI에 대해 값은 순서대로 왼쪽 위와 오른쪽 아래 모서리의 좌표가 [x1, y1, x2, y2]됩니다.

BatchIndicesTensor

형식: const DML_TENSOR_DESC*

ROI를 추출할 일괄 처리 인덱스를 포함하는 텐서입니다. 의 허용되는 차원 BatchIndicesTensor 은 , { 1, NumROIs }, { 1, 1, NumROIs }또는 { 1, 1, 1, NumROIs }입니다{ NumROIs }. 각 값은 InputTensor의 일괄 처리 인덱스입니다. 값이 [0, BatchCount) 범위에 없으면 동작이 정의되지 않습니다.

OutputTensor

형식: const DML_TENSOR_DESC*

출력 데이터를 포함하는 텐서입니다. OutputTensor의 예상 차원은 입니다{ NumROIs, ChannelCount, OutputHeight, OutputWidth }.

ReductionFunction

형식: DML_REDUCE_FUNCTION

출력 요소(DML_REDUCE_FUNCTION_AVERAGE 또는 DML_REDUCE_FUNCTION_MAX)에 기여하는 모든 입력 샘플에서 축소할 때 사용할 감소 함수입니다. 줄일 입력 샘플 수는 MinimumSamplesPerOutputMaximumSamplesPerOutput으로 제한됩니다.

InterpolationMode

형식: DML_INTERPOLATION_MODE

영역 크기를 조정할 때 사용할 보간 모드입니다.

  • DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. 각 출력 요소에 대해 해당 픽셀 가운데에 가장 가까운 입력 요소를 선택하는 가장 가까운 인접 알고리즘을 사용합니다.
  • DML_INTERPOLATION_MODE_LINEAR. 차원당 가장 가까운 2개의 인접 입력 요소의 가중 평균을 수행하여 출력 요소를 계산하는 쌍선형 알고리즘을 사용합니다. 크기는 2개뿐이므로 가중 평균은 각 출력 요소에 대해 총 4개의 입력 요소에서 계산됩니다.

SpatialScaleX

형식: FLOAT

배율 인수의 X(또는 너비) 구성 요소를 사용하여 ROITensor 좌표를 곱하여 InputHeightInputWidth에 비례하도록 합니다. 예를 들어 ROITensor 에 정규화된 좌표([0..1] 범위의 값)가 포함된 경우 SpatialScaleX 는 일반적으로 InputWidth와 동일한 값을 갖습니다.

SpatialScaleY

형식: FLOAT

배율 인수의 Y(또는 높이) 구성 요소는 ROITensor 좌표를 곱하여 InputHeightInputWidth에 비례하도록 합니다. 예를 들어 ROITensor 에 정규화된 좌표([0..1] 범위의 값)가 포함된 경우 SpatialScaleY 는 일반적으로 InputHeight와 동일한 값을 갖습니다.

OutOfBoundsInputValue

형식: FLOAT

ROI가 InputTensor 범위를 벗어날 때 InputTensor에서 읽을 값입니다. SpatialScaleX 및 SpatialScaleYROITensor 크기를 조정한 후 얻은 값이 InputWidthInputHeight보다 큰 경우에 발생할 수 있습니다.

MinimumSamplesPerOutput

형식: UINT

모든 출력 요소에 사용할 최소 입력 샘플 수입니다. 연산자는 를 수행 ScaledCropSize / OutputSize하여 입력 샘플 수를 계산한 다음 MinimumSamplesPerOutputMaximumSamplesPerOutput으로 고정합니다.

MaximumSamplesPerOutput

형식: UINT

모든 출력 요소에 사용할 최대 입력 샘플 수입니다. 연산자는 를 수행 ScaledCropSize / OutputSize하여 입력 샘플 수를 계산한 다음 MinimumSamplesPerOutputMaximumSamplesPerOutput으로 고정합니다.

가용성

이 연산자는 에서 DML_FEATURE_LEVEL_3_0도입되었습니다.

텐서 제약 조건

InputTensor, OutputTensorROITensor 에는 동일한 DataType이 있어야 합니다.

텐서 지원

DML_FEATURE_LEVEL_5_0 이상

텐서 Kind 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 4 FLOAT32, FLOAT16
ROITensor 입력 2~4 FLOAT32, FLOAT16
BatchIndicesTensor 입력 1~4개 UINT64, UINT32
OutputTensor 출력 4 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_3_0 이상

텐서 Kind 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 4 FLOAT32, FLOAT16
ROITensor 입력 2~4 FLOAT32, FLOAT16
BatchIndicesTensor 입력 1~4개 Uint32
OutputTensor 출력 4 FLOAT32, FLOAT16

요구 사항

   
지원되는 최소 클라이언트 Windows 10 빌드 20348
지원되는 최소 서버 Windows 10 빌드 20348
머리글 directml.h