当前位置:   article > 正文

手把手教你利用ORB_SLAM2制作自己的数据集(手机拍摄即可,不需要ROS)_手机视频转tum 数据集

手机视频转tum 数据集

首先保证你已经安装好ORB_SLAM2并且已经可以跑通TUM数据集了。如果不知道怎么配置ORB_SLAM2环境可以参考我其他的文章。

起初你的ORB_SLAM2文件夹应该基本长这样

用手机拍摄一段视频,我拍的是实验室工位大约2分钟视频。在拍摄开始,要对准一个位置慢慢左右移动镜头,因为,单目一开始要初始化,然后再拍摄其他地方,镜头旋转速度不要太快。拐弯处也不要太快。将拍好的视频上传到电脑,命名为myvideo.mp4,放在ORB-SLAM2文件夹中。

如果你的电脑打不开视频显示需要HEVC解码器,附上一个扩展(安装64位即可)

https://niamia.lanzouw.com/icUmB0yizpkd   

 

第一步:新建一个 myvideo.yaml 

打开终端输入指令

gedit myvideo.yaml

在跳出来的文件中输入以下代码(设置手机参数)

  1. %YAML:1.0
  2. #--------------------------------------------------------------------------------------------
  3. # Camera Parameters. Adjust them!
  4. #--------------------------------------------------------------------------------------------
  5. # Camera calibration and distortion parameters (OpenCV)
  6. Camera.fx: 500.0
  7. Camera.fy: 500.0
  8. Camera.cx: 320.0
  9. Camera.cy: 240.0
  10. Camera.k1: 0
  11. Camera.k2: 0
  12. Camera.p1: 0
  13. Camera.p2: 0
  14. Camera.k3: 0
  15. # Camera frames per second
  16. Camera.fps: 30.0
  17. # Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)
  18. Camera.RGB: 0
  19. #--------------------------------------------------------------------------------------------
  20. # ORB Parameters
  21. #--------------------------------------------------------------------------------------------
  22. # ORB Extractor: Number of features per image
  23. ORBextractor.nFeatures: 1000
  24. # ORB Extractor: Scale factor between levels in the scale pyramid
  25. ORBextractor.scaleFactor: 1.2
  26. # ORB Extractor: Number of levels in the scale pyramid
  27. ORBextractor.nLevels: 8
  28. # ORB Extractor: Fast threshold
  29. # Image is divided in a grid. At each cell FAST are extracted imposing a minimum response.
  30. # Firstly we impose iniThFAST. If no corners are detected we impose a lower value minThFAST
  31. # You can lower these values if your images have low contrast
  32. ORBextractor.iniThFAST: 10
  33. ORBextractor.minThFAST: 5
  34. #--------------------------------------------------------------------------------------------
  35. # Viewer Parameters
  36. #--------------------------------------------------------------------------------------------
  37. Viewer.KeyFrameSize: 0.05
  38. Viewer.KeyFrameLineWidth: 1
  39. Viewer.GraphLineWidth: 0.9
  40. Viewer.PointSize: 2
  41. Viewer.CameraSize: 0.08
  42. Viewer.CameraLineWidth: 3
  43. Viewer.ViewpointX: 0
  44. Viewer.ViewpointY: -0.7
  45. Viewer.ViewpointZ: -1.8
  46. Viewer.ViewpointF: 500

第二步:新建 myvideo.cpp 

打开终端输入指令

gedit myvideo.cpp

在跳出来的文件输入以下代码

  1. #include <opencv2/opencv.hpp>
  2. #include "System.h"
  3. #include <string>
  4. #include <chrono> // for time stamp
  5. #include <iostream>
  6. using namespace std;
  7. // 参数文件与字典文件
  8. // 如果你系统上的路径不同,请修改它
  9. string parameterFile = "./myvideo.yaml";
  10. string vocFile = "./Vocabulary/ORBvoc.txt";
  11. // 视频文件,若不同请修改
  12. string videoFile = "./myvideo.mp4";
  13. int main(int argc, char **argv) {
  14. // 声明 ORB-SLAM2 系统
  15. ORB_SLAM2::System SLAM(vocFile, parameterFile, ORB_SLAM2::System::MONOCULAR, true);
  16. // 获取视频图像
  17. cv::VideoCapture cap(videoFile); // change to 0 if you want to use USB camera.
  18. // 记录系统时间
  19. auto start = chrono::system_clock::now();
  20. while (1) {
  21. cv::Mat frame;
  22. cap >> frame; // 读取相机数据
  23. if ( frame.data == nullptr )
  24. continue;
  25. // rescale because image is too large
  26. cv::Mat frame_resized;
  27. cv::resize(frame, frame_resized, cv::Size(640,360));
  28. auto now = chrono::system_clock::now();
  29. auto timestamp = chrono::duration_cast<chrono::milliseconds>(now - start);
  30. SLAM.TrackMonocular(frame_resized, double(timestamp.count())/1000.0);
  31. cv::waitKey(30);
  32. }
  33. return 0;
  34. }

myvideo.yaml、ORBvoc.txt、myvideo.mp4的具体位置可自行修改。 

第三步:修改CMakeLists.txt

  1. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR})
  2. add_executable(myvideo myvideo.cpp)
  3. target_link_libraries(myvideo ${PROJECT_NAME})

 

最后打开终端输入以下指令就可以运行了。

  1. cd ORB_SLAM2
  2. mkdir build
  3. cd build
  4. cmake ..
  5. make -j
  6. cd ..
  7. ./myvideo

我的运行结果,我是没太移动所以变化不太明显

 

 

 

 

 

 

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/714133
推荐阅读
相关标签
  

闽ICP备14008679号