0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

模糊图像变高清:TPU-MLIR引领EDSR向MDSR的智能转换!

算能开发者社区 2023-12-11 17:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

模型介绍

EDSR模型,全称为enhanced deep super-resolution network(增强的深度学习超分辨率重建网络)。该模型可以对指定图片进行超分辨率操作,提高清晰度。

而MDSR是多尺度的超分模型,可以一次输出不同scale的图片,相比EDSR,可以在相同的性能下,减少很多的参数。

EDSR模型结构如下:

d04412b4-980a-11ee-9788-92fbcf53809c.png

MDSR模型结构如下:

d062e8ec-980a-11ee-9788-92fbcf53809c.png

本期内容将会带领大家学习如何利用TPU-MLIR实现EDSR模型到MDSR模型的转换。

模型导出与转换

基本流程为将原项目与模型下载后导出为onnx模型。再利用TPU-MLIR工具将onnx模型转换为bmodel模型。

目录结构安排如下,其中dataset文件夹中是量化所用的DIV2K数据集,image文件夹下是测试图片,model文件夹中是待转换的onnx模型。

.
├──dataset
│├──x2
│├──x3
│└──x4
├──image
└──model
├──EDSR_x2.onnx
├──EDSR_x3.onnx
├──EDSR_x4.onnx
├──MDSR_x2.onnx
├──MDSR_x3.onnx
└──MDSR_x4.onnx

以下命令均在TPU-MLIR的docker环境内进行。

进入EDSR-transform目录

设置参数

scale=4
size=100
echoscale=${scale}size=${size}
mkdirworkspace_x${scale}&&cdworkspace_x${scale}

  1. 模型转换和量化

#算子转换、图优化
model_transform.py\
--model_nameEDSR_x${scale}\
--model_def../model/EDSR_x${scale}.onnx\
--input_shapes[[1,3,${size},${size}]]\
--keep_aspect_ratio\
--pixel_formatrgb\
--test_input../image/0901x${scale}.png\
--test_resultEDSR_x${scale}_outputs.npz\
--mlirEDSR_x${scale}.mlir

#建立校准表
run_calibration.pyEDSR_x${scale}.mlir\
--dataset../dataset/X${scale}\
--input_num50\
-oEDSR_x${scale}_cali_table

#多层优化和转换bmodel
##转换INT8模型
model_deploy.py\
--mlirEDSR_x${scale}.mlir\
--quantizeINT8\
--calibration_tableEDSR_x${scale}_cali_table\
--chipbm1684x\
--test_inputEDSR_x${scale}_in_f32.npz\
--test_referenceEDSR_x${scale}_outputs.npz\
--tolerance0.85,0.45\
--modelEDSR_x${scale}_1684x_int8_sym.bmodel

##转换FP16模型
model_deploy.py\
--mlirEDSR_x${scale}.mlir\
--quantizeF16\
--chipbm1684x\
--test_inputEDSR_x${scale}_in_f32.npz\
--test_referenceEDSR_x${scale}_top_outputs.npz\
--modelEDSR_x${scale}_1684x_f32_sym.bmodel

##转换FP32模型
model_deploy.py\
--mlirEDSR_x${scale}.mlir\
--quantizeF32\
--chipbm1684x\
--test_inputEDSR_x${scale}_in_f32.npz\
--test_referenceEDSR_x${scale}_top_outputs.npz\
--modelEDSR_x${scale}_1684x_f32_sym.bmodel

#将以上所有EDSR改为MDSR即可转换MDSR模型

转换结果评估

评估过程说明

  1. 配置好BM1684X平台,上传并解压本项目EDSR-BM1684x.zip,同时下载benchmark数据集,确保benchmark与EDSR文件夹在同一目录内。进入EDSR/python目录下,运行以下命令:

####predictonbm1684x
formodelin{EDSR,MDSR};do
forscalein{2,3,4};do
echo-------------------------------------dataset=Set14-------------scale=${scale}-------------------------------------
cmd="pythonrun_opencv_crop.py--input../../benchmark/Set14/LR_bicubic/X${scale}\
--outputresults/${model}_Set14_x${scale}_int8\
--bmodel../models/BM1684X/${model}_x${scale}/${model}_x${scale}_1684x_int8_sym.bmodel"
echo">>>Running:${cmd}"
$cmd
done
done

  • 推理结果保存在EDSR/python/results中,更改不同bmodel参数以使用不同bmodel
  1. 评估结果方法

####安装评估模型
pipinstalllpips

评估主要代码(eval.py)如下

...
fori,srinenumerate(sr_list):
hr=Path(args.hr_path)/(sr.stem.split('x')[0]+sr.suffix)
ifnothr.exists():
logging.error(f'{sr}:{hr}doesnotexist')
hr_list.append(None)
continue
hr_list.append(hr)

sr_img=Image.open(sr).convert('RGB')
hr_img=Image.open(hr).convert('RGB')
ifhr_img.size!=sr_img.size:
logging.info(f'croppinghr_imgfrom{hr_img.size}to{sr_img.size}')
#hr_img=hr_img.resize(sr_img.size,resample=Image.Resampling.BICUBIC)
hr_img=hr_img.crop((0,0,sr_img.size[0],sr_img.size[1]))
sr_img=np.array(sr_img)
hr_img=np.array(hr_img)

lpi=calculate_lpips(sr_img,hr_img,border=args.scale)

sr_img_y=rgb2ycbcr(sr_img,only_y=True)
hr_img_y=rgb2ycbcr(hr_img,only_y=True)
#sr_img_y=sr_img
#hr_img_y=hr_img
psnr=calculate_psnr(sr_img_y,hr_img_y,border=args.scale)
ssim=calculate_ssim(sr_img_y,hr_img_y,border=args.scale)
...

####evaluateonbm1684x
scale=(234)
formodelin{EDSR,MDSR};do
foriin"${!scale[@]}";do
echo-------------scale=${scale[$i]}-----------------
cmd="pythoneval.py--hr_path../../benchmark/Set14/HR--sr_pathresults/${model}_Set14_x${scale[$i]}_int8--scale${scale[$i]}"
echo">>>Running:${cmd}"
$cmd
done
done

  • 评价结果保存在results/*/result.log里
  1. 若是想测试自己的图片,请将图片放入image目录下然后运行以下命令,结果保存在results/image里。更改bmodel模型来更换模型与超分倍率

pythonrun_opencv_crop.py--input../image\
--outputresults/image\
--bmodel../models/BM1684X/EDSR_x2_1684x_int8_sym.bmodel

评价代码如下

pythoneval.py--sr_pathresults/image--hr_path../image--scale{sacle}

评估结果

精度测试方法

测试数据集采用Set14数据集,指标采用与原论文一致的PSNR+SSIM指标来衡量图像质量。因为我们在模型固定输入大小的情况下,对原图进行裁切,超分,拼合的形式达到动态输入的效果,所以有的精度指标在测试中不仅不会降低反而会升高。同时又由于不同放大倍数的模型输入大小和模型参数不一样,推理时间的比例也会发生变化。

fp32结果

d0695d4e-980a-11ee-9788-92fbcf53809c.png

fp32

fp16结果

d078ecaa-980a-11ee-9788-92fbcf53809c.png

fp16

int8结果

d0894df2-980a-11ee-9788-92fbcf53809c.png

int8

精度对比

d097f10e-980a-11ee-9788-92fbcf53809c.png

precise

性能对比

d0a822b8-980a-11ee-9788-92fbcf53809c.png

precise

结论

本次转换了EDSR和MDSR超分辨率模型,分别实现了fp32, fp16, int8多种精度模型转换, TPU-MLIR对这两个模型支持较好,转换过程中比较顺利。从最终评估结果上看,这两个超分模型对推理的数值精度不敏感,经过量化后,相关指标损失较少,甚至有些指标还会提升。另外,在BM1684X的平台上,INT8推理时间最短,故在部署时,推荐使用量化后的INT8模型部署。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模型
    +关注

    关注

    1

    文章

    3816

    浏览量

    52265
  • TPU
    TPU
    +关注

    关注

    0

    文章

    172

    浏览量

    21716
  • 深度学习
    +关注

    关注

    73

    文章

    5604

    浏览量

    124615
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    直击英伟达腹地?谷歌TPU v7开放部署,催生OCS产业链红利

    Processing Unit, TPU)构建了一套完整的AI算力基础设施体系。   11月,谷歌宣布第七代 TPU v7(代号 Ironwood)将在后续几周大规模上市。与此消息同步出来的还有:允许客户在自有数据中心部署Ironwood。该消息一出,被认为是谷歌
    的头像 发表于 11-27 08:53 9706次阅读
    直击英伟达腹地?谷歌<b class='flag-5'>TPU</b> v7开放部署,催生OCS产业链红利

    智能检测】基于AI深度学习与飞拍技术的影像测量系统:实现高效精准的全自动光学检测与智能制造数据闭环

    ; ②实现高节拍、大批量工件的全自动无人化测量; ③推动企业从人工复检智能工厂数据闭环转型;④提升检测重复性、稳定性与整体OEE。; 阅读建议:本资料强调AI算法、硬件控制与软件逻辑的深度融合,建议结合实际应用场景理解技术优势,并关注其在工业4.0生态中的系统集成能
    发表于 03-31 17:11

    与油制造商SST(固态变压器)赛道转型的技术与商业逻辑剖析

    全球干与油制造商基于SiC模块的固SST(固态变压器)赛道转型的技术与商业逻辑剖析 在全球能源结构经历深刻重构的当下,传统的电力传输与配电网络正面临着百年来最为严峻的挑战。随着
    的头像 发表于 03-31 07:22 387次阅读
    干<b class='flag-5'>变</b>与油<b class='flag-5'>变</b>制造商<b class='flag-5'>向</b>固<b class='flag-5'>变</b>SST(固态变压器)赛道转型的技术与商业逻辑剖析

    使用JPU对jpg图像进行转换,使用的工具为ffmpeg,转换出来的图像颜色失调严重,请问这是什么情况?

    我正在使用JPU对jpg图像进行转换,使用的工具为ffmpeg,转换出来的图像颜色失调严重,请问这是什么情况?
    发表于 02-05 07:19

    红外图像高清!超分算法如何让模糊热成像“纤毫毕现”

    在深夜的森林中,消防员手持热成像仪寻找被困者,屏幕上的模糊热斑却难以精准定位;在电力巡检中,工程师通过红外镜头检测设备温度异常,但低分辨率图像让微小故障隐患悄然溜走……这些场景曾因红外热成像技术的分辨率瓶颈而受到困扰。如今,超分技术已通过算法突破物理限制,让
    的头像 发表于 02-02 10:35 521次阅读
    红外<b class='flag-5'>图像</b>秒<b class='flag-5'>变</b><b class='flag-5'>高清</b>!超分算法如何让<b class='flag-5'>模糊</b>热成像“纤毫毕现”

    思特威全新发布智能安防应用图像传感器SCC85HAI

    近日,技术先进的CMOS图像传感器供应商思特威(SmartSens,股票代码688213),全新推出1500万像素5K高清智能安防应用图像传感器——SCC85HAI。
    的头像 发表于 01-10 13:00 2187次阅读

    智能采集终端,沃思智能

    在电力系统中,专用户是指那些拥有专用变压器、用电量较大的工商业用户。随着智能电网建设的深入推进,专采集终端作为连接电力企业与专用户的重要纽带,其
    的头像 发表于 01-07 15:54 404次阅读
    <b class='flag-5'>智能</b>专<b class='flag-5'>变</b>采集终端,沃思<b class='flag-5'>智能</b>

    AI芯片大单!Anthropic从博通采购100万颗TPU v7p芯片

    电子发烧友网报道(文/李弯弯)近日消息,AI企业Anthropic将直接从博通采购近100万颗TPU v7 pIronwood AI芯片,本地部署在其控制的数据中心中。也就是说,博通将直接
    的头像 发表于 01-06 08:38 1.1w次阅读

    相机高清却数据传不动?这篇图像采集卡选型攻略,解决90%的工业视觉痛点

    在工业视觉领域,高清相机的使用已成为提升检测精度和效率的关键。然而,许多企业在部署高清相机后,却发现数据传输不畅,导致图像无法正常采集、处理或传输,严重影响生产效率和检测质量。本文将围绕高清
    的头像 发表于 12-09 15:44 758次阅读
    相机<b class='flag-5'>高清</b>却数据传不动?这篇<b class='flag-5'>图像</b>采集卡选型攻略,解决90%的工业视觉痛点

    高清产业,集体打响电视的翻身仗

    8K超高清视频产业蓬勃,GPMI引领电视重回C位
    的头像 发表于 11-28 19:06 5929次阅读
    超<b class='flag-5'>高清</b>产业,集体打响电视的翻身仗

    【实测分享】智能显示模块图片乱码 / 模糊?用联发科 MTK 芯片方案避坑!

    最近看到不少朋友问 “智能显示模块导入图片乱码、模糊”(比如楼上的问题),刚好我们用联发科 MTK 显示模块芯片做了一批实测,分享下避坑经验 + 方案优势: 一、先解决 2 个高频问题(亲测有效
    发表于 11-27 21:49

    智能显示模块导入图片显示乱码是什么原因?显示图片模糊是为什么?

    智能显示模块导入图片显示乱码是什么原因?显示图片模糊是为什么?
    发表于 11-27 18:22

    CES Asia 2025蓄势待发,聚焦低空经济与AI,引领未来产业新变革

    Asia 2025 的举办,将为全球科技产业的发展注入新的动力。通过深入探讨低空经济与人工智能的技术突破、应用落地、政策监管与投资机遇,有望推动这两大领域实现跨越式发展,引领未来产业的新变革。让我们共同期待这场科技盛会的到来,见证科技
    发表于 07-09 10:29

    技术干货 德思特ADC/DAC静态参数分析系列(一)——什么是ADC转换点?

    本文将引领您深入理解ADC(模数转换器)中的一个关键概念——转换点,并介绍跳点搜索法和排序代码方法。
    的头像 发表于 05-30 11:17 750次阅读
    技术干货 德思特ADC/DAC静态参数分析系列(一)——什么是ADC<b class='flag-5'>转换</b>点?

    华为引领行业智能电动化时代转型

    副总裁、华为数字能源智能电动产品线总裁王超发表主题演讲,表示华为智能电动DriveONE将以“度电续航”和“运动域”为两大核心突破口,引领行业智能
    的头像 发表于 04-25 16:50 980次阅读