日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

衡兰芷若成绝响,人间不见周海媚(4k修复基于PaddleGan)

發(fā)布時間:2023/12/24 windows 50 coder
生活随笔 收集整理的這篇文章主要介紹了 衡兰芷若成绝响,人间不见周海媚(4k修复基于PaddleGan) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一代人有一代人的經(jīng)典回憶,1994年由周海媚、馬景濤、葉童主演的《神雕俠侶》曾經(jīng)風(fēng)靡一時,周海媚所詮釋的周芷若凝聚了漢水之鐘靈,峨嵋之毓秀,遇雪尤清,經(jīng)霜更艷,俘獲萬千觀眾,成為了一代人的共同記憶。

如今美人仙去,回望經(jīng)典,雪膚依然,花貌如昨,白璧微瑕之處是九十年代電視劇的分辨率有些低,本次我們利用百度自研框架PaddleGan的視頻超分SOTA算法來對九十年代電視劇進(jìn)行4K修復(fù)。

配置PaddlePaddle框架

PaddlePaddle框架需要本地環(huán)境支持CUDA和cudnn,具體請參照:聲音好聽,顏值能打,基于PaddleGAN給人工智能AI語音模型配上動態(tài)畫面(Python3.10),囿于篇幅,這里不再贅述。

接著去PaddlePaddle官網(wǎng)查看本地cudnn對應(yīng)的paddlepaddle版本:

https://www.paddlepaddle.org.cn/

輸入命令查看本地cudnn版本:

nvcc --version  
nvcc: NVIDIA (R) Cuda compiler driver  
Copyright (c) 2005-2022 NVIDIA Corporation  
Built on Tue_Mar__8_18:36:24_Pacific_Standard_Time_2022  
Cuda compilation tools, release 11.6, V11.6.124  
Build cuda_11.6.r11.6/compiler.31057947_0

可以看到版本是11.6

隨后安裝對應(yīng)11.6的最新paddle-gpu版本:



python -m pip install paddlepaddle-gpu==2.5.2.post116 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html


注意這里的最新版是paddlepaddle-gpu2.5.2.post116,而非之前的paddlepaddle-gpu2.4.2.post116

安裝成功后,進(jìn)行檢測:

PS C:\Users\zcxey> python  
Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr  5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)] on win32  
Type "help", "copyright", "credits" or "license" for more information.  
>>> import paddle  
>>> paddle.utils.run_check()  
Running verify PaddlePaddle program ...  
I1214 14:38:08.825912  4800 interpretercore.cc:237] New Executor is Running.  
W1214 14:38:08.827040  4800 gpu_resources.cc:119] Please NOTE: device: 0, GPU Compute Capability: 8.9, Driver API Version: 12.3, Runtime API Version: 11.6  
W1214 14:38:08.829569  4800 gpu_resources.cc:149] device: 0, cuDNN Version: 8.4.  
I1214 14:38:12.468061  4800 interpreter_util.cc:518] Standalone Executor is Used.  
PaddlePaddle works well on 1 GPU.  
PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.

說明PaddlePaddle的配置沒有問題。

隨后克隆項目并且進(jìn)行編譯:

git clone https://gitee.com/PaddlePaddle/PaddleGAN  
cd PaddleGAN   
pip3 install -v -e .

視頻修復(fù)超分模型

關(guān)于視頻修復(fù)超分模型的選擇,這里我們使用百度自研SOTA超分系列模型PP-MSVSR、業(yè)界領(lǐng)先的視頻超分模型還包括EDVR、BasicVSR,IconVSR和BasicVSR++等等。

百度自研的PP-MSVSR是一種多階段視頻超分深度架構(gòu),具有局部融合模塊、輔助損失和細(xì)化對齊模塊,以逐步細(xì)化增強(qiáng)結(jié)果。具體來說,在第一階段設(shè)計了局部融合模塊,在特征傳播之前進(jìn)行局部特征融合, 以加強(qiáng)特征傳播中跨幀特征的融合。在第二階段中引入了一個輔助損失,使傳播模塊獲得的特征保留了更多與HR空間相關(guān)的信息。在第三階段中引入了一個細(xì)化的對齊模塊,以充分利用前一階段傳播模塊的特征信息。大量實驗證實,PP-MSVSR在Vid4數(shù)據(jù)集性能優(yōu)異,僅使用 1.45M 參數(shù)PSNR指標(biāo)即可達(dá)到28.13dB。

PP-MSVSR提供兩種體積模型,開發(fā)者可根據(jù)實際場景靈活選擇:PP-MSVSR(參數(shù)量1.45M)與PP-MSVSR-L(參數(shù)量7.42)。

關(guān)于EDVR:

EDVR模型在NTIRE19視頻恢復(fù)和增強(qiáng)挑戰(zhàn)賽的四個賽道中都贏得了冠軍,并以巨大的優(yōu)勢超過了第二名。視頻超分的主要難點在于(1)如何在給定大運(yùn)動的情況下對齊多個幀;(2)如何有效地融合具有不同運(yùn)動和模糊的不同幀。首先,為了處理大的運(yùn)動,EDVR模型設(shè)計了一個金字塔級聯(lián)的可變形(PCD)對齊模塊,在該模塊中,從粗到精的可變形卷積被使用來進(jìn)行特征級的幀對齊。其次,EDVR使用了時空注意力(TSA)融合模塊,該模塊在時間和空間上同時應(yīng)用注意力機(jī)制,以強(qiáng)調(diào)后續(xù)恢復(fù)的重要特征。

關(guān)于BasicVSR:

BasicVSR在VSR的指導(dǎo)下重新考慮了四個基本模塊(即傳播、對齊、聚合和上采樣)的一些最重要的組件。 通過添加一些小設(shè)計,重用一些現(xiàn)有組件,得到了簡潔的 BasicVSR。與許多最先進(jìn)的算法相比,BasicVSR在速度和恢復(fù)質(zhì)量方面實現(xiàn)了有吸引力的改進(jìn)。 同時,通過添加信息重新填充機(jī)制和耦合傳播方案以促進(jìn)信息聚合,BasicVSR 可以擴(kuò)展為 IconVSR,IconVSR可以作為未來 VSR 方法的強(qiáng)大基線 .

關(guān)于BasicVSR++:

BasicVSR++通過提出二階網(wǎng)格傳播和導(dǎo)流可變形對齊來重新設(shè)計BasicVSR。通過增強(qiáng)傳播和對齊來增強(qiáng)循環(huán)框架,BasicVSR++可以更有效地利用未對齊視頻幀的時空信息。 在類似的計算約束下,新組件可提高性能。特別是,BasicVSR++ 以相似的參數(shù)數(shù)量在 PSNR 方面比 BasicVSR 高0.82dB。BasicVSR++ 在NTIRE2021的視頻超分辨率和壓縮視頻增強(qiáng)挑戰(zhàn)賽中獲得三名冠軍和一名亞軍。

在當(dāng)前參數(shù)量小于6M的輕量化視頻超分模型在 UDM10 數(shù)據(jù)集上的PSNR指標(biāo)對比上,PP-MSVSR可謂是“遙遙領(lǐng)先”:

視頻修復(fù)實踐

PP-MSVSR提供兩種體積模型,開發(fā)者可根據(jù)實際場景靈活選擇:PP-MSVSR(參數(shù)量1.45M)與PP-MSVSR-L(參數(shù)量7.42)。這里推薦使用后者,因為該大模型的參數(shù)量更大,修復(fù)效果更好:

ppgan.apps.PPMSVSRLargePredictor(output='output', weight_path=None, num_frames)

參數(shù)說明:

output_path (str,可選的): 輸出的文件夾路徑,默認(rèn)值:output.  
weight_path (None,可選的): 載入的權(quán)重路徑,如果沒有設(shè)置,則從云端下載默認(rèn)的權(quán)重到本地。默認(rèn)值:None.  
num_frames (int,可選的): 模型輸入幀數(shù),默認(rèn)值:10.輸入幀數(shù)越大,模型超分效果越好。

隨后進(jìn)入項目的根目錄:

cd PaddleGAN

編寫test.py來查看視頻參數(shù):

import cv2  
import imageio  
import numpy as np  
import matplotlib.pyplot as plt  
import matplotlib.animation as animation  
from IPython.display import HTML  
import warnings  
warnings.filterwarnings("ignore")  
  
def display(driving, fps, size=(8, 6)):  
    fig = plt.figure(figsize=size)  
  
    ims = []  
    for i in range(len(driving)):  
        cols = []  
        cols.append(driving[i])  
  
        im = plt.imshow(np.concatenate(cols, axis=1), animated=True)  
        plt.axis('off')  
        ims.append([im])  
  
    video = animation.ArtistAnimation(fig, ims, interval=1000.0/fps, repeat_delay=1000)  
  
    plt.close()  
    return video  
  
video_path = 'd:/倚天屠龍記.mp4'  
video_frames = imageio.mimread(video_path, memtest=False)  
  
# 獲得視頻的原分辨率  
cap = cv2.VideoCapture(video_path)  
fps = cap.get(cv2.CAP_PROP_FPS)  
      
  
HTML(display(video_frames, fps).to_html5_video())

如此,就可以獲得視頻的原分辨率。

隨后,進(jìn)入項目的根目錄,執(zhí)行修復(fù)命令:

python3 tools/video-enhance.py --input d:/倚天屠龍記.mp4 \  
                               --process_order PPMSVSR \  
                               --output d:/output_dir \  
                               --num_frames 100

這里使用PPMSVSR模型對該視頻進(jìn)行修復(fù),input參數(shù)表示輸入的視頻路徑;output表示處理后的視頻的存放文件夾;proccess_order 表示使用的模型和順序;num_frames 表示模型輸入幀數(shù)。

隨后展示修復(fù)后的視頻:

output_video_path = 'd:/倚天屠龍記_PPMSVSR_out.mp4'  
  
video_frames = imageio.mimread(output_video_path, memtest=False)  
  
# 獲得視頻的原分辨率  
cap = cv2.VideoCapture(output_video_path)  
fps = cap.get(cv2.CAP_PROP_FPS)  
      
  
HTML(display(video_frames, fps, size=(16, 12)).to_html5_video())

修復(fù)效果:

除了視頻超分外,PaddleGAN中還提供了視頻上色與補(bǔ)幀的功能,配合上述的PP-MSVSR一起使用,即可實現(xiàn)視頻清晰度提高、色彩豐富、播放更加行云流水。

補(bǔ)幀模型DAIN

DAIN 模型通過探索深度的信息來顯式檢測遮擋。并且開發(fā)了一個深度感知的流投影層來合成中間流。在視頻補(bǔ)幀方面有較好的效果:

ppgan.apps.DAINPredictor(  
                        output_path='output',  
                        weight_path=None,  
                        time_step=None,  
                        use_gpu=True,  
                        remove_duplicates=False)

參數(shù):

output_path (str,可選的): 輸出的文件夾路徑,默認(rèn)值:output.  
weight_path (None,可選的): 載入的權(quán)重路徑,如果沒有設(shè)置,則從云端下載默認(rèn)的權(quán)重到本地。默認(rèn)值:None。  
time_step (int): 補(bǔ)幀的時間系數(shù),如果設(shè)置為0.5,則原先為每秒30幀的視頻,補(bǔ)幀后變?yōu)槊棵?0幀。  
remove_duplicates (bool,可選的): 是否刪除重復(fù)幀,默認(rèn)值:False.

上色模型DeOldifyPredictor

DeOldify 采用自注意力機(jī)制的生成對抗網(wǎng)絡(luò),生成器是一個U-NET結(jié)構(gòu)的網(wǎng)絡(luò)。在圖像的上色方面有著較好的效果:

ppgan.apps.DeOldifyPredictor(output='output', weight_path=None, render_factor=32)

參數(shù):

output_path (str,可選的): 輸出的文件夾路徑,默認(rèn)值:output.  
weight_path (None,可選的): 載入的權(quán)重路徑,如果沒有設(shè)置,則從云端下載默認(rèn)的權(quán)重到本地。默認(rèn)值:None。  
render_factor (int): 會將該參數(shù)乘以16后作為輸入幀的resize的值,如果該值設(shè)置為32, 則輸入幀會resize到(32 * 16, 32 * 16)的尺寸再輸入到網(wǎng)絡(luò)中。

結(jié)語

AI技術(shù)通過分析視頻中的圖像信息并應(yīng)用圖像處理和修復(fù)算法,自動修復(fù)視頻中的缺陷、噪聲、模糊等問題,以提高視頻的觀看質(zhì)量和可用性,配合語音克隆等技術(shù),從而讓演員在某種程度上實現(xiàn)“數(shù)字永生”。

總結(jié)

以上是生活随笔為你收集整理的衡兰芷若成绝响,人间不见周海媚(4k修复基于PaddleGan)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。