How to transform the day time images to night time ? A series of paper review and some thinkings about this point.
How to transform the day time images to night time ? A series of paper review and some thinkings about this point.
Unsupervised Holistic Image Generation from Key Local Patches
2017-07-20 14:34:27
无监督的进行基于关键局部 patch 的图像生成,这个算是和 “传统”的 GAN 稍微不同的地方。这种方法需要让网络自己能够学习到关于所想生成物体的“空间结构”信息,否则生成的图像可能并不是很有意义。
首先,输入 patch 的空间安排需要学习出来,但是这些数据并没有类似的结构信息;
其次,我们想在生成图像的过程中,保存下来这个 key local patches ;
最后,产生的图像应该尽可能的看起来像是目标的类别。
由于输入是有多个 patch,那么就需要多个能够感知这些图像的 encoder net 来进行编码。所以本文设计了下图所示的 endcode 网络结构:
当然作者也考虑了其他的结构,不过,最终还是选择了这一种。其实就是用多个网络来感知多个 patch,然后将这些信息 sum 在一起,得到最终的编码向量 E。
总体的网络结构如图所示:
那么,可以看出:作者使用了多个 loss 来完成整个网络的训练,即:spatial loss, appearance loss 以及 real-fake discriminative.
为了得到那么多的训练数据,作者先用 proposal 的产生方法,产生一些 key patches,并且根据这些位置生成一些 GT binary mask。然后利用 Siamese network 对这多个 patch 进行编码,然后进行 sum,得到统一的 bottle layer E,然后紧接着用 Mask prediction (U-network) 来进行反卷积生成所需要的 binary mask。与此同时,我们用另一个反卷积网络(double U-network)来进行总体图像的产生。该图像还被用来和 mask 进行点乘操作,然后进行 appearance Loss 的计算。最终,该产生的图像被送到判别器当中,进行真伪的判别。
所用到的三个损失函数分别为:
实验效果:
Beyond Face Rotation: Global and Local Perception GAN for Photorealistic and Identity Preserving Frontal View Synthesis
2017-07-20 22:45:08
Paper: http://openaccess.thecvf.com/content_ICCV_2017/papers/Huang_Beyond_Face_Rotation_ICCV_2017_paper.pdf
Official Tensorflow implementation: https://github.com/HRLTY/TP-GAN
Unofficial PyTorch Implementation: https://github.com/iwtw/pytorch-TP-GAN
本文的充分的利用了人脸姿势转换的相关领域知识,作为先验信息,进行整个 TP-GAN 网络的设计。如:对称性损失函数的设计,关于人头整体结构的建模和局部信息的捕捉,这些都是非常有用的 domain knowledge。其中,在进行姿态转换的过程中,如何保持转换后的图像仍旧是同一个人,这也是非常重要的。
最直观的还是来算法的网络设计:
本文主要是两个网络结构合成的。一个是 global 的网络,另个是 local 的网络。
关于 local 的网络,是四个部分构成的,即:两个眼镜,鼻子 和 嘴巴部分。分别将这四个部分编码,然后解码为对应的正面照。
然后总体对整幅图像进行 encoder-decoder 操作,相当于重构出一幅 正脸的图像,然后将这两个网络进行组合,就可以得到总体的输出。
其实 generator 就主要干这个事情,剩下的交给 discriminator 来做,即:判断是否为真。
另外的损失函数就是:保持对称的损失函数,保持个体不变的损失函数,以及 pixel-wise 的 loss。
Unpaired Image to Image Translation using Cycle-Consistent Adversarial Networks
UC Beerkeley
本文借助 Dualing Learning,不利用 paired image 进行图像到图像的转换。在这个过程中考虑到了 X->Y->X' 应该约等于 X 的假设,应用到图像的转换中。
先来看看其整个流程示意图:
其中,有两个主要的传播过程:前向循环一致性, 反向循环一致性。
而所谓的前向传播一致性,可以看出:
就是将 X 作为起点,经过 generator 可以得到转换后的 Y' ,然后再利用 generator 进行转换,以得到模拟的起点 X' 。根据 dualing learning 的理论,这种转换后得到的图像和初始的图像应该是尽可能保持一致的。另一个过程也是类似的思路:
对应的一致性损失函数可以写为:
除了这些一致性的损失函数之外,其实还是有 adversarial loss 的。
所以总体上的优化目标为:
那么,我们的网络定义中一定要有 两个 generator 以及 两个 discriminator,才能完成整个闭合的 loop。
How to transform the day time images to night time ? A series of paper review and some thinkings about this point.的更多相关文章
- \(\S1 \) Gaussian Measure and Hermite Polynomials
Define on \(\mathbb{R}^d\) the normalized Gaussian measure\[ d \gamma(x)=\frac{1}{(2\pi)^{\frac{d}{2 ...
- Raphael的拖动处理
Raphael的拖动处理: <%@ page language="java" contentType="text/html; charset=UTF-8" ...
- Pandas_分组与聚合
# 分组统计是数据分析中的重要环节: # 1-数据分组:GroupBy的原理和使用方法: # 2-聚合运算:学会分组数据的聚合运算方法和函数使用: 类似于 SQL思想 # 3-分组运算:重点 appl ...
- DFT、DTFT、DFS、FFT之间的关系
DFT.DTFT.DFS.FFT.FT.FS之间的关系 FT和FS是研究连续信号的,在数字信号处理中不涉及. 主要是前四种的关系: DFT(Discrete Fourier Transform):离散 ...
- CSS3 3D立方体效果-transform也不过如此
CSS3系列已经学习了一段时间了,第一篇文章写了一些css3的奇技淫巧,原文戳这里,还获得了较多网友的支持,在此谢过各位,你们的支持是我写文章最大的动力^_^. 那么这一篇文章呢,主要是通过一个3D立 ...
- 深入node之Transform
Transform流特性 在开发中直接接触Transform流的情况不是很多,往往是使用相对成熟的模块或者封装的API来完成流的处理,最为特殊的莫过于through2模块和gulp流操作.那么,Tra ...
- CSS 3 学习——transform 3D转换渲染
以下内容根据官方规范翻译,没有翻译关于SVG变换的内容和关于矩阵计算的内容. 一般情况下,元素在一个无景深无立体感的平面(flat plane)上渲染,这个平面就是其包含块所处的平面.同时,页面上的其 ...
- CSS 3学习——transform 2D转换
首先声明一点,transform属性不为none的元素是它的定位子元素(绝对定位和固定定位)的包含块,而且对内创建一个新的层叠上下文. 注意:可以通过 transform-box 属性指定元素的那个盒 ...
- Hilbert-Huang Transform(希尔伯特-黄变换)
在我们正式开始讲解Hilbert-Huang Transform之前,不妨先来了解一下这一伟大算法的两位发明人和这一算法的应用领域 Section I 人物简介 希尔伯特:公认的数学界“无冕之王”,1 ...
随机推荐
- java中级面试题
1.Java中堆和栈有什么不同? 每个线程都有自己的栈内存,用于存储本地变量,方法参数和栈调用,一个线程中存储的变量对其它线程是不可见的.而堆是所有线程共享的一片公用内存区域.对象都在堆里创建,为了提 ...
- java容器细节
1. 2. 3.报错的原因,object里面没有game()方法 4.关于3的解决方法以及另一个细节 .next() 会在取完这个值之后,指针向后走一位,所以迭代器里不要出现多次.next() 正确写 ...
- Android 通过资源名,获取资源ID
有时候我们知道一个图片的文件名,我们需要知道在R文件中,该资源的ID,使用如下方法: public static int getIdByName(Context context, String cla ...
- 异常-java.util.concurrent.TimeoutException: Futures timed out after [100000 milliseconds]
1 详细异常 java.util.concurrent.TimeoutException: Futures timed out after [100000 milliseconds] at scala ...
- P2002 消息扩散[SCC缩点]
题目描述 有n个城市,中间有单向道路连接,消息会沿着道路扩散,现在给出n个城市及其之间的道路,问至少需要在几个城市发布消息才能让这所有n个城市都得到消息. 输入格式 第一行两个整数n,m表示n个城市, ...
- 《AlwaysRun团队》第三次作业:团队项目的原型设计
<AlwaysRun团队>第三次作业:团队项目的原型设计 项目 内容 这个作业属于哪个课程 [任课教师博客主页链接](https://home.cnblogs.com/u/nwnu-dai ...
- 《TheOne团队》团队作业三:团队项目原型设计与开发
项目 内容 作业所属课程 http://www.cnblogs.com/nwnu-daizh/ 作业要求 https://www.cnblogs.com/nwnu-daizh/p/10761596.h ...
- eclipse跳转到exitCurrentThread
1.在使用Eclipse时,用Debug模式运行springboot项目,结果总是在项目快启动成功的时候,跳转到exitCurrentException这个地方 2.方法:Eclipse->[P ...
- Python 操作Zabbix API 获取ERROR级别告警信息并打印
1.需求:有一个语音合成播报项目,要实时获取zabbix的ERROR级别以上告警信息,将该信息合成语音播报出去.(合成语音及播报已经完成) 2.现实:整理zabbix告警级别,将不太重要的告警放到ER ...
- mybatis-generator数据库注释实体类生成以及generatorConfig文件配置
项目里新建表时model,mapper以及mapper.xml基本都是用Mybatis Generator(以下简称为MBG)自动生成的,但是MBG自动生成的model的注释实在有点非人类,至少中国人 ...