Category: Notes

27 Posts

神经辐射场 (NeRF) – 代码剖析
神经辐射场 (NeRF) - 代码剖析 感谢 刘志松师兄 对此文的指导。 基于 Nerf-pl 的代码做进一步剖析。参考代码:Nerf-pl: https://github.com/kwea123/nerf_pl 论文信息: 网站: https://www.matthewtancik.com/nerf 论文:https://arxiv.org/pdf/2003.08934.pdf 代码:https://github.com/bmild/nerf 位置编码 NeRF的输入是一个五维向量: (物体)空间点的位置 [katex]\mathbf{x}=(x,y,z)[/katex] 和 (相机)观测方向 [katex]\mathbf{d}=(\theta, \phi)[/katex]。NeRF使用了位置编码(positional encoding)把一维的位置坐标,转换为高维的表征。例如 [katex]p\in\mathbb{R^1}[/katex], 通过函数[katex]\gamma(\cdot)[/katex]映射到 [katex]\mathbb{R^{2L}}[/katex] 空间中,这里[katex]L[/katex]指的是编码的数量,对于位置坐标,[katex]L=10[/katex];对于观测角度,[katex]L=4[/katex]。 [katex display=true] \gamma(p)=\left(\sin \left(2^{0} \pi p\right), \cos \left(2^{0} \pi p\right), \cdots, \sin \left(2^{L-1} \pi p\right), \cos \left(2^{L-1} \pi p\right)\right) [/katex] 代码实现…
神经辐射场 (NeRF) – 下
神经辐射场 (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)…
神经辐射场 (NeRF) – 上
神经辐射场 (NeRF) - 上 网站: https://www.matthewtancik.com/nerf 论文:https://arxiv.org/pdf/2003.08934.pdf 代码:https://github.com/bmild/nerf 参考文献: NeRF:用深度学习完成3D渲染任务的蹿红 【NeRF论文笔记】用于视图合成的神经辐射场技术 体素渲染 体素渲染 (Volume Rendering) [2] Kajiya J T, Von Herzen B P. Ray tracing volume densities[J]. ACM SIGGRAPH computer graphics, 1984, 18(3): 165-174. 论文中首先介绍了经典的体素渲染(volume rendering) [2] 方法。体素密度 [katex]\sigma(\mathbf{x})[/katex] 可以被理解为,一条射线 [katex]\mathbf{r}[/katex] 在经过 [katex]x[/katex] 处的一个无穷小的粒子时被终止的概率,这个概率是可微的。换句话说,有点类似于这个点的不透明度。由于一条射线上的点是连续的,自然的想法是这条射线的颜色可以由积分的方式得到。将一个相机射线标记为 [katex]\mathbf{r}(t)=\mathbf{o}+t\mathbf{d}[/katex] ,这里 [katex]\mathbf{o}[/katex] 是射线原点, [katex]\mathbf{d}[/katex] 是前述的相机射线角度,[katex]t[/katex]…
对极几何(Epipolar Geometry)
对极几何(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)…
WordPress使用Markdown书写LaTex公式
WordPress使用Markdown书写LaTex公式 参考文献:https://snailwish.com/252/comment-page-1/#comment-333 环境 WordPress 插件1:WP Githuber MD (By Terry Lin) 插件2:KaTeX (By Thomas Churchman) 用法 使用markdown正常书写blog: "original.md"。 改变源文件"original.md"语法结构,把公式独立出来,使用KaTeX进行渲染。 在Python 环境下运行一下代码(使用前请删除代码中的¥)。 之前标准的公式格式 改变为 "katex"插件需要的的格式 代码: import time import re # please delete ¥ def convert(input_name, output_name): try: with open(input_name, 'r', encoding='utf8') as fr, open(output_name, 'w', encoding='utf8') as fw: data = fr.read()…
成像模型 (Camera Projection)
成像模型 (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}…
COLMAP – Recover Camera Poses
? Reference: Large-scale 3D Modeling from Crowdsourced Data https://demuc.de/tutorials/cvpr2017/ "Large-scale image-based 3D modeling has been a major goal of computer vision, enabling a wide range of applications including virtual reality, image-based localization, and autonomous navigation. One of the most diverse data sources for modeling is Internet photo collections. In the…
【笔记】实用机器学习 – 模型整合
李沐老师实用机器学习笔记: Model Combination 5.1 方差和偏差 5.2 Bagging 5.3 Boosting 5.4 Stacking 模型整合(Model Combination) 授课材料 ?️ 授课视频: 授课视频【斯坦福21秋季:实用机器学习中文版】_哔哩哔哩_bilibili 5.1 方差和偏差 5.2 Bagging 5.3 Boosting 5.4 Stacking ? 课件: 讲义下载地址 7 - Model Combination Bias and variance Bagging Boosting Stacking 偏差(bias)和方差(variance) 定义 参考自: https://zhuanlan.zhihu.com/p/412268381 泛化误差可分解为偏差、方差与噪声之和。 偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了算法本身的拟合能力。 方差度量了同样大小的训练集的变动所导致的学习性能变化,即刻画了数据扰动所造成的影响。 噪声则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。 偏差度量的是单个模型的学习能力,而方差度量的是同一个模型在不同数据集上的稳定性。 设计机器学习模型时,我们需要考虑: 准。bias表示模型相对真实模型的差异。想要低bias,需要复杂化模型,增加参数,但是容易过拟合造成high variance。low…
TLSC (Test-time Local Statistics Converter)
Revisiting Global Statistics Aggregation for Improving Image Restoration (消除图像复原中的“misalignment”,性能大幅提升) Paper: Revisiting Global Statistics Aggregation for Improving Image Restoration (AAAI 2022) arXiv:https://arxiv.org/pdf/2112.04491.pdf Code: https://github.com/megvii-research/tlsc Reference: [1] 消除图像复原中的“misalignment”,性能大幅提升 https://mp.weixin.qq.com/s/HRm6wPDBeopsmLtilF5K-A [2] https://xiaoqiangzhou.cn/post/chu_revisiting/ 问题的提出: Specifically, with the increasing size of patches for testing, the performance increases in the case of UNet while it increases…
BoTNet (Bottleneck Transformers)
BoTNet (2021-01): 将 Self-Attention 嵌入 ResNet 文章:Bottleneck Transformers for Visual Recognition 论文: https://arxiv.org/abs/2101.11605 摘要: We present BoTNet, a conceptually simple yet powerful backbone architecture that incorporates self-attention for multiple computer vision tasks including image classification, object detection and instance segmentation. By just replacing the spatial convolutions with global self-attention in…