c++ KITTI数据集的真实数据误差有多大?

cetgtptt  于 2023-02-26  发布在  其他
关注(0)|答案(1)|浏览(242)

我使用地面实况和Velodyne点云数据可视化了KITTI测距数据集。http://www.cvlibs.net/datasets/kitti/eval_odometry.php
在序列中循环之后,摄像机位置的高度似乎不同。我不确定这是否正常,或者我误解了一些东西。当您使用此数据作为地面真实值时,您是修改了一些东西还是按原样使用?
这是加载poses txt文件的代码

std::ifstream infile;
infile.open(poses_path, std::ios::in);
assert(infile.good());

std::string l1;
while (getline(infile, l1)) {
    double p00, p01, p02, p03;
    double p10, p11, p12, p13;
    double p20, p21, p22, p23;
    if (std::sscanf(l1.c_str(), 
        "%lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf",
        &p00,&p01,&p02,&p03,
        &p10,&p11,&p12,&p13,
        &p20,&p21,&p22,&p23) == 12) {
    }
    else {
        std::cerr << "Failed to read camera intrinsics!\n";
        infile.close();
        return;
    }

    Eigen::Matrix<double, 3, 3> R;
    R << p00, p01, p02, p10, p11, p12, p20, p21, p22;
    Eigen::Matrix<double, 3, 1> t;
    t << p03, p13, p23;

    Sophus::SE3d cam2World(R, t);
    vCam2World.push_back(cam2World);
}

infile.close();

这是一张从近处水平观看的3D点云图像。如您所见,循环后的相机位置处于不同的高度。我将Velodyne数据转换为相机坐标上的深度值,并进行可视化。然后,汽车的点云也发生了一些移动。

这是鸟瞰图,看起来不错。

这是一个彩色图像覆盖的深度值从Velodyne。它似乎也不错。

ql3eal8s

ql3eal8s1#

主要的区别是左rgb相机帧中的地面真实姿势。2你可能需要校准姿势到那个帧中。

相关问题