setup.md

March 10, 2021 · View on GitHub

Setup annotations and data directories

Download template models and annotations

Download from here We provide rigged version of 3D template models for articulation. Every model has the following structured

cachedir
└───models
│   └───horse
│       │   mean_shape.mat ## contains mapping from UV value to faceindex on the template shape 
│       │   model.obj ## Base template shape
│       │   kp2vertex.txt ## Approximate 3D locations for keypoint vertices
│       │   mirror_transforms.txt ## Correspondence between transformation on reflection
│       │   hierarchy.xml ## Part hierarcy for articulation
│       │   parts.pkl ## Labelled vertices for every part
│       │   part_names.txt ## Part names

└───bird
    │    ...

Download image annotations and splits

Download our pretrained model and cached annotations from here

cd acsm
tar -xf cachedir.tar

Download models for other imagenet catgories

cd acsm/cachedir/
wget https://www.dropbox.com/s/05lohn7x96o3fuf/models.zip?dl=0
unzip -q models.zip 

Training and Testing on CUBS dataset

  • Train Birds with Keypoints. Generate training command using this

      python -m acsm.experiments.job_script --category=bird --kp=True --parts_file=acsm/part_files/bird.txt
    
  • Train Birds without Keypoints

      python -m acsm.experiments.job_script --category=bird --kp=False --parts_file=acsm/part_files/bird.txt
    
  • Evaluate KP Projection

    python -m acsm.benchmark.pascal.kp_project --name=acsm_bird_3parts --category=bird --parts_file=acsm/part_files/bird.txt --use_html --dl_out_pascal=True --dl_out_imnet=False --split=val --num_train_epoch=200 --num_hypo_cams=8 --env_name=acsm_bird_3parts_pck_val --multiple_cam=True  --visuals_freq=5 --visualize=True --n_data_workers=4 --scale_bias=1.5  --resnet_style_decoder=True --resnet_blocks=4 --el_euler_range=90 --cyc_euler_range=60
    
  • Evaluate KP PCK Transfer

    python -m acsm.benchmark.pascal.kp_transfer --name=acsm_bird_3parts --category=bird  --parts_file=acsm/part_files/bird.txt --use_html --dl_out_pascal=True --dl_out_imnet=False --split=val --num_train_epoch=200 --num_hypo_cams=8 --env_name=acsm_bird_3parts_transfer_pck_val --multiple_cam=True --num_eval_iter=10000 --visuals_freq=1000  --visualize=True --n_data_workers=4  --scale_bias=1.5  --resnet_style_decoder=True  --resnet_blocks=4 --el_euler_range=90 --cyc_euler_range=60
    

Training and Testing on Pascal Horses dataset

  • Train Horses with Keypoints. Generate training command using this

      python -m acsm.experiments.job_script --category=horse --kp=True --parts_file=acsm/part_files/horse.txt
    
  • Train Horses without Keypoints

      python -m acsm.experiments.job_script --category=horse --kp=False --parts_file=acsm/part_files/horse.txt
    
  • Evaluate KP PCK

    python -m acsm.benchmark.pascal.kp_project --name=acsm_horse_8parts --category=horse --parts_file=acsm/part_files/horse.txt --use_html --dl_out_pascal=True --dl_out_imnet=False --split=val --num_train_epoch=200 --num_hypo_cams=8 --env_name=acsm_horse_8parts_pck_val --multiple_cam=True  --visuals_freq=5 --visualize=True --n_data_workers=4 --scale_bias=0.75 --resnet_style_decoder=True --resnet_blocks=4 --el_euler_range=20 --cyc_euler_range=20
    
  • Evaluate KP Projection

    python -m acsm.benchmark.pascal.kp_transfer --name=acsm_horse_8parts --category=horse  --parts_file=acsm/part_files/horse.txt --use_html --dl_out_pascal=True --dl_out_imnet=False --split=val --num_train_epoch=200 --num_hypo_cams=8 --env_name=acsm_horse_8parts_transfer_pck_val --multiple_cam=True --num_eval_iter=10000 --visuals_freq=1000  --visualize=True --n_data_workers=4  --scale_bias=0.75  --resnet_style_decoder=True  --resnet_blocks=4 --el_euler_range=20 --cyc_euler_range=20
    

Other configurations of models.

ModelKeypoint SupvNum of Parts
acsm_bird_kp_3partsYes3
acsm_bird_3partsNo3
acsm_bird_kp_0partsYes0
acsm_bird_0partsNo0
acsm_horse_kp_8partsYes8
acsm_horse_8partsNo8
acsm_horse_kp_0partsYes0
acsm_horse_0partsNo0