AIPP预处理导致模型输出变化
收藏回复举报
AIPP预处理导致模型输出变化
t('forum.solved') 已解决
发表于2024-09-04 09:44:30
0 查看

为了将推理模型的输入从float16转为uint8,我使用了AIPP,利用如下命令将onnx模型转换为om模型

atc --model=yolov5s_nms.onnx --output=yolov5m_nms_AIPP_1 --framework=5 --input_format=NCHW --soc_version=Ascend310 --log=error --input_shape="images:1,3,640,640;img_info:1,4" --insert_op_conf=insert_op.cfg --output_type=FP16

insert_op.cfg文件配置如下:

aipp_op {
    aipp_mode:static
    src_image_size_w : 640
    src_image_size_h : 640
    input_format:RGB888_U8
    min_chn_0 : 0
    min_chn_1 : 0
    min_chn_2 : 0
    var_reci_chn_0: 0.0039215686274509803921568627451
    var_reci_chn_1: 0.0039215686274509803921568627451
    var_reci_chn_2: 0.0039215686274509803921568627451
}

但转换后的om模型推理结果准确率尚可,但检测框位置错误,如下图所示 true

作为对比,onnx转om时如果不加AIPP参数,得到的检测结果和检测框就是正确的。 转换命令:

atc --model=yolov5s_nms.onnx --output=yolov5m_nms_AIPP_1 --framework=5 --input_format=NCHW --soc_version=Ascend310 --log=error --input_shape="images:1,3,640,640;img_info:1,4"  --output_type=FP16

推理结果true

请问是什么原因导致的检测框问题呢?有没有对应的解决方案? 感谢

我要发帖子