技术解析

[讨论]基于卷积神经网深度学习的图像降噪算法初步探究
0
2021-07-12 01:16:32
idczone

最近在Github上发现一个有趣的项目,是一个专门为AniPic优化的图像放大算法,基于卷积神经网深度学习,通过大量数据让算法自行优化处理方式,官方提供了一个在线demo - waifu2x,效果令人惊讶,先上个图。

原图
原图
处理后(参数:Noise Reduction: low; Upscaling: 2x;)
waifu2x
作为对照放出用PS处理的效果(参数: 两次平方扩大2x,noiseware full luma noise reduction, 表面模糊0.1, USM锐化)
PS
效果强差人意,明显不如waifu2x的效果。

而且根据核心算法的论文,算法本身实际上可以不对图像进行预处理,直接处理RBG,而waifu2x提供的demo是将RBG图像先转化成YUV,这个过程会对效果造成负面影响,但即便如此效果依旧理想,下一步目标是尝试直接处理RBG图像测试效果。

目前demo是基于N卡的CUDA运算,但实际上核心算法可提取出来基于CPU运算,能处理视频和图像,算法本身的目标是降噪而非放大,但用来放大图像也是可以的。虽然算法本身是用来降噪的,但实际也可作为压缩算法,对图像视频进行有损压缩后,在接收端进行放大并降噪,能节省不少带宽和空间,有可能成为有损版的H.265(?)

本文的主要目的就是介绍一下这个降噪算法,诸君有需要处理的扫图可以直接丢到这里进行处理,但要注意2M的文件限制,也可以部署算法到本地环境,部署方式有提供。

PS.我并不是DeepLearning专业的,也是刚刚接触,正在啃基础论文,对此方面很感兴趣,本文旨在抛砖引玉之效,上面的观点部分来自之前和坛友的讨论,可能认识有错误,朱军尽管指正,希望能推荐一些入门资料和相关大牛的部落格。

以上

[参考文献]
[1] nagadomi/waifu2x Image Super-Resolution for Anime-Style-Art - Github
[2] Image Super-Resolution Using Deep Convolutional Networks - arxiv
[3] 卡通图片的压缩 - 风云的BLOG
[4] UFLDL教程 - Stanford
[5] zouxy09的专栏 - CSDN

本网站(或页面)的文字允许在 知识共享 署名-相同方式共享 3.0协议 下修改和再使用。


完全不懂但是需要学习这个的路过…
什么,其实我是生物信息的…

看了下github的star,这说明基础研究下项目只要工程做得好还是会有很多关注的。
也算对我等的鼓舞。

主要还是这个项目选对切入点了,很吸引我等死宅码农,我在想把核心算法做成PS插件处理海报扫图,做成MangaMeeya看漫画用,或者做成potplayer实时优化老番画质,最容易实现的是做个高清版舰娘,素材全部高清化就OK,已经有成熟的素材替换方案了。

支持,做个像madvr那样的渲染器挺好的

如果没记错的话,madVR主要是管理颜色的,还有个SVP是插帧做的很牛,但实时提升画质的,我所知道的应该是大法的BRAVIA视频处理引擎最强

我是在知乎上看到了相关问题
http://www.zhihu.com/question/30497963
然后去读了一下论文,感觉 还是很厉害的。
有时间要详细 的来学习一 下。
PS,我是做图像处理的……

看到二次元就戳进来了,mark

放大了一张..


demo的算法是为AniPic特化训练过的,可能对于元素较复杂的三次元图像的效果还不理想,但经过足够的样本训练,应该也会很理想。

这个好神奇,可惜完全不懂机器学习之类的,所以怀着敬意……
但是这个主题有点奇怪,看上去像是楼主发布了这个软件。特别是“参考文献”,不是一篇介绍文吗?虽然主题目的是说介绍算法但是整个主题都在说waifu2x这个软件。最后RBG错了

感谢楼主分享知识,文章末尾的引用貌似笔误:
[3] 卡通图片的压缩 - 风云的BLOG
应为:
[3] 卡通图片的压缩 - 云风的BLOG


首先我是刚接触DeepLearning,所以对于核心算法并没有完全理解,只能就项目本身和社区反响等做一些介绍,希望能有大牛来上点干货,其实就是敲碗等了。


没看出有什么不同啊( ´_ゝ`)


没有看过文章, 感觉很有意思啊, 我上传的原图片不是很大, 仿佛可以增加新的信息到图片里.
这个算法是先要用大量其他图片训练么, 还是只用上传的图片进行训练?


应该是有专门用来训练的素材吧

看了下作者,三作就是用去雾算法拿了CVPR2009的Best Paper的大牛

kwsk

对啊对啊,何恺明

在没有cuda的情况下速度如何呢,对于降噪质量不用太好,速度第一,无需人工干预的算法。。。

转个微信上的文章
http://mp.weixin.qq.com/s?__biz=MzA4NjA4MTkzMw==&mid=209218404&idx=1&sn=db6a7eafb83a70ecef76a287fc2ace91&scene=2&from=timeline&isappinstalled=0#rd

还没成功尝试基于CPU的运算,基础知识还不够。



宪兵队(#゚Д゚)ゴルァ!!

这个是超分辨,使用卷积神经网络学习到低分辨和高分辨图像的变换关系模型,就可以用来做其他的图像的超分辨了~

也就是说实际上并不是降噪而是将原图放大再缩小?

你们在win98时代没玩过一个叫做 s-splice (名字可能有误)的神奇放大软件?
放大任意图片,比马赛克x2强很多那种。

这个算法不会降噪。降噪一般都是些平滑的操作,去掉噪声信息;而超分辨可以理解为让图像更加的清晰,就像把720P转为1080P,是要增加细节信息的。

我觉得和 PS 比不公平。
算法是为漫画图片特化过的,在不实际增加信息量的前提下,对某种风格更讨好。
这不代表使用「神经网络机器学习」就要比别的机器学习算法,甚至比某种人工策略更好。

这个项目有名的一个原因是作者是jQ的作者吧……很多人订阅他的博客的(包括我)

老实说效果并不是很好

搞错了,John Resig只是博文里提了一下,不是作者……怪我没好好读。


f(低分辨率) --> 高分辨率, 先用大量的图片组训练模型, 然后就可以将任意图片放大了.. 好有意思的想法

神经网络还没out?

NN现在是最火的。。。

是么?神经网络算法已经做了快30年了。

风水轮流转啊 哈哈

对算法和机器学习很苦手╮( ̄▽ ̄)╭

人工智能也做了几十年了。谁解决问题谁火很正常。
TAMU。。你是智能系的或者和陈建二有联系?

CNN如果不用Cuda...那训练的时长难以想象了

额,你是gary gao?

额,不对,你是中南信息院的?

已star

kwsk

很好成功的把我需要的一张图放大了。

我发上面对比的目的,主要是说明对于我常用的降噪算法组合,waifu2x有着更好的效果,我学降噪本来就是为了处理扫图,所以找到一个合适的组合后就没深究其中的算法和原理,所以并没有接触很多降噪策略,本人水平有限,如果有更好的降噪算法和策咯还请赐教,非常感激

也就是说增加细节要比降噪的难度高很多么


实时估计泰坦也吃不消, 目测这货的在线Demo性能与GTX770接近(应该是运行在AWS)..
但是速度依然缓慢...

不知道有没有专门为CUDA特化的运算卡呢


AWS那个就是CUDA专业卡...囧
价格比GTX770贵多了, 性能倒是接近GTX770
除了名称不同,多了某些细节功能(虚拟化之类的, 其实内核一样,开不开的问题)
其实专业卡和普通卡性能上也没啥区别...

也就是说如果我想构建自己的试验环境,还是推荐上AWS么,现在正尝试在笔电的虚拟机上试运行,GT 640M LE,辣鸡卡,但好歹支持CUDA 3.0

其实很多机器学习都是这个思路,重点就是要确定合适的模型。模型确定好了以后,利用数据训练调节参数,就可以学到一般的通用特性,就可以用来处理其他的图像的。

对啊,噪点是已有信息,处理起来方便很多,要增加细节就要考虑很多情况了,不然增加的信息就是噪声了,哈哈~~


虚拟机不能跑CUDA吧?要是可以的话求个方法...

gt 640m 这个卡能跑就不错了,现在大学里面实验室都是最少titan级别的显卡,有的用k40,没有个gtx780的真的很吃力的。dl这个坑就是黄仁勋挖的!

什么叫“有可能成为有损版的H.265(?)”。。。H.265本来就是有损的好不好


可以,现在Hyper-V和VM都有方案在GUEST系统里调用物理显卡,但效率不高。
顺便普通的VMWare不行,必须VMware ESXi

更多详见https://blogs.vmware.com/performance/2011/10/gpgpu-computing-in-a-vm.html

一时脑抽,多谢指正

目前没有购入小型机的计划,一方面是太贵,一方面是维护麻烦,果然还是上AWS吧,应该能方便很多

前两天发现个挺好玩的,用DL做篮球视频精彩片段发掘 http://public.hudl.com/bits/archives/2015/06/05/highlights/

虽然没有看论文,不过我觉得似乎直接对黑色边线之类的部分做处理即可...这个大概也算是漫画的特征。
三次元的图像哪有那么明显的颜色界限。

所以说这是用AniPic训练集特化的结果,如果你用三次元图像进行训练,可能也能获得不错的效果

后者是对的:P

你看论文,两次立方在 SRCNN 中根本就是作为预处理来用的,效果上和列举出来的 SC,NE+LLE,ANR,A+,KK 不在一个区间范围内。
当然在论文中 SRCNN 是最好的,但是对比的其他方法如果和两次立方比,也要好非常多。


你在笔记本上跑ESXI么...囧
那个帖子看过..感觉没啥帮助..

所以还是老老实实装个ubuntu算了,正好手边还有个GT 730M的笔电,SSL远程算了

ubuntu 大发好,不过你没有入小型机的计划。。。没有很强的硬件支撑,感觉弄dl会很折腾。。。。

waifu2x提供的demo就是基于AWS,像我不是专业研究DL的,买个小型机不知道有用多久,前期投入太高了,AWS开箱即用方便不少

本科生还是?

找了张图试了下,效果不错。

看了下论文[2],过程大概是:
1.先训练算法:
通过样本低分图Y,高清图Z若干,学习映射函数CNN()及其参数w,即 低分辨率图Y===CNN(Y,w)===>高分辨率图
2.使用算法:
原图X ===用普通插值放大1.5倍===> 模糊的图Y ===CNN函数 with 训练得到参数w===> 还原图CNN(Y,w)

发散思维,可以利用神经网络如CNN在训练集学习去噪、风格化等等的方法。
[2]中也提到用深度神经网络去噪的算法(文中引用[3][36][22][12]),楼主去看这些文章会比较有用。若难读懂,建议:
1. Machine Learning入门推荐看Andrew Ng的Cousera课程。
2. Deep Learning入门推荐看Andrew Ng 的UFLDL。

非常感谢,这下有合适的切入点了

关于在VM跑CUDA,[这里](http://acceleware.com/blog/state-gpu-virtualization-cuda-applications-2014)有比较详细的总结

本科僧呀~

加油噢~~~

多谢poi~( ゚∀。)

楼主可否成为科研伙伴 我也是这方面的 要出论文。。。。

看到飞天小裤裤就回一个~

不敢当,我只是对此感兴趣才刚开始入门的,还没到能协助出论文的水平,但还希望能提供一些相关资料或者信息,非常感谢。顺便你是DL专业的么?具体研究项目是什么?

走过路过不要错过,SW无损合集
http://www.tsdm.net/forum.php?mod=viewthread&tid=539925

什么情况

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服