如何评估 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测程开发套件,以确保它是完整的。但是,它仍然存在上述问题。

你需要添加(在 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!");
}
}

最新更新