"docker/git@developer.sourcefind.cn:change/sglang.git" did not exist on "ecb9fa14e6baaedf255bfbc065e2a58a76efb1df"
Commit c07b073e authored by A. Unique TensorFlower's avatar A. Unique TensorFlower Committed by TF Object Detection Team
Browse files

adding config files for models with keypoints

PiperOrigin-RevId: 324584977
parent 39ee0ac9
# CenterNet meta-architecture from the "Objects as Points" [2] paper with the
# hourglass[1] backbone. This config achieves an mAP of 42.8/64.5 +/- 0.16 on
# COCO 17 (averaged over 5 runs). This config is TPU compatible.
# [1]: https://arxiv.org/abs/1603.06937
# [2]: https://arxiv.org/abs/1904.07850
model {
center_net {
num_classes: 90
feature_extractor {
type: "hourglass_104"
channel_means: 104.01361846923828
channel_means: 114.03422546386719
channel_means: 119.91659545898438
channel_stds: 73.60276794433594
channel_stds: 69.89082336425781
channel_stds: 70.91507720947266
bgr_ordering: true
}
image_resizer {
keep_aspect_ratio_resizer {
min_dimension: 1024
max_dimension: 1024
pad_to_max_dimension: true
}
}
object_detection_task {
task_loss_weight: 1.0
offset_loss_weight: 1.0
scale_loss_weight: 0.10000000149011612
localization_loss {
l1_localization_loss {
}
}
}
object_center_params {
object_center_loss_weight: 1.0
classification_loss {
penalty_reduced_logistic_focal_loss {
alpha: 2.0
beta: 4.0
}
}
min_box_overlap_iou: 0.699999988079071
max_box_predictions: 100
}
keypoint_label_map_path: "PATH_TO_BE_CONFIGURED"
keypoint_estimation_task {
task_name: "human_pose"
task_loss_weight: 1.0
loss {
localization_loss {
l1_localization_loss {
}
}
classification_loss {
penalty_reduced_logistic_focal_loss {
alpha: 2.0
beta: 4.0
}
}
}
keypoint_class_name: "/m/01g317"
keypoint_label_to_std {
key: "left_ankle"
value: 0.8899999856948853
}
keypoint_label_to_std {
key: "left_ear"
value: 0.3499999940395355
}
keypoint_label_to_std {
key: "left_elbow"
value: 0.7200000286102295
}
keypoint_label_to_std {
key: "left_eye"
value: 0.25
}
keypoint_label_to_std {
key: "left_hip"
value: 1.0700000524520874
}
keypoint_label_to_std {
key: "left_knee"
value: 0.8899999856948853
}
keypoint_label_to_std {
key: "left_shoulder"
value: 0.7900000214576721
}
keypoint_label_to_std {
key: "left_wrist"
value: 0.6200000047683716
}
keypoint_label_to_std {
key: "nose"
value: 0.25999999046325684
}
keypoint_label_to_std {
key: "right_ankle"
value: 0.8899999856948853
}
keypoint_label_to_std {
key: "right_ear"
value: 0.3499999940395355
}
keypoint_label_to_std {
key: "right_elbow"
value: 0.7200000286102295
}
keypoint_label_to_std {
key: "right_eye"
value: 0.25
}
keypoint_label_to_std {
key: "right_hip"
value: 1.0700000524520874
}
keypoint_label_to_std {
key: "right_knee"
value: 0.8899999856948853
}
keypoint_label_to_std {
key: "right_shoulder"
value: 0.7900000214576721
}
keypoint_label_to_std {
key: "right_wrist"
value: 0.6200000047683716
}
keypoint_regression_loss_weight: 0.10000000149011612
keypoint_heatmap_loss_weight: 1.0
keypoint_offset_loss_weight: 1.0
offset_peak_radius: 3
per_keypoint_offset: true
}
}
}
train_config {
batch_size: 128
data_augmentation_options {
random_horizontal_flip {
keypoint_flip_permutation: 0
keypoint_flip_permutation: 2
keypoint_flip_permutation: 1
keypoint_flip_permutation: 4
keypoint_flip_permutation: 3
keypoint_flip_permutation: 6
keypoint_flip_permutation: 5
keypoint_flip_permutation: 8
keypoint_flip_permutation: 7
keypoint_flip_permutation: 10
keypoint_flip_permutation: 9
keypoint_flip_permutation: 12
keypoint_flip_permutation: 11
keypoint_flip_permutation: 14
keypoint_flip_permutation: 13
keypoint_flip_permutation: 16
keypoint_flip_permutation: 15
}
}
data_augmentation_options {
random_adjust_hue {
}
}
data_augmentation_options {
random_adjust_contrast {
}
}
data_augmentation_options {
random_adjust_saturation {
}
}
data_augmentation_options {
random_adjust_brightness {
}
}
data_augmentation_options {
random_square_crop_by_scale {
scale_min: 0.6000000238418579
scale_max: 1.2999999523162842
}
}
optimizer {
adam_optimizer {
learning_rate {
cosine_decay_learning_rate {
learning_rate_base: 0.0010000000474974513
total_steps: 250000
warmup_learning_rate: 0.0002500000118743628
warmup_steps: 5000
}
}
epsilon: 1.0000000116860974e-07
}
use_moving_average: false
}
fine_tune_checkpoint: "PATH_TO_BE_CONFIGURED"
num_steps: 250000
max_number_of_boxes: 100
unpad_groundtruth_tensors: false
fine_tune_checkpoint_type: "detection"
fine_tune_checkpoint_version: V2
}
train_input_reader: {
label_map_path: "PATH_TO_BE_CONFIGURED/label_map.txt"
tf_record_input_reader {
input_path: "PATH_TO_BE_CONFIGURED/train2017-?????-of-00256.tfrecord"
}
num_keypoints: 17
}
eval_config {
num_visualizations: 10
metrics_set: "coco_detection_metrics"
use_moving_averages: false
min_score_threshold: 0.20000000298023224
max_num_boxes_to_visualize: 20
batch_size: 1
parameterized_metric {
coco_keypoint_metrics {
class_label: "person"
keypoint_label_to_sigmas {
key: "left_ankle"
value: 0.08900000154972076
}
keypoint_label_to_sigmas {
key: "left_ear"
value: 0.03500000014901161
}
keypoint_label_to_sigmas {
key: "left_elbow"
value: 0.07199999690055847
}
keypoint_label_to_sigmas {
key: "left_eye"
value: 0.02500000037252903
}
keypoint_label_to_sigmas {
key: "left_hip"
value: 0.10700000077486038
}
keypoint_label_to_sigmas {
key: "left_knee"
value: 0.08699999749660492
}
keypoint_label_to_sigmas {
key: "left_shoulder"
value: 0.07900000363588333
}
keypoint_label_to_sigmas {
key: "left_wrist"
value: 0.06199999898672104
}
keypoint_label_to_sigmas {
key: "nose"
value: 0.026000000536441803
}
keypoint_label_to_sigmas {
key: "right_ankle"
value: 0.08900000154972076
}
keypoint_label_to_sigmas {
key: "right_ear"
value: 0.03500000014901161
}
keypoint_label_to_sigmas {
key: "right_elbow"
value: 0.07199999690055847
}
keypoint_label_to_sigmas {
key: "right_eye"
value: 0.02500000037252903
}
keypoint_label_to_sigmas {
key: "right_hip"
value: 0.10700000077486038
}
keypoint_label_to_sigmas {
key: "right_knee"
value: 0.08699999749660492
}
keypoint_label_to_sigmas {
key: "right_shoulder"
value: 0.07900000363588333
}
keypoint_label_to_sigmas {
key: "right_wrist"
value: 0.06199999898672104
}
}
}
keypoint_edge {
start: 0
end: 1
}
keypoint_edge {
start: 0
end: 2
}
keypoint_edge {
start: 1
end: 3
}
keypoint_edge {
start: 2
end: 4
}
keypoint_edge {
start: 0
end: 5
}
keypoint_edge {
start: 0
end: 6
}
keypoint_edge {
start: 5
end: 7
}
keypoint_edge {
start: 7
end: 9
}
keypoint_edge {
start: 6
end: 8
}
keypoint_edge {
start: 8
end: 10
}
keypoint_edge {
start: 5
end: 6
}
keypoint_edge {
start: 5
end: 11
}
keypoint_edge {
start: 6
end: 12
}
keypoint_edge {
start: 11
end: 12
}
keypoint_edge {
start: 11
end: 13
}
keypoint_edge {
start: 13
end: 15
}
keypoint_edge {
start: 12
end: 14
}
keypoint_edge {
start: 14
end: 16
}
}
eval_input_reader: {
label_map_path: "PATH_TO_BE_CONFIGURED/label_map.txt"
shuffle: false
num_epochs: 1
tf_record_input_reader {
input_path: "PATH_TO_BE_CONFIGURED/val2017-?????-of-00032.tfrecord"
}
num_keypoints: 17
}
# CenterNet meta-architecture from the "Objects as Points" [2] paper with the
# hourglass[1] backbone. This config achieves an mAP of 40.0/61.4 +/- 0.16 on
# COCO 17 (averaged over 5 runs). This config is TPU compatible.
# [1]: https://arxiv.org/abs/1603.06937
# [2]: https://arxiv.org/abs/1904.07850
model {
center_net {
num_classes: 90
feature_extractor {
type: "hourglass_104"
bgr_ordering: true
channel_means: [104.01362025, 114.03422265, 119.9165958 ]
channel_stds: [73.6027665 , 69.89082075, 70.9150767 ]
}
image_resizer {
keep_aspect_ratio_resizer {
min_dimension: 512
max_dimension: 512
pad_to_max_dimension: true
}
}
object_detection_task {
task_loss_weight: 1.0
offset_loss_weight: 1.0
scale_loss_weight: 0.1
localization_loss {
l1_localization_loss {
}
}
}
object_center_params {
object_center_loss_weight: 1.0
min_box_overlap_iou: 0.7
max_box_predictions: 100
classification_loss {
penalty_reduced_logistic_focal_loss {
alpha: 2.0
beta: 4.0
}
}
}
keypoint_label_map_path: "PATH_TO_BE_CONFIGURED"
keypoint_estimation_task {
task_name: "human_pose"
task_loss_weight: 1.0
loss {
localization_loss {
l1_localization_loss {
}
}
classification_loss {
penalty_reduced_logistic_focal_loss {
alpha: 2.0
beta: 4.0
}
}
}
keypoint_class_name: "/m/01g317"
keypoint_label_to_std {
key: "left_ankle"
value: 0.89
}
keypoint_label_to_std {
key: "left_ear"
value: 0.35
}
keypoint_label_to_std {
key: "left_elbow"
value: 0.72
}
keypoint_label_to_std {
key: "left_eye"
value: 0.25
}
keypoint_label_to_std {
key: "left_hip"
value: 1.07
}
keypoint_label_to_std {
key: "left_knee"
value: 0.89
}
keypoint_label_to_std {
key: "left_shoulder"
value: 0.79
}
keypoint_label_to_std {
key: "left_wrist"
value: 0.62
}
keypoint_label_to_std {
key: "nose"
value: 0.26
}
keypoint_label_to_std {
key: "right_ankle"
value: 0.89
}
keypoint_label_to_std {
key: "right_ear"
value: 0.35
}
keypoint_label_to_std {
key: "right_elbow"
value: 0.72
}
keypoint_label_to_std {
key: "right_eye"
value: 0.25
}
keypoint_label_to_std {
key: "right_hip"
value: 1.07
}
keypoint_label_to_std {
key: "right_knee"
value: 0.89
}
keypoint_label_to_std {
key: "right_shoulder"
value: 0.79
}
keypoint_label_to_std {
key: "right_wrist"
value: 0.62
}
keypoint_regression_loss_weight: 0.1
keypoint_heatmap_loss_weight: 1.0
keypoint_offset_loss_weight: 1.0
offset_peak_radius: 3
per_keypoint_offset: true
}
}
}
train_config: {
batch_size: 128
num_steps: 250000
data_augmentation_options {
random_horizontal_flip {
keypoint_flip_permutation: 0
keypoint_flip_permutation: 2
keypoint_flip_permutation: 1
keypoint_flip_permutation: 4
keypoint_flip_permutation: 3
keypoint_flip_permutation: 6
keypoint_flip_permutation: 5
keypoint_flip_permutation: 8
keypoint_flip_permutation: 7
keypoint_flip_permutation: 10
keypoint_flip_permutation: 9
keypoint_flip_permutation: 12
keypoint_flip_permutation: 11
keypoint_flip_permutation: 14
keypoint_flip_permutation: 13
keypoint_flip_permutation: 16
keypoint_flip_permutation: 15
}
}
data_augmentation_options {
random_crop_image {
min_aspect_ratio: 0.5
max_aspect_ratio: 1.7
random_coef: 0.25
}
}
data_augmentation_options {
random_adjust_hue {
}
}
data_augmentation_options {
random_adjust_contrast {
}
}
data_augmentation_options {
random_adjust_saturation {
}
}
data_augmentation_options {
random_adjust_brightness {
}
}
data_augmentation_options {
random_absolute_pad_image {
max_height_padding: 200
max_width_padding: 200
pad_color: [0, 0, 0]
}
}
optimizer {
adam_optimizer: {
epsilon: 1e-7 # Match tf.keras.optimizers.Adam's default.
learning_rate: {
cosine_decay_learning_rate {
learning_rate_base: 1e-3
total_steps: 250000
warmup_learning_rate: 2.5e-4
warmup_steps: 5000
}
}
}
use_moving_average: false
}
max_number_of_boxes: 100
unpad_groundtruth_tensors: false
fine_tune_checkpoint_version: V2
fine_tune_checkpoint: "PATH_TO_BE_CONFIGURED"
fine_tune_checkpoint_type: "detection"
}
train_input_reader: {
label_map_path: "PATH_TO_BE_CONFIGURED/label_map.txt"
tf_record_input_reader {
input_path: "PATH_TO_BE_CONFIGURED/train2017-?????-of-00256.tfrecord"
}
num_keypoints: 17
}
eval_config: {
metrics_set: "coco_detection_metrics"
use_moving_averages: false
num_visualizations: 10
max_num_boxes_to_visualize: 20
min_score_threshold: 0.2
batch_size: 1;
parameterized_metric {
coco_keypoint_metrics {
class_label: "person"
keypoint_label_to_sigmas {
key: "nose"
value: 0.026
}
keypoint_label_to_sigmas {
key: "left_eye"
value: 0.025
}
keypoint_label_to_sigmas {
key: "right_eye"
value: 0.025
}
keypoint_label_to_sigmas {
key: "left_ear"
value: 0.035
}
keypoint_label_to_sigmas {
key: "right_ear"
value: 0.035
}
keypoint_label_to_sigmas {
key: "left_shoulder"
value: 0.079
}
keypoint_label_to_sigmas {
key: "right_shoulder"
value: 0.079
}
keypoint_label_to_sigmas {
key: "left_elbow"
value: 0.072
}
keypoint_label_to_sigmas {
key: "right_elbow"
value: 0.072
}
keypoint_label_to_sigmas {
key: "left_wrist"
value: 0.062
}
keypoint_label_to_sigmas {
key: "right_wrist"
value: 0.062
}
keypoint_label_to_sigmas {
key: "left_hip"
value: 0.107
}
keypoint_label_to_sigmas {
key: "right_hip"
value: 0.107
}
keypoint_label_to_sigmas {
key: "left_knee"
value: 0.087
}
keypoint_label_to_sigmas {
key: "right_knee"
value: 0.087
}
keypoint_label_to_sigmas {
key: "left_ankle"
value: 0.089
}
keypoint_label_to_sigmas {
key: "right_ankle"
value: 0.089
}
}
}
# Provide the edges to connect the keypoints. The setting is suitable for
# COCO's 17 human pose keypoints.
keypoint_edge { # nose-left eye
start: 0
end: 1
}
keypoint_edge { # nose-right eye
start: 0
end: 2
}
keypoint_edge { # left eye-left ear
start: 1
end: 3
}
keypoint_edge { # right eye-right ear
start: 2
end: 4
}
keypoint_edge { # nose-left shoulder
start: 0
end: 5
}
keypoint_edge { # nose-right shoulder
start: 0
end: 6
}
keypoint_edge { # left shoulder-left elbow
start: 5
end: 7
}
keypoint_edge { # left elbow-left wrist
start: 7
end: 9
}
keypoint_edge { # right shoulder-right elbow
start: 6
end: 8
}
keypoint_edge { # right elbow-right wrist
start: 8
end: 10
}
keypoint_edge { # left shoulder-right shoulder
start: 5
end: 6
}
keypoint_edge { # left shoulder-left hip
start: 5
end: 11
}
keypoint_edge { # right shoulder-right hip
start: 6
end: 12
}
keypoint_edge { # left hip-right hip
start: 11
end: 12
}
keypoint_edge { # left hip-left knee
start: 11
end: 13
}
keypoint_edge { # left knee-left ankle
start: 13
end: 15
}
keypoint_edge { # right hip-right knee
start: 12
end: 14
}
keypoint_edge { # right knee-right ankle
start: 14
end: 16
}
}
eval_input_reader: {
label_map_path: "PATH_TO_BE_CONFIGURED/label_map.txt"
tf_record_input_reader {
input_path: "PATH_TO_BE_CONFIGURED/train2017-?????-of-00256.tfrecord"
}
num_keypoints: 17
}
# CenterNet meta-architecture from the "Objects as Points" [1] paper
# with the ResNet-v1-50 backbone. The ResNet backbone has a few differences
# as compared to the one mentioned in the paper, hence the performance is
# slightly worse. This config is TPU comptatible.
# [1]: https://arxiv.org/abs/1904.07850
#
model {
center_net {
num_classes: 90
feature_extractor {
type: "resnet_v1_50_fpn"
}
image_resizer {
keep_aspect_ratio_resizer {
min_dimension: 512
max_dimension: 512
pad_to_max_dimension: true
}
}
object_detection_task {
task_loss_weight: 1.0
offset_loss_weight: 1.0
scale_loss_weight: 0.1
localization_loss {
l1_localization_loss {
}
}
}
object_center_params {
object_center_loss_weight: 1.0
min_box_overlap_iou: 0.7
max_box_predictions: 100
classification_loss {
penalty_reduced_logistic_focal_loss {
alpha: 2.0
beta: 4.0
}
}
}
keypoint_label_map_path: "PATH_TO_BE_CONFIGURED"
keypoint_estimation_task {
task_name: "human_pose"
task_loss_weight: 1.0
loss {
localization_loss {
l1_localization_loss {
}
}
classification_loss {
penalty_reduced_logistic_focal_loss {
alpha: 2.0
beta: 4.0
}
}
}
keypoint_class_name: "/m/01g317"
keypoint_label_to_std {
key: "left_ankle"
value: 0.89
}
keypoint_label_to_std {
key: "left_ear"
value: 0.35
}
keypoint_label_to_std {
key: "left_elbow"
value: 0.72
}
keypoint_label_to_std {
key: "left_eye"
value: 0.25
}
keypoint_label_to_std {
key: "left_hip"
value: 1.07
}
keypoint_label_to_std {
key: "left_knee"
value: 0.89
}
keypoint_label_to_std {
key: "left_shoulder"
value: 0.79
}
keypoint_label_to_std {
key: "left_wrist"
value: 0.62
}
keypoint_label_to_std {
key: "nose"
value: 0.26
}
keypoint_label_to_std {
key: "right_ankle"
value: 0.89
}
keypoint_label_to_std {
key: "right_ear"
value: 0.35
}
keypoint_label_to_std {
key: "right_elbow"
value: 0.72
}
keypoint_label_to_std {
key: "right_eye"
value: 0.25
}
keypoint_label_to_std {
key: "right_hip"
value: 1.07
}
keypoint_label_to_std {
key: "right_knee"
value: 0.89
}
keypoint_label_to_std {
key: "right_shoulder"
value: 0.79
}
keypoint_label_to_std {
key: "right_wrist"
value: 0.62
}
keypoint_regression_loss_weight: 0.1
keypoint_heatmap_loss_weight: 1.0
keypoint_offset_loss_weight: 1.0
offset_peak_radius: 3
per_keypoint_offset: true
}
}
}
train_config: {
batch_size: 128
num_steps: 250000
data_augmentation_options {
random_horizontal_flip {
keypoint_flip_permutation: 0
keypoint_flip_permutation: 2
keypoint_flip_permutation: 1
keypoint_flip_permutation: 4
keypoint_flip_permutation: 3
keypoint_flip_permutation: 6
keypoint_flip_permutation: 5
keypoint_flip_permutation: 8
keypoint_flip_permutation: 7
keypoint_flip_permutation: 10
keypoint_flip_permutation: 9
keypoint_flip_permutation: 12
keypoint_flip_permutation: 11
keypoint_flip_permutation: 14
keypoint_flip_permutation: 13
keypoint_flip_permutation: 16
keypoint_flip_permutation: 15
}
}
data_augmentation_options {
random_crop_image {
min_aspect_ratio: 0.5
max_aspect_ratio: 1.7
random_coef: 0.25
}
}
data_augmentation_options {
random_adjust_hue {
}
}
data_augmentation_options {
random_adjust_contrast {
}
}
data_augmentation_options {
random_adjust_saturation {
}
}
data_augmentation_options {
random_adjust_brightness {
}
}
data_augmentation_options {
random_absolute_pad_image {
max_height_padding: 200
max_width_padding: 200
pad_color: [0, 0, 0]
}
}
optimizer {
adam_optimizer: {
epsilon: 1e-7 # Match tf.keras.optimizers.Adam's default.
learning_rate: {
cosine_decay_learning_rate {
learning_rate_base: 1e-3
total_steps: 250000
warmup_learning_rate: 2.5e-4
warmup_steps: 5000
}
}
}
use_moving_average: false
}
max_number_of_boxes: 100
unpad_groundtruth_tensors: false
fine_tune_checkpoint_version: V2
fine_tune_checkpoint: "PATH_TO_BE_CONFIGURED"
fine_tune_checkpoint_type: "classification"
}
train_input_reader: {
label_map_path: "PATH_TO_BE_CONFIGURED/label_map.txt"
tf_record_input_reader {
input_path: "PATH_TO_BE_CONFIGURED/train2017-?????-of-00256.tfrecord"
}
num_keypoints: 17
}
eval_config: {
metrics_set: "coco_detection_metrics"
use_moving_averages: false
num_visualizations: 10
max_num_boxes_to_visualize: 20
min_score_threshold: 0.2
batch_size: 1;
parameterized_metric {
coco_keypoint_metrics {
class_label: "person"
keypoint_label_to_sigmas {
key: "nose"
value: 0.026
}
keypoint_label_to_sigmas {
key: "left_eye"
value: 0.025
}
keypoint_label_to_sigmas {
key: "right_eye"
value: 0.025
}
keypoint_label_to_sigmas {
key: "left_ear"
value: 0.035
}
keypoint_label_to_sigmas {
key: "right_ear"
value: 0.035
}
keypoint_label_to_sigmas {
key: "left_shoulder"
value: 0.079
}
keypoint_label_to_sigmas {
key: "right_shoulder"
value: 0.079
}
keypoint_label_to_sigmas {
key: "left_elbow"
value: 0.072
}
keypoint_label_to_sigmas {
key: "right_elbow"
value: 0.072
}
keypoint_label_to_sigmas {
key: "left_wrist"
value: 0.062
}
keypoint_label_to_sigmas {
key: "right_wrist"
value: 0.062
}
keypoint_label_to_sigmas {
key: "left_hip"
value: 0.107
}
keypoint_label_to_sigmas {
key: "right_hip"
value: 0.107
}
keypoint_label_to_sigmas {
key: "left_knee"
value: 0.087
}
keypoint_label_to_sigmas {
key: "right_knee"
value: 0.087
}
keypoint_label_to_sigmas {
key: "left_ankle"
value: 0.089
}
keypoint_label_to_sigmas {
key: "right_ankle"
value: 0.089
}
}
}
# Provide the edges to connect the keypoints. The setting is suitable for
# COCO's 17 human pose keypoints.
keypoint_edge { # nose-left eye
start: 0
end: 1
}
keypoint_edge { # nose-right eye
start: 0
end: 2
}
keypoint_edge { # left eye-left ear
start: 1
end: 3
}
keypoint_edge { # right eye-right ear
start: 2
end: 4
}
keypoint_edge { # nose-left shoulder
start: 0
end: 5
}
keypoint_edge { # nose-right shoulder
start: 0
end: 6
}
keypoint_edge { # left shoulder-left elbow
start: 5
end: 7
}
keypoint_edge { # left elbow-left wrist
start: 7
end: 9
}
keypoint_edge { # right shoulder-right elbow
start: 6
end: 8
}
keypoint_edge { # right elbow-right wrist
start: 8
end: 10
}
keypoint_edge { # left shoulder-right shoulder
start: 5
end: 6
}
keypoint_edge { # left shoulder-left hip
start: 5
end: 11
}
keypoint_edge { # right shoulder-right hip
start: 6
end: 12
}
keypoint_edge { # left hip-right hip
start: 11
end: 12
}
keypoint_edge { # left hip-left knee
start: 11
end: 13
}
keypoint_edge { # left knee-left ankle
start: 13
end: 15
}
keypoint_edge { # right hip-right knee
start: 12
end: 14
}
keypoint_edge { # right knee-right ankle
start: 14
end: 16
}
}
eval_input_reader: {
label_map_path: "PATH_TO_BE_CONFIGURED/label_map.txt"
shuffle: false
num_epochs: 1
tf_record_input_reader {
input_path: "PATH_TO_BE_CONFIGURED/val2017-?????-of-00032.tfrecord"
}
num_keypoints: 17
}
# CenterNet meta-architecture from the "Objects as Points" [1] paper
# with the ResNet-v2-50 backbone. The ResNet backbone has a few differences
# as compared to the one mentioned in the paper, hence the performance is
# slightly worse. This config is TPU comptatible.
# [1]: https://arxiv.org/abs/1904.07850
model {
center_net {
num_classes: 90
feature_extractor {
type: "resnet_v2_50"
}
image_resizer {
keep_aspect_ratio_resizer {
min_dimension: 512
max_dimension: 512
pad_to_max_dimension: true
}
}
object_detection_task {
task_loss_weight: 1.0
offset_loss_weight: 1.0
scale_loss_weight: 0.1
localization_loss {
l1_localization_loss {
}
}
}
object_center_params {
object_center_loss_weight: 1.0
min_box_overlap_iou: 0.7
max_box_predictions: 100
classification_loss {
penalty_reduced_logistic_focal_loss {
alpha: 2.0
beta: 4.0
}
}
}
keypoint_label_map_path: "PATH_TO_BE_CONFIGURED"
keypoint_estimation_task {
task_name: "human_pose"
task_loss_weight: 1.0
loss {
localization_loss {
l1_localization_loss {
}
}
classification_loss {
penalty_reduced_logistic_focal_loss {
alpha: 2.0
beta: 4.0
}
}
}
keypoint_class_name: "/m/01g317"
keypoint_label_to_std {
key: "left_ankle"
value: 0.89
}
keypoint_label_to_std {
key: "left_ear"
value: 0.35
}
keypoint_label_to_std {
key: "left_elbow"
value: 0.72
}
keypoint_label_to_std {
key: "left_eye"
value: 0.25
}
keypoint_label_to_std {
key: "left_hip"
value: 1.07
}
keypoint_label_to_std {
key: "left_knee"
value: 0.89
}
keypoint_label_to_std {
key: "left_shoulder"
value: 0.79
}
keypoint_label_to_std {
key: "left_wrist"
value: 0.62
}
keypoint_label_to_std {
key: "nose"
value: 0.26
}
keypoint_label_to_std {
key: "right_ankle"
value: 0.89
}
keypoint_label_to_std {
key: "right_ear"
value: 0.35
}
keypoint_label_to_std {
key: "right_elbow"
value: 0.72
}
keypoint_label_to_std {
key: "right_eye"
value: 0.25
}
keypoint_label_to_std {
key: "right_hip"
value: 1.07
}
keypoint_label_to_std {
key: "right_knee"
value: 0.89
}
keypoint_label_to_std {
key: "right_shoulder"
value: 0.79
}
keypoint_label_to_std {
key: "right_wrist"
value: 0.62
}
keypoint_regression_loss_weight: 0.1
keypoint_heatmap_loss_weight: 1.0
keypoint_offset_loss_weight: 1.0
offset_peak_radius: 3
per_keypoint_offset: true
}
}
}
train_config: {
batch_size: 128
num_steps: 250000
data_augmentation_options {
random_horizontal_flip {
keypoint_flip_permutation: 0
keypoint_flip_permutation: 2
keypoint_flip_permutation: 1
keypoint_flip_permutation: 4
keypoint_flip_permutation: 3
keypoint_flip_permutation: 6
keypoint_flip_permutation: 5
keypoint_flip_permutation: 8
keypoint_flip_permutation: 7
keypoint_flip_permutation: 10
keypoint_flip_permutation: 9
keypoint_flip_permutation: 12
keypoint_flip_permutation: 11
keypoint_flip_permutation: 14
keypoint_flip_permutation: 13
keypoint_flip_permutation: 16
keypoint_flip_permutation: 15
}
}
data_augmentation_options {
random_crop_image {
min_aspect_ratio: 0.5
max_aspect_ratio: 1.7
random_coef: 0.25
}
}
data_augmentation_options {
random_adjust_hue {
}
}
data_augmentation_options {
random_adjust_contrast {
}
}
data_augmentation_options {
random_adjust_saturation {
}
}
data_augmentation_options {
random_adjust_brightness {
}
}
data_augmentation_options {
random_absolute_pad_image {
max_height_padding: 200
max_width_padding: 200
pad_color: [0, 0, 0]
}
}
optimizer {
adam_optimizer: {
epsilon: 1e-7 # Match tf.keras.optimizers.Adam's default.
learning_rate: {
cosine_decay_learning_rate {
learning_rate_base: 1e-3
total_steps: 250000
warmup_learning_rate: 2.5e-4
warmup_steps: 5000
}
}
}
use_moving_average: false
}
max_number_of_boxes: 100
unpad_groundtruth_tensors: false
fine_tune_checkpoint_version: V2
fine_tune_checkpoint: "PATH_TO_BE_CONFIGURED"
fine_tune_checkpoint_type: "classification"
}
train_input_reader: {
label_map_path: "PATH_TO_BE_CONFIGURED/label_map.txt"
tf_record_input_reader {
input_path: "PATH_TO_BE_CONFIGURED/train2017-?????-of-00256.tfrecord"
}
num_keypoints: 17
}
eval_config: {
metrics_set: "coco_detection_metrics"
use_moving_averages: false
num_visualizations: 10
max_num_boxes_to_visualize: 20
min_score_threshold: 0.2
batch_size: 1;
parameterized_metric {
coco_keypoint_metrics {
class_label: "person"
keypoint_label_to_sigmas {
key: "nose"
value: 0.026
}
keypoint_label_to_sigmas {
key: "left_eye"
value: 0.025
}
keypoint_label_to_sigmas {
key: "right_eye"
value: 0.025
}
keypoint_label_to_sigmas {
key: "left_ear"
value: 0.035
}
keypoint_label_to_sigmas {
key: "right_ear"
value: 0.035
}
keypoint_label_to_sigmas {
key: "left_shoulder"
value: 0.079
}
keypoint_label_to_sigmas {
key: "right_shoulder"
value: 0.079
}
keypoint_label_to_sigmas {
key: "left_elbow"
value: 0.072
}
keypoint_label_to_sigmas {
key: "right_elbow"
value: 0.072
}
keypoint_label_to_sigmas {
key: "left_wrist"
value: 0.062
}
keypoint_label_to_sigmas {
key: "right_wrist"
value: 0.062
}
keypoint_label_to_sigmas {
key: "left_hip"
value: 0.107
}
keypoint_label_to_sigmas {
key: "right_hip"
value: 0.107
}
keypoint_label_to_sigmas {
key: "left_knee"
value: 0.087
}
keypoint_label_to_sigmas {
key: "right_knee"
value: 0.087
}
keypoint_label_to_sigmas {
key: "left_ankle"
value: 0.089
}
keypoint_label_to_sigmas {
key: "right_ankle"
value: 0.089
}
}
}
# Provide the edges to connect the keypoints. The setting is suitable for
# COCO's 17 human pose keypoints.
keypoint_edge { # nose-left eye
start: 0
end: 1
}
keypoint_edge { # nose-right eye
start: 0
end: 2
}
keypoint_edge { # left eye-left ear
start: 1
end: 3
}
keypoint_edge { # right eye-right ear
start: 2
end: 4
}
keypoint_edge { # nose-left shoulder
start: 0
end: 5
}
keypoint_edge { # nose-right shoulder
start: 0
end: 6
}
keypoint_edge { # left shoulder-left elbow
start: 5
end: 7
}
keypoint_edge { # left elbow-left wrist
start: 7
end: 9
}
keypoint_edge { # right shoulder-right elbow
start: 6
end: 8
}
keypoint_edge { # right elbow-right wrist
start: 8
end: 10
}
keypoint_edge { # left shoulder-right shoulder
start: 5
end: 6
}
keypoint_edge { # left shoulder-left hip
start: 5
end: 11
}
keypoint_edge { # right shoulder-right hip
start: 6
end: 12
}
keypoint_edge { # left hip-right hip
start: 11
end: 12
}
keypoint_edge { # left hip-left knee
start: 11
end: 13
}
keypoint_edge { # left knee-left ankle
start: 13
end: 15
}
keypoint_edge { # right hip-right knee
start: 12
end: 14
}
keypoint_edge { # right knee-right ankle
start: 14
end: 16
}
}
eval_input_reader: {
label_map_path: "PATH_TO_BE_CONFIGURED/label_map.txt"
shuffle: false
num_epochs: 1
tf_record_input_reader {
input_path: "PATH_TO_BE_CONFIGURED/val2017-?????-of-00032.tfrecord"
}
num_keypoints: 17
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment