利用多光照信息的单视角NeRF算法S^3-NeRF,可恢复场景几何与材质信息

目前图像 3D 重建工作通常采用恒定自然光照条件下从多个视点(multi-view)捕获目标场景的多视图立体重建方法(Multi-view Stereo)。然而,这些方法通常假设朗伯表面,并且难以恢复高频细节。

另一种场景重建方法是利用固定视点但不同点光源下捕获的图像。例如光度立体 (Photometric Stereo) 方法就采用这种设置并利用其 shading 信息来重建非朗伯物体的表面细节。然而,现有的单视图方法通常采用法线贴图(normal map)或深度图(depth map)来表征可见表面,这使得它们无法描述物体背面和被遮挡的区域,只能重建 2.5D 场景几何。此外,法线贴图无法处理深度不连续的情况。

在最近的一项研究中,来自香港大学、香港中文大学(深圳)、南洋理工大学、MIT-IBM Waston AI Lab 的研究者们提出了通过利用单视图多光源(single-view,multi-lights)图像,重建完整 3D 场景的工作。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

图片

论文链接:https://arxiv.org/abs/2210.08936论文主页:https://ywq.github.io/s3nerf/代码链接:https://github.com/ywq/s3nerf

与现有基于法线贴图或深度图的单视图方法不同,S3-NeRF 基于神经场景表征(neural scene representation),同时利用场景中的 shading 和 shadow 信息来重建整个 3D 场景(包括可见 / 不可见区域)。神经场景表征方法使用多层感知器 (MLP)对 连续 3D 空间进行建模,将 3D 点映射到如密度、颜色等的场景属性。尽管神经场景表征在多视图重建和新视图合成方面取得了重大进展,但其在单视图场景建模中的探索较少。与现有依赖多视图照片一致性的基于神经场景表征的方法不同,S3-NeRF 主要通过利用单视图下的 shading 和 shadow 信息来优化神经场。

我们发现简单的在 NeRF 中直接引入光源位置信息作为输入无法重建场景的几何和外观。为了更好地利用捕获的光度立体图像,我们使用反射场(reflectance field)对表面几何和 BRDF 进行显式建模,并采用基于物理的渲染来计算场景 3D 点的颜色,并通过立体渲染得到该光线(ray)对应的二维像素的颜色。同时,我们对场景的可见度(visibility)进行可微建模,通过追踪 3D 点到光源之间的光线,计算该点的可见度。然而,考虑一条光线上所有采样点的可见性计算成本较大,因此我们通过计算光线追踪得到的表面点的可见性来优化阴影建模。

图片

基于神经反射场的场景表征

我们采用类似 UNISURF 的 occupancy field 来表征场景几何。UNISURF 通过 MLP 将 3D 点坐标及视线方向映射到该点的 occupancy 值和颜色,并通过立体渲染得到像素的颜色,

图片

Nv为每条射线上采样点的数量。

为了有效利用光度立体图像中的 shading 信息,S3-NeRF 显式地对场景的 BRDF 进行了建模,并使用基于物理的渲染得到 3D 点的颜色。同时我们对场景 3D 点的光可见性进行建模以利用图像中丰富的阴影线索,并通过下式得到最后的像素值。

基于物理的渲染模型

我们的方法考虑了非朗伯表面和空间变化的 BRDF。点 x 在近场点光源(pl, Le)下从视线方向 d 观测得到的值可以表示为

图片

其中,我们考虑到点光源的光线衰减问题,通过光源 – 点之间的距离计算入射该点处的光照强度。我们采用考虑漫反射和镜面反射的 BRDF 模型

图片

通过球形高斯(Sphere Gaussian)基的加权组合来表示镜面反射率

图片

阴影建模

阴影在场景几何重建中是至关重要的其中一个线索。图中的三个物体在正视图中具有相同的形状和外观,但其背面却是形状各异。通过不同光照下产生的阴影,我们可以观察到其阴影的形状各不相同,这些反应了正视图中不可见区域的几何信息。光线通过映射在背景中的阴影对物体的背面轮廓产生了一定的约束。

图片

我们通过计算 3D 点 – 光源之间的 occupancy 值来反映该点的光可见度

图片

其中,NL是该点 – 光源线段上采样的点的数量。

由于计算像素点沿光线采样的所有 Nv 点的可见度计算成本较大(O (NvNL)),现有的方法有的采用 MLP 直接回归点的可见度(O (Nv)),或是得到场景几何后预先提取表面点(O (NL))。S3-NeRF 则通过 root-finding 定位的表面点以在线方式计算该像素的光可见度,并通过下式表示像素值。

图片

图片

场景优化

我们的方法不需要对阴影进行监督,而是依靠图像的重建 loss 来进行优化。考虑到单视角下没有其他视角带来的额外约束,如果采用类似 UNISURF 逐渐缩小采样范围的采样策略,将会导致模型在采样间隔减小后开始退化。因此,我们采用联合立体渲染和表面渲染的策略,利用 root-finding 定位得到的表面点渲染颜色并计算 L1 loss。

图片

实验结果

与神经辐射场方法的比较

我们首先与基于神经辐射场的两个 baseline 方法进行比较(由于任务不同,我们在其颜色 MLP 中引入光源信息)。可以看到它们无法重建场景几何,也无法准确生成新光照下的阴影。

图片

与单视角形状估计方法的比较

在与现有单视图法线 / 深度估计的方法比较中可以看到,我们的方法在法线估计和深度估计上都取得了最好的结果,并且能够同时重建场景中可见与不可见的区域。

图片

不同背景的场景重建

我们的方法适用于各种不同背景条件的场景。

图片

新视图渲染、改变光照与材料编辑

基于神经反射场的场景建模,我们成功解耦了场景的几何 / 材质 / 光照等,因而可以应用于新视图渲染、改变场景光照、材料编辑等应用。

图片

真实拍摄场景的重建

我们拍摄了三个真实场景来探索其实用性。我们将相机位置固定,利用手机的手电筒作为点光源(环境光源关闭),手持手电筒随机移动以捕捉不同光源下的图像。该设置无需光源校准,我们应用 SDPS‑Net 得到光源方向的粗略估计,并粗略估计相机 – 物体及光源 – 物体的相对距离来初始化光源位置。光源位置在训练过程中随场景的几何和 BRDF 联合优化。可以看到即便是较为随意的数据捕捉设置(没有对于光源的校准),我们的方法仍能较好的重建 3D 场景几何。

总结

S3-NeRF 通过利用单视图多个点光源下拍摄的图像来优化神经反射场以重建 3D 场景几何和材质信息。通过利用 shading 和 shadow 线索,S3-NeRF 能有效恢复场景中可见 / 不可见区域的几何形状,实现单目视角下完整场景几何 / BRDF 的重建。各项实验表明我们的方法能够重建各种复杂几何 / 材质的场景,并能应对各种几何 / 材质的背景以及不同的光照数量 / 光源分布。

以上就是利用多光照信息的单视角NeRF算法S^3-NeRF,可恢复场景几何与材质信息的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/563248.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月10日 02:10:56
下一篇 2025年11月10日 02:11:51

相关推荐

  • 利用纯CSS创建 3D 穿梭效果(附代码)

    怎么创建3d 穿梭效果?实现一种加速动画效果?下面本篇文章就来给大家介绍一下如何使用纯css来轻松搞定它!希望对大家有所帮助! 周末在家习惯性登陆 Apex,准备玩几盘。在登陆加速器的过程中,发现加速器到期了。 我一直用的腾讯网游加速器,然而点击充值按钮,提示最近客户端升级改造,暂不支持充值(这个操…

    2025年12月24日 好文分享
    000
  • 纯CSS3实现3d立体文字效果(源码分析)

    本篇文章带大家了解一下3d文字效果的实现原理,没有考虑代码的复用性和可移植性,有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 1.单单纯纯的效果一 为了简化操作,我们使用和上一篇文章《纯CSS3文字效果推荐》一样的文档结构,后面的效果大差小不差,也就不再列出。 前端开发whqet …

    2025年12月24日 好文分享
    000
  • 纯CSS3实现3D翻转效果的代码示例

    本篇文章给大家带来的内容是关于纯CSS3实现3D翻转效果的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 作为前端开发人员的必修课,CSS3能带我们完成许多基本动效,本期我们将用CSS3实现hover翻转效果~ 第一步非常简单,我们简单画1个演示方块,为其添加transit…

    2025年12月24日 好文分享
    000
  • CSS3 3D旋转rotate效果的使用介绍

    这篇文章主要为大家详细介绍了css3 3d旋转rotate效果实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了CSS3 3D旋转rotate效果实例,供大家参考,具体内容如下 效果图: 示例代码 立即学习“前端免费学习笔记(深入)”; 3D旋转的Demo #experim…

    2025年12月24日 好文分享
    000
  • 如何利用CSS3实现3D翻书效果

    这篇文章主要介绍了css3实现3d翻书效果,基于css3新属性animation及transform实现类似翻书效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 先上效果图:(样式有点丑,可以忽略一下下,效果出来了就好,后期加到其他项目中方便更改0.0) 类似翻书效果,原本的意思是使用JS来控…

    2025年12月24日
    000
  • 关于css过渡和3D效果的简单实现

    下面为大家带来一篇css过渡+3d效果的简单实现。内容挺不错的,现在就分享给大家,也给大家做个参考。 css过渡+3D效果的简单实现 guodu#wp{ border: 1px solid red; width: 500px; height: 500px; background-color: pin…

    2025年12月24日
    000
  • 用css3简单的制作3d半透明立方体图片详解

    new document //css部分html{font-size:62.5%;}img{width:300px;height:300px;} #stage{//搭建一个舞台margin-top:200px;margin-left:auto;margin-right:auto;width:300p…

    好文分享 2025年12月23日
    000
  • 教你玩转CSS3的3D效果

    css3的3d起步 要玩转css3的3d,就必须了解几个词汇,便是透视(perspective)、旋转(rotate)和移动(translate)。透视即是以现实的视角来看屏幕上的2d事物,从而展现3d的效果。旋转则不再是2d平面上的旋转,而是三维坐标系的旋转,就包括x轴,y轴,z轴旋转。平移同理。…

    2025年12月23日 好文分享
    000
  • 如何用HTML插入标签云组件_HTML CSS3变换与随机颜色生成算法

    使用HTML构建标签结构,CSS3添加旋转与过渡效果,JavaScript生成随机HSL颜色并设置字体大小,实现动态交互的标签云组件。 要在网页中实现一个动态的标签云组件,结合 HTML、CSS3 变换和随机颜色生成算法,可以按照以下步骤操作。这个组件不仅能提升页面视觉效果,还能通过色彩和旋转增加交…

    2025年12月23日
    000
  • 如何在Go Gin应用中集成前端JavaScript模块(如Sentry)

    本文探讨了在Go Gin框架下,通过HTML模板服务前端页面时,如何有效集成JavaScript模块(如Sentry)。针对浏览器不直接支持Node.js模块导入语法的问题,文章详细阐述了利用CDN引入Sentry SDK的解决方案,并提供了具体的代码示例,帮助开发者实现前端错误监控功能,避免了复杂…

    2025年12月23日
    000
  • html官网浏览入口_html网站设计免费平台

    html官网浏览入口在https://www.codepen.io,该平台支持实时预览代码、创建Pen项目、Fork开源示例,可添加外部资源,具备点赞评论收藏等社区互动功能,设有挑战活动与作品集分类,开放API接口,界面简洁适合初学者,在线编写无需配置环境,支持多种预处理器和响应式测试。 html官…

    2025年12月23日
    000
  • html如何修改日期样式

    在html中,可以使用“::-webkit-datetime-edit”伪元素选择器来修改日期格式,只需要用该选择器选中元素,在设置具体样式即可,具体语法为“::-webkit-datetime-edit{属性:属性值}”。 本教程操作环境:windows7系统、CSS3&&HTML…

    2025年12月21日
    100
  • 单选框的type属性值为什么

    单选框的type属性值为“radio”。html type属性可以规定要显示的输入框“”元素的类型;值为“radio”时显示为单选框、“checkbox”时显示为复选框、“select”时显示为下拉式选框等等。 本教程操作环境:windows7系统、HTML5版、Dell G3电脑。 在HTML中,…

    2025年12月21日
    000
  • HTML中type是什么意思

    在HTML中,type是类型的意思,是一个标签属性,主要用于定义标签元素的类型或文档(脚本)的MIME类型;例在input标签中type属性可以规定input元素的类型,在script标签中type属性可以规定脚本的MIME类型。 本教程操作环境:windows7系统、html5版、Dell G3电…

    2025年12月21日
    000
  • HTML中ul标签如何去掉点?HTML无序列表的样式实例解析

    本篇文章主要讲述的是关于html中的ul标签的默认小点给取消掉,还有关于html的无序列表ul标签的样式解释,给出了ul标签中的type属性三种值的介绍。现在就让我们一起来看本篇文章吧 首先这篇文章一开始我们就开始介绍在html中是怎么把ul标签的点给去掉的: 大家应该都使用过ul无序列表标签,ul…

    2025年12月21日 好文分享
    000
  • html中的ol标签如何去掉标号呢?标签的使用方法总结

    本篇文章介绍了html的ol标签是怎么去掉序号标号的,这里还有代码的详细解释,还有介绍了关于html ol有序列表标签如何更改序号,下文介绍了三种序号,大家也可以自己去想填写怎样的序号。现在来看这篇文章吧 一、我们先看看html中的ol标签是如何去掉标号的呢: 我们都知道html的ol标签是个有序列…

    2025年12月21日 好文分享
    000
  • HTML ul标签的什么意思?HTML ul标签的作用详解

    本篇文章主要的为大家讲解了关于html ul标签的三种重要的用法,还有关于html ul标签的解释,包含li标签的还有type属性对ul标签的使用情况,好了,下面大家一起来看文章吧 首先让我们先来解释一下HTML ul标签的意思: ul标签定义的是表格当中无序列表,表格当中的无序列表都是在 标签之中…

    2025年12月21日
    000
  • HTML5获取设备信息

    这篇文章主要介绍了关于HTML5获取设备信息,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 Device模块管理设备信息,用于获取手机设备的相关信息,如IMEI、IMSI、型号、厂商等。通过plus.device获取设备信息管理对象。 1、属性 1.1、imei: 设备的国际移动设备…

    好文分享 2025年12月21日
    000
  • dw查看文件头部信息的教程

    dreamweaver中的网页有两个组成部分,一个是 ,一个是,其中就是文件头部信息。在这里面可以是实现刷新、插入关键字、说明等功能,该怎能查看头部信息呢?下面我们就来看看详细的教程。 软件名称: Macromedia Dreamweaver MX 2004 官方简体中文专业版 软件大小: 63.2…

    2025年12月21日 好文分享
    000
  • javascript框架和库是什么_如何选择React、Vue或Angular?

    JavaScript框架与库分别提供按需调用的功能集合和约束性开发结构;React是UI组件库,生态灵活但需自行整合工具;Vue渐进式易上手,兼顾原型与工程化;Angular是全功能TypeScript框架,适合强规范企业级项目。 JavaScript框架和库是封装好的代码集合,用来简化前端开发——…

    2025年12月21日
    000

发表回复

登录后才能评论
关注微信