目录
前言
📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
🚀对毕设有任何疑问都可以问学长哦!
大家好,这里是海浪学长计算机毕设专题,本次分享的课题是
🎯基于机器学习的图像去雾算法系统
项目背景
随着物联网和智能监控技术的快速发展,图像的处理和分析在各个领域变得越来越重要。然而,雾霾等气象条件会对图像质量产生严重影响,降低图像的可视性。本课题研究基于机器学习的图像去雾算法系统,旨在解决这一问题。通过设计高效的算法,可以提升雾霾图像的清晰度,恢复图像细节,对于提高智能监控系统的可靠性和实用性具有重要意义。
数据集
由于网络上没有现有的合适的图像去雾数据集,我决定通过相机拍摄和互联网收集两种办法,收集图片并制作了一个全新的数据集。这个数据集包含了各种雾霾程度的图片,通过现场拍摄和互联网收集,我能够获取到真实场景和多样的工作环境,这将为我的研究提供更准确、可靠的数据。

在图像去雾算法的实现过程中,数据扩充是提高模型泛化能力的重要手段。针对雾霾图像,可以通过旋转、缩放、裁剪等操作来增加数据的多样性。同时,还可以通过颜色抖动、对比度调整等手段来丰富数据的表现形式。这些数据扩充方法可以有效提升系统的稳定性和可靠性,为用户提供更好的去雾处理效果。

设计思路
算法理论技术
深度学习
生成对抗网络(GAN)是一种深度学习模型,其特点是引入了双方对抗的思想。GAN由生成器和判别器两部分组成,它们相互对抗、相互学习,以达到生成逼真样本的目的。生成器的作用是接收一个随机噪声向量作为输入,并生成与真实数据样本类似的数据样本。生成器通过学习数据样本的分布特征,逐渐提升生成的样本的质量。判别器则是用于判断输入数据是真实样本还是生成样本。判别器的目标是尽可能准确地区分真实样本和生成样本。
在训练过程中,生成器和判别器相互对抗,通过反复迭代优化网络参数。生成器试图生成更逼真的样本以欺骗判别器,而判别器则努力提高自己的辨别能力。这种对抗过程促使生成器逐渐学习到真实数据样本的分布,并生成与之相似的样本。GAN是一种无监督学习方法,它不需要一一对应的数据集。对于图像去雾的数据集,传统的监督学习需要有雾和无雾两套相互对应的数据集,而使用GAN则只需要一个无雾的数据集,更为简单和灵活。

卷积神经网络(CNN)是一种用于处理网格结构数据的神经网络。它由输入层、卷积层、池化层、激活函数和全连接层组成。输入层接收数据,卷积层通过卷积操作提取特征,池化层降低特征图尺寸并保留重要信息,激活函数引入非线性,全连接层将特征映射到最终输出。通过这些组件的协作,CNN能够有效地处理图像等网格数据,提取关键特征并进行分类或回归任务。

池化层类似于简单的卷积操作,通过统计相邻区域的信息来生成输出。最大池化是常见的池化操作之一,它有助于保留图像中显著的特征,并减小特征图的尺寸。池化层在卷积神经网络中起到降维、减少计算量和保留关键特征的作用。

激活函数在卷积神经网络中起到引入非线性变换的作用,常见的包括Sigmoid、tanh和ReLU等。其中,ReLU是最常用的激活函数,它通过将小于0的值置为0,保持大于0的值不变来引入非线性。全连接层是卷积神经网络的最后一层,用于最终的输出和分类任务。然而,在某些任务中,如图像去雾,最后的全连接层通常不需要使用。

去雾算法
在图像去雾领域,AOD-NET、DehazeNet和门控融合网络是基于深度学习的经典去雾算法。这些算法利用深度学习网络结构实现去雾效果,并通过训练获取所需参数。
AOD-NET是一种基于大气散射模型设计的归一化去雾网络。它采用卷积神经网络结构,并通过转换公式将大气光强度和传输矩阵两个参数转化为一个参数进行估计。这种方法避免了估计两个参数带来的误差累积,并具有较快的计算速度和简单的网络模型。AOD-NET可以轻松地与其他计算机视觉任务结合,但由于网络模型过于简单,可能无法很好地提取图像中的细节特征。

DehazeNet是一种端到端的训练模型,用于估计大气退化模型中的传输矩阵。该模型接收雾图像作为输入,并输出传输率映射图。然后,通过大气散射模型,使用传输率映射图来还原清晰图像。DehazeNet采用了深度卷积神经网络结构,其中包含4层。此外,该方法还引入了一种新的非线性激活函数。这种新的非线性激活函数根据传输矩阵设计,在传输矩阵的范围为0到1之间。因此,该激活函数将大于1的部分截断,从而显著增强了传输矩阵估计的准确性,并提高了恢复图像的质量。

门控融合网络是一种在去雾问题中采用编码-解码结构的网络结构。该算法通过对原始图像进行处理,分别恢复其颜色投射和可视效果,并加入伽马矫正以解决可视效果过暗的问题。该论文首先对图像进行白平衡、对比度增强和伽马校正等三种预处理,然后将这三个图像以及原始图像作为输入,通过网络训练得到三种图像。最后,将训练后得到的三种图像进行融合,得到最终的无雾图像,从而解决了去雾过程中常见的颜色投射和可视衰减问题。

实验环境
在门控融合网络的训练过程中,采用了TensorFlow 2作为训练框架。通过对网络进行5个epoch的训练,最终达到了最佳的拟合状态。这意味着网络在经过一定的训练迭代后,能够较好地适应训练数据,并能够有效地进行去雾任务。使用TensorFlow 2作为训练框架可以提供强大的计算和优化功能,帮助网络快速收敛并达到最佳性能。通过这个训练框架,门控融合网络能够在经过适当次数的训练后,得到较好的去雾效果,并生成高质量的无雾图像。

模型训练
通过主观视觉评价和客观评价指标对图像去雾算法的效果进行评估。主观视觉评价基于人眼观察,评估图像的纹理细节、色彩饱和度和雾程度等方面。客观评价指标基于数学模型,通过计算得到与人眼评价相近的分数。主观评价提供直观感知,而客观评价指标提供准确的数学评分,两者相结合可以对图像复原效果进行全面而准确的评估。
通过比较参数统一去雾方法的结果,证明了参数统一操作不会对图像去雾效果产生影响。在参数统一测试中,通过对透射率和大气层系数进行统一估计,可以看到参数统一方法并未引入更大的误差,相反,它保留了更多原始图像的结构和细节,并且达到了更明显的去雾效果。参数统一方法还通过失真分析证明了其可行性和适用性。该方法并没有因为参数统一而导致计算出现巨大偏差,从而导致图像物体变形或颜色偏色。参数统一的思想是对大气散射模型的双参数进行数学公式的变形,将两个参数整理为一个参数,从而减少了计算复杂度和误差累积。
相关代码示例:
import numpy as np
from skimage.metrics import structural_similarity as ssim
import matplotlib.pyplot as plt
# 假设original_image是原始图像,distorted_image是失真图像
original_image = np.random.rand(100, 100) # 这里用随机数模拟原始图像
distorted_image = original_image + 0.1 * np.random.randn(100, 100) # 模拟失真图像
# 计算PSNR
def calculate_psnr(original, reconstructed):
mse = np.mean((original - reconstructed) ** 2)
return 20 * np.log10(1 / np.sqrt(mse))
psnr_score = calculate_psnr(original_image, distorted_image)
print(f"PSNR: {psnr_score} dB")
# 计算SSIM
def calculate_ssim(original, reconstructed):
return ssim(original, reconstructed, data_range=original.max() - original.min())
ssim_score = calculate_ssim(original_image, distorted_image)
print(f"SSIM: {ssim_score}")
# 绘制原始图像和失真图像
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
plt.imshow(original_image, cmap='gray')
plt.title('Original Image')
plt.subplot(1, 2, 2)
plt.imshow(distorted_image, cmap='gray')
plt.title('Distorted Image')
plt.show()
海浪学长项目示例:






398



被折叠的 条评论
为什么被折叠?



