基于ORB-SLAM2与YOLOv8剔除动态特征点

基于ORB-SLAM2与YOLOv8剔除动态特征点

以下方法以https://cvg.cit.tum.de/data/datasets/rgbd-dataset/download#freiburg3_walking_xyz数据集进行实验测试APE

首先在不剔除动态特征点的情况下进行测试:

方法1:segment坐标点集合逐一排查剔除

利用YOLOv8的segment获取动态对象(这里指人person)所在区域的坐标点集合segpoints,之后将提取的特征点的坐标逐一与segpoints中的所有坐标作判断,将出现在segpoints中的特征点的坐标改为(-1,-1),然后在畸变校正时会将坐标为(-1,-1)的异常坐标剔除。
得到的轨迹精度还是可以的,但是segpoints中的数据量太大,完成一次剔除任务花费的时间太长(基本在20~30ms,画面中人所在区域较大时能达到50+ms)。

在这里插入图片描述

方法2:利用目标检测框

利用YOLOv8进行目标检测,将检测到的目标分为两类:动态对象和静态对象。
这里仅将person设为动态对象。获取动态对象及静态对象的检测框后判断提取的特征点是否在动态对象检测框内以及是否在静态对象检测框内。

1.特征点在动态对象检测框内而不在静态对象检测框内,则满足剔除条件,将其剔除;
2.其余情况皆不满足剔除条件。

采用这种方法速度提升至0.02~0.03ms,最多也在0.05ms以内。

精度与方法1差不多。

再次测试

下面以数据集https://cvg.cit.tum.de/data/datasets/rgbd-dataset/download#freiburg2_desk_with_person对上面两种方法再次进行测试APE

首先ORB_SLAM2的运行结果如下:

方法1的结果如下:

方法2的结果如下:

速度方面仍然是方法2要比方法1快上千倍,精度方面相差不大。

RPE结果:
ORB-SLAM2结果:

方法1:

方法2:

虽然在程序运行中发现动态对象影响的特征点剔除的效果没有达到理想效果,但与ORB_SLAM2相比精度确实提高了很多,采用方法2在速度方面也没有太大影响。
一开始采用方法1的想法是可以获取所有人所在区域的坐标点集合,然后将提取的特征点与此坐标点集合进行对比判断进而剔除,但是在实现过程中发现利用YOLOv8获得的坐标点为整型坐标(我刚开始认为图像是由一个个像素组成的,一个点就是一个像素,因为我将获取的坐标点集合在空白画布上展现是图像是连续的,在上一篇博客里面写过,之后我会继续思考方法1的),而提取的特征点坐标是浮点型,很多应该被剔除的特征点却没有被剔除,而且由于提取的特征点是比较多的,人所在区域的坐标点也是很多的,使用嵌套循环时速度就会很慢了。
而方法2是利用识别物体的检测框来判断提取的特征点是否为动态对象的特征点,但是在程序运行时,比如以desk_with_person为数据集时,person坐在chair上面,chair的检测框是比较大的,导致许多person身上的特征点没有被剔除。
如果朋友们有更好的方法还请分享一下。一起学习!一起进步!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/391690.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python如何实现定时发送qq消息

因为生活中老是忘记各种事情,刚好又在学python,便突发奇想通过python实现提醒任务的功能(尽管TIM有定时功能),也可定时给好友、群、讨论组发送qq消息。其工作流程是:访问数据库提取最近计划——>根据数据…

旅游出门千万别忘带这些!花的不多,享受翻倍!随身wifi看这篇,高性价比高口碑随身wifi推荐

春节长假,大家都去哪儿玩了呢?我反正带着我的小背包,走遍了祖国的大好河山! 得益于之前几次长假出行的经验,这次出行体验十分完美。除了详细完备的出行攻略,还有就是一些出行好物,虽然不起眼&am…

第三百四十八回

文章目录 1. 概念介绍2. 使用方法2.1 List2.2 Map2.3 Set 3. 示例代码4. 内容总结 我们在上一章回中介绍了"convert包"相关的内容,本章回中将介绍collection.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章回中介绍的内容是col…

Slider滑动输入条(antd-design组件库)简单使用

1.Slider滑动输入条 滑动型输入器,展示当前值和可选范围。 2.何时使用 当用户需要在数值区间/自定义区间内进行选择时,可为连续或离散值。 组件代码来自: 滑动输入条 Slider - Ant Design 3.本地验证前的准备 参考文章【react项目antd组件-de…

【leetcode994】腐烂的橘子(BFS)

文章目录 一、题目二、思路三、代码 一、题目 二、思路 首先将所有烂橘子入队,然后常规BFS遍历,注意while的截止条件除了队列为空,新鲜橘子数量大于0(没新鲜橘子也没必要继续遍历,保证时间计算的正确性)&a…

linux内核模块__module_address()函数详解--01

亲爱的粉丝朋友们大家好,为了更好的服务大家,提升分析问题和解决问题的能力,先针对Linux内核里面的API函数进行详细分析,并利用案例进行说明,加强对内核API函数的认识。 第一:函数原型 //函数原型struct m…

【半监督图像分割 2023 】BHPC

【半监督图像分割 2023 】BHPC 论文题目:Semi-supervised medical image segmentation via hard positives oriented contrastive learning 中文题目:通过面向硬阳性的对比学习进行半监督医学图像分割 论文链接: 论文代码:https:/…

C#开源免费的Windows右键菜单管理工具

前言 今天分享一个C#开源、免费、纯粹的Windows右键菜单管理工具:ContextMenuManager。 工具主要功能 程序支持国际化多语言显示。启用或禁用文件、文件夹、新建、发送到、打开方式、自定义文件格式、IE浏览器、WinX等右键菜单项目。对上述场景右键菜单项目进行修…

量子算法入门——3.狄拉克符号与量子态(1)

参考资料: 【【零基础入门量子计算-第04讲】狄拉克符号与量子态】 来自b站up:溴锑锑跃迁 建议关注他的更多高质量文章:CSDN:【溴锑锑跃迁】 1. 狄拉克符号 从生活实例引导到狄拉克符号狄拉克符号 注意这里ket是| >(右矢)&a…

[力扣 Hot100]Day28 两数相加

题目描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都…

基于JAVA的新能源电池回收系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户档案模块2.2 电池品类模块2.3 回收机构模块2.4 电池订单模块2.5 客服咨询模块 三、系统设计3.1 用例设计3.2 业务流程设计3.3 E-R 图设计 四、系统展示五、核心代码5.1 增改电池类型5.2 查询电池品类5.3 查询电池回…

如何使用python 挑战将ai生成的概念图制作成2d游戏

要使用Python将AI生成的概念图制作成2D游戏,你可以遵循以下步骤: 生成概念图: 使用AI图像生成工具(如DALL-E、DeepArt等)来创建你的游戏概念图。保存生成的图像文件,通常为PNG或JPEG格式。选择游戏引擎: 对于Python,一个流行的游戏开发库是Pygame(pygame.org)。安装P…

Mamba详解

深度学习新架构Mamba 论文介绍 Mamba: Linear-Time Sequence Modeling with Selective State Spaces 关注微信公众号: DeepGoAI 项目地址:https://github.com/state-spaces/mamba (已经6.3k) 论文地址:https://arxiv.org/abs/…

【Java多线程进阶】JUC常见类以及CAS机制

1. Callable的用法 之前已经接触过了Runnable接口,即我们可以使用实现Runnable接口的方式创建一个线程,而Callable也是一个interface,我们也可以用Callable来创建一个线程。 Callable是一个带有泛型的interface实现Callable接口必须重写cal…

GEE使用 Sentinel-1 SAR影像 和 Otsu 方法绘制洪水地图

洪水是世界上最常见、破坏性最大的自然灾害之一,造成了巨大的生命和财产损失。此外,随着气候变化的影响,近年来,洪灾变得更加频繁和不可预测。为了最大限度地减少生命和财产损失,必须迅速发现洪水蔓延的情况,并及时采取必要的干预措施。洪水蔓延探测大多使用光学传感器或…

【力扣】169.多数元素

这道题的解法是运用哈希表打擂台的思想 首先题目的意思是存在数字,意思就是最后返回的结果不可能为空就是了,所以便不用考虑{1,2,3,4,5}这种例子。那么就可以用哈希表存所出现数字出现的次数,然…

文生图提示词:天气条件

天气和气候 --天气条件 Weather Conditions 涵盖了从基本的天气类型到复杂的气象现象,为描述不同的天气和气候条件提供了丰富的词汇。 Sunny 晴朗 Cloudy 多云 Overcast 阴天 Partly Cloudy 局部多云 Clear 清晰 Foggy 雾 Misty 薄雾 Hazy 朦胧 Rainy 下雨 Showers …

EasyUI动态加载组件

要实现如下的效果,在表格中显示进度条 主要是需要再次初始化组件,借用ChatGPT的意思是: 在许多 JavaScript UI 框架中,包括 EasyUI,在动态地创建或插入新的 DOM 元素后,通常需要手动初始化相关的组件或特性…

视觉设计师的项目评审复盘攻略:如何提升设计质量与效率

视觉设计师的角色是至关重要的,以确保设计项目满足预期的质量和结果。作为一名视觉设计师,有必要进行定期的项目审查,以确保项目在正轨上进行,并尽早解决任何问题。在本文中我们将讨论可视化设计人员如何做好项目评审,…

【Anaconda】conda创建、删除、查看虚拟环境,安装pytorch

1.删除环境 首先退出现有的环境 conda deactivate然后查看要删除的环境名称与路径 conda env list接下来就可以删除环境了 有两种方法 方法1: conda env remove -p 要删除的虚拟环境路径对我来说就是: conda env remove -p D:\Anaconda3\envs\MVDet…