aclmdlSetAIPPByInputIndex

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:支持
  • Atlas 推理系列产品:支持
  • Atlas 训练系列产品:支持
  • IPV350:不支持

功能说明

动态AIPP场景下,根据指定的模型输入的输入index,设置模型推理时的AIPP参数值。

动态AIPP支持的几种操作的计算方式及其计算顺序如下:抠图->色域转换->减均值/归一化->padding。

函数原型

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

参数说明

参数名 输入/输出 说明
modelId 输入 模型的ID。
调用aclmdlLoadFromFile接口/aclmdlLoadFromMem接口/aclmdlLoadFromFileWithMem接口/aclmdlLoadFromMemWithMem接口加载模型成功后,会返回模型ID。
dataset 输入 模型推理的输入数据的指针。类型定义请参见aclmdlDataset
使用aclmdlDataset类型的数据描述模型推理时的输入数据,输入的内存地址、内存大小用aclDataBuffer类型的数据来描述。
index 输入 表示在第几个输入上设置动态AIPP参数。如果该输入没有关联动态AIPP输入,则返回报错。
可调用aclmdlGetAippType查询指定模型的指定输入是否有关联的动态AIPP输入,若有,则本接口的index参数值与aclmdlGetAippType接口的index参数值保持一致;若无,则无需设置动态AIPP参数。
aippParmsSet 输入 动态AIPP参数对象的指针。类型定义请参见aclmdlAIPP
提前调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError

约束说明

经过动态AIPP处理后的图像的宽、高必须与原始模型中输入Shape中的宽、高保持一致。

多Batch场景下,根据每个Batch的配置计算出动态AIPP后输出图片的宽、高,经过动态AIPP后每个Batch的输出图片宽、高必须是一致的。计算输出图片宽、高的计算公式如下表所示。

抠图或者缩放或者padding之后,对图片宽、高的校验规则如下,其中,aippOutputW、aippOutputH分别表示AIPP输出图片的宽、高,其它参数是aclmdlSetAIPPSrcImageSizeaclmdlSetAIPPScfParamsaclmdlSetAIPPCropParamsaclmdlSetAIPPPaddingParams接口的入参。

表 1 输出图片宽、高计算公式

抠图 缩放 补边(padding) 动态AIPP输出图片的宽、高
aippOutputW=srcImageSizeW,aippOutputH=srcImageSizeH
aippOutputW=cropSizeW,aippOutputH=cropSizeH
aippOutputW=scfOutputSizeW,aippOutputH=scfOutputSizeH
aippOutputW=cropSizeW + paddingSizeLeft + paddingSizeRight,aippOutputH=cropSizeH + paddingSizeTop + paddingSizeBottom
aippOutputW=srcImageSizeW + paddingSizeLeft + paddingSizeRight,aippOutputH=srcImageSizeH + paddingSizeTop + paddingSizeBottom
aippOutputW=scfOutputSizeW + paddingSizeLeft + paddingSizeRight,aippOutputH=scfOutputSizeH + paddingSizeTop + paddingSizeBottom
aippOutputW=scfOutputSizeW,aippOutputH=scfOutputSizeH
aippOutputW=scfOutputSizeW + paddingSizeLeft + paddingSizeRight,aippOutputH=scfOutputSizeH + paddingSizeTop + paddingSizeBottom