其他
一招带你重温经典、重温儿时记忆
前言
项目介绍
老视频修复原理
1.着色模型DeOldify
output_path (str,可选的):输出的文件夹路径,默认值:output。 weight_path (None,可选的):载入的权重路径,如果没有设置,则从云端下载默认的权重到本地。默认值:None。 render_factor (int): 会将该参数乘以16后作为输入帧的resize的值,如果该值设置为32,则输入帧会resize到(32 * 16, 32 * 16)的尺寸再输入到网络中。
2.修复模型 EDVR
output_path (str,可选的):输出的文件夹路径,默认值:output。 weight_path (None,可选的):载入的权重路径,如果没有设置,则从云端下载默认的权重到本地。默认值:None。
3.插帧模型 DAIN
output_path='output',
weight_path=None,
time_step=None,
use_gpu=True,
remove_duplicates=False)
output_path (str,可选的): 输出的文件夹路径,默认值:output. weight_path (None,可选的):载入的权重路径,如果没有设置,则从云端下载默认的权重到本地。默认值:None。 time_step (int): 补帧的时间系数,如果设置为0.5,则原先为每秒30帧的视频,补帧后变为每秒60帧。 remove_duplicates (bool,可选的): 是否删除重复帧,默认值:False。
代码展示
安装PaddleGAN
%cd PaddleGAN/
!pip install -v -e .
环境配置
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")
导入视频
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 = '/home/aistudio/moderntimes.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())
修复视频
!python tools/video-enhance.py --input /home/aistudio/moderntimes.mp4 \
--process_order DAIN DeOldify EDVR \
--output output_dir
导出视频
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).to_html5_video())
效果展示
1.《摩登时代》修复效果展示
2.《昨日重现》修复效果展示
小结
END