Python圖片視頻超分模型RealBasicVSR的使用教程
前言
很久沒(méi)更新這個(gè)專欄了,最近比較忙。前段時(shí)間看到了這個(gè)模型覺(jué)著很有意思,弄下來(lái)自己玩了玩,但是沒(méi)時(shí)間寫文章,一直擱置到現(xiàn)在。
廢話不多說(shuō),先上Github地址: RealBasicVSR地址

從給出的效果來(lái)看,還是很不錯(cuò)的,左側(cè)是超分后的畫面,右邊是原畫質(zhì),得到明顯提升。下面我說(shuō)一下我的安裝過(guò)程,還有一些使用中的踩坑,讓大家去測(cè)試項(xiàng)目的時(shí)候可以提前規(guī)避。
安裝
項(xiàng)目拉下來(lái)之后,我們先打開(kāi)README,看看說(shuō)明。

安裝的步驟不多,但是還是有一些坑的,下面是我的安裝步驟,如果你們自己安裝的有問(wèn)題的話,可以參考一下我的步驟。
1、虛擬環(huán)境創(chuàng)建
作者沒(méi)有給出需要的python版本,這里我用的python3.8
conda create -n real python=3.8 conda activate real
2、安裝pytorch
這里本來(lái)我以為我現(xiàn)在的最新版本可以跑的,后面發(fā)現(xiàn)不行,所以老老實(shí)實(shí)的按照作者的版本安裝。
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1 -c pytorch
3、安裝openmim
這里沒(méi)什么好說(shuō)的,裝就完了。
pip install openmim -i https://pypi.douban.com/simple
4、安裝mmcv-full
同上
mim install mmcv-full
5、安裝mmedit
同上
pip install mmedit -i https://pypi.douban.com/simple
6、安裝scipy
這個(gè)作者沒(méi)寫,但是要裝。
pip install scipy -i https://pypi.douban.com/simple
7、模型下載

嗯,在外網(wǎng)比較難下,我下好了,放到我的百度云盤。
鏈接 提取碼:1234
在項(xiàng)目中創(chuàng)建文件夾checkpoints,把下載的文件放進(jìn)去。如下圖

使用
ok,環(huán)境裝好了,我們看看怎么使用。

作者提供了圖片文件夾處理方式和視頻處理方式,我們挨個(gè)測(cè)一下。
圖片超分
我就不準(zhǔn)備用作者提供的demo圖了,我自己找了一張,如下圖。

圖片尺寸

放置目錄如下

執(zhí)行命令如下
python inference_realbasicvsr.py configs/realbasicvsr_x4.py checkpoints/RealBasicVSR_x4.pth data/demo_001 results/demo_001
執(zhí)行結(jié)果
2022-05-08 10:57:06,303 - mmedit - INFO - load checkpoint from torchvision path: torchvision://vgg19
load checkpoint from local path: checkpoints/RealBasicVSR_x4.pth
/home/zhangmaolin/.local/lib/python3.7/site-packages/torch/functional.py:445: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ../aten/src/ATen/native/TensorShape.cpp:2157.)
return _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined]
結(jié)果圖如下

可以看出明顯的清楚了很多。
結(jié)果圖尺寸

視頻超分
然后我們看看視頻超分的情況,這部分是有一些坑的,后面會(huì)說(shuō)到。
首先我準(zhǔn)備了一個(gè)視頻,視頻分別率如下。

可以看到視頻分辨率540p。
執(zhí)行命令如下,里面有作者給出樣例沒(méi)有的參數(shù),我后面注意里面會(huì)解釋。
python inference_realbasicvsr.py configs/realbasicvsr_x4.py checkpoints/RealBasicVSR_x4.pth data/12345.mp4 results/demo_123.mp4 --fps=25 --max_seq_len=2
執(zhí)行結(jié)果
2022-05-08 11:02:01,023 - mmedit - INFO - load checkpoint from torchvision path: torchvision://vgg19
load checkpoint from local path: checkpoints/RealBasicVSR_x4.pth
/home/zhangmaolin/.local/lib/python3.7/site-packages/torch/functional.py:445: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ../aten/src/ATen/native/TensorShape.cpp:2157.)
return _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined]
最終視頻分辨率情況

注意
1、首先,視頻原長(zhǎng)度是2分鐘的,我截取到5s的視頻進(jìn)行超分處理的。不然會(huì)顯存溢出。
2、--max_seq_len=2參數(shù)也是為了避免顯存溢出,總的來(lái)看,這個(gè)模型不太適合直接跑視頻,最好的方式還是跑圖片序列,然后最后壓縮圖片為視頻比較好。
壓縮圖片為對(duì)比視頻樣例
作者給了一個(gè)demo程序可以將輸出的圖片壓縮為前后對(duì)比視頻,如下圖說(shuō)明。

我測(cè)試了一下,代碼這里需要改動(dòng)一下,代碼框出的部分需要把注釋取消。

對(duì)比視頻如下圖,左邊為超分后效果,右邊為原圖效果。

總結(jié)
總的來(lái)說(shuō),該模型處理圖片還是效果很好的,可以稍微改造一下
以上就是Python圖片視頻超分模型RealBasicVSR的使用教程的詳細(xì)內(nèi)容,更多關(guān)于Python RealBasicVSR的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
如何創(chuàng)建一個(gè)Flask項(xiàng)目并進(jìn)行簡(jiǎn)單配置
這篇文章主要介紹了如何創(chuàng)建一個(gè)Flask項(xiàng)目并進(jìn)行簡(jiǎn)單配置,幫助大家更好的理解和學(xué)習(xí)flask框架,感興趣的朋友可以了解下2020-11-11
如何準(zhǔn)確判斷請(qǐng)求是搜索引擎爬蟲(蜘蛛)發(fā)出的請(qǐng)求
我們的網(wǎng)站經(jīng)常被各種蜘蛛爬蟲光顧,由于這些爬蟲都有UserAgent,所以很多朋友使用UserAgent判斷請(qǐng)求的發(fā)起者是否是搜索引擎爬蟲的方式是很不準(zhǔn)確的,接下來(lái),通過(guò)本篇文章給大家介紹準(zhǔn)確判斷請(qǐng)求是搜索引擎爬蟲(蜘蛛)發(fā)出的請(qǐng)求的方法,需要的朋友可以參考下2015-10-10
對(duì)python中dict和json的區(qū)別詳解
今天小編就為大家分享一篇對(duì)python中dict和json的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
Python極簡(jiǎn)代碼實(shí)現(xiàn)楊輝三角示例代碼
楊輝三角形因?yàn)槠湫问胶?jiǎn)單,又有一定的使用價(jià)值,因此是入門編程題中被用的最多的,也是很好的語(yǔ)言實(shí)例標(biāo)的。這篇文章就給大家介紹了Python極簡(jiǎn)代碼實(shí)現(xiàn)楊輝三角的方法,文章給出了詳細(xì)的示例代碼和解釋,對(duì)大家理解很有幫助,感興趣的朋友們下面來(lái)一起看看吧。2016-11-11
Python3用tkinter和PIL實(shí)現(xiàn)看圖工具
這篇文章給大家分享了Python3用tkinter和PIL實(shí)現(xiàn)看圖工具的詳細(xì)實(shí)例代碼,有興趣的朋友參考學(xué)習(xí)下。2018-06-06
Python 自制簡(jiǎn)單版《我的世界》的詳細(xì)過(guò)程
這篇文章主要介紹了教你用 Python 自制簡(jiǎn)單版《我的世界》,接下來(lái),我們就帶你運(yùn)行這個(gè)項(xiàng)目,并對(duì)這個(gè)開(kāi)源的小游戲做一下簡(jiǎn)單的更改,讓它變成“你的”世界2021-11-11
Python的Django框架實(shí)現(xiàn)數(shù)據(jù)庫(kù)查詢(不返回QuerySet的方法)
這篇文章主要介紹了Python的Django框架實(shí)現(xiàn)數(shù)據(jù)庫(kù)查詢(不返回QuerySet的方法)2020-05-05

