国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

OpenCV實(shí)戰(zhàn)之一 | 使用OpenCV進(jìn)行圖像超分辨率

這篇具有很好參考價(jià)值的文章主要介紹了OpenCV實(shí)戰(zhàn)之一 | 使用OpenCV進(jìn)行圖像超分辨率。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言
圖像超分辨率(Image Super-Resolution,簡(jiǎn)稱ISR)是一種圖像處理技術(shù),將低分辨率的圖像通過算法轉(zhuǎn)換成高分辨率圖像,從而增加圖像的細(xì)節(jié)和清晰度。
ISR技術(shù)對(duì)于許多計(jì)算機(jī)視覺和圖像處理任務(wù)都是至關(guān)重要的,如圖像重建、監(jiān)視、醫(yī)學(xué)圖像處理等。

一、OpenCV安裝

pip install opencv-python -i https://mirror.baidu.com/pypi/simple
pip install opencv-contrib-python -i https://mirror.baidu.com/pypi/simple

二、模型下載

? 注意的是模型的加載需要使用到cv2.dnn_superres函數(shù),而此函數(shù)存在于OpenCV4.4以上以及。
OpenCV代碼庫(kù)目前僅支持4種不同的超分辨率模型:

EDSR

  • EDSR(2017 CVPR NTIRE2017超分辨率挑戰(zhàn)賽冠軍)
    • 優(yōu)點(diǎn)高精度
    • 缺點(diǎn):模型文件大且運(yùn)行速度慢
    • 模型參數(shù):提供x2,x3,x4訓(xùn)練模型
    • 模型下載EDSR_Tensorflow
    • 論文:Enhanced Deep Residual Networks for Single Image Super-Resolution
    • Pytorch Code:EDSR-PyTorch

ESPCN

  • ESPCN(2016 CVPR)
    • 優(yōu)點(diǎn):體積小,速度快,并且仍然表現(xiàn)良好;它可以進(jìn)行對(duì)視頻進(jìn)行實(shí)時(shí)處理(取決于圖像大?。?/li>
    • 缺點(diǎn):與更新的、更健壯的模型相比,在視覺上表現(xiàn)更差
    • 模型參數(shù):提供x2,x3,x4訓(xùn)練模型
    • 模型下載TF-ESPCN
    • 論文:Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network

FSRCNN

  • FSRCNN(2016 ECCV)
    • 優(yōu)點(diǎn):快速,小巧;可以進(jìn)行實(shí)時(shí)視頻升頻
    • 缺點(diǎn):不夠準(zhǔn)確
    • 模型參數(shù):提供x2,x3,x4訓(xùn)練模型和small訓(xùn)練模型
    • 模型下載FSRCNN_Tensorflow
    • 論文:Accelerating the Super-Resolution Convolutional Neural Network

LapSRN

  • LapSRN(2017 CVPR)
    • 優(yōu)點(diǎn):該模型可以通過一次向前傳遞進(jìn)行多尺度超分辨率,可以支持2x,4x,8x和[2x,4x]和[2x,4x,8x]超分辨率
    • 缺點(diǎn):它比ESPCN和FSRCNN慢,并且精度比EDSR差
    • 模型參數(shù):提供x2,x4,x8訓(xùn)練模型
    • 模型下載TF-LAPSRN
    • 論文:Deep laplacian pyramid networks for fast and accurate super-resolution
    • Pytorch Code:pytorch-LapSRN

? 總結(jié):實(shí)踐應(yīng)用最廣泛的是EDSR模型,其精度高,但推理速度太慢,所以2倍放大和4倍放大可以考慮使用ESPCN代替,4倍和8倍放大可以考慮使用LapSRN。當(dāng)然超分放大需要高性能運(yùn)算,還是用高性能顯卡運(yùn)算較為合適。注意的是OpenCV的dnn_superres模塊不適用移動(dòng)端設(shè)備嵌入式設(shè)備,因?yàn)镺penCV對(duì)設(shè)備性能有一定要求。所以移動(dòng)端可以參考ncnn的超分放大實(shí)現(xiàn)。

三、代碼實(shí)現(xiàn)

import cv2
from cv2 import dnn_superres

def upscale(img, alg_name, scale):
    # Create an SR object
    sr = cv2.dnn_superres.DnnSuperResImpl_create()
    # Read the desired model
    path = f"./model/{alg_name}_x{scale}.pb"
    sr.readModel(path)
    # Set the desired model and scale to get correct pre- and post-processing
    sr.setModel(alg_name,scale)
    # Upscale the image
    result = sr.upsample(img)
    return result

if __name__ == '__main__':
	img = cv2.imread(path_to_image)
	# 使用LapSRN x4模型
	res = upscale(img=img, alg_name='lapsrn', scale=4)
	cv2.imshow('result', res)
	cv2.waitKey(0)

四、超分算法效果評(píng)估

通過PSNR(峰值信噪比)和SSIM(結(jié)構(gòu)相似性)來評(píng)估圖像放大后的效果,PSNR越大,圖像失真越小。SSIM也是越大,圖像失真越小。PSNR和SSIM介紹見博客:【圖像評(píng)價(jià)指標(biāo)】PSNR和SSIM

  • OpenCV官方文檔給了基礎(chǔ)測(cè)試結(jié)果:
    • 2倍超分放大
      opencv處理圖片清晰度,OpenCV實(shí)戰(zhàn)筆記,opencv,人工智能,計(jì)算機(jī)視覺
    • 3倍超分放大
      opencv處理圖片清晰度,OpenCV實(shí)戰(zhàn)筆記,opencv,人工智能,計(jì)算機(jī)視覺
    • 4倍超分放大
      opencv處理圖片清晰度,OpenCV實(shí)戰(zhàn)筆記,opencv,人工智能,計(jì)算機(jī)視覺

Python代碼

算法評(píng)估Python代碼如下:

import cv2


def upscale(img, alg_name, scale):
    # Create an SR object
    sr = cv2.dnn_superres.DnnSuperResImpl_create()
    # Read the desired model
    path = f"./models/{alg_name}_x{scale}.pb"
    sr.readModel(path)
    # Set the desired model and scale to get correct pre- and post-processing
    sr.setModel(alg_name, scale)
    # Upscale the image
    result = sr.upsample(img)
    return result


def getQualityValues(upsampled, orig):
    psnr = cv2.PSNR(upsampled, orig)
    q, _ = cv2.quality.QualitySSIM_compute(upsampled, orig)
    ssim = (q[0] + q[1] + q[2]) / 3
    return round(psnr, 3), round(ssim, 3)


if __name__ == "__main__":
    # 圖片路徑
    img_path = "./data/images/1.jpg"
    # 算法名稱 edsr, espcn, fsrcnn or lapsrn
    algorithm = "lapsrn"
    # 放大系數(shù)
    scale = 4
    # 模型路徑,根據(jù)算法確定
    model = f"./model/{algorithm}_x{scale}.pb"
    # 裁剪圖像,使圖像對(duì)齊
    img = cv2.imread(img_path)
    width = img.shape[0] - (img.shape[0] % scale)
    height = img.shape[1] - (img.shape[1] % scale)
    cropped = img[0:width, 0:height]
    # Downscale the image for benchmarking
    # 縮小圖像,以實(shí)現(xiàn)基準(zhǔn)質(zhì)量測(cè)試
    img_downscaled = cv2.resize(cropped, None, fx=1.0 / scale, fy=1.0 / scale)
    img_new = upscale(img_downscaled, algorithm, scale)
    # 獲得模型質(zhì)量評(píng)估值
    psnr, ssim = getQualityValues(cropped, img_new)
    print("=" * 30)
    print(f"{algorithm}_x{scale}\nPSNT:{psnr}, SSIM:{ssim}")
    print("=" * 30)
    # INTER_CUBIC - 三次樣條插值放大圖像
    bicubic = cv2.resize(img_downscaled, None, fx=scale, fy=scale, interpolation=cv2.INTER_CUBIC)
    psnr, ssim = getQualityValues(cropped, bicubic)
    print(f"三次樣條插值\nPSNT:{psnr}, SSIM:{ssim}")
    print("=" * 30)
    # INTER_NEAREST - 最近鄰插值
    nearest = cv2.resize(img_downscaled, None, fx=scale, fy=scale, interpolation=cv2.INTER_NEAREST)
    psnr, ssim = getQualityValues(cropped, nearest)
    print(f"最近鄰插值\nPSNT:{psnr}, SSIM:{ssim}")
    print("=" * 30)
    # Lanczos插值
    lanczos = cv2.resize(img_downscaled, None, fx=scale, fy=scale, interpolation=cv2.INTER_LANCZOS4);
    psnr, ssim = getQualityValues(cropped, lanczos)
    print(f"Lanczos插值\nPSNT:{psnr}, SSIM:{ssim}")
    print("=" * 30)

五、相關(guān)超分辨率算法

WDSR

2018 NTIRE超分辨率冠軍

  • 論文解析
  • Pytorch Code:wdsr_ntire2018

RCAN

ECCV2018超分冠軍方案,EDSR的改進(jìn),加入通道注意力

  • 論文:Image Super-Resolution Using Very Deep Residual Channel Attention Networks
  • Pytorch Code:RCAN

SAN

CVPR2019,RCAN的改進(jìn),使用二階注意力文章來源地址http://www.zghlxwxcb.cn/news/detail-788660.html

  • 論文:Second-Order Attention Network for Single Image Super-Resolution
  • Pytorch Code:SAN

ESRT(CVPR 2022)

  • 論文:Transformer for Single Image Super-Resolution
  • Pytorch Code:ESRT

到了這里,關(guān)于OpenCV實(shí)戰(zhàn)之一 | 使用OpenCV進(jìn)行圖像超分辨率的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 目標(biāo)檢測(cè)項(xiàng)目中面對(duì)高分辨率圖像的滑動(dòng)窗口技術(shù)(一)(代碼開源,超簡(jiǎn)便API封裝,直接調(diào)用進(jìn)行切圖及保存)

    目標(biāo)檢測(cè)項(xiàng)目中面對(duì)高分辨率圖像的滑動(dòng)窗口技術(shù)(一)(代碼開源,超簡(jiǎn)便API封裝,直接調(diào)用進(jìn)行切圖及保存)

    目錄 一、技術(shù)背景 二、解決方法介紹:滑動(dòng)窗口切圖、隨機(jī)中心點(diǎn)切圖 三、程序代碼 四、使用文檔 一、技術(shù)背景 ? ? ? ? 在目標(biāo)檢測(cè)項(xiàng)目中,面對(duì)高分辨率、小目標(biāo)的圖片數(shù)據(jù)(如航拍圖片數(shù)據(jù)),若對(duì)圖片直接resize到模型合適的大小,會(huì)損失大量信息,模型無(wú)法學(xué)到信

    2024年02月06日
    瀏覽(29)
  • 【Python&圖像超分】Real-ESRGAN圖像超分模型(超分辨率重建)詳細(xì)安裝和使用教程

    【Python&圖像超分】Real-ESRGAN圖像超分模型(超分辨率重建)詳細(xì)安裝和使用教程

    ????????圖像超分是一種圖像處理技術(shù),旨在 提高圖像的分辨率 ,使其具有更高的清晰度和細(xì)節(jié)。這一技術(shù)通常用于圖像重建、圖像恢復(fù)、圖像增強(qiáng)等領(lǐng)域,可以幫助我們更好地理解和利用圖像信息。圖像超分技術(shù)可以通過多種方法實(shí)現(xiàn),包括插值算法、深度學(xué)習(xí)等。其

    2024年02月04日
    瀏覽(28)
  • 圖像超分辨率重建概述

    圖像超分辨率重建概述

    1. 概念: ? ? ? ? 圖像分辨率是一組用于評(píng)估圖像中蘊(yùn)含細(xì)節(jié)信息豐富程度的性能參數(shù),包括時(shí)間分辨率、空間分辨率及色階分辨率等,體現(xiàn)了成像系統(tǒng)實(shí)際所能反映物體細(xì)節(jié)信息的能力。相較于低分辨率圖像,高分辨率圖像通常包含更大的像素密度、更豐富的紋理細(xì)節(jié)及更

    2024年02月04日
    瀏覽(23)
  • 圖像超分辨率簡(jiǎn)單介紹

    圖像超分辨率(Image Super-Resolution,簡(jiǎn)稱SR)是一種通過使用計(jì)算機(jī)算法提高圖像分辨率的技術(shù),即從低分辨率的圖像中生成高分辨率的圖像。圖像SR可以在許多領(lǐng)域得到應(yīng)用,例如計(jì)算機(jī)視覺、醫(yī)學(xué)成像、遙感等。 圖像SR旨在從低分辨率(低清晰度)圖像中提高圖像質(zhì)量和信

    2024年02月06日
    瀏覽(27)
  • 解決OpenCV使用USB攝像頭獲取高分辨率視頻低幀率、卡、果凍畫面的問題

    最近制作移動(dòng)設(shè)備,需要安置多個(gè)usb攝像頭到電腦,踩了幾個(gè)坑,記錄一下解決方案。 不能使用分線器插多個(gè)usb攝像頭,同一時(shí)間只能加載一個(gè)。 usb攝像頭調(diào)高分辨率時(shí),非??D,視頻畫面像果凍一樣,及不流暢 第二個(gè)情況具體描述: 攝像頭支持1920*1080? 60fps,opencv在

    2024年02月16日
    瀏覽(30)
  • ISP之圖像降分辨率

    1、圖像縮放背景 圖像的放大、縮小(簡(jiǎn)稱縮放)是圖像處理的一種處理方法。所謂圖像縮放是指圖像分辨率的改變,它在圖像顯示、傳輸、圖像分析以及動(dòng)畫制作、電影合成、甚至醫(yī)學(xué)圖像處理中都有著相當(dāng)廣泛的應(yīng)用。比如要在1024 X 768 分辨率的顯示器上全屏顯示800 X 600 的數(shù)

    2024年02月11日
    瀏覽(23)
  • 圖像超分辨率重建(pytorch)

    圖像超分辨率重建(pytorch)

    ?????????本文代碼主體來自CVPR2020論文《Closed-loop matters: Dual regression networks for single image super-resolution》,但原作者并未提供論文亮點(diǎn)--如何使用unpair數(shù)據(jù)進(jìn)行訓(xùn)練的代碼,所以我在其基礎(chǔ)上補(bǔ)齊了該過程的代碼。 ? ? ? ? 代碼倉(cāng)庫(kù):https://github.com/VitaminyW/Super_Solution ? ? ?

    2024年01月16日
    瀏覽(25)
  • ?目標(biāo)檢測(cè)算法——YOLOv5/YOLOv7改進(jìn)之結(jié)合?SOCA(單幅圖像超分辨率)
CVPR19 單幅圖像超分辨率來了!??!

    ?目標(biāo)檢測(cè)算法——YOLOv5/YOLOv7改進(jìn)之結(jié)合?SOCA(單幅圖像超分辨率) CVPR19 單幅圖像超分辨率來了?。?!

    (一)前沿介紹 論文題目:Second-order Attention Network for Single Image Super-Resolution 論文地址:CVPR19 超分辨率 代碼地址:https://github.com/daitao/SAN 1.SOCA moudle結(jié)構(gòu)圖 2.相關(guān)實(shí)驗(yàn)結(jié)果 (二)YOLOv5/YOLOv7改進(jìn)之結(jié)合?SOCA 1.配置common.py文件 2.配置yolo.py文件 3.配置yolov5/yolov7_SOCA moudle.yaml文件

    2023年04月23日
    瀏覽(37)
  • 無(wú)人機(jī)航拍圖像的空間分辨率計(jì)算

    無(wú)人機(jī)航拍圖像的空間分辨率計(jì)算

    GSD:無(wú)人機(jī)/遙感衛(wèi)星的空間分辨率,指航片/遙感影像一個(gè)像素點(diǎn)代表的空間距離。 計(jì)算公式: d:?jiǎn)挝籧m、指空間分辨率。 s:?jiǎn)挝沪蘭、指像元大小(像素間距)。 H:?jiǎn)挝籱、指飛行高度。 f:?jiǎn)挝籱m、指焦段(即鏡頭的焦段)。 注意:計(jì)算時(shí)統(tǒng)一單位。同時(shí),更值得注意的

    2024年02月01日
    瀏覽(30)
  • 【圖像超分辨率重建】——GRL論文精讀筆記

    【圖像超分辨率重建】——GRL論文精讀筆記

    作者: Yawei Li1 Yuchen Fan2 Xiaoyu Xiang2 Denis Demandolx2 Rakesh Ranjan2 Radu Timofte1;3 Luc Van Gool1;4 期刊: CVPR 引用: * 摘要: 本文的目的是提出一種機(jī)制,在全局、區(qū)域和局部范圍內(nèi)有效和明確地建立圖像層次模型,用于圖像修復(fù)。為了實(shí)現(xiàn)這一目標(biāo),我們首先分析了自然圖像的兩個(gè)重要

    2024年02月09日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包