首页 > 编程语言 >I. NeRF及其衍生算法的初步探究

I. NeRF及其衍生算法的初步探究

时间:2024-05-28 16:11:19浏览次数:24  
标签:场景 Neural Fields 渲染 算法 探究 NeRF

视频链接:【AI講壇】NeRF與它的快樂夥伴們 [Neural radiance fields]

NeRF 的主要优势:能够正确处理反光、估算的深度较准、等等。

一、nerf in the wild

Google Research、未开源

NeRF in the Wild: Neural Radiance Fields for Unconstrained Photo Collections. CVPR 2021 (Oral)

该算法解决了以下两个问题:
(1)如果拍摄环境中有很多“变化物”,比如游客等,自然会对最后的渲染结果产生影响;
(2)不同时刻的光线、拍摄设备导致的图像色彩差异等,都会对目标物的拍摄结果产生影响;

该算法可以除去“变化”的元素(比如移动的游客),并最终呈现了:从早到晚、各个时间段的建筑物的渲染效果。

二、Neural Scene Flow Fields

Adobe、开源

Neural Scene Flow Fields for Space-Time View Synthesis of Dynamic Scenes

特点:拍摄时相机、目标物都在动,该算法可以单独分离出二者,实现:
(1)固定视角,渲染人物动态效果(类似实现 Bullet Time 的特效),即Fixed view, time interpolation;
(2)固定目标物的某一帧进行渲染,最后的效果和 NeRF 类似,即 Fixed time, view interpolation;
(3)相机和目标物都不固定,即 space-time interpolation;

具体效果可以看项目主页上的视频,很直观。

三、D-NeRF

开源

D-NeRF: Neural Radiance Fields for Dynamic Scenes

使用单相机进行重建,并且纹理比较好。

不足:只对 CG 场景做了测试,没有对实际场景做测试。

四、Mip-NeRF

Mip-NeRF: A Multiscale Representation for Anti-Aliasing Neural Radiance Fields

解决了问题:采用 Ray Tracing 以在光线上采样会导致最后的 Mesh 结果锯齿化。

Mip-NeRF 算法采用了”圆锥状“光线,并进行 Anti-aliased。

五、NeRFReN

NeRFNeR:Neural Radiance Fields with Reflections

该算法实现了:把场景中的反射物带来的反射成像(比如镜子的成像),完全去掉,最后只呈现没有反光的场景结果。此外还实现了只对反射成像进行重建,或者融合其他场景作为反射成像(还是很神奇的)。

六、NeRF plus plus

创新点:对较大规模的场景(包括近、远两部分)进行重建。做法是分成两个神经网络重建,然后合并。

改进:Mip-NeRF 360

Mip-NeRF 360: Unbounded Anti-Aliased Neural Radiance Fields

借鉴两段式这种重建的思路,提升上面算法的效果。

七、NeRF in the dark

Google Research,未开源

NeRF in the Dark: High Dynamic Range View Synthesis from Noisy Raw Images

针对夜晚的图片进行训练,尝试克服图片的噪声,实现了控制场景的亮度、可以 Focus on 不同的目标物体(更换成像主体)。

八、hyperNeRF

创新:
拍摄的场景变复杂(非刚体,比如突然张嘴、掰饼干这种变化比较大的变化)

之前的工作:Nerfies

九、Neural scene graphs

和自动驾驶相结合。自动驾驶场景中,车子一直往前开,车子所看的范围的比较大。利用 KITTI 数据集的 box ,每个 box 都有它自己的 NeRF 模型。

十、refNeRF

进一步增强反射效果。把原本视角的向量 进一步分为:物体表面法向量 和反射向量 。做到了更好的反射的效果。

acb2282834986b6355dc9f04fd873af4.png
参考 phong shading 把物体的渲染分为:Diffuse + Specular = Phong Reflection. 也就是物体原本的颜色和反光共同构成了最后的结果。

b45359730db69c4172b15ef8ce5dd1e7.png
真实物理世界都是比较 rough 的平面,所以得到的反射结果也是各种各样的。

十一、city nerf

利用 Google 的卫星云图,从高到低,逐渐训练,细节逐渐增多,即 Level of details

但是也受限于尺度太大,所以最后的细节也不是那么清晰。

1. 如何减少所用的图片。

  • pixelNeRF: 从极少数图片(3张)中渲染。
  • mvsNeRF: 依旧是 3 张图像,生成的效果比 PixelNeRF 更好的效果;
  • IBRNet: 和 mvsNeRF 思想差不多,只不过实现有点不同;

2. 提高生成速度。
NeRF 为什么慢?对每个像素(4K 的图像有上千万的像素)的光线都要进行采样,而且要采几百个点。

Unity 加速:把光线上的采样点的结果保存到 3D 矩阵中,这样在渲染时直接用训练得到的结果,就不用再重新计算。

4ffd3d053c3139880e82ba39934f6176.png
neural sparse Voxel Fields(NSVF): 把整个空间细分层很小的 3D 小方块,并且把没有包含任何物体的小方块去掉,得到加快速度、提升最后渲染效果,一举两得的效果。

6f893df5d2ebaa67064a05dd76b181fc.png
PlenOctrees: 同样把 3D 空间细分化。会发现本体的部分更加细分。作者同时也实现了 Volume rendering: 最开始运用在医学侧面,从外到内、人体器官的切面。作者 Alex Yu,也挺厉害的。

kilonerf: 每个小格子都有自己的 DNN 网络,不让一整体 DNN 负责所有格子的计算;而且每个小格子的计算量就很小了,从而极大的加快了速度。并且:这个都是作者自己拿 CUDA 写的,很 NB !

NeRFmm: 提前不需要使用 COLMAP 进行标定,直接输入图片,同时学习相机的位姿和渲染。但是尺度可能学不到。
Barf:也是同时优化位姿,先求一个大概的位置,然后再细化(coarse to fine)

机器人上 NeRF 的应用:
Neural Descriptor Fields: SE(3). ndf_robot
流程:5-10次,学习抓取杯口朝上的杯子;学会了抓取不同方向的杯子。比监督学习强多了。
重建物体的 3D 点云,学习抓取点的特征点。学习抓取点附近的一群点的特征。

标签:场景,Neural,Fields,渲染,算法,探究,NeRF
From: https://www.cnblogs.com/7ytr5/p/18218234

相关文章

  • 【SCAU操作系统】实验二页面置换算法的模拟实现及命中率对比python源代码及实验报告参
    一、课程设计目的通过请求页式管理方式中页面置换算法的模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理中的页面置换算法。二、课程设计内容模拟实现OPT(最佳置换)、FIFO和LRU算法,并计算缺页率。三、要求及提示1、首先用随机数生成函数......
  • yolo 算法 易主
    标题:YOLOv10:Real-TimeEnd-to-EndObjectDetection论文:https://arxiv.org/pdf/2405.14458et=https%3A//arxiv.org/pdf/2405.14458.zhihu.com/?target=https%3A//arxiv.org/pdf/2405.14458源码:https://github.com/THU-MIG/yolov10分析这篇论文介绍了一种新的实时端到......
  • 向量数据库HNSW算法
    向量数据库构建好embedding后,需要通过相关算法进行检索,它常用到的相似性搜索算法有HNSW,HNSW算法是NSW算法改进而来,它是属于ANN算法中不同类别的图类别中的一种。    节点与节点之间的连接方式可以形成3类图:正则图,随机图,正则和随机结合图(小世界),如下图1:1.正则图    在......
  • 农村高中生源转型期提升学生二次函数建模能力的课堂探究
      在新课程下,培养学生的数学核心素养是高中数学课堂教学的根本任务。其中的建模思想是数学核心素养培养的一个基本指标,是学生正确认识数学知识内在本质与原理的重要思维工具。通过在数学课堂教学中有效地应用建模思想,主要的应用意义体现在如下几个方面:其一,通过在数学课堂中融入......
  • 基于Python的量子遗传算法实现(免费提供全部源码)
    下载地址如下:基于Python的量子遗传算法实现(免费提供全部源码)资源-CSDN文库项目介绍项目背景随着量子计算和人工智能技术的迅猛发展,量子遗传算法(QuantumGeneticAlgorithm,QGA)作为一种结合量子计算和经典遗传算法的优化方法,受到了广泛关注。传统遗传算法在处理复杂优化问......
  • 分布式系统中的智能缓存:有界一致性哈希算法详解
    普通hash算法​在分布式系统中,普通哈希算法通常用于确定数据存储在哪个节点上。例如,如果我们有3个节点,我们可以通过计算hash(key)%3来确定一个给定的key应该存储在哪个节点上。然而,这种方法存在一个显著的问题:当节点数量发生变化(增加或减少)时,会导致大量的缓存数据失效......
  • 基础算法
    升序算法base64编码tea加密算法voidEncrypt(long*EntryData,long*Key){//分别加密数组中的前四个字节与后4个字节,4个字节为一组每次加密两组unsignedlongx=EntryData[0];unsignedlongy=EntryData[1];unsignedlongsum=0;unsignedlongdelta=0x9E377......
  • 得到杨辉三角某行数据算法优化
    引导注意:最佳方案在文章最后,中间为思考过程最朴实的方法:        我们将这些数据的第一行称作为杨辉三角的第0行,每行的第一个数据称作为第0个数据,以方便之后的算法        根据杨辉三角的基础性质,即第row行index个数据等于第row-1行第index数......
  • 力扣算法之1050. 合作过至少三次的演员和导演
    题解actor_id和director_id,类似一个坐标,只要出现三次或者三次以上就打印出来我的解SELECTactor_id,director_idFROMActorDirectorGROUPBYactor_id,director_idHAVINGCOUNT(1)>=3我的解注解同时分组,两个出现次数大于等于3的就是符合的,看了下,其他的思路和这个......
  • 代码随想录算法训练营第第20天 | 654.最大二叉树 、617.合并二叉树 、700.二叉搜索
    654.最大二叉树又是构造二叉树,昨天大家刚刚做完中序后序确定二叉树,今天做这个应该会容易一些,先看视频,好好体会一下为什么构造二叉树都是前序遍历题目链接/文章讲解:https://programmercarl.com/0654.最大二叉树.html视频讲解:https://www.bilibili.com/video/BV1MG411G7ox......