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_AVERAGE 또는 DML_REDUCE_FUNCTION_MAX)에 기여하는 모든 입력 샘플에서 축소할 때 사용할 감소 함수입니다. 줄일 입력 샘플 수는 MinimumSamplesPerOutput 및 MaximumSamplesPerOutput으로 제한됩니다.
InterpolationMode
영역 크기를 조정할 때 사용할 보간 모드입니다.
- DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. 각 출력 요소에 대해 해당 픽셀 가운데에 가장 가까운 입력 요소를 선택하는 가장 가까운 인접 알고리즘을 사용합니다.
- DML_INTERPOLATION_MODE_LINEAR. 차원당 가장 가까운 2개의 인접 입력 요소의 가중 평균을 수행하여 출력 요소를 계산하는 쌍선형 알고리즘을 사용합니다. 크기는 2개뿐이므로 가중 평균은 각 출력 요소에 대해 총 4개의 입력 요소에서 계산됩니다.
SpatialScaleX
형식: FLOAT
배율 인수의 X(또는 너비) 구성 요소를 사용하여 ROITensor 좌표를 곱하여 InputHeight 및 InputWidth에 비례하도록 합니다. 예를 들어 ROITensor 에 정규화된 좌표([0..1] 범위의 값)가 포함된 경우 SpatialScaleX 는 일반적으로 InputWidth와 동일한 값을 갖습니다.
SpatialScaleY
형식: FLOAT
배율 인수의 Y(또는 높이) 구성 요소는 ROITensor 좌표를 곱하여 InputHeight 및 InputWidth에 비례하도록 합니다. 예를 들어 ROITensor 에 정규화된 좌표([0..1] 범위의 값)가 포함된 경우 SpatialScaleY 는 일반적으로 InputHeight와 동일한 값을 갖습니다.
OutOfBoundsInputValue
형식: FLOAT
ROI가 InputTensor 범위를 벗어날 때 InputTensor에서 읽을 값입니다. SpatialScaleX 및 SpatialScaleY로 ROITensor 크기를 조정한 후 얻은 값이 InputWidth 및 InputHeight보다 큰 경우에 발생할 수 있습니다.
MinimumSamplesPerOutput
형식: UINT
모든 출력 요소에 사용할 최소 입력 샘플 수입니다. 연산자는 를 수행 ScaledCropSize / OutputSize
하여 입력 샘플 수를 계산한 다음 MinimumSamplesPerOutput 및 MaximumSamplesPerOutput으로 고정합니다.
MaximumSamplesPerOutput
형식: UINT
모든 출력 요소에 사용할 최대 입력 샘플 수입니다. 연산자는 를 수행 ScaledCropSize / OutputSize
하여 입력 샘플 수를 계산한 다음 MinimumSamplesPerOutput 및 MaximumSamplesPerOutput으로 고정합니다.
가용성
이 연산자는 에서 DML_FEATURE_LEVEL_3_0
도입되었습니다.
텐서 제약 조건
InputTensor, OutputTensor 및 ROITensor 에는 동일한 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 |