标题:Deferred neural rendering: Image synthesis using neural textures

链接:Deferred neural rendering: image synthesis using neural textures: ACM Transactions on Graphics: Vol 38, No 4

介绍

本文处理的问题是新视角合成,即给定一个物体的一组照片,要求生成全新视角的图片。大概思路是先通过给定的这组照片重建出一个3D模型,然后旋转通过旋转3D模型就可以得到新视角的图片了。而本文最大的亮点在于他假设重建的3D模型是并不完美的(这非常符合实际,因为事实上现如今的技术无法做到完美的3D重建),因此作者让网络将像素特征(区别于RGB)储存到了纹理图中,称之为神经纹理(neural texture)。这么做的目的是希望这个神经纹理可以在渲染阶段辅助渲染器补全由于不完美的3D模型造成的artifact。因此渲染器也就不能用图形学中的渲染器,而需要自行设计一个神经渲染器了,作者称之为延迟神经渲染器(deferred neural renderer)。这里“延迟”的意思就是将纹理颜色的生成延迟到了渲染步骤,渲染器需要通过神经纹理重新学习出最终的颜色。

相关工作

关于新视角合成,前人已经有了很多的尝试,但均存在一些问题:

1. 通过RGBD扫描结果重建出场景3D模型,然后通过转动3D模型生成新视角。这一方案的好处是可以直接使用图形学中的渲染器对模型进行高质量渲染,但由于重建出的3D模型本身就并不完美,因此必然也无法合成出高质量的新视角场景。

2.重建出粗糙的3D模型,并通过高质量的2D纹理来补全细节,本文的模型就属于这一类。这一方案中3D模型并不直接参与渲染,而是用于辅助纹理的选择。这一方案的优势是避免了大量常见的artifact,但缺点是会出现一些特殊的artifact,如鬼影和遮挡边界上的一些问题。本文模型的优势在于学习出的神经纹理比起前人的方法更为灵活。

3.通过记录光场来渲染出新视角的场景,这和本文的思路非常相似。所谓记录光场就是在拍摄的时候每个像素不再是只记录一组RGB值,而是会分别记录从各个方向上达到这个像素的RGB值,这样就可以在后期渲染过程中通过选定每个方向上对应的RGB值来得到不同视角的结果了。这一方案的最大问题在于储存量,因为每多记录一个方向的RGB就要多一倍的存储量。因此有人提出使用神经网络来学习并合成多个视角的RGB值从而并减少存储量的要求。

但除此以外还有一个问题,就是他要求有精细的3D模型,否则就会出现严重的artifact。而本文与之类似的地方在于文中提出的神经纹理本质上也是记录更多像素的属性,从而保证表达能力。但本文的神经纹理却并不是用来合成多个视角的RGB值,而是直接输入渲染器,因此渲染器可以通过每个像素的周围区域综合考虑如何渲染, 从而达到更好的效果。

4.使用神经网络直接进行视角合成(文章中单独描述了图片合成和视角合成,但我把这两个合在一起说了)。这一想法最为简单粗暴,就是利用conditional GAN,给定条件,要求直接输出对应条件的图形。例如输入一张图片和我想要的视角,就要求模型直接生成对应视角的同一张图片。这一类模型往往在单张图片上的表现还算不错,但是往往并不能保证视角之间的一致性,这主要是因为网络本质上是2维的,而他要学习的信息却是3维的。同时也有工作通过特征解耦试图解耦出图像中的位姿,光照等信息,但大都只适用于静态场景,而难以用于动态场景。

模型结构

本文提出的模型中最重要的就是神经纹理和延迟神经渲染器。

神经纹理

其中神经纹理本质上就是基于每个texel的一个16维的特征向量,是通过学习学到的。其中1-3维作者通过loss约束使之成为RGB特征,其他维度就由模型自由发挥。神经纹理部分作者主要解决了两个问题,一个是纹理的采样率,另一个是纹理的插值。

这两个问题在图形学中也是存在的,比如采样率问题,就是说当我们离某个场景特别远的时候,纹理就会变得特别小,这时候可能最终成像的一个像素中包含了好几个texel,进而会导致摩尔纹之类的效果,反之也同理。因此作者学习mipmap的方法,预先计算出多个不同分辨率的纹理贴图,让网络自行选择如何取用。

而纹理插值是因为我们的纹理图毕竟不可能无限分辨率,而对于那些在两个texel之间的点如何选取纹理,这里作者就直接通过双线性插值来对他的神经纹理进行插值了,和普通的纹理并没有区别。

延迟渲染器

这里的延迟渲染器是基于光栅化的渲染器,使用的网络是U-Net。在训练前,需要先计算出网格和纹理之间的对应关系,即UVmap。训练时输入粗糙网格和对应的神经纹理,从而生成对应视角的图像。另外,为了改变视角,作者通过将球谐光照中前三个频率乘上第4-13维的特征来输入视角信息。

损失函数

本文作者只使用了一个损失函数,就是基于像素的l1损失。

[TOG2019]Deferred Neural Rendering:Image Synthesis using Neural Textures相关推荐

  1. PIRenderer: Controllable Portrait Image Generation via Semantic Neural Rendering (译文)

    PIRenderer: Controllable Portrait Image Generation via Semantic Neural Rendering 链接 视频: https://www. ...

  2. 1、Neural Rendering

    Rendering简介 Photo-realistic Image Synthesis Need 3D Content for Rendering Computer Vision for Recons ...

  3. FastNeRF: High-Fidelity Neural Rendering at 200FPS翻译

    论文标题:FastNeRF: High-Fidelity Neural Rendering at 200FPS (ICCV 2021) 建议预备知识:NeRF (BV1c34y1B7Hx) 论文链接: ...

  4. 【调研】虚拟人 深度神经渲染(neural rendering)

    点击上方"AI搞事情"关注我们 据天眼查数据显示,我国现有"虚拟人"."数字人"的相关企业28.8万余家.2016-2020年,5年新增注册 ...

  5. 【Neural Style Transfer】 Fast Neural Style

    上周写了深度学习与艺术--画风迁移 Neural Style的文章,这周就来聊一聊Fast Neural Style,从名字可以看出,Fast Neural Style的最大的特色就是快,也就是说如果 ...

  6. 79、ClimateNeRF: Physically-based Neural Rendering for Extreme Climate Synthesis

    简介 主页 物理模拟可以很好地预测天气影响.神经辐射场产生SOTA场景模型. ClimateNeRF 允许我们渲染真实的天气效果,包括雾霾.雪和洪水 ,结果可以通过有物理意义的变量来控制,比如水位 , ...

  7. BokehMe: When Neural Rendering Meets Classical Rendering

    论文地址:https://openaccess.thecvf.com/content/CVPR2022/papers/Peng_BokehMe_When_Neural_Rendering_Meets_ ...

  8. [C4W1] Convolutional Neural Networks - Foundations of Convolutional Neural Networks

    第一周 卷积神经网络(Foundations of Convolutional Neural Networks) 计算机视觉(Computer vision) 欢迎参加这次的卷积神经网络课程,计算机视 ...

  9. 浙大三维视觉团队提出 Neural Body,单目RGB视频重建人体三维模型,无需预训练网络...

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 今天,我们介绍一篇2021 CVPR的人体自由视角合成的论文:Neural Body: Implicit Neural Represen ...

最新文章

  1. 网线传输速度测试_弱电工程CAT5eCAT6CAT6aCAT7网线怎么选择
  2. poj 1085 Triangle War 博弈论+记忆化搜索
  3. Centos 6.4 python 2.6 升级到 2.7一起的MySQLdb不能使用的解决问题
  4. C++动态数组(转)
  5. 你必须知道的 SmartSql
  6. git 删除tag_Git常用命令
  7. 2017.9.12 claris的剑 失败总结
  8. 使用wmi显示rpc服务器不可用,详解WMI RPC 服务器不可用的解决方案
  9. java object 判断null_java判断object为null
  10. velocity--shiro
  11. 阶段3 2.Spring_07.银行转账案例_8 基于接口的动态代理回顾
  12. STEP 7新建梯形图程序,S7-plcsim使用
  13. C++/Qt获取屏幕尺寸和放大比例
  14. 等保2.0多少分合格?70分还是80分呢?
  15. 卸载密码保护的瑞星网络版
  16. 会议摘要怎么写?这篇论文手把手教你
  17. 关于工业4.0和智能制造的总结以及背后的思考
  18. BAT都怎么泡区块链?假醉网易,炮灰百度,闷骚腾讯,假正经阿里
  19. 计算机英语测试,计算机专业英语测试
  20. 再读《谁动了我的奶酪》

热门文章

  1. 小程序自定义搜索框_将自定义搜索提供程序添加到Windows 7以及高级搜索技巧
  2. Latex引用参考文献的5种方式
  3. 月嫂的薪资为啥这么HIGH!
  4. 随机事件及其概率运算
  5. Java代码审计手册(2)
  6. mLife | 朱永官院士提出生态系统微生物组学
  7. 小米社招java面经_小米Java实习一面面经(凉)
  8. 转:探寻问题背后的问题——提问的4个正确姿势
  9. 【python学习笔记】25:scipy中值滤波
  10. stripe国际支付(对接支付宝、微信)