图形学——网格
网格有多种,三角形,四边形或者其他的多边形。但是目前使用最多的,也是本文着重介绍的是三角网格。三角网格是计算机中表示三维模型最重要的方法。这篇文章主要介绍一下网格的相关概念以及技术算法。
网格有多种,三角形,四边形或者其他的多边形。但是目前使用最多的,也是本文着重介绍的是三角网格。三角网格是计算机中表示三维模型最重要的方法。这篇文章主要介绍一下网格的相关概念以及技术算法。
Bezier曲线虽然有很多优点,但是有一些明显的缺点。上次也提到了,在CAD中通常不鼓励使用高阶的Bezier基函数来画曲线,而使用低阶拼接。但是在低阶中拼接,要保证几何连续性又是非常困难的一件事情。对于Bezier曲线,如果控制点过多,无法进行局部调控。改变一个控制点,就会改变整个曲线,这里介绍B样条。
在图形学中,经常设计一个场景,然后通过渲染方程产生具有真实感的图像,因此需要引入几何造型(geometric modeling)技术来设计场景。如何在计算机中表示模型?这里我们介绍Bezier曲线和曲面。Bezier曲线曲面是非常重要的图形学理论,由法国工程师Bezier最初提出。
上次讲了光线追踪,但是在追踪过程中,我们需要进行加速,可能才能满足实时等应用。同样,还有很多图形学的相关过程,都需要更好的数据结构的支持,用来加速和节省内存。下面介绍一些光线追踪时候用来加速的数据结构。
之前我们重视的是镜面反射和漫反射的效果,对于折射却提到很少。这意味着只能显示非透明的东西。想要显示比如透明的水晶球,还有更复杂的,比如镜面中的场景,就需要光线追踪。
这次简单介绍一下几个著名的光照模型。
这次介绍图形学的一些基本的东西,几种颜色空间以及三角网格模型。
这次周末再读一篇文章,希望能从中得到一些启发,来做好现在的相关的工作。这篇文章为Large-Scale and Drift-Free Surface ReconstructionUsing Online Subvolume Registration,是2015年CVPR的一篇文章。
之前的两篇文章都使用了voxel hashing的策略,而实际上为了减少存储,一般不会将空间所有的voxel都记录下来,而是使用voxel hashing或者octree的方法。而这篇文章(Real-time 3D Reconstruction at Scale using Voxel Hashing)是最早使用voxel hashing的。它的引用量达到了390。鉴于不是深度学习等热门领域,实际上这个成绩已经相当不错了。
这次介绍的论文是牛津大学的一篇文章,全文名为Real-time Large-Scale Dense 3D Reconstruction with Loop Closure。这是一篇16年ECCV的文章,我主要希望借鉴的是文章中关于submap的一些做法和想法。
对于论文的阅读是我的弱项,这是导致我学习过程总是恍恍惚惚一脸懵比的一个重要的原因。出来混总是要还的。大学时候的浪荡带来的后果现在就得到了体现。
这次介绍的论文是牛津大学的一篇文章,全文名为Real-time Large-Scale Dense 3D Reconstruction with Loop Closure。这是一篇16年ECCV的文章,我主要希望借鉴的是文章中关于submap的一些做法和想法。
SLAM中另外一个用到的最多的后端优化方法叫做位姿图(Pose Graph)优化。想象一下,对于路标的优化,可能进行几次之后就已经收敛了,这时候每次插入一个帧都再次进行一次BA仿佛有点用力过猛。而且实际中,路标的数量远远大于位姿数量,因此BA在大规模建图时,它的计算量可能会越来越大,使得实时计算变得困难。这里我们介绍的位姿图优化,就是省去了对路标的优化,仅仅调整位姿的一种做法。
回环检测(Loop Closure Detection)和之前谈到的前端和后端都不一样,但是一个完整的SLAM系统也不能离开回环检测。
最近做的工作是三维重建的,需要解决的问题是submap中tsdf的re-integrate与de-ingegrate。现在先搞明白整个TSDF fusion是怎么回事。我们从一个简单的例子:从多张输入帧中重建出三维模型。
虽然这篇文章的名字很简单:后端,但是它实际上是SLAM中非常重要的部分。因为在帧与帧的定位在局部来说还是比较准确,但是每次都会有一定的漂移(drift),而放到全局就会造成严重的全局不一致(inconsistence),可以说没有一个好的后端就无法实现好的定位与重建。
Bundle Adjustment近些年在SLAM的研究中起到了非常重要的作用。Bundle Adjustment是将特征点与相机位姿一起作为优化变量,使得整体误差尽量变小。因为是非线性优化,不一定能找到全局最小值,因此对初始值的依赖比较大。另外,可以想象的到,BA需要计算的矩阵维度非常大,但是因为它特殊的结构,使得BA的计算简化了不少。
特征点法是提取特征,根据稀疏特征点的对应点来计算相机的位姿变换。但是它是有比较明显的缺点的:1.特征点的提取比较耗时,限制了SLAM的运行速度,2. 特征点过于稀疏,可能会浪费很多有用信息 3. 我们在生活中总会遇到纹理特征缺失的情况,比如一面白墙,这时候我们找不到足够的特征点来得到相机的运动。所以我们来讨论另外的两种方法,叫做光流法和直接法。
3D到3D之间的位姿匹配,我们要用到的方法就是ICP算法了。
上篇文章的内容是关于对极几何约束的,它主要是用来解决2d-2d的情况,也就是我们只有两张不同角度的投影求空间点。现在假如我们已经知道了空间点的位置,接下来要的问题是3d-2d,这个时候我们可以用的方法是PnP来估计位姿。