毕业设计 基于深度学习的图像修复算法 DCGAN 📅 发布时间:2026/7/7 12:31:34 👁️ 浏览次数: 文章目录0 简介1 图像修复2 生成对抗网络与图像修复2.1 生成对抗网络简介3 生成对抗网络在图像修复上的应用4 深度卷积对抗网络与图像修复4.1 深度卷积对抗网络简介4.2 深度卷积对抗网络与图像修复5 算法实现5.1 数据集5.2 基于人脸图片数据集的图像生成模型的构建5.3 实现效果6 模型改进5 最后0 简介今天学长向大家分享一个毕业设计项目基于深度学习的图像修复算法 DCGAN项目分享见主页任意置顶文章1 图像修复图像修复是指利用复杂的算法重建图形中丢失或损坏的部分的过程。在现实生活中这项工作仍然由经验丰富的图像修复师来完成。图像修复技术主要用来修复日常生活中被噪声污染或者人为破坏的破损图像其次也可应用于替换图像中的小区域或者瑕疵。所以让图像修复借助深度学习的算法和框架自动化是一个值得深入研究的课题。在原来的图像生成模型相应的增加一个图像修复代价优化器即可完成图像修复模型的构建。在训练时应该在进行图像修复之前应该先迭代训练图像生成模型找寻到能生成假图片的权重矩阵再利用该权重矩阵进行图像修复模型迭代优化具体来说是先完成图像生成迭代然后停止图像生成优化对图像生成的输入噪声迭代优化找到与修复图相同的输入分布之后生成最佳假图片提取假图片投影进行拼接即完成图像修复下图展示这种图像修复模型的运行过程2 生成对抗网络与图像修复2.1 生成对抗网络简介生成对抗网络其实两个网络互相博弈最终达到纳什均衡。这两个网络一个是生成器网络它的目标接受随机噪声不断训练生成假图片为了方便叙述把生成假图片的函数记作G(z)。另一个网络是判别器网络该网络负责判断输入的图片是由G(z)生成的假图片还是原图如果是原图的会输出1如果是假图片输出0.这两个网络的博弈过程具体说就是生成器网络输入随机噪声后不断生成足够接近真实图片的假图片去欺骗判别器网络而判别器网络就是要把生成器网络生成的假图片判断出来这样两者互相博弈最终到达纳什均衡。图2.5是GAN网络的对抗生成原理图。上图 GAN网络生成图片原理图 输入随机噪声生成器生成的假图片以及真图片又作为判别器的输入判别器判别错误惩罚判别器判别正确惩罚生成器3 生成对抗网络在图像修复上的应用把GAN网络应用于图像修复[9]时首先不考虑的是使用破损的不完整图像进行修复而是采用完整的原图进行GAN网络训练图像生成模型。首先随机输入一些噪声使用GAN模型的生成器与判别器互相博弈使生成器能有产生接近原图的假图片的能力。但是此时的模型还不足够生成最佳的假图片进行图像修复因为该假图片的输入的概率分布不一定与待修复图片的概率分布一致所以对假图片的输入噪声进行迭代更新直到训练后输入的概率分布与待修复图片一致即可提取由生成器生成的假图片和破损原图一样大一样位置的破损块利用破损块与待修复图做简单的通道拼接之后即可完成图像修复工作。图2.6即为使用GAN网络进行图像修复的原理图。GAN网络进行图像修复的原理 (随机噪声经过生成器多次迭代后提取生成后假图片的部分填充到待修复图)4 深度卷积对抗网络与图像修复4.1 深度卷积对抗网络简介DCGAN网络简单来理解就是把GAN网络框架的生成器和判别器用卷积神经网络实现。但是在进行实验时为了提高训练收敛的速度DCGAN对卷积网络的结构进行了一些修正这些修正如下(1) 取消卷积后的池化层在判别器网络中取消的池化层改用卷积层在生成器网络中取消的池化层改用转置卷积层。(2) 对判别器网络训练时除了输出层外都采用relu函数进行激活。输出层为保证输出为两个输出采用sigmoid函数。(3) 对生成器网络训练时除了输出层外都采用修正的ReLU函数LeakyReLU函数进行激活。输出层为保证输出在-1到1之间采用tanh激活。上图为DCGAN网络的生成器。图2.7 DCGAN网络的生成器 (100维噪声经过三层转置卷积层图像由窄深变为宽浅)(4) 卷积后每一层在激活前都使用batch_normalization归一化避免参数过大出现过拟合现象。(5) 取消密集dense层。4.2 深度卷积对抗网络与图像修复DCGAN网络实际是GAN网络的升级所以使用DCGAN网络进行图像修复的原理与GAN网络相似。总的来说就是训练生成器具备生成假图片的能力然后不断调整输入使之能找到最佳假图片。关于原理细节和实验细节将在第三四章详细介绍。5 算法实现5.1 数据集Celeba数据集最初是由The Chinese University of Hong Kong的MMLAB收集的用来训练的人脸图片集该人脸图片集包含202,599张各种名人的脸部图像并对人脸的5个标志眼睛的左边与右边鼻子嘴巴的左边与右边进行标记本文采用的数据文件img_align_celeba.zip为所有脸部图像进行了裁剪和对齐的数据集文件。5.2 基于人脸图片数据集的图像生成模型的构建下面按照本章描写的步骤对Celeba图片进行图像生成模型的构建。本部分将会详细介绍模型的形成。(1)Celeba图片数据的处理①使用scipy的库函数对Celeba图片集进行裁剪[shape64643]。②首先从数据集中提取样本集。③对数据集进行处理。对数据具体的数据处理步骤和方法如下。图像生成代价函数与优化器的构建判别器代价函数 方法 因为判别器想要输入真图片输出1想要输入假图片输出0所以需要两个代价函数一个利用交叉熵函数判断输入真图片输出与1的差别另一个利用交叉熵函数判断输入假图片输出与0的差别但是为了防止判别效果太好,导致梯度消失,所以添加很小的参数smooth,输入真图片时判断真图片与1个略比1小的差别。当两个差别过大就惩罚判别器以此得到好的判别效果。关键代码如下#真图片输出与略比1小的标签的差距d_loss_realtf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logitsd_logits_real,labelstf.ones_like(d_logits_real)*(1-smooth)))#假图片输出与标签0的差距d_loss_faketf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logitsd_logits_fake,labelstf.zeros_like(d_model_fake)))#两个差距之和构成判别器代价函数d_lossd_loss_reald_loss_fake 生成器代价函数 方法 因为生成器想要自己构造的假图片让判别器输出1所以生成器的构造利用交叉熵函数判断判别器输入假图片输出与1的差别。 代码#假图片输出与标签1的差距g_losstf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logitsd_logits_fake,labelstf.ones_like(d_model_fake))判别器优化器 方法 输入学习率learning_rate权重衰减参数beta1使用Adam优化器 代码#判别器优化器discriminator_optimizertf.train.AdamOptimizer(learning_ratelearning_rate,beta1beta1)生成器优化器 方法 输入学习率learning_rate权重衰减参数beta1使用Adam优化器 代码#生成器优化器generator_optimizertf.train.AdamOptimizer(learning_ratelearning_rate,beta1beta1)参数确定此参数是经过不断优化实验所得。参数 参数值输入噪声维度(z_size) 100学习率(learning_rate) 0.0002权重衰减率(beta1) 0.5增加对抗攻击(smooth) 0.1LeakyReLU的斜率(alpha) 0.2训练的batch的大小batch_size 128卷积核大小ksize 5*5卷积步长(stride) 2训练次数(epoch) 105.3 实现效果此次模型采用优化一次判别器再优化一次生成器的方法进行图像生成下图展示了图像生成的过程。(输入为100维随机噪声向量经过迭代不断生成假图片的过程)6 模型改进虽然使用一次判别器迭代一次生成器迭代达到图像生成的目的但是通过观察图损失变化图(红线是生成器生成损失蓝线是判别器判别损失)容易发现判别器判别损失有趋于0的现象此种现象叫做梯度消失。为了解决这种梯度消失现象本文对图像生成模型进行了改进在原有基础上增加了一次生成器损失也就是优化后的模型变为一次判别器优化迭代两次生成器迭代优化。图展示了优化后的损失变化图。很明显从图中能看出梯度消失得到了解决。展示了进行优化后的图像生成过程可以从图中看出图像生成的迭代效果也比之前有了提高完整项目与论文获取https://gitee.com/sinonfin/algorithm-sharing详细设计论文5 最后项目分享见主页任意置顶文章
网络渗透测试实战:从漏洞扫描到内网横向移动的攻防演练 1. 项目概述:从“攻”与“防”的视角理解渗透实战在网络安全这个没有硝烟的战场上,我常把渗透测试比作一次“压力测试”或“消防演习”。它不是教你如何成为黑客,而是让你站在攻击者的角度,去审视和验证一个系统、一个网络究竟有多… 2026/7/7 12:29:33
Rust AI CLI 工具链实战:把模型调用、文件操作和日志熔断串起来 Rust AI CLI 工具链实战:把模型调用、文件操作和日志熔断串起来写一个调用大模型的命令行工具不难,但让它连续处理几百个任务不出岔子,就是另一回事了。一、当一次 API 调用超时,整个工具链都崩了 事情是这样的。我写了一个 Rust … 2026/7/7 12:29:33
EM3080-W条形码扫描模块与PIC18F87J50的工业级应用解析 1. EM3080-W条形码扫描模块深度解析EM3080-W是一款专为工业环境设计的激光条形码扫描模块,其核心优势在于将光学采集、信号处理和数字输出集成在仅拇指大小的封装内。与常见的CCD方案相比,这个模块在三个方面展现出独特价值:首先是其自适应光… 2026/7/7 12:25:32
EM3080-W与STM32L031K6的嵌入式条码识别方案解析 1. EM3080-W与STM32L031K6的硬件组合解析 在工业级条码识别领域,EM3080-W模块与STM32L031K6微控制器的组合堪称黄金搭档。EM3080-W是专为嵌入式系统设计的高性能条码扫描模块,其核心是一颗500万像素的CMOS传感器,配合自主研发的DSP解码芯片&a… 2026/7/7 13:54:38
(其他)windows常用命令 1.左右屏快捷键 问题:在边写代码边问AI工具时,频繁在IDE和浏览器切换,导致效率低下。 方案:按住win←或win→,可以进行左右屏显示。 2026/7/7 13:54:38
3层架构深度解析:ncmdumpGUI如何优雅破解网易云音乐NCM格式的技术哲学 3层架构深度解析:ncmdumpGUI如何优雅破解网易云音乐NCM格式的技术哲学 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 在数字音乐版权保护与用户使… 2026/7/7 13:52:38
IS31FL3731与PIC18F4585的LED矩阵控制方案 1. IS31FL3731与PIC18F4585的硬件协同设计 在LED矩阵控制领域,IS31FL3731作为一款I2C接口的可编程LED驱动芯片,与PIC18F4585微控制器的组合能够实现高度灵活的视觉表现。这套硬件组合的核心优势在于:IS31FL3731通过内置显示缓存和PWM控制器&a… 2026/7/7 13:50:38
Biotinyl-Magainin 2 ;Bio-GIGKFLHSAKKFGKAFVGEIMNS 一、基础信息中文名称:N 端生物素修饰 Magainin 2(蛙皮肤抗菌肽)英文全称:Biotinyl-Magainin 2三字母序列:Biotin-Gly-Ile-Gly-Lys-Phe-Leu-His-Ser-Ala-Lys-Lys-Phe-Gly-Lys-Ala-Phe-Val-Gly-Glu-Ile-Met-Asn-Ser单字… 2026/7/7 13:48:37
Python开发入门指南:从零开始搭建你的第一个项目 你想学Python,已经不下十次在B站收藏了“零基础入门”的视频,但至今连一个能运行的.py文件都没写过。别再让收藏夹吃灰了,今天我们不谈语法大全,不谈框架选择,直接从零开始搭建你的第一个项目——一个能在终端里运行的… 2026/7/7 13:48:37
Acunetix v24.8 深度解析:DAST漏洞扫描器核心原理与DevSecOps实践 1. 项目概述:Acunetix v24.8 高级版漏洞扫描器深度解析作为一名在网络安全领域摸爬滚打多年的老兵,我深知一款趁手的“兵器”对于安全测试工作意味着什么。今天要聊的,就是Web应用安全测试领域里一个响当当的名字——Acunetix。特别是其v24.8… 2026/7/7 0:01:11
如何3步搞定加密视频下载:跨平台资源嗅探与解密工具终极指南 如何3步搞定加密视频下载:跨平台资源嗅探与解密工具终极指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是… 2026/7/7 0:03:13
Jailhouse-gui可视化管理工具:让多核处理器分区变得简单高效 Jailhouse-gui可视化管理工具:让多核处理器分区变得简单高效 【免费下载链接】Jailhouse-gui A graphical user interface (GUI) tool for configuring and managing Jailhouse, a Linux-based hypervisor for partitioning multicore processors into isolated cel… 2026/7/7 0:03:13
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/7 11:26:57
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/7 11:26:58