专栏算法工具链旭日x3派部署超分辨率模型Real-ESRGAN求助

旭日x3派部署超分辨率模型Real-ESRGAN求助

已解决
大鹏展翅2023-03-16
36
12
在旭日x3派上部署超分辨率模型Real-ESRGAN,模型地址https://github.com/xinntao/Real-ESRGAN#european_castle-model-zoo,所使用的模型为RealESRGAN_x4plus_anime_6B.pth,之后将模型转化为onnx模型,RealESRGAN_x4plus_anime_6B.onnx的输入输出结果如下:

将RealESRGAN_x4plus_anime_6B.onnx转为RealESRGAN_x4plus_anime_6B.bin文件,转换的yaml文件如下:

模型转换完成后的结果如下:

将RealESRGAN_x4plus_anime_6B.bin上板运行,输入图像(img)后,经过前向推理(models[0].forward(img)),最后的output的结果(outputs[0].buffer[0])如下,

其中输入图像的BGR的值为0-255,但是经过模型的前向推理之后的输出值是小数且有负数,不知道是什么原因。

之后我将outputs[0].buffer[0]的值乘以3000,作为最后的结果输出,图像如下:

这是原图:

我把.bin模型和上板运行的代码都放在附件里了,麻烦大家帮忙看一看到底是哪出了问题。

附件:
算法工具链
评论2
0/1000
  • 颜值即正义
    Lv.2

    您好,请问您是否重复配置了归一化呢?建议您先参考这篇文章来定位分析问题哈:https://developer.horizon.ai/forumDetail/71036815603174578

    2023-03-16
    0
    10
    • 大鹏展翅回复颜值即正义:

      我在上板运行代码中没有加入归一化操作,就是直接把原图0-255的BGR的值直接输入,但是经过模型推理之后BGR的值就变成了上图所示的都是小数且有负数的出现,正常情况下应该也是输出0-255的BGR的值。您是说我的模型可能精度损失过大吗,那应该也不会出现上述的那种输出值。

      2023-03-16
      0
    • 颜值即正义回复大鹏展翅:

      不是很了解超分辨率这个领域哈,请问quantized.onnx正常嘛?

      2023-03-16
      0
    • 大鹏展翅回复颜值即正义:
      我在测试quantized.onnx时,所写代码如下:

      报错:

      请问expected: (N11onnxruntime17PrimitiveDataTypeIaEE)是什么数据类型,我从网上没有找到

      2023-03-16
      0
    • 颜值即正义回复大鹏展翅:

      你好,麻烦截图提供的全面一些哈,顺便打印一下feed_dict字典中value的数据类型

      2023-03-16
      0
    • 颜值即正义回复大鹏展翅:

      输入数据类型需要按照你在yaml中配置的给哈,比如你上方给的yaml中,板端输入数据类型配置为bgr,那么你的输入数据就需要准备bgr类型的输入,bgr类型的输入数据类型是uint8的,图像数据输入都是uint8的,看了你的代码,准备的数据也是float32的,这是不匹配的,需要对应哈。如果非要float32类型输入,需要配置为featuremap,更多信息欢迎阅读我们的用户手册哈

      2023-03-17
      0
    • 大鹏展翅回复颜值即正义:
      好的,谢谢您。原模型RealESRGAN_x4plus_anime_6B.onnx的输入是按照rgb,NCHW排布的float32型的数据,我希望转换后的RealESRGAN_x4plus_anime_6B.bin的输入是按照bgr,NHWC排布的float32型数据(即
      输入是img=cv2.imread(img_path)/255),那我是只需要改input_type_rt为featuremap吗,还需要改input_type_train为featuremap吗,对于校准数据需要修改吗,对于norm_type和scale_value还需要修改吗,我看norm_type可以设置为no_preprocess?
      2023-03-17
      0
    • 大鹏展翅回复大鹏展翅:

      这是我一开始的prepare_calibration_data.py程序,需要做哪些修改呢

      2023-03-17
      2
    • 颜值即正义回复大鹏展翅:

      从您的描述看,训练时是rgb的输入,那建议您不要使用featuremap输入哈,从我的理解看,您理解的原始onnx输入是float,应该是totensor进行了归一化,这个建议您配置scale_value哈,图像格式以及均值归一化操作,通过配置可以跑在BPU上实现加速,这些理解可参考文章:https://developer.horizon.ai/forumDetail/118363912788935513

      2023-03-17
      0
    • 颜值即正义回复大鹏展翅:

      您好,调试修改代码需要您自己完成哈

      2023-03-17
      0
    • 颜值即正义回复大鹏展翅:

      尝试给uint8的数据,还有就是

      避免重复归一化哈,建议参考之前发的那个文章,和yaml中的scale_value,理一下均值归一化的操作
      2023-03-17
      0
  • 颜值即正义
    Lv.2
    2023-04-24
    0
    0