利用神经网络编辑图片的调研

郑宇,腾讯高级工程师, 曾在东方梦工厂担任软件工程师。目前就职于腾讯上海NEXT Studio,目前主要专注于强化学习和图像方面。

今年GDC大会上,Google演示了基于当下热门的神经网络技术GAN(生成式对抗网络)来做图片编辑的技术,用户可以在图片库中选择一张人脸的照片,对其进行局部的更改,神经网络会自动在更改区域以外的部分进行适配性修改。

比如,在额头中间部分涂黑,那么神经网络会自动在整个额头部分添加头发,再比如,在紧闭的嘴中间涂白,那么会自动变成露牙齿嘴张开的模样。理论上可以极大的提升美术编辑的速度,因为修改图片不再是在像素层面,而是根据用户的修改进行整体的调整,只需简单几笔就可以完成。

但是该技术还存在一些不成熟的地方,所以目前实际应用价值有限(参见本文后面的缺陷部分)。

效果展示1

左侧图为原始图片,中间图片为在嘴唇处涂白后的效果,右侧图片为在额头中间区域涂黑的效果。

效果展示2

左上图为原始图片,右上图为点击Col按钮选取涂抹的颜色(白色),下左图为涂白后去除胡须的效果。

原理

作者结合两种生成式神经网络模型,VAE和GAN,构建了一种新的网络IAN(Introspective Adversarial Network),基本原理是VAE训练模型比较稳定,但是会丢失低频信号,GAN模型训练中不稳定,但是细节保持较好,所以作者用GAN中的discriminator(辨别网络)来提取特征,然后输入VAE模型的Encoder部分,最后将编码(latent space)输入GAN模型中的generator(生成网络)。如下图所示。

安装和运行

sudo pip install https://github.com/Lasagne/Lasagne/archive/master.zip
sudo pip install path.py
sudo apt-get install python-tk python-pil python-scipy python-numpy
git clone https://github.com/ajbrock/Neural-Photo-Editor

然后下载IAN_simple.npz( https://drive.google.com/open?id=0B3_iVBZsC4GGck5WWWc0R0dvT1U),替换掉 Neural-Photo-Editor中的同名文件。

将 layers.py 中第15行代码从

import lasagne.layers

改为

from lasagne.layers import *

执行操作:

THEANO_FLAGS=‘floatX=float32‘ python NPE.py

常用操作:在打开的窗口,在左下角输入数字来选取原始的图片,点击infer按钮可以恢复到原始图片,点击col按钮选择涂抹的颜色,滑动最下方的slider,可以涂抹影响的范围。主要修改是在图片上完成,尽量不要在图片下方的latent space上修改,否则结果是无法预期的。

缺陷

  1. 没法对细节进行修改。使用上和传统的图片编辑不同,可能会有不适应的地方,比如要修掉图片上的一个噪点,那么涂白会影响到图片的其他部分,造成较大的修改。
  2. 修改存在路径或历史依赖。因为VAE的特点,比如在修改时如果不先把脸部模型变宽就直接在眼睛周围涂黑,实际上会生成头发,而不是画出墨镜。
  3. 目前处理的脸部照片还是分辨率较低的模型,比如google技术演示时使用的是64*64分辨率的照片,这是因为训练时使用的数据库中的照片分辨率就不高(提高分辨率会造成训练时间和难度增大)。
  4. 理论上用户可以对任意输入的图片进行修改,但是对于特定的照片,可能效果不明显,因为相对用户添加的个性化照片,之前的数据库太庞大了,不会针对用户输入的图片进行特定的优化处理。
时间: 2024-08-28 08:07:05

利用神经网络编辑图片的调研的相关文章

利用神经网络解决机器人动力学问题

利用神经网络解决机器人动力学问题 总览 提出了利用神经网络解决机器人动力学问题的新观念.主要介绍了神经网络相关技术背景,BP神经网络的基本原理.在Matlab中建立了一个6自由度的机器人,采用BP神经网络和径向神经网络,进行了对机器人动力学预测的仿真验证.结果表明神经网络能有效地解决该问题. 背景介绍 在开发机器人牵引技术过程中,需要对机器人进行动力学建模.而机器人动力学建模通常由牛顿欧拉法和牛顿拉格朗日法,两种方法推导过程都较为复杂,且计算量随着机器人自由度的增加而迅速增加,计算结果容易出错.

利用神经网络预测股票收盘价(含源代码)

攒了几天,发一个大的 这是前几天投了一家量化分析职位,他给的题目的是写神经网络择时模型,大概就是用神经网络预测收盘价 database类:该类用于获得新浪网中的数据,并将其放入本地数据库.在本地数据库中建立两个表,分别是Data2012to2015和Data2015to2016,表中都含有日期,当日开盘价.当日收盘价.当日最高价.当日最低价.Data2012to2015为训练数据集,Data2015to2016为测试数据集. package it.cast; import java.io.Buf

【转载】 调研文献的方法介绍,适用于各个领域

又是一个新学期开始了,新生入学,很快就是开题报告.为了让新生迅速进入状态,在第一次的小组会上我们对实验室的仪器.卫生.管理制度,以及如何进行文献调研和实验记录分别做了一个报告.其中,我负责介绍我的文献调研经验,也在这里分享给有需要的各位,抛砖引玉. 对文献调研的困惑,我问了几位同学,集中在下面几点: 不知道如何着手查到有效文章? 文献如何查全? 这两个问题反应了查文献的两个关键:查全和查准. 但是我以为,文献调研并不是只有“查”.调研是为了回答你想知道的问题,查只是第一个步骤,查到文献后读,获取

用BP人工神经网络识别手写数字

http://wenku.baidu.com/link?url=HQ-5tZCXBQ3uwPZQECHkMCtursKIpglboBHq416N-q2WZupkNNH3Gv4vtEHyPULezDb50ZcKor41PEikwv5TfTqwrsQ4-9wmH06L7bYD04u 用BP人工神经网络识别手写数字 yzw20091201上传于2013-01-31|暂无评价|356人阅读|13次下载|暂无简介|举报文档 在手机打开 赖勇浩( http://laiyonghao.com ) 这是我读工

详细解读神经网络十大误解,再也不会弄错它的工作原理

来源:http://www.cstor.cn/textdetail_10544.html_biz=MjM5OTA1MDUyMA==&mid=407358558&idx=2&sn=b21877f23bf4063fa311185009c1f0b7&scene=0#wechat_redirect1462674382044 神经网络是机器学习算法中最流行和最强大的一类.但在作者看来,因为人们对神经网络工作原理存在误解,导致网络设计也很糟糕.所以这篇文章就对其中一些误解进行了讨论.

神经网络:卷积神经网络CNN

一.前言 这篇卷积神经网络是前面介绍的多层神经网络的进一步深入,它将深度学习的思想引入到了神经网络当中,通过卷积运算来由浅入深的提取图像的不同层次的特征,而利用神经网络的训练过程让整个网络自动调节卷积核的参数,从而无监督的产生了最适合的分类特征.这个概括可能有点抽象,我尽量在下面描述细致一些,但如果要更深入了解整个过程的原理,需要去了解DeepLearning. 这篇文章会涉及到卷积的原理与图像特征提取的一般概念,并详细描述卷积神经网络的实现.但是由于精力有限,没有对人类视觉的分层以及机器学习等

BP神经网络基本原理

2.1 BP神经网络基本原理 BP网络模型处理信息的基本原理是:输入信号Xi通过中间节点(隐层点)作用于输出节点,经过非线形变换,产生输出信号Yk,网络训练的每一个样本包含输入向量X和期望输出量t,网络输出值Y与期望输出值t之间的偏差,通过调整输入节点与隐层节点的联接强度取值Wij和隐层节点与输出节点之间的联接强度Tjk以及阈值,使误差沿梯度方向下降,经过重复学习训练,确定与最小误差相相应的网络參数(权值和阈值),训练即告停止.此时经过训练的神经网络即能对相似样本的输入信息,自行处理输出误差最小

神经网络原理及其c++实现

1引言 数字识别是模式识别领域 中的一个重要分支,数字识别一般通过特征匹配及特征判别的传统方法进行处理.特征匹配通常适用于规范化的印刷体字符的识别,而 特征判别多用于手写字符识别,这些方法还处于探索阶段,识别率还比较低.随着神经网络技术的飞速发展,其本身具有的高度并行性.较强的自组织能力和容错性.较好抑制噪声干扰能力等特点,为快速准确地进行数字识别开辟了新的途径.目前,对于指针式表而言,可以根据二值化后的指针指向来识别表盘的读数,而对于某些特殊类型的表盘,由于没有可判断读数的指针,只能通过表盘上

ECG信号读取,检测QRS,P,T 波(基于小波去噪与检测),基于BP神经网络的身份识别

这学期选了神经网络的课程,最后作业是处理ECG信号,并利用神经网络进行识别. 1  ECG介绍与读取ECG信号 1)ECG介绍  具体ECG背景应用就不介绍了,大家可以参考百度 谷歌.只是简单说下ECG的结构: 一个完整周期的ECG信号有 QRS P T 波组成,不同的人对应不用的波形,同一个人在不同的阶段波形也不同.我们需要根据各个波形的特点,提取出相应的特征,对不同的人进行身份识别. 2)ECG信号读取 首先需要到MIT-BIH数据库中下载ECG信号,具体的下载地址与程序读取内容介绍可以参考