0

我正在尝试使用 KITTI 开放数据集来做一些关于视觉里程计或视觉 INS 里程计的测试。但我无法理解 KITTI 里程计提供的代码。

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

它提供了基准来评估与它提供的基本事实姿势相比的其他结果。我曾尝试cmake在 Ubuntu 16.04 LTS 上构建代码,但它似乎不起作用。

开发包文件夹中有四个文件,分别是matrix.hmatrix.cpp、。我担心文件中可能缺少一些班级成员。如下图所示:evaluate_odometry.cppmail.hevaluate_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 开发套件,以确保它是完整的。但是,上面的问题仍然存在。

4

1 回答 1

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!");
   }
}
于 2019-07-24T18:46:10.733 回答