Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

falsr_b

模型名称 falsr_b
类别 图像-图像编辑
网络 falsr_b
数据集 DIV2k
是否支持Fine-tuning
模型大小 4MB
指标 PSNR37.61
最新更新日期 2021-02-26

一、模型基本信息

  • 应用效果展示

    • 样例结果示例(左为原图,右为效果图):

  • 模型介绍

    • falsr_b是基于Fast, Accurate and Lightweight Super-Resolution with Neural Architecture Search设计的轻量化超分辨模型。该模型使用多目标方法处理超分问题,同时使用基于混合控制器的弹性搜索策略来提升模型性能。该模型提供的超分倍数为2倍。

    • 更多详情请参考:falsr_b

二、安装

三、模型API预测

  • 1、命令行预测

    • $ hub run falsr_b --input_path "/PATH/TO/IMAGE"
      
  • 2、预测代码示例

    import cv2
    import paddlehub as hub
    
    sr_model = hub.Module(name='falsr_b')
    im = cv2.imread('/PATH/TO/IMAGE').astype('float32')
    #visualization=True可以用于查看超分图片效果,可设置为False提升运行速度。
    res = sr_model.reconstruct(images=[im], visualization=True)
    print(res[0]['data'])
  • 3、API

    • def reconstruct(images=None,
                      paths=None,
                      use_gpu=False,
                      visualization=False,
                      output_dir="falsr_b_output")
      • 预测API,用于图像超分辨率。

      • 参数

        • images (list[numpy.ndarray]): 图片数据,ndarray.shape 为 [H, W, C],BGR格式;
        • paths (list[str]): 图片的路径;
        • use_gpu (bool): 是否使用 GPU预测,如果使用GPU预测,则在预测之前,请设置CUDA_VISIBLE_DEVICES环境变量,否则不用设置;
        • visualization (bool): 是否将识别结果保存为图片文件;
        • output_dir (str): 图片的保存路径。
      • 返回

        • res (list[dict]): 识别结果的列表,列表中每一个元素为 dict,关键字有 'save_path', 'data',对应的取值为:
          • save_path (str, optional): 可视化图片的保存路径(仅当visualization=True时存在);
          • data (numpy.ndarray): 超分辨后图像。
    • def save_inference_model(dirname)
      • 将模型保存到指定路径。

      • 参数

        • dirname: 模型保存路径

四、服务部署

  • PaddleHub Serving可以部署一个图像超分的在线服务。

  • 第一步:启动PaddleHub Serving

    • 运行启动命令:

      • $ hub serving start -m falsr_b
      • 这样就完成了一个超分任务的服务化API的部署,默认端口号为8866。

      • NOTE: 如使用GPU预测,则需要在启动服务之前,设置CUDA_VISIBLE_DEVICES环境变量,否则不用设置。

  • 第二步:发送预测请求

    • 配置好服务端,以下数行代码即可实现发送预测请求,获取预测结果
      import requests
      import json
      import base64
      
      import cv2
      import numpy as np
      
      def cv2_to_base64(image):
          data = cv2.imencode('.jpg', image)[1]
          return base64.b64encode(data.tostring()).decode('utf8')
      def base64_to_cv2(b64str):
          data = base64.b64decode(b64str.encode('utf8'))
          data = np.fromstring(data, np.uint8)
          data = cv2.imdecode(data, cv2.IMREAD_COLOR)
          return data
      
      # 发送HTTP请求
      org_im = cv2.imread('/PATH/TO/IMAGE')
      data = {'images':[cv2_to_base64(org_im)]}
      headers = {"Content-type": "application/json"}
      url = "http://127.0.0.1:8866/predict/falsr_b"
      r = requests.post(url=url, headers=headers, data=json.dumps(data))
      sr = base64_to_cv2(r.json()["results"][0]['data'])
      cv2.imwrite('falsr_b_X2.png', sr)
      print("save image as falsr_b_X2.png")
  • Gradio APP 支持

    从 PaddleHub 2.3.1 开始支持使用链接 http://127.0.0.1:8866/gradio/falsr_b 在浏览器中访问 falsr_b 的 Gradio APP。

五、更新历史

  • 1.0.0

    初始发布

  • 1.1.0

    移除 fluid API

  • 1.2.0

    添加 Gradio APP 支持

    $ hub install falsr_b == 1.2.0