GAN 用于图像增强

ops/2025/1/24 3:39:27/

工程需求,临时学一下gan的原理和基于图像增强的实现

原理

论文链接

Generative Adversarial Nets

我们提出了一个通过对抗过程来估计生成模型的新框架,其中我们同时训练两个模型:捕获数据分布的生成模型G和估计样本来自训练数据而不是G的概率的 判别模型D。G的训练过程是最大化D犯错的概率。这个框架对应于一个min-max two-player game。在任意函数G和D的空间中,存在一个唯一解,G恢复训练数据分布,D处处等于1/2。在G和D由mlp定义的情况下,整个系统可以通过反向传播进行训练。在训练或生成样本过程中,不需要任何马尔可夫链或展开近似推理网络。通过对生成的样本进行定性和定量评估,实验证明了该框架的潜力。

之前的方法总是想构造一个分布函数,然后提供参数给函数学习,把分布学出来,但是计算量巨大;Gernerative machine就是学模型来近似想要的结果,虽然算起来容易,但是不知道想要的结果

组件

  1. 生成器 (Generator)(是MLP)

    • 输入是随机噪声(通常是从Gaussian Distribution或均匀分布中采样的向量)。
    • 输出是与真实数据分布尽可能接近的生成样本(如图像、音频、文本等)。
    • 目标是“欺骗”判别器,使其无法分辨生成样本和真实样本。
  2. 判别器 (Discriminator)(是MLP)

    • 输入是生成器的输出样本和真实样本。
    • 输出是样本为真实数据的概率(通常在 [0, 1] 之间)。
    • 目标是正确区分真实样本和生成样本。

任务

Gernerative fake,Discriminative 判断,二者互相对抗,最后期望G赢

判别器目标:最大化区分真实样本和生成样本的能力

判别器的目标是 最大化 上述公式,即:

  • 提高对真实数据 x 的识别准确度(log⁡D(x))。
  • 提高对生成数据 G(z)的拒绝能力(log⁡(1−D(G(z)))

 鼓励判别器在面对真实数据 x 时输出高概率,即更准确地判断数据为真实。

鼓励判别器在面对生成样本 G(z)时输出低概率,即更准确地判断数据为生成的。

生成器目标:最小化被判别器正确区分生成样本为假的概率

生成器希望“欺骗”判别器,让判别器认为生成样本 G(z)是真实的

拟合过程↑ 绿色是z映射的均值,蓝色线是辨别器,总之就是把随机分布映射成真实分布的一个过程

 命题

论文中的命题和证明,这里暂时不展开

统计意义是 two-sample test

迭代过程

先更新Discriminator再更新Generator

总体来说这一版收敛不太稳定

降噪任务

参考视频第1.1节-GAN与图像降噪-基础篇_哔哩哔哩_bilibili

cnn--encoder-decoder, residual learninig 需要成对的训练数据,真实数据难以获得

GAN-CNN based blind denoiser GCBD,无监督上采样模型

看了一下效果还可以

经典应用

DANet*

  • 任务类型:分割任务中的特征增强
  • DANet 实际上是一种用于语义分割任务的注意力机制网络,而非纯粹的 GAN。
  • 引入了空间注意力 (Spatial Attention)通道注意力 (Channel Attention) 机制,旨在增强特征表达,关注目标区域的细节。

EnlightenGAN

  • 任务类型:低光照图像增强
  • EnlightenGAN 是一种用于增强低光照图像的生成对抗网络
  • 它可以改善图像在低光照条件下的亮度和对比度,同时保留细节和自然感

SRGAN*

  • SRGAN 是一种用于图像超分辨率(Super Resolution)的 GAN,目的是从低分辨率图像生成高分辨率图像。
  • 它通过生成器网络提高图像分辨率,并通过对抗判别器保证生成的高分辨率图像更自然、更逼真。

Generator 

前面是残差模块不改变图像分辨率

Pixelshuffer 是基于亚像素卷积的上采样模块

亚像素卷积

用channel换space

Discriminator

通道数不断增加的卷积层每次特征通道数增加一倍时,特征分辨率降低为原来的一半

内容损失也叫感知损失

训练心得

就是说还是吃数据集的,在通用数据集作为预训练权重的情况下针对医学图像表现并不好

通用数据集表现↑

医学数据集表现↑ 

以及discriminator经常比generator强很多...大概就能对应文中的收敛不稳定吧

改进:ESRGAN

Esrgan:Enhanced super-resolution gene!ative adversaria networks

--引入Residual-in-Residual Dese Block(RRDB)增强生成器能力

--使用激活前的VGG特征来改善感知损失

(激活之后的特征过于稀疏)

--RaGAN模型相对判别器,relativistic average discriminatol

others

CycleGAN:如果需要对某一领域图像(如医学图像)进行特定增强,也可以使用无监督训练方式。

DeblurGAN


http://www.ppmy.cn/ops/152644.html

相关文章

Spring 定时任务:@Scheduled 注解四大参数解析

本文主要介绍了在 Spring 框架中使用Scheduled注解实现定时任务的方法,重点讲解了fixedRate、fixedDelay、cron和initialDelay这四个参数的用法,并通过实例代码进行了详细说明。 1. fixedRate 参数 参数含义 fixedRate指定任务固定时间间隔执行。如设…

react上增加错误边界 当存在错误时 不会显示白屏

react上增加错误边界 当存在错误时 不会显示白屏 定义:错误边界是一个 React 组件,它会在其子组件树中的任何位置捕获 JavaScript 错误,并显示一个备用的 UI 而不是崩溃的组件树 在总项目的组件中创建文件: src/components/Erro…

【Elasticsearch入门到落地】6、索引库的操作

接上篇《5、安装IK分词器》 上一篇我们进行了IK分词器的安装与测试,本篇我们来学习ElasticSearch的索引库的操作,学习mapping映射属性以及CRUD操作。 一、前情回顾 我们在前几篇学习了ElasticSearch的基本概念,并动手搭建了ElasticSearch环…

字玩FontPlayer开发笔记12 Vue3撤销重做功能

字玩FontPlayer开发笔记12 Vue3撤销重做功能 字玩FontPlayer是笔者开源的一款字体设计工具,使用Vue3 ElementUI开发,源代码:github | gitee 笔记 撤销重做功能是设计工具必不可少的模块,以前尝试使用成熟的库实现撤销重做功能…

探索前端开发中的 Web Vitals —— 提升用户体验的关键技术

随着用户对网站性能的要求越来越高,前端开发不仅需要关注功能实现,还需要关注页面加载速度、交互响应速度以及视觉稳定性等因素。Google 在 2020 年推出了 Web Vitals(网页核心指标),这套指标为前端开发者提供了一种衡…

数据结构(精讲)----应用篇

注意:作者会出两个版本的数据结构的介绍;第一个版本介绍的数据结构会偏向理论性,第二个版本,也就是从这篇文章开始,这个版本会偏向应用性;会带领大家了解数据结构,以及为什么学习数据结构&#…

Windows截获系统鼠标消息转发到指定窗口

注册输入设备,截获系统底层的设备消息 先看关键代码: RAWINPUTDEVICE rids[1]; rids[0].usUsagePage HID_USAGE_PAGE_GENERIC; //0x01 rids[0].usUsage HID_USAGE_GENERIC_MOUSE; //0x02 rids[0].dwFlags RIDEV_INPUTSINK; //0x00000100 rids[0].hwn…

图论DFS:黑红树

我的个人主页 {\large \mathsf{{\color{Red} 我的个人主页} } } 我的个人主页 往 {\color{Red} {\Huge 往} } 往 期 {\color{Green} {\Huge 期} } 期 文 {\color{Blue} {\Huge 文} } 文 章 {\color{Orange} {\Huge 章}} 章 DFS 算法:记忆化搜索DFS 算法&#xf…