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 上。为了开发…

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

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

博客作业04--树

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

[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]) 如果你这样直接提交上去,恭喜你超时!!&#xff0…

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…

4.navicat11激活教程,亲测可用哦!

原文地址:http://blog.csdn.net/sanbingyutuoniao123/article/details/52589678Navicat是一款数据库管理工具, 用于简化, 开发和管理MySQL, SQL Server, SQLite, Oracle 和 PostgreSQL 的数据库;Navicat数据模型工具以图形化方式创建关联式数据库&#x…

想要去阿里面试?你必须得跨过 JVM 这道坎!

概述 很多人想要到阿里巴巴、美团、京东等互联网大公司去面试,但是现在互联网大厂面试一般都必定会考核JVM相关的知识积累和实践经验,毕竟线上系统写好代码部署之后,每个工程师都必须关注JVM相关的东西,比如OOM、GC等问题. 所以一…

医学知识图谱一

大纲 知识自动提取技术 医学知识融合 医学知识推理 转载于:https://www.cnblogs.com/quietwalk/p/9000950.html

在一个div里,列表样式图片进行float,实现水平排序

<div class"xiangce"><ul> <li><a href"#"><img src"images/pic4.gif" alt"">产品名称</a></li><li><a href"#"><img src"images/pic4.gif" alt"…

The listener supports no services

$ lsnrctl start 报错提示: The listener supports no services The command completed successfully 如图所示&#xff1a; 这样启动后远程连接会报错&#xff1a; oracle ORA-12514:TNS:listener does not currently know of service requested in connect descriptor 问题原…

SEO【总结】by 2019年5月

2019独角兽企业重金招聘Python工程师标准>>> 关键点&#xff1a; 1、代码 1.1、seo前端代码&#xff1a;基于Html代码的SEOherf&#xff1a;https://my.oschina.net/u/2862573/blog/3030664 注意的要点&#xff1a; h1&#xff0c;h2的内容很关键 网页的压缩、静态化…

Oracle数据库 查看表是否是 索引组织表的方法

1. 最近在工作过程中发现 一个表插入很慢 以为是索引组织表, 所以一直有点纠结 但是发现 产品里面是没有IOT的 于是找了下公司的OCP 问了下 如何查看 就是 user_tables 视图里面的一个字段. 见图: 转载于:https://www.cnblogs.com/jinanxiaolaohu/p/9018037.html

Windows server 2016 搭建RDS服务

计算机的更新换代太快&#xff0c;新购置的计算机没几年便觉得运行速度越来越慢&#xff0c;尤其是在运行一些比较大的应用程序是&#xff0c;用户总是抱怨运行速度太慢或者总是死机等问题。如果要更换新的计算机&#xff0c;又得不到领导的批准&#xff0c;因此对于企业来说&a…

springboot2.0 多数据源整合问题 At least one JPA metamodel must be present!   at

2019独角兽企业重金招聘Python工程师标准>>> 数据源代码&#xff1a; 第一个读取配置文件代码&#xff1a; package com.datasource;import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.sp…

docker实战系列之搭建rabbitmq

1.搜索镜像【注&#xff1a;因为我这里采用的是阿里云镜像加速器,所以我直接在阿里云中搜索相关镜像路径】,点击"详情"查看公网拉取路径 2.拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/jc/rabbitmq-3 3.查看拉取的镜像 docker images 4.创建并运行容器【…

计算机基础知识--编码知识

编码回顾 编码转换 Python的bytes类型 编码回顾 在备编码相关的课件时&#xff0c;在知乎上看到一段关于Python编码的回答 这哥们的这段话说的太对了&#xff0c;搞Python不把编码彻底搞明白&#xff0c;总有一天它会猝不及防坑你一把。 不过感觉这哥们的答案并没把编码问题写明…

Linux——安装FTP服务器

1、检查安装vsftpd软件 使用如下命令#rpm -qa |grep vsftpd可以检测出是否安装了vsftpd软件&#xff0c; 如果没有安装&#xff0c;使用YUM命令进行安装。 2、启动服务 使用vsftpd软件&#xff0c;主要包括如下几个命令&#xff1a; 启动ftp命令#service vsftpd start 停止ftp…

测试开发面试准备之Selenium 工作原理

Selenium 经历了两个版本&#xff0c;Selenium 1.0 和 Selenium 2.0&#xff0c;本文仅介绍Selenium2的原理&#xff0c;在Selenium 2.0 主推的是WebDriver,Selenium2又名Selenium Webdriver。 Selenium2简介 Selenium是一个用于Web应用程序测试的工具&#xff0c;支持多平台、…

JavaScript快速入门-ECMAScript本地对象(String)

一、String对象 String对象和python中的字符串一样&#xff0c;也有很多方法&#xff0c;这些方法大概分为以下种类&#xff1a; 1、索引和查找 1、charAt() 返回指定位置的字符。 2、charCodeAt() 返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。 …

ZOJ4116 Game on a Graph

给一个含n个点 m条边的连通图 把k个人分成两组 轮流拿掉一条边 当取走一条边后图不再连通 这个队就输了 水题啦 边为n-1时 下一个拿掉边的那个组就输啦 AC代码&#xff1a; 1 #include<bits/stdc.h>2 using namespace std;3 typedef long long ll;4 typedef unsigned lon…