CANN/ge AIPP配置文件模板

CANN/ge AIPP配置文件模板 配置文件模板【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/geAIPP配置文件通过本章节给出的模板进行配置内容需要满足prototxt格式用户根据场景决定配置哪些参数修改为合适的取值另存后供模型转换使用使用配置模板之前需要先查看相关约束。模板使用整体约束使用配置文件模板时请将需要配置的参数去注释并改为合适的值。模板中参数取值都为默认值实际使用时如果配置文件中某些参数未配置则模型转换时自动设置成该模板中相应参数的默认值。静态AIPP场景下input_format属性为必选属性其余属性均为可选配置如果未配置则模型转换时自动设置成该模板中相应参数的默认值。由于硬件处理逻辑的限制配置文件中的参数有如下处理顺序要求通道交换rbuv_swap_switch图像裁剪crop 色域转换通道交换 数据减均值/归一化 图像边缘填充padding。AIPP当前支持色域转换、图像裁剪、减均值、乘系数、通道交换、单行模式的能力输入图片的类型仅支持RAW和UINT8格式。抠图约束如下若input_format取值为YUV420SP_U8load_start_pos_w、load_start_pos_h必须为偶数Ascend 950PR/Ascend 950DT无偶数要求若input_format取值为其他值对load_start_pos_w、load_start_pos_h无约束。若开启抠图功能则src_image_size[W|H] crop_size[W|H]load_start_pos[W|H]。padding约束AIPP经过padding后输出的H和W要与模型需要的H和W保持一致。针对Atlas 推理系列产品、Atlas 训练系列产品W取值要1080。针对Atlas 200I/500 A2 推理产品、Atlas A2 训练系列产品/Atlas A2 推理系列产品、Atlas A3 训练系列产品/Atlas A3 推理系列产品、Ascend 950PR/Ascend 950DTW取值要4096。该版本不支持raw_rgbir_to_f16_n配置项。若输入图片为RGB由R、G、B三个分量组成的图片其对应的输入、输出通道顺序从高地址到低地址依次为{R,G,B}。动态AIPP的参数每次推理需要计算计算需要耗时所以动态AIPP的性能比静态AIPP性能要差。经过AIPP处理后的图片统一采用NC1HWC0的五维数据格式进行存储以原始模型要求的图片为RGB由R、G、B三个分量组成的图片为例进行说明配置了AIPP功能场景下Caffe/ONNX框架数据格式只能设置为NCHW数据存储格式为RRRRRRGGGGGGBBBBBBTensorFlow框架数据格式只能设置为NHWC数据存储格式为RGBRGBRGBRGBRGBRGB或NCHW数据存储格式为RRRRRRGGGGGGBBBBBB。实际提供的图片经过AIPP色域转换功能处理后输出的离线模型中图片为RGB并以NC1HWC0五维数据格式进行存储关于NC1HWC0详细介绍请参见关键概念若AIPP输出数据类型为FP16则C016从高位到低位依次为R,G,B其余位数补0C11。模型转换是否开启AIPP功能执行推理业务时对输入图片数据的要求模型转换时开启AIPP在进行推理业务时输入图片数据要求为NHWC排布该场景下最终与AIPP连接的输入节点的格式被强制改成NHWC可能与模型转换命令中--input_format参数指定的格式不一致。模型转换时没有开启AIPP在进行推理业务时模型的Format需与输入图片的Format保持一致。例如输入图片的Format为NHWC但某模型默认的Format为NCHW此时输入图片和模型的Format不一致用户可在模型转换时指定--input_format调整模型的Format也可以选择符合模型要求的输入图片。对于输入图像格式YUV420SP根据UV分量顺序不同YUV420SP又分为YUV420SP_UV(NV12)和YUV420SP_VU(NV21)分别对应色域转换配置说明中的YUV420SP_U8、YVU420SP_U8默认为YUV420SP_UV(NV12)。对于AIPP配置文件中的input_format参数需始终配置为NV12格式YUV420SP_U8通过rbuv_swap_switch参数控制实际提供给AIPP的图片格式若rbuv_swap_switch设置为false则实际提供的图片格式为YUV420SP_U8。若rbuv_swap_switch设置为true则实际提供的图片格式为YVU420SP_U8。AIPP不同图像格式对应C轴取值约束。表 1不同图像格式对应C轴取值AIPP的输入图像格式(input_format)C轴取值YUV420SP_U8C1RGB888_U8C3XRGB8888_U8C4YUV400_U8C1AIPP针对各种图像格式的典型参数配置如下表所示。表 2各种图像格式的典型参数配置AIPP的输入图像格式(input_format)输入图像内存排布格式对应原始输入图像格式AIPP输出格式关于AIPP配置文件中相关参数的说明RGB888_U8NHWCRGB packageNC1HWC0rbuv_swap_switch通常设置为falseRGB888_U8NHWCBGR packageNC1HWC0rbuv_swap_switch通常设置为true内部先转为RGB package再做后续处理YUV420SP_U8/YUV420 sp NV12 8bitNC1HWC0rbuv_swap_switch通常设置为falseYUV420SP_U8/YUV420 sp NV21 8bitNC1HWC0rbuv_swap_switch通常设置为true内部先转为NV12格式再做后续处理YUV400_U8NHWC灰度图NC1HWC0/XRGB8888_U8NHWC- XRGB package- XBGR package- RGBX package- BGRX packageNC1HWC0- XRGB packagerbuv_swap_switch通常设置为falseax_swap_switch通常设置为true- XBGR packagerbuv_swap_switch通常设置为trueax_swap_switch通常设置为true内部先转为XRGB package再做后续处理- RGBX packagerbuv_swap_switch通常设置为falseax_swap_switch通常设置为false内部先转为XRGB package再做后续处理- BGRX packagerbuv_swap_switch通常设置为trueax_swap_switch通常设置为false内部先转为XRGB package再做后续处理配置文件模板# AIPP的配置以aipp_op开始标识这是一个AIPP算子的配置aipp_op支持配置多个 aipp_op { # 全局设置start # aipp_mode指定了AIPP的模式必须配置 # 类型enum # 取值范围dynamic/staticdynamic表示动态AIPPstatic表示静态AIPP aipp_mode: # related_input_rank参数为可选标识对模型的第几个输入做AIPP处理从0开始默认为0。例如模型有两个输入需要对第2个输入做AIPP则配置related_input_rank为1。 # 类型整型 # 配置范围 0 related_input_rank: 0 # related_input_name参数为可选标识对模型的第几个输入做AIPP处理此处需要填写为模型输入的nameinput对应的值或者模型首层节点的输出top参数对应的取值。该参数只适用于Caffe网络模型且不能与related_input_rank参数同时使用如果同时配置related_input_name优先级高于related_input_rank。 # 例如模型有两个输入且输入name分别为data、im_info需要对第二个输入做AIPP则配置related_input_name为im_info。 # 类型string # 配置范围无 related_input_name: # 全局设置end # 动态AIPP需设置静态AIPP无需设置start # 输入图像最大的size动态AIPP必须配置如果为动态batch场景N为最大档位数的取值 # 类型int max_src_image_size: 0 # 若输入图像格式为YUV400_U8则max_src_image_sizeN * src_image_size_w * src_image_size_h * 1。 # 若输入图像格式为YUV420SP_U8则max_src_image_sizeN * src_image_size_w * src_image_size_h * 1.5。 # 若输入图像格式为XRGB8888_U8则max_src_image_sizeN * src_image_size_w * src_image_size_h * 4。 # 若输入图像格式为RGB888_U8则max_src_image_sizeN * src_image_size_w * src_image_size_h * 3。 # 是否支持旋转保留字段暂不支持该功能 # 类型bool # 取值范围true/falsetrue表示支持旋转false表示不支持旋转 support_rotation: false # 动态AIPP需设置静态AIPP无需设置end # 静态AIPP需设置动态AIPP无需设置start # 输入图像格式必选 # 类型: enum # 取值范围YUV420SP_U8、XRGB8888_U8、RGB888_U8、YUV400_U8 input_format: # 说明模型转换完毕后在对应的om离线模型文件中上述参数分别以1、2、3、4枚举值呈现。 # 原始图像的宽度、高度 # 类型int32 # 取值范围约束宽度取值范围为[2,4096]或0高度取值范围为[1,4096]或0对于YUV420SP_U8类型的图像要求原始图像的宽和高取值是偶数 src_image_size_w: 0 src_image_size_h: 0 # 说明请根据实际图片的宽、高配置src_image_size_w和src_image_size_h只有croppadding功能都没有开启的场景src_image_size_w和src_image_size_h才能取值为0或不配置该场景下会取网络模型输入定义的w和h并且网络模型输入定义的w取值范围为[2,4096]h取值范围为[1,4096]。 # C方向的填充值保留字段暂不支持该功能 # 类型 float16 # 取值范围[-65504, 65504] cpadding_value: 0.0 # crop参数设置配置样例请参见AIPP配置 Crop/Padding配置说明 # AIPP处理图片时是否支持抠图 # 类型bool # 取值范围true/falsetrue表示支持false表示不支持 crop: false # 抠图起始位置水平、垂直方向坐标抠图大小为网络输入定义的w和h # 类型int32 # 取值范围约束 [0,4095] # 说明load_start_pos_wsrc_image_size_wload_start_pos_hsrc_image_size_h load_start_pos_w: 0 load_start_pos_h: 0 # 抠图后的图像size # 类型int32 # 取值范围约束 [0,4096]load_start_pos_w crop_size_w src_image_size_w、load_start_pos_h crop_size_h src_image_size_h crop_size_w: 0 crop_size_h: 0 说明若开启抠图功能并且没有配置padding该场景下crop_size_w和crop_size_h才能取值为0或不配置此时抠图大小crop_size[W|H]的宽和高取值来自模型文件--input_shape中的宽和高并且--input_shape中的宽和高取值范围为[1,4096]。 # resize参数设置 # AIPP处理图片时是否支持缩放保留字段暂不支持该功能 # 类型bool # 取值范围true/falsetrue表示支持false表示不支持 resize: false # 缩放后图像的宽度和高度保留字段暂不支持该功能 # 类型int32 # 取值范围约束resize_output_h[16,4096]或0resize_output_w[16,1920]或0resize_output_w/resize_input_w∈[1/16,16]、resize_output_h/resize_input_h∈[1/16,16] resize_output_w: 0 resize_output_h: 0 # 说明若开启了缩放功能并且没有配置padding该场景下resize_output_w和resize_output_h才能取值为0或不配置此时缩放后图像的宽和高取值来自模型文件--input_shape中的宽和高并且--input_shape中的高取值范围为[16,4096]宽取值范围为[16,1920]。 # padding参数设置配置样例请参见AIPP配置 Crop/Padding配置说明 # AIPP处理图片时padding开启开关 # 类型bool # 取值范围true/falsetrue表示支持false表示不支持 padding: false # H和W的填充值静态AIPP配置 # 类型 int32 # 取值范围[0,32] left_padding_size: 0 right_padding_size: 0 top_padding_size: 0 bottom_padding_size: 0 # 说明AIPP经过padding后输出的H和W要与模型需要的H和W保持一致 # 上下左右方向上padding的像素取值静态AIPP配置 # 类型uint8/int8/float16 # 取值范围分别为[0,255]、[-128, 127]、[-65504, 65504] padding_value: 0 # 说明该参数取值需要与最终AIPP输出图片的数据类型保持一致。 # rotation参数设置 # AIPP处理图片时的旋转角度保留字段暂不支持该功能 # 类型uint8 # 范围{0, 1, 2, 3} 0不旋转1顺时针90°2顺时针180°3顺时针270° rotation_angle: 0 # 色域转换参数设置配置样例请参见AIPP配置 色域转换配置说明 # 色域转换开关静态AIPP配置 # 类型bool # 取值范围true/falsetrue表示开启色域转换false表示关闭 csc_switch: false # R通道与B通道交换开关/U通道与V通道交换开关 # 类型bool # 取值范围true/falsetrue表示开启通道交换false表示关闭 rbuv_swap_switch: false # RGBA-ARGB, YUVA-AYUV交换开关 # 类型bool # 取值范围true/falsetrue表示开启false表示关闭 ax_swap_switch: false # 单行处理模式只处理抠图后的第一行开关保留字段暂不支持该功能 # 类型bool # 取值范围true/falsetrue表示开启单行处理模式false表示关闭 single_line_mode: false # 若色域转换开关为false则本功能不起作用。 # 若输入图片通道数为4则忽略A通道或X通道。 # YUV转BGR # | B | | matrix_r0c0 matrix_r0c1 matrix_r0c2 | | Y - input_bias_0 | # | G | | matrix_r1c0 matrix_r1c1 matrix_r1c2 | | U - input_bias_1 | 8 # | R | | matrix_r2c0 matrix_r2c1 matrix_r2c2 | | V - input_bias_2 | # BGR转YUV # | Y | | matrix_r0c0 matrix_r0c1 matrix_r0c2 | | B | | output_bias_0 | # | U | | matrix_r1c0 matrix_r1c1 matrix_r1c2 | | G | 8 | output_bias_1 | # | V | | matrix_r2c0 matrix_r2c1 matrix_r2c2 | | R | | output_bias_2 | # 3*3 CSC矩阵元素 # 类型int16 # 取值范围[-32677 ,32676] matrix_r0c0: 298 matrix_r0c1: 516 matrix_r0c2: 0 matrix_r1c0: 298 matrix_r1c1: -100 matrix_r1c2: -208 matrix_r2c0: 298 matrix_r2c1: 0 matrix_r2c2: 409 # RGB转YUV时的输出偏移 # 类型uint8 # 取值范围[0, 255] output_bias_0: 16 output_bias_1: 128 output_bias_2: 128 # YUV转RGB时的输入偏移 # 类型uint8 # 取值范围[0, 255] input_bias_0: 16 input_bias_1: 128 input_bias_2: 128 # 减均值、乘系数设置 # 计算规则如下 # 当uint8-uint8时本功能不起作用 # 当uint8-fp16时pixel_out_chx(i) [pixel_in_chx(i) – mean_chn_i – min_chn_i] * var_reci_chn_i # 每个通道的均值 # 类型uint8 # 取值范围[0, 255] mean_chn_0: 0 mean_chn_1: 0 mean_chn_2: 0 mean_chn_3: 0 # 每个通道的最小值 # 类型float16 # 取值范围[0, 255] min_chn_0: 0.0 min_chn_1: 0.0 min_chn_2: 0.0 min_chn_3: 0.0 # 每个通道方差的倒数 # 类型float16 # 取值范围[-65504, 65504] var_reci_chn_0: 1.0 var_reci_chn_1: 1.0 var_reci_chn_2: 1.0 var_reci_chn_3: 1.0 # RGB16/RGB20/RGB24/RGB8_IR/RGB16_IR/RGB20_IR-fp16 rgbir格式转成fp16的参数 # 类型uint32 # 取值范围[0,31]默认为8 raw_rgbir_to_f16_n: 8 # raw格式转成fp16的计算公式pixel_out_chx(i) Max((fp16(rounding(FP32(UINT24(pixel_in_chx(i)) - mean_chn_i)/(2^raw_rgbir_to_f16_n))) - min_chn_i), 0)* var_reci_chn_i # 静态AIPP需设置动态AIPP无需设置end }【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考