Tensorflow object detection config files documentation

Eypros picture Eypros · Mar 7, 2018 · Viewed 9.9k times · Source

I am using the object detection api in tensorflow. I noticed that practically all parameters pass through the config file. I could not find any documentation or tutorial on the options for these config files though.

I know that in the official git they provide a list of config files for their pretrained models which could be very helpful but it does not cover every case and of course does not provide any explanation if needed.

For example in train_config section there are some data augmentation options which are quite self explanatory but the potential existence of other options is unclear:

  data_augmentation_options {
    random_horizontal_flip {
    }
  }
  data_augmentation_options {
    ssd_random_crop {
    }
  }

Is there a source I could refer to? For example in this tutorial two extra options (batch_queue_capacity and prefetch_queue_capacity) I did not know about appear. Where could I find a decent list of options I have? I know that it's model specific but some of them are universal and really helpful.

Answer

jdehesa picture jdehesa · Mar 7, 2018

As mentioned in the configuration documentation, configuration files are just Protocol Buffers objects described in the .proto files under research/object_detection/protos. The top level object is a TrainEvalPipelineConfig defined in pipeline.proto, and different files describe each of the elements. For example, data_augmentation_options are PreprocessingStep objects, defined in preprocessor.proto (which in turn can include a range of other possible objects for different preprocessing tasks). The meaning of each object and field may or may not be obvious or well-documented, but you can always refer to the source code to see exactly how each value is being used (for example, check preprocessor.py to understand how data augmentation is done).