神经辐射场 (NeRF) - 下 NeRF: 网站: https://www.matthewtancik.com/nerf 论文:https://arxiv.org/pdf/2003.08934.pdf 代码:https://github.com/bmild/nerf 参考文献: NeRF:用深度学习完成3D渲染任务的蹿红 【NeRF论文笔记】用于视图合成的神经辐射场技术 NeRF的数学推导 NeRF论文阅读 基本流程 NeRF的输入是一个五维向量: (物体)空间点的位置 [katex]\mathbf{x}=(x,y,z)[/katex] 和 (相机)观测方向 [katex]\mathbf{d}=(\theta, \phi)[/katex]。输出是体密度(volume density, [katex]\sigma[/katex],可以理解为透明度)和基于观测角度的物体的空间点色彩 [katex]\mathbf{c}=(r,g,b)[/katex]。 通过对每一束从相机射出的光线,计算途径空间点的色彩 [katex]\mathbf{c}[/katex] 和体密度 [katex]\sigma[/katex]。然后基于获得的空间点的色彩和体密度,进行体素渲染 (Volume Rendering)得到预测的像素值。 NeRF的网络模型(以下简称 NeRF-Model) 实现的功能实际上是 [katex]F_{\Theta}:(\mathbf{x}, \mathbf{d}) \rightarrow(\mathbf{c}, \sigma)[/katex]。实现了从 【空间点位置 + 观测角度】 到 【空间点色彩+体密度】 的映射。 辐射场体素渲染 辐射场体素渲染(Volume Rendering with Radiance Fields)…
对极几何(Epipolar Geometry) 参考文献: 对极几何与基本矩阵 视觉SLAM 十四讲——对极约束求解相机运动(2D-2D) 视频(【高翔】视觉SLAM十四讲):https://www.bilibili.com/video/BV16t411g7FR?p=6 视觉SLAM十四讲 PDF 目的 我们希望求取两帧图像[katex]I_1[/katex]和 [katex]I_2[/katex] 之间的运动,设第一帧到第二帧的运动为R; t。两个相机中心分别为[katex]O_1[/katex];[katex]O_2[/katex]。现在,考虑I1 中有一个特征点[katex]p_1[/katex],它在[katex]I_2[/katex] 中对应着特征点[katex]p_2[/katex]。我们晓得图像上这两个点对应的是空间中的同一个点[katex]P[/katex]。即 [katex]p_{1}=K P, \quad p_{2}=K(R P+t)[/katex]。[katex]K[/katex] 为相机内参矩阵. 本质矩阵(Essential matrix) 我们知道由相机1到相机2是刚体运动,那么观测点P在相机1坐标系的坐标就可以通过刚体转换变成相机2坐标系下, 这里的 [katex]x_1[/katex] 和 [katex]x_2[/katex] 是两个像素点的归一化平面上的坐标: [katex]x_{1}=K^{-1} p_{1}, \quad x_{2}=K^{-1} p_{2}[/katex]。 [katex display=true] x_2=R x_1 +T [/katex] 其中[katex]R[/katex]和[katex]T[/katex]分别表示旋转和平移,如果我们将其左叉乘一个[katex]T[/katex],即: [katex display=true] \begin{align*} T\times x_2&=T\times \left( Rx_1+T \right)…
成像模型 (Camera_Projection) 参考自课件: (Camera Projection - 1)[https://www.cse.psu.edu/~rtc12/CSE486/lecture12.pdf] (Camera Projection - 2)[https://www.cse.psu.edu/~rtc12/CSE486/lecture13.pdf] https://mp.weixin.qq.com/s/qxLgnWELQ2ZI4MyreXGOYQ 我们需要一个数学模型来描述如何将3D世界坐标系中的点 (U,V,W) 投影到2D图片坐标系([katex]u[/katex],[katex]v[/katex])中。 Camera Coords to Film Coords (3D to 2D) 相机坐标系 Camera Coords ([katex]X[/katex],[katex]Y[/katex],[katex]Z[/katex]) to 画布坐标系 Film Coords ([katex]x[/katex],[katex]y[/katex]): 对于相机坐标系中的点([katex]X[/katex],[katex]Y[/katex],[katex]Z[/katex]),其中[katex]Z[/katex]是从相机原点到该点的距离。已知焦距[katex]f[/katex],因此,相机坐标系到画布坐标系的比例关系为 [katex]f/Z[/katex]。 对应的,我们想求此点在画布坐标系中的横纵坐标([katex]x,y[/katex]),只需要按比例缩放: [katex display=true] x=X \cdot \frac{f}{Z} = f\frac{X}{Z} [/katex] [katex display=true] y=Y \cdot \frac{f}{Z} = f\frac{Y}{Z}…