TUM-多视图几何-刚体运动建模及其应用
多视图几何是计算机视觉中的一个重要领域,尤其是在3D重建中。刚体运动可以通过数学工具如李群和李代数来建模,它们为相机运动的优化提供了强大的框架。在这种建模中,通过指数映射可以在李群和李代数之间进行转换,进而有效地处理旋转和平移的组合。
2. 三维空间与相机运动建模2.1 李群与李代数李群是一个具有连续变换结构的群,用于描述相机的连续运动。李代数是李群在单位元附近的切空间,用于描述微小变换。
李群 (\(G\)):表示刚体运动的连续变换群,具有群的性质(封闭性、结合性、单位元、逆元)。
李代数 (\(\mathfrak{g}\)):描述了李群在单位元附近的局部性质,是李群在单位元处的切空间。
在三维欧几里得空间中,刚体运动可以用特殊欧氏群 \(SE(3)\) 来表示,它结合了旋转和平移。这些数学工具允许我们在复杂的场景中进行相机姿态的优化和三维重建。
2.2 三维空间中的点和向量在三维空间中,点可以用三个坐标来表示,这些坐标与 \( \mathbb{R}^3 \) 中的元素相关联。向量的概念在多视图几何中尤为重要,包括自由向量和限制向量。自由向量在欧几里得空间中构成一个线性空间,允许 ...
TUM-多视图几何-矩阵变换和奇异值分解
多视图几何在计算机视觉中扮演着关键角色,尤其是在3D重建中。矩阵变换和奇异值分解(SVD)是多视图几何中的重要工具。SVD不仅用于求解欠定的线性方程组,并找到最小范数解,还在3D重建、刚体运动、透视投影等问题中提供了重要帮助。
矩阵变换与特征值分解矩阵表示旋转和平移在三维空间中,矩阵通过齐次坐标系来表示旋转和平移。齐次坐标将3D点扩展为4D向量,使得旋转和平移操作可以统一为矩阵乘法。这种表述在刚体运动中尤为重要,描述了相机在三维空间中的运动。
刚体运动:刚体运动可以通过特殊欧几里得群 \(SE(3)\) 来表示,包括旋转矩阵和平移向量。这个表示展示了矩阵在三维空间中的变换和自由度。
特征值与特征向量:特征值与特征向量在复值矩阵中有重要意义。右特征向量在矩阵乘法后仅发生缩放,通过研究它们可以理解矩阵对向量的影响。这在应用线性代数处理图像中的矩阵运算时非常有用。
\[A\mathbf{v} = \lambda \mathbf{v}\]其中,\(\mathbf{v}\) 是特征向量,\(\lambda\) 是特征值。
特征值方程与性质特征值和特征向量在矩阵代数中起着关键作用。特征值方 ...
TUM-多视图几何-线性代数基础
介绍了多视图几何的基础知识,重点在于线性代数的关键概念,包括向量空间、线性变换和矩阵的性质。回顾了线性代数的基本定义,如向量空间的封闭性、线性独立性及基的概念,并讨论了奇异值分解和内积的定义。课程还探讨了矩阵的秩、范围和核的概念,以及如何通过这些概念来解决线性方程组。最后,提到了一些重要的矩阵群体,如一般线性群和特殊线性群,以及它们在多视图重建中的应用。
1. 线性代数的基本概念向量空间是线性代数的基础,定义为一个在向量加法和标量乘法下封闭的集合。向量空间的封闭性意味着对于任意两个向量 \(\mathbf{u}\) 和 \(\mathbf{v}\) 及标量 \(a\),线性组合 \(a\mathbf{u} + \mathbf{v}\) 仍然属于该向量空间。这一性质在理解线性代数时非常重要。
线性变换及矩阵是线性代数的核心概念。矩阵描述了从一个向量空间到另一个向量空间的线性映射。矩阵的秩(rank)、可逆性、以及矩阵的行列式(determinant)是解决实际问题和执行计算时的关键因素。特别地,矩阵的秩决定了线性方程组解的存在性和唯一性。
奇异值分解(SVD, Singular Valu ...
中科大-数字几何处理-写在后面
这门课是中科大傅孝明老师面向研究生开始的一门课程,对应的教材是《多边形网格处理》,只有英文版,在熟悉了专业名词后其实就挺好读的。这本书更像是一本面片处理的工具手册。
这门课的数学核心就是离散微分几何,像散度、梯度、拉普拉斯算子等。
同样也有很多的编程练习,记得一上来的作业就是写网格的最小生成树算法。
由于项目中有很多基于面片处理、纹理映射的算法开发工作,为了补充这里领域的知识,就学习了这个课程。
PMP-多边形网格处理-写在后面
和中科大傅孝明老师开设的《数字几何处理》课程一起看的,他的课程也是用的这本书作为教材,没有中文版,不过在熟悉了几个特定的专业词汇后,也不是事。
这个就是一本mesh处理的工具书,几乎所有的和面片相关的传统算法里面都提到了。还有里面的图真的很多,字距和行距也比较宽,排版让人很舒服(读一些硬核技术书籍的时候还是很在意排版的,如果字体排版很密很容易劝退…)
在阅读这本书的时候也看到了一份很优秀的笔记,搭配使用更佳链接:https://blauhimmel.github.io/tags/polygon-mesh-processing/
中科大-数字几何处理-三角化优化与Voronoi图
本节课主要探讨了优化三角化及Voronoi图的算法,深入剖析了几何计算中的细节和优化技巧。重点介绍了Delaunay三角化的基本性质以及如何通过调整顶点位置和更新连接关系提高三角化的质量。此外,课上还讨论了Voronoi图的构造及其与Delaunay三角化的对偶关系,强调了Voronoi细胞的特性,如非空和凸性。最后,介绍了CVT(Centroidal Voronoi Tesselation)的应用,通过交替迭代优化目标函数,实现更均匀的区域划分,提高三角化质量。
Delaunay三角化优化
最优三角化生成:
通过移动顶点位置来提高三角化的整体质量。尽管算法可优化给定点的连接,最小角度的质量必须是优化的重要目标之一。
复习了Delaunay三角化的基本概念及其应用,强调生成高质量三角化时,最小角度的限制可能影响整体效果。
优化算法:
介绍了最优化设计配置(Optimal Designing Congration)的意义,通过调整初始定义域的点分布与连接关系实现最优的三角化。
提及利用高斯迭代法优化过程,聚焦于求解目标函数的梯度来更新顶点位置,以逐步提升 ...
中科大-数字几何处理-网格重建与优化
本节课深入探讨了网格重建(Remesh)的概念及在优化三角形网格质量中的应用。课程内容详细介绍了通过调整顶点位置优化网格的方法,确保生成的三角形尽量接近正三角形,满足特定质量标准。讨论了Delaunay Triangulation算法,特别强调了局部和全局的顶点选择,并利用高斯赛道迭代优化目标函数,实现最小角度的最大化。
课程大纲REMESHING与网格质量提升
REMESHING概念:
REMESHING是通过调整顶点和连接关系来提高三角形网格质量的重要技术,确保输出网格与原始网格在逼近程度上的一致性。
重建算法需确保输入网格满足特定质量标准,如三角形的均匀性和定向性,是生成高质量网格的前提。
网格生成与优化:
通过简单的操作(如分割和合并边)实现目标边长的精确性。利用拉普拉斯平滑和度平衡等技术提升网格质量。
需检测生成网格的质量,以判断算法的有效性。输出网格若与目标边长差异较大,则需进一步调整算法。
凸多边形与凸包
凸多边形特征:
在凸多边形内部任意两点的连线应始终位于多边形内,这一几何属性便于处理算法问题。
凸多边形交集仍为凸, ...
PMP-多边形网格处理-变形
一个三角形网格的 变形(Deformation) 算法应该满足下面两个基本条件
能够隐藏于交互界面之后
效率足够高以满足交互需求
将曲面S变形为曲面S’的过程可以描述为:给定一个 位移函数(Displacement Function) ,该函数输入曲面上的点p∈S,给出一个 位移向量(Displacement Vector) —— d(p) ,并通过以下方式将曲面S映射为变形后的曲面S′
对于离散的三角形网格,位移函数d是分段线性(Piecewise Linear)的,即对于 pi∈S
为了人为的控制变形的过程,我们常常会在网格上指定一些控制点pi∈S⊂H,然后固定网格的一部分F⊂S,对于这些点,其位移函数可以描述为
下图中我们对一个正方形的曲面S进行变形,固定曲面S浅蓝色的部分F,然后选取黄色部分H的顶点作为控制顶,将其向上拉动。可以看到经过变形后,没有被固定的部分(R,即深蓝色部分)的顶点的位置发生了相应的变换。
一个主要的问题就是如何选取合适的位移函数di,使得变形的结果符合需求。这里将会讨论两大类变形的方法
基于曲面的变形(Surface-Based Deform ...
2021年度总结
工作:
三维扫描仪原型搭建:多传感器间的联合标定:相机、雷达、IMU的内外参数,相互的外参与时延的标定
面片模型纹理映射:主要参考MVE算法库,优化面片纹理选择,采用改进的MRF能量函数优化
学习:
南京大学-蒋炎岩-操作系统
书籍-OSTEP-操作系统导论
南京大学-黄宇-算法设计
中科大-傅孝明-数字几何处理
GAMES101-现代图形学介绍
书籍-PMP-多边形网格处理
书籍-程序员的自我修养-(未开始)
书籍-unix&linux大学教程(未开始)
书籍-unix环境高级编程(未开始)
PMP-多边形网格处理-模型修复
所谓模型修复,就是取“矫正”模型的一些“畸形”的地方(Artifacts)。
一些比较常见的“畸形”的情景有:
一般我们将模型修复算法粗略的分为下面两类:
Surface-Oriented Algorithm这类算法通常直接对输入的数据进行操作并通过修改曲面直接将“畸形”的地方(Artifacts)“矫正”。
如果是“沟(Gap)”,我们可以通过调整边界处的顶点和边的位置将两条边界边界“缝合”起来。
如果是“洞(Hole)”,我们将空白的部分进行三角剖分,从而补上它。
如果是“相交(Intersection)”,我们可以将相交出的三角形和边拆分(Split)。
算法只会额外添加很少的三角形。且不会修改其它正常区域。与此同时还能够较好地保留和顶点、三角形相关联的属性(连接性、纹理等)。
为了保证有效的输出,该算法对输入的模型会有一定的要求,故在执行算法之前和之后还需要我们进行一些手动处理。此外,由于存在精度上的问题,诸如 相交(Intersection) 和 大范围重叠(Large Overlap) 之类的地方不能被很好地修复,其它的例如在两个非常接近的曲面间产生的 沟(Gap) 往 ...
