专业制作网站是什么,佛山建设小学网站,民间it网站建设,做体育的网站一代人有一代人的经典回忆#xff0c;1994年由周海媚、马景涛、叶童主演的《神雕侠侣》曾经风靡一时#xff0c;周海媚所诠释的周芷若凝聚了汉水之钟灵#xff0c;峨嵋之毓秀#xff0c;遇雪尤清#xff0c;经霜更艳#xff0c;俘获万千观众#xff0c;成为了一代人的共…
一代人有一代人的经典回忆1994年由周海媚、马景涛、叶童主演的《神雕侠侣》曾经风靡一时周海媚所诠释的周芷若凝聚了汉水之钟灵峨嵋之毓秀遇雪尤清经霜更艳俘获万千观众成为了一代人的共同记忆。
如今美人仙去回望经典雪肤依然花貌如昨白璧微瑕之处是九十年代电视剧的分辨率有些低本次我们利用百度自研框架PaddleGan的视频超分SOTA算法来对九十年代电视剧进行4K修复。
配置PaddlePaddle框架
PaddlePaddle框架需要本地环境支持CUDA和cudnn具体请参照声音好听,颜值能打,基于PaddleGAN给人工智能AI语音模型配上动态画面(Python3.10)囿于篇幅这里不再赘述。
接着去PaddlePaddle官网查看本地cudnn对应的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
随后安装对应11.6的最新paddle-gpu版本
python -m pip install paddlepaddle-gpu2.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
安装成功后进行检测
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! Lets start deep learning with PaddlePaddle now.说明PaddlePaddle的配置没有问题。
随后克隆项目并且进行编译
git clone https://gitee.com/PaddlePaddle/PaddleGAN
cd PaddleGAN
pip3 install -v -e .视频修复超分模型
关于视频修复超分模型的选择这里我们使用百度自研SOTA超分系列模型PP-MSVSR、业界领先的视频超分模型还包括EDVR、BasicVSRIconVSR和BasicVSR等等。
百度自研的PP-MSVSR是一种多阶段视频超分深度架构具有局部融合模块、辅助损失和细化对齐模块以逐步细化增强结果。具体来说在第一阶段设计了局部融合模块在特征传播之前进行局部特征融合, 以加强特征传播中跨帧特征的融合。在第二阶段中引入了一个辅助损失使传播模块获得的特征保留了更多与HR空间相关的信息。在第三阶段中引入了一个细化的对齐模块以充分利用前一阶段传播模块的特征信息。大量实验证实PP-MSVSR在Vid4数据集性能优异仅使用 1.45M 参数PSNR指标即可达到28.13dB。
PP-MSVSR提供两种体积模型开发者可根据实际场景灵活选择PP-MSVSR参数量1.45M与PP-MSVSR-L参数量7.42。
关于EDVR
EDVR模型在NTIRE19视频恢复和增强挑战赛的四个赛道中都赢得了冠军并以巨大的优势超过了第二名。视频超分的主要难点在于1如何在给定大运动的情况下对齐多个帧2如何有效地融合具有不同运动和模糊的不同帧。首先为了处理大的运动EDVR模型设计了一个金字塔级联的可变形PCD对齐模块在该模块中从粗到精的可变形卷积被使用来进行特征级的帧对齐。其次EDVR使用了时空注意力TSA融合模块该模块在时间和空间上同时应用注意力机制以强调后续恢复的重要特征。
关于BasicVSR
BasicVSR在VSR的指导下重新考虑了四个基本模块即传播、对齐、聚合和上采样的一些最重要的组件。 通过添加一些小设计重用一些现有组件得到了简洁的 BasicVSR。与许多最先进的算法相比BasicVSR在速度和恢复质量方面实现了有吸引力的改进。 同时通过添加信息重新填充机制和耦合传播方案以促进信息聚合BasicVSR 可以扩展为 IconVSRIconVSR可以作为未来 VSR 方法的强大基线 .
关于BasicVSR:
BasicVSR通过提出二阶网格传播和导流可变形对齐来重新设计BasicVSR。通过增强传播和对齐来增强循环框架BasicVSR可以更有效地利用未对齐视频帧的时空信息。 在类似的计算约束下新组件可提高性能。特别是BasicVSR 以相似的参数数量在 PSNR 方面比 BasicVSR 高0.82dB。BasicVSR 在NTIRE2021的视频超分辨率和压缩视频增强挑战赛中获得三名冠军和一名亚军。
在当前参数量小于6M的轻量化视频超分模型在 UDM10 数据集上的PSNR指标对比上PP-MSVSR可谓是“遥遥领先” 视频修复实践
PP-MSVSR提供两种体积模型开发者可根据实际场景灵活选择PP-MSVSR参数量1.45M与PP-MSVSR-L参数量7.42。这里推荐使用后者因为该大模型的参数量更大修复效果更好
ppgan.apps.PPMSVSRLargePredictor(outputoutput, weight_pathNone, num_frames)参数说明
output_path (str可选的): 输出的文件夹路径默认值output.
weight_path (None可选的): 载入的权重路径如果没有设置则从云端下载默认的权重到本地。默认值None.
num_frames (int可选的): 模型输入帧数默认值10.输入帧数越大模型超分效果越好。随后进入项目的根目录
cd PaddleGAN编写test.py来查看视频参数
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(figsizesize) ims [] for i in range(len(driving)): cols [] cols.append(driving[i]) im plt.imshow(np.concatenate(cols, axis1), animatedTrue) plt.axis(off) ims.append([im]) video animation.ArtistAnimation(fig, ims, interval1000.0/fps, repeat_delay1000) plt.close() return video video_path d:/倚天屠龙记.mp4
video_frames imageio.mimread(video_path, memtestFalse) # 获得视频的原分辨率
cap cv2.VideoCapture(video_path)
fps cap.get(cv2.CAP_PROP_FPS) HTML(display(video_frames, fps).to_html5_video())如此就可以获得视频的原分辨率。
随后进入项目的根目录执行修复命令
python3 tools/video-enhance.py --input d:/倚天屠龙记.mp4 \ --process_order PPMSVSR \ --output d:/output_dir \ --num_frames 100这里使用PPMSVSR模型对该视频进行修复input参数表示输入的视频路径output表示处理后的视频的存放文件夹proccess_order 表示使用的模型和顺序num_frames 表示模型输入帧数。
随后展示修复后的视频
output_video_path d:/倚天屠龙记_PPMSVSR_out.mp4 video_frames imageio.mimread(output_video_path, memtestFalse) # 获得视频的原分辨率
cap cv2.VideoCapture(output_video_path)
fps cap.get(cv2.CAP_PROP_FPS) HTML(display(video_frames, fps, size(16, 12)).to_html5_video())修复效果 除了视频超分外PaddleGAN中还提供了视频上色与补帧的功能配合上述的PP-MSVSR一起使用即可实现视频清晰度提高、色彩丰富、播放更加行云流水。
补帧模型DAIN
DAIN 模型通过探索深度的信息来显式检测遮挡。并且开发了一个深度感知的流投影层来合成中间流。在视频补帧方面有较好的效果
ppgan.apps.DAINPredictor( output_pathoutput, weight_pathNone, time_stepNone, use_gpuTrue, remove_duplicatesFalse)参数
output_path (str可选的): 输出的文件夹路径默认值output.
weight_path (None可选的): 载入的权重路径如果没有设置则从云端下载默认的权重到本地。默认值None。
time_step (int): 补帧的时间系数如果设置为0.5则原先为每秒30帧的视频补帧后变为每秒60帧。
remove_duplicates (bool可选的): 是否删除重复帧默认值False.上色模型DeOldifyPredictor
DeOldify 采用自注意力机制的生成对抗网络生成器是一个U-NET结构的网络。在图像的上色方面有着较好的效果
ppgan.apps.DeOldifyPredictor(outputoutput, weight_pathNone, render_factor32)参数
output_path (str可选的): 输出的文件夹路径默认值output.
weight_path (None可选的): 载入的权重路径如果没有设置则从云端下载默认的权重到本地。默认值None。
render_factor (int): 会将该参数乘以16后作为输入帧的resize的值如果该值设置为32 则输入帧会resize到(32 * 16, 32 * 16)的尺寸再输入到网络中。结语
AI技术通过分析视频中的图像信息并应用图像处理和修复算法自动修复视频中的缺陷、噪声、模糊等问题以提高视频的观看质量和可用性配合语音克隆等技术从而让演员在某种程度上实现“数字永生”。