如何在KITTI里程表数据集中评估结果

时间:2019-07-15 08:54:23

标签: c++ opendata slam kitti

我正在尝试使用KITTI开放数据集对视觉测距法或视觉INS测距法进行一些测试。但是我不明白KITTI里程表提供的代码。

我已经在KITTI网站上下载了里程计数据集的开发套件(我认为它包括C ++中的一些代码)。 (访问http://www.cvlibs.net/datasets/kitti/eval_odometry.php

与提供的地面真实情况相比,它提供了评估其他结果的基准。我曾尝试在Ubuntu 16.04 LTS上使用cmake构建代码,但似乎不起作用。

开发工具包文件夹中有四个文档,分别是matrix.hmatrix.cppevaluate_odometry.cppmail.h。我担心evaluate_odometry.cpp文件中可能缺少一些班级成员。如下所示:

int32_t main (int32_t argc,char *argv[]) {

// we need 2 or 4 arguments!
if (argc!=2 && argc!=4) {
  cout << "Usage: ./eval_odometry result_sha [user_sha email]" << endl;
  return 1;
}

// read arguments
string result_sha = argv[1];

// init notification mail
Mail *mail;
if (argc==4) mail = new Mail(argv[3]);
else         mail = new Mail();
mail->msg("Thank you for participating in our evaluation!");

// run evaluation
bool success = eval(result_sha,mail);
if (argc==4)
  mail->finalize(success,"odometry",result_sha,argv[2]);
else
  mail->finalize(success,"odometry",result_sha);

// send mail and exit
delete mail;
return 0;
}

在工具包提供的任何文件中找不到类成员mail->finalize()。但是,我在网上搜索了该问题,但该问题通常与JAVA有关。我认为这不是JAVA的问题。

也许我缺少工具包中的某些东西,我将对其进行检查。有人可以帮我吗?我接下来该怎么办?

更新: 我已再次从KITTI网站下载了KITTI Odometry开发工具包,以确保它已完成。但是,它仍然存在上面的问题。

1 个答案:

答案 0 :(得分:0)

您需要添加(在mail.h中):

void finalize (bool success,std::string benchmark,std::string result_sha="",std::string user_sha="")
 {
   if (success)
   {
    msg("Your evaluation results are available at:");
    msg("http://www.cvlibs.net/datasets/kitti/user_submit_check_login.php?benchmark=%s&user=%s&result=%s",benchmark.c_str(),user_sha.c_str(), result_sha.c_str());
   }
   else
   {
    msg("An error occured while processing your results.");
    msg("Please make sure that the data in your zip archive has the right format!");
   }
}