一文读懂GAN, pix2pix, CycleGAN和pix2pixHD

2023-05-16

本文翻译、总结自朱俊彦的线上报告,主要讲了如何用机器学习生成图片。

来源:Games2018 Webinar 64期 :Siggraph 2018优秀博士论文报告

人员信息

主讲嘉宾

姓名朱俊彦(Jun-Yan Zhu)
现状:麻省理工学院博士后(PostDoc at MIT),计算机科学与人工智能实验室(Computer Science and Artificial Intelligence Laboratory, CSAIL)
个人主页:http://people.csail.mit.edu/junyanz/

主持人

周晓巍
现状:浙江大学CAD&CG国家重点实验室
个人主页:http://www.cad.zju.edu.cn/home/xzhou/

报告内容

这是机器学习滴时代!

计算机视觉(Computer Vision, CV)领域近年来发生了巨大的变化。在2012年之前,CV的主要研究方法是使用**人工设计(hand-designed)**的特征完成各种任务(见下图)。
这里写图片描述

2012年使用深度神经网络(Deep Neural Network, DNN) 在ImageNet的分类任务上取得了巨大成功(见下图)。
这里写图片描述

从此**深度学习(Deep Learning)**的相关研究如火如荼地展开了,比如说下面这三个栗子:

  1. 物体识别(Object detection) [Redmon etal., 2018]
  2. 对人体的理解(Human understanding) [Guler et al., 2018]
  3. 自动驾驶(Autonomous driving) [Zhao et al., 2017]

这里写图片描述

图形学中的尝试:趁手的武器 or 白费功夫?

在传统的图形学管线(pipeline)中,输出图像需要经过建模、材质贴图、光照、渲染等一系列繁琐的步骤(见下图)。
这里写图片描述

现在大家看到了Deep Learning的潜力,那我们自然的就有个想法:有没有可能使用Deep Learning简化计算机图形学(Computer Graphics)的研究呢?

一个直接的想法是把DNN“倒过来用”。之前的DNN可能是输入一幅图像,输出一个标签(比如说猫),那我们能不能输入“猫”这个字,输出一张猫的照片呢?
这里写图片描述

很遗憾,答案是No!因为这种任务实在太复杂啦!我们很难让DNN凭空输出图像这样的高维数据(High dimensional data)(这里的“高维”可以理解成数据量大)。实际上,在很长一段时间里,DNN只能输出数字这种简单的、低分别率的小图像,就像下面这样:
这里写图片描述

而想要生成想游戏场景这类的图片,这种方法根本没用。所以,我们必须得想出更厉害滴东西完成这项任务(使命感爆棚)!

GAN就完了?Naive!

于是…在月黑风高的某一天(画风逐渐跑偏),一个叫做生成对抗网络(Generative Adversarial Network)——也就是大名鼎鼎的GAN——的东西横空出世。作者是下面这位小哥和他的小伙伴们:
这里写图片描述

那么,我们该怎么GAN出图像呢?且听我细细道来~

一般来说,GAN中包含两种类型的网络 G G G D D D。其中, G G GGenerator,它的作用是生成图片,也就是说,在输入一个随机编码(random code) z z z之后,它将输出一幅由神经网络自动生成的、假的图片 G ( z ) G(z) G(z)

另外一个网络 D D DDiscriminator是用来判断的,它接受 G G G输出的图像作为输入,然后判断这幅图像的真假,真的输出1,假的输出0。

这里写图片描述

在两个网络互相博弈(金坷垃日本人:不邀哒架)的过程中,两个网络的能力都越来越高: G G G生成的图片越来越像真的图片, D D D也越来越会判断图片的真假。到了这一步,我们就能“卸磨杀驴”——丢掉 D D D不要了,把 G G G拿来用作图片生成器。

正式一点儿讲(上公式啦),我们就是要在最大化 D D D的能力的前提下,最小化 D D D G G G的判断能力,这是一个最小最大值问题,它的学习目标是:

min ⁡ G max ⁡ D E [ log ⁡ D ( G ( z ) ) + log ⁡ ( 1 − D ( x ) ) ] \min\limits_{G} \max\limits_D \mathbb{E} [\log D(G(z)) + \log (1- D(x))] GminDmaxE[logD(G(z))+log(1D(x))]

为了增强 D D D的能力,我们分别考虑输入真的图像和假的图像的情况。上式中第一项的 D ( G ( z ) ) D(G(z)) D(G(z))处理的是假图像 G ( z ) G(z) G(z),这时候评分 D ( G ( z ) ) D(G(z)) D(G(z))需要尽力降低;第二项处理的是真图像 x x x,这时候的评分要

GAN的局限性

即便如此,传统的GAN也不是万能的,它有下面两个不足:

1. 没有**用户控制(user control)**能力

在传统的GAN里,输入一个随机噪声,就会输出一幅随机图像。
这里写图片描述
但用户是有想法滴,我们想输出的图像是我们想要的那种图像,和我们的输入是对应的、有关联的。比如输入一只喵的草图,输出同一形态的喵的真实图片(这里对形态的要求就是一种用户控制)。
这里写图片描述

2. 低分辨率(Low resolution)和低质量(Low quality)问题

尽管生成的图片看起来很不错,但如果你放大看,就会发现细节相当模糊
这里写图片描述

怎样改善?

前面说过传统的GAN的种种局限,那么现在,我们相应的目标就是:

  • 提高GAN的用户控制能力
  • 提高GAN生成图片的分辨率和质量

为了达到这样的目标,和把大象装到冰箱里一样,总共分三步:

  1. pix2pix:有条件地使用用户输入,它使用**成对的数据(paired data)**进行训练。
  2. CycleGAN:使用**不成对的数据(unpaired data)**的就能训练。
  3. pix2pixHD:生成高分辨率、高质量的图像。
    这里写图片描述

下面分别进行详细叙述~

pix2pix

pix2pix对传统的GAN做了个小改动,它不再输入随机噪声,而是输入用户给的图片:

这里写图片描述

但这也就产生了新的问题:我们怎样建立输入和输出的对应关系。此时 G G G的输出如果是下面这样, D D D会判断是真图:
这里写图片描述
但如果 G G G的输出是下面这样的, D D D拿来一看,也会认为是真的图片QAQ…也就是说,这样做并不能训练出输入和输出对应的网络 G G G,因为是否对应根本不影响 D D D的判断。
这里写图片描述

为了体现这种对应关系,解决方案也很简单,你可以也已经想到了:我们把** G G G的输入和输出一起作为 D D D的输入**不就好了?于是现在的优化目标变成了这样:
这里写图片描述

这项研究还是挺成功的,大家可以去这里在线体验一下demo,把草图(sketch)变成图片。

这里写图片描述

当然,有些比较皮的用户输入了奇形怪状的草图,然后画风就变成了这样:
这里写图片描述

应用

pix2pix的核心是有了对应关系,这种网络的应用范围还是比较广泛的,比如:

  1. 草图变图片[Isola, Zhu, Zhou, Efros, 2016]:
    这里写图片描述
  2. 灰度图变彩色图[Isola, Zhu, Zhou, Efros, 2016]:
    这里写图片描述
  3. 自动着色 Data from [Russakovsky et al. 2015]:
    这里写图片描述
  4. 交互式着色[Zhang*, Zhu*, Isola, Geng, Lin, Yu, Efros, 2017]:
    这里写图片描述

CycleGAN

pix2pix必须使用成对的数据进行训练。
这里写图片描述
但很多情况下成对数据是很难获取到的,比如说,我们想把马变成斑马,现实生活中是不存在对应的真实照片的:
这里写图片描述

现在我们就用Cycle-constraint Adversarial Network也就是CycleGAN解决这个问题。这种网络不需要成对的数据,只需要输入数据的一个集合(比如一堆马的照片)和输出数据的一个集合(比如一堆斑马的照片)就可以了。

这里写图片描述

但是(没错我又要说但是了),直接使用不成对的数据是不奏效的。网络会直接忽略输入,随机产生输出!所以,我们还得对网络增加**限制(constraint)**才行。

那怎么加限制呢?我们来思考一个现实问题。马克吐温认为,如果一把一段话从英文翻译成法文,再从法文翻译回英文,那么你应该得到跟之前原始输入的英文一样的内容。这里也是一样,如果我们把马变成斑马,然后再变回马,那么最后的马和开始输入的马应该是一样的。
这里写图片描述

下面讲一下具体技术细节。除了之前提到的把马变成斑马的网络 G G G,我们还需要一个把斑马变回马的网络 F F F
那么,一匹马 x x x G G G变成斑马 s = G ( x ) s = G(x) s=G(x),然后再用 F F F把它变回马 F ( s ) F(s) F(s),得到的马和一开始的马应该是一样的,也就是 x = F ( G ( x ) ) x = F(G(x)) x=F(G(x))

这里写图片描述
反过来,斑马变马再变回斑马也要满足要求,注意这一步最好不要省略。虽然理论上只用一个条件是可以的,但是现实实现中,有很多因素,比如计算的准备度,优化的问题,应用中都是把所有约束都加上。比如说 a = b = c a=b=c a=b=c,理论上我们只要要求$(a-b)2+(a-c)2=0 , 但 现 实 中 我 们 都 是 做 ,但现实中我们都是做 (a-b)2+(a-c)2+(b-c)^2=0$。
这里写图片描述

我们同时优化 G G G F F F,最后就能拿到一个想要的网络 G G G

CycleGAN为什么有效

CycleGAN成功的原因在于它分离了风格(Style)内容(content)。人工设计这种分离的算法是很难的,但有了神经网络,我们很容易让它学习者去自动保持内容而改变风格

效果展示

下面是效果展示环节~

马变斑马

两张图片分别是原来的马和 G G G duang的一下变出的斑马:
这里写图片描述
这里写图片描述

橘子变苹果:

这里写图片描述
这里写图片描述

可以看到,CycleGAN能够比较准确的找到橘子的位置,并把它变成苹果。

图像风格的迁移:

这里写图片描述

这里写图片描述

游戏场景替换

这个应用就很酷了,它以一些德国城市的照片作为输入,成功替换了游戏GTA5中的场景!
这里写图片描述
这里写图片描述

失败例子

在输入骑马的普京大帝照片时,输出图像里把普京也变成了斑马。
这里写图片描述

这是因为,训练图像里并没有骑马的人,所以网络就傻掉了。

目前暂且的解决办法是先用Mask R-CNN做图像分割之后再针对马进行变化,不过这个效果也不好,因为人和马在图像上有重叠的部分。这个问题需要未来解决。

源代码

这里给出CycleGAN和pix2pix的github项目。

这是2017年github最受欢迎的项目之一,截止到本文写作时间(2018年9月),已经有5000+ Star了:
这里写图片描述

课程

CycleGAN现在非常火,以致于很多大学和在线平台都开设了它的课程:
这里写图片描述

用户的结果

下面是这些课程里的一些学生作业:
这里写图片描述
Twitter上也有一些很有趣的应用,比如把狗变成猫@itok_msi:
这里写图片描述
或者把猫变成狗:
这里写图片描述

再比如“吃鸡”游戏的风格转换@Cahintan Trivedi:
这里写图片描述
这里写图片描述
不过这里存在一个严重的问题:CycleGAN只能输出256p/512p的低分辨率图像

pix2pixHD

是的,我们还剩一个悬而未决的问题:分辨率和图像质量。pix2pixHD就是用来解决这个问题的!

假设我们输入一张高分辨率的草图:
这里写图片描述
使用pix2pix,结果很差(之前说过,让网络产生高维数据输出很难):
这里写图片描述

pix2pixHD采取了金字塔式的方法:

  1. 先输出低分辨率的图片。
  2. 将之前输出的低分辨率图片作为另一个网络的输入,然后生成分辨率更高的图片。
    这里写图片描述

这样,就把一个困难的问题拆分成了两个相对简单的问题~

最终的效果是,给定下面的高分辨率草图:
这里写图片描述
pix2pixHD可以**实时(real time)**产生这样的效果:
这里写图片描述

pix2pixHD也支持用户交互,比如加一辆车、添几棵树之类的:
这里写图片描述
这里写图片描述

pix2pixHD还有许多有趣的应用。

比如用草图生成高分辨率人脸:
这里写图片描述
这里写图片描述

再比如:

  • 图像增强(Image Enhancement)
  • 图像去雾(Image Dehazing)
  • 非监督动作重定向Neural Kinematic Networks for Unsupervised Motion Retargetting

其他问题

目前生成的斑马视频帧与帧之间的纹理变化较大,为了解决帧之间的连续性问题,新的研究工作应运而生:Video-to-Video Synthesis。
它主要的解决思路有下面三个:

  1. 输入一段视频中的几帧,检查真假
  2. 把前面的帧当做后面帧的输入
  3. 使用“optical flow”,具体请看paper

总结

本文介绍了怎样用神经网络生成图片,我们使用pix2pix完成了基本任务,使用CycleGAN解决了输入数据不成对的问题,最后用pix2pixHD解决了图像分辨率和图像质量的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一文读懂GAN, pix2pix, CycleGAN和pix2pixHD 的相关文章

  • 氮化镓 服务器电源管理系统报价,氮化镓(GaN)技术推动电源管理不断革新

    原标题 xff1a 氮化镓 GaN 技术推动电源管理不断革新 我们可以想象一下 xff1a 当你驾驶着电动汽车行驶在马路上 xff0c 电动车充电设备的充电效率可以达到你目前所用充电效率的两倍 xff1b 仅有一半大小的电机驱动比目前应用的
  • 一文读懂「Attention is All You Need」| 附代码实现

    前言 2017 年中 xff0c 有两篇类似同时也是笔者非常欣赏的论文 xff0c 分别是 FaceBook 的Convolutional Sequence to Sequence Learning 和 Google 的Attention
  • 论文理解:Defense-GAN

    由于首次接触对抗训练方面的内容 在此借着Defense GAN中的相关内容先对对抗训练相关知识做一个简要的整理 对抗训练基本说明见https www leiphone com news 201702 Jpb0uiOt9RTwcB8E htm
  • 一文读懂anchor-base和anchor-free

    1 从Faster RCNN看Anchor Faster RCNN相对于Fast RCNN的一个改进是引入了RPN网络 xff0c RPN用于区域推荐 xff0c 替换了此前的SS算法使得网络在整体上更加的CNN化 那么RPN是怎么进行区域
  • 一文读懂YOLOv5 与 YOLOv4

    作者 xff1a William 来源 xff1a 自动驾驶全栈工程师知乎专栏 链接 xff1a https www zhihu com people william hyin columns YOLO之父Joseph Redmon在今年年
  • SRGAN——使用与超分辨率重建的GAN

    SRGAN数据GAN理论在超分辨率重建 SR 方面的应用 一 超分辨率技术 1 SR技术介绍 SR技术 是指从观测到的低分辨率图像重建出相对应的高分辨率图像 在监控设备 卫星图像和医学影像等领域都有重要的应用价值 也可以应用于马赛克图片的恢
  • 服务器端使用visdom进行可视化并更换端口(亲测有效)

    Visdom 是 Facebook 开源的一款用于创建 组织和共享实时丰富数据的可视化工具 通常结合pytorch结合使用很方便 服务器端使用visdom进行可视化 启动visdom本地可视化的方法很简单 只要在终端输入visdom或pyt
  • PyTorch和TensorFlow生成对抗网络学习MNIST数据集

    介绍 生成对抗网络 简称GAN 是最近开发的最受欢迎的机器学习算法之一 对于人工智能 AI 领域的新手 我们可以简单地将机器学习 ML 描述为AI的子领域 它使用数据来 教 机器 程序如何执行新任务 一个简单的例子就是使用一个人的脸部图像作
  • tensorflow 1.01中GAN(生成对抗网络)手写字体生成例子(MINST)的测试

    为了更好地掌握GAN的例子 从网上找了段代码进行跑了下 测试了效果 具体过程如下 代码文件如下 import tensorflow as tf from tensorflow examples tutorials mnist import
  • TimeGAN学习记录

    一 学习TimeGAN主要参考的链接如下 1 知乎上的TimeGAN论文研读 2 csdn上的一篇博客 论文阅读 Time Series Generative Adversrial Networks TimeGAN 时间序列GAN 3 时间
  • Tensrfow GAN Discriminator 如何使用hinge loss训练

    hinge loss 核心点 网络的输出要确保是 1 1 范围 之前一直用cross entrype loss这一点没有台注意 所以之前一直没写对 hinge loss 核心代码 def Hinge loss pos neg name Hi
  • 学习笔记:SemanticStyleGAN 面向可控图像合成和编辑的组合生成先验学习

    CVPR 2022 SemanticStyleGAN Learning Compositional Generative Priors for Controllable Image Synthesis and Editing 面向可控图像合
  • GAN与CycleGAN的结构解析

    原文链接 当下神经网络三大主流子领域 CNN RNN和GAN 今天咱们主要分享一下生成对抗网络 GAN的一些核心思想 并以CycleGAN为例进行阐述 借自 https github com eriklindernoren Keras GA
  • 小白学GAN系列4——torch.optim

    torch optim是一个实现了多种优化算法的包 大多数通用的方法都已支持 提供了丰富的接口调用 未来更多精炼的优化算法也将整合进来 为了使用torch optim 需先构造一个优化器对象Optimizer 用来保存当前的状态 并能够根据
  • StackGAN笔记

    Stack可译做堆叠 就是在GAN上面再放上一个GAN 作者讲述的自己的解决思路 原来难以生成高分辨率的图像 他们分解了这个问题 把生成高分辨率图片这个任务分解成两个更为简单的任务 就是文中说的一个GAN生成大致的形状和颜色 第二个GAN生
  • CVPR 2020

    Editing in Style Uncovering the Local Semantics of GANs 作者 Edo Collins Sabine S sstrunk School of Computer and Communica
  • Gan学习

    参考博客 https blog csdn net u010678153 article details 54629393 https www cnblogs com Charles Wan p 6238033 html GAN原理介绍 说到
  • 《DeblurGAN: Blind Motion Deblurring Using Conditional Adversarial Networks》论文阅读之DeblurGAN

    前言 现实生活中 大多数图片是模糊不清的 试想一下 追剧时视频不清晰 看着都很捉急 何况现实中好端端的一幅美景 美女也可以 被抓拍得不忍直视 瞬间暴躁 拍照时手抖 或者画面中的物体运动都会让画面模糊 女友辛辛苦苦摆好的各种Pose也将淹没在
  • 多元回归预测

    文章目录 效果一览 文章概述 部分源码 参考资料 效果一览 文章概述 多元回归预测 Matlab生成对抗网络 GAN 数据回归预测 GAN回归预测 多输入单输出模型 部分源码
  • StyleGAN系列学习笔记

    StyleGAN可以无监督地分离高级属性 例如 姿态 身份 和生成图像中的随机变化 例如 雀斑 头发 控制图像不同层次的视觉特征 StyleGAN v1 Figure 1 传统生成器 vs Style based生成器 给定输入latent

随机推荐

  • 1-6 实验5 无线温度检测实验

    无线温度检测实验 1 实验内容 xff1a 协调器建立ZigBee无线网络 xff0c 终端节点自动加入网络 xff0c 然后终端节点周期性地采集温度并将数据发送到协调器 协调器接受数据并通过串口把接受到的数据传给PC端的串口调试助手 2
  • 1-11 实验9 网络管理实验1 获取自身的和父节点网络地址、MAC地址

    p p p style color rgb 51 51 51 font family Arial font size 14px line height 26px 获取自身的和父节点网络地址 MAC地址 p p style color rgb
  • 1-14 实验11 获取网络拓扑

    获取网络拓扑 1 实验内容 xff1a PC端串口调试助手向协调器发送命名 topology 协调器接受到命令后 xff0c 将网络拓扑信息发送到PC机串口调试助手上 2 知识点 xff1a 在1 11 实验9 网络管理实验1 获取自身和父
  • S 串口编程 详解3 串口的初始化、打开/关闭

    串口编程 详解3 串口的初始化 程序打开串口 xff0c 采用两种方法 xff1a 1 程序启动 xff0c 调用OnInitDialog 函数 xff0c 打开串口 xff0c 缺省串口号为COM1 xff0c 如果COM1不存在或被占用
  • 求关键路径(包含邻接表的建立、拓扑排序)

    include lt stdio h gt include lt stdlib h gt typedef struct node int adjvex 邻接点域 int info 边上的信息 struct node next 指向下一个邻接
  • FPGA串口回环实验

    本文将从个人理解的角度 xff0c 解释FPGA串口通信的原理 xff0c 并进行实战演示 1 写在前面的话 串口通信是初学FPGA必过的一道坎 xff0c 如果能够在不参考任何资料的情况下自己手搓一套串口回环的代码 xff0c Verio
  • Debug Assertion Failed!解决方法详解

    1 野指针 2 内存泄露 解决方法 1 看一看你的程序里是不是有 ASSERT xff08 xff09 或 VERIFY xff08 xff09 语句 这两个宏是用来测试它的参数是否为真的 出现你说的 xff0c 这说明你的指针或表达试有问
  • 用tftp的方式在u_boot下 烧写uImage内核

    用 u boot 进行下载 uImage 一种 kernel 镜像文件 首先 把编译好的 uImage 文件放在 tftpboot 目录下 用网线把开发板和电脑连上 但PC上的网卡显示是没连接的 xff0c 这一点是没有关系的 xff0c
  • 利用NFS服务挂载NFS根文件系统

    嵌入式Linux根文件系统 xff0c 简单地说 xff0c 根文件系统就是一种目录结构 注意根文件系统和普通的文件系统的区别 常见的Linux根文件系统有 xff1a xff08 1 xff09 NFS xff08 网络根文件系统 xff
  • 数据校验之Checksum算法

    校验和 xff08 Checksum xff09 是网络协议使用的数据错误检测方法 xff0c 并且被认为比LRC xff08 纵向冗余校验 xff0c Longitudinal Redundancy Check xff0c LRC xff
  • 位序转字符串的一种高效方法

    include lt stdio h gt include lt stdlib h gt include lt malloc h gt include lt string h gt include lt arpa inet h gt def
  • OpenSIPS实战(一):OpenSIPS使用简介

    1 OpenSIPS是什么 OpenSIPS xff08 Open SIP Server xff09 是一个成熟的开源SIP服务器实现 可以作为SIP代理 路由器 但OpenSIPS不仅仅是一个SIP代理 路由器 xff0c 因为它包含了应
  • Floyd判圈算法(龟兔赛跑算法, Floyd's cycle detection)及其证明

    问题 xff1a 如何检测一个链表是否有环 xff08 循环节 xff09 xff0c 如果有 xff0c 那么如何确定环的起点以及环的长度 空间要求 xff1a 不能存储所经过的的每一个点 举例 xff1a x 0 61 1 x 0 61
  • Ubuntu配置GPU版本pytorch环境(含NVIDIA驱动+Cuda+Cudnn)

    本文更新于2018年8月底 概述 步骤如下 xff1a 1 安装Ubuntu 2 安装NVIDIA 显卡驱动 2 安装NVIDIA Cuda 3 安装NVIDIA CuDNN 4 安装GPU版本的PyTorch 安装Ubuntu 系统版本选
  • PyTorch中的Dataset、Dataloader和_DataloaderIter

    Dataset Pytorch中数据集被抽象为一个抽象类torch utils data Dataset xff0c 所有的数据集都应该继承这个类 xff0c 并override以下两项 xff1a len xff1a 代表样本数量 len
  • 彻底搞懂Lab 颜色空间

    本文参考wikipedia xff0c 并加入了自己的理解 xff0c 有不对的地方多多指教 名称 在开始之前 xff0c 先明确一下Lab颜色空间 xff08 Lab color space xff09 的名字 xff1a Lab的全称是
  • MiniFly微型四轴学习与开发日志(五)——遥控器任务详解

    文章目录 radiolinkTask无线连接任务usblinkTxTask usb发送任务usblinkRxTask usb接收任务commanderTask飞控指令发送任务keyTask按键扫描任务displayTask显示任务confi
  • .与::的使用区别

    今天尝试编写了一个小的Windows应用程序 xff0c 在编写的过程中用到MessageBox函数 但是一直不正确 我当时尝试MessageBox 34 NULL 34 34 Alert 34 34 ERROR 34 MB OK xff0
  • Pytorch中的contiguous理解

    最近遇到这个函数 xff0c 但查的中文博客里的解释貌似不是很到位 xff0c 这里翻译一下stackoverflow上的回答并加上自己的理解 在pytorch中 xff0c 只有很少几个操作是不改变tensor的内容本身 xff0c 而只
  • 一文读懂GAN, pix2pix, CycleGAN和pix2pixHD

    本文翻译 总结自朱俊彦的线上报告 xff0c 主要讲了如何用机器学习生成图片 来源 xff1a Games2018 Webinar 64期 xff1a Siggraph 2018优秀博士论文报告 人员信息 主讲嘉宾 姓名 xff1a 朱俊彦