网站开发 图片存放,库车网站建设,做公司网站有什么需要注意的,手机网站建设策划书目录
一.引言
二.GFP-GAN 简介
1.GFP-GAN 数据
2.GFP-GAN 架构
3.GFP-GAN In Wave2Lip
三.GFPGAN 实践
1.环境搭建
2.模型下载
3.代码测试
4.测试效果
四.总结 一.引言
近期 wav2lip 大火#xff0c;其通过语音驱动唇部动作并对视频质量进行修复#xff0c;其中…
目录
一.引言
二.GFP-GAN 简介
1.GFP-GAN 数据
2.GFP-GAN 架构
3.GFP-GAN In Wave2Lip
三.GFPGAN 实践
1.环境搭建
2.模型下载
3.代码测试
4.测试效果
四.总结 一.引言
近期 wav2lip 大火其通过语音驱动唇部动作并对视频质量进行修复其中涉及到三个知识点:
◆ tts 文本到语音转化
◆ wav2lip 语音驱动唇部动作
◆ GFP-GAN 图像质量修复
本文主要介绍腾讯在人像复原、超分等方面的佳作 GFP-GAN。其在 wav2lip 中扮演视频质量判别器的任务负责对嘴唇修复后的图像帧进行质量修复提供更高质量的视频效果。 可以看到与多种新兴方法相比GFP-GAN 的效果相对更优。 二.GFP-GAN 简介
1.GFP-GAN 数据
GFP-GAN 基于 FFHQ 上训练由 70000 张高质量图像组成。在训练过程中将所有图像的大小调整为5122。GFP-GAN是在合成数据上训练的这些合成数据近似于真实的低质量图像并在推理过程中推广到真实世界的图像。我们遵循惯例采用以下退化模型: ◆ kσ 高斯模糊 - 高质量图像 y 首先与高斯进行卷积模糊核 kσ采样范围 [0.2:10]
◆ r - 基于比例因子 r 进行下采样采样范围 [1:8]
◆ nδ - 添加高斯白噪声采样范围 [0:15]
◆ JPEGq - 具有质量因子 q 的 JPEG 图像采样范围 [60: 100]
从这个样本构造的过程也可以看出GFP-GAN 是一种无监督或者是自监督的训练模型其不需要人工的标注数据。除此之外我们在色彩增强训练中添加色彩抖动。下图是图像模型在三个真实世界数据集的定性比较通过放大以获得最佳视图 2.GFP-GAN 架构
GFP-GAN 模型主要用到了一个 Degradation Removal 退化清除模块其引入了 Restoration Loss 面部恢复损失和一个预训练的 GAN 作为先验。二者通过 Channel-Split SFT 进行桥接。训练过程由 3 类 Loss 混合控制
◆ Adversarial Loss -中间恢复 Loss 消除复杂退化
◆ Facial Component Loss - 面部成分 Loss 增强面部细节
◆ Identify Preserving Loss - 身份保留 Loss 以保留人脸身份 其整个恢复训练过程就像低维向量 X 向高维向量 Y 的重建过程。借助 GFP-GAN我们可以将视频关键帧进行截取与处理最终拼接为高质量的视频。 3.GFP-GAN In Wave2Lip wav2lip 模型的训练分为两个阶段第一阶段是专家音频和口型同步判别器预训练第二阶段是GAN网络训练。训练部分包括一个生成器和两个判别器这里的两个判别器分别是专家音频和口型同步判别器和视觉质量判别器前者预训练完毕后在GAN训练过程中保持冻结。GFP-GAN 在这里扮演视觉质量判别器的任务其有多个卷积块组成训练目标是最大化目标函数 Ldisc: 其中 Lg 对应生成器 G 生成的图像LG 对应真实图像。其中最右侧的 Visual Quality Discriminator 视觉质量鉴别器用于引入视频质量的 Loss 进行图像修复。其训练数据可以参照 LRS2 数据集这是一个来自 BBC 的唇语视频包含 4w 多个口语句子。其中推荐视频帧率为 25fps音频采样率为 16k视频一帧对应音频块的长度为 16 三.GFPGAN 实践
1.环境搭建
◆ 创建 Python 环境 需要 python 3.7 且 PyTorch 1.7我们直接创建并激活 Python 3.8 的新环境
conda create --name GFP-GAN python3.8
conda activate GFP-GAN◆ Clone repo
git clone https://github.com/TencentARC/GFPGAN.git
cd GFPGAN
◆ Install dependent packages
# Install basicsr - https://github.com/xinntao/BasicSR
# We use BasicSR for both training and inference
pip install basicsr# Install facexlib - https://github.com/xinntao/facexlib
# We use face detection and face restoration helper in the facexlib package
pip install facexlibpip install -r requirements.txt
python setup.py develop# If you want to enhance the background (non-face) regions with Real-ESRGAN,
# you also need to install the realesrgan package
pip install realesrgan
最终的 py 3.8 其余 package 依赖版本如下:
torch2.0.1
torchvision0.15.2
basicsr1.4.2
facexlib0.3.0
realesrgan0.3.0
opencv-python4.8.1.78
scipy1.11.3 2.模型下载 官方 Githuba 提供三个修复模型供使用:
◆ V1 - Paper 中对应模型带彩色。
◆ V2 - 无着色不需要CUDA扩展。通过预处理使用更多数据进行训练。
◆ V3 - 基于V1.2更自然的恢复结果在非常低质量 / 高质量的输入上获得更好的结果。
我们这里直接下载 V1.3 对应的 GFPGANv1.3.pth大小约为 333 M:
wget https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth -P experiments/pretrained_models3.代码测试
这里快速测试的话只需要 -i 传入图片对应的文件夹-o 传入输出地址
python inference_gfpgan.py -i inputs/whole_imgs -o results -v 1.3 -s 2-v 代表模型版本-s 代表上采样比例由于原始代码中逻辑涉及到从 URL 中获取 .pth 的复原模型所以我们需要对代码稍作修改避免网络原因导致模型下载失败进而异常。
◆ 直接指定模型避免 URL 下载 直接将下载好的 .pth 的模型全路径传给 model_path 即可除此之外 gfpgan/weights 下面还需要下载两个辅助的 .pth 模型这里需要等代码执行完毕如果中途退出下载再运行会在加载时报模型文件异常:
RuntimeError: unexpected EOF, expected xxx more bytes. The file might be corrupted. 4.测试效果
运行结束后会得到多个文件夹: ◆ cmp 即为 compare 对应每个人物的修复效果前后对比
◆ cropped_faces 为裁剪得到的原始人脸图像
◆ restored_faces 为对应的修复人脸图像
◆ restored_imgs 为完整的修复图像。
为了获得比较真实的老图我们上网找到了三张老板本 三国演义 的剧照看看整体恢复效果 再看看不同角色的对比修复效果 case 整体的修复效果还是不错的不过鲁肃脸上由于光线的原因修复后有些棱角分明。 四.总结
上面是一些 GFP-GAN 的基本信息与调用流程官方 Github 还提供了自定义的训练脚本如果有自己场景的图像数据也可以对模型持续训练。后面有空我们也会分享 wave2lip 的其他相关知识。 参考数据与链接
LRS2: LRS2数据集处理
GFP-GAN 论文: https://arxiv.org/pdf/2101.04061.pdf
GFP-GAN 代码: GitHub - developing Practical Algorithms for Real-world Face Restoration.
Wave2Lip 论文: http://cdn.iiit.ac.in/cdn/cvit.iiit.ac.in/images/Projects/Speech-to-Lip/paper.pdf