Image-to-Image Translation with conditional Adversarial Networks ---- Pix-2-Pix

 任务场景

  • Photos to semantic segmentation
  • Cityscapes labels to photos
  • Colorization
  • Facades labels to photo
  • Day to night
  • The edges to photo
  • And so on.

 

 在生成器模型中,条件变量y实际上是作为一个额外的输入层(additional input layer),它与生成器的噪声输入p(z)组合形成了一个联合的隐层表达;

在判别器模型中,y与真实数据x也是作为输入,并输入到一个判别函数当中。实际上就是将z和x分别于y进行concat,分别作为生成器和判别器的输入,再来进行训练。

 

 

目标函数:

gans:

CGAN:

pix-2-pix:

把待转换的图像x作为额外的输入,分别加进判别器和生成器中。生成器输入的是随机噪声z以及待转换的图像x。

在positive情况下,判别器输入的是待转换图像x以及与x对应的真实数据y,这时判别器尽量使得输出为1;

在negative情况下,判别器输入的是待转换图像x以及生成器生成的图像G(x,z)。也就是说,生成器不只输入了随机噪声z,还输入了待转换图像x,加入了这个条件,就可以实现定向生成;

判别器也不再只是判别某一张图像是否真实,而是判别待转换图像x与转换后图像G(x,z)是否是真实的图像对

 

创新点

1、加入约束项(L1 distance encourages less blurring) ---- 生成的图像是不是接近GT。

  与L2相比,文章采用了模糊更少的L1 distance(1范数可以导致稀疏解,2范数导致稠密解):

2、generator add skip connections(U-Net)

  图像到图像转换问题的一个特征定义是将高分辨率输入网格映射到高分辨率输出网格。输入和输出的表面外观虽不同,但两者都是相同底层结构的渲染。因此,生成器的设计中输入的结构大致与输出的结构对齐。 
       之前的结构都是基于如下图的编码-解码网络,先经过几个降采样层,到达一个瓶颈后经过一个逆过程得到最终的输出。网络要求所有的信息流通过网络的所有层。对于许多图像翻译问题,输入和输出之间共享了大量低级别的信息,因此最好将这些信息直接穿过网络。为了使得生成器能够规避这样的信息瓶颈,遵循“U-Net”的形状,添加跳跃连接。假使网络有n层,网络的第i层都和n-i层有一个连接:

 

 

3.patchGAN

  通常判断都是对生成样本整体进行判断,比如对一张图片来说,就是直接看整张照片是否真实。而且Image-to-Image Translation中很多评价是像素对像素的,所以在这里提出了分块判断的算法,在图像的每个N×N块上去判断是否为真,最终平均给出结果。

判别器在图像上卷积,最终平均所有的值作为D的最终输出值;

N可以比图像的大小小得多,并且效果仍然很好;

小的patchGAN的参数更少,运行更快,并且能够应用到任意大小的图像中。。

当n=1时就是pix-2-pix

 

 Optimization and inference

 

 

扩展

L0范数是指向量中非0的元素的个数

L1范数是指向量中各个元素绝对值之和

L2范数是指向量各元素的平方和然后求平方根。

在机器学习中,以0范数和1范数作为正则项,可以求得稀疏解,但是0范数的求解是NP-hard问题; 以2范数作为正则项可以得到稠密解,并且由于其良好的性质,其解的定义很好,往往可以得到闭式解,所以用的很多。

一句话总结就是:L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。L1在特征选择时候非常有用,而L2就只是一种规则化而已。

  • L0 w分量尽量稀疏 如 (0,a,0,0,b,0,0)
  • L1 效果同上
  • L2 w分量取值尽量均衡、稠密,即小而趋近于0 如(0.3,0.5,-0.3,0.1,-0.2,0.3,-0.3)

 

转载于:https://www.cnblogs.com/J-K-Guo/p/7574216.html

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

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

相关文章

5分钟从零构建第一个 Apache Flink 应用

为什么80%的码农都做不了架构师?>>> 在本文中,我们将从零开始,教您如何构建第一个Apache Flink (以下简称Flink)应用程序。 开发环境准备 Flink 可以运行在 Linux, Max OS X, 或者是 Windows 上。为了开发…

WinForm窗体中如何在一个窗体中取到另一个窗体的值

例如我们定义两窗体,Form1和Form2,如何在Form2中取到Form1中的一个值呢? 解决方法1: 在Form1 中定义一个成员变量,例如public string a “ ”: 然后给这个成员变量赋值,例如 a lblname.text; 在Form2中我…

Android6.0------权限申请RxPermissions

前面写了Android6.0权限介绍和权限单个,多个申请,用的是纯Java代码,本文主要说的是借助第三方库来实现权限申请。 借助第三方库 RxPermissions来申请6.0权限。 RxPermissions库地址:https://github.com/tbruyelle/RxPermissions …

如何给 mongodb 设置密码

言简意赅,步骤如下: 连接mongo mongo进入admin数据库 use admin  创建管理员账户db.createUser({ user: "adminName", pwd: "adminPassword", roles: [{ role: "userAdminAnyDatabase", db: "admin&qu…

while和do-while循环结构

while(循环条件){ 循环操作 i; } 1.声明并初始化循环变量。 2.判断循环条件是否满足,如果满足则执行循环操作;否则退出循环。 3.执行完循环操作后,再次判断循环条件,决定继续执行循环或退出循环。 *while循环的特点:先…

Thread线程类及多线程

1.进程、线程、并发、并行是什么? 1)进程:操作系统中可以运行多个任务(程序),这些运行的任务(程序)被称为进程。程序的运行产生进程(内存空间、程序执行的堆栈),可以这样说,进程是作为操作系统分配资源的基本单位。 2)…

绛河 初识WCF5

然后我们在<Client>中添加一个终结点&#xff0c;这个是客户端的终结点&#xff0c;我们前面曾经提过&#xff0c;通信实际上发生在两个终结点间&#xff0c;客户端也有个终结点&#xff0c;然而请求总是从客户端首先发起&#xff0c;所以终结点地址应该填写为服务端终结…

python修炼第四天

今天换了师傅。江湖人称景女神^o^。 女师傅讲的比较细&#xff0c;原理的比较多。初学者来说有些难。但是基本功是必须要打牢的。努力&#xff01; 迭代器 迭代器&#xff0c;迭代的工具1 什么是迭代&#xff0c;指的是一个重复的过程&#xff0c;每一次重复称为一次迭代&#…

尴尬的存储过程

最近在给一个已沉淀了多年的系统框架进行优化&#xff0c;发现大部分的基础业务&#xff08;比如增删改&#xff09;的实现都是通过存储过程来实现。这让我纠结了很久&#xff0c;看了下代码格式我猜应该都是使用了代码生成器。这无疑为系统的扩展留下了一个难以弥补的大坑。 首…

java虚拟机06-内存分区/新生代、老年代

1.原因 JVM在程序运行过程当中&#xff0c;会创建大量的对象&#xff0c;这些对象&#xff0c;大部分是短周期的对象&#xff0c;小部分是长周期的对象&#xff0c;对于短周期的对象&#xff0c;需要频繁地进行垃圾回收以保证无用对象尽早被释放掉&#xff0c;对于长周期对象&a…

博客作业04--树

1.学习总结(2分) 1.1树结构思维导图 1.2 树结构学习体会 树这一章节比较复杂&#xff0c;知识点繁多&#xff0c;结合了递归的知识所以代码阅读起来会有障碍&#xff0c;难以理解&#xff0c;所以学起来比较吃力&#xff0c;而且很多经典的算法理解的不是很透彻解决pta上的问题…

Centos 配置多个虚拟IP

Centos 配置多个虚拟IP 临时设置 ifconfig enp2s0:3 192.168.3.152 netmask 255.255.255.0 up 复制代码永久生效 TYPEEthernet BOOTPROTOnone NAMEenp2s0 DEVICEenp2s0 HWADDR40:8d:5c:bc:f4:d8 ONBOOTyes IPADDR0192.168.3.200 PREFIX024 GATEWAY0192.168.3.254 IPADDR1192.16…

[转]MySQL日志——Undo | Redo

本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游 00 – Undo LogUndo Log 是为了实现事务的原子性&#xff0c;在MySQL数据库InnoDB存储引擎中&#xff0c;还用Undo Log来实现多版本并发控制(简称&#xff1a;MVCC)。 - 事务的原子性(Atomicity) 事务中的所有操作&#xff0…

Vim操作指南

vim具有6种基本模式和5种派生模式。 基本模式 普通模式 插入模式 可视模式 选择模式 命令行模式 Ex模式 派生模式 操作符等待模式 插入普通模式 插入可视模式 插入选择模式 替换模式 1.移动光标&#xff08;普通模式下&#xff09; h&#xff1a;左 j&#xff1a;下 …

[DP/单调队列]BZOJ 2059 [Usaco2010 Nov]Buying Feed 购买饲料

首先我想吐槽的是题目并没有表明数据范围。。。 这个题目 DP方程并不难表示。 dp[i][j]表示前i个地点携带了j个货物的最小花费 dp[i][j] dp[i-1][k] (j-k) * cost j*j*(leng[i]-leng[i-1]) 如果你这样直接提交上去&#xff0c;恭喜你超时&#xff01;&#xff01;&#xff0…

十天冲刺09

今天&#xff0c;和小伙伴在做密保功能的开发&#xff0c;而且通过密保可以找回用户密码。转载于:https://www.cnblogs.com/Excusezuo/p/10923690.html

hdu 6168 Numbers

zk has n numbers a1,a2,...,an. For each (i,j) satisfying 1≤i<j≤n, zk generates a new number (aiaj). These new numbers could make up a new sequence b1&#xff0c;b2,...,bn(n−1)/2 . LsF wants to make some trouble. While zk is sleeping, Lsf mixed up seq…

039_MySQL_多表查询

#创建部门 CREATE TABLE IF NOT EXISTS dept (did int not null auto_increment PRIMARY KEY,dname VARCHAR(50) not null COMMENT 部门名称 )ENGINEINNODB DEFAULT charset utf8;#添加部门数据 INSERT INTO dept VALUES (1, 教学部); INSERT INTO dept VALUES (2, 销售部); IN…

sqlserver 创建对某个存储过程执行情况的跟踪

有时候需要抓取执行存储过程时某个参数的值&#xff0c;有时候程序调用存储过程执行后结果不太对&#xff0c;不确定是程序的问题还是存储过程的问题&#xff0c;需要单独执行存储过程看结果 即可用下面的方法 -- --创建对某个存储过程的执行情况的跟踪 --注意修改路径 和 obje…

5.7 弹性盒子

弹性盒子定义弹性盒子 display&#xff1a;flex定义子元素排列方式 flex-diection定义子元素换行方式 flxe-wrap定义子元素对齐方式横向对齐 justify-content纵向对齐 align-items 媒体查询 media screen and (max-width:最大宽度)and &#xff08;min-width&#xff1a;最小…