总结:图像生成网络

1、最新的几款图像生成网络

  • eCNN
    文献:Bahrami A, Karimian A, Fatemizadeh E, et al. A new deep convolutional neural network design with efficient learning capability: Application to CT image synthesis from MRI[J]. Medical physics, 2020, 47(10): 5158-5171.

  • 经典的pix2pix
    pix2pix是一种基于条件式生成对抗网络(CGAN)的图像转译模型,而条件式生成抵抗网络是生成对抗网络的一种扩展,它通过在生成器和判别器中引入条件信息来实现有条件的图像生成。生成器采用U-Net网络结构,融合底层细粒度特征和高层抽象;判别器采用patchGAN网络结构,在图块尺度提取纹理等高频信息。
    那么简笔画猫转成真猫到底是一个什么原理腻,可以这样理解:你可以获取很多真猫的图片,用opencv的边缘提取,把每一张图片的边缘都给提取出来,构建一个像素到像素的映射数据集,也就是数据集包含两类图片,一类是边缘轮廓简笔画,另一类是真猫的图片,它们俩是一一对应的关系,所以pix2pix解决的是一个像素配对的图像转译问题,那么我们上次介绍的cyclegan呢解决的是一个非配对的图像转译问题。同样,这里也能用cyclegan来解决这些问题。image translation领域非常的好玩,既可以用配对的数据集去训练,也可以用不配对的数据集。

    pix2pix是2017年的论文,现在看来比较老了,如果你现在还想做跟图像转译相关的项目的话,可以用更好更新的算法,比如UGATIT、StarGAN等。当然用pix2pix也是完全可以滴,但是要注意pix2pix使用起来可能会容易模式崩溃,训练不太稳定喔

    文献:Isola P, Zhu J Y, Zhou T, et al. Image-to-image translation with conditional adversarial networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 1125-1134.

    pix2pix代码:https://github.com/phillipi/pix2pix

  • MedGAN,用GAN对医学成像进行迁移
    MedGAN框架用Cas- Net作为生成器,通过一个对抗判别器从感知和像素角度进行惩罚,同时使用一个预先训练的特征提取器,以确保转换后的输出在样式、纹理和内容上与所需的目标图像匹配。
    使用VGG-19网络作为特征抽取器,在ImageNet上做预训练。由5个卷积块组成,每个卷积块由2-4层和3个完全连接的层组成。虽然是在非医学图像上预训练的,但是VGG-19网络提取的特征在表示纹理和样式信息方面是有益的。在这里插入图片描述
    文献:Armanious K, Jiang C, Fischer M, et al. MedGAN: Medical image translation using GANs[J]. Computerized medical imaging and graphics, 2020, 79: 101684.

  • TransUNet:Transformers Make Strong Encoders for Medical Image Segmentation用于医疗图像分割的transformers编码器详解
    设计的Idea:UNet +transformers的结合体,使用的具体模块:ViT+ResNet50+skip connection。
    文献:Chen J, Lu Y, Yu Q, et al. Transunet: Transformers make strong encoders for medical image segmentation[J]. arXiv preprint arXiv:2102.04306, 2021.
    参考解析:https://blog.csdn.net/weixin_43656644/article/details/123563646

  • CGAN
    -传统的GAN或者其他的GAN都是通过一堆的训练数据,最后训练出了G网络,随机输入噪声最后产生的数据是这些训练数据类别中之一,我们提前无法预测是那哪一个?
    在这里插入图片描述
    因此,我们有的时候需要定向指定生成某些数据,比如我们想让G生成飞机,数字9,等等的图片数据。
    假设现在要做一个项目:输入一段文字,输出一张图片,要让这张图片足够清晰并且符合这段文字的描述。我们搭建一个传统的NeuralNetwork(下称NN)去训练。

考虑我们输入的文字是“train”,希望NN能输出清晰的火车照片,那在数据集中,下面左图是正面的火车,它们统统都是正确的火车图片;下面右图是侧面的火车,它们也统统都是正确的火车。
在这里插入图片描述在这里插入图片描述

那在训练这个NN的时候,network会觉得说,火车既要长得像左边的图片,也要长得像右边的图片,那最终network的output就会变成这一大堆images的平均,可想而知那会是一张非常模糊并且错误的照片。

我们需要引入GANs技术来保证NN产生清晰准确的照片。

我们把原始的NN叫做G(Generator),现在它吃两个输入,一个是条件word:c,另外一个是从原始图片中sample出的分布z,它的输出是一个image:x,它希望这个x尽可能地符合条件c的描述,同时足够清晰,如下图。
在这里插入图片描述

在GANs中为了保证输出image的质量会引入一个D(Discriminator),这个D用来判断输入的x是真实图片还是伪造图片,如下图。
在这里插入图片描述

但是传统GANs只能保证让x尽可能地像真实图片,它忽略了让x符合条件描述c的要求。于是,为了解决这一问题,CGAN便被提出了。

我们的目的是,既要让输出的图片真实,也要让输出的图片符合条件c的描述。Discriminator输入便被改成了同时输入c和x,输出要做两件事情,一个是判断x是否是真实图片,另一个是x和c是否是匹配的。
在这里插入图片描述

比如说,在下面这个情况中,条件c是train,图片x也是一张清晰的火车照片,那么D的输出就会是1。
在这里插入图片描述
而在下面两个情况中,左边虽然输出图片清晰,但不符合条件c;右边输出图片不真实。因此两种情况中D的输出都会是0。
在这里插入图片描述

那CGAN的基本思路就是这样,下面我们具体看一下CGAN的算法实现。
在这里插入图片描述

因为CGAN是supervised学习,采样的每一项都是文字和图片的pair。CGAN的核心就是判断什么样的pair给高分,什么样的pair给低分。
参考资料

  1. https://blog.csdn.net/weixin_44751294/article/details/117451095
  2. 李宏毅老师的b站视频
  3. https://blog.csdn.net/a312863063/article/details/83573968
  4. https://blog.csdn.net/qq_29367075/article/details/109149211

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/676000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt PCL学习(三):点云滤波

注意事项 版本一览:Qt 5.15.2 PCL 1.12.1 VTK 9.1.0前置内容:Qt PCL学习(一):环境搭建、Qt PCL学习(二):点云读取与保存 0. 效果演示 1. pcl_open_save.pro QT core guigr…

包装效果图为何要用云渲染100?渲染100邀请码1a12

包装效果图能吸引用户注意力,提升销量,随着技术的发展,越来越多的设计师开始使用云渲染来处理效果图,云渲染有什么优势呢?以渲染100为例我来说下。 1、节省时间和成本 渲染100拥有超过10万台的高性能渲染节点&#x…

C语言---计算n的阶乘

阶乘的概念:一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,且0的阶乘为1,自然数n的阶乘写作n! 。 任何大于等于1 的自然数n 阶乘表示方法: n!123…(n-1)n 或 n!n(n-1)! 0!1 …

【C语言】案例:输出n位水仙花数

1.题目 输入一个整数n&#xff0c;输出所有n位的水仙花数 2.代码 #include <stdio.h> #include <math.h>// 计算数字的位数 int countDigits(int num) {int count 0;while (num ! 0) {num / 10;count;}return count; }// 计算水仙花数 void findNarcissisticNu…

【Larry】英语学习笔记语法篇——换一种方式理解词性

目录 一、换一种方式理解词性 1、名词、形容词、副词&#xff0c;这就是一切 2、词性之间的修饰关系 3、介词其实很简单 形容词属性的介词短语 副词属性的介词短语 ①修饰动词 ②修饰形容词 ③修饰其他副词 一、换一种方式理解词性 1、名词、形容词、副词&#xff0c…

(基础算法)归并排序

1.确定分界点 mid &#xff08;lr&#xff09;/2 2.递归排序左右两段 3.归并----合二为一 #include<iostream> using namespace std; //归并排序----分治 const int N10010; int n; int q[N],tmp[N];//需要一个额外数组void mergesort(int q[],int l,int r)//l左边界&a…

TCP 传输控制协议——详细

目录 1 TCP 1.1 TCP 最主要的特点 1.2 TCP 的连接 TCP 连接&#xff0c;IP 地址&#xff0c;套接字 1.3 可靠传输的工作原理 1.3.1 停止等待协议 &#xff08;1&#xff09;无差错情况 &#xff08;2&#xff09;出现差错 &#xff08;3&#xff09;确认丢失和确认迟到…

【MySQL进阶之路】BufferPool底层设计(下)

欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术的推送&#xff01; 在我后台回复 「资料」 可领取编程高频电子书&#xff01; 在我后台回复「面试」可领取硬核面试笔记&#xff01; 文章导读地址…

Linux运用fork函数创建进程

fork函数&#xff1a; 函数原型&#xff1a; pid_t fork(void); 父进程调用fork函数创建一个子进程&#xff0c;子进程的用户区父进程的用户区完全一样&#xff0c;但是内核区不完全一样&#xff1b;如父进程的PID和子进程的PID不一样。 返回值&#xff1a; RETURN VALUEO…

压敏电阻简介

压敏电阻 原理 压敏电阻器是一种具有瞬态电压抑制功能的元件&#xff0c;可以用来代替瞬态抑制二极管、齐纳二极管和电容器的组合。压敏电阻器可以对IC及其它设备的电路进行保护&#xff0c;防止因静电放电、浪涌及其它瞬态电流&#xff08;如雷击等&#xff09;而造成对它们…

C++服务器端开发(11):测试和部署

编写服务器代码&#xff1a;使用C编写服务器程序。根据服务器的需求&#xff0c;可以选择使用现有的网络库&#xff08;例如Boost.Asio&#xff09;或者自己编写网络通信代码。 编写测试代码&#xff1a;编写测试代码来验证服务器的功能和性能。可以使用单元测试框架&#xff…

node网站 宝塔 面板配置 防止刷新404

1.问题 我现在配置了一个网站 后台项目 放到了宝塔上 将相应的域名和项目都配置好了 域名也可以访问 但是有的时候 出现了404 类似这种404 这个资源找不到 2.说明 其实这个问题的原因是nginx 的问题 反向代理的原因 3.解决 在这个配置文件中 有个配置文件 # 防止刷新404l…

前端使用pdf.js进行pdf文件预览的第二种方式:Viewer.html

背景 最近需要实现一个PDF文档预览的功能&#xff0c;按理说&#xff0c;如果只是简单的预览&#xff0c;使用<embed>、<object>等就可以实现。 但是&#xff0c;我们的需求要实现搜索&#xff01;而且&#xff0c;文档还都超大&#xff0c;均300页以上。那<e…

斯巴鲁Subaru EDI需求分析

斯巴鲁Subaru是日本运输集团斯巴鲁公司&#xff08;前身为富士重工&#xff09;的汽车制造部门&#xff0c;以性能而闻名&#xff0c;曾赢得 3 次世界拉力锦标赛和 10 次澳大利亚拉力锦标赛。 斯巴鲁Subaru EDI 需求分析 企业与斯巴鲁Subaru建立EDI连接&#xff0c;首先需要确…

bug fix:微信小程序从搜索栏搜索进入不触发onLaunch事件

最近遇到一个棘手的问题&#xff0c;发现一个诡异的 bug。经过深入排查&#xff0c;最终定位到问题出在小程序从微信小程序的搜索栏搜索进入时未触发 onLaunch 事件。 用户进入小程序时&#xff0c;会进行身份判断。对于特定身份&#xff0c;用户不会停留在首页&#xff0c;而…

Python无人自动驾驶无人信号灯

Python无人自动驾驶无人信号灯全套系统的重要性如下&#xff1a; 安全性&#xff1a;无人自动驾驶车辆需要准确地识别和理解交通信号灯&#xff0c;以便正确执行相应的操作。基于Python的无人信号灯系统可以使用计算机视觉技术来检测和识别信号灯&#xff0c;确保车辆能够正确地…

Vue ECharts 散点图上画一个圆形 - 附完整示例

ECharts&#xff1a;一个基于 JavaScript 的开源可视化图表库。 效果 一、介绍 1、官方文档&#xff1a;Apache ECharts Apache EChartsApache ECharts&#xff0c;一款基于JavaScript的数据可视化图表库&#xff0c;提供直观&#xff0c;生动&#xff0c;可交互&#xff0c;可…

Redis 单线程

文章目录 Redis单线程架构Redis 单线程访问速度IO多路复用原理 Redis单线程架构 Redis的单线程架构的效果为&#xff1a;Redis的单线程是对于服务端而言的&#xff0c;Redis允许多个Redis用户端同时在线操作&#xff0c;但同时只有一个用户端在和服务端交互。多个用户同时发送…

《Git 简易速速上手小册》第5章:高级 Git 技巧(2024 最新版)

文章目录 5.1 交互式暂存5.1.1 基础知识讲解5.1.2 重点案例&#xff1a;为 Python 项目分阶段提交5.1.3 拓展案例 1&#xff1a;细粒度控制更改5.1.4 拓展案例 2&#xff1a;处理遗漏的更改 5.2 使用 Rebase 优化提交历史5.2.1 基础知识讲解5.2.2 重点案例&#xff1a;整理 Pyt…

【工作学习 day04】 9. uniapp 页面和组件的生命周期

问题描述 uniapp常用的有&#xff1a;页面和组件&#xff0c;并且页面和组件各自有各自的生命周期函数&#xff0c;那么在页面/组件请求数据时&#xff0c;是用created呢&#xff0c;还是用onLoad呢&#xff1f; 先说结论: 组件使用组件的生命周期&#xff0c;页面使用页面的…