syntax = "proto2"; package object_detection.protos; // Configuration proto for defining input readers that generate Object Detection // Examples from input sources. Input readers are expected to generate a // dictionary of tensors, with the following fields populated: // // 'image': an [image_height, image_width, channels] image tensor that detection // will be run on. // 'groundtruth_classes': a [num_boxes] int32 tensor storing the class // labels of detected boxes in the image. // 'groundtruth_boxes': a [num_boxes, 4] float tensor storing the coordinates of // detected boxes in the image. // 'groundtruth_instance_masks': (Optional), a [num_boxes, image_height, // image_width] float tensor storing binary mask of the objects in boxes. // Instance mask format. Note that PNG masks are much more space efficient. enum InstanceMaskType { DEFAULT = 0; // Default implementation, currently NUMERICAL_MASKS NUMERICAL_MASKS = 1; // [num_masks, H, W] float32 binary masks. PNG_MASKS = 2; // Encoded PNG masks. } // Next id: 25 message InputReader { // Name of input reader. Typically used to describe the dataset that is read // by this input reader. optional string name = 23 [default=""]; // Path to StringIntLabelMap pbtxt file specifying the mapping from string // labels to integer ids. optional string label_map_path = 1 [default=""]; // Whether data should be processed in the order they are read in, or // shuffled randomly. optional bool shuffle = 2 [default=true]; // Buffer size to be used when shuffling. optional uint32 shuffle_buffer_size = 11 [default = 2048]; // Buffer size to be used when shuffling file names. optional uint32 filenames_shuffle_buffer_size = 12 [default = 100]; // The number of times a data source is read. If set to zero, the data source // will be reused indefinitely. optional uint32 num_epochs = 5 [default=0]; // Integer representing how often an example should be sampled. To feed // only 1/3 of your data into your model, set `sample_1_of_n_examples` to 3. // This is particularly useful for evaluation, where you might not prefer to // evaluate all of your samples. optional uint32 sample_1_of_n_examples = 22 [default=1]; // Number of file shards to read in parallel. optional uint32 num_readers = 6 [default=64]; // Number of batches to produce in parallel. If this is run on a 2x2 TPU set // this to 8. optional uint32 num_parallel_batches = 19 [default=8]; // Number of batches to prefetch. Prefetch decouples input pipeline and // model so they can be pipelined resulting in higher throughput. Set this // to a small constant and increment linearly until the improvements become // marginal or you exceed your cpu memory budget. Setting this to -1, // automatically tunes this value for you. optional int32 num_prefetch_batches = 20 [default=2]; // Maximum number of records to keep in reader queue. optional uint32 queue_capacity = 3 [default=2000, deprecated=true]; // Minimum number of records to keep in reader queue. A large value is needed // to generate a good random shuffle. optional uint32 min_after_dequeue = 4 [default=1000, deprecated=true]; // Number of records to read from each reader at once. optional uint32 read_block_length = 15 [default=32]; // Number of decoded records to prefetch before batching. optional uint32 prefetch_size = 13 [default = 512, deprecated=true]; // Number of parallel decode ops to apply. optional uint32 num_parallel_map_calls = 14 [default = 64, deprecated=true]; // If positive, TfExampleDecoder will try to decode rasters of additional // channels from tf.Examples. optional int32 num_additional_channels = 18 [default = 0]; // Number of groundtruth keypoints per object. optional uint32 num_keypoints = 16 [default = 0]; // Maximum number of boxes to pad to during training / evaluation. // Set this to at least the maximum amount of boxes in the input data, // otherwise some groundtruth boxes may be clipped. optional int32 max_number_of_boxes = 21 [default=100]; // Whether to load multiclass scores from the dataset. optional bool load_multiclass_scores = 24 [default = false]; // Whether to load groundtruth instance masks. optional bool load_instance_masks = 7 [default = false]; // Type of instance mask. optional InstanceMaskType mask_type = 10 [default = NUMERICAL_MASKS]; // Whether to use the display name when decoding examples. This is only used // when mapping class text strings to integers. optional bool use_display_name = 17 [default = false]; oneof input_reader { TFRecordInputReader tf_record_input_reader = 8; ExternalInputReader external_input_reader = 9; } } // An input reader that reads TF Example protos from local TFRecord files. message TFRecordInputReader { // Path(s) to `TFRecordFile`s. repeated string input_path = 1; } // An externally defined input reader. Users may define an extension to this // proto to interface their own input readers. message ExternalInputReader { extensions 1 to 999; }