python 学习笔记24 图片视频修复

这个是python 学习笔记18 GFPGAN人脸(图片)修复_nameerror: name 'fused_act_ext' is not defined-CSDN博客

的后续。

gfpgan衍生出了个Real-ESRGAN,这个更灵活并且能修复一般性图片以及动画,简单上手无门槛。链接如下:

Real-ESRGAN/README_CN.md at master · xinntao/Real-ESRGAN · GitHub

其安装使用和GFPGAN类似,可以参考我上面的链接。

这里另说两个点:

1.免安装版!解压缩后直接放图片或视频在根目录就能处理。

便携版(绿色版)可执行文件

你可以下载支持Intel/AMD/Nvidia显卡的绿色版exe文件: Windows版 / Linux版 / macOS版

绿色版指的是这些exe你可以直接运行(放U盘里拷走都没问题),因为里面已经有所需的文件和模型了。它不需要 CUDA 或者 PyTorch运行环境。

你可以解压缩后通过命令行工具如cmd,进入到解压缩的目录后,通过下面这个命令来运行(Windows版本的例子,更多信息请查看对应版本的README.md):

./realesrgan-ncnn-vulkan.exe -i 输入图像.jpg -o 输出图像.png -n 模型名字

我们提供了五种模型:

  1. realesrgan-x4plus(默认)
  2. reaesrnet-x4plus
  3. realesrgan-x4plus-anime(针对动漫插画图像优化,有更小的体积)
  4. realesr-animevideov3 (针对动漫视频)

你可以通过-n参数来使用其他模型,例如./realesrgan-ncnn-vulkan.exe -i 二次元图片.jpg -o 二刺螈图片.png -n realesrgan-x4plus-anime

补充一下视频修复的方法和原理

上面几个都是针对图片的训练库,所以该工具只是修复图片的工具,那如何修复视频呢?我看了下说明。。。好吧,是利用ffmpeg把视频逐帧分解,然后一帧一帧的利用该工具修复,然后再合并成一个视频。。。,方法如下:

1.先下载ffmpeg:Builds - CODEX FFMPEG @ gyan.dev

这里我是下载的windows版本的,其他版本可以自己去官网下载:Download FFmpeg

2.解压缩该文件,打开cmd,进入到这个类似目录里,C:\Users\d\Downloads\ffmpeg-2024-05-02-git-71669f2ad5-full_build\ffmpeg-2024-05-02-git-71669f2ad5-full_build\bin

就是解压缩后里面就有ffmpeg.exe的文件夹,新建一个tmp_frames文件夹,然后把需要修复的视频拷贝到bin这个文件夹中,如下图sequence03.MP4这个例子:

3.cmd 中 运行 下面的命令:

ffmpeg -i 想修复的视频.mp4 -qscale:v 1 -qmin 1 -qmax 1 -vsync 0 tmp_frames/frame%08d.jpg

4.等待拆分完成后,把tmp_frames这个文件夹剪切到有realesrgan-ncnn-vulkan.exe的文件夹中,并且新建一个out_frames文件夹,如下图:

5.cmd 运行下面的命令,进行每一帧的图片修复,这里不确定除了动画外其他视频的修复效果,因为截至我打完这个文章,代码还没跑完。。。这个超级花时间,我看了下20分钟视频有24000帧的图片,差不多十几个小时才能搞完吧。。。,这里-n 后面不能换成realesrgan-x4plus的,这个realesr-animevideov3只针对动漫。

realesrgan-ncnn-vulkan.exe -i tmp_frames -o out_frames -n realesr-animevideov3 -s 2 -f jpg
6.等完成后,剪切out_frames文件夹到FFmpeg文件夹中合并即可:
 ffmpeg -i out_frames/frame%08d.jpg -i 你想修复的视频.mp4 -map 0:v:0 -map 1:a:0 -c:a copy -c:v libx264 -r 23.98 -pix_fmt yuv420p 修复后改名视频.mp4

跑完了,说下结果,默认的训练库对于非动画的视频只会修复人脸,一般就类似美颜效果,比如皮肤变白,痘痘变少或者胡须变淡脸变光泽。另,不能换成realesrgan-x4plus,如果换了效率将降低100倍左右,效果是图片随机方格化,细节根本无法辨认。

可执行文件的用法

  1. 更多细节可以参考 Real-ESRGAN-ncnn-vulkan.
  2. 注意:可执行文件并没有支持 python 脚本 inference_realesrgan.py 中所有的功能,比如 outscale 选项) .
Usage: realesrgan-ncnn-vulkan.exe -i infile -o outfile [options]...

  -h                   show this help
  -i input-path        input image path (jpg/png/webp) or directory
  -o output-path       output image path (jpg/png/webp) or directory
  -s scale             upscale ratio (can be 2, 3, 4. default=4)
  -t tile-size         tile size (>=32/0=auto, default=0) can be 0,0,0 for multi-gpu
  -m model-path        folder path to the pre-trained models. default=models
  -n model-name        model name (default=realesr-animevideov3, can be realesr-animevideov3 | realesrgan-x4plus | realesrgan-x4plus-anime | realesrnet-x4plus)
  -g gpu-id            gpu device to use (default=auto) can be 0,1,2 for multi-gpu
  -j load:proc:save    thread count for load/proc/save (default=1:2:2) can be 1:2,2,2:2 for multi-gpu
  -x                   enable tta mode"
  -f format            output image format (jpg/png/webp, default=ext/png)
  -v                   verbose output

由于这些exe文件会把图像分成几个板块,然后来分别进行处理,再合成导出,输出的图像可能会有一点割裂感(而且可能跟PyTorch的输出不太一样)

2.python311完整安装后问题

这个版本按照官方流程安装完成后可能会报错,提示shm.dll及关联找不到,这个推测是torch的安装有问题,torch_shm_manger这个异常,建议安装前先完成torch的完整安装然后再按照官方流程走。

  • 13
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值