diff --git a/configs/keypoint/higherhrnet/higherhrnet_hrnet_w32_512.yml b/configs/keypoint/higherhrnet/higherhrnet_hrnet_w32_512.yml new file mode 100644 index 0000000000000000000000000000000000000000..25a0ab43cbfedacd5bcd938683280af57f86b23e --- /dev/null +++ b/configs/keypoint/higherhrnet/higherhrnet_hrnet_w32_512.yml @@ -0,0 +1,135 @@ +use_gpu: true +log_iter: 1 +save_dir: output +snapshot_epoch: 10 +weights: output/higherhrnet_hrnet_v1_512/290 +epoch: 300 +num_joints: &num_joints 17 +flip_perm: &flip_perm [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15] +input_size: &input_size 512 +hm_size: &hm_size 128 +hm_size_2x: &hm_size_2x 256 +max_people: &max_people 30 +metric: COCO +IouType: keypoints +num_classes: 1 + + +#####model +architecture: HigherHRNet +pretrain_weights: https://paddledet.bj.bcebos.com/models/pretrained/Trunc_HRNet_W32_C_pretrained.pdparams + +HigherHRNet: + backbone: HRNet + hrhrnet_head: HrHRNetHead + post_process: HrHRNetPostProcess + flip_perm: *flip_perm + eval_flip: true + +HRNet: + width: &width 32 + freeze_at: -1 + freeze_norm: false + return_idx: [0] + +HrHRNetHead: + num_joints: *num_joints + width: *width + loss: HrHRNetLoss + swahr: false + +HrHRNetLoss: + num_joints: *num_joints + swahr: false + + +#####optimizer +LearningRate: + base_lr: 0.001 + schedulers: + - !PiecewiseDecay + milestones: [200, 260] + gamma: 0.1 + - !LinearWarmup + start_factor: 0.001 + steps: 1000 + +OptimizerBuilder: + optimizer: + type: Adam + regularizer: + + +#####data +TrainDataset: + !KeypointBottomUpCocoDataset + image_dir: train2017 + anno_path: annotations/person_keypoints_train2017.json + dataset_dir: dataset/coco + num_joints: *num_joints + +EvalDataset: + !KeypointBottomUpCocoDataset + image_dir: val2017 + anno_path: annotations/person_keypoints_val2017.json + dataset_dir: dataset/coco + num_joints: *num_joints + test_mode: true + +TestDataset: + !ImageFolder + anno_path: dataset/coco/keypoint_imagelist.txt + +worker_num: 8 +global_mean: &global_mean [0.485, 0.456, 0.406] +global_std: &global_std [0.229, 0.224, 0.225] +TrainReader: + sample_transforms: + - RandomAffine: + max_degree: 30 + scale: [0.75, 1.5] + max_shift: 0.2 + trainsize: *input_size + hmsize: [*hm_size, *hm_size_2x] + - KeyPointFlip: + flip_prob: 0.5 + flip_permutation: *flip_perm + hmsize: [*hm_size, *hm_size_2x] + - ToHeatmaps: + num_joints: *num_joints + hmsize: [*hm_size, *hm_size_2x] + sigma: 2 + - TagGenerate: + num_joints: *num_joints + max_people: *max_people + - NormalizePermute: + mean: *global_mean + std: *global_std + batch_size: 20 + shuffle: true + drop_last: true + use_shared_memory: true + +EvalReader: + sample_transforms: + - EvalAffine: + size: *input_size + - NormalizeImage: + mean: *global_mean + std: *global_std + is_scale: true + - Permute: {} + batch_size: 1 + drop_empty: false + +TestReader: + sample_transforms: + - Decode: {} + - EvalAffine: + size: *input_size + - NormalizeImage: + mean: *global_mean + std: *global_std + is_scale: true + - Permute: {} + batch_size: 1 diff --git a/configs/keypoint/higherhrnet/higherhrnet_hrnet_w32_512_swahr.yml b/configs/keypoint/higherhrnet/higherhrnet_hrnet_w32_512_swahr.yml new file mode 100644 index 0000000000000000000000000000000000000000..9a9a948f38dc8d08900ba6db527cd678e1bf02bf --- /dev/null +++ b/configs/keypoint/higherhrnet/higherhrnet_hrnet_w32_512_swahr.yml @@ -0,0 +1,135 @@ +use_gpu: true +log_iter: 10 +save_dir: output +snapshot_epoch: 10 +weights: output/higherhrnet_hrnet_v1_512/model_final +epoch: 300 +num_joints: &num_joints 17 +flip_perm: &flip_perm [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15] +input_size: &input_size 512 +hm_size: &hm_size 128 +hm_size_2x: &hm_size_2x 256 +max_people: &max_people 30 +metric: COCO +IouType: keypoints +num_classes: 1 + + +#####model +architecture: HigherHRNet +pretrain_weights: https://paddledet.bj.bcebos.com/models/pretrained/Trunc_HRNet_W32_C_pretrained.pdparams + +HigherHRNet: + backbone: HRNet + hrhrnet_head: HrHRNetHead + post_process: HrHRNetPostProcess + flip_perm: *flip_perm + eval_flip: true + +HRNet: + width: &width 32 + freeze_at: -1 + freeze_norm: false + return_idx: [0] + +HrHRNetHead: + num_joints: *num_joints + width: *width + loss: HrHRNetLoss + swahr: true + +HrHRNetLoss: + num_joints: *num_joints + swahr: true + + +#####optimizer +LearningRate: + base_lr: 0.001 + schedulers: + - !PiecewiseDecay + milestones: [200, 260] + gamma: 0.1 + - !LinearWarmup + start_factor: 0.001 + steps: 1000 + +OptimizerBuilder: + optimizer: + type: Adam + regularizer: + + +#####data +TrainDataset: + !KeypointBottomUpCocoDataset + image_dir: train2017 + anno_path: annotations/person_keypoints_train2017.json + dataset_dir: dataset/coco + num_joints: *num_joints + +EvalDataset: + !KeypointBottomUpCocoDataset + image_dir: val2017 + anno_path: annotations/person_keypoints_val2017.json + dataset_dir: dataset/coco + num_joints: *num_joints + test_mode: true + +TestDataset: + !ImageFolder + anno_path: dataset/coco/keypoint_imagelist.txt + +worker_num: 8 +global_mean: &global_mean [0.485, 0.456, 0.406] +global_std: &global_std [0.229, 0.224, 0.225] +TrainReader: + sample_transforms: + - RandomAffine: + max_degree: 30 + scale: [0.75, 1.5] + max_shift: 0.2 + trainsize: *input_size + hmsize: [*hm_size, *hm_size_2x] + - KeyPointFlip: + flip_prob: 0.5 + flip_permutation: *flip_perm + hmsize: [*hm_size, *hm_size_2x] + - ToHeatmaps: + num_joints: *num_joints + hmsize: [*hm_size, *hm_size_2x] + sigma: 2 + - TagGenerate: + num_joints: *num_joints + max_people: *max_people + - NormalizePermute: + mean: *global_mean + std: *global_std + batch_size: 16 + shuffle: true + drop_last: true + use_shared_memory: true + +EvalReader: + sample_transforms: + - EvalAffine: + size: *input_size + - NormalizeImage: + mean: *global_mean + std: *global_std + is_scale: true + - Permute: {} + batch_size: 1 + drop_empty: false + +TestReader: + sample_transforms: + - Decode: {} + - EvalAffine: + size: *input_size + - NormalizeImage: + mean: *global_mean + std: *global_std + is_scale: true + - Permute: {} + batch_size: 1 diff --git a/configs/keypoint/hrnet/hrnet_coco_256x192.yml b/configs/keypoint/hrnet/hrnet_coco_256x192.yml new file mode 100644 index 0000000000000000000000000000000000000000..c7279723b601432b347f0d269a9d51f4d0e089bf --- /dev/null +++ b/configs/keypoint/hrnet/hrnet_coco_256x192.yml @@ -0,0 +1,143 @@ +use_gpu: true +log_iter: 5 +save_dir: output +snapshot_epoch: 10 +weights: output/hrnet_coco_256x192/50 +epoch: 210 +num_joints: &num_joints 17 +pixel_std: &pixel_std 200 +metric: KeyPointTopDownCOCOEval +num_classes: 1 +train_height: &train_height 256 +train_width: &train_width 192 +trainsize: &trainsize [*train_width, *train_height] +hmsize: &hmsize [48, 64] +flip_perm: &flip_perm [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12], [13, 14], [15, 16]] + + +#####model +architecture: TopDownHRNet +pretrain_weights: https://paddledet.bj.bcebos.com/models/pretrained/Trunc_HRNet_W32_C_pretrained.pdparams + +TopDownHRNet: + backbone: HRNet + post_process: HRNetPostProcess + flip_perm: *flip_perm + num_joints: *num_joints + width: &width 32 + loss: KeyPointMSELoss + +HRNet: + width: *width + freeze_at: -1 + freeze_norm: false + return_idx: [0] + +KeyPointMSELoss: + use_target_weight: true + + +#####optimizer +LearningRate: + base_lr: 0.0005 + schedulers: + - !PiecewiseDecay + milestones: [170, 200] + gamma: 0.1 + - !LinearWarmup + start_factor: 0.001 + steps: 1000 + +OptimizerBuilder: + optimizer: + type: Adam + regularizer: + factor: 0.0 + type: L2 + + +#####data +TrainDataset: + !KeypointTopDownCocoDataset + image_dir: train2017 + anno_path: annotations/person_keypoints_train2017.json + dataset_dir: dataset/coco + num_joints: *num_joints + trainsize: *trainsize + pixel_std: *pixel_std + use_gt_bbox: True + + +EvalDataset: + !KeypointTopDownCocoDataset + image_dir: val2017 + anno_path: annotations/person_keypoints_val2017.json + dataset_dir: dataset/coco + bbox_file: person_detection_results/COCO_val2017_detections_AP_H_56_person.json + num_joints: *num_joints + trainsize: *trainsize + pixel_std: *pixel_std + use_gt_bbox: True + image_thre: 0.0 + + +TestDataset: + !ImageFolder + anno_path: dataset/coco/keypoint_imagelist.txt + +worker_num: 2 +global_mean: &global_mean [0.485, 0.456, 0.406] +global_std: &global_std [0.229, 0.224, 0.225] +TrainReader: + sample_transforms: + - RandomFlipHalfBodyTransform: + scale: 0.5 + rot: 40 + num_joints_half_body: 8 + prob_half_body: 0.3 + pixel_std: *pixel_std + trainsize: *trainsize + upper_body_ids: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + flip_pairs: *flip_perm + - TopDownAffine: + trainsize: *trainsize + - ToHeatmapsTopDown: + hmsize: *hmsize + sigma: 2 + batch_transforms: + - NormalizeImage: + mean: *global_mean + std: *global_std + is_scale: true + - Permute: {} + batch_size: 64 + shuffle: true + drop_last: false + +EvalReader: + sample_transforms: + - TopDownAffine: + trainsize: *trainsize + - ToHeatmapsTopDown: + hmsize: *hmsize + sigma: 2 + batch_transforms: + - NormalizeImage: + mean: *global_mean + std: *global_std + is_scale: true + - Permute: {} + batch_size: 16 + drop_empty: false + +TestReader: + sample_transforms: + - Decode: {} + - TopDownEvalAffine: + trainsize: *trainsize + - NormalizeImage: + mean: *global_mean + std: *global_std + is_scale: true + - Permute: {} + batch_size: 1