标题: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. 2019年上半年收集到的国外人工智能发展详情文章
  2. 现代密码学1.3--古典密码/historical cipher
  3. 罗马数字 java_【leetcode刷题】[简单]13.罗马数字转整数(roman to integer)-java
  4. 批量删除html网页,批量删除.html · panghuamama/Clearly Local - Gitee.com
  5. 计算机错误符号,解析Excel中常见的错误符号以及解决方法
  6. 麻将游戏-协议实现 笔记
  7. Android 系统(219)---Android O上networkAttributes的说明
  8. 浅谈压缩感知(二十二):压缩感知重构算法之正则化正交匹配追踪(ROMP)
  9. 浅谈ES6中的rest参数
  10. __FILE__ 与 $_SERVER['SCRIPT_FILENAME']的区别
  11. python代码测试 vim_使用tmux+vim发送测试代码行的键绑定?
  12. c++ static静态变量、静态函数
  13. 超级搜索术-朱丹-全部笔记整理
  14. 安装Office2007时出现1706错误的解决方案
  15. gimp中文版下载 | GIMP(专业图像处理软件)官方中文版V2.10.30 | GIMP图片编辑器中文版下载
  16. 新手入门吉他买什么好?十年吉他老司机教你如何远离烧火棍,附上靠谱吉他品牌推荐!
  17. Cortex-M3/M4(1)-处理器概述
  18. 【ROS】C++编程
  19. 使用excel进行数据挖掘(4)---- 突出显示异常值
  20. 做自适应网站专业乐云seo_广州网站设计【乐云seo】

热门文章

  1. 30秒让你弄懂pdf怎么翻译,还在犹豫什么
  2. canvas 绘制七巧板
  3. weekofyear跨年问题
  4. FME转换器 文本替换(StringReplacer)
  5. 保证项目如期上线,测试人能做些什么?
  6. 硬链接、软链接、ln命令
  7. centos7 挂载 硬盘 shell 懒人系列-2
  8. python之pil的使用
  9. IO_FILE hack FSOP
  10. 梯度爆炸与梯度消失是什么?有什么影响?如何解决?