V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Explorare
V2EX  ›  Linux

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

  •  9
     
  •   Explorare · Jun 7, 2015 · 20978 views
    This topic created in 3980 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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

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