• 图像&视频编辑工具箱MMEditing使用示例:图像超分辨率(super-resolution)


          MMEditing的介绍及安装参考:https://blog.csdn.net/fengbingchun/article/details/126331541,这里给出图像超分的测试代码,论文:《Learning Continuous Image Representation with Local Implicit Image Function》:

          (1).下载模型(checkpoint):

    1. def download_checkpoint(path, name, url):
    2. if os.path.isfile(path+name) == False:
    3. print("checkpoint(model) file does not exist, now download ...")
    4. subprocess.run(["wget", "-P", path, url])
    5. path = "../../data/model/"
    6. checkpoint = "liif_edsr_norm_c64b16_g1_1000k_div2k_20210715-ab7ce3fc.pth"
    7. url = "https://download.openmmlab.com/mmediting/restorers/liif/liif_edsr_norm_c64b16_g1_1000k_div2k_20210715-ab7ce3fc.pth"
    8. download_checkpoint(path, checkpoint, url)

          (2).根据配置文件和checkpoint文件构建模型:

    1. config = "../../src/mmediting/configs/restorers/liif/liif_edsr_norm_c64b16_g1_1000k_div2k.py"
    2. model = init_model(config, path+checkpoint, device)

          (3).准备测试图像:源图来自于MMEditing

    1. image_path = "../../src/mmediting/tests/data/gt/"
    2. image_name = "baboon.png"

         

          (4).进行推理产生超分图:

    1. result = restoration_inference(model, image)
    2. print(f"result shape: {result.shape}; max value: {torch.max(result)}") # result shape: torch.Size([1, 3, 1920, 2000]); max value: 1.0

          (5).显示执行结果及保存图像:

    1. def crop_save_image(srcimage, dstimage, name):
    2. crop_height, crop_width = int(srcimage.shape[1]/2), int(srcimage.shape[0]/2)
    3. print(f"crop height: {crop_height}; crop width: {crop_width}, data type: {type(crop_height)}")
    4. mat = cv2.resize(srcimage, (dstimage.shape[1], dstimage.shape[0]))
    5. srccrop = mat[0:crop_height, 0:crop_width]
    6. dstcrop = dstimage[0:crop_height, 0:crop_width]
    7. path = "../../data/"
    8. cv2.imwrite(path+"src_"+name, srccrop)
    9. cv2.imwrite(path+"result_"+name, dstcrop)
    10. cv2.imshow("show_src", srccrop)
    11. cv2.waitKey(0)
    12. cv2.imshow("show_result", dstcrop)
    13. cv2.waitKey(0)
    14. result = tensor2img(result)
    15. srcimage = cv2.imread(image)
    16. crop_save_image(srcimage, result, "restoration_liif.png")

          结果如下图所示:左图为源图,右图为结果图,仅显示图像的部分结果

                           

           GitHubhttps://github.com/fengbingchun/PyTorch_Test

     

  • 相关阅读:
    vue总结(一)
    板卡测评 | 基于TI AM5708开发板——ARM+DSP多核异构开发案例分享
    基于SSM的文物管理系统
    Fbank及MFCC学习
    快速生成树原理详解
    结合SkeyeVSS+SkeyeIVMS运维管控技术构建机关单位视频监控系统
    Docker网络
    现货黄金的价格如何变动
    FS4066耐高压1到4节内置MOS的锂电池充电管理芯片
    HOOPS Communicator对3D大模型轻量化加载与渲染的4种解决方案
  • 原文地址:https://blog.csdn.net/fengbingchun/article/details/126441016