RM新时代|官方理财平台

模糊圖像變高清:TPU-MLIR引領(lǐng)EDSR向MDSR的智能轉換!

模型介紹

EDSR模型,全稱(chēng)為enhanced deep super-resolution network(增強的深度學(xué)習超分辨率重建網(wǎng)絡(luò ))。該模型可以對指定圖片進(jìn)行超分辨率操作,提高清晰度。

而MDSR是多尺度的超分模型,可以一次輸出不同scale的圖片,相比EDSR,可以在相同的性能下,減少很多的參數。

EDSR模型結構如下:

MDSR模型結構如下:

本期內容將會(huì )帶領(lǐng)大家學(xué)習如何利用TPU-MLIR實(shí)現EDSR模型到MDSR模型的轉換。

模型導出與轉換

本文中轉換用到的模型來(lái)自:https://github.com/sanghyun-son/EDSR-PyTorch 基本流程為將原項目與模型下載后導出為onnx模型。再利用TPU-MLIR工具將onnx模型轉換為bmodel模型。

目錄結構安排如下,其中dataset文件夾中是量化所用的DIV2K數據集,image文件夾下是測試圖片,model文件夾中是待轉換的onnx模型。

以下命令均在TPU-MLIR的docker環(huán)境內進(jìn)行。

  1. 進(jìn)入EDSR-transform目錄

  2. 設置參數?

? ? ? ?3. 模型轉換和量化

轉換結果評估

  • 評估過(guò)程說(shuō)明

  1. 配置好BM1684X平臺,上傳并解壓本項目EDSR-BM1684x.zip,同時(shí)下載benchmark數據集,確保benchmark與EDSR文件夾在同一目錄內。進(jìn)入EDSR/python目錄下,運行以下命令:

  • 推理結果保存在EDSR/python/results中,更改不同bmodel參數以使用不同bmodel

? ? ? ?2. 評估結果方法

評估主要代碼(eval.py)如下

  • 評價(jià)結果保存在results/*/result.log里

? ? ? 3. 若是想測試自己的圖片,請將圖片放入image目錄下然后運行以下命令,結果保存在results/image里。更改bmodel模型來(lái)更換模型與超分倍率

評價(jià)代碼如下

  • 評估結果

精度測試方法

測試數據集采用Set14數據集,指標采用與原論文一致的PSNR+SSIM指標來(lái)衡量圖像質(zhì)量。因為我們在模型固定輸入大小的情況下,對原圖進(jìn)行裁切,超分,拼合的形式達到動(dòng)態(tài)輸入的效果,所以有的精度指標在測試中不僅不會(huì )降低反而會(huì )升高。同時(shí)又由于不同放大倍數的模型輸入大小和模型參數不一樣,推理時(shí)間的比例也會(huì )發(fā)生變化。

?

?

?

?

  • 結果展示

超分前圖片:zebrax4 from Set14

MDSRx4超分后圖片

結論

本次轉換了EDSR和MDSR超分辨率模型,分別實(shí)現了fp32, fp16, int8多種精度模型轉換, TPU-MLIR對這兩個(gè)模型支持較好,轉換過(guò)程中比較順利。從最終評估結果上看,這兩個(gè)超分模型對推理的數值精度不敏感,經(jīng)過(guò)量化后,相關(guān)指標損失較少,甚至有些指標還會(huì )提升。另外,在BM1684X的平臺上,INT8推理時(shí)間最短,故在部署時(shí),推薦使用量化后的INT8模型部署。

?

分享到 :
RM新时代|官方理财平台