tanqiu98 / 2G-GCN

Code for the ECCV'22 paper "Geometric Features Informed Multi-person Human-object Interaction Recognition in Videos".
24 stars 4 forks source link

Training time and performance are different from the paper. #4

Open dobaeky opened 1 year ago

dobaeky commented 1 year ago

I trained your model, 2G-GCN. The model code is the same and the configure file is almost identical. I trained this following process. First, I trained 2G-GCN_stage1 on mphoi. Second, I trained 2G-GCN_stage2 on mphoi. The only difference is that when training stage1, I replaced "2G-GCN" with "2G-GCN_stage1" in conf/config.yaml and when training stage2, I replaced "2G-GCN_stage1" with "2G-GCN_stage2" in conf/config.yaml again. Also, when training stage2, I substituted "pretrained_path: ${env:PWD}/outputs/cad120/2G-GCN/hs512_e50_bs16_lr0.0001_0.5_Subject1" with the checkpoint name of the output of stage1 in conf/models/2G-GCN_stage2.yaml.

And the rest of the settings are the same. As a result, it trained well but the training time took only 1 hour on one RTX3090 GPU and I tested the output checkpoint by command " python -W ignore predict.py --pretrained_model_dir ./outputs/mphoi/2G-GCN/hs512_e40_bs8_lr0.0001_0.5_Subject45 --cross_validate". The performance was as follows.

Summary F1@k results. sub-activity_prediction

    Overlap: 0.1
    Values: [0.8852]
    Mean: 0.8852    Std: 0.0000

    Overlap: 0.25
    Values: [0.863]
    Mean: 0.8630    Std: 0.0000

    Overlap: 0.5
    Values: [0.6912]
    Mean: 0.6912    Std: 0.0000

sub-activity_recognition

    Overlap: 0.1
    Values: [0.7372]
    Mean: 0.7372    Std: 0.0000

    Overlap: 0.25
    Values: [0.6793]
    Mean: 0.6793    Std: 0.0000

    Overlap: 0.5
    Values: [0.5447]
    Mean: 0.5447    Std: 0.0000

I think that these results are too different from those reported in your paper. I wonder if I'm doing it right.

tanqiu98 commented 1 year ago

Hi,

It seems like you only train the model when cross_validation_test_subject: Subject45 in conf/data/mphoi.yaml. To follow the leave-one-subject cross-validation scheme, you should also modify the Subject45 to Subject25 and Subject14, and train the model. Then you will get two-stage pre-trained models for these three leave-one-subject cross-validation groups.

When testing the model, you should run python -W ignore predict.py --pretrained_model_dir ./outputs/mphoi/2G-GCN/hs512_e40_bs8_lr0.0001_0.1_SubjectXX --cross_validate, here SubjectXX can be anyone in Subject45, Subject25, Subject14.

For your current condition, you only have the model results for cross_validation_test_subject: Subject45 and that's why the standard deviation is 0.

dobaeky commented 1 year ago

Can you share a google drive link for original cad120 dataset? The official website of cad120 seems to be closed. I want to do some research on the dataset. But I can't find a way to get the dataset. Thanks a lot.