articulated-pose icon indicating copy to clipboard operation
articulated-pose copied to clipboard

Confirmation of the results

Open Lynne-Zheng-Linfang opened this issue 4 years ago • 5 comments

Hi Xiaolong,

I have tried to run the evaluation code by using the provided dataset. I followed the instructions, corrected some bugs though. The results shown on my server are as follows:

(articulated-pose) user@lambda-dual:~/Documents/Code/articulated-pose$ cd evaluation/
(articulated-pose) user@lambda-dual:~/Documents/Code/articulated-pose/evaluation$ python eval_pose_err.py --item='eyeglasses' --domain='unseen' --nocs='ANCSH'

/home/user/Documents/Code/articulated-pose/results/pickle/3.9/unseen_ANCSH_eyeglasses_rt.pkl
number of data for pn_gt : 2730
/home/user/Documents/Code/articulated-pose/results/pickle/3.9/unseen_NAOCS_eyeglasses_rt.pkl
number of data for gn_gt : 2730
/home/usesr/Documents/Code/articulated-pose/results/pickle/3.9/unseen_ANCSH_eyeglasses_rt_pn.pkl
number of data for baseline : 544
For unseen object, ANCSH nocs, mean rotation err per part is: 
baseline 3.8505 8.3401 7.0143
nonlinea 128.0051 126.1274 130.9753

For unseen object, ANCSH nocs, mean translation err per part is: 
baseline 0.0450 0.0842 0.0758
nonlinea 1.1314 1.2538 1.3448


For unseen object, ANCSH nocs, 5 degrees accuracy per part is: 
baseline 0.9320 0.5460 0.5607
nonlinea 0.0129 0.0037 0.0018


For unseen object, ANCSH nocs, 5 degrees, 5 cms accuracy per part is: 
baseline 0.8989 0.3768 0.4007
nonlinea 0.0000 0.0000 0.0018


fetch rts data for baseline
fetch rts data for nonlinear
/home/user/Documents/Code/articulated-pose/evaluation/../lib/d3_utils.py:148: RuntimeWarning: invalid value encountered in arccos
  return np.arccos( ( np.trace(np.matmul(rot1, rot2.T)) - 1 ) / 2 ) % (2*np.pi)
For unseen object, ANCSH nocs, mean relative rotation err per part is: 
baseline 9.3495 8.3491
nonlinea 87.4471 127.2190

Are the results right? I think the baseline is for NPCS, and the nonlinear one is for ANCSH. Please correct me if I was wrong.

Lynne-Zheng-Linfang avatar Feb 11 '21 12:02 Lynne-Zheng-Linfang

Hi Linfang,

The NPCS baseline result looks correct to me, but the nonlinear one doesn't. While the ransac-based nonlinear solver doesn't always guarantee a better estimation, it shouldn't be such worse. It might help if you could check whether some rotations are wrongly predicted to be 180 degrees flipped. Also keep in mind that the predicted joint, which is used during the nonlinear iteration, needs to be in the right direction.

Best, Xiaolong

dragonlong avatar Feb 12 '21 16:02 dragonlong

Hi Linfang,

The NPCS baseline result looks correct to me, but the nonlinear one doesn't. While the ransac-based nonlinear solver doesn't always guarantee a better estimation, it shouldn't be such worse. It might help if you could check whether some rotations are wrongly predicted to be 180 degrees flipped. Also keep in mind that the predicted joint, which is used during the nonlinear iteration, needs to be in the right direction.

Best, Xiaolong

Hi, Xiaolong, Thanks for replying. I have checked with the code and set the USE_BASELINE to False. The results look similar to the baseline now. But I am not sure if USE_BASELINE should be set to False. Also, the results are still lower than the baseline. About the dealing of the direction of the predicted joints, I think it should have been done in the written code?

(articulated-pose) linfang@lambda-dual:~/Documents/Code/articulated-pose/evaluation$ python eval_pose_err.py --item='eyeglasses' --domain='unseen' --nocs='ANCSH'
/home/usr/Documents/Code/articulated-pose/results/pickle/3.9/unseen_ANCSH_eyeglasses_rt.pkl
number of data for pn_gt : 2730
/home/usr/Documents/Code/articulated-pose/results/pickle/3.9/unseen_NAOCS_eyeglasses_rt.pkl
number of data for gn_gt : 2730
/home/usr/Documents/Code/articulated-pose/results/pickle/3.9/unseen_ANCSH_eyeglasses_rt_pn.pkl
number of data for baseline : 544
For unseen object, ANCSH nocs, mean rotation err per part is: 
baseline 3.8505 8.3401 7.0143
nonlinea 12.7156 14.2523 14.5457


For unseen object, ANCSH nocs, mean translation err per part is: 
baseline 0.0450 0.0842 0.0758
nonlinea 0.1086 0.1582 0.1794


For unseen object, ANCSH nocs, 5 degrees accuracy per part is: 
baseline 0.9320 0.5460 0.5607
nonlinea 0.8435 0.8158 0.7937


For unseen object, ANCSH nocs, 5 degrees, 5 cms accuracy per part is: 
baseline 0.8989 0.3768 0.4007
nonlinea 0.8177 0.6298 0.6077


fetch rts data for baseline
fetch rts data for nonlinear
For unseen object, ANCSH nocs, mean relative rotation err per part is: 
baseline 9.3327 8.3277
nonlinea 12.3156 14.5273

Lynne-Zheng-Linfang avatar Feb 18 '21 21:02 Lynne-Zheng-Linfang

Agree with that there may be some typo. Currently if USE_BASELINE == True, then both baseline and nonlinear uses the nocs_pred from baseline prediction. It doesn't make sense

Jianghanxiao avatar Feb 19 '21 23:02 Jianghanxiao

Hi Linfang,

The NPCS baseline result looks correct to me, but the nonlinear one doesn't. While the ransac-based nonlinear solver doesn't always guarantee a better estimation, it shouldn't be such worse. It might help if you could check whether some rotations are wrongly predicted to be 180 degrees flipped. Also keep in mind that the predicted joint, which is used during the nonlinear iteration, needs to be in the right direction.

Best, Xiaolong

Hi Xiaolong,

I have tried to debug the code by myself but the results seems not correct. Could you please update the code which works for you so that we can reproduce the same results? It should be as easy as a simple git push command. Thanks in advance.

Lynne-Zheng-Linfang avatar Feb 26 '21 10:02 Lynne-Zheng-Linfang

Hi Linfang,

I found there is actually a step missing in the cleaned ransac function, after each iteration, the best score should be updated as well, or this will result in degraded performance. Please feel free to check and test it. Thanks!

Best, Xiaolong

dragonlong avatar Apr 19 '21 20:04 dragonlong