0

KITTI オドメトリ データセットをグラウンド トゥルースと Velodyne ポイント クラウド データで視覚化しました。 http://www.cvlibs.net/datasets/kitti/eval_odometry.php

シーケンスのループ後、カメラ位置の高さが異なっているように見えます。これが正常かどうかわからないか、何かを誤解しています。このデータをグラウンドトゥルースとして使用する場合、何かを変更しますか、それともそのまま使用しますか?

これは、ポーズの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 の深度値を重ねたカラー画像です。それも良さそうです。

ここに画像の説明を入力

4

0 に答える 0