动态AIPP场景下,根据指定的动态AIPP输入的输入index,设置模型推理时的AIPP参数值,同步接口。
动态AIPP支持的几种操作的计算方式及其计算顺序如下:抠图->色域转换->缩放(当前版本不支持缩放)->减均值/归一化->padding。
抠图 |
缩放 |
补边(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 |
aclError aclmdlSetInputAIPP(uint32_t modelId, aclmdlDataset *dataset, size_t index, const aclmdlAIPP *aippParmsSet)
参数名 |
输入/输出 |
说明 |
---|---|---|
modelId |
输入 |
模型的ID。 调用aclmdlLoadFromFile接口/aclmdlLoadFromMem接口/aclmdlLoadFromFileWithMem接口/aclmdlLoadFromMemWithMem接口加载模型成功后,会返回模型ID。 |
dataset |
输入 |
模型推理的输入数据的指针。 使用aclmdlDataset类型的数据描述模型推理时的输入数据,输入的内存地址、内存大小用aclDataBuffer类型的数据来描述。 |
index |
输入 |
标识动态AIPP输入的输入index。 多个动态AIPP输入的场景下,用户可调用aclmdlGetAippType接口获取指定模型输入所关联的动态AIPP输入的输入index。 为保证向前兼容,如果明确只有一个动态AIPP输入,可调用aclmdlGetInputIndexByName接口获取,输入名称固定为ACL_DYNAMIC_AIPP_NAME。 |
aippParmsSet |
输入 |
动态AIPP参数对象的指针。 提前调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据。 |
返回0表示成功,返回其它值表示失败。
接口调用流程及示例,参见模型动态AIPP推理。