NeRF相关技术总结(2020-2022)

NeRF相关技术总结

但当涉猎,见往事耳~

  • NeRF-W NeRF in the Wild (nerf在野外)

    • 解决的问题:静态场景下的移动物体消除;不同时间(天气、光照)影响、不同相机拍摄(内参)不同的样本训练

    • 达到的效果: 1、学习出场景中真正静止的物体 2、生成不同时间段的场景结果 缺点:无法对场景中的动态部分做还原

  • NSFF Neural Scene Flow Fields for Space-Time View Synthesis of Dynamic Scenes (neural scene flow field)

    • 解决的问题:复原场景中移动的物体(拍摄相机可移动)

    • 达到的效果:分离相机与动态物体 1、固定时间,做不同机位下的3d重建 2、固定相机,做连续时间的3d重建(固定视角的新视频生成) 3、二者结合(子弹时间--黑客帝国) 4、将场景中动态部分和静态部分分离(难点,所有图像帧中必须包含静态部分的所有像素)

    • 其他方法:D-NeRF Albert Pumarola - D-NeRF

  • Mip-NeRF mip-NeRF (NeRF-Pro)

    • 与NeRF在原理的区别:

      传统方法:光栅化(rasterization) -> 速度快

      NeRF:光线追踪(ray tracing) -> GPU出现之后,生成图像的方法在视觉角度与光线传播的方向相反,走单条直线(每条射线上的计算结果返回给单个像素点)-> 锯齿状效果(边缘凹凸不平)

      Mip-NeRF:走多条射线(每一组射线的计算结果平均到目标像素点上),多条射线的组合类似圆锥 -> 边缘更加平滑,缺点是吃算力

  • Nerfren https://bennyguo.github.io/nerfren/ 

    • 解决的问题:对场景中反光的部分做分离(拍摄玻璃柜里的画,去除反光)

  • NeRF++ https://github.com/Kai-46/nerfplusplus

    • 解决的问题:大场景下的新视角生成

    • 方法:中心物体和背景分开训练

      缺点:低频部分(如地面)生成效果模糊,场景中较远的背景比较模糊

  • Mip-NeRF 360 https://jonbarron.info/mipnerf360/ (基于NeRF++方法的改良)

    • 达到的效果:

      1、还原效果优于NeRF++

      2、可得到场景的深度,远近关系明确,且物体间边缘锐利清晰

  • NeRF in the Dark (针对夜晚的图片做训练)

    • 难点:图片亮度低、噪声大

    • 解决的问题:

      1、消除噪声、复原场景(让照片变干净)

      2、自由控制新视角图片亮度

      3、可自由调整焦距(将想看到的部分调整得更为清晰)

  • RawNeRF https://bmild.github.io/rawnerf/

ps:小白学习路线

  • OpenCV (先知道3d世界中的点是怎么进入图片像素中的)

    • 2个矩阵(内外参矩阵)

    • opencv morphology(一张图片如何变大变小、去噪...)

  • 从MNIST(最基础的手写数字识别)学起

  • 对cv的哪个大方向(图像分类、语义分割...)感兴趣?

    去学就好了!

  • HyperNeRF https://hypernerf.github.io/ (NSFF的后续工作)

    • NSFF:主要处理场景中刚性物体

    • HyperNeRF:可处理场景中有细微形变的非刚性物体(人脸)

  • Neural Scene Graphs https://light.princeton.edu/publication/neural-scene-graphs/ (NeRF在自动驾驶方面的应用)

    • 解决的问题:照相机移动范围的问题(从小到大);场景中移动物体的建模处理(周围的车辆和整个大背景:各自对应一个NeRF模型)

    • 达到的效果:

      1、可对场景中的物体做任意的编辑

      • 针对该特性的一种应用举例:在同一个场景中增加更多的label(对车辆做平移旋转等等),可增加车辆识别任务多的准确度

      2、同NSFF,可做场景的时空分离

  • Ref-NeRF https://dorverbin.github.io/refnerf/

    • 解决的问题:场景中物体反光的问题(效果非常好,且优于Mip-NeRF)

    • 方法:将NeRF中的入射光线(向量)分解成反射平面的法向量和反射向量

      类似 phone shading (一种物理模型)处理有反光物体的方法

      ambient + diffuse + specular = phone reflection

    • 达到的效果:

      1、对反光程度高的物体重建效果清晰

      2、可自由模拟调整物体表面的粗糙程度(控制反光程度的大小)

ps:可玩一下Unity

  • CityNeRF https://city-super.github.io/citynerf/ (大规模-城市级场景重建)

    • 使用Google Map的3d模型模拟航拍的照片做样本

    • 方法:设置n组航拍高度(规模),利用coarse to fine的思想,先训练最大规模(细节不清晰)的一组图片,训练一段时间后逐步用次规模(细节次模糊-更清晰)的图片做训练,层层完善,可得到最终模型之外还可以的到中间层的模型(不同清晰度的模型)(level of detail)

  • pixelNeRF https://alexyu.net/pixelnerf/ (少样本)

    • 方法:利用样本图片的信息(NeRF训练之后,样本图片就没用了,但此方法会保留),在生成新视角图片的时候会用到样本图片中有用的信息

    • 达到的效果:由于是小样本的开山作,物体周围雾状点明显 ,效果一般般

  • MVSNeRF https://apchenstu.github.io/mvsnerf/ (少样本)

    • 方法:预训练+新场景下少量样本图片(2-3张)

    • 达到的效果:优于pixelNeRF,雾状效果不明显

  • IBRNet https://ibrnet.github.io/ (与MVSNeRF在思想上类似)

ps:以上成果的短板之一是新视角生成的速度相当慢(测试速度慢),不适用于需要实时生成新视角图像的应用(如VR游戏...),慢的原因在于图片的像素点巨大,而每个像素都需要独立计算RGB,且单个像素往往需要计算多次(如一条射线上取样128次)

可能的加速方法:在整个空间中事先把所有采样点的参数(RGB,\sigma)计算好,存在一个3D阵列里,后续运算时则无需做取样操作了,直接按一定顺序在此阵列中取值即可。但由于此方法设计一定程度上的离散化(discretization)操作,故在图像质量方面会稍微逊色于原方法

  • NVSF(Neural Sparse Voxel Fields) https://lingjie0206.github.io/papers/NSVF/ (加速生成新视角,但距今比较久远了)

    • 方法:与上述方案类似

    • 达到的效果:很大程度上加快的测试速度(50-200倍于原始NeRF),同时优化了生成新视角的图片质量

  • PlenOctree https://alexyu.net/plenoctrees/ (ps:作者 Alex Yu 一个大学生,发许多文章的同时也会使用CUDA作加速手段,使自己的成果更加耀眼)

    • 方法:与上述方案类似

  • KiloNeRF https://github.com/creiser/kilonerf (源码中亦包含了cuda加速的部分)

    • 方法:与上述方案类似,与上面两种方案不同的是,前者与原始NeRF一样,空间中的所有采样点只经过一个大的MLP(该MLP负责空间所有采样点的RGB和\sigma的参数);而后者是将空间“切块”后,每一个小块中包含一个小的MLP

    • 达到的效果:测试速度上优于原始NeRF 2*10^3​​ 倍左右

  • NeRF-- https://nerfmm.active.vision/ (输入只有图片,无需相机位姿(colmap))

    • 解决的问题:规避使用colmap计算的误差问题,在训练NeRF的同时得到输入图片的相机位姿

  • BARF https://chenhsuanlin.bitbucket.io/bundle-adjusting-NeRF/ (bundle-adjusting-NeRF)

    • 解决的问题:输入资料无需相机位姿

    • 方法:将bundle-adjusting(slam中常用到的技术)应用在NeRF上,

    • 达到的效果:比NeRF--稍微好些(coarse-to-fine,先找个大概的位姿,再逐步修正)

  • NDF https://yilundu.github.io/ndf/ (机器人应用相关)

    • 解决的问题:让机械臂抓取一个杯子

    • 方法:先手动控制机器人(给机器人做5-10遍示范,训练次数很少),再让机器人去抓不同的杯子(杯子的姿态也可以不同,即使训练过程中没有这种情况),也可以达到预期的效果

    • 与NeRF不同的是,该方案重建的结果是(杯子的)3d点云,重建过程中会得到物体某些点的特征向量,从而得出需要抓取的精确位置

ps:可详细参考 awesome-NeRF/awesome-NeRF: A curated list of awesome neural radiance fields papers (github.com)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值