KeyFrame类

article/2025/4/23 1:16:20

关键帧类主要是进行Covisbility Graph, Essential,Spanning Tree 三个图的维护,更新。
其中不涉及关键帧的筛选策略问题,只设置了剔除某关键帧和剔除关键帧后如何更新图的方法。总体来说,不难理解。
PS:本文设计多线程编程加锁问题 mutex
部分函数笔记:

KeyFrame::KeyFrame(Frame &F, Map *pMap, KeyFrameDatabase *pKFDB)

构造函数:列表初始化 ,将每个关键帧分成若干个网格,设置关键帧位姿信息。

void KeyFrame::SetPose(const cv::Mat &Tcw_)

由Tcw求出R,t,Twc,本来Twc=Tcw的逆,为了避免求逆使用了一些技巧。
在这里插入图片描述

void KeyFrame::UpdateConnections()

更新图的连接,这也是keyframe类主要要干的事。
步骤一:遍历当前帧所能观测到的所有地图点。
步骤二:针对每个地图点找出能观测到它的关键帧,并统计每个关键帧能观察到当前关键帧地图点的个数
步骤三:找出共视数量大于15的关键帧,把他们和当前帧连接。如果没有大于阈值的连接数,则将和关键帧观察到相同的地图点最多的关键帧和当前关键帧进行链接。
步骤四:把所有共视关键帧按权重进行排序,放入容器。
步骤五:如果当前帧是第一次加入到图中来,当前关键帧是第一次和别的关键帧进行连接,找出共识关键帧集合里与当前关键帧共识最多的那个关键帧,作为当前关键帧的父关键帧,他是子关键帧。
在这里插入图片描述

void KeyFrame::SetBadFlag()

设置坏帧标志位:
步骤一:遍历所有和当前关键帧共视的关键帧,删除他们与当前关键帧的联系。
步骤二:遍历每一个当前关键帧的地图点,删除每一个地图点和当前关键帧的联系。
步骤三:清空和当前关键帧的共视关键帧集合和带顺序的关键帧集合。
步骤四:共视图更新完毕后,还需要更新生成树。这个比较难理解。。。真实删除当前关键帧之前,需要处理好父亲和儿子关键帧关系,不然会造成整个关键帧维护的图断裂,或者混乱,不能够为后端提供较好的初值。
理解起来就是父亲挂了,儿子需要找新的父亲,在候选父亲里找,当前帧的父亲(mpParent)肯定在候选父亲中
步骤五:遍历所有把当前关键帧当成父关键帧的子关键帧。重新为他们找父关键帧。设置一个候选父关键帧集合(集合里包含了当前帧的父帧和子帧?)
步骤六:对于每一个子关键帧,找到与它共视的关键帧集合,遍历它,看看是否有候选父帧集合里的帧,如果有,就把这个帧当做新的父帧。
步骤七:如果有子关键帧没有找到新的父帧,那么直接把当前帧的父帧(爷)当成它的父帧。
在这里插入图片描述

float KeyFrame::ComputeSceneMedianDepth(const int q)

评估当前关键帧场景深度
步骤一:获取每个地图点的世界位姿
步骤二:找出当前帧Z方向上的旋转和平移,求每个地图点在当前相机坐标系中的z轴位置,求平均值。


http://chatgpt.dhexx.cn/article/q1G0xBAK.shtml

相关文章

自定义控件三部曲之动画篇(八)——PropertyValuesHolder与Keyframe

前言:只有比牛人跑的更快,才有可能追上他的脚步。 相关文章: 《Android自定义控件三部曲文章索引》:http://blog.csdn.net/harvic880925/article/details/50995268 前几篇给大家讲了ValueAnimator、ObjectAnimator的知识,讲解了…

ORB-SLAM2从理论到代码实现(十四):KeyFrame类

1. 原理分析 KeyFrame为关键帧,关键帧之所以存在是因为优化需要,所以KeyFrame的几乎所有内容都是位优化服务的。该类中的函数较多,我们需要归类梳理一下,明白其功能原理,才能真正弄懂它的内容。 图优化需要构建节点和…

css基础(九)--keyframe

33.keyframe 关键帧,类似于flash中的关键帧,以keyframes开头紧跟着动画名称加上花括号{。。。},括号中表示不同时间段样式规则 keyframes changecolor{ 0%{ background: red; } 100%{ background: green; } } 样式规…

windows10 企业版 ltsc系统的激活

具体步骤参考下面的网址内容: https://www.landiannews.com/archives/51131.html

win10哪个版本最好用,推荐win10企业版LTSC

win10企业版LTSC又被称为win10企业版2019长期服务版本,这个版本小编认为是目前最好用的win10版本,在win10企业版2016长期服务版本的基础上,微软做了大量优化和升级。win10企业版LTSC更加快捷和轻便。 现在很多网站上都是有人修改过的win10企业版LTSC安装…

一键解决Win10 LTSC 2021官方镜像存在的问题

一键解决Win10 LTSC 2021官方镜像存在的问题 由于适用了win10 ltsc 2021之后,发现官方镜像存在一些致命的bug。但是本人又喜欢这个官方精简的系统,所以进行了一些修复。并将搜集到的办法其汇总成一个一键修复脚本 Win10_LTSC_2021_FixPacks。来让其他用户…

Windows:MULTIPROCESSOR CONFIGURATION NOT SUPPORTED蓝屏(32位(win10/LTSC 2019/LTSC 2021))

网上的答案帮助不大,全靠摸索,记录一下 Content 1.环境2.案发现场(bushi3.解决方案 1.环境 所有32位win10操作系统应该都有这个问题(旧版没装过),我的配置: CPU: i5 2400主板:戴尔DELL H61内存8G(没必要关…

win10ltsc转版本,win10ltsc升级win11,无损

之前电脑有些卡,一时兴起,就装了比较精简的ltsc,一开始还挺好用。但后来用着用着发现确实少了很多东西,地图,相机,商店什么的都没了。后来又索性加装了一根内存条。 但是ltsc上的文件我又不想丢&#xff0…

[篇五章二]_使用 USB 系统安装盘在真机上安装激活 Windows 10 LTSC 2021 中文企业版系统

################################################## 目录 使用系统盘在真机上安装激活 Windows 10 操作系统 启动盘真机安装 Win 10 图文教程 烧录系统盘 插入开机 安装前设置 重要的分区 安装后设置 安装成功! 关于 Windows 10 处于通知模式如何处理 …

Windows 10 Enterprise LTSC 2019 (x64) 版本 (安装+激活+添加系统邮箱)

1. 网站 https://msdn.itellyou.cn/ 下载。 2. 制作U盘启动,注意采用UEFIGPT模式,为什么呢,见链接https://blog.csdn.net/yang2716210363/article/details/78581388。 3. 装好后激活。 https://pan.baidu.com/s/1Zxy-kJHNOHbvLxc47wBs0Q c…

激活出现 错误0x800706F7 占位程序接收到错误数据

KMS 错误0x800706F7 占位程序接收到错误数据 (SWbemObjectEx) 解决办法: 退出360安全卫士。

windows10 提示系统激活失败,报错为:激活错误0xcc004f012

前因 买的笔记本有正版 win10 激活,但因为自己要往 c 盘复制东西改了 System32 文件的一些权限,后发现系统显示激活失败,错误代码为 0xcc004f012。 做法 WIN R 输入 services.msc 找到 Software Protection 服务 当时发现服务为停止状态&…

Microsoft Office 2021 LTSC 专业激活版 win/mac版

Office 2021它包含了Word、Excel、PowerPoint、Outlook、OneNote、Publisher以及Access等应用程序。这些应用程序都是专门为帮助用户轻松处理各种办公任务而设计的。 其中,Word是一款强大的文字处理软件,可以帮助用户创建和编辑文档;Excel是…

win10LTSC(企业版)命令激活

使用管理员权限依次复制粘贴 slmgr.vbs -skms zh.us.to slmgr -ipk M7XTQ-FN8P6-TTKYV-9D4CC-J462D slmgr -skms kms.03k.org slmgr -ato

聚类分析实验报告作业

课程《生物数据处理》 老师:邓阳君老师 要求:请采用 k 均值 、 k 中心点、层次聚类或者模糊聚类等对 iris 数据 进行聚类分析, 并评价其效果。实验报告应包括算法理论知识、算法代码、仿真实验结果及其分析等内 容,请于 5 …

聚类分析在SPSS上的实现与结果分析——基于SPSS实验报告

实验目的 通过本次实验学习聚类分析在SPSS软件中的具体操作方法,包括系统聚类法和K-means聚类这两种方法,同时根据实验目的自己判断方法的适用情况选取最优方法完成聚类分析达到聚类的目的,并做出综合的评价。 实验步骤及过程: …

01 数字图像基本操作——图像采样、量化、算术运算、点运算实验结果及分析

04 数字图像技术——图像特征提取之实验结果与分析 03 数字图像技术——频域滤波实验结果与分析 02 数字图像技术——颜色空间转换与颜色空间分割实验结果与分析 01 数字图像基本操作——图像采样、量化、算术运算、点运算实验结果及分析 一、实验目的和要求 1.掌握Anaconda中搭…

数据分析——AB实验

( 一 ) AB实验概念 AB实验通俗讲就是在线上可以切出一部分用户(降低风险),完全随机的分成两组或多组(确保人群一致),一组保持现有的方案叫对照组,另外一组使用改进的方案…

D型触发器仿真结果分析

1. 1bitD型触发器verilog 程序 2.RTL等效电路图 3.仿真结果 当CLK上升沿的时候,q值变化,就是此时此刻d的数值(高低电平),当上升沿发生在高电平区间,q值就是高电平;当上升沿发生在低电平区间&am…

python实验总结与分析_Python实验报告二

安徽工程大学Python程序设计 班级:物流192 姓名:唐家豪 学号:3190505234 成绩: 日期:2020/3/5 指导老师:修宇 【实验名称】:顺序结构程序设计 【实验目的】 (1)掌握数据的输入输出的方法; (2)熟悉顺序结构程序中语句的执行过程; (3)掌握顺序结构程序…