[CVPR‘22] EG3D: Efficient Geometry-aware 3D Generative Adversarial Networks

news2024/11/25 3:55:30
  • paper: https://nvlabs.github.io/eg3d/media/eg3d.pdf
  • project: EG3D: Efficient Geometry-aware 3D GANs
  • code: GitHub - NVlabs/eg3d

总结

  • 本文提出一种hybrid explicit-implicit 3D representation: tri-plane hybrid 3D representation,该方法不仅有更强的表达能力,速度更快,内存开销更小。
  • 同时,为解决多视角不一致问题,引入相机参数矩阵作为StyleGANv2生成器、超分模型、Volume Rendering的控制条件。
  • 最后,为解决超分模型导致的信息丢失问题,本文提出dual discrimination strategy,使得超分前后图像保持一致。

skirt the cimputational constraints

inherit their efficiency and expressiveness

xx has started to gain momentum as well

目录

摘要

引言

贡献

近期工作

Neural scene representation and rendering. 

Generative 3D-aware image synthesis. 

Tri-plane hybrid 3D representation

3D GAN framework

CNN generator backbone and rendering 

Dual discrimination

Modeling pose-correlated attributes

Experiments and results

Ablation study

Application


摘要

  • 研究如何基于单视角2D图片,通过无监督方法,生成高质量、多视角一致的3D形状
  • 现有3D GAN存在问题:1)计算开销大;2)不具有3D一致性(3D-consistent);
  • 本文提出:1)expressive hybrid explicit-implicit network architecture:提速、减小计算开销;2)decoupling feature generation and neural rendering:可以借助sota 2D GAN,例如:StyleGAN2。
  • 在FFHQ和AFHQ Cats的3D-aware synthesis任务上达到sota。

引言

  • 现有2D GAN无法显式地建模潜在的3D场景;
  • 近期3D GAN,开始解决:1)多视角一致的图片生成;2)无需多视角图片和几何监督,提取3D形状。但是3D GAN生成的图片质量和分辨率仍然远逊于2D GAN。还有一个问题是,目前3D GAN和Neural Rendering方法计算开销大。
  • 3D GAN通常由两部分组成:1)生成网络中的3D结构化归纳偏置;2)neural rendering engine提供视角一致性结果。其中,归纳偏置可以被建模为:显式的体素网格或隐式的神经表达。但受限于计算开销,这两种表达方式都不适用于训练高分辨率的3D GAN。目前常用的方法是超分,但超分又会牺牲视觉连续性和3D形状的质量。
  • 本文提出:1)hybrid explicit-implicit 3D representation由于提速、减小计算开销;2)dual discrimination strategy由于保留输出和neural rendering的一致性;3)对生成器引入pose-based conditioning,解耦pose相关属性,例如人脸表情系数;4)本文框架将特征生成从neural rendering中解耦出来,使得框架可以受益于sota 2D GAN,例如:StyleGAN2。

贡献

  • 提出一种tri-plane-based 3D GAN框架。在保持效果的情况下,提速明显;
  • 提出一种3D GAN训练策略dual discrimination,用于保持多视角一致性;
  • 提出generator pose conditioning,建模pose相关的属性,例如:表情。
  • 在FFHQ和AFHQ Cats的3D-aware图片生成中取得sota结果。

近期工作

Neural scene representation and rendering. 

  • 显示表达(图b),例如:discrete voxel grids。优点是fast to evaluate,缺点是需要大量的内存开销大;
  • 隐式表达(图a):例如:neural rendering。优点是内存使用高效,缺点是slow to evaluate。
  • 局部隐式表达和混合显-隐式表达,则兼具了两者优点。
  • 受此启发,本文设计了hybrid explicit-implicit 3D-aware network(图c):用tri-plane representation去显示存储沿坐标轴对齐的特征,而特征则是被通过特征解码器隐式的渲染为体素。

Generative 3D-aware image synthesis. 

  • Mesh-based approaches;Voxel-based GANs,内存开销大,通常需要使用超分,但超分会导致视角不一致;Block-based sparse volume representations:泛化性不好。Fully implicit representation networks,但测试很慢。
  • 和StyleGAN2-based 2.5D GAN的区别:他们生成图片和深度图,而我们不需要;
  • 和3D GAN,例如StyleNeRF和CIPS-3D的区别:他们在3D形状上表现不佳。

Tri-plane hybrid 3D representation

  • 建立xyz三个相互垂直的特征平面,每个特征平面为N x N x C,其中N为平面分辨率,C为特征维度。对于任意一个3D位置,通过双线性插值,可索引到3个特征向量(F_xy, F_xz, F_yz),最终特征F为3个特征向量之和。
  • 通过一个轻量级MLP解码网络,将特征F映射为颜色和强度,最后通过neural volume rendering将他们渲染为RGB图片。下图和下表显示,所提出的Tri-plane在具有更强表现能力的同时,内存开销更小,计算速度更快。

 

3D GAN framework

对每张训练图片,本文使用离线pose检测器计算其相机内外参数。算法整体pipeline如下: 

训练方法1:随机初始化,使用non-saturating GAN loss with R1 regularization,训练方法跟随StyleGAN2;训练方法2:两阶段训练策略,先训64 x 64的neural rendering,然后接128 x 128的fine-tune。实验显示,正则化有助于减少3D形状的失真。

CNN generator backbone and rendering 

  • decoder:MLP,每层包含64个神经元和softplus activation functions。MLP的输入可以是连续坐标,输出是scalar density和32维的特征
  • Volume rendering:输入feature images,而不是RGB图片。因为,feature images包含更多可在超分中使用的信息。

Dual discrimination

  • 鉴别器输入为6通道。本文认为feature image I_F的前三个通道是低分辨率RGB图片I_RGB。dual discrimination首先要求I_RGB和超分图片I_RGB^+保持一致(?),这一步通过双线性上采样得到。然后将超分超分图片和上采样图片拼接在一起送入鉴别器。对于真实图片,则是将真实图片和经过blur处理的真实图片拼接在一起送入鉴别器。
  • 将相机内外参数送入鉴别器,作为条件标签。

Modeling pose-correlated attributes

  • 大多数现实世界数据集包含偏置,例如在FFHQ中,人脸表情和相机位置相关,通常来说,当相机正对人脸时,人是在笑的。本文提出generator pose conditioning,用于解耦训练图片中位姿和其他属性(可以理解为想要去除什么bias,就以bias为条件作为输入?)。
  • 为增强模型对输入位姿的鲁棒性,在训练中,会以50%概率将相机参数矩阵P中的位姿替换为随机位姿。
  • 消融实验发现,在训练时加入位姿作为条件很重要。未来的工作会考虑去除它。

 

Experiments and results

  • Datasets:FFHQ真实人脸数据集,AFHQv2 Cats,真实猫脸数据集。
  • Baselines:3个3D-aware image synthesis领域的sota方法:pi-GAN、GIRAFFE和Lifting StyleGAN。
  • Qualitative results:

  • Quantitative evaluations:

 

  • Runtime:

 

Ablation study

 

Application

  • Style mixing:

  •  Single-view 3D reconstruction:使用pivotal tuning inversion (PTI)

 

 

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

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

相关文章

GDI+绘图轻松入门[6]-路径变形和表盘的绘制

有了前面的坐标相关知识的了解,我们这次来实战一把,绘制一个表盘。当然,绘制表盘我们要学会GDI绘图中的路径绘图与两个必要的Transform变形函数,RotateTransform(旋转变形)、TranslateTransform&#xff08…

《爆肝整理》保姆级系列教程python接口自动化(十四)--session关联接口(详解)

简介 上一篇cookie绕过验证码模拟登录博客园,但这只是第一步,一般登录后,还会有其它的操作,如发帖,评论等等,这时候如何保持会话呢?这里我以jenkins平台为例,给小伙伴们在沙场演练一…

10.Jenkins用tags的方式自动发布java应用

Jenkins用tags的方式自动发布java应用1.配置jenkins,告诉jenkins,jdk的安装目录,maven的安装目录2.构建一个maven项目指定构建参数,选择Git Paramete在源码管理中,填写我们git项目的地址,调用变量构建前执行…

秒杀项目之分布式锁运用

目录一、创建Redisson模块二、模拟高并发场景秒杀下单2.1 场景模拟2.2 案例演示三、JVM级锁与redis级分布式锁3.1 JVM级锁3.2 redis级分布式锁3.2.1 什么是setnx3.2.2 场景分析四、redisson分布式锁源码解读4.1 什么是Redisson4.2 Redisson工作原理4.3 入门案例五、秒杀项目整合…

StarRocks 企业行|走进 58 同城,探索极速统一 3.0 时代的企业实践

新的一年,新的征程。随着 StarRocks 项目的演进,StarRocks 也迈入了极速统一 3.0 的时代。极速 OLAP 极速数据湖分析将带给企业什么价值?StarRocks 的用户又是如何在企业内打造专属的大数据平台,让数据驱动业务增长和优化&#x…

尚医通(十三)后台医院管理模块

目录一、医院管理模块需求分析1、医院列表2、医院详情二、医院列表功能(接口)1、添加service分页接口与实现2、添加controller方法3、service_cmn模块提供接口3.1 添加service接口与实现3.2 添加controller4、封装Feign服务调用4.1 搭建service_client父模块4.2 在service_clie…

论文投稿指南——中文核心期刊推荐(园艺)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…

Spring3之注解(Annotation)

简介 前面介绍的都是通过 xml 文件配置的方式,Spring 也可以通过注解的方式添加配置,在实际开发过程中,最佳实践是:属于 Spring 的系统配置配置在 xml 文件中,而像注入 bean 之类的配置则通过注解的方式;这…

IDEA根据wsdl生成java代码(Generate Java Code from WSDL)以及乱码问题的解决

目录 一、根据wsdl生成java代码 1、创建待存放java代码的目录,点击“帮助”>“查找操作”,打开查找窗口; 2、输入wsdl并查找,点击“从WSDL生成Java代码”,打开新的窗口; 3、选择wsdl文件&#xff0c…

LeetCode 2.两数相加

原题链接 难度:middle\color{orange}{middle}middle 题目描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表…

工作记录------lombok中@Data包含哪些功能?

工作记录------lombok中Data包含哪些功能? 在实体类中加上Data后,实体类有哪些增强? Data public class BaseProcedure {TableId(value "id", type IdType.ASSIGN_UUID)private String id;private String procedureCode;写上Da…

字节青训营——秒杀系统设计学习笔记(二)

一、两次MD5加密设计 加密:出于安全考虑 第一次 (在前端加密,客户端):密码加密是(明文密码固定盐值)生成md5用于传输,目的,由于http是明文传输,当输入密码若…

Linux进程线程管理

目录 存储管理 linux内存管理基本框架 系统空间管理和用户空间管理 进程与进程调度 进程四要素 用户堆栈的扩展 进程三部曲:创建,执行,消亡 系统调用exit(),wait() 内核中的互斥操作 存储管理 linux内存管理基本框架 系统空间管理…

sql手工注入练习拿flag

sql手工注入练习拿flag 记录一下自己重新开始学习web安全之路⑤。 1、找注入点 ①url ②搜索框 ③登录框 2、找交互点 用单引号判断是否存在交互点,发现回显不正常,说明url存在有交互点 3、判断类型(char类型) 利用and 11 和…

Linux Shell脚本讲解

目录 Shell脚本基础 Shell脚本组成 Shell脚本工作方式 编写简单的Shell脚本 Shell脚本参数 Shell脚本接收参数 Shell脚本判断用户参数 文件测试与逻辑测试语句 整数测试比较语句 字符串比较语句 Shell流程控制 if条件判断语句 单分支 双分支 多分支 for循环语句…

第五章.与学习相关技巧—参数更新的最优化方法(SGD,Momentum,AdaGrad,Adam)

第五章.与学习相关技巧 5.1 参数更新的最优化方法 神经网络学习的目的是找到使损失函数的值尽可能小的参数,这是寻找最优参数的问题,解决这个问题的过程称为最优化。很多深度学习框架都实现了各种最优化方法,比如Lasagne深度学习框架&#xf…

Vue中使用天地图

Vue项目引入天地图 在vue的静态资源目录下的index.html中引入天地图的底图&#xff0c;开发天地图源码路径&#xff1a;天地图API 方法一&#xff1a;加载天地图&#xff0c;引用&#xff1a;public/index.html <script type"text/javascript" src"http:/…

来来来,手摸手写一个hook

hello&#xff0c;这里是潇晨&#xff0c;今天就带着大家一起来手写一个迷你版的hooks&#xff0c;方便大家理解hook在源码中的运行机制&#xff0c;配有图解&#xff0c;保姆级的教程&#xff0c;只求同学一个小小的&#x1f44d;&#xff0c;&#x1f436;。 第一步&#xf…

【软件测试】团队测试技术体现,遇到不可复现bug处理方式......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 测试技术带来的是PP…

ThingsBoard-规则链-check alarm status

1、概述 从今天开始,专门讲解ThingsBoard的规则链,每一个节点都会详细讲解,并且配套案例,让大家都能理解,喜欢请点个关注。今天讲的是筛选器的第第一个节点【check alarm status】,意思是检测告警状态。 2、节点理解 2.1、概述 【check alarm status】节点如图所示:…