【图像去雾】使用多层感知器的单图像去雾附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。

🍎 往期回顾关注个人主页:Matlab科研工作室

🍊个人信条:格物致知,完整Matlab代码及仿真咨询内容私信。

🔥 内容介绍 

雾霾天气对户外图像的质量产生严重影响,导致图像对比度降低、色彩失真和细节模糊,极大地限制了计算机视觉系统的性能。单幅图像去雾作为计算机视觉领域的一个重要研究方向,旨在从一张有雾图像中恢复出清晰无雾的场景。传统的基于物理模型的方法往往依赖于先验知识,对场景变化的鲁棒性有限。近年来,深度学习在图像处理领域取得了显著进展,为图像去雾提供了新的思路。本文探讨了一种基于多层感知器(MLP)的单幅图像去雾方法。我们分析了雾霾形成的光学模型,阐述了去雾的本质问题,并详细介绍了如何利用MLP的非线性映射能力来学习雾霾图像到清晰图像之间的复杂关系。我们讨论了模型的结构设计、训练策略以及潜在的改进方向。实验结果表明,基于MLP的方法在一定程度上能够有效地去除雾霾,提升图像质量,为单幅图像去雾提供了一种可行且有前景的深度学习解决方案。

关键词: 图像去雾;单幅图像去雾;多层感知器;深度学习;计算机视觉;图像增强

1. 引言

雾霾作为一种常见的大气现象,对户外成像质量构成了严峻挑战。雾霾中的悬浮粒子散射和吸收光线,使得场景的对比度大幅下降,颜色信息发生偏移,远处的物体变得模糊不清。这些视觉退化不仅影响了人们的观感,更严重阻碍了依赖于清晰图像输入的各种计算机视觉任务,例如目标检测、跟踪、自动驾驶、遥感图像分析等。因此,研究有效的图像去雾技术具有重要的理论意义和实际应用价值。

图像去雾的目标是从受雾霾污染的图像中恢复出原始的清晰场景信息。根据输入的图像数量,去雾方法可以分为多幅图像去雾和单幅图像去雾。多幅图像去雾通常需要利用同一场景在不同天气条件下的图像或者同一场景的立体图像对,通过融合信息来去除雾霾。然而,在许多实际应用场景中,往往只能获取到单幅有雾图像,因此单幅图像去雾技术更具挑战性,也更具普适性。

早期的单幅图像去雾方法主要基于雾霾成像的物理模型。经典的物理模型将雾霾图像的形成过程描述为一个加性模型,即有雾图像是由原始场景辐射光经大气衰减后与大气光成分叠加而成。基于物理模型的方法通常依赖于一些先验知识,例如暗通道先验(Dark Channel Prior, DCP)[1]、颜色衰减先验(Color Attenuation Prior, CAP)[2]等。这些先验知识基于对无雾图像统计特性的观察,并在一定条件下能够取得不错的效果。然而,先验知识的有效性依赖于场景的特性,对于某些场景(如包含大面积天空或白色物体的场景),这些先验可能会失效,导致去雾效果不理想。此外,这些方法通常还需要进行参数估计和后处理步骤,计算复杂度较高。

近年来,随着深度学习技术的飞速发展,其强大的特征学习能力和非线性建模能力在图像处理领域展现出巨大潜力。基于深度学习的图像去雾方法摆脱了对传统物理模型和手工设计先验的依赖,通过训练大规模数据集直接学习有雾图像到无雾图像之间的复杂映射关系。目前,基于深度学习的去雾方法主要包括基于卷积神经网络(Convolutional Neural Network, CNN)的方法[3, 4]和基于生成对抗网络(Generative Adversarial Network, GAN)的方法[5, 6]等。CNN由于其局部感受野和参数共享的特性,非常适合处理图像中的空间相关性,因此在去雾任务中取得了显著的成功。GAN则通过对抗训练的方式,能够生成更加真实和自然的无雾图像。

多层感知器(MLP),作为一种前馈神经网络,由输入层、一个或多个隐藏层和输出层组成,通过非线性的激活函数实现复杂的函数逼近能力。虽然在处理具有空间相关性的图像数据方面,CNN通常被认为更具优势,但MLP作为一种基础且通用的神经网络结构,其强大的非线性映射能力同样可以用来学习图像的像素级映射关系。考虑到单幅图像去雾本质上是将有雾图像中的像素值映射到相应的无雾图像中的像素值,MLP在理论上具备学习这种映射的能力。本文旨在探讨利用MLP来构建一个单幅图像去雾模型,研究其可行性、性能以及与基于CNN方法的潜在差异。

本文的结构安排如下:第二节详细阐述雾霾成像的物理模型和单幅图像去雾的基本原理。第三节介绍多层感知器的基本结构和工作原理。第四节提出基于MLP的单幅图像去雾模型的设计与实现细节,包括模型结构、输入/输出设计、损失函数以及训练策略。第五节进行实验验证,展示模型的去雾效果并进行定性和定量分析。第六节讨论基于MLP方法的优缺点以及未来的研究方向。最后,第七节对全文进行总结。

2. 雾霾成像的物理模型与去雾原理

单幅图像去雾的物理模型通常基于Koschmieder定律[7]的大气散射模型。该模型描述了场景点反射的光线在大气中传播并被散射,最终到达相机传感器的过程。数学表达式通常如下:

I(x)=J(x)e−βd(x)+A(1−e−βd(x))

图片

该模型可以分解为两部分:

    图片

    图片

    基于物理模型的去雾方法通常包括以下步骤:

    图片

    相比之下,基于深度学习的方法则试图绕过对物理模型的显式估计,而是直接学习从有雾图像到无雾图像的端到端映射。这使得模型能够学习更复杂的非线性关系,并且在理论上对不同的场景和雾霾类型具有更强的适应性。

    3. 多层感知器(MLP)的基本结构与原理

    多层感知器(MLP)是一种最基础的前馈神经网络,由输入层、一个或多个隐藏层和输出层组成。每一层都包含若干神经元,层与层之间通过权重和偏置进行连接。在一个典型的MLP中,信息从输入层单向地传递到输出层,没有任何反馈回路。

    MLP的基本构成单元是神经元。一个神经元接收来自前一层多个神经元的输入,每个输入都与一个权重相乘,然后将所有加权输入和偏置相加,并通过一个非线性激活函数产生输出。数学表达式如下:

    y=f(∑i=1nwixi+b)

    图片

    多层感知器通过堆叠多个隐藏层来实现复杂的非线性映射。每个隐藏层的输出作为下一层的输入。整个网络的输出由最后一层的神经元产生。MLP的学习过程是通过反向传播算法调整层与层之间的权重和偏置,以最小化预测输出与目标输出之间的误差(由损失函数衡量)。

    MLP作为一种通用的函数逼近器,根据通用逼近定理(Universal Approximation Theorem),一个具有足够多隐藏单元的单隐藏层MLP可以逼近任意连续函数。这表明MLP在理论上具备学习有雾图像到无雾图像复杂映射关系的能力。

    在图像处理任务中,MLP通常以像素为单位进行处理。对于一个彩色图像(R, G, B三个通道),每个像素点可以被视为一个输入向量。一个直接使用MLP进行图像去雾的方法可能是将整个图像展平为一个长向量作为MLP的输入,输出也是展平后的无雾图像向量。然而,这种方式存在以下问题:

    1. 输入维度过高:对于高分辨率图像,展平后的向量维度巨大,导致模型参数量庞大,训练困难且容易过拟合。

    2. 忽略空间信息:将图像展平破坏了像素之间的空间邻近关系,而这种关系对于图像处理任务至关重要。

    为了克服这些问题,可以考虑以局部块或像素为单位进行处理。例如,对于每个像素点及其周围的邻域像素,将其作为一个输入向量送入MLP,输出为该像素点在无雾图像中的值。这种方法虽然考虑了局部信息,但计算量仍然很大,且对于不同位置的像素需要独立的计算。

    另一种更常见且更有效的方式是利用MLP的非线性能力来学习像素级的特征映射。例如,可以将有雾图像的每个像素值作为MLP的输入,输出为该像素点在无雾图像中的对应值。这种方法假设每个像素的去雾过程仅依赖于其自身的原始值,忽略了像素之间的空间上下文信息。然而,通过引入多个隐藏层和非线性激活函数,MLP可以学习更复杂的像素级转换。

    本文将探讨基于第二种思路,即以像素为单位,将有雾图像的像素值作为MLP的输入,学习其到无雾图像像素值的映射。虽然这种方法没有直接利用空间上下文,但MLP的非线性能力可能能够从输入像素值中提取出与雾霾相关的特征,并通过学习复杂的非线性函数实现去雾。

    4. 基于多层感知器的单幅图像去雾模型

    本文提出一种基于多层感知器(MLP)的单幅图像去雾模型。该模型的输入为有雾图像的像素值,输出为对应的无雾图像像素值。模型的结构设计和训练策略如下:

    4.1 模型结构

    图片

    模型的参数包括各层之间的权重矩阵和偏置向量。通过训练,模型将学习从有雾像素值到无雾像素值的非线性映射。

    为了处理整幅图像,我们将图像中的每一个像素独立地输入到这个MLP模型中进行预测。虽然是像素级的处理,但由于是同一组参数对所有像素进行处理,这实际上是一种共享权重的MLP,但在概念上,我们将每个像素视为一个独立的输入样本。

    4.2 损失函数

    模型的训练目标是最小化预测的无雾图像与真实的无雾图像之间的差异。对于图像去雾任务,常用的损失函数是均方误差(Mean Squared Error, MSE)或平均绝对误差(Mean Absolute Error, MAE)。

      图片

      在图像处理中,有时使用L1损失(MAE)比L2损失(MSE)更能产生更清晰的图像,因为它对异常值(例如噪声或剧烈的颜色变化)的敏感性较低。然而,MSE作为一种可导函数,在梯度计算方面更为友好,且在许多任务中都能取得不错的效果。考虑到模型的简单性,我们可以选择MSE作为主要的损失函数进行训练。

      4.3 训练数据与策略

      训练基于MLP的去雾模型需要大量的有雾图像及其对应的无雾图像对。获取真实的有雾-无雾图像对非常困难,因为同一场景在有雾和无雾条件下的拍摄通常难以完美对齐。因此,常用的方法是利用合成数据集,即通过物理模型将清晰的无雾图像合成为有雾图像。

      合成数据集的生成通常包括以下步骤:

        图片

        通过这种方式,可以生成大规模的有雾-无雾图像对数据集用于训练。常用的公开数据集包括RESIDE [9] 等。

        训练策略方面,采用标准的监督学习方法。使用随机梯度下降(Stochastic Gradient Descent, SGD)或其变种(如Adam [10])作为优化器,通过反向传播算法计算损失函数关于模型参数的梯度,并根据梯度更新参数,以最小化损失函数。训练过程中需要设置学习率、批次大小(batch size)、训练轮数(epochs)等超参数。为了防止过拟合,可以采用正则化技术,例如L2正则化或Dropout。然而,对于以像素为单位处理的MLP,简单的像素级Dropout可能不是最优选择。

        图片

        4.4 实现细节

        图片

        5. 优缺点与未来方向

        优点:

        • 模型简单易实现:

           MLP结构清晰,易于理解和实现,不需要复杂的网络模块设计。

        • 非线性映射能力强:

           MLP能够学习有雾像素值到无雾像素值之间的复杂非线性关系。

        • 端到端学习:

           模型直接学习从输入图像像素到输出图像像素的映射,无需显式估计物理模型参数。

        缺点:

        • 忽略空间上下文信息:

           MLP以像素为单位进行处理,没有利用像素之间的空间邻近关系,难以捕捉图像中的纹理、结构等信息。

        • 性能可能受限:

           与利用卷积操作捕捉局部空间特征的CNN相比,MLP在图像处理任务中的性能通常较低。

        • 参数量可能较大:

           如果直接将整个图像展平作为MLP输入,参数量会非常庞大。即使以像素为单位处理,隐藏层的神经元数量也会影响参数量。

        未来研究方向:

        虽然本文提出的基于像素级MLP的去雾方法存在局限性,但这并不意味着MLP在图像去雾领域完全没有应用价值。未来的研究可以探索以下方向:

        • 结合空间信息:

           可以考虑将MLP与其他能够捕捉空间信息的模块结合,例如,在MLP的输入端加入一些基于局部窗口的特征提取,或者在网络结构中引入注意力机制,使得MLP能够关注到更重要的空间区域。

        • 级联或并行结构:

           可以考虑将MLP与其他去雾方法(如基于先验或基于CNN的方法)结合,构建级联或并行的去雾系统,发挥各自的优势。例如,可以使用MLP对图像进行初步的像素级去雾,然后再使用其他方法进行细化。

        • 优化模型结构:

           探索更优化的MLP结构,例如增加隐藏层数量、调整每层神经元数量、尝试不同的激活函数等,以提升模型的非线性建模能力。

        • 损失函数改进:

           除了MSE和MAE,可以探索更适合图像去雾任务的损失函数,例如感知损失(Perceptual Loss)[11] 或结构损失,这些损失函数能够更好地衡量图像的感知质量和结构相似性。

        • 训练数据的多样性:

           收集和利用更多样化的训练数据,包括不同场景、不同雾霾浓度、不同光照条件下的图像,以增强模型的泛化能力。

        • 对抗训练:

           尝试使用生成对抗网络(GAN)的框架,将MLP作为生成器,通过对抗训练生成更真实和自然的无雾图像。

        6. 结论

        本文探讨了一种基于多层感知器(MLP)的单幅图像去雾方法。通过将有雾图像的像素值作为MLP的输入,并学习其到无雾图像像素值的非线性映射,模型在一定程度上实现了图像去雾的效果,提升了图像的对比度和清晰度。实验结果表明,尽管MLP在处理图像空间信息方面存在局限性,但其强大的非线性建模能力使其在单幅图像去雾任务中表现出一定的潜力。

        然而,与先进的基于CNN的去雾方法相比,基于像素级MLP的方法在细节恢复和全局一致性方面存在差距。未来的研究可以致力于将MLP与其他能够捕捉空间信息的模块结合,优化模型结构和损失函数,以进一步提升基于MLP的去雾方法的性能。尽管存在不足,本文的工作为利用基础的神经网络结构解决图像去雾问题提供了一个探索方向,也为更复杂的深度学习模型设计提供了参考。

        ⛳️ 运行结果

        图片

        图片

        🔗 参考文献

        [1] 范宏栋.基于大气散射模型的图像去雾算法研究[D].西北师范大学,2024.

        [2] 蒲亨飞,李震,李良荣.基于暗通道先验的去雾算法研究[J].激光与光电子学进展, 2021(020):058.DOI:10.3788/LOP202158.2010011.

        [3] 孙晓峰.基于视觉避障与导航的自主移动机器人关键技术研究[D].山东理工大学,2019.

        📣 部分代码

        🎈 部分理论引用网络文献,若有侵权联系博主删除

         👇 关注我领取海量matlab电子书和数学建模资料 

        🏆团队擅长辅导定制多种科研领域MATLAB仿真,助力科研梦:

        🌈 各类智能优化算法改进及应用
        生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱调度、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化、CVRP问题、VRPPD问题、多中心VRP问题、多层网络的VRP问题、多中心多车型的VRP问题、 动态VRP问题、双层车辆路径规划(2E-VRP)、充电车辆路径规划(EVRP)、油电混合车辆路径规划、混合流水车间问题、 订单拆分调度问题、 公交车的调度排班优化问题、航班摆渡车辆调度问题、选址路径规划问题、港口调度、港口岸桥调度、停机位分配、机场航班调度、泄漏源定位
        🌈 机器学习和深度学习时序、回归、分类、聚类和降维

        2.1 bp时序、回归预测和分类

        2.2 ENS声神经网络时序、回归预测和分类

        2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类

        2.4 CNN|TCN|GCN卷积神经网络系列时序、回归预测和分类

        2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
        2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类

        2.7 ELMAN递归神经网络时序、回归\预测和分类

        2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类

        2.9 RBF径向基神经网络时序、回归预测和分类

        2.10 DBN深度置信网络时序、回归预测和分类
        2.11 FNN模糊神经网络时序、回归预测
        2.12 RF随机森林时序、回归预测和分类
        2.13 BLS宽度学习时序、回归预测和分类
        2.14 PNN脉冲神经网络分类
        2.15 模糊小波神经网络预测和分类
        2.16 时序、回归预测和分类
        2.17 时序、回归预测预测和分类
        2.18 XGBOOST集成学习时序、回归预测预测和分类
        2.19 Transform各类组合时序、回归预测预测和分类
        方向涵盖风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、用电量预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
        🌈图像处理方面
        图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
        🌈 路径规划方面
        旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、 充电车辆路径规划(EVRP)、 双层车辆路径规划(2E-VRP)、 油电混合车辆路径规划、 船舶航迹规划、 全路径规划规划、 仓储巡逻
        🌈 无人机应用方面
        无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配、无人机安全通信轨迹在线优化、车辆协同无人机路径规划
        🌈 通信方面
        传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化、水声通信、通信上传下载分配
        🌈 信号处理方面
        信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化、心电信号、DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测
        🌈电力系统方面
        微电网优化、无功优化、配电网重构、储能配置、有序充电、MPPT优化、家庭用电
        🌈 元胞自动机方面
        交通流 人群疏散 病毒扩散 晶体生长 金属腐蚀
        🌈 雷达方面
        卡尔曼滤波跟踪、航迹关联、航迹融合、SOC估计、阵列优化、NLOS识别
        🌈 车间调度
        零等待流水车间调度问题NWFSP 、 置换流水车间调度问题PFSP、 混合流水车间调度问题HFSP 、零空闲流水车间调度问题NIFSP、分布式置换流水车间调度问题 DPFSP、阻塞流水车间调度问题BFSP

        👇 

        评论
        添加红包

        请填写红包祝福语或标题

        红包个数最小为10个

        红包金额最低5元

        当前余额3.43前往充值 >
        需支付:10.00
        成就一亿技术人!
        领取后你会自动成为博主和红包主的粉丝 规则
        hope_wisdom
        发出的红包
        实付
        使用余额支付
        点击重新获取
        扫码支付
        钱包余额 0

        抵扣说明:

        1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
        2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

        余额充值