欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > SuperVINS:应对挑战性成像条件的实时视觉-惯性SLAM框架【全流程配置与测试!!!】【2025最新版!!!!】

SuperVINS:应对挑战性成像条件的实时视觉-惯性SLAM框架【全流程配置与测试!!!】【2025最新版!!!!】

2025/5/22 8:25:47 来源:https://blog.csdn.net/qq_41889538/article/details/148126145  浏览:    关键词:SuperVINS:应对挑战性成像条件的实时视觉-惯性SLAM框架【全流程配置与测试!!!】【2025最新版!!!!】

一、项目背景及意义

SuperVINS是一个改进的视觉-惯性SLAM(同时定位与地图构建)框架,旨在解决在挑战性成像条件下的定位和地图构建问题。该项目基于经典的VINS-Fusion框架,但通过引入深度学习方法进行了显著改进。
视觉-惯性导航系统(VINS)在机器人、自动驾驶、增强现实等领域具有广泛应用前景。然而,传统的SLAM系统在光照变化、模糊、快速运动等挑战性环境下性能会显著下降。SuperVINS通过深度学习方法增强了SLAM系统的鲁棒性,特别是在这些困难环境下的表现。

二、解决的问题

SuperVINS主要解决了以下几个问题:

  • 挑战性成像条件下的特征检测与匹配:传统特征点检测方法在光照变化、模糊等条件下容易失败。
  • 前端追踪稳定性问题:常规光流法在快速运动或视角变化时容易丢失跟踪。
  • 回环检测能力有限:传统回环检测方法对环境变化不够鲁棒。
  • 实时性和精度的平衡:深度学习方法通常计算量大,如何在保证性能的同时实现实时运行。

三、使用的方法

SuperVINS的核心改进在于将深度学习特征与传统视觉-惯性融合算法结合:

1、前端特征处理:

  • 替换了原VINS-Fusion基于光流追踪的前端,采用SuperPoint网络进行特征点提取和描述
  • 使用LightGlue网络进行特征匹配,提高匹配的准确性和鲁棒性

2、回环检测:

  • 将原DBoW2替换为DBoW3词袋系统
  • 使用SuperPoint深度学习描述子进行回环检测,提高了回环检测的准确性

3.后端优化:

  • 保留了VINS-Fusion优秀的后端优化框架,结合了视觉和IMU数据进行多传感器融合

4、加速策略:

  • 使用ONNX Runtime进行模型推理加速,保证系统实时性

四、效果与性能

根据项目信息,SuperVINS在以下方面表现出色:

  • 鲁棒性增强:在光照变化、运动模糊等挑战性条件下具有更强的稳定性
  • 实时性能:尽管引入了深度学习方法,但通过优化实现了实时运行能力
  • 回环检测能力提升:基于深度学习描述子的回环检测在环境变化时有更好的表现

论文已于2025年3月发表在IEEE Sensors Journal上,表明其研究价值和技术水平得到了认可。

五、创新点

  • 深度学习与传统SLAM融合:巧妙地将SuperPoint和LightGlue等深度学习方法与经典VINS-Fusion框架结合
  • 全流程深度学习特征:使用SuperPoint特征贯穿前端和回环检测全过程,保持特征描述的一致性
  • 实时性与高精度平衡:通过ONNX Runtime等优化手段,在保证深度学习模型性能的同时实现实时运行
  • 系统集成与工程实现:将多个先进组件有机集成为完整系统并开源,具有实用价值

六、主要工作流程

SuperVINS的工作流程可以概括为:

  • 图像预处理:对输入图像进行基本处理
  • 特征提取:使用SuperPoint网络提取特征点和描述子
  • 特征匹配:使用LightGlue网络匹配当前帧与前一帧的特征点
  • 视觉-惯性融合:结合匹配的视觉特征和IMU数据进行状态估计
  • 后端优化:基于滑动窗口的非线性优化
  • 回环检测与闭环:基于SuperPoint描述子和DBoW3进行回环检测,闭环优化地图

七、开源状态

SuperVINS是完全开源的项目,代码托管在GitHub上:https://github.com/luohongk/SuperVINS,使用GPL 3.0开源许可证。

八、工作优缺点分析

1、优点:

  • 鲁棒性提升:在挑战性环境下表现优于传统方法
  • 实时性能:成功实现了深度学习特征与实时SLAM的结合
  • 开源共享:完整开源代码和详细文档,有利于学术交流和技术推广
  • 系统完整性:提供了从前端到后端再到回环检测的完整解决方案

2、缺点:

  • 依赖性:需要依赖多个第三方库和深度学习框架,部署和编译可能较为复杂
  • 计算资源需求:相比传统方法,对硬件资源要求更高
  • 版本状态:项目仍在更新中,当前SuperVINS 1.0版本尚未支持回环检测功能
  • 泛化能力:对于未见过的极端环境可能仍有挑战

九、推荐测试数据集

SuperVINS主要在EuRoC MAV数据集上进行了测试。EuRoC是一个广泛用于视觉-惯性SLAM评估的标准数据集,包含了多个不同难度的序列。项目提供的下载脚本会自动下载V2_01_easy序列:

./download_data.sh  # 这会下载EuRoC V2_01_easy.bag数据

其他推荐的测试数据集:

  • EuRoC完整数据集:其他难度序列如MH_01_easy、MH_05_difficult等
  • TUM VI数据集:提供更多样化的场景和运动模式
  • KITTI数据集:适合测试户外场景性能

十、使用自有数据集

如果要使用自己的数据集测试SuperVINS,需要将数据转换为ROS bag格式,并确保包含以下内容:

  • 单目或双目图像:发布为标准ROS图像消息
  • IMU数据:发布为标准的IMU消息

需要配置适合你的数据集的参数文件:

  • 相机内参:包括焦距、主点和畸变参数
  • IMU参数:噪声、随机游走等参数
  • 外参:相机与IMU之间的相对位姿

十一、环境配置与测试

我测试的环境是Ubuntu 20.04,CUDA 11.8,RTX 4090

1、安装ros

作者推荐 Ros1 noetic,具体安装方法可以参考ROS官方教程
安装好了之后,可以运行roscore进行测试
在这里插入图片描述
出现上述信息就代表ros安装好了!!

2、安装依赖库

# 安装Ceres Solver
mkdir -p ~/Thirdparty
cd ~/Thirdparty
git clone https://github.com/ceres-solver/ceres-solver.git -b 2.1.0
cd ceres-solver
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=~/Thirdparty/Ceres
make -j8
make install# 安装ONNX Runtime
cd ~/Thirdparty
wget https://github.com/microsoft/onnxruntime/releases/download/v1.16.3/onnxruntime-linux-x64-gpu-1.16.3.tgz
tar -zxvf onnxruntime-linux-x64-gpu-1.16.3.tgz
mv onnxruntime-linux-x64-gpu-1.16.3 onnxruntime

3、创建工作区

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/
catkin_init_workspace
cd ~/catkin_ws
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bash
source ~/.bashrc

4、修改CMakeLists.txt中的路径

# 打开文件vins_estimator/CMakeLists.txt, supervins_loop_fusion/CMakeLists.txt, camera_models/CMakeLists.txtchange
set(ONNXRUNTIME_ROOTDIR "/home/lhk/Thirdparty/onnxruntime")
find_package(Ceres REQUIRED PATHS "/home/lhk/Thirdparty/Ceres")
to
set(ONNXRUNTIME_ROOTDIR "your onnxruntime path")
find_package(Ceres REQUIRED PATHS "you Ceres path")

我修改完的CMakeLists.txt内容如下:

  • vins_estimator/CMakeLists.txt
    在这里插入图片描述
  • supervins_loop_fusion/CMakeLists.txt
    在这里插入图片描述
  • camera_models\CMakeLists.txt
    在这里插入图片描述

5、编译SuperVINS


# 克隆SuperVINS
git clone https://github.com/luohongk/SuperVINS.git# 下载数据集
cd SuperVINS
chmod +x download_data.sh
./download_data.sh# 编译项目
cd ~/catkin_ws
catkin_make -j8# 添加到环境变量
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

六、运行EuRoC数据集测试

# 终端1:启动RViz可视化界面
roslaunch supervins supervins_rviz.launch# 终端2:启动SuperVINS
rosrun supervins supervins_node ~/catkin_ws/src/SuperVINS/config/euroc/euroc_mono_imu_config.yaml# 终端3:(当前版本不支持回环检测,未来版本可用)
# rosrun supervins_loop_fusion supervins_loop_fusion_node ~/catkin_ws/src/SuperVINS/config/euroc/euroc_mono_imu_config.yaml# 终端4:播放数据集
rosbag play ~/catkin_ws/src/SuperVINS/data/V2_01_easy.bag

我自己实际测试的路径及命令如下所示:

sun@sun:~/Project/SurperVINS/catkin_ws$ roslaunch supervins supervins_rviz.launch
sun@sun:~/Project/SurperVINS/catkin_ws$ rosrun supervins supervins_node src/SuperVINS/config/euroc/euroc_mono_imu_config.yaml 
sun@sun:~/Project/SurperVINS/catkin_ws/src/SuperVINS/data$ rosbag play V2_01_easy.bag 
[INFO] [1747842367.015657289]: Opening V2_01_easy.bagWaiting 0.2 seconds after advertising topics... done.Hit space to toggle paused, or 's' to step.[RUNNING]  Bag Time: 1413393235.057626   Duration: 23.120455 / 113.974481  

RVIZ界面如下:
在这里插入图片描述

十二、自有数据集测试

假设你已经准备好了符合ROS标准的bag文件(包含图像和IMU数据),步骤如下:

1、创建配置文件:

# 复制并修改配置文件
cp ~/catkin_ws/src/SuperVINS/config/euroc/euroc_mono_imu_config.yaml ~/catkin_ws/src/SuperVINS/config/custom_config.yaml# 使用文本编辑器修改配置参数,主要包括:
# - 相机内参和畸变参数
# - IMU噪声参数
# - 话题名称,确保与你的bag文件中的话题一致

2、运行测试

# 终端1:启动RViz
roslaunch supervins supervins_rviz.launch# 终端2:启动SuperVINS,使用自定义配置
rosrun supervins supervins_node ~/catkin_ws/src/SuperVINS/config/custom_config.yaml# 终端3:播放自定义数据集
rosbag play 你的数据集.bag

十三、总结

SuperVINS是一个创新性地将深度学习特征与经典视觉-惯性SLAM融合的开源项目,特别适合解决挑战性成像条件下的定位问题。该项目基于VINS-Fusion的优秀框架,通过引入SuperPoint特征点和LightGlue匹配网络,显著提高了系统在复杂环境下的鲁棒性。
项目由武汉大学BRAIN实验室开发,已发表于IEEE Sensors Journal,代码完全开源。通过本文提供的详细安装和测试方案,可以在自己的环境中成功运了SuperVINS,并使用自定义数据集进行测试和性能评估。
对于计算机视觉、SLAM和机器人领域的研究者和工程师来说,SuperVINS提供了一个值得参考的深度学习增强SLAM系统实现。

如果有问题或者经验交流,欢迎评论区留言!!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词