tinypose3d_medical_multi_frames.yml 3.3 KB
Newer Older
XYZ_916's avatar
XYZ_916 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
use_gpu: true
log_iter: 5
save_dir: output
snapshot_epoch: 1
weights: output/tinypose_3D_multi_frames/model_final
epoch: 420
num_joints: &num_joints 24
pixel_std: &pixel_std 200
metric: Pose3DEval
num_classes: 1
train_height: &train_height 128
train_width: &train_width 96
trainsize: &trainsize [*train_width, *train_height]
hmsize: &hmsize [24, 32]
flip_perm: &flip_perm [[1, 2], [4, 5], [7, 8], [10, 11], [13, 14], [16, 17], [18, 19], [20, 21], [22, 23]]


#####model
architecture: TinyPose3DHRNet
pretrain_weights: medical_multi_frames_best_model.pdparams

TinyPose3DHRNet:
  backbone: LiteHRNet
  post_process: TinyPose3DPostProcess
  num_joints: *num_joints
  width: &width 40
  loss: KeyPointRegressionMSELoss

LiteHRNet:
  network_type: wider_naive
  freeze_at: -1
  freeze_norm: false
  return_idx: [0]

KeyPointRegressionMSELoss:
  reduction: 'mean'

#####optimizer
LearningRate:
  base_lr: 0.001
  schedulers:
  - !PiecewiseDecay
    milestones: [17, 21]
    gamma: 0.1
  - !LinearWarmup
    start_factor: 0.01
    steps: 1000

OptimizerBuilder:
  optimizer:
    type: Adam
  regularizer:
    factor: 0.0
    type: L2

#####data
TrainDataset:
  !Keypoint3DMultiFramesDataset
    dataset_dir: "data/medical/multi_frames/train"
    image_dir: "images"
    p3d_dir: "joint_pc/player_0"
    json_path: "json_results/player_0/player_0.json"
    img_size: *trainsize # w,h
    num_frames: 6


EvalDataset:
  !Keypoint3DMultiFramesDataset
    dataset_dir: "data/medical/multi_frames/val"
    image_dir: "images"
    p3d_dir: "joint_pc/player_0"
    json_path: "json_results/player_0/player_0.json"
    img_size: *trainsize # w,h
    num_frames: 6

TestDataset:
  !Keypoint3DMultiFramesDataset
    dataset_dir: "data/medical/multi_frames/val"
    image_dir: "images"
    p3d_dir: "joint_pc/player_0"
    json_path: "json_results/player_0/player_0.json"
    img_size: *trainsize # w,h
    num_frames: 6

worker_num: 4
global_mean: &global_mean [0.485, 0.456, 0.406]
global_std: &global_std [0.229, 0.224, 0.225]
TrainReader:
  sample_transforms:
    - CropAndFlipImages:
        crop_range: [556, 1366]
    - RandomFlipHalfBody3DTransformImages:
        scale: 0.25
        rot: 30
        num_joints_half_body: 9
        prob_half_body: 0.3
        pixel_std: *pixel_std
        trainsize: *trainsize
        upper_body_ids: [0, 3, 6, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
        flip_pairs: *flip_perm
        do_occlusion: true
    - Resize: {interp: 2, target_size: [*train_height,*train_width], keep_ratio: false}
  batch_transforms:
    - NormalizeImage:
        mean: *global_mean
        std: *global_std
        is_scale: true
    - PermuteImages: {}
  batch_size: 32
  shuffle: true
  drop_last: false

EvalReader:
  sample_transforms:
    - CropAndFlipImages:
        crop_range: [556, 1366]
    - Resize: {interp: 2, target_size: [*train_height,*train_width], keep_ratio: false}
  batch_transforms:
    - NormalizeImage:
        mean: *global_mean
        std: *global_std
        is_scale: true
    - PermuteImages: {}
  batch_size: 32

TestReader:
  inputs_def:
    image_shape: [3, *train_height, *train_width]
  sample_transforms:
    - Decode: {}
    - LetterBoxResize: { target_size: [*train_height,*train_width]}
    - NormalizeImage:
        mean: *global_mean
        std: *global_std
        is_scale: true
    - Permute: {}
  batch_size: 1
  fuse_normalize: false