Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Tensorflow object detection config files documentation

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.

like image 669
Eypros Avatar asked Mar 07 '18 09:03

Eypros


People also ask

What is config file in object detection?

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.

What is TFOD API?

This API can be used to detect, with bounding boxes, objects in images and/or video using either some of the pre-trained models made available or through models you can train on your own (which the API also makes easier). To begin, you're going to want to make sure you have TensorFlow and all of the dependencies.


1 Answers

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).

like image 54
jdehesa Avatar answered Sep 22 '22 16:09

jdehesa