当前位置:   article > 正文

AI 修复老视频,重温儿时的记忆

手机可以修复老视频

点击左上方蓝字关注我们


前言

每个人心中总有那么几部挥之不去的老电影,然而,电视中播放出那些熟悉的经典镜头时,很多时候画面模糊,难以体验到高清质感带来的视觉享受。随着科技的发展,现在家庭大多使用4K高清电视,不要说480P、720P,就连1080P都满足不了高品质家庭的观影需求,所以非4K转4K、8K HDR高清视频将成为市场主流趋势。

值得庆幸的是AI视频修复横空出世了,它并不是简单地把低分辨率的视频放大输出成高分辨率,而是通过生成对抗网络(Generative Adversarial Networks,GAN),实现老视频修复。

项目介绍

飞桨生成对抗网络开发套件PaddleGAN,集成风格迁移、超分辨率、动漫画生成、图片上色、人脸属性编辑、妆容迁移等SOTA算法,以及预训练模型。并且模块化设计,以便开发者进行二次研发,或是直接使用预训练模型做应用。

本项目就是基于PaddleGAN中的着色算法、修复算法、插帧算法模型,从而轻松实现了低清黑白电影转变成高清彩色电影,修复老电影磨损划痕画面,提高帧率让画面人物动作更流畅,还可以增强色彩使画质更饱满,AI修复后效果能达到高清标准,满足了人们日益增长的美好生活需要,让你在重温经典的同时,更能享受影院级画质,让记忆更清晰,让经典永留存。

老视频修复原理

1.着色模型DeOldify

图1 DeOldify 模型示意图

DeOldify 是用于着色和恢复旧图像及视频的深度学习项目,它采用自注意力机制的生成对抗网络。它采用了 NoGAN (一种新型的、高效的图像到图像)的生成对抗网络训练方法,可以更好地处理细节效果,渲染也更逼真,在图像的着色方面有着较好的效果。NoGAN 训练结合了 GAN 训练的优点(好看的色彩),同时消除了令人讨厌的副作用(如视频中的闪烁物体)。NoGAN 生成器是一个U-NET结构的网络,进行了预训练,使其利用常规损失函数,变得更强大、更快、更可靠。DeOldify 修复的老视频由孤立的图像生成,而不添加任何时间建模。该过程执行 30-60 分钟 “NoGAN” 训练的 GAN 部分,每次使用 1% 至 3% 的图像网络(ImageNet)数据。然后,与静止图像着色一样,在重建视频之前对各个帧进行“去旧化 ”。

以下是PaddleGAN中着色模型DeOldify模型的代码:

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

参数解释:

  • output_path (str,可选的):输出的文件夹路径,默认值:output。

  • weight_path (None,可选的):载入的权重路径,如果没有设置,则从云端下载默认的权重到本地。默认值:None。

  • render_factor (int): 会将该参数乘以16后作为输入帧的resize的值,如果该值设置为32,则输入帧会resize到(32 * 16, 32 * 16)的尺寸再输入到网络中。

2.修复模型 EDVR

图2 EDVR 模型示意图

EDVR模型提出了一个新颖的还原框架——视频具有增强可变形卷积。这个模型有以下两个特点:第一,为了处理大动作而设计的一个金字塔,级联和可变形(PCD)对齐模块,使用可变形卷积以从粗到精的方式在特征级别完成对齐;第二,提出时空注意力机制(TSA)融合模块,在时间和空间上都融合了注意机制,用以增强复原的功能。

以下是PaddleGAN中修复模型EDVR模型的代码:

  1. ppgan.apps.EDVRPredictor(output='output', weight_path=None)

参数:

  • output_path (str,可选的):输出的文件夹路径,默认值:output。

  • weight_path (None,可选的):载入的权重路径,如果没有设置,则从云端下载默认的权重到本地。默认值:None。

3.插帧模型 DAIN

图3 DAIN 模型示意图

DAIN(深度感知视频帧插值)模型通过探索深度的信息来显式检测遮挡。并且开发了一个深度感知的流投影层来合成中间流。在视频补帧方面有较好的效果,它可以“脑补”缺失的帧并插入现有视频剪辑的关键帧之间。换句话说,DAIN首先分析并映射视频片段,然后插入在现有图像之间生成填充图像。

以下是PaddleGAN中插帧模型 DAIN的代码:

  1. ppgan.apps.DAINPredictor(
  2.                         output_path='output',
  3.                         weight_path=None,
  4.                         time_step=None,
  5.                         use_gpu=True,
  6.                         remove_duplicates=False)

参数:

  • output_path (str,可选的): 输出的文件夹路径,默认值:output.

  • weight_path (None,可选的):载入的权重路径,如果没有设置,则从云端下载默认的权重到本地。默认值:None。

  • time_step (int): 补帧的时间系数,如果设置为0.5,则原先为每秒30帧的视频,补帧后变为每秒60帧。

  • remove_duplicates (bool,可选的): 是否删除重复帧,默认值:False。

代码展示

  1. 安装PaddleGAN

  1. !git clone https://gitee.com/paddlepaddle/PaddleGAN.git
  2. %cd PaddleGAN/
  3. !pip install -v -e .
  1. 环境配置

  1. import cv2
  2. import imageio
  3. import numpy as np
  4. import matplotlib.pyplot as plt
  5. import matplotlib.animation as animation
  6. from IPython.display import HTML
  7. import warnings
  8. warnings.filterwarnings("ignore")
  1. 导入视频

  1. def display(driving, fps, size=(86)):
  2.     fig = plt.figure(figsize=size)
  3.     ims = []
  4.     for i in range(len(driving)):
  5.         cols = []
  6.         cols.append(driving[i])
  7.         im = plt.imshow(np.concatenate(cols, axis=1), animated=True)
  8.         plt.axis('off')
  9.         ims.append([im])
  10.     video = animation.ArtistAnimation(fig, ims, interval=1000.0/fps, repeat_delay=1000)
  11.     plt.close()
  12.     return video
  13. video_path = '/home/aistudio/moderntimes.mp4'
  14. video_frames = imageio.mimread(video_path, memtest=False)
  15. cap = cv2.VideoCapture(video_path)
  16. fps = cap.get(cv2.CAP_PROP_FPS)
  17. HTML(display(video_frames, fps).to_html5_video())
  1. 修复视频

  1. %cd /home/aistudio/PaddleGAN/applications/
  2. !python tools/video-enhance.py --input /home/aistudio/moderntimes.mp4 \
  3.                                --process_order DAIN DeOldify EDVR \
  4.                                --output output_dir
  1. 导出视频

  1. output_video_path= '/PaddleGAN/applications/output_dir/EDVR/moderntimes_deoldify_out_edvr_out.mp4' 
  2. video_frames = imageio.mimread(output_video_path, memtest=False)
  3. cap = cv2.VideoCapture(output_video_path)
  4. fps = cap.get(cv2.CAP_PROP_FPS)
  5. HTML(display(video_frames, fps).to_html5_video())

效果展示

1.《摩登时代》修复效果展示

AI Studio项目地址:

https://aistudio.baidu.com/aistudio/projectdetail/1839885

图4 《摩登时代》修复前

图5 《摩登时代》修复后

2.《昨日重现》修复效果展示

AI Studio项目地址:

https://aistudio.baidu.com/aistudio/projectdetail/1839881

B站:

https://www.bilibili.com/video/BV1cb4y1f7ss

小结

AI 修复老视频,相比专业视频修复,效果上仍然有所欠缺,比如有些场景颜色修复的不够自然、色彩饱和度不够理想、光线阴影偏暗等,但发展空间很大。以2019年国庆档《开国大典》为例,电影修复技术主要负责人周苏岳介绍,他们是由40人组成的修复团队奋战60天,才将12分12秒长的经典影片修复完成。专业视频修复师1天只能修复1秒,而AI 修复老视频,通过着色算法、修复算法、插帧算法,修复时长1分钟的视频(以《摩登时代》https://aistudio.baidu.com/aistudio/projectdetail/1839885为例)总用时在4小时以内。由此可见,使用 AI 修复视频可以大幅提高视频修复师的工作效率,视频修复师只需要在AI修复的视频基础上再调整光线和增加色彩饱和度,让场景色彩更加自然美观。

如在使用过程中有问题,可加入官方QQ群进行交流:793866180。

如果您想详细了解更多飞桨的相关内容,请参阅以下文档。

·飞桨官网地址·

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

·飞桨开源框架项目地址·

GitHub: https://github.com/PaddlePaddle/Paddle 

Gitee: https://gitee.com/paddlepaddle/Paddle

????长按上方二维码立即star!????

飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,集深度学习核心训练和推理框架、基础模型库、端到端开发套件和丰富的工具组件于一体,是中国首个自主研发、功能完备、开源开放的产业级深度学习平台。飞桨企业版针对企业级需求增强了相应特性,包含零门槛AI开发平台EasyDL和全功能AI开发平台BML。EasyDL主要面向中小企业,提供零门槛、预置丰富网络和模型、便捷高效的开发平台;BML是为大型企业提供的功能全面、可灵活定制和被深度集成的开发平台。

END

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号