社区所有版块导航
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学习  »  机器学习算法

深度学习的图像去噪方法归纳

机器学习AI算法工程 • 2 月前 • 168 次点击  

向AI转型的程序员都关注公众号 机器学习AI算法工程



几种典型的图像去噪算法总结


目录

图像去噪概述:

(1)数据预处理

(2)特征提取

(3)去噪模型设计和选择

基于深度学习的图像去噪方法

基于卷积神经网络的去噪方法

基于CNN自监督学习去噪

基于CNN监督学习去噪

基于残差网络的去噪方法

CNN中图像网络分为

基于生成对抗网络的去噪方法

GAN

基于图神经网络的去噪方法(GCDN)

GNN

GCN

GCDN


图像去噪概述:

图像去噪的研究内容包括数据预处理、特征提取和去噪三部分


(1)数据预处理

问题:获取的数据集中常包含一些不可用数据,如图像格式不符,像素过高、亮度过低以及一些重复数据

方法:采用图像格式转换、几何校正、主成分分析等预处理操作为后续的去噪模型提供更多可用数据

(2)特征提取

目的

提取图像纹理细节特征(通过卷积池化等方式),并将噪声与背景信息分离

卷积

提取图像特征,自动提取图像的高维度且有效的特征

卷积层工作原理:从左上角开始,卷积核就对应着数据的3*3的矩阵范围,然后相乘再相加得出一个值。按照这种顺序,每隔一个像素就操作一次,我们就可以得出9个值。这九个值形成的矩阵被我们称作激活映射

举例:卷积核为3*3的矩阵,图片为一个分辨率5*5的图片,像素为1,卷积核的任务如下图



分类:padding,步长

池化

主要是为了减少卷积层提取的特征个数,增加特征的鲁棒性或是为了降维

目的是降低参数,方法是删除参数,分为最大池化(常用)和平均池化

池化层池化的是卷积层的输出(池化层一般放在卷积层后面)


方法

有尺度不变特征变换(SIFT):提取不变性(invariant)特征

方向梯度直方图(HOG):将3通道的彩色图像转换成一定长度的特征向量

FAST 角点检测:快速角点特征的检测算法

提取后的目的:提取到的噪声块儿,可以对噪声水平的高低做出初步估计

原因:精准的噪声水平估计是设计合理去噪网络结构的前提

方法:递归平均、最小值跟踪和直方图噪声估计


(3)去噪模型设计和选择

基于深度学习的图像去噪方法可以自主快速地提取浅层像素级特征和深层语义级特征,具有强大的表示学习能力和良好的去噪效果

基于传统模型的去噪方法提取的信息量较少,无法准确拟合噪声分布,去噪效果不甚理想


基于深度学习的图像去噪方法

基于卷积神经网络的去噪方法

卷积神经网络(CNN)是深度学习的基础网络

上图为DNN神经网络图,DNN内部的神经网络层可以分为三类,输入层,隐藏层和输出层,一般来说第一层是输入层,最后一层是输出层,而中间的层数都是隐藏层。

CNN五种结构组成:输入层,卷积层,池化层,全连接层(提取完成之后,使用全连接层完成分类任务),SoftMax(概率分布)


基于CNN自监督学习去噪

利用像素之间的独立性,以自监督训练方式寻找目标像素与输入像素之间的映射关系,从而实现去噪任务


自监督缺点:自监督方式忽视了空间信息之间的依赖关系,提取的特征对噪声的表达能力不足,且网络训练参数的调整方式缺乏灵活性,不能很好地表示含噪图像到清晰图像之间的复杂映射关系


基于CNN监督学习去噪

如 DnCNN-B、FFDNet和 CBDNet利用高斯混合模型对多种不同噪声水平的样本图像进行训练

通常,用 x = y - R(y) 表示恢复出的清晰图,y 为输入的噪声图,R(y) 表示预测的噪声,其去噪方法使用的损失函数如公式


过程:通过网络的训练,提取噪声分布 R(y) ,并与原始输入的噪声图像做差值运算,实现去噪任务

问题:对训练域外的噪声图像适应性差 --> 解决方法:专家混合法(MoE)给数据集中的每个代表性领域培训一名专家,对数据的可用性进行评估和分类,并通过无监督的聚类方法最小化 MoE 损失


局限性:

单一的卷积神经网络没有记忆功能,浅层像素级信息在池化过程中会大量丢失,导致去噪后的图像仍带有残留噪声

增加卷积层数量来提升特征表达能力的同时也带来了参数量增加、计算量加大和时间消耗多等问题,且网络更加复杂,训练难度增加

基于残差网络的去噪方法

CNN中图像网络分为

深层网络

  • 高层信息:深层网络提取的特征离输出较近,一些粗粒度的信息,包含是更抽象的信息,即语义信息。

  • 原理:感受野增加,感受野之间重叠区域增加,图像信息进行压缩,获取的是图像整体性的一些信息。

  • 优缺点:具有更强的语义信息,但是分辨率很低,对细节的感知能力较差。


浅层网络(常用)

  • 浅层特征:浅层网络提取的特征和输入比较近,包含更多的像素点的信息,一些细粒度的信息是图像的一些颜色、纹理、边缘、棱角信息。

  • 原理:浅层网络感受野较小,感受野重叠区域也较小,所以保证网络捕获更多细节。

  • 优缺点:分辨率更高,包含更多位置、细节信息,但是由于经过的卷积更少,其语义性更低,噪声更多。


思想

去噪思想可以用以下公式:

Me(·) 表示的是卷积层的特征提取操作 --> f0表示的是卷积层对输入噪声图像提取的初始特征

Mfl(·) 表示残差学习 --> fr是学习的特征

Mr(·) 表示对学习到的残差信息进行重构操作 --> 并输出去噪后的图像 ŷ

存在的问题

图像去噪方法常以普通 RGB 图像作为训练样本,没有考虑到传感器设备自身在图像信号处理过程对图像质量的影响,但 RGB 图像与成像设备获取的原始 RAW 图之间始终存在偏差,导致噪声建模方式不够合理、准确

解决方法:设计循环镜像转换方法 CycleISP


RGB2RAW 分支的任务是将 RGB 彩色图像转换成原始成像设备拍摄的 RAW 图

Noise injectionk控制器负责给 RAW 图添加噪声

RAW2RGB 分支的任务是将带噪声的 RAW 图转换成普通的 RGB 图像

图中色彩校正单元(Color Correction)对提高样本数据的真实性提供巨大帮助

缺点

残差连接的多次使用容易导致网络出现过拟合的现象,即模型过于贴合训练集,从而导致其无法正确预测未知数据的现象,过拟合会导致模型的泛化能力差


基于生成对抗网络的去噪方法

生成对抗网络(GAN)因其具有很强的学习能力,通过对抗学习训练策略,可以得到逼真的噪声图,在一定程度上缓解了成对训练样本不足的问题。

生成对抗网络在训练过程中需要计算生成器 (G) 和鉴别器 (D) 两部分损失


GAN

GAN网络整体示意

  • 有两个网络,G(Generator)和D(Discriminator)。

  • Generator是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z)。

  • Discriminator是一个判别网络,判别一张图片是不是“真实的”。它的输入是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,而输出为0,就代表不可能是真实的图片。

过程

第一阶段:固定「判别器D」,训练「生成器G」

  •     让生成器G不断生成“假数据”,然后给这个判别器D去判断。

  •     开始生成器G还很弱,所以很容易被揪出来。

  •     但是随着不断的训练,生成器G技能不断提升,最终骗过了判别器D。到了这个时候,判别器D基本属于瞎猜的状态,判断是否为假数据的概率为50%。


第二阶段:固定「生成器G」,训练「判别器D」

  • 现在训练「生成器G」就没有意义了。因此固定「生成器G」,然后开始训练「判别器D」。

  • 「判别器D」通过不断训练,提高了自己的鉴别能力,最终他可以准确的判断出所有的假图片。

  • 到了这个时候,「生成器G」已经无法骗过「判别器D」。


循环阶段一和阶段二

通过不断的循环,「生成器G」和「判别器D」的能力都越来越强。

最终我们得到了一个效果非常好的「生成器G」,我们就可以用它来生成我们想要的图片了。


局限性

  • 生成模型的分布没有显示表达,可解释性差

  • 生成器和鉴别器需要做到同步更新参数,很难生成离散数据

  • 目前为止,达到纳什均衡(博弈中,对于每个参与者来说,只要其他人不改变策略,他就无法改善自己的状况)的方法还没找到,网络训练不够稳定。

  • 基于图神经网络的去噪方法(GCDN)


GNN

GNN是什么

  • 图神经网络(GNN)适合处理非结构化或比较复杂的数据

  • GNN是一种连接模型,通过网络中节点之间的信息传递的方式来获取图中的依存关系

  • GNN通过从节点任意深度的邻居来更新该节点状态,这个状态能够表示状态信息。


GNN产生原因

CNN只能在欧几里得数据(Euclideandata),比如二维图片和一维文本数据上进行处理,而这些数据只是图结构的特例而已,对于一般的图结构,则很难使用


图嵌入的缺陷

  • 节点编码中权重未共享,导致权重数量随着节点增多而线性增大

  • 直接嵌入方法缺乏泛化能力,意味着无法处理动态图以及泛化到新的图


GCN

GCN,图卷积神经网络,实际上跟CNN的作用一样,就是一个特征提取器,只不过它的对象是图数据。

GCN精妙地设计了一种从图数据中提取特征的方法,从而让我们可以使用这些特征去对图数据进行节点分类、图分类、边预测,还可以顺便得到图的嵌入表示

上图中的GCN输入一个图,通过若干层GCN每个node的特征从X变成了Z,但是,无论中间有多少层,node之间的连接关系都是共享的。

优点

即使不训练,完全使用随机初始化的参数W,GCN提取出来的特征就以及十分优秀了!

这跟CNN不训练是完全不一样的,后者不训练是根本得不到什么有效特征的。

GCDN

该方法通过引入边缘注意力机制(Edge Attention)减少边缘信息的丢失

并采用3×3、5×5和7×7大小的滤波器进行多尺度分层提取特征,提高对特征信息的利用率

机器学习算法AI大数据技术

 搜索公众号添加: datanlp

长按图片,识别二维码



阅读过本文的人还看了以下文章:


整理开源的中文大语言模型,以规模较小、可私有化部署、训练成本较低的模型为主


《大语言模型》PDF下载


动手学深度学习-(李沐)PyTorch版本


YOLOv9电动车头盔佩戴检测,详细讲解模型训练


TensorFlow 2.0深度学习案例实战


基于40万表格数据集TableBank,用MaskRCNN做表格检测


《基于深度学习的自然语言处理》中/英PDF


Deep Learning 中文版初版-周志华团队


【全套视频课】最全的目标检测算法系列讲解,通俗易懂!


《美团机器学习实践》_美团算法团队.pdf


《深度学习入门:基于Python的理论与实现》高清中文PDF+源码


《深度学习:基于Keras的Python实践》PDF和代码


特征提取与图像处理(第二版).pdf


python就业班学习视频,从入门到实战项目


2019最新《PyTorch自然语言处理》英、中文版PDF+源码


《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码


《深度学习之pytorch》pdf+附书源码


PyTorch深度学习快速实战入门《pytorch-handbook》


【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》


《Python数据分析与挖掘实战》PDF+完整源码


汽车行业完整知识图谱项目实战视频(全23课)


李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材


笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!


《神经网络与深度学习》最新2018版中英PDF+源码


将机器学习模型部署为REST API


FashionAI服装属性标签图像识别Top1-5方案分享


重要开源!CNN-RNN-CTC 实现手写汉字识别


yolo3 检测出图像中的不规则汉字


同样是机器学习算法工程师,你的面试为什么过不了?


前海征信大数据算法:风险概率预测


【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类


VGG16迁移学习,实现医学图像识别分类工程项目


特征工程(一)


特征工程(二) :文本数据的展开、过滤和分块


特征工程(三):特征缩放,从词袋到 TF-IDF


特征工程(四): 类别特征


特征工程(五): PCA 降维


特征工程(六): 非线性特征提取和模型堆叠


特征工程(七):图像特征提取和深度学习


如何利用全新的决策树集成级联结构gcForest做特征工程并打分?


Machine Learning Yearning 中文翻译稿


蚂蚁金服2018秋招-算法工程师(共四面)通过


全球AI挑战-场景分类的比赛源码(多模型融合)


斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)


python+flask搭建CNN在线识别手写中文网站


中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程



不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  


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