ORB-SLAM2运行自制数据集进行定位教程

如何用orbslam2运行数据集以及让自己电脑相机运行单目slam 1、下载orbslam2 https://github.com/raulmur/ORB_SLAM2 2、下载数据集(tum和kitti的) 链接: https://pan.baidu.com/s/1cmPaJF84NNNPMXosds70Zg 提取码: fpje 3、按照orbslam2的readme配置环境 Prerequisites We have tested the library in **Ubuntu 12.04**, **14.04** and **16.04**, but it . 阅读详情
AI摘要

文章介绍了如何使用ORB-SLAM2在Ubuntu18.04环境下,通过单目摄像头录制视频并制作数据集,优化参数以提高定位精度的过程,包括系统配置、脚本编写、录制步骤和CMakeLists.txt的修改。

ORB-SLAM2只做定位的话,精度还是挺准确的,所以用单目摄像头录制视频,制作自己的数据集跑一下,看看定位精度,将过程加以记录。

一、系统配置

系统版本
ubuntu18.04
OpenCV3.4.13
Eigen3.2.10
Pangolin0.5

二、制作数据集

1、脚本编写

test.cpp

#include <opencv2/opencv.hpp>
#include "System.h"
#include <string>
#include <chrono>   // for time stamp
#include <iostream>
using namespace std;
// 参数文件与字典文件
// 如果你系统上的路径不同,请修改它
string parameterFile = "./test.yaml";
string vocFile = "./Vocabulary/ORBvoc.txt";
// 视频文件,若不同请修改
string videoFile = "./test.mp4";
int main(int argc, char **argv) {
 // 声明 ORB-SLAM2 系统
    ORB_SLAM2::System SLAM(vocFile, parameterFile, ORB_SLAM2::System::MONOCULAR, true);
 // 获取视频图像
  cv::VideoCapture cap(videoFile);    // 参数0为usb相机
  // 记录系统时间
  auto start = chrono::system_clock::now();

while (1) {
        cv::Mat frame;
        cap >> frame;   // 读取相机数据

        if ( frame.data == nullptr )
            continue;
        // rescale because image is too large
        cv::Mat frame_resized;
        cv::resize(frame, frame_resized, cv::Size(640,360));
        auto now = chrono::system_clock::now();
        auto timestamp = chrono::duration_cast<chrono::milliseconds>(now - start);
        SLAM.TrackMonocular(frame_resized, double(timestamp.count())/1000.0);
        cv::waitKey(30);
    }
    return 0;


}

2、配置文件编写

test.yaml

%YAML:1.0
 
#--------------------------------------------------------------------------------------------
# Camera Parameters. Adjust them!
#--------------------------------------------------------------------------------------------
 
# Camera calibration and distortion parameters (OpenCV) 
Camera.fx: 500.0
Camera.fy: 500.0
Camera.cx: 320.0
Camera.cy: 240.0
 
Camera.k1: 0.262383
Camera.k2: -0.953104
Camera.p1: -0.005358
Camera.p2: 0.002628
Camera.k3: 1.163314
 
# Camera frames per second 
Camera.fps: 30.0
 
# Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)
Camera.RGB: 0
 
#--------------------------------------------------------------------------------------------
# ORB Parameters
#--------------------------------------------------------------------------------------------
 
# ORB Extractor: Number of features per image
ORBextractor.nFeatures: 1000
 
# ORB Extractor: Scale factor between levels in the scale pyramid     
ORBextractor.scaleFactor: 1.2
 
# ORB Extractor: Number of levels in the scale pyramid    
ORBextractor.nLevels: 8
 
# ORB Extractor: Fast threshold
# Image is divided in a grid. At each cell FAST are extracted imposing a minimum response.
# Firstly we impose iniThFAST. If no corners are detected we impose a lower value minThFAST
# You can lower these values if your images have low contrast            
ORBextractor.iniThFAST: 10
ORBextractor.minThFAST: 5
 
#--------------------------------------------------------------------------------------------
# Viewer Parameters
#--------------------------------------------------------------------------------------------
Viewer.KeyFrameSize: 0.05
Viewer.KeyFrameLineWidth: 1
Viewer.GraphLineWidth: 0.9
Viewer.PointSize: 2
Viewer.CameraSize: 0.08
Viewer.CameraLineWidth: 3
Viewer.ViewpointX: 0
Viewer.ViewpointY: -0.7
Viewer.ViewpointZ: -1.8
Viewer.ViewpointF: 500

将两个文件复制到ORB_SLAM2根目录下
在这里插入图片描述

3、录制视频素材

(1)将手机横向拍摄
(2)开始拍摄时,首先手机左右缓慢水平移动,为了是ORB-SLAM2初始化正常,像螃蟹一样左右移动小步即可
(3)五秒左右,再慢慢往前走,不要走的太快,转弯时不要太快,防止跟踪丢失
(4)录制完成后,将其复制到ORB_SLAM2文件下,重命名为test.mp4

在这里插入图片描述

4、修改CMakeLists.txt

修改ORB_SLAM2里面的CMakeLists.txt,添加如下代码:

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR})
add_executable(test test.cpp)
target_link_libraries(test ${PROJECT_NAME})

在这里插入图片描述

5、编译运行

cd ORB_SLAM2
mkdir build
cd build
cmake ..
make -j

在这里插入图片描述

cd ..
./test

在这里插入图片描述

三、总结

ORB-SLAM2将ORB-SLAM从单目相机扩展到双目和RGB-D相机,包含一种定位模式,只要环境中没有显著变化,它就能对已建图区域中轻量级长期定位非常有用。在这种模式下,局部建图和回环线程没有激活,使用跟踪线程连续地定位相机(如果需要,使用重定位)。在这种模式下,跟踪线程利用视觉里程计匹配和地图点匹配。视觉里程计匹配是当前帧中ORB和之前帧通过双目/深度信息创建的三维点之间的匹配。这些匹配使得定位对于未建图区域较为鲁棒,但是会累积漂移。地图点匹配保证了对现有地图的无漂移定位。

利用自己的视频数据集跑ORB-SLAM2 主要介绍一下利用自己的视频数据集跑ORB-SLAM2,所用的视频拍的是寝室内部。 阅读详情

相关推荐

gazebo+ORB-SLAM仿真教程

gazebo+ORB-SLAM仿真教程介绍仿真环境搭建ORBSLAM2安装与配置运行仿真环境: 介绍 开发环境:本博文实现了ORB-SLAM在gazebo环境下的仿真,环境为:ubuntu 16.04 + ROS + gazebo 7.0 + ORB-slam2 预备知识:ROS,gazebo,ORB-SLAM的相关知识 参考链接:运行效果:https://www.bilibili.com/video/BV1ZK4y1T7jR?share_source=copy_web mooc教学视频(含丰富的

Mr Qin的博客 9356

ORB-SLAM2运行自己的数据集

ORB-SLAM2运行自己的数据集

sylvester的博客 1万+

ORB_SLAM2 定位模式

ORB_SLAM2 定位模式 上一篇博客记载了ORB_SLAM2地图保存与加载的过程,本篇博客接着上一篇博客的内容记录在已拥有地图的情况下,ORB_SLAM2定位模式的如何运行。 前提 为了实现纯定位,需要对上一篇博客的内容进行一点小小的修改。我们需要在Map.h文件中重新定义Load()函数。即: void Load(const string &amp;amp;filename,SystemSettin...

Mr.Andy的博客 6934

ORB-SLAM 2跑通自己的数据集

ORB-SLAM 2跑通自己的数据集一 、拍摄视频并转化为图片:二、准备索引目录文件:三、生成自己的参数配置文件TUM.yaml。复制TUM1.yaml,并修改参数即可。四、ORB-SLAM2所在的目录并运行如下命令即可:五、本次实验存在的问题: 一 、拍摄视频并转化为图片: 创建python文件,命名为:setVedio.py #coding:utf-8 import os import cv2...

qq_42585108的博客 2606

ORB-slam的配置和使用

ORB-slam介绍 ORB-SLAM2 is a real-time SLAM library for Monocular, Stereo and RGB-D cameras that computes the camera trajectory and a sparse 3D reconstruction (in the stereo and RGB-D case with true scale

浩苏的博客 9239

用ORB SLAM2跑自己的图片序列数据集

ORBSLAM2运行自己的图片序列,首先进行数据准备。我这里是通过摄像头采集到的视频。先要将视频处理成一帧一帧的图片,然后生成rgb.txt。然后运行

ORB_SLAM2配置过程

ORB_SLAM2配置过程 本文记录了ORB_SLAM在Ubuntu16.04中的配置过程,并且包含ROS 环境下ROB_SLAM的配置。 1、背景 ORB-SLAM是由Raul Mur-Artal,J. M. M. Montiel和Juan D. Tardos于2015年发表在IEEE Transactions on Robotics。ORB-SLAM是一个基于特征点的实时单目SLAM系统,在大...

Mr.Andy的博客 3万+

ROS Noetic下Gazebo仿真:从零搭建两轮差速机器人(含ros_control配置避坑指南)

本文详细介绍了在ROS Noetic环境下,使用Gazebo从零搭建两轮差速机器人并进行仿真的完整流程。核心内容包括利用Xacro进行模块化建模,并重点解析了通过ros_control框架配置机器人运动控制的详细步骤与常见避坑指南,帮助开发者成功实现机器人在仿真环境中的差速驱动与运动控制。

game4的博客 620

ORB_SLAM2 源码解析 ORB_SLAM2简介(一)

一、ORB_SLAM2的特点 1、ORB_SLAM2是首个支持单目、双目和RGB-D相机的完整开源SLAM方案,能够实现地图重用,回环检测和重新定位的功能。 2、能够在GPU上进行实时工作,比如手机、无人机、汽车。 3、特征点法的巅峰之作,定位精度非常高。 4、能够实时计算处相机的位姿,并生成场景的稀疏三维重建地图。 二、算法流程框架 ORB-SLAM整体流程如下图所示 它主要有三个线程组成:跟踪、Local Mapping(又称小图)、Loop Closing(又称大图...

m0_58173801的博客 1万+

NVIDIA Jetson Orin系列 - 使用SDK Manager安装JetPack全流程解析

本文详细解析了使用NVIDIA官方SDK Manager为Jetson Orin系列开发板安装JetPack系统的完整流程。从环境准备、设备进入恢复模式,到SDK Manager图形化界面的分步操作指南,提供了新手友好的全流程解析,并分享了安装后的验证方法及常见问题解决方案,帮助开发者高效搭建稳定的边缘AI开发环境。

nn3456的博客 406

Apifox CLI + Claude Skills:将接口自动化测试融入ai

基于 Apifox CLI、Claude Code以及Claude Skills组合,实现自然语言触发接口自动化测试。

wwz_0012的博客 598

ORB-SLAM2和ORB-SLAM3环境配置及运行

本文是基于Ubuntu 20.04及OpenCV 4.6.0成功运行ORB-SLAM2,并在开源数据集上进行了测试。

meng_152634的博客 7657

从零构建锂电池主动均衡系统:Simulink仿真中的Buck-Boost拓扑实战指南

本文详细介绍了如何在Simulink中从零构建基于Buck-Boost拓扑的锂电池主动均衡系统。通过仿真环境搭建、参数优化、控制策略设计和性能评估,为工程师提供了完整的实战指南,帮助快速验证和优化均衡算法,提升电池组一致性与寿命。

gitlab7runner的博客 896

ORB-SLAM3运行自制数据集进行定位教程

目前手上有一个特定的任务,做应急救援的视觉SLAM,目前公共数据集比较少,考虑自建数据集,从网络上爬虫火灾、地震的等手机录制的视频,应用一些现有成熟ORB-SLAM3系统到这个数据集上看效果,然后根据效果得到一些模型改进思路。首先制作相机标定文件,然后使用Cmake工程结合ORB-SLAM3,接着爬虫获取智能手机录制应急救援场景的视频文件,对应时间戳信息,将视频分成多帧图片,最后得到自制数据集。

极客园地 4367

Vmware 17保姆级教程:从零部署华为enspPro模拟器(附镜像下载+配置优化)

本文提供了一份详尽的Vmware 17部署华为eNSP Pro模拟器的保姆级教程。内容涵盖从镜像下载、虚拟机导入、网络配置到深度性能调优的全过程,并针对常见启动失败、设备卡顿等故障提供了实用的排查方案,旨在帮助网络工程师和华为认证备考者快速搭建稳定高效的实验环境。

arduino9maker的博客 633

blenderproc 制作位姿估计数据集

blenderproc 制作位姿估计数据集 准备工作 1.首先需要去下载blenderproc的源码blenderproc,按照作者的readme文件进行编译。 2.其次需要下载bop_toolkit源码,链接如下bop_toolkit 3.说明:blenderproc主要用来生成数据,包括depth,rgb,位姿标签文件(scene_gt.json),bop_toolkit主要用来生成mask和mask_visib,scene_gt_info.json,用于判断物体的可见区域比例,如果遮挡太多考虑去掉。做

qq_43814359的博客 5697

保姆教程教你如何使用数据集运行ORB-SLAM3

链接:这篇文章是详细教怎么运行ORB-SLAM2的,那么下来我们就看看怎么运行ORB-SLAM3理论上ORB-SLAM2的环境也是可以跑ORB-SLAM3的,因为我之前试过,编译成功了,由于某些原因,我把虚拟机给删了。所以只能从头再来!还有就是远程连接虚拟机在windows上下载传到ubuntu上,我给大家推荐WinSCP这个软件,比我前面用的Xshell,Xftp好用多了!远程链接如果连接不上,大家自行网上搜索解决方案!

qq_57425280的博客 5987

华为OD机试 - 报文响应时间 - 贪心算法、位运算(Python/JS/C/C++ 2024 E卷 200分)

贪心算法是在每一步选择中都做出当前最优的选择,期望通过局部最优解推导出全局最优解的算法。

学Java,找哪吒 1757

ORB-SLAM2之地图保存、加载和重定位

前言 ORB-SLAM2的开源代码没有开发保存和加载地图的功能,重定位也只是在线的。 很多情况下,我们需要保存地图,并加载地图进行重定位。 很多人在这方面进行了探索,并开源了代码,这篇博客就是根据一版开源代码修改实现的。 参考资料: [1] https://blog.youkuaiyun.com/jjjwwwjjjwww/article/details/51248539 [2] https://b...

W_Tortoise的博客 1万+

OSG 核心详解

OpenSceneGraph (OSG) 的核心架构、场景图管理以及几何体的绘制

qq_45859163的博客 729

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ORB-SLAM2的编译运行以及TUM数据集测试

近段时间一直在学习高翔博士的《视觉SLAM十四讲》,学了以后发现自己欠缺的东西实在太多,好多都需要深入系统的学习。ORB-SLAM2是一套完整的SLAM方案,提供了单目,双目和RGB-D三种接口。它能够实现地图重用,回环检测和重新定位的功能。无论是在室内的小型手持设备,还是到工厂环境的无人机和城市里驾驶的汽车,ORB-SLAM2都能够在标准的CPU上进行实时工作。ORB-SLAM2在后端上采用的是...

Night___Raid的博客 5650

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

[ORB_SLAM2]零基础搭建与运行

笔者是在Windows 10 的笔记本利用VMware 搭建虚拟机Ubuntu 20.04,在Ubuntu上配置ORB_SLAM2算法,耗时两天,记录一下自己心酸的历程(本人刚开始学习SLAM一个月,真正零基础教程,希望本文能帮到有需要的人)。 1. 硬件 (1)神州笔记本电脑,配置如下: 处理器:Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz 2.59 GHz 机带RAM:16.0 GB (2)虚拟机设置: 硬盘:80 G(强烈建议弄大一点,因为之后数.

lucas_ly的博客 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

使用摄像头运行ORB SLAM2---使用视频运行ORB-SLAM2

可以使用自己的笔记本的摄像头来读取周围的环境以运行ORB SLAM2。 如果你的笔记本恰好没有摄像头,你也可以外接一个USB摄像头。 相机标定: myslam.yaml %YAML:1.0 #-------------------------------------------------------------------------------------------- # Camera...

ykwjt的博客 9154

ORB-SLAM2编译安装以及跑KITTI数据集

ORB-SLAM2 http://webdiis.unizar.es/~raulmur/orbslam/ ORB-SLAM2是用于单目,双目和RGB-D相机的实时SLAM库,可计算相机轨迹和稀疏的3D重建(在具有真实比例的双目和RGB-D情况下)。 它能够实时检测环路并重新定位摄像机。 我们提供了一些示例,以在KITTI数据集以双目或单目,在TUM数据集以RGB-D或单眼,在EuRoC数据集以双...

qq_37417682的博客 9713

ORB-SLAM2系列第一章——简介

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、ORB-SLAM2算法架构详解二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、ORB-SLAM2算法架构详解 这是ORB-SLAM2文章中的系统线程和模块框架。 二、使用步骤 1.引入库 代码如下(示例):.

weixin_45947476的博客 6708

ORB-SLAM2 论文阅读笔记 + 无痛复现

本文提出了一个包括地图重用闭环和重定位功能的完整SLAM系统ORB-SLAM2,适用于单目、双目和 RGB-D像机。该系统可在标准cpu上实时工作,适用于各种环境,从小型手持室内序列,到工业环境中飞行的无人机 和 在城市中行驶的汽车。我们的后端基于使用单双目观测的BA,这允许公制尺度下的精确轨迹估算。系统包含一个轻量级定位模式,利用视觉里程计跟踪未映射区域,并匹配地图点,允许零漂移定位。对29个常用公共序列的评估表明,ORB-SLAM2 的精度达到了 state-of-the-art,在。

weixin_45442591的博客 8580
上一篇: Ubuntu 18.04安装Kalibr保姆级教程
下一篇: INDEMIND双目惯性模组运行VINS-Fusion教程
极客范儿
极客范儿 新星创作者: 游戏开发技术领域 新星创作者: 游戏开发技术领域 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄12年 1万+粉丝 341原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客范儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值