🗒️CV作业-NeRF-based 3D Reconstruction
00 分钟
2023-11-18
2024-1-5
type
status
date
slug
summary
tags
category
icon
password

基于NeRF的三维重建

任务要求

任务要求如下:
  1. 使用你的设备拍摄一个真实世界场景的一组图片
  1. 使用结构从运动(SfM)工具如Colmap校准这些图片,获得对应的相机姿态
  1. 运行基于NeRF的模型,根据你准备的图片和姿态重建场景
  1. 将重建结果转换为3D网格(ply或obj格式)
  1. 在报告中详细描述上述过程,包括:
      • 你选择的场景以及数据准备方式。
      • 你所依据的NeRF项目及你对其的理解。
      • 你为适应自己的数据调整的超参数以及为什么。
      • (可选)除超参数调整之外,你对代码库进行了哪些修改以提高重建质量。
评估标准包括三个层次:
  1. 基础层次:物体级场景的几何结构重建
  1. 中级层次:物体级场景的几何结构和外观重建
  1. 高级层次大型或无界场景的几何结构(和外观)重建。由于NeRF最初是为物体级场景设计的,因此在大型或无界场景中应用需要额外工作,例如可能需要用于大规模场景的更快NeRF代码库,以及特定坐标的映射。
 
💡
流程: 1. 围着某一物体拍摄多张图片 2. 通过Colmap从图片张获取相机位姿(其实Colmap中是有MVS的一些方法,使得点云由sparse变为dense的,也可以用泊松分布等将空缺的地方补全) 3. 基于NeRF将图片结合相机位姿生成3D模型 4. 使用某些方法外观重建?

学习历程

采集数据

notion image

了解Colmap的原理和使用

【2023/11/18】
COLMAP 是一种通用的运动结构 (SfM, Structure-from-Motion) 和多视图立体 (MVS, Multi-View Stereo)的pipeline,具有图形和命令行界面。它提供了用于重建有序和无序图像集合的广泛功能。
操作:
  1. 下载Colmap GUI界面:
  1. 参考https://zhuanlan.zhihu.com/p/362701018执行后续步骤(注意不要出现中文路径)
    1. notion image
      这里是NeRF的数据集的链接
  1. 参考https://www.jianshu.com/p/02c3d3cce99b在linux上配置,失败了

NeRF的原理

notion image
notion image
notion image

InstantNGP原理

notion image
notion image

Gaussian Splitting原理

notion image
体渲染:相机光心发出穿透像素的采样射线,采样射线上取采样点,采样射线上的一定范围内的点被取出做插值,得到采样位置的特征表达,再去解码,得到体密度和RGB,之后去堆叠射线上的点,得到最后的点
点中存储物理含义更加明确的3D高斯,不用抽象特征(Point-NeRF),训练更容易收敛,使用Splitting,点云的铆钉作用更强
【论文讲解】用点云结合3D高斯构建辐射场,成为快速训练、实时渲染的新SOTA!_哔哩哔哩_bilibili
1 想要加交流群或者需要ppt的小伙伴,可以关注微信公众号“布尔艺数”,回复 ym2 想要科研1v1定制辅导的同学,可以戳 https://b23.tv/lcODipx 或者个人空间置顶动态,公众号里也可以获取链接!本期视频主要内容:3D Gaussian Splatting for Real-Time Radiance Field Rendering本文从已有的点云模型出发,以每个点为中心建立可, 视频播放量 22200、弹幕量 130、点赞数 854、投硬币枚数 744、收藏人数 1330、转发人数 376, 视频作者 意の茗, 作者简介 研究生在读。主要方向:SLAM,三维重建,NeRF。感谢关注,一起进步!,相关视频:论文分享-3D Gaussian Splatting for Real-Time Radiance Field Rendering,NeRF没落?3D Gaussian崛起!,三维重建技术:3D Gaussian Splatting,这是3D的未来吗?,吹爆!这可能是B站最系统的(三维点云+三维重建)实战课程了,不愧是上海交大跟腾讯联合出品!完全自学巨简单,还学不会我给磕一个!人工智能|深度学习|计算机视觉,虚幻引擎 5 分步教程:初学者的 3D 高斯喷溅技术,3D Gaussian Splatting本地部署【windows系统免环境配置】,三维高斯辐射场(Gaussian Splatting)是可以很逼真的重建现实世界场景的三维模型,视频使用了3D Gaussians插件将数据带到了UE5引擎中.,NeRF三维重建有手就行GUI使用教程,三维重建哪家强 Photogrammetry /NeRF/Gaussian Splatting,3分钟内解释 3D 高斯泼溅!
【论文讲解】用点云结合3D高斯构建辐射场,成为快速训练、实时渲染的新SOTA!_哔哩哔哩_bilibili

Splatting的关键步骤

  1. 数据点的表示:在Splatting中,每个体积数据点被表示为具有一定形状和大小的斑点。这些斑点可以是简单的几何形状,如圆形、方形或椭圆形。
  1. 投影到视图平面:这些斑点被投影到视图平面上。这一步骤涉及计算每个斑点在视图平面上的位置和大小。
  1. 混合与合成:投影到视图平面上的斑点会根据它们的颜色和不透明度与背景和其他斑点混合。这个过程中,斑点之间可能会重叠,形成最终的图像。
  1. 着色和光照处理:为了增加真实感,Splatting技术还可以结合着色和光照模型,以模拟光线如何在场景中传播和反射。

Luma AI

notion image

NeRF的使用及过程中遇到的问题

这两个仓库的instant-ngp可以更快的跑出结果:
torch-ngp
ashawkeyUpdated Jan 10, 2024
(pytorch实现版本)(原仓库版本),其对应的论文:Instant Neural Graphics Primitives with a Multiresolution Hash Encoding
ngp_pl
kwea123Updated Jan 10, 2024
最终还是选用了nVidia的instant-npg作为我们实现的代码仓库,在autodl云服务器上部署配置
注意过程中的坑:
  • 【克隆】克隆的时候一定要recursive,不要直接https,这样才有可能make好
    • 【OpenGL】过程中会使用到OpenGL库相关的内容,输入以下指令进行OpenGL的安装:
      • 【CMake】Autodl中自带的cmake版本与要求的版本不一样,可以使用如下的方式,在命令行中输入如下指令,进行cmake版本配置:
        • 之后出现的文本一直按Enter进行下移,直到出现选项,第一个选y,第二个选n

      最终提交演示

      notion image

      评论
      Loading...