wenbowen123 / iros20-6d-pose-tracking

[IROS 2020] se(3)-TrackNet: Data-driven 6D Pose Tracking by Calibrating Image Residuals in Synthetic Domains
Other
385 stars 66 forks source link

about predict.py and evl_yab.py #16

Closed zhuyazhi closed 3 years ago

zhuyazhi commented 3 years ago
  1. 您好,请问predict.py和evl_yab.py这两个.py都需要运行才是测试吗? 如果要进行测试,需要运行两个.py吗?
wenbowen123 commented 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.

zhuyazhi commented 3 years ago

thank you`

  1. 我运行predict.py的结果是adi_auc =97.87,但是运行eval_ycb.py的结果是 add: 97.22709481181084 adi: 97.83757093086494 这两个adi有什么关系呢?
  2. 我发现在eval_ycb.py中,以下代码是用于读取pred_pose的,但是默认的输出是00000.txt和00000gt.txt在一个路径下,所以len(pose_files) = 4016 。而我将pred_txt与gt_txt分别存储在out_dir/pred/和out_dir/gt/下,所以pose_files应该只读取pred_pose(00000.txt ... 02007.txt),您认为这样是对的吗?

def eval_one_class(args): pose_files = sorted(glob.glob(args.res_dir+'pred/'+'*.txt',recursive=True)) print(len(pose_files)) #2008

  1. 我注意到并不是所有的pred_pose和对应的gt_pose加入add计算,而是在关键帧里面的才计算,请问我的理解对吗?为什么要这样呢?

    seq_frame_str = '%04d/%06d'%(seq_id,frame_id)

    print(seq_frame_str)

    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)

    print(gt_file)

我注释了这两句判断,最终的结果如下:

if seq_frame_str not in keyframes:

  #continue

args.class_id: 12 021_bleach_cleanser add: 97.36765553284819 adi: 97.88892223750305 希望得到您回复

johnbhlm commented 3 years ago

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.

zhuyazhi commented 3 years ago

thank you for your suggestion~

wenbowen123 commented 3 years ago

@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.

zhuyazhi commented 3 years ago

ok, thanks for your reply。

jinzhiyang1 commented 3 years ago

ok, thanks for your reply。 大佬你好,我最近也在看这个项目,但是在eval的时候出现了一些错误,你能分享一下eval_ycbineoat.py的配置路径么,万分感谢