社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

生猛!看动画片神器来了!实时把画质变成4k高清,延时仅3毫秒,登上GitHub 趋势榜!

人工智能与大数据技术 • 5 年前 • 419 次点击  
栗子 发自 凹非寺 
量子位 出品 | 公众号 QbitAI

看动画 (特别是里番) 的时候,总会觉得画质不够好,就算已经有1080p,还是会感到不够清晰。

所以,这个世界十分需要一套拯救分辨率的魔法。

如今,有个名叫Anime4K的开源算法,能在动画播放中,实时把画面变成4k,延时低至3毫秒

能把720p/1080p变成2160p,也能把480p变成1080p。

团队说,这是当下最强 (State-of-the-Art) 的动画实时超分辨率方法,可以拿任何编程语言实现。

现在,项目已经在GitHub摘下3700多颗星,并一度登上了趋势榜。

那么,这个算法究竟是如何造福人类的?

只搞动画

团队在论文里感慨道:

传统超分辨率算法 (如Bicubic) ,结果不怎么好,因为它们根本不是为了动画而生的。

传统的去模糊 (Unblurring) 或锐化 (Sharpening) 方式,在靠近物体边缘的时候会发生过冲 (Overshoot) ,分散观众注意力,降低图像的感知质量 (Perceptual Quality) 。

而机器学习方法 (如waifu2x) 又太慢,完全不能实时 (<30毫秒) ,尤其是需要超高清的时候。

 waifu2x

而Anime4K,只处理动画就够了,不考虑其他视频类型。这一点很重要。

动画没有真实视频那么多纹理 (Textures) ,基本都是用平直着色法 (Flat Shading) 处理的物体和线条。

只要画质变好一点点,观众也看得出。所以团队机智地想到,不用做整张的画质提升,专注于细化边缘就可以了,纹理之类的细节不重要。

具体怎样做,要从超分辨率的原理开始讲:

首先,一张图可以分为两部分:

一是低频分量,就是一张模糊的低分辨率图。

二是高频残差,代表两种分辨率之间的差别 (Difference) 。

输入一张低清图,把它变成一个更低清的版本,就能得出一个残差

把残差变薄 (Thin) 、锐化 (Sharpen) ,再加到低清图上,就能得到一张高清图。

但残差稍稍有点错误,就会造成振铃过冲,影响效果。这也是前辈的缺陷所在。

于是,团队找到了一种新方法:

首先把残差厚度最小化当做目标,这个没有问题。

但直接把随意变换(Arbitrarily Transformed)得到的残差,用到一张低清图上是不行的。低清图要做出相应改变,才能与残差和平相处,得出理想的超分辨率结果。

所以,当输入一张图和它的残差之后,“push”残差的像素,让残差线变细;

同时,每做一个push,都要在彩色的低清图上,执行一个相同的操作。

这样,既能把模糊最小化,也不会出现振铃和过冲,这两个降低画质的现象。

比一比吧

这场比赛,Anime4K (最右) 的对手有:来自madVR的不开源算法NGU前辈 (左二) ,以及开源的机器学习算法waifu2x前辈 (左三) 。

第一题,眼睛:

第二题,耳朵:

第三题,玉手:

第四题,全脸:

waifu2x前辈的效果,明显不及Anime4K,常见虚影。速度也有明显缺陷,每张图耗时超过1秒。

NGU前辈生成的画质,与Anime4K相近,但也常常被Anime4K打败。

不止如此,NGU每张耗时~6毫秒,Anime4K只要~3毫秒,快了一倍,更加适应实时生成的需求了。

效果相近的话,为啥不直接用NGU?因为不开源。

如果,你觉得720p/1080p的动画,没必要变成4K这么奢侈,那还可以把480p拯救到1080p啊:

依然,Anime4K和没开源的NGU不相上下。

最后,尽管已经获得了精湛的画质提升技能,团队也没有就此抛弃机器学习的力量。

因为在拯救静止画作 (而非动画) 的时候,Anime4K的短板显现了。这时候,让机器学习选手waifu2x和它并肩作战,更加成功一些:

需要实时提升分辨率,还是用Anime4K吧。

反正也已经开源了:

项目传送门:
https://github.com/bloc97/Anime4K

论文传送门:
https://github.com/bloc97/Anime4K/blob/master/Preprint.md

●编号913,输入编号直达本文

●输入m获取到文章目录

推荐↓↓↓

开源最前线

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/47096
 
419 次点击