点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

本文转自:AI算法与图像处理

图像降噪,是最简单也是最基础的图像处理逆问题(inverse problem)。

大多数情况下,图像降噪都是ill-posed的问题。因为通过有噪音的观察,总是无法逆向求得唯一正确的干净图片。就好像让你解一个超越方程一样,不借助其他额外的条件信息,是没有唯一解的。

降噪问题(这里只讨论additive noise),用最简单的数学语言一句话就可以描述清楚:

y = x + e

y是你观察到的带噪音的图像,e是噪音,x是干净无噪音的图像。只已知y,外加e的概率分布,降噪问题需要你去寻找最接近真实值的x。

说起来降噪问题如此简单明了,但自从信号处理开宗立派起,研究人员一直在孜孜不倦地提出各种降噪算法。我最早也没搞懂,大家何必纠结于这么简单的问题,而不去考虑更复杂,更贴近实际的花哨应用?

然而世间万物的规律,万变不离其中:不管多复杂问题,其本质往往都有简单的起源。而看似简单的问题,往往却是高手一身修行的追求:就好像考察一个书法家功力,看他写一个永字就好;看一个川菜厨师功力,看他做一道开水白菜就好。

科研之道和其他道也类似,简单的任务见到的是这个approach的潜力:这仅仅是起点,而不是终点。一个好的科研者应该要着眼于起点,追求问题的本源,然后拓展到未来,此为道。只追求花哨的应用,拼凑堆叠,舍本求末甚至本末倒置,只能为术。

好吧,扯远了。我就是想说,图像降噪问题,最简单也最困难。

那么要怎么解好这个逆问题呢?

降噪的本质,是要从观测值中分离噪音,保留图像。算法的关键,是要掌握并借助于图像本身独特的性质和结构。具体用什么性质,这个流派就多了,我在这里就先提供一个不完全总结,关于近期的一些好的图像降噪算法。

根据算法利用了什么图像性质,或者用到的手段,我大概把各种算法分成如下几类:

  1. 滤波类

  2. 稀疏表达类

  3. 外部先验

  4. 聚类低秩

  5. 深度学习

我根据我的了解,对于每一个类比总结了一个常见算法列表:wenbihan/reproducible-image-denoising-state-of-the-art

入选的算法要满足:1.近期(05年以后)提出的算法,2.有可复现的代码提供,3.可以得到很好,或者接近state-of-the-art的效果。

由于我的水平有限,希望同行高手来帮这个public repo添砖加瓦。

下面对于这几类算法的一些简略地解释:

滤波类:相对比较传统的一类算法,通过设计滤波器对图像进行处理。特点是速度往往比较快,很多卷积滤波可以借助快速傅里叶变化来加速。近期的一些算法例如BM3D也结合了一些block matching来利用图片的self-similarity,达到了很棒的效果。

稀疏表达类:自然图片之所以看起来不同于随机噪音/人造结构,是因为大家发现他们总会在某一个模型(synthesis model或者analysis model)下存在稀疏表达。而我们想排除的噪音往往无法被稀疏化。基于这个判别式模型(discriminative model),用稀疏性来约束自然图像,在很多逆问题里取得了拔群的效果。

github.com/wenbihan/rep

外部先验(external prior):如果从有噪音的图片本身无法找到规律,我们也可以借助其他类似但又没有噪音的图片,来总结图片具有的固有属性。这一类方法利用的外部图片来创造先验条件,然后用于约束需要预测的图片。最有代表性的工作,就是混合高斯模型(Gaussian Mixture Model)。严格来说,基于深度学习的算法也可以归于这个类。

聚类低秩(Low-Rankness):除了可稀疏性,低秩性也是自然图片常见的一个特性。数学上,可稀疏表达的数据可以被认为是在Union of low-dimensional subspaces;而低秩数据则是直接存在于一个Low-dimensional subspace。这个更严格的限制往往也可以取得很好的降噪效果。

深度学习(Deep Learning):这类可以归于外部先验的子类,但由于近期大热,我单独拿出来说说。如果说解决逆问题的关键,是寻找一个好的图像约束器(regularizer),那么我们为什么不用一个最好的约束器?深度学习方法的精髓,就在于通过大量的数据,学习得到一个高复杂度(多层网络结构)的图片约束器,从而将学习外部先验条件这一途径推到极限。近期的很多这类工作,都是沿着这一思路,取得了非常逆天的效果。

对于我总结的每一个类别,我都在创建的【github page】里面列举了一些推荐的工作,并且附带其可复现的代码实现。(你还在为写paper跑实验,不知道和哪些baseline做对比吗?还在为读了paper不知道怎么实现算法而苦恼吗?还在不知道怎么上手吗?请猛戳这里,-_-||)

https://github.com/wenbihan/reproducible-image-denoising-state-of-the-art

根据我的经验,基本上主流的图像降噪算法,都可以被放到这上面的5种类型中。

其他参考资料

https://www.zhihu.com/question/67938028/answer/259014596

https://www.zhihu.com/question/66359919/answer/241936523

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

可复现的图像降噪算法总结——超赞整理相关推荐

  1. 图像降噪算法——稀疏表达:K-SVD算法

    图像降噪算法--稀疏表达:K-SVD算法 图像降噪算法--稀疏表达:K-SVD算法 1. 基本原理 2. python代码 3. 结论 图像降噪算法--稀疏表达:K-SVD算法 为了完善下自己降噪算法 ...

  2. 图像降噪算法——时域降噪算法

    图像降噪算法--时域降噪算法 图像降噪算法--时域降噪算法 1.<MeshFLow Video Denoising> 2. <Real-Time Video Denoising On ...

  3. 图像降噪算法——低秩聚类:WNNM算法

    图像降噪算法--低秩聚类:WNNM算法 图像降噪算法--低秩聚类:WNNM算法 1. 基本原理 2. matlab代码 3. 结论 图像降噪算法--低秩聚类:WNNM算法 同样是为了完善自己知识版图的 ...

  4. 图像降噪算法——DnCNN / FFDNet / CBDNet / RIDNet / PMRID / SID

    图像降噪算法--DnCNN / FFDNet / CBDNet / RIDNet / PMRID / SID 图像降噪算法--DnCNN / FFDNet / CBDNet / RIDNet / PM ...

  5. 图像降噪算法——Variance Stabilizing Transform / Generalization Anscombe Transform算法

    图像降噪算法--Variance Stabilizing Transform / Generalization Anscombe Transform算法 图像降噪算法--Variance Stabil ...

  6. 图像降噪算法——小波硬阈值滤波(下)

    图像降噪算法--小波硬阈值滤波(下) 图像降噪算法--小波硬阈值滤波(下) 1. 基本原理 2. C++代码实现 3. 结论 图像降噪算法--小波硬阈值滤波(下) 1. 基本原理 关于离散小波变换的原 ...

  7. 图像降噪算法——小波硬阈值滤波(上)

    图像降噪算法--小波硬阈值滤波(上) 图像降噪算法--小波硬阈值滤波(上) 1. 多分辨率展开 2. 尺度函数 3. 小波函数 4. 小波级数展开 5. 离散小波变换 6. 快速小波变换 7. 图像小 ...

  8. 图像降噪算法——维纳滤波

    图像降噪算法--维纳滤波 图像降噪算法--维纳滤波 1. 基本原理 2. C++代码实现 3. 结论 图像降噪算法--维纳滤波 维纳滤波是在频域中处理图像的一种算法,是一种非常经典的图像增强算法,不仅 ...

  9. 图像降噪算法——高斯低通滤波

    图像降噪算法--高斯低通滤波 图像降噪算法--高斯低通滤波 1. 基本原理 2. C++代码实现 3. 结论 图像降噪算法--高斯低通滤波 1. 基本原理 通过离散傅里叶变换对图像进行滤波流程作非常简 ...

最新文章

  1. 每日一篇——lodash—array——differenceBy
  2. 芬兰阿尔托大学人工智能实验室程路组博士生招聘-肠道菌群进化与人类疾病等方向...
  3. Windows7下Caffe的应用---在Win7下使用VS2015、Camke、Anaconda3配置Caffe CPU版本
  4. 推荐25个非常优秀的网页表单设计案例
  5. 如何发布Android Library到maven私有仓库
  6. 现在维吾尔语在计算机中发展,维吾尔语手写体在线计算机识别技术研究.doc
  7. php carbon,laravel Carbon函数
  8. JS输出内容为[object Object]
  9. 版本控制工具--CVS
  10. 网络云盘项目——总体介绍、附源码链接
  11. 天下没有免费的午餐 ---- 360 的伪免费
  12. 证券公司信息化7-资产管理业务的沿革。为什么要有资产管理系统?
  13. 做IT精英还是IT民工? 从事IT只是个体力活
  14. 国外虚拟主机购买时的注意事项
  15. 互联网晚报 | 5月13日 星期五 | 罗永浩回应被叫行业冥灯;新一轮汽车下乡政策最快将于本月出台;字节跳动鲸鲮操作系统获批...
  16. sigmaster解码播放
  17. CopyMemory不同类型数据之间的复制
  18. 零基础入门UI设计必备实用技巧!
  19. 如何完全清除linux内核,清除旧的Linux内核
  20. c语言有三级指针,C语言 三级指针的应用

热门文章

  1. 六大主题报告,四大技术专题,AI开发者大会首日精华内容全回顾
  2. 手机芯片谁是AI之王?高通、联发科均超华为
  3. 迈克尔 · 乔丹:我讨厌将机器学习称为AI
  4. 独家 | 5大冠军出炉!李开复的AI挑战赛,冠军们聊到了这么些感受
  5. 京东金融晒 “打黑成绩单”:一年内避免用户损失上亿元
  6. 面试官: Redis 与 MySQL 双写一致性如何保证?
  7. 更快的 Maven 来了!!!性能提升 300%
  8. Dubbo中的连接控制,你真的理解吗?
  9. 2021年2月程序员工资统计,又拖后腿了……
  10. 浅谈 CAP 和 Paxos 共识算法