跳到主要内容

函数:set_aipp_pixel_var_reci

函数:set_aipp_dtc_pixel_mean

C函数原型aclError **aclmdlSetAIPPDtcPixelMean(**aclmdlAIPP *aippParmsSet, int16_t dtcPixelMeanChn0, int16_t dtcPixelMeanChn1, int16_t dtcPixelMeanChn2, int16_t dtcPixelMeanChn3, uint64_t batchIndex)
Python函数ret = acl.mdl.set_aipp_dtc_pixel_mean(aipp_parms_set, dtc_pixel_mean_chn0, dtc_pixel_mean_chn1, dtc_pixel_mean_chn2, dtc_pixel_mean_chn3, batch_index)
函数功能动态AIPP场景下,设置通道的均值,同步接口。
输入说明aipp_parms_set:int,动态AIPP参数对象的指针地址,需提前调用acl.mdl.create_aipp接口创建aclmdlAIPP类型的数据。 dtc_pixel_mean_chn0:int,通道0的均值,取值范围:[0, 255]。 dtc_pixel_mean_chn1:int,通道1的均值,取值范围:[0, 255]。 dtc_pixel_mean_chn2:int,通道2的均值,取值范围:[0, 255]。 dtc_pixel_mean_chn3:int,通道3的均值,如果只有3个通道,则该参数传默认值0。取值范围:[0, 255]。 batch_index:int,指定对第几个Batch上的图片设置通道均值,默认为0,取值范围:[0, batch_size),batch_size是在调用acl.mdl.create_aipp接口创建aclmdlAIPP类型的数据时设置。
返回值说明ret:int,错误码
- 返回0表示成功。
- 返回其它值表示失败。
约束说明

父主题: 设置动态AIPP参数

函数:set_aipp_dtc_pixel_min

C函数原型aclError **aclmdlSetAIPPDtcPixelMin(**aclmdlAIPP *aippParmsSet, float dtcPixelMinChn0, float dtcPixelMinChn1, float dtcPixelMinChn2, float dtcPixelMinChn3, uint64_t batchIndex)
Python函数ret = acl.mdl.set_aipp_dtc_pixel_min(aipp_parms_set, dtc_pixel_mean_chn0, dtc_pixel_mean_chn1, dtc_pixel_mean_chn2, dtc_pixel_mean_chn3, batch_index)
函数功能动态AIPP场景下,设置通道的最小值,同步接口。
输入说明aipp_parms_set:int,动态AIPP参数对象的指针地址,需提前调用acl.mdl.create_aipp接口创建aclmdlAIPP类型的数据。 dtc_pixel_mean_chn0:int,通道0的均值,取值范围:[0, 255]。 dtc_pixel_mean_chn1:int,通道1的均值,取值范围:[0, 255]。 dtc_pixel_mean_chn2:int,通道2的均值,取值范围:[0, 255]。 dtc_pixel_mean_chn3:int,通道3的均值,如果只有3个通道,则该参数传默认值0。取值范围:[0, 255]。 batch_index:int,指定对第几个Batch上的图片设置通道均值,默认为0,取值范围:[0, batch_size),batch_size是在调用acl.mdl.create_aipp接口创建aclmdlAIPP类型的数据时设置。
返回值说明ret:int,错误码
- 返回0表示成功。
- 返回其它值表示失败。
约束说明

父主题: 设置动态AIPP参数

函数:set_aipp_pixel_var_reci

C函数原型aclError **aclmdlSetAIPPPixelVarReci(**aclmdlAIPP *aippParmsSet, float dtcPixelVarReciChn0, float dtcPixelVarReciChn1, float dtcPixelVarReciChn2, float dtcPixelVarReciChn3, uint64_t batchIndex)
Python函数ret = acl.mdl.set_aipp_pixel_var_reci(aipp_parms_set, dtc_pixel_var_reci_chn0, dtc_pixel_var_reci_chn1, dtc_pixel_var_reci_chn2, dtc_pixel_var_reci_chn3, batch_index)
函数功能动态AIPP场景下,设置通道的方差,同步接口。
输入说明aipp_parms_set:int,动态AIPP参数对象,需提前调用acl.mdl.create_aipp接口创建aclmdlAIPP类型的数据。 dtc_pixel_var_reci_chn0:int,通道0的方差,默认值为1.0,取值范围:[-65504, 65504]。 dtc_pixel_var_reci_chn1:int,通道1的方差,默认值为1.0,取值范围:[-65504, 65504]。 dtc_pixel_var_reci_chn2:int,通道2的方差,默认值为1.0,取值范围:[-65504, 65504]。 dtc_pixel_var_reci_chn3:int,通道3的方差,如果只有3个通道,则该参数传默认值1.0,取值范围:[-65504, 65504]。 batch_index:int,指定对第几个Batch上的图片设置通道的方差,取值范围:[0, batch_size),batch_size是在调用acl.mdl.create_aipp接口创建aclmdlAIPP类型的数据时设置。
返回值说明ret:int,错误码
- 返回0表示成功。
- 返回其它值表示失败。
约束说明

父主题: 设置动态AIPP参数

函数:set_input_aipp

C函数原型aclError aclmdlSetInputAIPP(uint32_t modelId, aclmdlDataset *dataset, size_t index, const aclmdlAIPP *aippParmsSet)
Python函数ret = acl.mdl.set_input_aipp(model_id, dataset, index, aipp_parms_set)
函数功能动态AIPP场景下,根据指定的动态AIPP输入的输入index,设置模型推理时的AIPP参数值,同步接口。 动态AIPP支持的几种操作的计算方式及其计算顺序如下:抠图->色域转换->缩放(当前版本不支持缩放)->减均值/归一化->padding。
输入说明model_id:int,模型的ID, 调用acl.mdl.load_from_file接口/acl.mdl.load_from_mem接口/acl.mdl.load_from_file_with_mem接口/acl.mdl.load_from_mem_with_mem接口加载模型成功后,会返回模型ID。 dataset:int,表示模型的输入数据,使用aclmdlDataset类型的数据描述模型推理时的输入数据,输入的内存地址、内存大小用aclDataBuffer类型的数据来描述。 index:int,标识动态AIPP输入的输入index。
- 多个动态AIPP输入的场景下,用户可调用acl.mdl.get_aipp_type接口获取指定模型输入所关联的动态AIPP输入的输入index。
- 为保证向前兼容,如果明确只有一个动态AIPP输入,可调用acl.mdl.get_input_index_by_name接口获取,输入名称固定为“ascend_dynamic_aipp_data”。
aipp_parms_set:int,动态AIPP参数对象的指针地址,需提前调用acl.mdl.create_aipp接口创建aclmdlAIPP类型的数据。
返回值说明ret:int,错误码
- 返回0表示成功。
- 返回其它值表示失败。
约束说明经过动态AIPP处理后的图像的宽、高必须与原始模型中输入Shape中的宽、高保持一致。
- 多Batch场景下,根据每个Batch的配置计算出动态AIPP后输出图片的宽、高,经过动态AIPP后每个Batch的输出图片宽、高必须是一致的。计算输出图片宽、高的计算公式如表1所示。
- 抠图或者缩放或者padding之后,对图片宽、高的校验规则如下,其中,aippOutputW、aippOutputH分别表示AIPP输出图片的宽、高,其它参数是acl.mdl.set_aipp_src_image_sizeacl.mdl.set_aipp_crop_paramsacl.mdl.set_aipp_padding_params接口的入参。
参考资源接口调用流程与示例,参见动态AIPP(单个动态AIPP输入)

表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

父主题: 设置动态AIPP参数

总体说明

您可以通过以下接口获取aclmdlDataset类型的数据、并对aclmdlDataset的数据执行一些操作。该数据类型下的操作接口都是同步接口。

aclmdlDataset主要用于描述模型推理时的输入数据、输出数据,模型可能存在多个输入、多个输出,每个输入/输出的内存地址、内存大小用aclDataBuffer类型的数据来描述。

父主题: aclmdlDataset

在线提单