一种基于改进YOLOv8并与ORB-SLAM3融合的动态环境密集点云同步定位与建图(SLAM)方法

本文基于A method of dense point cloud SLAM based on improved YOLOV8 and fused with ORB-SLAM3 to cope with dynamic environments文章总结

文章提出了一种基于改进 YOLOv8 与 ORB-SLAM3 融合的动态环境稠密点云 SLAM 方法,通过引入GSConv 卷积模块VoVGSCSP 特征融合模块优化 YOLOv8 的轻量性,结合实时目标检测与语义分割技术去除动态特征点,显著提升了动态场景下的位姿估计精度。实验表明,在 TUM 数据集的快速动态场景中,该方法的绝对位姿误差(RMSE)较 ORB-SLAM3 降低96.28%,相对位姿误差(RMSE)降低51.57%,且运行时间仅为38.16 ms / 帧,实现了高效鲁棒的 SLAM 性能。

 

 

  1. 研究背景
    智能机器人的发展依赖于 SLAM 技术,但传统视觉 SLAM 在动态环境中存在定位和建图误差大的问题。深度学习的引入为解决动态环境鲁棒性问题提供了新途径,但现有方法存在模型复杂、实时性不足的挑战。

  2. 提出方法

    • 改进 YOLOv8
      • 引入 GSConv 卷积模块,平衡模型精度与计算负载。
      • 采用 VoVGSCSP 特征融合模块优化 Neck 结构,实现轻量化。
    • 融合 ORB-SLAM3
      将改进的 YOLOv8 实时目标检测与语义分割能力整合到 ORB-SLAM3 框架中,动态环境下过滤动态特征点,提升定位与建图精度。
  3. 实验验证

    • 数据集:使用 TUM RGB-D 数据集的动态序列(fr3_sitting_xyz 和 fr3_walking_xyz)。
    • 指标:比较绝对位姿误差(APE)和相对位姿误差(RPE)。
    • 结果
      • 在快速动态环境中,APE 的 RMSE 比 ORB-SLAM3 降低 96.28%,RPE 的 RMSE 降低 51.57%。
      • 运行时间和资源占用优化显著,平均跟踪时间 38.16ms / 帧,分割时间 19.10ms / 帧。
  4. 创新点

    • 首次将改进的 YOLOv8 与 ORB-SLAM3 结合,实现动态环境下的高精度 SLAM。
    • 通过模块优化(GSConv 和 VoVGSCSP)实现模型轻量化,平衡性能与效率。
    • 提出密集点云建图方法,提升环境描述的直观性。
  5. 结论
    该方法在动态环境中显著优于传统 SLAM 算法,尤其在快速运动场景中表现突出,为智能机器人在复杂环境中的应用提供了有效解决方案。


1. GSConv 技术是什么?

GSConv(Group Shuffle Convolution,分组混洗卷积)是一种改进的卷积方法,旨在平衡模型精度与计算效率。其核心思想是将标准卷积(SC)与深度可分离卷积(DSC)结合,通过分组和通道重组优化特征提取过程。

技术细节
  • 结构
    • 标准卷积(SC):对输入特征图进行常规卷积,生成中间特征(通道数为原通道的一半)。
    • 深度可分离卷积(DSC):对 SC 输出的每个通道独立进行卷积,减少计算量。
    • 混洗模块(Shuffle):将 SC 和 DSC 的输出按通道拼接后重新排列,增强特征交互。
作用
  • 轻量化:通过 DSC 减少参数和计算量,适合实时性要求高的场景(如 SLAM)。
  • 保留精度:SC 部分保留通道间的相关性,避免 DSC 导致的特征丢失。
  • 平衡性能:在 YOLOv8 中替换部分传统卷积层,减少模型复杂度但维持检测精度。

2. Backbone 层和 Neck 层是什么?

Backbone 层
  • 定义: 模型的主干网络,负责从输入图像中提取多尺度特征(如浅层的边缘、纹理,深层的语义信息)。
  • YOLOv8 中的 Backbone: 基于 CSPDarknet,包含多个卷积层和残差模块,通过下采样逐步压缩空间尺寸、扩展通道数。
  • 改进点: 在 Backbone 的部分阶段引入 GSConv,替代传统卷积层,减少计算量同时保留特征表达能力。
Neck 层
  • 定义: 位于 Backbone 和 Head 之间,通过特征融合优化多尺度检测性能。
  • YOLOv8 中的 Neck: 原结构为 C2f 模块(Cross Stage Partial Network),通过横向连接和通道拆分增强特征多样性。
  • 改进点: 提出VoVGSCSP 模块,用 GSConv 替代部分 C2f 中的卷积层,进一步降低计算复杂度,同时通过 E-ELAN(高效通道注意力)抑制冗余背景特征。

3. 为何调整这些结构能提升动态环境 SLAM 性能?

  • GSConv 的作用
    • 减少 YOLOv8 的模型参数量和计算耗时,使其更适合实时性要求高的 SLAM 系统。
    • 保留关键特征(如动态物体的轮廓和运动模式),确保分割精度,避免误删静态特征点。
  • Backbone 和 Neck 的改进
    • 轻量化:通过结构优化降低模型体积,减少 GPU 内存占用(如文中 YOLOv8 分割时间仅 19.10ms / 帧)。
    • 增强动态特征感知:GSConv 和 VoVGSCSP 模块更关注动态物体的语义和几何特征,提升分割准确性。
  • 平衡精度与速度: 保留部分传统卷积层(如在 Backbone 的关键阶段),避免因过度轻量化导致检测性能下降,确保 SLAM 的位姿估计精度(如快速动态环境中 APE 降低 96.28%)。

总结

GSConv 通过融合标准卷积与深度可分离卷积,在轻量化和精度间取得平衡;Backbone 和 Neck 的改进则通过结构优化进一步提升模型效率和动态特征处理能力。这些技术共同解决了传统视觉 SLAM 在动态环境下的实时性与精度矛盾,为复杂场景中的机器人导航提供了更可靠的解决方案。


需要注意的是该方法的动态特征点剔除是基于YOLOv8 的目标检测框而非语义分割的精细区域。具体实现逻辑如下:

1. 剔除策略的核心依据

  • YOLOv8 的目标检测框: 文档明确指出,改进的 YOLOv8 框架通过目标检测生成动态物体的边界框(Bounding Box),并基于此框判断特征点是否属于动态区域

  • 未采用语义分割掩码: 尽管 YOLOv8 具备实例分割能力,但文档中未提及使用分割掩码(Mask)进行特征点筛选。推测原因是分割掩码的计算量较大,而检测框方法更高效,符合实时性需求。

2. 检测框剔除的局限性

  • 误删静态特征点: 检测框可能包含动态物体周围的静态区域(如人物手持的静态物品),导致部分静态特征点被错误剔除。
  • 精度损失: 与基于分割掩码的方法相比,检测框方法的位姿误差略高,但速度优势显著。

3. 平衡实时性与精度的设计

  • 轻量化优先: 文档强调通过 GSConv 和 VoVGSCSP 模块优化 YOLOv8 的推理速度(段落 1-56 至 1-61),确保检测框处理时间仅 19.10ms / 帧,满足 SLAM 实时性要求。
  • 动态场景适应性: 检测框方法在快速动态环境中仍能有效降低位姿误差(如 APE 的 RMSE 比 ORB-SLAM3 降低 96.28%),证明其对动态干扰的鲁棒性。

结论

该方法采用目标检测框进行动态特征点剔除,而非语义分割的精细区域。这一设计在实时性与精度间取得平衡,通过牺牲少量静态特征点保留率,确保了 SLAM 系统在动态环境中的实时运行能力。若需更高精度,可结合分割掩码,但需权衡计算成本。

### 将YOLOv5SLAM结合用于双目视觉系统的实现方法 #### 1. 双目视觉系统概述 双目视觉通过模拟人类双眼的方式工作,在计算机视觉领域中,这种设置能够提供深度感知能力。在双目立体视觉中,世界坐标系可以被用来描述相机的位置,而相机坐标系则直接关联到相机本身;像坐标系则是基于像素的二维坐标系,用于描述像中的点[^4]。 #### 2. YOLOv5集成至SLAM框架 YOLOv5作为一种先进的实时目标检测模型,可以在每一帧输入上快速标记分类多个类别内的物体实例。当考虑将其融入现有的SLAM解决方案时,主要关注点在于如何有效地利用YOLOv5提供的语义信息增强环境理解以及辅助定位过程: - **前端处理**:在传统的ORB-SLAM或其他特征点匹配基础上引入YOLOv5进行初步的目标识别。此阶段不仅限于静态特征提取,还包括动态障碍物排除机制——即借助YOLOv5的能力过滤掉那些可能干扰正常跟踪流程的因素(比如行人、车辆等),从而提升整体鲁棒性和准确性。 - **后端优化**:对于由前端传递过来的关键帧数据集,可以通过分析YOLOv5标注的结果进一步改进全局姿态估计的质量。具体来说,就是把特定类型的固定参照物视为可信度更高的路标节点参后续的BA(Bundle Adjustment)计算之中,进而改善长时间运行下的累积误差问题。 #### 3. Atlas架构的应用扩展 考虑到实际应用场景往往存在较大范围的空间覆盖需求,单一连续地难以满足复杂环境下高效导航的要求。因此,借鉴Atlas的设计理念显得尤为重要。该体系支持多张局部子拼接成更大规模的整体表示形式,且具备良好的灵活性以应对不同时间段内发生的拓扑结构变化情况。特别是在涉及大规模户外区域或是室内跨楼层转换的任务里,这样的特性尤为关键[^1]。 ```python import cv2 from yolov5 import detect_objects # 假设这是调用YOLOv5的一个函数 from orbslam import ORBSLAMSystem # 同样假设这是一个封装好的ORB-SLAM库 def process_frame(frame): objects = detect_objects(frame) # 这里的slam_system是一个已经初始化好了的ORBSLAM实例 slam_system.process_image(frame) for obj in objects: if is_moving_object(obj): # 判断是否为移动物体 remove_from_slam_map(slam_system, obj.bbox_center) def main(): cap = cv2.VideoCapture(0) while True: ret, frame = cap.read() if not ret: break process_frame(frame) if __name__ == "__main__": main() ``` 上述代码片段展示了如何在一个简单的循环体内交替执行YOLOv5对象检测和ORB-SLAM像处理操作。每当发现属于潜在可动类别的实体时,便会尝试从当前维护的地数据库里面剔除相应位置的信息条目,以此减少因误判造成的漂移现象发生几率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值