# proto-file: deeplab2/config.proto | |
# proto-message: ExperimentOptions | |
# | |
# Panoptic-DeepLab with MaX-DeepLab-S backbone and output stride 16. | |
# | |
############### PLEASE READ THIS BEFORE USING THIS CONFIG ############### | |
# Before using this config, you need to update the following fields: | |
# - experiment_name: Use a unique experiment name for each experiment. | |
# - initial_checkpoint: Update the path to the initial checkpoint. | |
# - train_dataset_options.file_pattern: Update the path to the | |
# training set. e.g., your_dataset/train*.tfrecord | |
# - eval_dataset_options.file_pattern: Update the path to the | |
# validation set, e.g., your_dataset/eval*.tfrecord | |
# - (optional) set merge_semantic_and_instance_with_tf_op: true, if you | |
# could successfully compile the provided efficient merging operation | |
# under the folder `tensorflow_ops`. | |
######################################################################### | |
# | |
# This script employs the MaX-DeepLab-S backbone (i.e., without the memory | |
# path in the dual-path transformer blocks) as the network backbone. | |
# | |
# For MaX-DeepLab-S, see | |
# - Huiyu Wang, et al. "MaX-DeepLab: End-to-End Panoptic Segmentation with | |
# Mask Transformers." In CVPR, 2021. | |
# For Panoptic-DeepLab, see | |
# - Bowen Cheng, et al. "Panoptic-DeepLab: A Simple, Strong, and Fast Baseline | |
# for Bottom-Up Panoptic Segmentation." In CVPR, 2020. | |
# Use a unique experiment_name for each experiment. | |
experiment_name: "${EXPERIMENT_NAME}" | |
model_options { | |
# Update the path to the initial checkpoint (e.g., ImageNet | |
# pretrained checkpoint). | |
initial_checkpoint: "${INIT_CHECKPOINT}" | |
backbone { | |
name: "max_deeplab_s_backbone" | |
output_stride: 16 | |
drop_path_keep_prob: 0.8 | |
drop_path_schedule: "linear" | |
} | |
decoder { | |
feature_key: "res5" | |
decoder_channels: 256 | |
aspp_channels: 256 | |
aspp_use_only_1x1_proj_conv: true | |
} | |
panoptic_deeplab { | |
low_level { | |
feature_key: "res3" | |
channels_project: 64 | |
} | |
low_level { | |
feature_key: "res2" | |
channels_project: 32 | |
} | |
instance { | |
low_level_override { | |
feature_key: "res3" | |
channels_project: 32 | |
} | |
low_level_override { | |
feature_key: "res2" | |
channels_project: 16 | |
} | |
instance_decoder_override { | |
feature_key: "res5" | |
decoder_channels: 128 | |
aspp_use_only_1x1_proj_conv: true | |
} | |
center_head { | |
output_channels: 1 | |
head_channels: 32 | |
} | |
regression_head { | |
output_channels: 2 | |
head_channels: 32 | |
} | |
} | |
semantic_head { | |
output_channels: 19 | |
head_channels: 256 | |
} | |
} | |
} | |
trainer_options { | |
save_checkpoints_steps: 1000 | |
save_summaries_steps: 100 | |
steps_per_loop: 100 | |
loss_options { | |
semantic_loss { | |
name: "softmax_cross_entropy" | |
weight: 1.0 | |
top_k_percent: 0.2 | |
} | |
center_loss { | |
name: "mse" | |
weight: 200 | |
} | |
regression_loss { | |
name: "l1" | |
weight: 0.01 | |
} | |
} | |
solver_options { | |
base_learning_rate: 0.0001 | |
training_number_of_steps: 60000 | |
} | |
} | |
train_dataset_options { | |
dataset: "cityscapes_panoptic" | |
# Update the path to training set. | |
file_pattern: "${TRAIN_SET}" | |
# Adjust the batch_size accordingly to better fit your GPU/TPU memory. | |
# Also see Q1 in g3doc/faq.md. | |
batch_size: 32 | |
crop_size: 1025 | |
crop_size: 2049 | |
# Skip resizing. | |
min_resize_value: 0 | |
max_resize_value: 0 | |
augmentations { | |
min_scale_factor: 0.5 | |
max_scale_factor: 2.0 | |
scale_factor_step_size: 0.1 | |
autoaugment_policy_name: "simple_classification_policy_magnitude_scale_0.2" | |
} | |
increase_small_instance_weights: true | |
small_instance_weight: 3.0 | |
} | |
eval_dataset_options { | |
dataset: "cityscapes_panoptic" | |
# Update the path to validation set. | |
file_pattern: "${VAL_SET}" | |
batch_size: 1 | |
crop_size: 1025 | |
crop_size: 2049 | |
# Skip resizing. | |
min_resize_value: 0 | |
max_resize_value: 0 | |
# Add options to make the evaluation loss comparable to the training loss. | |
increase_small_instance_weights: true | |
small_instance_weight: 3.0 | |
} | |
evaluator_options { | |
continuous_eval_timeout: 43200 | |
stuff_area_limit: 2048 | |
center_score_threshold: 0.1 | |
nms_kernel: 13 | |
save_predictions: true | |
save_raw_predictions: false | |
# Use pure tf functions (i.e., no CUDA kernel) to merge semantic and | |
# instance maps. For faster speed, compile TensorFlow with provided kernel | |
# implementation under the folder `tensorflow_ops`, and set | |
# merge_semantic_and_instance_with_tf_op to true. | |
merge_semantic_and_instance_with_tf_op: false | |
} | |