用自制数据集测试好几次,老是忘记数据集格式。主要是在ORB3中已经很贴心的把路径细化了,所以输入指令的时候不用像ORB2一样,可以参考下面的格式进行设计,这样调用起来更方便。
首先回顾一下EuRoC
数据的格式:
参考:EuRoC数据集介绍
——mav0
— cam0
data :图像文件
data.csv :图像时间戳
sensor.yaml : 相机参数【内参fu,fv,cu,cv、外参T_BS(相机相对于b系的位姿)、畸变系数】
— cam1
data :图像文件
data.csv :图像时间戳
sensor.yaml : 相机参数【内参fu,fv,cu,cv、外参T_BS(相机相对于b系的位姿)、畸变系数】
— imu0
data.csv : imu测量数据【时间戳、角速度xyz、加速度xyz】
sensor.yaml : imu参数【外参T_BS、惯性传感器噪声模型以及噪声参数】
— leica0
data.csv : leica测量数据【时间戳、prism的3D位置】
sensor.yaml : imu参数【外参T_BS】
— state_groundtruth_estimae0**
data.csv :地面真实数据【时间戳、3D位置、姿态四元数、速度、ba、bg】
sensor.yaml :
自己制作双目数据集的话,先生成一个made
文件夹(名字自己改),里面至少需要下面的文件:
——mav0//数据集名称,不要修改
— cam0//必须保留,要不就改程序
data :图像文件//是一个文件夹,里面的图像名称必须是`时间戳.png`
data.csv :图像时间戳//时间戳是18位的,19位也可以,根据自己需要。
sensor.yaml : 相机参数【内参fu,fv,cu,cv、外参T_BS(相机相对于b系的位姿)、畸变系数】//这个可以放到ORB3的路径下,可以根据自己的数据集名称设定,比如made.yaml
— cam1
data :图像文件
data.csv :图像时间戳
sensor.yaml : 相机参数【内参fu,fv,cu,cv、外参T_BS(相机相对于b系的位姿)、畸变系数】
此外还需要timestamp.txt
和made.yaml
文件。
——timestamp.txt//可以自己用matlab生成,参考之前整理的自制EuRoC数据集blog,记得在win生成在ubuntu下使用sed -i 's/\r//' timestamp.txt消除多余符号
——made.yaml//和euroc数据集一样的参数文件
按照下面的指令的话,timestamp.txt
放到Examples/Stereo/EuRoC_TimeStamps
下,made.yaml
放到Examples/Stereo
下。自己可以用自己的路径。
最后调用指令用:
./Examples/Stereo/stereo_euroc ./Vocabulary/ORBvoc.txt ./Examples/Stereo/made.yaml <自己的数据集路径>/made ./Examples/Stereo/EuRoC_TimeStamps/timestamp.txt