3D点创建与地图点检验:关键帧三角化解析

需积分: 0 0 下载量 66 浏览量 更新于2024-08-05 收藏 714KB PDF 举报
"这篇文档主要讨论了在3D重建中创建新地图点的过程,特别是`CreateNewMapPoints`函数的实现细节,涉及到关键帧的共视关系、变换矩阵、相机中心计算、三角化、对极几何以及特征点匹配。" 在3D重建过程中,`CreateNewMapPoints`函数扮演着至关重要的角色,它从与当前关键帧有共视关系的相邻关键帧中获取数据,并更新3D点云。这个过程主要包括以下几个步骤: 1. **关键帧的共视关系**:处理新的关键帧时,首先会更新关键帧间的连接关系,对具有共视关系的关键帧进行排序,选择权值最高的几个相邻关键帧进行后续处理。 2. **获取当前关键帧的变换矩阵**:变换矩阵由旋转矩阵和平移矩阵构成,它们描述了关键帧在3D空间中的位置和姿态。旋转矩阵表示了关键帧的旋转,而平移矩阵则表示了从世界坐标系到相机坐标系的平移。 3. **计算相机中心**:在已知旋转和平移矩阵的基础上,可以通过特定的数学运算得到相机中心在世界坐标系中的位置,这有助于进行三角化计算。 4. **三角化3D点**:遍历每个关键帧,判断是否需要对相邻关键帧进行三角化。对于双目系统,会考虑基线大小;对于单目系统,则考虑基线与景深的比例。利用特征点的深度信息(如中值近似)来计算三角化点。 5. **对极几何与基础矩阵**:计算相邻关键帧间的基本矩阵,这是对极几何的基础。对极约束保证了对应点在两个图像上的像素坐标满足特定关系,从而帮助建立两幅图像之间的几何联系。 6. **特征点匹配**:利用极线约束限制匹配时的搜索范围,提高匹配效率。同时,通过ORB词典加速未被跟踪的特征点匹配,如果特征点在两个关键帧中都能找到匹配,就进行相应的处理。 7. **匹配策略**:在匹配过程中,可能遇到不同迭代器访问相同结点的情况,此时进行匹配;否则,继续迭代直到找到匹配或达到容器尾部。 `CreateNewMapPoints`函数是3D重建中的核心部分,它综合运用了视觉几何中的关键概念,如共视关系、变换矩阵、三角化、对极几何和特征匹配,以构建精确的3D地图。这个过程对于实现SLAM(Simultaneous Localization and Mapping,即时定位与地图构建)系统至关重要,能够帮助机器人或设备在未知环境中导航和理解周围环境。