ORB-SLAM 2跑通自己的數據集

一 、拍攝視頻並轉化爲圖片:

創建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後在來解決此問題)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章