首页 > 其他分享 >一种面向户外动态环境的自适应ORB-SLAM3系统

一种面向户外动态环境的自适应ORB-SLAM3系统

时间:2024-12-24 22:27:55浏览次数:5  
标签:边界 特征 户外 SLAM3 对象 先验 动态 ORB

        此文章为对论文An Adaptive ORB-SLAM3 System for Outdoor Dynamic Environments的解读,文章链接如下

知网节超时验证

        文章寻找一种新的解决户外动态环境下视觉SLAM低精度的方法。提出了一种针对户外动态环境的自适应特征点选择系统。首先,利用YOLOv5s和注意机制来获得场景中的先验动态对象。然后,基于先验动态对象的数量和先验动态对象在帧中所占据的百分比,使用自适应特征点选择器来选择特征点。最后,利用基于LK光流的几何方法和RANSAC算法确定动态区域。

系统框架:该系统基于传统的ORB-SLAM3。ORB-SLAM3包含三个线程:跟踪线程,局部建图和回环检测线程。我们在ORB-SLAM3之上添加了YOLOv5s检测线程和LK光流线程。

       图1.建议算法的系统框架。

        框架将在ORB-SALM3中的跟踪线程中完成系统初始化后构建。在现有的基于ORB-SLAM的改进系统中,一般在跟踪线程中执行动态点删除,在特征点提取后删除动态特征点。在我们的系统中,YOLOv5s线程订阅左帧图像,并执行先验动态对象的检测,发送具有边界框坐标的ROS消息。自适应选择器订阅这些ROS消息,并检查任何特征点是否位于边界框内。根据先验动态对象的数量和先验动态对象在当前帧中所占的帧的百分比,自适应选择器然后决定是否删除这些特征点。我们设置N是当前帧中一个先验动态对象的数量,P是当前帧中一个先验动态对象在该帧中所占的百分比。删除边界框中所有特征点的阈值设置为T。如果N < T和P<为50%,则删除边界框内的所有特征点。另一方面,如果N > T或P > 50%,当前帧与前一帧之间的特征点位置由Lucas-Kanade光流跟踪。计算每个边界框中特征点的基本矩阵,以及当前帧和前一个帧之间的每个边界框展开。我们设置了两帧之间的一个边界盒的本质矩阵为Eu,其对应的边界盒展开层的本质矩阵为Ev。采用RANSAC方法来减少本质矩阵Ev和Eu的误差。分别计算Eu的无限范数L1和Ev的无限范数L2,通过比较L2和L1将边界框作为一个静态区域。立体声匹配只使用来自静态区域的特征点来执行。一旦生成了静态帧,活动映射将过滤新的关键帧,并对映射进行优化。

 

 YOLOv5与协调注意力机制

       坐标注意力机制通过这种方式将位置信息融入到特征图中,能够让模型更加关注与位置相关的特征,在目标检测等任务中有助于提高对不同位置目标的检测能力,尤其是在处理动态物体时,可以更好地捕捉物体的特征和位置变化,从而提升检测的准确性。


 图2.具有协调注意功能的YOLOv5s网络模型。

总体架构

        整个网络架构是一个典型的卷积神经网络(CNN)结构,通过层层的特征提取、上采样、下采样、特征融合和注意力机制,最终实现目标检测的功能。这种架构设计能够有效地处理不同尺度的目标,并且通过协同注意力机制增强了对目标位置和特征的捕捉能力。


 自适应特征点选择器

几何方法判断动态对象是否静态(先验动态对象占比大于 50% 或数量大于 5 时)

扩展层和光流跟踪:在每个边界框外添加一个 20 像素的扩展层,然后使用 LK(Lucas - Kanade)光流跟踪边界框内特征点的位置和当前帧与前一帧之间扩展层的情况。

低特征点环境处理:如果在扩展层中没有特征点,就认为动态对象处于低特征点环境,这种情况下会使用边界框内的特征点来构建地图。

      主要是为了在存在动态对象的环境中,更准确地选择用于地图构建的特征点,减少动态对象对地图构建和系统轨迹误差的影响,提高系统的准确性和稳定性。


        在本文中,作者提出了一个针对户外动态环境设计的自适应ORB-SLAM3系统。它利用YOLOv5和协调注意力来识别一个先验的动态对象,如汽车、人和自行车。ORB-SLAM线程订阅由YOLOv5发送的ROS消息,并通过考虑在当前帧中占用的先验动态对象的数量和百分比来删除动态对象的特征点。为了跟踪帧间的特征点,我们使用LK光流,并引入一个边界盒扩展层来捕捉背景运动。

        最后作者KITTI数据集上进行了实验,并使用两种不同的特征点选择策略对ORB-SLAM3进行了评估:去除边界框内所有动态点的算法和几何方法。还将系统与当前最先进的DynaSLAM方法进行了比较,并进行了系统时间消耗的比较。这些实验的结果证明了所提出的方法的有效性,与其他系统相比,系统在绝对轨迹误差和相对轨迹误差方面都有了实质性的改进。具体来说,绝对轨迹误差减少高达39%,相对轨迹误差减少高达30%。该系统展示了出色的实时性能能力。

 

 

 

 

 

 

 

 

 

 

标签:边界,特征,户外,SLAM3,对象,先验,动态,ORB
From: https://blog.csdn.net/2401_87345388/article/details/144700944

相关文章

  • 【Django】测试带有 CSRF 验证的 POST 表单 API 报错:Forbidden (CSRF cookie not set.
    【Django】测试带有CSRF验证的POST表单API报错:Forbidden(CSRFcookienotset.)问题描述Django使用Apifox测试POST表单报错。Forbidden(CSRFcookienotset.):/api/parse[20/Dec/202415:17:25]"POST//api/parseHTTP/1.1"4032855原因分析要在使......
  • 偏远地区/户外/野外无电无网监控4G无线太阳能视频监控系统设计方案
    随着全球对可持续发展和清洁能源的重视程度不断提升,太阳能供电无线视频监控系统正以其独特的优势在现代能源领域占据重要位置。这种系统不仅能够实现设备的远程监控和控制,提高系统的智能化和自动化水平,还能通过高速、稳定的数据传输,确保数据的实时性和准确性。那么设计一套4G无......
  • INS风格户外风光旅拍人像自拍摄影Lr调色教程,手机滤镜PS+Lightroom预设下载!
    调色教程户外风光旅拍人像自拍摄影结合Lightroom调色,可以打造出令人惊艳的视觉效果。这种风格将自然风光与人像完美融合,强调色彩的和谐与氛围感的营造。预设信息调色风格:INS风格预设适合类型:人像,户外,旅拍,自拍,特写等预设格式:XMP+DNG手机滤镜资源编号:00792支持软件:Lightroo......
  • ThreeJS入门(185):THREE.OrbitControls 知识详解,示例代码
    作者:还是大剑师兰特,曾为美国某知名大学计算机专业研究生,现为国内GIS领域高级前端工程师,CSDN知名博主,深耕openlayers、leaflet、mapbox、cesium,webgl,ThreeJS,canvas,echarts等技术开发,欢迎加微信(gis-dajianshi),一起交流。查看本专栏目录-本文是第185篇入门文章......
  • ORB-SLAM2源码学习:MapPoint.cc:MapPoint::UpdateNormalAndDepth()计算平均观测方向以
    前言这个函数是属于地图点属性的一部分。1.函数声明voidMapPoint::UpdateNormalAndDepth(){....}2.函数定义1.获取观测到该地图点的所有关键帧的信息 map<KeyFrame*,size_t>observations;KeyFrame*pRefKF;cv::MatPos;{unique_lock<m......
  • jQuery轻量级Lightbox插件-Colorbox
    演示       下载 ColorBox是一款功能强大的轻量级Jquery Lightbox插件。ColorBox支持图片展示、图片分组、幻灯片、行内样式和iframe内容。该lightbox插件的兼容性极好,可以兼容IE7+的IE浏览器。它的特点有:支持图片展示、图片分组、幻灯片、行内样式和ifram......
  • ORB-SLAM2 ----- LocalMapping::ComputeF12和ORBmatcher::CheckDistEpipolarLine
    文章目录一、函数意义二、LocalMapping::ComputeF12()1.函数讲解2.函数代码三、ORBmatcher::CheckDistEpipolarLine()1.函数讲解2.函数代码四、总结一、函数意义这两个函数在LocalMapping::CreateNewMapPoints()被调用,之所以单独拿出来讲,是因为这两个函都是计算的......
  • ORB-SLAM2源码学习:MapPoint.cc:MapPoint::ComputeDistinctiveDescriptors()计算地图点
    前言地图点在投影匹配时只能对应一个特征描述子,选择具有代表性的描述子是必要的。1.函数声明/*由于一个地图点会被许多相机观测到,因此在插入关键帧后,需要判断是否更新代表当前点的描述子先获得当前点的所有描述子,然后计算描述子之间的两两距离,最好的描述子与其他描述子......
  • ORB-SLAM2源码学习:LocalMapping.cc: LocalMapping::MapPointCulling剔除不合格的地图
    前言新增地图点需要经过比较严苛的筛选才能留下,只有这样才能提高定位和建图的准确性、控制地图建图规模、降低计算量。新增地图点主要来自a.双目相机和RGB-D相机模式下的跟踪线程产生的地图点b.局部建图线程中关键帧之间生成的新的地图点。 函数声明voidLocalMapping::M......
  • ORB-SLAM2 ---- LocalMapping::MapPointCulling()和LocalMapping::CreateNewMapPoints
    文章目录一、函数意义二、LocalMapping::MapPointCulling()1.函数讲解2.函数代码三、LocalMapping::CreateNewMapPoints()1.函数讲解2.函数代码四、总结一、函数意义这两个函数是局部见图的核心函数之二,作用是删除不好的地图点,为创造新的地图点。学习局部建图......