|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"""Tests for post_processor_builder.py.""" |
|
|
|
import tensorflow as tf |
|
|
|
from google.protobuf import text_format |
|
from deeplab2 import common |
|
from deeplab2 import config_pb2 |
|
from deeplab2.data import dataset |
|
from deeplab2.model.post_processor import post_processor_builder |
|
|
|
|
|
class EvaluatorTest(tf.test.TestCase): |
|
|
|
def test_evaluates_panoptic_deeplab_model(self): |
|
experiment_options_textproto = """ |
|
experiment_name: "evaluation_test" |
|
eval_dataset_options { |
|
dataset: "cityscapes_panoptic" |
|
file_pattern: "EMPTY" |
|
batch_size: 1 |
|
crop_size: 1025 |
|
crop_size: 2049 |
|
# Skip resizing. |
|
min_resize_value: 0 |
|
max_resize_value: 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 |
|
} |
|
""" |
|
config = text_format.Parse(experiment_options_textproto, |
|
config_pb2.ExperimentOptions()) |
|
config.model_options.panoptic_deeplab.instance.enable = True |
|
post_processor = post_processor_builder.get_post_processor( |
|
config, dataset.CITYSCAPES_PANOPTIC_INFORMATION) |
|
|
|
result_dict = { |
|
common.PRED_SEMANTIC_PROBS_KEY: |
|
tf.zeros([1, 1025, 2049, 19], dtype=tf.float32), |
|
common.PRED_CENTER_HEATMAP_KEY: |
|
tf.zeros([1, 1025, 2049, 1], dtype=tf.float32), |
|
common.PRED_OFFSET_MAP_KEY: |
|
tf.zeros([1, 1025, 2049, 2], dtype=tf.float32) |
|
} |
|
processed_dict = post_processor(result_dict) |
|
expected_keys = { |
|
common.PRED_PANOPTIC_KEY, |
|
common.PRED_SEMANTIC_KEY, |
|
common.PRED_INSTANCE_KEY, |
|
common.PRED_INSTANCE_CENTER_KEY, |
|
common.PRED_INSTANCE_SCORES_KEY |
|
} |
|
self.assertCountEqual(processed_dict.keys(), expected_keys) |
|
|
|
|
|
if __name__ == '__main__': |
|
tf.test.main() |
|
|