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

发布时间:2024-11-17 10:27

结合音频或视频笔记,丰富学习体验 #生活技巧# #学习技巧# #笔记方法#

这个是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 模型名字

我们提供了五种模型:

realesrgan-x4plus(默认)reaesrnet-x4plusrealesrgan-x4plus-anime(针对动漫插画图像优化,有更小的体积)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倍左右,效果是图片随机方格化,细节根本无法辨认。

可执行文件的用法 更多细节可以参考 Real-ESRGAN-ncnn-vulkan.注意:可执行文件并没有支持 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的完整安装然后再按照官方流程走。

网址:python 学习笔记24 图片视频修复 https://www.yuejiaxmz.com/news/view/101712

相关内容

CodeFormer – AI照片修复工具,轻松去除图片和视频马赛克
python
Python学习笔记——参数axis=0,1,2...
Python笔记——Python中is和==的区别
基于opencv,使用python提取视频帧以及提取TVL1光流
朋友圈「话题标签」= 全民推广视频号?
省时省力,这些Python高效代码片段必须牢记
提高学习效率——5R笔记法
mp4视频被删除了怎么恢复?视频恢复办法分享
python中的print()语句中的end=''是什么意思

随便看看