CVPR 2022 | 鲁棒的神经辐射场重建

简介: CVPR 2022 | 鲁棒的神经辐射场重建

1.gif

在新视角合成领域,神经辐射场(NeRF)已经成为重要的方法之一。我们提出了一种鲁棒的神经辐射场表征方案,解决了新视角与训练视角差距较大时效果较差的问题。目前,此技术已被应用于Object Drawer项目中,用于支持淘宝商品的建模业务。



背景


目前基于物理规律的图形学技术已经可以很好的实现照片级的实时渲染,但受到几何模型、材质生成、场景搭建等因素的影响,其生产成本较高。在过去的几年里,神经渲染的相关技术发展迅速。其使用神经网络隐含了3D模型的各种信息,包括材质、形状、光照等,通过输入相机参数即可得到合成的图片结果。


结合体渲染技术,神经辐射场可基于多张图像信息生成3D场景,并能够生成十分逼真的2D图像结果,其质量甚至能接近传统的物理渲染。然而,NeRF的主要限制之一是:其需要很多图片来恢复纹理与几何细节。因此有一些工作主要研究极少量图片或者无监督的神经辐射场重建,其往往假设:仅有一个场景下的几张图片数据,甚至场景中的部分区域从未被观察到。


具体到业务中,我们假设已有图片能很好的描述当前物体(如下图所示,红色代表训练视角,蓝色代表测试视角)。在此条件下,传统NeRF却难以生成高质量的新视角图片,其主要原因在于训练与测试视角差异较大,而NeRF较易过拟合至训练视角,导致最终新视角的效果较差。而图中所示的视角分布,往往是拍摄中的真实情况,尤其目标物体体积较大时,我们无法轻易获得顶端视角的图片数据,低成本的拍摄方案只能提供平视视角下的图像数据。对此,我们提出了一套提升外插视角下图像合成效果的方案(RapNeRF)。


图片.pngimage.gif


方法


RapNeRF(RAy Priors)的核心思想是:假设物体为非透明材质,其表面同一点的颜色在不同视角下具有连续性。据此,我们提出了RRC(random ray casting)以及RA(Ray Atlas)策略。其中,RRC实现了基于视线的数据增强,而RA则提供了良好的先验信息,保证了推理时的良好效果。接下来,我们详细了解下这两个策略的具体内容。


 Random Ray Casting


首先,我们探讨在不同视角下的渲染质量变化。如下图所示,r1,r2是观察同一个表面点v的不同方向的视线,区别在于r1的视线方向在训练分布内,而r2则距离训练分布较远。我们可以大致猜测:与r2接近的视线采样结


果很有可能是不精确的,其主要原因在于其与训练视角的分布差异较大。此外,从下图中可以发现,沿着视线r2进行积分得到的最终结果I(r2)出现了一定的色偏,相对来说I(r1)更为合理。


图片.pngimage.gif



直觉上来说,我们可以利用多视角的连续性来监督未曾出现在训练数据中的视角,这个性质常常被用于无监督的物体重建以及纹理优化。在NeRF中,我们可以简单的生成虚拟相机机位,再基于投影变换生成对应视角下的虚拟图像。通过使用这些新生成的数据进行训练,我们便做到了NeRF上的数据增强。然而,此种方式无法在训练过程中实时地生成NeRF所需要的基于视线的训练数据,必须预先生成图像及位姿且生成的数量受到限制,对此我们进一步优化。


image.gif图片.png


RRC正是能够实时进行数据增强的有效策略。其核心思想是:基于已有视线,直接生成虚拟视线。如下图所示,我们考虑原始训练视线ov,在物体表面与视线的交点v处,建立局部极坐标系,在此坐标系下,将ov进行有限角度的扰动,我们便可以得到随机视线(randomrayov'。通过RRC策略,我们可以基于已有训练数据,实时地生成随机视线,实现在NeRF框架下的数据增强。


图片.pngimage.gif



 Ray Atlas


NeRF以视线方向作为特征来编码光照效果,在训练过程中,我们发现:颜色效果上的偏差很大程度上来源于对视角特征的依赖。因此,一个最简单的想法是直接不使用视角特征,然而这样做往往会造成效果上的下降,尤其当物体反光效果略强时,物体的重建结果在反光处会出现明显的透明,显式化其mesh结果,可以发现会出现明显的凹陷情况。为了避免类似的问题,我们提出了RARay Atlas)策略。


其整体的流程如下图所示,考虑物体表面一点V,其在多个视角下都会被观测到,例如视角i与视角j,两个视角分别对应视角信息图谱R(I_i)R(I_j),通过3D2D的投影变换,我们可以确定VR(I_i)R(I_j)上所对应的视角信息。更一般的,当视角更多时,通过融合的方式,可以确定最终表面点V所对应的合理视角特征。对每个点所包含的视角特征,我们将其存储在3D模型的表面,在推理新视角时,我们便可以直接使用可靠的视角信息用于输出最终的2D渲染结果了。


图片.png



推理时的渲染方程如下:

图片.png


 Training


RapNeRF的训练过程主要分为两步,首先,我们训练较少的epoch,初始化一个NeRF,其主要用于获得当前重建物体的几何信息。然后,我们使用RRC以及RA策略进行第二步的微调,其在训练过程中的策略激活概率分别为0.7以及0.5。在随机视线的产生上,我们限制随机视线与原视线的偏移角度不超过30°。此外,除了NeRF的RGB loss,我们还使用了不透明度loss:

图片.png


实验


最终的实验结果如下,可以看到我们相较于SOTA方案,在虚拟以及真实数据集上都获得了最优结果


图片.png



不同case可视化的效果比较如下,可以看到我们的方法的效果是最为稳定的。


图片.png


 消融实验


RRC的引入避免了色偏问题,而RA则保证了物体重建的细节。


图片.png


测试视角与训练视角相距近、中、远的情况下,PSNR/SSIM/LPIPS指标的变化。


图片.png


结语


在商品重建项目上,高质量、鲁棒的3D重建是项目的核心之一,通过RapNeRF方案,我们保证了多视角鲁棒性,避免了色偏的情况,大大提升了方案的可靠性。未来,我们将会继续研究基于稀疏图像的神经辐射场的重建,感谢大家的关注。


致谢


感谢木剑,属七,友闻以及团队所有成员的支持。同时,这项工作得到了阿里巴巴创新研究计划的支持,在此感谢浙江大学的张远青同学在此项工作中的付出。


团队介绍


大淘宝技术部-Meta技术团队,发布了业内首个基于神经渲染的商品三维重建产品描物坊Object Drawer,探索了NeRF神经渲染从建模到应用的全链路,在建模鲁棒性、纹理细节、模型大小、推理速度、重光照等方面保持业内领先。同时在应用方面,算法生成的图片、视频可以媲美设计师作品,在视频分割、AI搭配、AI布局、户型表示、光影和谐等方面达到业内一流水平。团队在学术方面积极贡献,在ICCV、NeurIPS、KDD、CVPR等顶级学术会议上发表多篇论文,为研究者开放3D-FRONT数据集,获ChinaGraph首届数据奖。为了打造团队的全栈研发能力,我们不断吸引视觉/图形算法、3D/XR引擎等领域的优秀专业人才加入,一起奔向3D新时代

相关文章
|
算法 数据库 计算机视觉
Dataset之COCO数据集:COCO数据集的简介、下载、使用方法之详细攻略
Dataset之COCO数据集:COCO数据集的简介、下载、使用方法之详细攻略
|
数据处理 Python
doccano数据标注平台搭建
基于阿里云服务器ESC示例,搭建doccano数据标注平台
|
数据采集 存储 分布式计算
《离线和实时大数据开发实战》(二)大数据平台架构 & 技术概览2
《离线和实时大数据开发实战》(二)大数据平台架构 & 技术概览2
1205 0
《离线和实时大数据开发实战》(二)大数据平台架构 & 技术概览2
|
10月前
|
人工智能 编解码 算法
ENEL:3D建模革命!上海AI Lab黑科技砍掉编码器,7B模型性能吊打13B巨头
ENEL是由上海AI Lab推出的无编码器3D大型多模态模型,能够在多个3D任务中实现高效语义编码和几何结构理解,如3D对象分类、字幕生成和视觉问答。
285 9
ENEL:3D建模革命!上海AI Lab黑科技砍掉编码器,7B模型性能吊打13B巨头
|
4月前
|
安全
电脑进入bios关闭网卡的技巧
华硕电脑开机显示字符无法进入系统,提示“PXE-MOF:Exiting PXE ROM”,表明电脑正尝试从网卡启动。解决方法为进入BIOS关闭网卡启动功能。开机时连续按F2进入BIOS,切换至“Security”选项卡,找到“I/O Interface Security”设置,选择“LAN Network Interface”并设为“LOCKED”以禁用网卡启动,最后按F10保存退出即可。
606 0
|
10月前
|
中间件 关系型数据库 数据库
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
319 19
|
网络安全 数据安全/隐私保护 Windows
Windows自带的远程桌面连接教程
Windows自带的远程桌面连接教程
2047 0
|
并行计算 PyTorch Docker
LLaMA-Factory 基于docker的大模型多卡分布式微调
LLaMA-Factory是微调工具,包含Dockerfile和train.sh脚本,适用于多卡训练。Dockerfile基于nvidia/cuda:12.1.0镜像,安装Python 3.10、PyTorch 2.2.0、transformers等库。train.sh运行Docker容器,使用accelerate launch进行训练,参数包括模型路径、学习率、优化器设置等。注意使用--shm-size 32G --gpus all,并可选启用unsloth加速。默认配置文件设定了分布式训练和混合精度BF16。
3976 1
|
搜索推荐 数据管理 开发者
合同管理的高级流程设计|学习笔记
快速学习合同管理的高级流程设计
合同管理的高级流程设计|学习笔记
|
JavaScript
Vue实现中文自动匹配首拼音功能
使用Vue实现中文匹配首拼音功能
845 33