学习NeRF——基于pytorch代码复现的笔记
1 复现笔记
1 创建Dateset
核心函数包括:init
,getitem
,len
-
init
函数负责从磁盘中load指定格式的文件,计算并存储为特定形式 -
getitem
函数负责在运行时提供给网络一次训练需要的输入,以及 groundtruth 的输出例如对NeRF,分别是1024条 rays 以及1024个 RGB 值
SAD法和Siamese神经网络计算图像的视差图
1 视差图
视差图:以左视图视差图为例,在像素位置p的视差值等于该像素在右图上的匹配点的列坐标减去其在左图上的列坐标
视差图和深度图: \(z = \frac{fb}{d}\) 其中 $d$ 是视差, $f$ 是焦距, $b$ 是基线长度
NeRF学习——NeRF-Pytorch的源码解读
学习 github 上 NeRF 的 pytorch 实现项目(https://github.com/yenchenlin/nerf-pytorch)的一些笔记
1 参数
部分参数配置:
-
训练参数:
netdepth
:神经网络的层数。默认值为8netwidth
:每层的通道数。默认值为256netdepth_fine
:精细网络的层数。默认值为8
八点法计算F矩阵与三角测量
1 八点法计算F矩阵(基础矩阵)
基础矩阵用于描述两个视图之间的几何关系
-
基础矩阵:基础矩阵 $F$ 是描述两个视图之间相机投影关系的矩阵。对于两个对应的图像坐标点 $(x, y, 1)$ 和 $(u, v, 1)$ 在两个视图上,基础矩阵满足以下方程:
这个方程即对极约束,描述了图像中对应点的投影关系
CMake+Vcpkg+VS2022配置github上的cmake开源项目外部库
我们以采用 GitHub 上的开源库 cuda-bundle-adjustment 为例,其不能直接用vcpkg进行安装,只能通过cmake编译后链接到VS2022。
将 cuda-bundle-adjustment 库通过 CMake 编译链接到 Visual Studio 2022 步骤操作:
-
克隆存储库:使用 git 命令克隆 cuda-bundle-adjustment
git clone https://github.com/fixstars/cuda-bundle-adjustment.git
DLT算法求解单应性矩阵
DLT算法求解单应性矩阵
原理:
单应性矩阵描述了两个图像之间的投影变换关系,即从一张图到另一张图的变换。
下面是DLT算法的基本原理:
- 构建投影方程: 对于两个图像中的对应点 $(x, y, 1)$ 和 $(u, v, 1)$ ,投影关系可以用齐次坐标表示为 $c \begin{bmatrix} u \ v \ 1 \end{bmatrix} = H \begin{bmatrix} x \ y \ 1 \end{bmatrix}$
NeRF学习——NeRF初步认识
NeRF
NeRF,全名为 Neural Radiance Fields,是一种基于深度学习的三维场景隐式表示和渲染方法
1 NeRF的基本概念
1.1 辐射场表示场景
NeRF的核心思想是通过神经网络训练出来的辐射场对场景进行隐式表示。这种表示方式与传统的使用体素、网格或点云的显式表示不同,
Three.js+pcl.js 实现Web端的点云处理+显示
1 功能实现
在前面我们实现了PCD的加载器的基础上,这次将加上 ==pcl.js== —— 著名的PCL库的web版本,详情见https://pcl.js.org/,来处理我们加载上去的点云。
具体实现如下:
共计 51 篇文章,7 页。