zhangxy0517 / 3D-Registration-with-Maximal-Cliques

Source code of CVPR 2023 paper
MIT License
421 stars 45 forks source link

最终RE,TE评估疑惑 #25

Open pppyj-m opened 11 months ago

pppyj-m commented 11 months ago

作者您好, 最近在读您的这篇论文并成功复现了相关实验,效果很好! 但是在阅读源码中,对下面的关于RE和TE的评估部分感到疑惑。 按照代码来看,在完成MAC粗匹配后得到一个预测矩阵tmp_best,以及做完ICP精配准(SVD or WSVD)后得到best_est 之后使用evaluation_est函数与真值进行比较,然后挑选出来较好的那个作为最终结果。

但是问题就在于,正常情况下真值是未知的,不应该使用真值进行挑选! 这最终的评估方法是否存在问题,还是论文或者源码中有其他根据说明可以这样评估? 如能回复,不胜感激!

double new_re, new_te;
evaluation_est(best_est, GTmat, RE_thresh, TE_thresh, new_re, new_te);
if (**new_re < RE && new_te < TE**)
{
    RE = new_re;
    TE = new_te;
    cout << "est_trans updated!!!" << endl;
    cout << "RE=" << RE << " " << "TE=" << TE << endl;
    cout << best_est << endl;
}
else {
    best_est = tmp_best;
    cout << "RE=" << RE << " " << "TE=" << TE << endl;
    cout << best_est << endl;
}
zhangxy0517 commented 11 months ago

您好,这个是整理代码时的疏漏,RE = new_re TE = new_te应放在if外。对比优化前后误差的本意是根据不同的情况显示相应的提示信息。

pppyj-m commented 11 months ago

感谢回复! 我也感觉是放在外面才符合实际情况,不然对结果会有影响,不过应该也不是太大,后面我修改后再跑一遍数据集。 建议您也更新一下github源码,避免其他人遇到相同问题~

pppyj-m commented 11 months ago

更新一下: 对RE和TE指标还是有不小的影响: 使用源码跑3dmatch数据集 fpfh: 原先结果: RR: 84.04%, RE: 1.97, TE: 6.23 更正后: RR: 83.92%, RE: 2.11, TE: 6.79

suetme commented 11 months ago

您好,我想请教一下关于demo的运行时间。我自己运行demo的时间很久,大部分时间花在Graph_construction上,大概在25s左右,我想问问是本来就需要花这么多时间还是我没把程序复现好?下图的结果是我修改了cmp_thresh,从0.99->0.9,Graph_construction花费的时间不变,后面的一些处理时间增加了。 图片

zhangxy0517 commented 11 months ago

您好,从提供的截图看应该是以debug模式编译运行的。请按照说明以release模式编译运行。demo的构图时间应该在0.5s以内

suetme commented 11 months ago

噢!非常感谢您指出我这种低级错误!已经成功把demo复现出来了。 图片

suetme commented 11 months ago

我想再请教您一个问题,就是您在复现论文代码时有没有下图这一个错误? 图片 这个错误的提示:In template: variable 'Dynamic' must have explicitly specified data sharing attributes 虽然存在这样一个错误,但我还是能够成功构建程序并运行demo。图中的函数好像没有在程序使用,是这个原因吗?

zhangxy0517 commented 11 months ago

用不到这个函数可以忽略。PCL 1.10.1版本不会报错

zyy1234q commented 4 months ago

match

哥们有用python使用FCGF和MAC在3DMatch上测试吗,部分情况搜索的团太多,半个小时出不来一个结果