python如何读写TFOD2pipeline.config文件?

How to read and write of TFOD2 pipeline.config file by python?

正如您在 Tensorflow 对象检测中看到的那样,它们提供了关于特定模型的 pipeline.config 文件。但是我们需要手动打开这些配置文件并通过硬编码更改参数。我的查询就像如何通过 python 读取此 pipeline.config 文件并在运行时更改参数。请帮助我。

tutorial notebook 中有一个示例。

from object_detection.utils import config_util, save_pipeline_config

pipeline_config = 'configs/tf2/ssd_resnet50_v1_fpn_640x640_coco17_tpu-8.config'

configs = config_util.get_configs_from_pipeline_file(pipeline_config)
configs['model'].ssd.num_classes = 10 # change number of classes

那么,您可以保存:

save_pipeline_config(configs, 'path/to/save/dir/')

参见source code

@Nicolas Gervais 的回答似乎有点过时了。 这似乎是目前完全可用的版本:

from object_detection.utils import config_util

pipeline_config = 'configs/tf2/ssd_resnet50_v1_fpn_640x640_coco17_tpu-8.config'

configs = config_util.get_configs_from_pipeline_file(pipeline_config)
configs['model'].ssd.num_classes = 10 # change number of classes

之后您可以通过以下方式保存您的pipeline.config:

# Convert dictionary to pipeline_pb2.TrainEvalPipelineConfig to be able to save it 
pipeline_proto = config_util.create_pipeline_proto_from_configs(configs)
config_util.save_pipeline_config(pipeline_proto, 'path/to/save/dir/')