Closed zhuyazhi closed 3 years ago
Hi, predict.py is used to predict pose results. eval_ycb.py will then evaluate its saved poses and get the scores on the benchmark.
thank you`
def eval_one_class(args): pose_files = sorted(glob.glob(args.res_dir+'pred/'+'*.txt',recursive=True)) print(len(pose_files)) #2008
我注意到并不是所有的pred_pose和对应的gt_pose加入add计算,而是在关键帧里面的才计算,请问我的理解对吗?为什么要这样呢?
seq_frame_str = '%04d/%06d'%(seq_id,frame_id)
if seq_frame_str not in keyframes: continue pred = np.loadtxt(pose_file) gt_file = '{}/data_organized/%04d/pose_gt/{}/%06d.txt'.format(args.ycb_dir,args.class_id)%(seq_id,frame_id)
我注释了这两句判断,最终的结果如下:
#continue
args.class_id: 12 021_bleach_cleanser add: 97.36765553284819 adi: 97.88892223750305 希望得到您回复
I think that different CAD models lead to different results. In predict.py file, you may be using YCB_traindata->data_info.yml->textured.ply as CAD model,but in eval_ycb.py,you may be using *points.xyz as CAD model. So when calculating ADD and ADD-S will be different.
thank you for your suggestion~
@johnbhlm says is correct.
@zhuyazhi , evaluating only on keyframes is the rule of YCB-Video benchmark. You can check PoseCNN for more details on the evaluation protocol.
ok, thanks for your reply。
ok, thanks for your reply。 大佬你好,我最近也在看这个项目,但是在eval的时候出现了一些错误,你能分享一下eval_ycbineoat.py的配置路径么,万分感谢