princeton-vl / pose-ae-train

Training code for "Associative Embedding: End-to-End Learning for Joint Detection and Grouping"
BSD 3-Clause "New" or "Revised" License
373 stars 76 forks source link

refine process #3

Open wangxuanhan opened 6 years ago

wangxuanhan commented 6 years ago

Hi, thanks for releasing the code. I have a question about the impementation of refine function in test.py It identifies all missing keypoints and that will generate the estimation for all keypoints(i.e., 17 joints). But, not all keypoints are visible or exisitent in some cases. Thus, it will give the false estimation. I don't know why it still can improve the performance by a margin. Now, i use the code to train my own model on coco2017 and it has 53% mAP on minival2017 without the refinement. The pretrained tensorflow model has 56% mAP. I wonder if i miss some training details.

anewell commented 6 years ago

The refinement step is useful for COCO but not MPII where the evaluation for COCO does not penalize false positives for individual joints so it helps final performance on the dataset to go through and generate a prediction even if it's likely that the particular joint does not exist.

Final accuracy can come down to a number of factors, it might be a matter of batchsize, number of GPUs, training time, learning rate schedule, etc. It is hard to pin down the exact reason for a difference in final performance unfortunately.

wangxuanhan commented 6 years ago

@anewell ok,thanks for reply. The batchsize in my experiments is set to 10. I guess it might be the reason to the difference in final performance. I will use the large batchsize and see whether it can help.