File size: 6,276 Bytes
97b6013 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 |
syntax = "proto2";
package object_detection.protos;
import "object_detection/protos/image_resizer.proto";
// 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.
}
// Input type format: whether inputs are TfExamples or TfSequenceExamples.
enum InputType {
INPUT_DEFAULT = 0; // Default implementation, currently TF_EXAMPLE
TF_EXAMPLE = 1; // TfExample input
TF_SEQUENCE_EXAMPLE = 2; // TfSequenceExample Input
}
// Next id: 31
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];
// Keypoint weights. These weights can be used to apply per-keypoint loss
// multipliers. The size of this field should agree with `num_keypoints`.
repeated float keypoint_type_weight = 26;
// 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 context features from the dataset.
optional bool load_context_features = 25 [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];
// Whether to include the source_id string in the input features.
optional bool include_source_id = 27 [default = false];
// Whether input data type is tf.Examples or tf.SequenceExamples
optional InputType input_type = 30 [default = TF_EXAMPLE];
oneof input_reader {
TFRecordInputReader tf_record_input_reader = 8;
ExternalInputReader external_input_reader = 9;
}
// Expand labels to ancestors or descendants in the hierarchy for
// for positive and negative labels, respectively.
optional bool expand_labels_hierarchy = 29 [default = false];
}
// An input reader that reads TF Example or TF Sequence 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;
}
|