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

Daisy ·
更新时间:2024-09-21
· 701 次阅读

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

创建python文件,命名为:setVedio.py

#coding:utf-8 import os import cv2 import numpy as np def getName(num): strTmp = [] strRes = '' while(num / 10): strTmp.append(num % 10) num = num / 10 strTmp.append(num) n = len(strTmp) for i in range(0,5-n): strRes = strRes + '0' for i in range(n-1,-1,-1): strRes = strRes + str(strTmp[i]) return strRes videoCapture = cv2.VideoCapture('home.mp4') #获得码率及尺寸 fps = videoCapture.get(cv2.CAP_PROP_FPS) size = (int(videoCapture.get(cv2.CAP_PROP_FRAME_WIDTH)), int(videoCapture.get(cv2.CAP_PROP_FRAME_HEIGHT))) #读帧 if not os.path.exists('rgb/'): os.makedirs('rgb') success, frame = videoCapture.read() idx = 1 while success: cv2.imshow("显示", frame) #显示 cv2.waitKey(1000/int(fps)) #延迟 cv2.imwrite('rgb/'+getName(idx)+'.jpg',frame) success, frame = videoCapture.read() #获取下一帧 idx = idx + 1

在相应的位置打开终端运行刚刚.py文件:

python setVedio.py 二、准备索引目录文件:

创建python文件,命名为:file_text.py

import os def getName(num): strTmp = [] strRes = '' while(num / 10): strTmp.append(num % 10) num = num / 10 strTmp.append(num) n = len(strTmp) for i in range(0,5-n): strRes = strRes + '0' for i in range(n-1,-1,-1): strRes = strRes + str(strTmp[i]) return strRes file_object = open('rgb.txt','w') Ostr = '' num = len(os.listdir('rgb')) for i in range(1,num+1): name = getName(i) Ostr = Ostr + name + ' rgb/' + name + '.jpg\n' file_object.writelines(Ostr) file_object.close() python file_text.py

在这里插入图片描述
在生成的rgb.txt文件 开始前三行,是无法识别的,所以可以加

# color images # file: 'My_slam.bag' # timestamp filename

如图:
在这里插入图片描述

三、生成自己的参数配置文件TUM.yaml。复制TUM1.yaml,并修改参数即可。

本人是用Examples/Monocular/TUM1.yaml没做修改,先跑跑试试。

四、ORB-SLAM2所在的目录并运行如下命令即可: ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/weiweu/My_SLAM/dataset1

在这里插入图片描述

五、本次实验存在的问题:

在运行时,能看到ORB-SLAM2:Current Frame的窗口一直在实时播放数据,但是ORB-SLAM2:Map Viewer的窗口始终没有发生任何改变,说明一直没有地图信息。但是运行公开的数据集就有地图信息。这是个神奇的点!(此问题有待解决,等待深入学习ORB-SLAM2后在来解决此问题)


作者:w²大大



slam 数据集 数据 orb

需要 登录 后方可回复, 如果你还没有账号请 注册新账号