V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Explorare
V2EX  ›  Linux

[讨论]基于卷积神经网深度学习的图像降噪算法初步探究

  •  9
     
  •   Explorare · 2015-06-07 16:14:16 +08:00 · 20284 次点击
    这是一个创建于 3485 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在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协议 下修改和再使用。

    第 1 条附言  ·  2015-06-08 10:38:55 +08:00
    贴上更多有价值的资料
    [Caffe + Ubuntu 15.04 + CUDA 7.0 新手安装配置指南](https://ouxinyu.github.io/Blogs/20140723001.html)
    (Caffe配置指南 on Windows8.1+CUDA6.5+VS2013)[https://ouxinyu.github.io/Blogs/20140719001.html]
    (Cuda-convnet配置指南 on Windows8.1+CUDA6.5+VS2013)[https://ouxinyu.github.io/Blogs/20140717001.html]
    81 条回复    2015-06-13 10:00:44 +08:00
    evolighting
        1
    evolighting  
       2015-06-07 16:26:49 +08:00 via Android
    完全不懂但是需要学习这个的路过…
    什么,其实我是生物信息的…
    66CCFF
        2
    66CCFF  
       2015-06-07 16:38:08 +08:00
    看了下github的star,这说明基础研究下项目只要工程做得好还是会有很多关注的。
    也算对我等的鼓舞。
    Explorare
        3
    Explorare  
    OP
       2015-06-07 16:44:27 +08:00
    @66CCFF 主要还是这个项目选对切入点了,很吸引我等死宅码农,我在想把核心算法做成PS插件处理海报扫图,做成MangaMeeya看漫画用,或者做成potplayer实时优化老番画质,最容易实现的是做个高清版舰娘,素材全部高清化就OK,已经有成熟的素材替换方案了。
    chengzhoukun
        4
    chengzhoukun  
       2015-06-07 16:49:14 +08:00 via Android
    @Explorare 支持,做个像madvr那样的渲染器挺好的
    Explorare
        5
    Explorare  
    OP
       2015-06-07 17:05:11 +08:00
    @chengzhoukun 如果没记错的话,madVR主要是管理颜色的,还有个SVP是插帧做的很牛,但实时提升画质的,我所知道的应该是大法的BRAVIA视频处理引擎最强
    linxy
        6
    linxy  
       2015-06-07 17:42:38 +08:00
    我是在知乎上看到了相关问题
    http://www.zhihu.com/question/30497963
    然后去读了一下论文,感觉 还是很厉害的。
    有时间要详细 的来学习一 下。
    PS,我是做图像处理的……
    KexyBiscuit
        7
    KexyBiscuit  
       2015-06-07 18:23:18 +08:00 via Android
    看到二次元就戳进来了,mark
    xlrtx
        8
    xlrtx  
       2015-06-07 18:36:41 +08:00
    放大了一张..
    Explorare
        9
    Explorare  
    OP
       2015-06-07 18:44:13 +08:00   ❤️ 1
    @xlrtx demo的算法是为AniPic特化训练过的,可能对于元素较复杂的三次元图像的效果还不理想,但经过足够的样本训练,应该也会很理想。
    LPeJuN6lLsS9
        10
    LPeJuN6lLsS9  
       2015-06-07 18:45:35 +08:00
    这个好神奇,可惜完全不懂机器学习之类的,所以怀着敬意……

    但是这个主题有点奇怪,看上去像是楼主发布了这个软件。特别是“参考文献”,不是一篇介绍文吗?虽然主题目的是说介绍算法但是整个主题都在说waifu2x这个软件。最后RBG错了
    openkl
        11
    openkl  
       2015-06-07 18:46:37 +08:00
    感谢楼主分享知识,文章末尾的引用貌似笔误:
    [3] 卡通图片的压缩 - 风云的BLOG
    应为:
    [3] 卡通图片的压缩 - 云风的BLOG
    Explorare
        12
    Explorare  
    OP
       2015-06-07 18:52:52 +08:00
    @hantsuki
    首先我是刚接触DeepLearning,所以对于核心算法并没有完全理解,只能就项目本身和社区反响等做一些介绍,希望能有大牛来上点干货,其实就是敲碗等了。
    Explorare
        13
    Explorare  
    OP
       2015-06-07 18:53:17 +08:00
    @openkl
    没看出有什么不同啊( ´_ゝ`)
    xlrtx
        14
    xlrtx  
       2015-06-07 19:21:15 +08:00
    @Explorare

    没有看过文章, 感觉很有意思啊, 我上传的原图片不是很大, 仿佛可以增加新的信息到图片里.

    这个算法是先要用大量其他图片训练么, 还是只用上传的图片进行训练?
    Explorare
        15
    Explorare  
    OP
       2015-06-07 19:25:29 +08:00
    @xlrtx
    应该是有专门用来训练的素材吧
    zwzmzd
        16
    zwzmzd  
       2015-06-07 20:30:08 +08:00 via Android
    看了下作者,三作就是用去雾算法拿了CVPR2009的Best Paper的大牛
    Explorare
        17
    Explorare  
    OP
       2015-06-07 20:36:24 +08:00
    @zwzmzd kwsk
    linxy
        18
    linxy  
       2015-06-07 21:02:15 +08:00
    @zwzmzd 对啊对啊,何恺明
    neutrino
        19
    neutrino  
       2015-06-07 21:14:37 +08:00
    在没有cuda的情况下速度如何呢,对于降噪质量不用太好,速度第一,无需人工干预的算法。。。
    Explorare
        21
    Explorare  
    OP
       2015-06-07 21:33:38 +08:00
    @neutrino 还没成功尝试基于CPU的运算,基础知识还不够。
    zjf
        22
    zjf  
       2015-06-07 22:00:57 +08:00
    Explorare
        23
    Explorare  
    OP
       2015-06-07 22:07:10 +08:00
    @zjf 宪兵队(#゚Д゚)ゴルァ!!
    shadowind
        24
    shadowind  
       2015-06-07 22:08:56 +08:00   ❤️ 1
    这个是超分辨,使用卷积神经网络学习到低分辨和高分辨图像的变换关系模型,就可以用来做其他的图像的超分辨了~
    Explorare
        25
    Explorare  
    OP
       2015-06-07 22:38:32 +08:00
    @shadowind 也就是说实际上并不是降噪而是将原图放大再缩小?
    est
        26
    est  
       2015-06-07 22:48:43 +08:00
    你们在win98时代没玩过一个叫做 s-splice (名字可能有误)的神奇放大软件?

    放大任意图片,比马赛克x2强很多那种。
    shadowind
        27
    shadowind  
       2015-06-07 22:55:31 +08:00
    @Explorare 这个算法不会降噪。降噪一般都是些平滑的操作,去掉噪声信息;而超分辨可以理解为让图像更加的清晰,就像把720P转为1080P,是要增加细节信息的。
    binux
        28
    binux  
       2015-06-07 23:23:54 +08:00
    我觉得和 PS 比不公平。
    算法是为漫画图片特化过的,在不实际增加信息量的前提下,对某种风格更讨好。
    这不代表使用「神经网络机器学习」就要比别的机器学习算法,甚至比某种人工策略更好。
    YuJianrong
        29
    YuJianrong  
       2015-06-07 23:29:48 +08:00 via iPhone
    这个项目有名的一个原因是作者是jQ的作者吧……很多人订阅他的博客的(包括我)
    tabris17
        30
    tabris17  
       2015-06-07 23:30:37 +08:00
    老实说效果并不是很好
    YuJianrong
        31
    YuJianrong  
       2015-06-07 23:39:36 +08:00 via iPhone
    搞错了,John Resig只是博文里提了一下,不是作者……怪我没好好读。
    xlrtx
        32
    xlrtx  
       2015-06-08 00:41:24 +08:00
    @shadowind

    f(低分辨率) --> 高分辨率, 先用大量的图片组训练模型, 然后就可以将任意图片放大了.. 好有意思的想法
    jedihy
        33
    jedihy  
       2015-06-08 00:46:07 +08:00
    神经网络还没out?
    hardware
        34
    hardware  
       2015-06-08 00:48:31 +08:00
    @jedihy NN现在是最火的。。。
    jedihy
        35
    jedihy  
       2015-06-08 01:01:23 +08:00
    @hardware 是么?神经网络算法已经做了快30年了。
    hardware
        36
    hardware  
       2015-06-08 01:19:21 +08:00
    @jedihy 风水轮流转啊 哈哈
    flowfire
        37
    flowfire  
       2015-06-08 01:39:19 +08:00
    对算法和机器学习很苦手╮( ̄▽ ̄)╭
    66CCFF
        38
    66CCFF  
       2015-06-08 01:55:47 +08:00
    @jedihy 人工智能也做了几十年了。谁解决问题谁火很正常。
    TAMU。。你是智能系的或者和陈建二有联系?
    heliar
        39
    heliar  
       2015-06-08 07:48:40 +08:00
    CNN如果不用Cuda...那训练的时长难以想象了
    jedihy
        40
    jedihy  
       2015-06-08 08:05:26 +08:00 via iPhone
    @66CCFF 额,你是gary gao?
    jedihy
        41
    jedihy  
       2015-06-08 08:09:14 +08:00 via iPhone
    @66CCFF 额,不对,你是中南信息院的?
    zerh925
        42
    zerh925  
       2015-06-08 08:41:47 +08:00
    已star
    Explorare
        43
    Explorare  
    OP
       2015-06-08 08:49:18 +08:00
    @est kwsk
    cevincheung
        44
    cevincheung  
       2015-06-08 08:50:25 +08:00
    很好成功的把我需要的一张图放大了。
    Explorare
        45
    Explorare  
    OP
       2015-06-08 08:53:21 +08:00
    @binux 我发上面对比的目的,主要是说明对于我常用的降噪算法组合,waifu2x有着更好的效果,我学降噪本来就是为了处理扫图,所以找到一个合适的组合后就没深究其中的算法和原理,所以并没有接触很多降噪策略,本人水平有限,如果有更好的降噪算法和策咯还请赐教,非常感激
    Explorare
        46
    Explorare  
    OP
       2015-06-08 08:54:07 +08:00
    @shadowind 也就是说增加细节要比降噪的难度高很多么
    mhycy
        47
    mhycy  
       2015-06-08 09:06:01 +08:00
    @Explorare
    实时估计泰坦也吃不消, 目测这货的在线Demo性能与GTX770接近(应该是运行在AWS)..
    但是速度依然缓慢...
    Explorare
        48
    Explorare  
    OP
       2015-06-08 09:15:47 +08:00
    @mhycy 不知道有没有专门为CUDA特化的运算卡呢
    mhycy
        49
    mhycy  
       2015-06-08 09:21:01 +08:00
    @Explorare
    AWS那个就是CUDA专业卡...囧
    价格比GTX770贵多了, 性能倒是接近GTX770
    除了名称不同,多了某些细节功能(虚拟化之类的, 其实内核一样,开不开的问题)
    其实专业卡和普通卡性能上也没啥区别...
    Explorare
        50
    Explorare  
    OP
       2015-06-08 09:23:36 +08:00
    @mhycy 也就是说如果我想构建自己的试验环境,还是推荐上AWS么,现在正尝试在笔电的虚拟机上试运行,GT 640M LE,辣鸡卡,但好歹支持CUDA 3.0
    shadowind
        51
    shadowind  
       2015-06-08 09:26:43 +08:00
    @xlrtx 其实很多机器学习都是这个思路,重点就是要确定合适的模型。模型确定好了以后,利用数据训练调节参数,就可以学到一般的通用特性,就可以用来处理其他的图像的。
    shadowind
        52
    shadowind  
       2015-06-08 09:30:15 +08:00
    @Explorare 对啊,噪点是已有信息,处理起来方便很多,要增加细节就要考虑很多情况了,不然增加的信息就是噪声了,哈哈~~
    mhycy
        53
    mhycy  
       2015-06-08 09:43:22 +08:00
    @Explorare
    虚拟机不能跑CUDA吧?要是可以的话求个方法...
    ayulove
        54
    ayulove  
       2015-06-08 10:11:57 +08:00
    gt 640m 这个卡能跑就不错了,现在大学里面实验室都是最少titan级别的显卡,有的用k40,没有个gtx780的真的很吃力的。dl这个坑就是黄仁勋挖的!
    shyrock
        55
    shyrock  
       2015-06-08 10:13:43 +08:00
    什么叫“有可能成为有损版的H.265(?)”。。。H.265本来就是有损的好不好
    Explorare
        56
    Explorare  
    OP
       2015-06-08 10:14:15 +08:00
    @mhycy
    可以,现在Hyper-V和VM都有方案在GUEST系统里调用物理显卡,但效率不高。
    顺便普通的VMWare不行,必须VMware ESXi
    Explorare
        57
    Explorare  
    OP
       2015-06-08 10:14:53 +08:00
    Explorare
        58
    Explorare  
    OP
       2015-06-08 10:15:33 +08:00
    @shyrock 一时脑抽,多谢指正
    Explorare
        59
    Explorare  
    OP
       2015-06-08 10:17:44 +08:00
    @ayulove 目前没有购入小型机的计划,一方面是太贵,一方面是维护麻烦,果然还是上AWS吧,应该能方便很多
    scream7
        60
    scream7  
       2015-06-08 10:47:09 +08:00   ❤️ 1
    前两天发现个挺好玩的,用DL做篮球视频精彩片段发掘 http://public.hudl.com/bits/archives/2015/06/05/highlights/
    phoenixlzx
        61
    phoenixlzx  
       2015-06-08 10:52:20 +08:00
    虽然没有看论文,不过我觉得似乎直接对黑色边线之类的部分做处理即可...这个大概也算是漫画的特征。

    三次元的图像哪有那么明显的颜色界限。
    Explorare
        62
    Explorare  
    OP
       2015-06-08 10:56:56 +08:00
    @phoenixlzx 所以说这是用AniPic训练集特化的结果,如果你用三次元图像进行训练,可能也能获得不错的效果
    66CCFF
        63
    66CCFF  
       2015-06-08 11:01:36 +08:00
    @jedihy 后者是对的:P
    binux
        64
    binux  
       2015-06-08 11:08:50 +08:00   ❤️ 1
    @Explorare 你看论文,两次立方在 SRCNN 中根本就是作为预处理来用的,效果上和列举出来的 SC,NE+LLE,ANR,A+,KK 不在一个区间范围内。
    当然在论文中 SRCNN 是最好的,但是对比的其他方法如果和两次立方比,也要好非常多。
    mhycy
        65
    mhycy  
       2015-06-08 11:13:42 +08:00
    @Explorare
    你在笔记本上跑ESXI么...囧
    那个帖子看过..感觉没啥帮助..
    Explorare
        66
    Explorare  
    OP
       2015-06-08 11:16:22 +08:00
    @mhycy 所以还是老老实实装个ubuntu算了,正好手边还有个GT 730M的笔电,SSL远程算了
    ayulove
        67
    ayulove  
       2015-06-08 12:09:59 +08:00
    ubuntu 大发好,不过你没有入小型机的计划。。。没有很强的硬件支撑,感觉弄dl会很折腾。。。。
    Explorare
        68
    Explorare  
    OP
       2015-06-08 12:36:21 +08:00
    @ayulove waifu2x提供的demo就是基于AWS,像我不是专业研究DL的,买个小型机不知道有用多久,前期投入太高了,AWS开箱即用方便不少
    jedihy
        69
    jedihy  
       2015-06-08 12:37:11 +08:00 via iPhone
    @66CCFF 本科生还是?
    br00k
        70
    br00k  
       2015-06-08 13:25:44 +08:00
    找了张图试了下,效果不错。
    davidlau
        71
    davidlau  
       2015-06-08 14:24:48 +08:00   ❤️ 3
    看了下论文[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。
    Explorare
        72
    Explorare  
    OP
       2015-06-08 14:27:04 +08:00
    @davidlau 非常感谢,这下有合适的切入点了
    Explorare
        73
    Explorare  
    OP
       2015-06-08 16:47:01 +08:00
    66CCFF
        74
    66CCFF  
       2015-06-08 18:50:41 +08:00
    @jedihy 本科僧呀~
    ayulove
        75
    ayulove  
       2015-06-09 09:07:45 +08:00
    @Explorare 加油噢~~~
    Explorare
        76
    Explorare  
    OP
       2015-06-09 09:10:57 +08:00
    @ayulove 多谢poi~( ゚∀。)
    xionghengheng
        77
    xionghengheng  
       2015-06-09 11:57:27 +08:00
    楼主可否成为科研伙伴 我也是这方面的 要出论文。。。。
    deathscythe
        78
    deathscythe  
       2015-06-09 12:00:02 +08:00
    看到飞天小裤裤就回一个~
    Explorare
        79
    Explorare  
    OP
       2015-06-09 12:11:25 +08:00
    @xionghengheng 不敢当,我只是对此感兴趣才刚开始入门的,还没到能协助出论文的水平,但还希望能提供一些相关资料或者信息,非常感谢。顺便你是DL专业的么?具体研究项目是什么?
    Explorare
        80
    Explorare  
    OP
       2015-06-09 12:17:36 +08:00
    cattyhouse
        81
    cattyhouse  
       2015-06-13 10:00:44 +08:00
    什么情况
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1667 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:34 · PVG 00:34 · LAX 08:34 · JFK 11:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.