我正在尝试使用KITTI开放数据集对视觉测距法或视觉INS测距法进行一些测试。但是我不明白KITTI里程表提供的代码。
我已经在KITTI网站上下载了里程计数据集的开发套件(我认为它包括C ++中的一些代码)。 (访问http://www.cvlibs.net/datasets/kitti/eval_odometry.php)
与提供的地面真实情况相比,它提供了评估其他结果的基准。我曾尝试在Ubuntu 16.04 LTS上使用cmake
构建代码,但似乎不起作用。
开发工具包文件夹中有四个文档,分别是matrix.h
,matrix.cpp
,evaluate_odometry.cpp
和mail.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开发工具包,以确保它已完成。但是,它仍然存在上面的问题。
答案 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!");
}
}