aclmdlSetInputAIPP

Applicable Products

Product

Supported

Ascend 950PR / Ascend 950DT

Atlas A3 training products / Atlas A3 inference products

Atlas A2 training products / Atlas A2 inference products

Atlas 200I/500 A2 inference products

Atlas inference products

Atlas training products

Function Usage

Sets the AIPP attributes for model inference based on the index of the dynamic AIPP input in the dynamic AIPP scenario.

Dynamic AIPP provides the following functions and they are executed in the exact sequence: Cropping -> CSC -> Mean subtraction/normalization -> Padding.

Prototype

1
aclError aclmdlSetInputAIPP(uint32_t modelId, aclmdlDataset *dataset, size_t index, const aclmdlAIPP *aippParmsSet)

Parameters

Parameter

Input/Output

Description

modelId

Input

Model ID.

A successful aclmdlLoadFromFile, aclmdlLoadFromMem, aclmdlLoadFromFileWithMem, or aclmdlLoadFromMemWithMem call returns a model ID.

dataset

Input

Pointer to the input data for model inference. For the type definition, see aclmdlDataset.

Data of type aclmdlDataset describes the input data for model inference, while data of type aclDataBuffer describes the input memory size and address.

index

Input

Input index of the dynamic AIPP input.

When the model has more than one dynamic AIPP input, you can call aclmdlGetAippType to obtain the specified input index.

To ensure forward compatibility, if there is only one dynamic AIPP input, you can call aclmdlGetInputIndexByName to obtain the input index. The input name is fixed to ACL_DYNAMIC_AIPP_NAME.

aippParmsSet

Input

Pointer to the dynamic AIPP parameter object. For the type definition, see aclmdlAIPP.

Call aclmdlCreateAIPP in advance to create data of the aclmdlAIPP type.

Returns

0 on success; else, failure. For details, see aclError.

Restrictions

The image size after dynamic AIPP processing must be the same as that defined by the input shape required by the original model.

In batched inference scenarios, the image size after dynamic AIPP is calculated based on the configuration of each batch. After dynamic AIPP, the output image size must be consistent across batches. Table 1 describes the formulas for calculating the result image size.

After image cropping, resizing, or padding, the rules for verifying the image size after dynamic AIPP are shown in the table below. aippOutputW and aippOutputH indicate the width and height of the AIPP output image, respectively. Other parameters are the input parameters of the aclmdlSetAIPPSrcImageSize, aclmdlSetAIPPScfParams, aclmdlSetAIPPCropParams, and aclmdlSetAIPPPaddingParams APIs.
Table 1 Formulas for calculating the output image size

Cropping

Resizing

Padding

Output Width and Height

No

No

No

aippOutputW = srcImageSizeW, aippOutputH = srcImageSizeH

Yes

No

No

aippOutputW = cropSizeW, aippOutputH = cropSizeH

Yes

Yes

No

aippOutputW = scfOutputSizeW, aippOutputH = scfOutputSizeH

Yes

No

Yes

aippOutputW = cropSizeW + paddingSizeLeft + paddingSizeRight, aippOutputH = cropSizeH + paddingSizeTop + paddingSizeBottom

No

No

Yes

aippOutputW = srcImageSizeW + paddingSizeLeft + paddingSizeRight, aippOutputH = srcImageSizeH + paddingSizeTop + paddingSizeBottom

No

Yes

Yes

aippOutputW = scfOutputSizeW + paddingSizeLeft + paddingSizeRight, aippOutputH = scfOutputSizeH + paddingSizeTop + paddingSizeBottom

No

Yes

No

aippOutputW = scfOutputSizeW, aippOutputH = scfOutputSizeH

Yes

Yes

Yes

aippOutputW = scfOutputSizeW + paddingSizeLeft + paddingSizeRight, aippOutputH = scfOutputSizeH + paddingSizeTop + paddingSizeBottom

Example

For details about the API call sequence and example, see Dynamic AIPP Model Inference.