牛逼!图片糊成这样也可以分分钟变高清!
大家好,我是擅长发现黑科技的开源大叔。
昨天的决赛都看了吗?太精彩了,大叔看得太揪心了,两次以为早早阿根廷赢定了,结果法国都顽强地追平了,最终点球大战决出了胜负。感谢两队贡献了如此精彩的决赛。
恭喜阿根廷,恭喜梅西!
前几天,小妹换了个微信头像,不过吵吵着说头像有些模糊,不够高清,要我给她处理一下。这点小事难不倒大叔,图片无损放大的算法和工具肯定是有滴。于是搜罗了一番,大叔发现了一个非常好用的项目——Real-ESRGAN。大叔尝试着用它处理了头像后,效果如下:
左边是原图,右边是处理后的图像,怎么样,效果是不是非常明显。
项目简介
Real-ESRGAN 是腾讯 ARC 实验室发表超分辨率算法,目的是开发出实用的图像/视频修复算法。从名字上也能看出,它是对 ESRGAN 算法的改进。使用该算法可以非常容易的将一张模糊的图片处理成高清大图。
项目使用
命令行操作
不要一看到算法就感觉项目门槛高,不容易上手。作者提供了已经打好包的程序以及自带的模型文件,以便于让你用一行代码就可以完成图片的超分辨率处理。
首先根据你使用的操作系统下载对应版本的程序,之后在命令行模式切换到程序包的目录下,执行以下命令即可:
-- Windows环境
./realesrgan-ncnn-vulkan.exe -i 输入图像.jpg -o 输出图像.png -n 模型名字
-- Mac环境
./realesrgan-ncnn-vulkan -i 输入图像.jpg -o 输出图像.png -n 模型名字
自带的模型有以下三个:
- realesr-animevideov3
- realesrgan-x4plus
- realesrgan-x4plus-anime
其中,如果命令中-n
后面不指定模型名,则默认使用realesr-animevideov3
。经过大叔的测试发现,realesr-animevideov3
模型处理速度最快,画风更偏向动漫的柔和画风。realesrgan-x4plus
模型处理时间最慢,锐化效果最强。realesrgan-x4plus-anime
模型的效果和速度介于二者之间。
批量操作
如果想批量处理图片,可以在命令中直接指定保存图片的文件夹即可。命令如下:
-- Windows环境
./realesrgan-ncnn-vulkan.exe -i 输入文件夹 -o 输出文件夹
-- Mac环境
./realesrgan-ncnn-vulkan -i 输入文件夹 -o 输出文件夹
既然都可以批量处理图片了,那是不是也可以将视频进行高分辨率处理呢?当然可以,只需要将原视频的每一帧都生成一张图片,然后将图片批量处理,再合成回原有视频就可以啦。这里给出一个借助 ffmpeg 解决方案,篇幅原因就需要感兴趣的朋友自行体验啦。参考命令如下:
-- 视频转图片
ffmpeg -i input.mp4 -qscale:v 1 -qmin 1 -qmax 1 -vsync 0 tmp_frames/frame%08d.jpg
-- 处理图片
./realesrgan-ncnn-vulkan -i tmp_frames -o out_frames -n realesr-animevideov3 -s 2 -f jpg
-- 生成视频
ffmpeg -i out_frames/frame%08d.jpg -i input.mp4 -map 0:v:0 -map 1:a:0 -c:a copy -c:v libx264 -r 23.98 -pix_fmt yuv420p output_w_audio.mp4
图形界面操作
如果只使用命令行来处理,还是不太人性化。这里再给大家推荐一个 Real-ESRGAN 的图形界面程序——realesrgan-gui。它是使用 Python 和 tkinter 编写,同时支持 Windows、Ubuntu 和 macOS 平台。
Windows 环境下,需要将程序放到 Real-ESRGAN 的目录下执行。Mac 环境需要在终端执行xattr -cr "Real-ESRGAN GUI.app"
命令后直接使用,不需要依赖 Real-ESRGAN 源程序。
总结
Real-ESRGAN 对于算法小白的上手还是比较容易的,即便不懂算法知识,也可以直接使用。再配合简单易用的 realesrgan-gui,使用起来就更方便了。项目地址放到下面了,大家快去试试吧。
项目地址:https://github.com/xinntao/Real-ESRGAN
图形界面项目地址:https://github.com/TransparentLC/realesrgan-gui
写在最后
问君能有几多愁,开源项目解千愁,我们下期再见!
相关文章
- java icache_java手写多级缓存
- 在 Amazon SageMaker 上微调与部署语音分离模型
- 新增功能 – 适用于具有更高网络带宽的内存密集型工作负载的 Amazon EC2 X2idn 和 X2iedn 实例
- 使用 Amazon Timestream 和 Amazon Manage Grafana 对Amazon CloudFront 性能进行可视化监控
- 打破偏见 AWS 开发人员关系团队的女性成员
- 基于AWS Cloud Map 的混合微服务架构
- AWS 一周回顾 – 2022 年 3 月 7 日
- 在海外区域使用AWS Client VPN 访问云上VPC 内网资源
- 亚马逊云科技WAF部署小指南(四) 使用Log Hub 自动部署方案进行WAF安全运营
- Amazon DeepRacer 模型训练指南及标准硬件配置流程
- fabric java_Fabric Java SDK最新教程
- 使用 Amazon Connect 搭建电话语音通知服务
- 亚马逊云科技WAF部署小指南(三) 使用OpenSearch进行WAF安全调查
- 亚马逊云科技WAF部署小指南(二) 使用经济实用的Log Insights进行日志分析
- 亚马逊云科技 WAF 部署小指南(一) WAF原理、默认部署及日志存储
- Amazon Ads 功能揭秘
- 借助 AWS Panorama 实现 Edge(边缘)的计算机视觉
- 教妹学Java:Java 发展简史
- 新的策略建议服务帮助简化 AWS 云迁移和现代化
- 新增 — 由最新一代英特尔至强可扩展处理器提供支持的 Amazon EC2 C6i 实例