"examples/vscode:/vscode.git/clone" did not exist on "7c3e7fedcdfb702a095861c418964e9d1e2c958a"
Commit a56c7e15 authored by Yanghan Wang's avatar Yanghan Wang Committed by Facebook GitHub Bot
Browse files

unifying dataset registration for semantic segmentation

Differential Revision: D30624781

fbshipit-source-id: 6538813c886ffb9eae2e1d88d500f34c61cae5c0
parent 2fb273ab
...@@ -71,14 +71,12 @@ class MultiSemSegEvaluator(DatasetEvaluator): ...@@ -71,14 +71,12 @@ class MultiSemSegEvaluator(DatasetEvaluator):
tmp_dataset_name = "__AUTOGEN__{}@{}".format( tmp_dataset_name = "__AUTOGEN__{}@{}".format(
self.dataset_name, superclass_name self.dataset_name, superclass_name
) )
from d2go.datasets.builtin_dataset_people_ai_person_segmentation import ( from d2go.data.fb.semantic_seg import register_sem_seg
_register_person_sem_seg,
)
if tmp_dataset_name not in MetadataCatalog: if tmp_dataset_name not in MetadataCatalog:
_register_person_sem_seg( register_sem_seg(
tmp_dataset_name, tmp_dataset_name,
metadata.mcs_metadata[superclass_name], metadata=metadata.mcs_metadata[superclass_name],
image_root=metadata.image_root, image_root=metadata.image_root,
sem_seg_root=metadata.sem_seg_root, sem_seg_root=metadata.sem_seg_root,
instances_json=metadata.json_file, instances_json=metadata.json_file,
...@@ -156,6 +154,7 @@ class MultiSemSegEvaluator(DatasetEvaluator): ...@@ -156,6 +154,7 @@ class MultiSemSegEvaluator(DatasetEvaluator):
results[name] = result["sem_seg"] results[name] = result["sem_seg"]
return results return results
class MultiSemSegVidEvaluator(MultiSemSegEvaluator): class MultiSemSegVidEvaluator(MultiSemSegEvaluator):
""" """
Evaluate semantic segmentation results for video clips. MultiSemSegVidEvaluator Evaluate semantic segmentation results for video clips. MultiSemSegVidEvaluator
...@@ -164,19 +163,19 @@ class MultiSemSegVidEvaluator(MultiSemSegEvaluator): ...@@ -164,19 +163,19 @@ class MultiSemSegVidEvaluator(MultiSemSegEvaluator):
{"file_names": Tensor}, {"file_names": Tensor},
] ]
""" """
def process(self, inputs, outputs): def process(self, inputs, outputs):
assert "file_names" in inputs[0] assert "file_names" in inputs[0]
inputs_ = [] inputs_ = []
for batch_id in range(len(inputs)): for batch_id in range(len(inputs)):
for frame_i in range(len(inputs[batch_id]["file_names"])): for frame_i in range(len(inputs[batch_id]["file_names"])):
inputs_.append( inputs_.append({"file_name": inputs[batch_id]["file_names"][frame_i]})
{"file_name": inputs[batch_id]["file_names"][frame_i]}
)
for name in outputs[0].keys(): for name in outputs[0].keys():
# convert the output to SemSegEvaluator's format # convert the output to SemSegEvaluator's format
outputs_ = [outp[name] for outp in outputs] outputs_ = [outp[name] for outp in outputs]
self.evaluators["sem_seg_{}".format(name)].process(inputs_, outputs_) self.evaluators["sem_seg_{}".format(name)].process(inputs_, outputs_)
@contextmanager @contextmanager
def all_logging_disabled(highest_level=logging.CRITICAL): def all_logging_disabled(highest_level=logging.CRITICAL):
""" """
......
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