函数:set_aipp_by_input_index
产品支持情况
产品 |
是否支持 |
---|---|
|
√ |
|
√ |
|
√ |
|
√ |
|
√ |
|
√ |
函数原型
- C函数原型
1
aclError aclmdlSetAIPPByInputIndex(uint32_t modelId, aclmdlDataset *dataset, size_t index, const aclmdlAIPP *aippParmsSet)
- python函数
1
ret = acl.mdl.set_aipp_by_input_index(model_id, dataset_in, index, aipp)
参数说明
参数名 |
说明 |
---|---|
model_id |
int,模型ID。 可在以下接口成功加载模型后获取到模型ID。 |
dataset_in |
int,表示模型推理的输入数据的指针地址。 使用aclmdlDataset类型的数据描述模型推理时的输入数据,输入的内存地址、内存大小用aclDataBuffer类型的数据来描述,具体请参见aclmdlDataset。 |
index |
int,表示在第几个输入上设置动态AIPP参数。如果该输入没有关联动态AIPP输入,则返回报错。 可调用acl.mdl.get_aipp_type查询指定模型的指定输入是否有关联的动态AIPP输入,如存在关联则本接口的index参数值与acl.mdl.get_aipp_type接口的index参数值保持一致;如不存在则无需设置动态AIPP参数。 |
aipp |
int,动态AIPP参数对象的指针地址。 提前调用acl.mdl.create_aipp接口创建aclmdlAIPP类型的数据。 |
返回值说明
返回值 |
说明 |
---|---|
ret |
int,错误码,返回0表示成功,返回其它值表示失败。 |
约束说明
-
多Batch场景下,根据每个Batch的配置计算出动态AIPP后输出图片的宽、高,经过动态AIPP后每个Batch的输出图片宽、高必须是一致的。计算输出图片宽、高的计算公式如表1所示。
-
抠图或者缩放或者补边操作之后,对图片宽、高的校验规则如下,其中,aippOutputW、aippOutputH分别表示AIPP输出图片的宽、高,其它参数是acl.mdl.set_aipp_srcImage_size、acl.mdl.set_aipp_scf_params、acl.mdl.set_aipp_crop_params、acl.mdl.set_aipp_padding_params接口的入参,具体请参考表1。
表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