// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: object_detection/protos/preprocessor.proto

#ifndef GOOGLE_PROTOBUF_INCLUDED_object_5fdetection_2fprotos_2fpreprocessor_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_object_5fdetection_2fprotos_2fpreprocessor_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3009000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 3009002 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/generated_enum_reflection.h>
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_object_5fdetection_2fprotos_2fpreprocessor_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto {
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[38]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
namespace object_detection {
namespace protos {
class AutoAugmentImage;
class AutoAugmentImageDefaultTypeInternal;
extern AutoAugmentImageDefaultTypeInternal _AutoAugmentImage_default_instance_;
class ConvertClassLogitsToSoftmax;
class ConvertClassLogitsToSoftmaxDefaultTypeInternal;
extern ConvertClassLogitsToSoftmaxDefaultTypeInternal _ConvertClassLogitsToSoftmax_default_instance_;
class DropLabelProbabilistically;
class DropLabelProbabilisticallyDefaultTypeInternal;
extern DropLabelProbabilisticallyDefaultTypeInternal _DropLabelProbabilistically_default_instance_;
class NormalizeImage;
class NormalizeImageDefaultTypeInternal;
extern NormalizeImageDefaultTypeInternal _NormalizeImage_default_instance_;
class PreprocessingStep;
class PreprocessingStepDefaultTypeInternal;
extern PreprocessingStepDefaultTypeInternal _PreprocessingStep_default_instance_;
class RGBtoGray;
class RGBtoGrayDefaultTypeInternal;
extern RGBtoGrayDefaultTypeInternal _RGBtoGray_default_instance_;
class RandomAbsolutePadImage;
class RandomAbsolutePadImageDefaultTypeInternal;
extern RandomAbsolutePadImageDefaultTypeInternal _RandomAbsolutePadImage_default_instance_;
class RandomAdjustBrightness;
class RandomAdjustBrightnessDefaultTypeInternal;
extern RandomAdjustBrightnessDefaultTypeInternal _RandomAdjustBrightness_default_instance_;
class RandomAdjustContrast;
class RandomAdjustContrastDefaultTypeInternal;
extern RandomAdjustContrastDefaultTypeInternal _RandomAdjustContrast_default_instance_;
class RandomAdjustHue;
class RandomAdjustHueDefaultTypeInternal;
extern RandomAdjustHueDefaultTypeInternal _RandomAdjustHue_default_instance_;
class RandomAdjustSaturation;
class RandomAdjustSaturationDefaultTypeInternal;
extern RandomAdjustSaturationDefaultTypeInternal _RandomAdjustSaturation_default_instance_;
class RandomBlackPatches;
class RandomBlackPatchesDefaultTypeInternal;
extern RandomBlackPatchesDefaultTypeInternal _RandomBlackPatches_default_instance_;
class RandomCropImage;
class RandomCropImageDefaultTypeInternal;
extern RandomCropImageDefaultTypeInternal _RandomCropImage_default_instance_;
class RandomCropPadImage;
class RandomCropPadImageDefaultTypeInternal;
extern RandomCropPadImageDefaultTypeInternal _RandomCropPadImage_default_instance_;
class RandomCropToAspectRatio;
class RandomCropToAspectRatioDefaultTypeInternal;
extern RandomCropToAspectRatioDefaultTypeInternal _RandomCropToAspectRatio_default_instance_;
class RandomDistortColor;
class RandomDistortColorDefaultTypeInternal;
extern RandomDistortColorDefaultTypeInternal _RandomDistortColor_default_instance_;
class RandomHorizontalFlip;
class RandomHorizontalFlipDefaultTypeInternal;
extern RandomHorizontalFlipDefaultTypeInternal _RandomHorizontalFlip_default_instance_;
class RandomImageScale;
class RandomImageScaleDefaultTypeInternal;
extern RandomImageScaleDefaultTypeInternal _RandomImageScale_default_instance_;
class RandomJitterBoxes;
class RandomJitterBoxesDefaultTypeInternal;
extern RandomJitterBoxesDefaultTypeInternal _RandomJitterBoxes_default_instance_;
class RandomPadImage;
class RandomPadImageDefaultTypeInternal;
extern RandomPadImageDefaultTypeInternal _RandomPadImage_default_instance_;
class RandomPixelValueScale;
class RandomPixelValueScaleDefaultTypeInternal;
extern RandomPixelValueScaleDefaultTypeInternal _RandomPixelValueScale_default_instance_;
class RandomRGBtoGray;
class RandomRGBtoGrayDefaultTypeInternal;
extern RandomRGBtoGrayDefaultTypeInternal _RandomRGBtoGray_default_instance_;
class RandomResizeMethod;
class RandomResizeMethodDefaultTypeInternal;
extern RandomResizeMethodDefaultTypeInternal _RandomResizeMethod_default_instance_;
class RandomRotation90;
class RandomRotation90DefaultTypeInternal;
extern RandomRotation90DefaultTypeInternal _RandomRotation90_default_instance_;
class RandomSelfConcatImage;
class RandomSelfConcatImageDefaultTypeInternal;
extern RandomSelfConcatImageDefaultTypeInternal _RandomSelfConcatImage_default_instance_;
class RandomVerticalFlip;
class RandomVerticalFlipDefaultTypeInternal;
extern RandomVerticalFlipDefaultTypeInternal _RandomVerticalFlip_default_instance_;
class RemapLabels;
class RemapLabelsDefaultTypeInternal;
extern RemapLabelsDefaultTypeInternal _RemapLabels_default_instance_;
class ResizeImage;
class ResizeImageDefaultTypeInternal;
extern ResizeImageDefaultTypeInternal _ResizeImage_default_instance_;
class SSDRandomCrop;
class SSDRandomCropDefaultTypeInternal;
extern SSDRandomCropDefaultTypeInternal _SSDRandomCrop_default_instance_;
class SSDRandomCropFixedAspectRatio;
class SSDRandomCropFixedAspectRatioDefaultTypeInternal;
extern SSDRandomCropFixedAspectRatioDefaultTypeInternal _SSDRandomCropFixedAspectRatio_default_instance_;
class SSDRandomCropFixedAspectRatioOperation;
class SSDRandomCropFixedAspectRatioOperationDefaultTypeInternal;
extern SSDRandomCropFixedAspectRatioOperationDefaultTypeInternal _SSDRandomCropFixedAspectRatioOperation_default_instance_;
class SSDRandomCropOperation;
class SSDRandomCropOperationDefaultTypeInternal;
extern SSDRandomCropOperationDefaultTypeInternal _SSDRandomCropOperation_default_instance_;
class SSDRandomCropPad;
class SSDRandomCropPadDefaultTypeInternal;
extern SSDRandomCropPadDefaultTypeInternal _SSDRandomCropPad_default_instance_;
class SSDRandomCropPadFixedAspectRatio;
class SSDRandomCropPadFixedAspectRatioDefaultTypeInternal;
extern SSDRandomCropPadFixedAspectRatioDefaultTypeInternal _SSDRandomCropPadFixedAspectRatio_default_instance_;
class SSDRandomCropPadFixedAspectRatioOperation;
class SSDRandomCropPadFixedAspectRatioOperationDefaultTypeInternal;
extern SSDRandomCropPadFixedAspectRatioOperationDefaultTypeInternal _SSDRandomCropPadFixedAspectRatioOperation_default_instance_;
class SSDRandomCropPadOperation;
class SSDRandomCropPadOperationDefaultTypeInternal;
extern SSDRandomCropPadOperationDefaultTypeInternal _SSDRandomCropPadOperation_default_instance_;
class ScaleBoxesToPixelCoordinates;
class ScaleBoxesToPixelCoordinatesDefaultTypeInternal;
extern ScaleBoxesToPixelCoordinatesDefaultTypeInternal _ScaleBoxesToPixelCoordinates_default_instance_;
class SubtractChannelMean;
class SubtractChannelMeanDefaultTypeInternal;
extern SubtractChannelMeanDefaultTypeInternal _SubtractChannelMean_default_instance_;
}  // namespace protos
}  // namespace object_detection
PROTOBUF_NAMESPACE_OPEN
template<> ::object_detection::protos::AutoAugmentImage* Arena::CreateMaybeMessage<::object_detection::protos::AutoAugmentImage>(Arena*);
template<> ::object_detection::protos::ConvertClassLogitsToSoftmax* Arena::CreateMaybeMessage<::object_detection::protos::ConvertClassLogitsToSoftmax>(Arena*);
template<> ::object_detection::protos::DropLabelProbabilistically* Arena::CreateMaybeMessage<::object_detection::protos::DropLabelProbabilistically>(Arena*);
template<> ::object_detection::protos::NormalizeImage* Arena::CreateMaybeMessage<::object_detection::protos::NormalizeImage>(Arena*);
template<> ::object_detection::protos::PreprocessingStep* Arena::CreateMaybeMessage<::object_detection::protos::PreprocessingStep>(Arena*);
template<> ::object_detection::protos::RGBtoGray* Arena::CreateMaybeMessage<::object_detection::protos::RGBtoGray>(Arena*);
template<> ::object_detection::protos::RandomAbsolutePadImage* Arena::CreateMaybeMessage<::object_detection::protos::RandomAbsolutePadImage>(Arena*);
template<> ::object_detection::protos::RandomAdjustBrightness* Arena::CreateMaybeMessage<::object_detection::protos::RandomAdjustBrightness>(Arena*);
template<> ::object_detection::protos::RandomAdjustContrast* Arena::CreateMaybeMessage<::object_detection::protos::RandomAdjustContrast>(Arena*);
template<> ::object_detection::protos::RandomAdjustHue* Arena::CreateMaybeMessage<::object_detection::protos::RandomAdjustHue>(Arena*);
template<> ::object_detection::protos::RandomAdjustSaturation* Arena::CreateMaybeMessage<::object_detection::protos::RandomAdjustSaturation>(Arena*);
template<> ::object_detection::protos::RandomBlackPatches* Arena::CreateMaybeMessage<::object_detection::protos::RandomBlackPatches>(Arena*);
template<> ::object_detection::protos::RandomCropImage* Arena::CreateMaybeMessage<::object_detection::protos::RandomCropImage>(Arena*);
template<> ::object_detection::protos::RandomCropPadImage* Arena::CreateMaybeMessage<::object_detection::protos::RandomCropPadImage>(Arena*);
template<> ::object_detection::protos::RandomCropToAspectRatio* Arena::CreateMaybeMessage<::object_detection::protos::RandomCropToAspectRatio>(Arena*);
template<> ::object_detection::protos::RandomDistortColor* Arena::CreateMaybeMessage<::object_detection::protos::RandomDistortColor>(Arena*);
template<> ::object_detection::protos::RandomHorizontalFlip* Arena::CreateMaybeMessage<::object_detection::protos::RandomHorizontalFlip>(Arena*);
template<> ::object_detection::protos::RandomImageScale* Arena::CreateMaybeMessage<::object_detection::protos::RandomImageScale>(Arena*);
template<> ::object_detection::protos::RandomJitterBoxes* Arena::CreateMaybeMessage<::object_detection::protos::RandomJitterBoxes>(Arena*);
template<> ::object_detection::protos::RandomPadImage* Arena::CreateMaybeMessage<::object_detection::protos::RandomPadImage>(Arena*);
template<> ::object_detection::protos::RandomPixelValueScale* Arena::CreateMaybeMessage<::object_detection::protos::RandomPixelValueScale>(Arena*);
template<> ::object_detection::protos::RandomRGBtoGray* Arena::CreateMaybeMessage<::object_detection::protos::RandomRGBtoGray>(Arena*);
template<> ::object_detection::protos::RandomResizeMethod* Arena::CreateMaybeMessage<::object_detection::protos::RandomResizeMethod>(Arena*);
template<> ::object_detection::protos::RandomRotation90* Arena::CreateMaybeMessage<::object_detection::protos::RandomRotation90>(Arena*);
template<> ::object_detection::protos::RandomSelfConcatImage* Arena::CreateMaybeMessage<::object_detection::protos::RandomSelfConcatImage>(Arena*);
template<> ::object_detection::protos::RandomVerticalFlip* Arena::CreateMaybeMessage<::object_detection::protos::RandomVerticalFlip>(Arena*);
template<> ::object_detection::protos::RemapLabels* Arena::CreateMaybeMessage<::object_detection::protos::RemapLabels>(Arena*);
template<> ::object_detection::protos::ResizeImage* Arena::CreateMaybeMessage<::object_detection::protos::ResizeImage>(Arena*);
template<> ::object_detection::protos::SSDRandomCrop* Arena::CreateMaybeMessage<::object_detection::protos::SSDRandomCrop>(Arena*);
template<> ::object_detection::protos::SSDRandomCropFixedAspectRatio* Arena::CreateMaybeMessage<::object_detection::protos::SSDRandomCropFixedAspectRatio>(Arena*);
template<> ::object_detection::protos::SSDRandomCropFixedAspectRatioOperation* Arena::CreateMaybeMessage<::object_detection::protos::SSDRandomCropFixedAspectRatioOperation>(Arena*);
template<> ::object_detection::protos::SSDRandomCropOperation* Arena::CreateMaybeMessage<::object_detection::protos::SSDRandomCropOperation>(Arena*);
template<> ::object_detection::protos::SSDRandomCropPad* Arena::CreateMaybeMessage<::object_detection::protos::SSDRandomCropPad>(Arena*);
template<> ::object_detection::protos::SSDRandomCropPadFixedAspectRatio* Arena::CreateMaybeMessage<::object_detection::protos::SSDRandomCropPadFixedAspectRatio>(Arena*);
template<> ::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation* Arena::CreateMaybeMessage<::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation>(Arena*);
template<> ::object_detection::protos::SSDRandomCropPadOperation* Arena::CreateMaybeMessage<::object_detection::protos::SSDRandomCropPadOperation>(Arena*);
template<> ::object_detection::protos::ScaleBoxesToPixelCoordinates* Arena::CreateMaybeMessage<::object_detection::protos::ScaleBoxesToPixelCoordinates>(Arena*);
template<> ::object_detection::protos::SubtractChannelMean* Arena::CreateMaybeMessage<::object_detection::protos::SubtractChannelMean>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace object_detection {
namespace protos {

enum ResizeImage_Method : int {
  ResizeImage_Method_AREA = 1,
  ResizeImage_Method_BICUBIC = 2,
  ResizeImage_Method_BILINEAR = 3,
  ResizeImage_Method_NEAREST_NEIGHBOR = 4
};
bool ResizeImage_Method_IsValid(int value);
constexpr ResizeImage_Method ResizeImage_Method_Method_MIN = ResizeImage_Method_AREA;
constexpr ResizeImage_Method ResizeImage_Method_Method_MAX = ResizeImage_Method_NEAREST_NEIGHBOR;
constexpr int ResizeImage_Method_Method_ARRAYSIZE = ResizeImage_Method_Method_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ResizeImage_Method_descriptor();
template<typename T>
inline const std::string& ResizeImage_Method_Name(T enum_t_value) {
  static_assert(::std::is_same<T, ResizeImage_Method>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function ResizeImage_Method_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    ResizeImage_Method_descriptor(), enum_t_value);
}
inline bool ResizeImage_Method_Parse(
    const std::string& name, ResizeImage_Method* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<ResizeImage_Method>(
    ResizeImage_Method_descriptor(), name, value);
}
// ===================================================================

class PreprocessingStep :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.PreprocessingStep) */ {
 public:
  PreprocessingStep();
  virtual ~PreprocessingStep();

  PreprocessingStep(const PreprocessingStep& from);
  PreprocessingStep(PreprocessingStep&& from) noexcept
    : PreprocessingStep() {
    *this = ::std::move(from);
  }

  inline PreprocessingStep& operator=(const PreprocessingStep& from) {
    CopyFrom(from);
    return *this;
  }
  inline PreprocessingStep& operator=(PreprocessingStep&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const PreprocessingStep& default_instance();

  enum PreprocessingStepCase {
    kNormalizeImage = 1,
    kRandomHorizontalFlip = 2,
    kRandomPixelValueScale = 3,
    kRandomImageScale = 4,
    kRandomRgbToGray = 5,
    kRandomAdjustBrightness = 6,
    kRandomAdjustContrast = 7,
    kRandomAdjustHue = 8,
    kRandomAdjustSaturation = 9,
    kRandomDistortColor = 10,
    kRandomJitterBoxes = 11,
    kRandomCropImage = 12,
    kRandomPadImage = 13,
    kRandomCropPadImage = 14,
    kRandomCropToAspectRatio = 15,
    kRandomBlackPatches = 16,
    kRandomResizeMethod = 17,
    kScaleBoxesToPixelCoordinates = 18,
    kResizeImage = 19,
    kSubtractChannelMean = 20,
    kSsdRandomCrop = 21,
    kSsdRandomCropPad = 22,
    kSsdRandomCropFixedAspectRatio = 23,
    kSsdRandomCropPadFixedAspectRatio = 24,
    kRandomVerticalFlip = 25,
    kRandomRotation90 = 26,
    kRgbToGray = 27,
    kConvertClassLogitsToSoftmax = 28,
    kRandomAbsolutePadImage = 29,
    kRandomSelfConcatImage = 30,
    kAutoaugmentImage = 31,
    kDropLabelProbabilistically = 32,
    kRemapLabels = 33,
    PREPROCESSING_STEP_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PreprocessingStep* internal_default_instance() {
    return reinterpret_cast<const PreprocessingStep*>(
               &_PreprocessingStep_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(PreprocessingStep& a, PreprocessingStep& b) {
    a.Swap(&b);
  }
  inline void Swap(PreprocessingStep* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PreprocessingStep* New() const final {
    return CreateMaybeMessage<PreprocessingStep>(nullptr);
  }

  PreprocessingStep* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PreprocessingStep>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PreprocessingStep& from);
  void MergeFrom(const PreprocessingStep& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PreprocessingStep* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.PreprocessingStep";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kNormalizeImageFieldNumber = 1,
    kRandomHorizontalFlipFieldNumber = 2,
    kRandomPixelValueScaleFieldNumber = 3,
    kRandomImageScaleFieldNumber = 4,
    kRandomRgbToGrayFieldNumber = 5,
    kRandomAdjustBrightnessFieldNumber = 6,
    kRandomAdjustContrastFieldNumber = 7,
    kRandomAdjustHueFieldNumber = 8,
    kRandomAdjustSaturationFieldNumber = 9,
    kRandomDistortColorFieldNumber = 10,
    kRandomJitterBoxesFieldNumber = 11,
    kRandomCropImageFieldNumber = 12,
    kRandomPadImageFieldNumber = 13,
    kRandomCropPadImageFieldNumber = 14,
    kRandomCropToAspectRatioFieldNumber = 15,
    kRandomBlackPatchesFieldNumber = 16,
    kRandomResizeMethodFieldNumber = 17,
    kScaleBoxesToPixelCoordinatesFieldNumber = 18,
    kResizeImageFieldNumber = 19,
    kSubtractChannelMeanFieldNumber = 20,
    kSsdRandomCropFieldNumber = 21,
    kSsdRandomCropPadFieldNumber = 22,
    kSsdRandomCropFixedAspectRatioFieldNumber = 23,
    kSsdRandomCropPadFixedAspectRatioFieldNumber = 24,
    kRandomVerticalFlipFieldNumber = 25,
    kRandomRotation90FieldNumber = 26,
    kRgbToGrayFieldNumber = 27,
    kConvertClassLogitsToSoftmaxFieldNumber = 28,
    kRandomAbsolutePadImageFieldNumber = 29,
    kRandomSelfConcatImageFieldNumber = 30,
    kAutoaugmentImageFieldNumber = 31,
    kDropLabelProbabilisticallyFieldNumber = 32,
    kRemapLabelsFieldNumber = 33,
  };
  // optional .object_detection.protos.NormalizeImage normalize_image = 1;
  bool has_normalize_image() const;
  void clear_normalize_image();
  const ::object_detection::protos::NormalizeImage& normalize_image() const;
  ::object_detection::protos::NormalizeImage* release_normalize_image();
  ::object_detection::protos::NormalizeImage* mutable_normalize_image();
  void set_allocated_normalize_image(::object_detection::protos::NormalizeImage* normalize_image);

  // optional .object_detection.protos.RandomHorizontalFlip random_horizontal_flip = 2;
  bool has_random_horizontal_flip() const;
  void clear_random_horizontal_flip();
  const ::object_detection::protos::RandomHorizontalFlip& random_horizontal_flip() const;
  ::object_detection::protos::RandomHorizontalFlip* release_random_horizontal_flip();
  ::object_detection::protos::RandomHorizontalFlip* mutable_random_horizontal_flip();
  void set_allocated_random_horizontal_flip(::object_detection::protos::RandomHorizontalFlip* random_horizontal_flip);

  // optional .object_detection.protos.RandomPixelValueScale random_pixel_value_scale = 3;
  bool has_random_pixel_value_scale() const;
  void clear_random_pixel_value_scale();
  const ::object_detection::protos::RandomPixelValueScale& random_pixel_value_scale() const;
  ::object_detection::protos::RandomPixelValueScale* release_random_pixel_value_scale();
  ::object_detection::protos::RandomPixelValueScale* mutable_random_pixel_value_scale();
  void set_allocated_random_pixel_value_scale(::object_detection::protos::RandomPixelValueScale* random_pixel_value_scale);

  // optional .object_detection.protos.RandomImageScale random_image_scale = 4;
  bool has_random_image_scale() const;
  void clear_random_image_scale();
  const ::object_detection::protos::RandomImageScale& random_image_scale() const;
  ::object_detection::protos::RandomImageScale* release_random_image_scale();
  ::object_detection::protos::RandomImageScale* mutable_random_image_scale();
  void set_allocated_random_image_scale(::object_detection::protos::RandomImageScale* random_image_scale);

  // optional .object_detection.protos.RandomRGBtoGray random_rgb_to_gray = 5;
  bool has_random_rgb_to_gray() const;
  void clear_random_rgb_to_gray();
  const ::object_detection::protos::RandomRGBtoGray& random_rgb_to_gray() const;
  ::object_detection::protos::RandomRGBtoGray* release_random_rgb_to_gray();
  ::object_detection::protos::RandomRGBtoGray* mutable_random_rgb_to_gray();
  void set_allocated_random_rgb_to_gray(::object_detection::protos::RandomRGBtoGray* random_rgb_to_gray);

  // optional .object_detection.protos.RandomAdjustBrightness random_adjust_brightness = 6;
  bool has_random_adjust_brightness() const;
  void clear_random_adjust_brightness();
  const ::object_detection::protos::RandomAdjustBrightness& random_adjust_brightness() const;
  ::object_detection::protos::RandomAdjustBrightness* release_random_adjust_brightness();
  ::object_detection::protos::RandomAdjustBrightness* mutable_random_adjust_brightness();
  void set_allocated_random_adjust_brightness(::object_detection::protos::RandomAdjustBrightness* random_adjust_brightness);

  // optional .object_detection.protos.RandomAdjustContrast random_adjust_contrast = 7;
  bool has_random_adjust_contrast() const;
  void clear_random_adjust_contrast();
  const ::object_detection::protos::RandomAdjustContrast& random_adjust_contrast() const;
  ::object_detection::protos::RandomAdjustContrast* release_random_adjust_contrast();
  ::object_detection::protos::RandomAdjustContrast* mutable_random_adjust_contrast();
  void set_allocated_random_adjust_contrast(::object_detection::protos::RandomAdjustContrast* random_adjust_contrast);

  // optional .object_detection.protos.RandomAdjustHue random_adjust_hue = 8;
  bool has_random_adjust_hue() const;
  void clear_random_adjust_hue();
  const ::object_detection::protos::RandomAdjustHue& random_adjust_hue() const;
  ::object_detection::protos::RandomAdjustHue* release_random_adjust_hue();
  ::object_detection::protos::RandomAdjustHue* mutable_random_adjust_hue();
  void set_allocated_random_adjust_hue(::object_detection::protos::RandomAdjustHue* random_adjust_hue);

  // optional .object_detection.protos.RandomAdjustSaturation random_adjust_saturation = 9;
  bool has_random_adjust_saturation() const;
  void clear_random_adjust_saturation();
  const ::object_detection::protos::RandomAdjustSaturation& random_adjust_saturation() const;
  ::object_detection::protos::RandomAdjustSaturation* release_random_adjust_saturation();
  ::object_detection::protos::RandomAdjustSaturation* mutable_random_adjust_saturation();
  void set_allocated_random_adjust_saturation(::object_detection::protos::RandomAdjustSaturation* random_adjust_saturation);

  // optional .object_detection.protos.RandomDistortColor random_distort_color = 10;
  bool has_random_distort_color() const;
  void clear_random_distort_color();
  const ::object_detection::protos::RandomDistortColor& random_distort_color() const;
  ::object_detection::protos::RandomDistortColor* release_random_distort_color();
  ::object_detection::protos::RandomDistortColor* mutable_random_distort_color();
  void set_allocated_random_distort_color(::object_detection::protos::RandomDistortColor* random_distort_color);

  // optional .object_detection.protos.RandomJitterBoxes random_jitter_boxes = 11;
  bool has_random_jitter_boxes() const;
  void clear_random_jitter_boxes();
  const ::object_detection::protos::RandomJitterBoxes& random_jitter_boxes() const;
  ::object_detection::protos::RandomJitterBoxes* release_random_jitter_boxes();
  ::object_detection::protos::RandomJitterBoxes* mutable_random_jitter_boxes();
  void set_allocated_random_jitter_boxes(::object_detection::protos::RandomJitterBoxes* random_jitter_boxes);

  // optional .object_detection.protos.RandomCropImage random_crop_image = 12;
  bool has_random_crop_image() const;
  void clear_random_crop_image();
  const ::object_detection::protos::RandomCropImage& random_crop_image() const;
  ::object_detection::protos::RandomCropImage* release_random_crop_image();
  ::object_detection::protos::RandomCropImage* mutable_random_crop_image();
  void set_allocated_random_crop_image(::object_detection::protos::RandomCropImage* random_crop_image);

  // optional .object_detection.protos.RandomPadImage random_pad_image = 13;
  bool has_random_pad_image() const;
  void clear_random_pad_image();
  const ::object_detection::protos::RandomPadImage& random_pad_image() const;
  ::object_detection::protos::RandomPadImage* release_random_pad_image();
  ::object_detection::protos::RandomPadImage* mutable_random_pad_image();
  void set_allocated_random_pad_image(::object_detection::protos::RandomPadImage* random_pad_image);

  // optional .object_detection.protos.RandomCropPadImage random_crop_pad_image = 14;
  bool has_random_crop_pad_image() const;
  void clear_random_crop_pad_image();
  const ::object_detection::protos::RandomCropPadImage& random_crop_pad_image() const;
  ::object_detection::protos::RandomCropPadImage* release_random_crop_pad_image();
  ::object_detection::protos::RandomCropPadImage* mutable_random_crop_pad_image();
  void set_allocated_random_crop_pad_image(::object_detection::protos::RandomCropPadImage* random_crop_pad_image);

  // optional .object_detection.protos.RandomCropToAspectRatio random_crop_to_aspect_ratio = 15;
  bool has_random_crop_to_aspect_ratio() const;
  void clear_random_crop_to_aspect_ratio();
  const ::object_detection::protos::RandomCropToAspectRatio& random_crop_to_aspect_ratio() const;
  ::object_detection::protos::RandomCropToAspectRatio* release_random_crop_to_aspect_ratio();
  ::object_detection::protos::RandomCropToAspectRatio* mutable_random_crop_to_aspect_ratio();
  void set_allocated_random_crop_to_aspect_ratio(::object_detection::protos::RandomCropToAspectRatio* random_crop_to_aspect_ratio);

  // optional .object_detection.protos.RandomBlackPatches random_black_patches = 16;
  bool has_random_black_patches() const;
  void clear_random_black_patches();
  const ::object_detection::protos::RandomBlackPatches& random_black_patches() const;
  ::object_detection::protos::RandomBlackPatches* release_random_black_patches();
  ::object_detection::protos::RandomBlackPatches* mutable_random_black_patches();
  void set_allocated_random_black_patches(::object_detection::protos::RandomBlackPatches* random_black_patches);

  // optional .object_detection.protos.RandomResizeMethod random_resize_method = 17;
  bool has_random_resize_method() const;
  void clear_random_resize_method();
  const ::object_detection::protos::RandomResizeMethod& random_resize_method() const;
  ::object_detection::protos::RandomResizeMethod* release_random_resize_method();
  ::object_detection::protos::RandomResizeMethod* mutable_random_resize_method();
  void set_allocated_random_resize_method(::object_detection::protos::RandomResizeMethod* random_resize_method);

  // optional .object_detection.protos.ScaleBoxesToPixelCoordinates scale_boxes_to_pixel_coordinates = 18;
  bool has_scale_boxes_to_pixel_coordinates() const;
  void clear_scale_boxes_to_pixel_coordinates();
  const ::object_detection::protos::ScaleBoxesToPixelCoordinates& scale_boxes_to_pixel_coordinates() const;
  ::object_detection::protos::ScaleBoxesToPixelCoordinates* release_scale_boxes_to_pixel_coordinates();
  ::object_detection::protos::ScaleBoxesToPixelCoordinates* mutable_scale_boxes_to_pixel_coordinates();
  void set_allocated_scale_boxes_to_pixel_coordinates(::object_detection::protos::ScaleBoxesToPixelCoordinates* scale_boxes_to_pixel_coordinates);

  // optional .object_detection.protos.ResizeImage resize_image = 19;
  bool has_resize_image() const;
  void clear_resize_image();
  const ::object_detection::protos::ResizeImage& resize_image() const;
  ::object_detection::protos::ResizeImage* release_resize_image();
  ::object_detection::protos::ResizeImage* mutable_resize_image();
  void set_allocated_resize_image(::object_detection::protos::ResizeImage* resize_image);

  // optional .object_detection.protos.SubtractChannelMean subtract_channel_mean = 20;
  bool has_subtract_channel_mean() const;
  void clear_subtract_channel_mean();
  const ::object_detection::protos::SubtractChannelMean& subtract_channel_mean() const;
  ::object_detection::protos::SubtractChannelMean* release_subtract_channel_mean();
  ::object_detection::protos::SubtractChannelMean* mutable_subtract_channel_mean();
  void set_allocated_subtract_channel_mean(::object_detection::protos::SubtractChannelMean* subtract_channel_mean);

  // optional .object_detection.protos.SSDRandomCrop ssd_random_crop = 21;
  bool has_ssd_random_crop() const;
  void clear_ssd_random_crop();
  const ::object_detection::protos::SSDRandomCrop& ssd_random_crop() const;
  ::object_detection::protos::SSDRandomCrop* release_ssd_random_crop();
  ::object_detection::protos::SSDRandomCrop* mutable_ssd_random_crop();
  void set_allocated_ssd_random_crop(::object_detection::protos::SSDRandomCrop* ssd_random_crop);

  // optional .object_detection.protos.SSDRandomCropPad ssd_random_crop_pad = 22;
  bool has_ssd_random_crop_pad() const;
  void clear_ssd_random_crop_pad();
  const ::object_detection::protos::SSDRandomCropPad& ssd_random_crop_pad() const;
  ::object_detection::protos::SSDRandomCropPad* release_ssd_random_crop_pad();
  ::object_detection::protos::SSDRandomCropPad* mutable_ssd_random_crop_pad();
  void set_allocated_ssd_random_crop_pad(::object_detection::protos::SSDRandomCropPad* ssd_random_crop_pad);

  // optional .object_detection.protos.SSDRandomCropFixedAspectRatio ssd_random_crop_fixed_aspect_ratio = 23;
  bool has_ssd_random_crop_fixed_aspect_ratio() const;
  void clear_ssd_random_crop_fixed_aspect_ratio();
  const ::object_detection::protos::SSDRandomCropFixedAspectRatio& ssd_random_crop_fixed_aspect_ratio() const;
  ::object_detection::protos::SSDRandomCropFixedAspectRatio* release_ssd_random_crop_fixed_aspect_ratio();
  ::object_detection::protos::SSDRandomCropFixedAspectRatio* mutable_ssd_random_crop_fixed_aspect_ratio();
  void set_allocated_ssd_random_crop_fixed_aspect_ratio(::object_detection::protos::SSDRandomCropFixedAspectRatio* ssd_random_crop_fixed_aspect_ratio);

  // optional .object_detection.protos.SSDRandomCropPadFixedAspectRatio ssd_random_crop_pad_fixed_aspect_ratio = 24;
  bool has_ssd_random_crop_pad_fixed_aspect_ratio() const;
  void clear_ssd_random_crop_pad_fixed_aspect_ratio();
  const ::object_detection::protos::SSDRandomCropPadFixedAspectRatio& ssd_random_crop_pad_fixed_aspect_ratio() const;
  ::object_detection::protos::SSDRandomCropPadFixedAspectRatio* release_ssd_random_crop_pad_fixed_aspect_ratio();
  ::object_detection::protos::SSDRandomCropPadFixedAspectRatio* mutable_ssd_random_crop_pad_fixed_aspect_ratio();
  void set_allocated_ssd_random_crop_pad_fixed_aspect_ratio(::object_detection::protos::SSDRandomCropPadFixedAspectRatio* ssd_random_crop_pad_fixed_aspect_ratio);

  // optional .object_detection.protos.RandomVerticalFlip random_vertical_flip = 25;
  bool has_random_vertical_flip() const;
  void clear_random_vertical_flip();
  const ::object_detection::protos::RandomVerticalFlip& random_vertical_flip() const;
  ::object_detection::protos::RandomVerticalFlip* release_random_vertical_flip();
  ::object_detection::protos::RandomVerticalFlip* mutable_random_vertical_flip();
  void set_allocated_random_vertical_flip(::object_detection::protos::RandomVerticalFlip* random_vertical_flip);

  // optional .object_detection.protos.RandomRotation90 random_rotation90 = 26;
  bool has_random_rotation90() const;
  void clear_random_rotation90();
  const ::object_detection::protos::RandomRotation90& random_rotation90() const;
  ::object_detection::protos::RandomRotation90* release_random_rotation90();
  ::object_detection::protos::RandomRotation90* mutable_random_rotation90();
  void set_allocated_random_rotation90(::object_detection::protos::RandomRotation90* random_rotation90);

  // optional .object_detection.protos.RGBtoGray rgb_to_gray = 27;
  bool has_rgb_to_gray() const;
  void clear_rgb_to_gray();
  const ::object_detection::protos::RGBtoGray& rgb_to_gray() const;
  ::object_detection::protos::RGBtoGray* release_rgb_to_gray();
  ::object_detection::protos::RGBtoGray* mutable_rgb_to_gray();
  void set_allocated_rgb_to_gray(::object_detection::protos::RGBtoGray* rgb_to_gray);

  // optional .object_detection.protos.ConvertClassLogitsToSoftmax convert_class_logits_to_softmax = 28;
  bool has_convert_class_logits_to_softmax() const;
  void clear_convert_class_logits_to_softmax();
  const ::object_detection::protos::ConvertClassLogitsToSoftmax& convert_class_logits_to_softmax() const;
  ::object_detection::protos::ConvertClassLogitsToSoftmax* release_convert_class_logits_to_softmax();
  ::object_detection::protos::ConvertClassLogitsToSoftmax* mutable_convert_class_logits_to_softmax();
  void set_allocated_convert_class_logits_to_softmax(::object_detection::protos::ConvertClassLogitsToSoftmax* convert_class_logits_to_softmax);

  // optional .object_detection.protos.RandomAbsolutePadImage random_absolute_pad_image = 29;
  bool has_random_absolute_pad_image() const;
  void clear_random_absolute_pad_image();
  const ::object_detection::protos::RandomAbsolutePadImage& random_absolute_pad_image() const;
  ::object_detection::protos::RandomAbsolutePadImage* release_random_absolute_pad_image();
  ::object_detection::protos::RandomAbsolutePadImage* mutable_random_absolute_pad_image();
  void set_allocated_random_absolute_pad_image(::object_detection::protos::RandomAbsolutePadImage* random_absolute_pad_image);

  // optional .object_detection.protos.RandomSelfConcatImage random_self_concat_image = 30;
  bool has_random_self_concat_image() const;
  void clear_random_self_concat_image();
  const ::object_detection::protos::RandomSelfConcatImage& random_self_concat_image() const;
  ::object_detection::protos::RandomSelfConcatImage* release_random_self_concat_image();
  ::object_detection::protos::RandomSelfConcatImage* mutable_random_self_concat_image();
  void set_allocated_random_self_concat_image(::object_detection::protos::RandomSelfConcatImage* random_self_concat_image);

  // optional .object_detection.protos.AutoAugmentImage autoaugment_image = 31;
  bool has_autoaugment_image() const;
  void clear_autoaugment_image();
  const ::object_detection::protos::AutoAugmentImage& autoaugment_image() const;
  ::object_detection::protos::AutoAugmentImage* release_autoaugment_image();
  ::object_detection::protos::AutoAugmentImage* mutable_autoaugment_image();
  void set_allocated_autoaugment_image(::object_detection::protos::AutoAugmentImage* autoaugment_image);

  // optional .object_detection.protos.DropLabelProbabilistically drop_label_probabilistically = 32;
  bool has_drop_label_probabilistically() const;
  void clear_drop_label_probabilistically();
  const ::object_detection::protos::DropLabelProbabilistically& drop_label_probabilistically() const;
  ::object_detection::protos::DropLabelProbabilistically* release_drop_label_probabilistically();
  ::object_detection::protos::DropLabelProbabilistically* mutable_drop_label_probabilistically();
  void set_allocated_drop_label_probabilistically(::object_detection::protos::DropLabelProbabilistically* drop_label_probabilistically);

  // optional .object_detection.protos.RemapLabels remap_labels = 33;
  bool has_remap_labels() const;
  void clear_remap_labels();
  const ::object_detection::protos::RemapLabels& remap_labels() const;
  ::object_detection::protos::RemapLabels* release_remap_labels();
  ::object_detection::protos::RemapLabels* mutable_remap_labels();
  void set_allocated_remap_labels(::object_detection::protos::RemapLabels* remap_labels);

  void clear_preprocessing_step();
  PreprocessingStepCase preprocessing_step_case() const;
  // @@protoc_insertion_point(class_scope:object_detection.protos.PreprocessingStep)
 private:
  class _Internal;
  void set_has_normalize_image();
  void set_has_random_horizontal_flip();
  void set_has_random_pixel_value_scale();
  void set_has_random_image_scale();
  void set_has_random_rgb_to_gray();
  void set_has_random_adjust_brightness();
  void set_has_random_adjust_contrast();
  void set_has_random_adjust_hue();
  void set_has_random_adjust_saturation();
  void set_has_random_distort_color();
  void set_has_random_jitter_boxes();
  void set_has_random_crop_image();
  void set_has_random_pad_image();
  void set_has_random_crop_pad_image();
  void set_has_random_crop_to_aspect_ratio();
  void set_has_random_black_patches();
  void set_has_random_resize_method();
  void set_has_scale_boxes_to_pixel_coordinates();
  void set_has_resize_image();
  void set_has_subtract_channel_mean();
  void set_has_ssd_random_crop();
  void set_has_ssd_random_crop_pad();
  void set_has_ssd_random_crop_fixed_aspect_ratio();
  void set_has_ssd_random_crop_pad_fixed_aspect_ratio();
  void set_has_random_vertical_flip();
  void set_has_random_rotation90();
  void set_has_rgb_to_gray();
  void set_has_convert_class_logits_to_softmax();
  void set_has_random_absolute_pad_image();
  void set_has_random_self_concat_image();
  void set_has_autoaugment_image();
  void set_has_drop_label_probabilistically();
  void set_has_remap_labels();

  inline bool has_preprocessing_step() const;
  inline void clear_has_preprocessing_step();

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  union PreprocessingStepUnion {
    PreprocessingStepUnion() {}
    ::object_detection::protos::NormalizeImage* normalize_image_;
    ::object_detection::protos::RandomHorizontalFlip* random_horizontal_flip_;
    ::object_detection::protos::RandomPixelValueScale* random_pixel_value_scale_;
    ::object_detection::protos::RandomImageScale* random_image_scale_;
    ::object_detection::protos::RandomRGBtoGray* random_rgb_to_gray_;
    ::object_detection::protos::RandomAdjustBrightness* random_adjust_brightness_;
    ::object_detection::protos::RandomAdjustContrast* random_adjust_contrast_;
    ::object_detection::protos::RandomAdjustHue* random_adjust_hue_;
    ::object_detection::protos::RandomAdjustSaturation* random_adjust_saturation_;
    ::object_detection::protos::RandomDistortColor* random_distort_color_;
    ::object_detection::protos::RandomJitterBoxes* random_jitter_boxes_;
    ::object_detection::protos::RandomCropImage* random_crop_image_;
    ::object_detection::protos::RandomPadImage* random_pad_image_;
    ::object_detection::protos::RandomCropPadImage* random_crop_pad_image_;
    ::object_detection::protos::RandomCropToAspectRatio* random_crop_to_aspect_ratio_;
    ::object_detection::protos::RandomBlackPatches* random_black_patches_;
    ::object_detection::protos::RandomResizeMethod* random_resize_method_;
    ::object_detection::protos::ScaleBoxesToPixelCoordinates* scale_boxes_to_pixel_coordinates_;
    ::object_detection::protos::ResizeImage* resize_image_;
    ::object_detection::protos::SubtractChannelMean* subtract_channel_mean_;
    ::object_detection::protos::SSDRandomCrop* ssd_random_crop_;
    ::object_detection::protos::SSDRandomCropPad* ssd_random_crop_pad_;
    ::object_detection::protos::SSDRandomCropFixedAspectRatio* ssd_random_crop_fixed_aspect_ratio_;
    ::object_detection::protos::SSDRandomCropPadFixedAspectRatio* ssd_random_crop_pad_fixed_aspect_ratio_;
    ::object_detection::protos::RandomVerticalFlip* random_vertical_flip_;
    ::object_detection::protos::RandomRotation90* random_rotation90_;
    ::object_detection::protos::RGBtoGray* rgb_to_gray_;
    ::object_detection::protos::ConvertClassLogitsToSoftmax* convert_class_logits_to_softmax_;
    ::object_detection::protos::RandomAbsolutePadImage* random_absolute_pad_image_;
    ::object_detection::protos::RandomSelfConcatImage* random_self_concat_image_;
    ::object_detection::protos::AutoAugmentImage* autoaugment_image_;
    ::object_detection::protos::DropLabelProbabilistically* drop_label_probabilistically_;
    ::object_detection::protos::RemapLabels* remap_labels_;
  } preprocessing_step_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class NormalizeImage :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.NormalizeImage) */ {
 public:
  NormalizeImage();
  virtual ~NormalizeImage();

  NormalizeImage(const NormalizeImage& from);
  NormalizeImage(NormalizeImage&& from) noexcept
    : NormalizeImage() {
    *this = ::std::move(from);
  }

  inline NormalizeImage& operator=(const NormalizeImage& from) {
    CopyFrom(from);
    return *this;
  }
  inline NormalizeImage& operator=(NormalizeImage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const NormalizeImage& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const NormalizeImage* internal_default_instance() {
    return reinterpret_cast<const NormalizeImage*>(
               &_NormalizeImage_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(NormalizeImage& a, NormalizeImage& b) {
    a.Swap(&b);
  }
  inline void Swap(NormalizeImage* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline NormalizeImage* New() const final {
    return CreateMaybeMessage<NormalizeImage>(nullptr);
  }

  NormalizeImage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<NormalizeImage>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const NormalizeImage& from);
  void MergeFrom(const NormalizeImage& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(NormalizeImage* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.NormalizeImage";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kOriginalMinvalFieldNumber = 1,
    kOriginalMaxvalFieldNumber = 2,
    kTargetMinvalFieldNumber = 3,
    kTargetMaxvalFieldNumber = 4,
  };
  // optional float original_minval = 1;
  bool has_original_minval() const;
  void clear_original_minval();
  float original_minval() const;
  void set_original_minval(float value);

  // optional float original_maxval = 2;
  bool has_original_maxval() const;
  void clear_original_maxval();
  float original_maxval() const;
  void set_original_maxval(float value);

  // optional float target_minval = 3 [default = 0];
  bool has_target_minval() const;
  void clear_target_minval();
  float target_minval() const;
  void set_target_minval(float value);

  // optional float target_maxval = 4 [default = 1];
  bool has_target_maxval() const;
  void clear_target_maxval();
  float target_maxval() const;
  void set_target_maxval(float value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.NormalizeImage)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  float original_minval_;
  float original_maxval_;
  float target_minval_;
  float target_maxval_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomHorizontalFlip :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomHorizontalFlip) */ {
 public:
  RandomHorizontalFlip();
  virtual ~RandomHorizontalFlip();

  RandomHorizontalFlip(const RandomHorizontalFlip& from);
  RandomHorizontalFlip(RandomHorizontalFlip&& from) noexcept
    : RandomHorizontalFlip() {
    *this = ::std::move(from);
  }

  inline RandomHorizontalFlip& operator=(const RandomHorizontalFlip& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomHorizontalFlip& operator=(RandomHorizontalFlip&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomHorizontalFlip& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomHorizontalFlip* internal_default_instance() {
    return reinterpret_cast<const RandomHorizontalFlip*>(
               &_RandomHorizontalFlip_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(RandomHorizontalFlip& a, RandomHorizontalFlip& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomHorizontalFlip* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomHorizontalFlip* New() const final {
    return CreateMaybeMessage<RandomHorizontalFlip>(nullptr);
  }

  RandomHorizontalFlip* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomHorizontalFlip>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomHorizontalFlip& from);
  void MergeFrom(const RandomHorizontalFlip& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomHorizontalFlip* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomHorizontalFlip";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kKeypointFlipPermutationFieldNumber = 1,
  };
  // repeated int32 keypoint_flip_permutation = 1;
  int keypoint_flip_permutation_size() const;
  void clear_keypoint_flip_permutation();
  ::PROTOBUF_NAMESPACE_ID::int32 keypoint_flip_permutation(int index) const;
  void set_keypoint_flip_permutation(int index, ::PROTOBUF_NAMESPACE_ID::int32 value);
  void add_keypoint_flip_permutation(::PROTOBUF_NAMESPACE_ID::int32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      keypoint_flip_permutation() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      mutable_keypoint_flip_permutation();

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomHorizontalFlip)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > keypoint_flip_permutation_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomVerticalFlip :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomVerticalFlip) */ {
 public:
  RandomVerticalFlip();
  virtual ~RandomVerticalFlip();

  RandomVerticalFlip(const RandomVerticalFlip& from);
  RandomVerticalFlip(RandomVerticalFlip&& from) noexcept
    : RandomVerticalFlip() {
    *this = ::std::move(from);
  }

  inline RandomVerticalFlip& operator=(const RandomVerticalFlip& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomVerticalFlip& operator=(RandomVerticalFlip&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomVerticalFlip& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomVerticalFlip* internal_default_instance() {
    return reinterpret_cast<const RandomVerticalFlip*>(
               &_RandomVerticalFlip_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  friend void swap(RandomVerticalFlip& a, RandomVerticalFlip& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomVerticalFlip* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomVerticalFlip* New() const final {
    return CreateMaybeMessage<RandomVerticalFlip>(nullptr);
  }

  RandomVerticalFlip* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomVerticalFlip>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomVerticalFlip& from);
  void MergeFrom(const RandomVerticalFlip& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomVerticalFlip* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomVerticalFlip";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kKeypointFlipPermutationFieldNumber = 1,
  };
  // repeated int32 keypoint_flip_permutation = 1;
  int keypoint_flip_permutation_size() const;
  void clear_keypoint_flip_permutation();
  ::PROTOBUF_NAMESPACE_ID::int32 keypoint_flip_permutation(int index) const;
  void set_keypoint_flip_permutation(int index, ::PROTOBUF_NAMESPACE_ID::int32 value);
  void add_keypoint_flip_permutation(::PROTOBUF_NAMESPACE_ID::int32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      keypoint_flip_permutation() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      mutable_keypoint_flip_permutation();

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomVerticalFlip)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > keypoint_flip_permutation_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomRotation90 :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomRotation90) */ {
 public:
  RandomRotation90();
  virtual ~RandomRotation90();

  RandomRotation90(const RandomRotation90& from);
  RandomRotation90(RandomRotation90&& from) noexcept
    : RandomRotation90() {
    *this = ::std::move(from);
  }

  inline RandomRotation90& operator=(const RandomRotation90& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomRotation90& operator=(RandomRotation90&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomRotation90& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomRotation90* internal_default_instance() {
    return reinterpret_cast<const RandomRotation90*>(
               &_RandomRotation90_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(RandomRotation90& a, RandomRotation90& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomRotation90* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomRotation90* New() const final {
    return CreateMaybeMessage<RandomRotation90>(nullptr);
  }

  RandomRotation90* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomRotation90>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomRotation90& from);
  void MergeFrom(const RandomRotation90& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomRotation90* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomRotation90";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomRotation90)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomPixelValueScale :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomPixelValueScale) */ {
 public:
  RandomPixelValueScale();
  virtual ~RandomPixelValueScale();

  RandomPixelValueScale(const RandomPixelValueScale& from);
  RandomPixelValueScale(RandomPixelValueScale&& from) noexcept
    : RandomPixelValueScale() {
    *this = ::std::move(from);
  }

  inline RandomPixelValueScale& operator=(const RandomPixelValueScale& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomPixelValueScale& operator=(RandomPixelValueScale&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomPixelValueScale& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomPixelValueScale* internal_default_instance() {
    return reinterpret_cast<const RandomPixelValueScale*>(
               &_RandomPixelValueScale_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  friend void swap(RandomPixelValueScale& a, RandomPixelValueScale& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomPixelValueScale* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomPixelValueScale* New() const final {
    return CreateMaybeMessage<RandomPixelValueScale>(nullptr);
  }

  RandomPixelValueScale* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomPixelValueScale>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomPixelValueScale& from);
  void MergeFrom(const RandomPixelValueScale& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomPixelValueScale* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomPixelValueScale";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMinvalFieldNumber = 1,
    kMaxvalFieldNumber = 2,
  };
  // optional float minval = 1 [default = 0.9];
  bool has_minval() const;
  void clear_minval();
  float minval() const;
  void set_minval(float value);

  // optional float maxval = 2 [default = 1.1];
  bool has_maxval() const;
  void clear_maxval();
  float maxval() const;
  void set_maxval(float value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomPixelValueScale)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  float minval_;
  float maxval_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomImageScale :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomImageScale) */ {
 public:
  RandomImageScale();
  virtual ~RandomImageScale();

  RandomImageScale(const RandomImageScale& from);
  RandomImageScale(RandomImageScale&& from) noexcept
    : RandomImageScale() {
    *this = ::std::move(from);
  }

  inline RandomImageScale& operator=(const RandomImageScale& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomImageScale& operator=(RandomImageScale&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomImageScale& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomImageScale* internal_default_instance() {
    return reinterpret_cast<const RandomImageScale*>(
               &_RandomImageScale_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

  friend void swap(RandomImageScale& a, RandomImageScale& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomImageScale* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomImageScale* New() const final {
    return CreateMaybeMessage<RandomImageScale>(nullptr);
  }

  RandomImageScale* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomImageScale>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomImageScale& from);
  void MergeFrom(const RandomImageScale& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomImageScale* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomImageScale";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMinScaleRatioFieldNumber = 1,
    kMaxScaleRatioFieldNumber = 2,
  };
  // optional float min_scale_ratio = 1 [default = 0.5];
  bool has_min_scale_ratio() const;
  void clear_min_scale_ratio();
  float min_scale_ratio() const;
  void set_min_scale_ratio(float value);

  // optional float max_scale_ratio = 2 [default = 2];
  bool has_max_scale_ratio() const;
  void clear_max_scale_ratio();
  float max_scale_ratio() const;
  void set_max_scale_ratio(float value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomImageScale)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  float min_scale_ratio_;
  float max_scale_ratio_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomRGBtoGray :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomRGBtoGray) */ {
 public:
  RandomRGBtoGray();
  virtual ~RandomRGBtoGray();

  RandomRGBtoGray(const RandomRGBtoGray& from);
  RandomRGBtoGray(RandomRGBtoGray&& from) noexcept
    : RandomRGBtoGray() {
    *this = ::std::move(from);
  }

  inline RandomRGBtoGray& operator=(const RandomRGBtoGray& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomRGBtoGray& operator=(RandomRGBtoGray&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomRGBtoGray& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomRGBtoGray* internal_default_instance() {
    return reinterpret_cast<const RandomRGBtoGray*>(
               &_RandomRGBtoGray_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    7;

  friend void swap(RandomRGBtoGray& a, RandomRGBtoGray& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomRGBtoGray* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomRGBtoGray* New() const final {
    return CreateMaybeMessage<RandomRGBtoGray>(nullptr);
  }

  RandomRGBtoGray* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomRGBtoGray>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomRGBtoGray& from);
  void MergeFrom(const RandomRGBtoGray& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomRGBtoGray* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomRGBtoGray";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kProbabilityFieldNumber = 1,
  };
  // optional float probability = 1 [default = 0.1];
  bool has_probability() const;
  void clear_probability();
  float probability() const;
  void set_probability(float value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomRGBtoGray)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  float probability_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomAdjustBrightness :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomAdjustBrightness) */ {
 public:
  RandomAdjustBrightness();
  virtual ~RandomAdjustBrightness();

  RandomAdjustBrightness(const RandomAdjustBrightness& from);
  RandomAdjustBrightness(RandomAdjustBrightness&& from) noexcept
    : RandomAdjustBrightness() {
    *this = ::std::move(from);
  }

  inline RandomAdjustBrightness& operator=(const RandomAdjustBrightness& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomAdjustBrightness& operator=(RandomAdjustBrightness&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomAdjustBrightness& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomAdjustBrightness* internal_default_instance() {
    return reinterpret_cast<const RandomAdjustBrightness*>(
               &_RandomAdjustBrightness_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    8;

  friend void swap(RandomAdjustBrightness& a, RandomAdjustBrightness& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomAdjustBrightness* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomAdjustBrightness* New() const final {
    return CreateMaybeMessage<RandomAdjustBrightness>(nullptr);
  }

  RandomAdjustBrightness* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomAdjustBrightness>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomAdjustBrightness& from);
  void MergeFrom(const RandomAdjustBrightness& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomAdjustBrightness* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomAdjustBrightness";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMaxDeltaFieldNumber = 1,
  };
  // optional float max_delta = 1 [default = 0.2];
  bool has_max_delta() const;
  void clear_max_delta();
  float max_delta() const;
  void set_max_delta(float value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomAdjustBrightness)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  float max_delta_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomAdjustContrast :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomAdjustContrast) */ {
 public:
  RandomAdjustContrast();
  virtual ~RandomAdjustContrast();

  RandomAdjustContrast(const RandomAdjustContrast& from);
  RandomAdjustContrast(RandomAdjustContrast&& from) noexcept
    : RandomAdjustContrast() {
    *this = ::std::move(from);
  }

  inline RandomAdjustContrast& operator=(const RandomAdjustContrast& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomAdjustContrast& operator=(RandomAdjustContrast&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomAdjustContrast& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomAdjustContrast* internal_default_instance() {
    return reinterpret_cast<const RandomAdjustContrast*>(
               &_RandomAdjustContrast_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    9;

  friend void swap(RandomAdjustContrast& a, RandomAdjustContrast& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomAdjustContrast* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomAdjustContrast* New() const final {
    return CreateMaybeMessage<RandomAdjustContrast>(nullptr);
  }

  RandomAdjustContrast* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomAdjustContrast>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomAdjustContrast& from);
  void MergeFrom(const RandomAdjustContrast& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomAdjustContrast* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomAdjustContrast";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMinDeltaFieldNumber = 1,
    kMaxDeltaFieldNumber = 2,
  };
  // optional float min_delta = 1 [default = 0.8];
  bool has_min_delta() const;
  void clear_min_delta();
  float min_delta() const;
  void set_min_delta(float value);

  // optional float max_delta = 2 [default = 1.25];
  bool has_max_delta() const;
  void clear_max_delta();
  float max_delta() const;
  void set_max_delta(float value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomAdjustContrast)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  float min_delta_;
  float max_delta_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomAdjustHue :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomAdjustHue) */ {
 public:
  RandomAdjustHue();
  virtual ~RandomAdjustHue();

  RandomAdjustHue(const RandomAdjustHue& from);
  RandomAdjustHue(RandomAdjustHue&& from) noexcept
    : RandomAdjustHue() {
    *this = ::std::move(from);
  }

  inline RandomAdjustHue& operator=(const RandomAdjustHue& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomAdjustHue& operator=(RandomAdjustHue&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomAdjustHue& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomAdjustHue* internal_default_instance() {
    return reinterpret_cast<const RandomAdjustHue*>(
               &_RandomAdjustHue_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    10;

  friend void swap(RandomAdjustHue& a, RandomAdjustHue& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomAdjustHue* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomAdjustHue* New() const final {
    return CreateMaybeMessage<RandomAdjustHue>(nullptr);
  }

  RandomAdjustHue* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomAdjustHue>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomAdjustHue& from);
  void MergeFrom(const RandomAdjustHue& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomAdjustHue* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomAdjustHue";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMaxDeltaFieldNumber = 1,
  };
  // optional float max_delta = 1 [default = 0.02];
  bool has_max_delta() const;
  void clear_max_delta();
  float max_delta() const;
  void set_max_delta(float value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomAdjustHue)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  float max_delta_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomAdjustSaturation :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomAdjustSaturation) */ {
 public:
  RandomAdjustSaturation();
  virtual ~RandomAdjustSaturation();

  RandomAdjustSaturation(const RandomAdjustSaturation& from);
  RandomAdjustSaturation(RandomAdjustSaturation&& from) noexcept
    : RandomAdjustSaturation() {
    *this = ::std::move(from);
  }

  inline RandomAdjustSaturation& operator=(const RandomAdjustSaturation& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomAdjustSaturation& operator=(RandomAdjustSaturation&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomAdjustSaturation& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomAdjustSaturation* internal_default_instance() {
    return reinterpret_cast<const RandomAdjustSaturation*>(
               &_RandomAdjustSaturation_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    11;

  friend void swap(RandomAdjustSaturation& a, RandomAdjustSaturation& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomAdjustSaturation* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomAdjustSaturation* New() const final {
    return CreateMaybeMessage<RandomAdjustSaturation>(nullptr);
  }

  RandomAdjustSaturation* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomAdjustSaturation>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomAdjustSaturation& from);
  void MergeFrom(const RandomAdjustSaturation& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomAdjustSaturation* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomAdjustSaturation";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMinDeltaFieldNumber = 1,
    kMaxDeltaFieldNumber = 2,
  };
  // optional float min_delta = 1 [default = 0.8];
  bool has_min_delta() const;
  void clear_min_delta();
  float min_delta() const;
  void set_min_delta(float value);

  // optional float max_delta = 2 [default = 1.25];
  bool has_max_delta() const;
  void clear_max_delta();
  float max_delta() const;
  void set_max_delta(float value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomAdjustSaturation)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  float min_delta_;
  float max_delta_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomDistortColor :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomDistortColor) */ {
 public:
  RandomDistortColor();
  virtual ~RandomDistortColor();

  RandomDistortColor(const RandomDistortColor& from);
  RandomDistortColor(RandomDistortColor&& from) noexcept
    : RandomDistortColor() {
    *this = ::std::move(from);
  }

  inline RandomDistortColor& operator=(const RandomDistortColor& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomDistortColor& operator=(RandomDistortColor&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomDistortColor& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomDistortColor* internal_default_instance() {
    return reinterpret_cast<const RandomDistortColor*>(
               &_RandomDistortColor_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    12;

  friend void swap(RandomDistortColor& a, RandomDistortColor& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomDistortColor* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomDistortColor* New() const final {
    return CreateMaybeMessage<RandomDistortColor>(nullptr);
  }

  RandomDistortColor* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomDistortColor>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomDistortColor& from);
  void MergeFrom(const RandomDistortColor& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomDistortColor* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomDistortColor";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kColorOrderingFieldNumber = 1,
  };
  // optional int32 color_ordering = 1;
  bool has_color_ordering() const;
  void clear_color_ordering();
  ::PROTOBUF_NAMESPACE_ID::int32 color_ordering() const;
  void set_color_ordering(::PROTOBUF_NAMESPACE_ID::int32 value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomDistortColor)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::int32 color_ordering_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomJitterBoxes :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomJitterBoxes) */ {
 public:
  RandomJitterBoxes();
  virtual ~RandomJitterBoxes();

  RandomJitterBoxes(const RandomJitterBoxes& from);
  RandomJitterBoxes(RandomJitterBoxes&& from) noexcept
    : RandomJitterBoxes() {
    *this = ::std::move(from);
  }

  inline RandomJitterBoxes& operator=(const RandomJitterBoxes& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomJitterBoxes& operator=(RandomJitterBoxes&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomJitterBoxes& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomJitterBoxes* internal_default_instance() {
    return reinterpret_cast<const RandomJitterBoxes*>(
               &_RandomJitterBoxes_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    13;

  friend void swap(RandomJitterBoxes& a, RandomJitterBoxes& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomJitterBoxes* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomJitterBoxes* New() const final {
    return CreateMaybeMessage<RandomJitterBoxes>(nullptr);
  }

  RandomJitterBoxes* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomJitterBoxes>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomJitterBoxes& from);
  void MergeFrom(const RandomJitterBoxes& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomJitterBoxes* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomJitterBoxes";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kRatioFieldNumber = 1,
  };
  // optional float ratio = 1 [default = 0.05];
  bool has_ratio() const;
  void clear_ratio();
  float ratio() const;
  void set_ratio(float value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomJitterBoxes)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  float ratio_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomCropImage :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomCropImage) */ {
 public:
  RandomCropImage();
  virtual ~RandomCropImage();

  RandomCropImage(const RandomCropImage& from);
  RandomCropImage(RandomCropImage&& from) noexcept
    : RandomCropImage() {
    *this = ::std::move(from);
  }

  inline RandomCropImage& operator=(const RandomCropImage& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomCropImage& operator=(RandomCropImage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomCropImage& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomCropImage* internal_default_instance() {
    return reinterpret_cast<const RandomCropImage*>(
               &_RandomCropImage_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    14;

  friend void swap(RandomCropImage& a, RandomCropImage& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomCropImage* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomCropImage* New() const final {
    return CreateMaybeMessage<RandomCropImage>(nullptr);
  }

  RandomCropImage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomCropImage>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomCropImage& from);
  void MergeFrom(const RandomCropImage& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomCropImage* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomCropImage";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kRandomCoefFieldNumber = 7,
    kClipBoxesFieldNumber = 8,
    kMinObjectCoveredFieldNumber = 1,
    kMinAspectRatioFieldNumber = 2,
    kMaxAspectRatioFieldNumber = 3,
    kMinAreaFieldNumber = 4,
    kMaxAreaFieldNumber = 5,
    kOverlapThreshFieldNumber = 6,
  };
  // optional float random_coef = 7 [default = 0];
  bool has_random_coef() const;
  void clear_random_coef();
  float random_coef() const;
  void set_random_coef(float value);

  // optional bool clip_boxes = 8 [default = true];
  bool has_clip_boxes() const;
  void clear_clip_boxes();
  bool clip_boxes() const;
  void set_clip_boxes(bool value);

  // optional float min_object_covered = 1 [default = 1];
  bool has_min_object_covered() const;
  void clear_min_object_covered();
  float min_object_covered() const;
  void set_min_object_covered(float value);

  // optional float min_aspect_ratio = 2 [default = 0.75];
  bool has_min_aspect_ratio() const;
  void clear_min_aspect_ratio();
  float min_aspect_ratio() const;
  void set_min_aspect_ratio(float value);

  // optional float max_aspect_ratio = 3 [default = 1.33];
  bool has_max_aspect_ratio() const;
  void clear_max_aspect_ratio();
  float max_aspect_ratio() const;
  void set_max_aspect_ratio(float value);

  // optional float min_area = 4 [default = 0.1];
  bool has_min_area() const;
  void clear_min_area();
  float min_area() const;
  void set_min_area(float value);

  // optional float max_area = 5 [default = 1];
  bool has_max_area() const;
  void clear_max_area();
  float max_area() const;
  void set_max_area(float value);

  // optional float overlap_thresh = 6 [default = 0.3];
  bool has_overlap_thresh() const;
  void clear_overlap_thresh();
  float overlap_thresh() const;
  void set_overlap_thresh(float value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomCropImage)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  float random_coef_;
  bool clip_boxes_;
  float min_object_covered_;
  float min_aspect_ratio_;
  float max_aspect_ratio_;
  float min_area_;
  float max_area_;
  float overlap_thresh_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomPadImage :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomPadImage) */ {
 public:
  RandomPadImage();
  virtual ~RandomPadImage();

  RandomPadImage(const RandomPadImage& from);
  RandomPadImage(RandomPadImage&& from) noexcept
    : RandomPadImage() {
    *this = ::std::move(from);
  }

  inline RandomPadImage& operator=(const RandomPadImage& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomPadImage& operator=(RandomPadImage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomPadImage& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomPadImage* internal_default_instance() {
    return reinterpret_cast<const RandomPadImage*>(
               &_RandomPadImage_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    15;

  friend void swap(RandomPadImage& a, RandomPadImage& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomPadImage* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomPadImage* New() const final {
    return CreateMaybeMessage<RandomPadImage>(nullptr);
  }

  RandomPadImage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomPadImage>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomPadImage& from);
  void MergeFrom(const RandomPadImage& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomPadImage* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomPadImage";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kPadColorFieldNumber = 5,
    kMinImageHeightFieldNumber = 1,
    kMinImageWidthFieldNumber = 2,
    kMaxImageHeightFieldNumber = 3,
    kMaxImageWidthFieldNumber = 4,
  };
  // repeated float pad_color = 5;
  int pad_color_size() const;
  void clear_pad_color();
  float pad_color(int index) const;
  void set_pad_color(int index, float value);
  void add_pad_color(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      pad_color() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_pad_color();

  // optional int32 min_image_height = 1;
  bool has_min_image_height() const;
  void clear_min_image_height();
  ::PROTOBUF_NAMESPACE_ID::int32 min_image_height() const;
  void set_min_image_height(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 min_image_width = 2;
  bool has_min_image_width() const;
  void clear_min_image_width();
  ::PROTOBUF_NAMESPACE_ID::int32 min_image_width() const;
  void set_min_image_width(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 max_image_height = 3;
  bool has_max_image_height() const;
  void clear_max_image_height();
  ::PROTOBUF_NAMESPACE_ID::int32 max_image_height() const;
  void set_max_image_height(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 max_image_width = 4;
  bool has_max_image_width() const;
  void clear_max_image_width();
  ::PROTOBUF_NAMESPACE_ID::int32 max_image_width() const;
  void set_max_image_width(::PROTOBUF_NAMESPACE_ID::int32 value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomPadImage)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > pad_color_;
  ::PROTOBUF_NAMESPACE_ID::int32 min_image_height_;
  ::PROTOBUF_NAMESPACE_ID::int32 min_image_width_;
  ::PROTOBUF_NAMESPACE_ID::int32 max_image_height_;
  ::PROTOBUF_NAMESPACE_ID::int32 max_image_width_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomAbsolutePadImage :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomAbsolutePadImage) */ {
 public:
  RandomAbsolutePadImage();
  virtual ~RandomAbsolutePadImage();

  RandomAbsolutePadImage(const RandomAbsolutePadImage& from);
  RandomAbsolutePadImage(RandomAbsolutePadImage&& from) noexcept
    : RandomAbsolutePadImage() {
    *this = ::std::move(from);
  }

  inline RandomAbsolutePadImage& operator=(const RandomAbsolutePadImage& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomAbsolutePadImage& operator=(RandomAbsolutePadImage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomAbsolutePadImage& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomAbsolutePadImage* internal_default_instance() {
    return reinterpret_cast<const RandomAbsolutePadImage*>(
               &_RandomAbsolutePadImage_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    16;

  friend void swap(RandomAbsolutePadImage& a, RandomAbsolutePadImage& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomAbsolutePadImage* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomAbsolutePadImage* New() const final {
    return CreateMaybeMessage<RandomAbsolutePadImage>(nullptr);
  }

  RandomAbsolutePadImage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomAbsolutePadImage>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomAbsolutePadImage& from);
  void MergeFrom(const RandomAbsolutePadImage& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomAbsolutePadImage* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomAbsolutePadImage";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kPadColorFieldNumber = 3,
    kMaxHeightPaddingFieldNumber = 1,
    kMaxWidthPaddingFieldNumber = 2,
  };
  // repeated float pad_color = 3;
  int pad_color_size() const;
  void clear_pad_color();
  float pad_color(int index) const;
  void set_pad_color(int index, float value);
  void add_pad_color(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      pad_color() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_pad_color();

  // optional int32 max_height_padding = 1;
  bool has_max_height_padding() const;
  void clear_max_height_padding();
  ::PROTOBUF_NAMESPACE_ID::int32 max_height_padding() const;
  void set_max_height_padding(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 max_width_padding = 2;
  bool has_max_width_padding() const;
  void clear_max_width_padding();
  ::PROTOBUF_NAMESPACE_ID::int32 max_width_padding() const;
  void set_max_width_padding(::PROTOBUF_NAMESPACE_ID::int32 value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomAbsolutePadImage)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > pad_color_;
  ::PROTOBUF_NAMESPACE_ID::int32 max_height_padding_;
  ::PROTOBUF_NAMESPACE_ID::int32 max_width_padding_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomCropPadImage :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomCropPadImage) */ {
 public:
  RandomCropPadImage();
  virtual ~RandomCropPadImage();

  RandomCropPadImage(const RandomCropPadImage& from);
  RandomCropPadImage(RandomCropPadImage&& from) noexcept
    : RandomCropPadImage() {
    *this = ::std::move(from);
  }

  inline RandomCropPadImage& operator=(const RandomCropPadImage& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomCropPadImage& operator=(RandomCropPadImage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomCropPadImage& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomCropPadImage* internal_default_instance() {
    return reinterpret_cast<const RandomCropPadImage*>(
               &_RandomCropPadImage_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    17;

  friend void swap(RandomCropPadImage& a, RandomCropPadImage& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomCropPadImage* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomCropPadImage* New() const final {
    return CreateMaybeMessage<RandomCropPadImage>(nullptr);
  }

  RandomCropPadImage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomCropPadImage>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomCropPadImage& from);
  void MergeFrom(const RandomCropPadImage& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomCropPadImage* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomCropPadImage";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMinPaddedSizeRatioFieldNumber = 8,
    kMaxPaddedSizeRatioFieldNumber = 9,
    kPadColorFieldNumber = 10,
    kRandomCoefFieldNumber = 7,
    kClipBoxesFieldNumber = 11,
    kMinObjectCoveredFieldNumber = 1,
    kMinAspectRatioFieldNumber = 2,
    kMaxAspectRatioFieldNumber = 3,
    kMinAreaFieldNumber = 4,
    kMaxAreaFieldNumber = 5,
    kOverlapThreshFieldNumber = 6,
  };
  // repeated float min_padded_size_ratio = 8;
  int min_padded_size_ratio_size() const;
  void clear_min_padded_size_ratio();
  float min_padded_size_ratio(int index) const;
  void set_min_padded_size_ratio(int index, float value);
  void add_min_padded_size_ratio(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      min_padded_size_ratio() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_min_padded_size_ratio();

  // repeated float max_padded_size_ratio = 9;
  int max_padded_size_ratio_size() const;
  void clear_max_padded_size_ratio();
  float max_padded_size_ratio(int index) const;
  void set_max_padded_size_ratio(int index, float value);
  void add_max_padded_size_ratio(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      max_padded_size_ratio() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_max_padded_size_ratio();

  // repeated float pad_color = 10;
  int pad_color_size() const;
  void clear_pad_color();
  float pad_color(int index) const;
  void set_pad_color(int index, float value);
  void add_pad_color(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      pad_color() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_pad_color();

  // optional float random_coef = 7 [default = 0];
  bool has_random_coef() const;
  void clear_random_coef();
  float random_coef() const;
  void set_random_coef(float value);

  // optional bool clip_boxes = 11 [default = true];
  bool has_clip_boxes() const;
  void clear_clip_boxes();
  bool clip_boxes() const;
  void set_clip_boxes(bool value);

  // optional float min_object_covered = 1 [default = 1];
  bool has_min_object_covered() const;
  void clear_min_object_covered();
  float min_object_covered() const;
  void set_min_object_covered(float value);

  // optional float min_aspect_ratio = 2 [default = 0.75];
  bool has_min_aspect_ratio() const;
  void clear_min_aspect_ratio();
  float min_aspect_ratio() const;
  void set_min_aspect_ratio(float value);

  // optional float max_aspect_ratio = 3 [default = 1.33];
  bool has_max_aspect_ratio() const;
  void clear_max_aspect_ratio();
  float max_aspect_ratio() const;
  void set_max_aspect_ratio(float value);

  // optional float min_area = 4 [default = 0.1];
  bool has_min_area() const;
  void clear_min_area();
  float min_area() const;
  void set_min_area(float value);

  // optional float max_area = 5 [default = 1];
  bool has_max_area() const;
  void clear_max_area();
  float max_area() const;
  void set_max_area(float value);

  // optional float overlap_thresh = 6 [default = 0.3];
  bool has_overlap_thresh() const;
  void clear_overlap_thresh();
  float overlap_thresh() const;
  void set_overlap_thresh(float value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomCropPadImage)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > min_padded_size_ratio_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > max_padded_size_ratio_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > pad_color_;
  float random_coef_;
  bool clip_boxes_;
  float min_object_covered_;
  float min_aspect_ratio_;
  float max_aspect_ratio_;
  float min_area_;
  float max_area_;
  float overlap_thresh_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomCropToAspectRatio :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomCropToAspectRatio) */ {
 public:
  RandomCropToAspectRatio();
  virtual ~RandomCropToAspectRatio();

  RandomCropToAspectRatio(const RandomCropToAspectRatio& from);
  RandomCropToAspectRatio(RandomCropToAspectRatio&& from) noexcept
    : RandomCropToAspectRatio() {
    *this = ::std::move(from);
  }

  inline RandomCropToAspectRatio& operator=(const RandomCropToAspectRatio& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomCropToAspectRatio& operator=(RandomCropToAspectRatio&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomCropToAspectRatio& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomCropToAspectRatio* internal_default_instance() {
    return reinterpret_cast<const RandomCropToAspectRatio*>(
               &_RandomCropToAspectRatio_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    18;

  friend void swap(RandomCropToAspectRatio& a, RandomCropToAspectRatio& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomCropToAspectRatio* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomCropToAspectRatio* New() const final {
    return CreateMaybeMessage<RandomCropToAspectRatio>(nullptr);
  }

  RandomCropToAspectRatio* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomCropToAspectRatio>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomCropToAspectRatio& from);
  void MergeFrom(const RandomCropToAspectRatio& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomCropToAspectRatio* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomCropToAspectRatio";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kClipBoxesFieldNumber = 3,
    kAspectRatioFieldNumber = 1,
    kOverlapThreshFieldNumber = 2,
  };
  // optional bool clip_boxes = 3 [default = true];
  bool has_clip_boxes() const;
  void clear_clip_boxes();
  bool clip_boxes() const;
  void set_clip_boxes(bool value);

  // optional float aspect_ratio = 1 [default = 1];
  bool has_aspect_ratio() const;
  void clear_aspect_ratio();
  float aspect_ratio() const;
  void set_aspect_ratio(float value);

  // optional float overlap_thresh = 2 [default = 0.3];
  bool has_overlap_thresh() const;
  void clear_overlap_thresh();
  float overlap_thresh() const;
  void set_overlap_thresh(float value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomCropToAspectRatio)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  bool clip_boxes_;
  float aspect_ratio_;
  float overlap_thresh_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomBlackPatches :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomBlackPatches) */ {
 public:
  RandomBlackPatches();
  virtual ~RandomBlackPatches();

  RandomBlackPatches(const RandomBlackPatches& from);
  RandomBlackPatches(RandomBlackPatches&& from) noexcept
    : RandomBlackPatches() {
    *this = ::std::move(from);
  }

  inline RandomBlackPatches& operator=(const RandomBlackPatches& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomBlackPatches& operator=(RandomBlackPatches&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomBlackPatches& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomBlackPatches* internal_default_instance() {
    return reinterpret_cast<const RandomBlackPatches*>(
               &_RandomBlackPatches_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    19;

  friend void swap(RandomBlackPatches& a, RandomBlackPatches& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomBlackPatches* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomBlackPatches* New() const final {
    return CreateMaybeMessage<RandomBlackPatches>(nullptr);
  }

  RandomBlackPatches* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomBlackPatches>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomBlackPatches& from);
  void MergeFrom(const RandomBlackPatches& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomBlackPatches* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomBlackPatches";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kSizeToImageRatioFieldNumber = 3,
    kMaxBlackPatchesFieldNumber = 1,
    kProbabilityFieldNumber = 2,
  };
  // optional float size_to_image_ratio = 3 [default = 0.1];
  bool has_size_to_image_ratio() const;
  void clear_size_to_image_ratio();
  float size_to_image_ratio() const;
  void set_size_to_image_ratio(float value);

  // optional int32 max_black_patches = 1 [default = 10];
  bool has_max_black_patches() const;
  void clear_max_black_patches();
  ::PROTOBUF_NAMESPACE_ID::int32 max_black_patches() const;
  void set_max_black_patches(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional float probability = 2 [default = 0.5];
  bool has_probability() const;
  void clear_probability();
  float probability() const;
  void set_probability(float value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomBlackPatches)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  float size_to_image_ratio_;
  ::PROTOBUF_NAMESPACE_ID::int32 max_black_patches_;
  float probability_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomResizeMethod :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomResizeMethod) */ {
 public:
  RandomResizeMethod();
  virtual ~RandomResizeMethod();

  RandomResizeMethod(const RandomResizeMethod& from);
  RandomResizeMethod(RandomResizeMethod&& from) noexcept
    : RandomResizeMethod() {
    *this = ::std::move(from);
  }

  inline RandomResizeMethod& operator=(const RandomResizeMethod& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomResizeMethod& operator=(RandomResizeMethod&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomResizeMethod& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomResizeMethod* internal_default_instance() {
    return reinterpret_cast<const RandomResizeMethod*>(
               &_RandomResizeMethod_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    20;

  friend void swap(RandomResizeMethod& a, RandomResizeMethod& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomResizeMethod* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomResizeMethod* New() const final {
    return CreateMaybeMessage<RandomResizeMethod>(nullptr);
  }

  RandomResizeMethod* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomResizeMethod>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomResizeMethod& from);
  void MergeFrom(const RandomResizeMethod& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomResizeMethod* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomResizeMethod";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kTargetHeightFieldNumber = 1,
    kTargetWidthFieldNumber = 2,
  };
  // optional int32 target_height = 1;
  bool has_target_height() const;
  void clear_target_height();
  ::PROTOBUF_NAMESPACE_ID::int32 target_height() const;
  void set_target_height(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 target_width = 2;
  bool has_target_width() const;
  void clear_target_width();
  ::PROTOBUF_NAMESPACE_ID::int32 target_width() const;
  void set_target_width(::PROTOBUF_NAMESPACE_ID::int32 value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomResizeMethod)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::int32 target_height_;
  ::PROTOBUF_NAMESPACE_ID::int32 target_width_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RGBtoGray :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RGBtoGray) */ {
 public:
  RGBtoGray();
  virtual ~RGBtoGray();

  RGBtoGray(const RGBtoGray& from);
  RGBtoGray(RGBtoGray&& from) noexcept
    : RGBtoGray() {
    *this = ::std::move(from);
  }

  inline RGBtoGray& operator=(const RGBtoGray& from) {
    CopyFrom(from);
    return *this;
  }
  inline RGBtoGray& operator=(RGBtoGray&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RGBtoGray& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RGBtoGray* internal_default_instance() {
    return reinterpret_cast<const RGBtoGray*>(
               &_RGBtoGray_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    21;

  friend void swap(RGBtoGray& a, RGBtoGray& b) {
    a.Swap(&b);
  }
  inline void Swap(RGBtoGray* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RGBtoGray* New() const final {
    return CreateMaybeMessage<RGBtoGray>(nullptr);
  }

  RGBtoGray* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RGBtoGray>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RGBtoGray& from);
  void MergeFrom(const RGBtoGray& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RGBtoGray* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RGBtoGray";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:object_detection.protos.RGBtoGray)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class ScaleBoxesToPixelCoordinates :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.ScaleBoxesToPixelCoordinates) */ {
 public:
  ScaleBoxesToPixelCoordinates();
  virtual ~ScaleBoxesToPixelCoordinates();

  ScaleBoxesToPixelCoordinates(const ScaleBoxesToPixelCoordinates& from);
  ScaleBoxesToPixelCoordinates(ScaleBoxesToPixelCoordinates&& from) noexcept
    : ScaleBoxesToPixelCoordinates() {
    *this = ::std::move(from);
  }

  inline ScaleBoxesToPixelCoordinates& operator=(const ScaleBoxesToPixelCoordinates& from) {
    CopyFrom(from);
    return *this;
  }
  inline ScaleBoxesToPixelCoordinates& operator=(ScaleBoxesToPixelCoordinates&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const ScaleBoxesToPixelCoordinates& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ScaleBoxesToPixelCoordinates* internal_default_instance() {
    return reinterpret_cast<const ScaleBoxesToPixelCoordinates*>(
               &_ScaleBoxesToPixelCoordinates_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    22;

  friend void swap(ScaleBoxesToPixelCoordinates& a, ScaleBoxesToPixelCoordinates& b) {
    a.Swap(&b);
  }
  inline void Swap(ScaleBoxesToPixelCoordinates* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ScaleBoxesToPixelCoordinates* New() const final {
    return CreateMaybeMessage<ScaleBoxesToPixelCoordinates>(nullptr);
  }

  ScaleBoxesToPixelCoordinates* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ScaleBoxesToPixelCoordinates>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ScaleBoxesToPixelCoordinates& from);
  void MergeFrom(const ScaleBoxesToPixelCoordinates& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ScaleBoxesToPixelCoordinates* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.ScaleBoxesToPixelCoordinates";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:object_detection.protos.ScaleBoxesToPixelCoordinates)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class ResizeImage :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.ResizeImage) */ {
 public:
  ResizeImage();
  virtual ~ResizeImage();

  ResizeImage(const ResizeImage& from);
  ResizeImage(ResizeImage&& from) noexcept
    : ResizeImage() {
    *this = ::std::move(from);
  }

  inline ResizeImage& operator=(const ResizeImage& from) {
    CopyFrom(from);
    return *this;
  }
  inline ResizeImage& operator=(ResizeImage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const ResizeImage& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ResizeImage* internal_default_instance() {
    return reinterpret_cast<const ResizeImage*>(
               &_ResizeImage_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    23;

  friend void swap(ResizeImage& a, ResizeImage& b) {
    a.Swap(&b);
  }
  inline void Swap(ResizeImage* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ResizeImage* New() const final {
    return CreateMaybeMessage<ResizeImage>(nullptr);
  }

  ResizeImage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ResizeImage>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ResizeImage& from);
  void MergeFrom(const ResizeImage& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ResizeImage* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.ResizeImage";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  typedef ResizeImage_Method Method;
  static constexpr Method AREA =
    ResizeImage_Method_AREA;
  static constexpr Method BICUBIC =
    ResizeImage_Method_BICUBIC;
  static constexpr Method BILINEAR =
    ResizeImage_Method_BILINEAR;
  static constexpr Method NEAREST_NEIGHBOR =
    ResizeImage_Method_NEAREST_NEIGHBOR;
  static inline bool Method_IsValid(int value) {
    return ResizeImage_Method_IsValid(value);
  }
  static constexpr Method Method_MIN =
    ResizeImage_Method_Method_MIN;
  static constexpr Method Method_MAX =
    ResizeImage_Method_Method_MAX;
  static constexpr int Method_ARRAYSIZE =
    ResizeImage_Method_Method_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  Method_descriptor() {
    return ResizeImage_Method_descriptor();
  }
  template<typename T>
  static inline const std::string& Method_Name(T enum_t_value) {
    static_assert(::std::is_same<T, Method>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function Method_Name.");
    return ResizeImage_Method_Name(enum_t_value);
  }
  static inline bool Method_Parse(const std::string& name,
      Method* value) {
    return ResizeImage_Method_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kNewHeightFieldNumber = 1,
    kNewWidthFieldNumber = 2,
    kMethodFieldNumber = 3,
  };
  // optional int32 new_height = 1;
  bool has_new_height() const;
  void clear_new_height();
  ::PROTOBUF_NAMESPACE_ID::int32 new_height() const;
  void set_new_height(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 new_width = 2;
  bool has_new_width() const;
  void clear_new_width();
  ::PROTOBUF_NAMESPACE_ID::int32 new_width() const;
  void set_new_width(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional .object_detection.protos.ResizeImage.Method method = 3 [default = BILINEAR];
  bool has_method() const;
  void clear_method();
  ::object_detection::protos::ResizeImage_Method method() const;
  void set_method(::object_detection::protos::ResizeImage_Method value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.ResizeImage)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::int32 new_height_;
  ::PROTOBUF_NAMESPACE_ID::int32 new_width_;
  int method_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class SubtractChannelMean :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.SubtractChannelMean) */ {
 public:
  SubtractChannelMean();
  virtual ~SubtractChannelMean();

  SubtractChannelMean(const SubtractChannelMean& from);
  SubtractChannelMean(SubtractChannelMean&& from) noexcept
    : SubtractChannelMean() {
    *this = ::std::move(from);
  }

  inline SubtractChannelMean& operator=(const SubtractChannelMean& from) {
    CopyFrom(from);
    return *this;
  }
  inline SubtractChannelMean& operator=(SubtractChannelMean&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const SubtractChannelMean& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SubtractChannelMean* internal_default_instance() {
    return reinterpret_cast<const SubtractChannelMean*>(
               &_SubtractChannelMean_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    24;

  friend void swap(SubtractChannelMean& a, SubtractChannelMean& b) {
    a.Swap(&b);
  }
  inline void Swap(SubtractChannelMean* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SubtractChannelMean* New() const final {
    return CreateMaybeMessage<SubtractChannelMean>(nullptr);
  }

  SubtractChannelMean* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SubtractChannelMean>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SubtractChannelMean& from);
  void MergeFrom(const SubtractChannelMean& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SubtractChannelMean* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.SubtractChannelMean";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMeansFieldNumber = 1,
  };
  // repeated float means = 1;
  int means_size() const;
  void clear_means();
  float means(int index) const;
  void set_means(int index, float value);
  void add_means(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      means() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_means();

  // @@protoc_insertion_point(class_scope:object_detection.protos.SubtractChannelMean)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > means_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class SSDRandomCropOperation :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.SSDRandomCropOperation) */ {
 public:
  SSDRandomCropOperation();
  virtual ~SSDRandomCropOperation();

  SSDRandomCropOperation(const SSDRandomCropOperation& from);
  SSDRandomCropOperation(SSDRandomCropOperation&& from) noexcept
    : SSDRandomCropOperation() {
    *this = ::std::move(from);
  }

  inline SSDRandomCropOperation& operator=(const SSDRandomCropOperation& from) {
    CopyFrom(from);
    return *this;
  }
  inline SSDRandomCropOperation& operator=(SSDRandomCropOperation&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const SSDRandomCropOperation& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SSDRandomCropOperation* internal_default_instance() {
    return reinterpret_cast<const SSDRandomCropOperation*>(
               &_SSDRandomCropOperation_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    25;

  friend void swap(SSDRandomCropOperation& a, SSDRandomCropOperation& b) {
    a.Swap(&b);
  }
  inline void Swap(SSDRandomCropOperation* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SSDRandomCropOperation* New() const final {
    return CreateMaybeMessage<SSDRandomCropOperation>(nullptr);
  }

  SSDRandomCropOperation* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SSDRandomCropOperation>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SSDRandomCropOperation& from);
  void MergeFrom(const SSDRandomCropOperation& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SSDRandomCropOperation* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.SSDRandomCropOperation";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMinObjectCoveredFieldNumber = 1,
    kMinAspectRatioFieldNumber = 2,
    kMaxAspectRatioFieldNumber = 3,
    kMinAreaFieldNumber = 4,
    kMaxAreaFieldNumber = 5,
    kOverlapThreshFieldNumber = 6,
    kRandomCoefFieldNumber = 7,
    kClipBoxesFieldNumber = 8,
  };
  // optional float min_object_covered = 1;
  bool has_min_object_covered() const;
  void clear_min_object_covered();
  float min_object_covered() const;
  void set_min_object_covered(float value);

  // optional float min_aspect_ratio = 2;
  bool has_min_aspect_ratio() const;
  void clear_min_aspect_ratio();
  float min_aspect_ratio() const;
  void set_min_aspect_ratio(float value);

  // optional float max_aspect_ratio = 3;
  bool has_max_aspect_ratio() const;
  void clear_max_aspect_ratio();
  float max_aspect_ratio() const;
  void set_max_aspect_ratio(float value);

  // optional float min_area = 4;
  bool has_min_area() const;
  void clear_min_area();
  float min_area() const;
  void set_min_area(float value);

  // optional float max_area = 5;
  bool has_max_area() const;
  void clear_max_area();
  float max_area() const;
  void set_max_area(float value);

  // optional float overlap_thresh = 6;
  bool has_overlap_thresh() const;
  void clear_overlap_thresh();
  float overlap_thresh() const;
  void set_overlap_thresh(float value);

  // optional float random_coef = 7;
  bool has_random_coef() const;
  void clear_random_coef();
  float random_coef() const;
  void set_random_coef(float value);

  // optional bool clip_boxes = 8 [default = true];
  bool has_clip_boxes() const;
  void clear_clip_boxes();
  bool clip_boxes() const;
  void set_clip_boxes(bool value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.SSDRandomCropOperation)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  float min_object_covered_;
  float min_aspect_ratio_;
  float max_aspect_ratio_;
  float min_area_;
  float max_area_;
  float overlap_thresh_;
  float random_coef_;
  bool clip_boxes_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class SSDRandomCrop :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.SSDRandomCrop) */ {
 public:
  SSDRandomCrop();
  virtual ~SSDRandomCrop();

  SSDRandomCrop(const SSDRandomCrop& from);
  SSDRandomCrop(SSDRandomCrop&& from) noexcept
    : SSDRandomCrop() {
    *this = ::std::move(from);
  }

  inline SSDRandomCrop& operator=(const SSDRandomCrop& from) {
    CopyFrom(from);
    return *this;
  }
  inline SSDRandomCrop& operator=(SSDRandomCrop&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const SSDRandomCrop& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SSDRandomCrop* internal_default_instance() {
    return reinterpret_cast<const SSDRandomCrop*>(
               &_SSDRandomCrop_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    26;

  friend void swap(SSDRandomCrop& a, SSDRandomCrop& b) {
    a.Swap(&b);
  }
  inline void Swap(SSDRandomCrop* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SSDRandomCrop* New() const final {
    return CreateMaybeMessage<SSDRandomCrop>(nullptr);
  }

  SSDRandomCrop* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SSDRandomCrop>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SSDRandomCrop& from);
  void MergeFrom(const SSDRandomCrop& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SSDRandomCrop* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.SSDRandomCrop";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kOperationsFieldNumber = 1,
  };
  // repeated .object_detection.protos.SSDRandomCropOperation operations = 1;
  int operations_size() const;
  void clear_operations();
  ::object_detection::protos::SSDRandomCropOperation* mutable_operations(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropOperation >*
      mutable_operations();
  const ::object_detection::protos::SSDRandomCropOperation& operations(int index) const;
  ::object_detection::protos::SSDRandomCropOperation* add_operations();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropOperation >&
      operations() const;

  // @@protoc_insertion_point(class_scope:object_detection.protos.SSDRandomCrop)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropOperation > operations_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class SSDRandomCropPadOperation :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.SSDRandomCropPadOperation) */ {
 public:
  SSDRandomCropPadOperation();
  virtual ~SSDRandomCropPadOperation();

  SSDRandomCropPadOperation(const SSDRandomCropPadOperation& from);
  SSDRandomCropPadOperation(SSDRandomCropPadOperation&& from) noexcept
    : SSDRandomCropPadOperation() {
    *this = ::std::move(from);
  }

  inline SSDRandomCropPadOperation& operator=(const SSDRandomCropPadOperation& from) {
    CopyFrom(from);
    return *this;
  }
  inline SSDRandomCropPadOperation& operator=(SSDRandomCropPadOperation&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const SSDRandomCropPadOperation& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SSDRandomCropPadOperation* internal_default_instance() {
    return reinterpret_cast<const SSDRandomCropPadOperation*>(
               &_SSDRandomCropPadOperation_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    27;

  friend void swap(SSDRandomCropPadOperation& a, SSDRandomCropPadOperation& b) {
    a.Swap(&b);
  }
  inline void Swap(SSDRandomCropPadOperation* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SSDRandomCropPadOperation* New() const final {
    return CreateMaybeMessage<SSDRandomCropPadOperation>(nullptr);
  }

  SSDRandomCropPadOperation* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SSDRandomCropPadOperation>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SSDRandomCropPadOperation& from);
  void MergeFrom(const SSDRandomCropPadOperation& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SSDRandomCropPadOperation* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.SSDRandomCropPadOperation";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMinPaddedSizeRatioFieldNumber = 8,
    kMaxPaddedSizeRatioFieldNumber = 9,
    kMinObjectCoveredFieldNumber = 1,
    kMinAspectRatioFieldNumber = 2,
    kMaxAspectRatioFieldNumber = 3,
    kMinAreaFieldNumber = 4,
    kMaxAreaFieldNumber = 5,
    kOverlapThreshFieldNumber = 6,
    kRandomCoefFieldNumber = 7,
    kPadColorRFieldNumber = 10,
    kPadColorGFieldNumber = 11,
    kPadColorBFieldNumber = 12,
    kClipBoxesFieldNumber = 13,
  };
  // repeated float min_padded_size_ratio = 8;
  int min_padded_size_ratio_size() const;
  void clear_min_padded_size_ratio();
  float min_padded_size_ratio(int index) const;
  void set_min_padded_size_ratio(int index, float value);
  void add_min_padded_size_ratio(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      min_padded_size_ratio() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_min_padded_size_ratio();

  // repeated float max_padded_size_ratio = 9;
  int max_padded_size_ratio_size() const;
  void clear_max_padded_size_ratio();
  float max_padded_size_ratio(int index) const;
  void set_max_padded_size_ratio(int index, float value);
  void add_max_padded_size_ratio(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      max_padded_size_ratio() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_max_padded_size_ratio();

  // optional float min_object_covered = 1;
  bool has_min_object_covered() const;
  void clear_min_object_covered();
  float min_object_covered() const;
  void set_min_object_covered(float value);

  // optional float min_aspect_ratio = 2;
  bool has_min_aspect_ratio() const;
  void clear_min_aspect_ratio();
  float min_aspect_ratio() const;
  void set_min_aspect_ratio(float value);

  // optional float max_aspect_ratio = 3;
  bool has_max_aspect_ratio() const;
  void clear_max_aspect_ratio();
  float max_aspect_ratio() const;
  void set_max_aspect_ratio(float value);

  // optional float min_area = 4;
  bool has_min_area() const;
  void clear_min_area();
  float min_area() const;
  void set_min_area(float value);

  // optional float max_area = 5;
  bool has_max_area() const;
  void clear_max_area();
  float max_area() const;
  void set_max_area(float value);

  // optional float overlap_thresh = 6;
  bool has_overlap_thresh() const;
  void clear_overlap_thresh();
  float overlap_thresh() const;
  void set_overlap_thresh(float value);

  // optional float random_coef = 7;
  bool has_random_coef() const;
  void clear_random_coef();
  float random_coef() const;
  void set_random_coef(float value);

  // optional float pad_color_r = 10;
  bool has_pad_color_r() const;
  void clear_pad_color_r();
  float pad_color_r() const;
  void set_pad_color_r(float value);

  // optional float pad_color_g = 11;
  bool has_pad_color_g() const;
  void clear_pad_color_g();
  float pad_color_g() const;
  void set_pad_color_g(float value);

  // optional float pad_color_b = 12;
  bool has_pad_color_b() const;
  void clear_pad_color_b();
  float pad_color_b() const;
  void set_pad_color_b(float value);

  // optional bool clip_boxes = 13 [default = true];
  bool has_clip_boxes() const;
  void clear_clip_boxes();
  bool clip_boxes() const;
  void set_clip_boxes(bool value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.SSDRandomCropPadOperation)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > min_padded_size_ratio_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > max_padded_size_ratio_;
  float min_object_covered_;
  float min_aspect_ratio_;
  float max_aspect_ratio_;
  float min_area_;
  float max_area_;
  float overlap_thresh_;
  float random_coef_;
  float pad_color_r_;
  float pad_color_g_;
  float pad_color_b_;
  bool clip_boxes_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class SSDRandomCropPad :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.SSDRandomCropPad) */ {
 public:
  SSDRandomCropPad();
  virtual ~SSDRandomCropPad();

  SSDRandomCropPad(const SSDRandomCropPad& from);
  SSDRandomCropPad(SSDRandomCropPad&& from) noexcept
    : SSDRandomCropPad() {
    *this = ::std::move(from);
  }

  inline SSDRandomCropPad& operator=(const SSDRandomCropPad& from) {
    CopyFrom(from);
    return *this;
  }
  inline SSDRandomCropPad& operator=(SSDRandomCropPad&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const SSDRandomCropPad& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SSDRandomCropPad* internal_default_instance() {
    return reinterpret_cast<const SSDRandomCropPad*>(
               &_SSDRandomCropPad_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    28;

  friend void swap(SSDRandomCropPad& a, SSDRandomCropPad& b) {
    a.Swap(&b);
  }
  inline void Swap(SSDRandomCropPad* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SSDRandomCropPad* New() const final {
    return CreateMaybeMessage<SSDRandomCropPad>(nullptr);
  }

  SSDRandomCropPad* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SSDRandomCropPad>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SSDRandomCropPad& from);
  void MergeFrom(const SSDRandomCropPad& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SSDRandomCropPad* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.SSDRandomCropPad";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kOperationsFieldNumber = 1,
  };
  // repeated .object_detection.protos.SSDRandomCropPadOperation operations = 1;
  int operations_size() const;
  void clear_operations();
  ::object_detection::protos::SSDRandomCropPadOperation* mutable_operations(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropPadOperation >*
      mutable_operations();
  const ::object_detection::protos::SSDRandomCropPadOperation& operations(int index) const;
  ::object_detection::protos::SSDRandomCropPadOperation* add_operations();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropPadOperation >&
      operations() const;

  // @@protoc_insertion_point(class_scope:object_detection.protos.SSDRandomCropPad)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropPadOperation > operations_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class SSDRandomCropFixedAspectRatioOperation :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.SSDRandomCropFixedAspectRatioOperation) */ {
 public:
  SSDRandomCropFixedAspectRatioOperation();
  virtual ~SSDRandomCropFixedAspectRatioOperation();

  SSDRandomCropFixedAspectRatioOperation(const SSDRandomCropFixedAspectRatioOperation& from);
  SSDRandomCropFixedAspectRatioOperation(SSDRandomCropFixedAspectRatioOperation&& from) noexcept
    : SSDRandomCropFixedAspectRatioOperation() {
    *this = ::std::move(from);
  }

  inline SSDRandomCropFixedAspectRatioOperation& operator=(const SSDRandomCropFixedAspectRatioOperation& from) {
    CopyFrom(from);
    return *this;
  }
  inline SSDRandomCropFixedAspectRatioOperation& operator=(SSDRandomCropFixedAspectRatioOperation&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const SSDRandomCropFixedAspectRatioOperation& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SSDRandomCropFixedAspectRatioOperation* internal_default_instance() {
    return reinterpret_cast<const SSDRandomCropFixedAspectRatioOperation*>(
               &_SSDRandomCropFixedAspectRatioOperation_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    29;

  friend void swap(SSDRandomCropFixedAspectRatioOperation& a, SSDRandomCropFixedAspectRatioOperation& b) {
    a.Swap(&b);
  }
  inline void Swap(SSDRandomCropFixedAspectRatioOperation* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SSDRandomCropFixedAspectRatioOperation* New() const final {
    return CreateMaybeMessage<SSDRandomCropFixedAspectRatioOperation>(nullptr);
  }

  SSDRandomCropFixedAspectRatioOperation* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SSDRandomCropFixedAspectRatioOperation>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SSDRandomCropFixedAspectRatioOperation& from);
  void MergeFrom(const SSDRandomCropFixedAspectRatioOperation& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SSDRandomCropFixedAspectRatioOperation* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.SSDRandomCropFixedAspectRatioOperation";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMinObjectCoveredFieldNumber = 1,
    kMinAreaFieldNumber = 4,
    kMaxAreaFieldNumber = 5,
    kOverlapThreshFieldNumber = 6,
    kRandomCoefFieldNumber = 7,
    kClipBoxesFieldNumber = 8,
  };
  // optional float min_object_covered = 1;
  bool has_min_object_covered() const;
  void clear_min_object_covered();
  float min_object_covered() const;
  void set_min_object_covered(float value);

  // optional float min_area = 4;
  bool has_min_area() const;
  void clear_min_area();
  float min_area() const;
  void set_min_area(float value);

  // optional float max_area = 5;
  bool has_max_area() const;
  void clear_max_area();
  float max_area() const;
  void set_max_area(float value);

  // optional float overlap_thresh = 6;
  bool has_overlap_thresh() const;
  void clear_overlap_thresh();
  float overlap_thresh() const;
  void set_overlap_thresh(float value);

  // optional float random_coef = 7;
  bool has_random_coef() const;
  void clear_random_coef();
  float random_coef() const;
  void set_random_coef(float value);

  // optional bool clip_boxes = 8 [default = true];
  bool has_clip_boxes() const;
  void clear_clip_boxes();
  bool clip_boxes() const;
  void set_clip_boxes(bool value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.SSDRandomCropFixedAspectRatioOperation)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  float min_object_covered_;
  float min_area_;
  float max_area_;
  float overlap_thresh_;
  float random_coef_;
  bool clip_boxes_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class SSDRandomCropFixedAspectRatio :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.SSDRandomCropFixedAspectRatio) */ {
 public:
  SSDRandomCropFixedAspectRatio();
  virtual ~SSDRandomCropFixedAspectRatio();

  SSDRandomCropFixedAspectRatio(const SSDRandomCropFixedAspectRatio& from);
  SSDRandomCropFixedAspectRatio(SSDRandomCropFixedAspectRatio&& from) noexcept
    : SSDRandomCropFixedAspectRatio() {
    *this = ::std::move(from);
  }

  inline SSDRandomCropFixedAspectRatio& operator=(const SSDRandomCropFixedAspectRatio& from) {
    CopyFrom(from);
    return *this;
  }
  inline SSDRandomCropFixedAspectRatio& operator=(SSDRandomCropFixedAspectRatio&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const SSDRandomCropFixedAspectRatio& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SSDRandomCropFixedAspectRatio* internal_default_instance() {
    return reinterpret_cast<const SSDRandomCropFixedAspectRatio*>(
               &_SSDRandomCropFixedAspectRatio_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    30;

  friend void swap(SSDRandomCropFixedAspectRatio& a, SSDRandomCropFixedAspectRatio& b) {
    a.Swap(&b);
  }
  inline void Swap(SSDRandomCropFixedAspectRatio* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SSDRandomCropFixedAspectRatio* New() const final {
    return CreateMaybeMessage<SSDRandomCropFixedAspectRatio>(nullptr);
  }

  SSDRandomCropFixedAspectRatio* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SSDRandomCropFixedAspectRatio>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SSDRandomCropFixedAspectRatio& from);
  void MergeFrom(const SSDRandomCropFixedAspectRatio& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SSDRandomCropFixedAspectRatio* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.SSDRandomCropFixedAspectRatio";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kOperationsFieldNumber = 1,
    kAspectRatioFieldNumber = 2,
  };
  // repeated .object_detection.protos.SSDRandomCropFixedAspectRatioOperation operations = 1;
  int operations_size() const;
  void clear_operations();
  ::object_detection::protos::SSDRandomCropFixedAspectRatioOperation* mutable_operations(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropFixedAspectRatioOperation >*
      mutable_operations();
  const ::object_detection::protos::SSDRandomCropFixedAspectRatioOperation& operations(int index) const;
  ::object_detection::protos::SSDRandomCropFixedAspectRatioOperation* add_operations();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropFixedAspectRatioOperation >&
      operations() const;

  // optional float aspect_ratio = 2 [default = 1];
  bool has_aspect_ratio() const;
  void clear_aspect_ratio();
  float aspect_ratio() const;
  void set_aspect_ratio(float value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.SSDRandomCropFixedAspectRatio)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropFixedAspectRatioOperation > operations_;
  float aspect_ratio_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class SSDRandomCropPadFixedAspectRatioOperation :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation) */ {
 public:
  SSDRandomCropPadFixedAspectRatioOperation();
  virtual ~SSDRandomCropPadFixedAspectRatioOperation();

  SSDRandomCropPadFixedAspectRatioOperation(const SSDRandomCropPadFixedAspectRatioOperation& from);
  SSDRandomCropPadFixedAspectRatioOperation(SSDRandomCropPadFixedAspectRatioOperation&& from) noexcept
    : SSDRandomCropPadFixedAspectRatioOperation() {
    *this = ::std::move(from);
  }

  inline SSDRandomCropPadFixedAspectRatioOperation& operator=(const SSDRandomCropPadFixedAspectRatioOperation& from) {
    CopyFrom(from);
    return *this;
  }
  inline SSDRandomCropPadFixedAspectRatioOperation& operator=(SSDRandomCropPadFixedAspectRatioOperation&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const SSDRandomCropPadFixedAspectRatioOperation& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SSDRandomCropPadFixedAspectRatioOperation* internal_default_instance() {
    return reinterpret_cast<const SSDRandomCropPadFixedAspectRatioOperation*>(
               &_SSDRandomCropPadFixedAspectRatioOperation_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    31;

  friend void swap(SSDRandomCropPadFixedAspectRatioOperation& a, SSDRandomCropPadFixedAspectRatioOperation& b) {
    a.Swap(&b);
  }
  inline void Swap(SSDRandomCropPadFixedAspectRatioOperation* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SSDRandomCropPadFixedAspectRatioOperation* New() const final {
    return CreateMaybeMessage<SSDRandomCropPadFixedAspectRatioOperation>(nullptr);
  }

  SSDRandomCropPadFixedAspectRatioOperation* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SSDRandomCropPadFixedAspectRatioOperation>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SSDRandomCropPadFixedAspectRatioOperation& from);
  void MergeFrom(const SSDRandomCropPadFixedAspectRatioOperation& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SSDRandomCropPadFixedAspectRatioOperation* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMinObjectCoveredFieldNumber = 1,
    kMinAspectRatioFieldNumber = 2,
    kMaxAspectRatioFieldNumber = 3,
    kMinAreaFieldNumber = 4,
    kMaxAreaFieldNumber = 5,
    kOverlapThreshFieldNumber = 6,
    kRandomCoefFieldNumber = 7,
    kClipBoxesFieldNumber = 8,
  };
  // optional float min_object_covered = 1;
  bool has_min_object_covered() const;
  void clear_min_object_covered();
  float min_object_covered() const;
  void set_min_object_covered(float value);

  // optional float min_aspect_ratio = 2;
  bool has_min_aspect_ratio() const;
  void clear_min_aspect_ratio();
  float min_aspect_ratio() const;
  void set_min_aspect_ratio(float value);

  // optional float max_aspect_ratio = 3;
  bool has_max_aspect_ratio() const;
  void clear_max_aspect_ratio();
  float max_aspect_ratio() const;
  void set_max_aspect_ratio(float value);

  // optional float min_area = 4;
  bool has_min_area() const;
  void clear_min_area();
  float min_area() const;
  void set_min_area(float value);

  // optional float max_area = 5;
  bool has_max_area() const;
  void clear_max_area();
  float max_area() const;
  void set_max_area(float value);

  // optional float overlap_thresh = 6;
  bool has_overlap_thresh() const;
  void clear_overlap_thresh();
  float overlap_thresh() const;
  void set_overlap_thresh(float value);

  // optional float random_coef = 7;
  bool has_random_coef() const;
  void clear_random_coef();
  float random_coef() const;
  void set_random_coef(float value);

  // optional bool clip_boxes = 8 [default = true];
  bool has_clip_boxes() const;
  void clear_clip_boxes();
  bool clip_boxes() const;
  void set_clip_boxes(bool value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  float min_object_covered_;
  float min_aspect_ratio_;
  float max_aspect_ratio_;
  float min_area_;
  float max_area_;
  float overlap_thresh_;
  float random_coef_;
  bool clip_boxes_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class SSDRandomCropPadFixedAspectRatio :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.SSDRandomCropPadFixedAspectRatio) */ {
 public:
  SSDRandomCropPadFixedAspectRatio();
  virtual ~SSDRandomCropPadFixedAspectRatio();

  SSDRandomCropPadFixedAspectRatio(const SSDRandomCropPadFixedAspectRatio& from);
  SSDRandomCropPadFixedAspectRatio(SSDRandomCropPadFixedAspectRatio&& from) noexcept
    : SSDRandomCropPadFixedAspectRatio() {
    *this = ::std::move(from);
  }

  inline SSDRandomCropPadFixedAspectRatio& operator=(const SSDRandomCropPadFixedAspectRatio& from) {
    CopyFrom(from);
    return *this;
  }
  inline SSDRandomCropPadFixedAspectRatio& operator=(SSDRandomCropPadFixedAspectRatio&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const SSDRandomCropPadFixedAspectRatio& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SSDRandomCropPadFixedAspectRatio* internal_default_instance() {
    return reinterpret_cast<const SSDRandomCropPadFixedAspectRatio*>(
               &_SSDRandomCropPadFixedAspectRatio_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    32;

  friend void swap(SSDRandomCropPadFixedAspectRatio& a, SSDRandomCropPadFixedAspectRatio& b) {
    a.Swap(&b);
  }
  inline void Swap(SSDRandomCropPadFixedAspectRatio* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SSDRandomCropPadFixedAspectRatio* New() const final {
    return CreateMaybeMessage<SSDRandomCropPadFixedAspectRatio>(nullptr);
  }

  SSDRandomCropPadFixedAspectRatio* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SSDRandomCropPadFixedAspectRatio>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SSDRandomCropPadFixedAspectRatio& from);
  void MergeFrom(const SSDRandomCropPadFixedAspectRatio& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SSDRandomCropPadFixedAspectRatio* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.SSDRandomCropPadFixedAspectRatio";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kOperationsFieldNumber = 1,
    kMinPaddedSizeRatioFieldNumber = 3,
    kMaxPaddedSizeRatioFieldNumber = 4,
    kAspectRatioFieldNumber = 2,
  };
  // repeated .object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation operations = 1;
  int operations_size() const;
  void clear_operations();
  ::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation* mutable_operations(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation >*
      mutable_operations();
  const ::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation& operations(int index) const;
  ::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation* add_operations();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation >&
      operations() const;

  // repeated float min_padded_size_ratio = 3;
  int min_padded_size_ratio_size() const;
  void clear_min_padded_size_ratio();
  float min_padded_size_ratio(int index) const;
  void set_min_padded_size_ratio(int index, float value);
  void add_min_padded_size_ratio(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      min_padded_size_ratio() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_min_padded_size_ratio();

  // repeated float max_padded_size_ratio = 4;
  int max_padded_size_ratio_size() const;
  void clear_max_padded_size_ratio();
  float max_padded_size_ratio(int index) const;
  void set_max_padded_size_ratio(int index, float value);
  void add_max_padded_size_ratio(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      max_padded_size_ratio() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_max_padded_size_ratio();

  // optional float aspect_ratio = 2 [default = 1];
  bool has_aspect_ratio() const;
  void clear_aspect_ratio();
  float aspect_ratio() const;
  void set_aspect_ratio(float value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.SSDRandomCropPadFixedAspectRatio)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation > operations_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > min_padded_size_ratio_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > max_padded_size_ratio_;
  float aspect_ratio_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class ConvertClassLogitsToSoftmax :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.ConvertClassLogitsToSoftmax) */ {
 public:
  ConvertClassLogitsToSoftmax();
  virtual ~ConvertClassLogitsToSoftmax();

  ConvertClassLogitsToSoftmax(const ConvertClassLogitsToSoftmax& from);
  ConvertClassLogitsToSoftmax(ConvertClassLogitsToSoftmax&& from) noexcept
    : ConvertClassLogitsToSoftmax() {
    *this = ::std::move(from);
  }

  inline ConvertClassLogitsToSoftmax& operator=(const ConvertClassLogitsToSoftmax& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConvertClassLogitsToSoftmax& operator=(ConvertClassLogitsToSoftmax&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const ConvertClassLogitsToSoftmax& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ConvertClassLogitsToSoftmax* internal_default_instance() {
    return reinterpret_cast<const ConvertClassLogitsToSoftmax*>(
               &_ConvertClassLogitsToSoftmax_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    33;

  friend void swap(ConvertClassLogitsToSoftmax& a, ConvertClassLogitsToSoftmax& b) {
    a.Swap(&b);
  }
  inline void Swap(ConvertClassLogitsToSoftmax* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ConvertClassLogitsToSoftmax* New() const final {
    return CreateMaybeMessage<ConvertClassLogitsToSoftmax>(nullptr);
  }

  ConvertClassLogitsToSoftmax* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ConvertClassLogitsToSoftmax>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ConvertClassLogitsToSoftmax& from);
  void MergeFrom(const ConvertClassLogitsToSoftmax& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ConvertClassLogitsToSoftmax* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.ConvertClassLogitsToSoftmax";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kTemperatureFieldNumber = 1,
  };
  // optional float temperature = 1 [default = 1];
  bool has_temperature() const;
  void clear_temperature();
  float temperature() const;
  void set_temperature(float value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.ConvertClassLogitsToSoftmax)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  float temperature_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RandomSelfConcatImage :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RandomSelfConcatImage) */ {
 public:
  RandomSelfConcatImage();
  virtual ~RandomSelfConcatImage();

  RandomSelfConcatImage(const RandomSelfConcatImage& from);
  RandomSelfConcatImage(RandomSelfConcatImage&& from) noexcept
    : RandomSelfConcatImage() {
    *this = ::std::move(from);
  }

  inline RandomSelfConcatImage& operator=(const RandomSelfConcatImage& from) {
    CopyFrom(from);
    return *this;
  }
  inline RandomSelfConcatImage& operator=(RandomSelfConcatImage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RandomSelfConcatImage& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RandomSelfConcatImage* internal_default_instance() {
    return reinterpret_cast<const RandomSelfConcatImage*>(
               &_RandomSelfConcatImage_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    34;

  friend void swap(RandomSelfConcatImage& a, RandomSelfConcatImage& b) {
    a.Swap(&b);
  }
  inline void Swap(RandomSelfConcatImage* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RandomSelfConcatImage* New() const final {
    return CreateMaybeMessage<RandomSelfConcatImage>(nullptr);
  }

  RandomSelfConcatImage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RandomSelfConcatImage>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RandomSelfConcatImage& from);
  void MergeFrom(const RandomSelfConcatImage& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RandomSelfConcatImage* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RandomSelfConcatImage";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kConcatVerticalProbabilityFieldNumber = 1,
    kConcatHorizontalProbabilityFieldNumber = 2,
  };
  // optional float concat_vertical_probability = 1 [default = 0.1];
  bool has_concat_vertical_probability() const;
  void clear_concat_vertical_probability();
  float concat_vertical_probability() const;
  void set_concat_vertical_probability(float value);

  // optional float concat_horizontal_probability = 2 [default = 0.1];
  bool has_concat_horizontal_probability() const;
  void clear_concat_horizontal_probability();
  float concat_horizontal_probability() const;
  void set_concat_horizontal_probability(float value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.RandomSelfConcatImage)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  float concat_vertical_probability_;
  float concat_horizontal_probability_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class AutoAugmentImage :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.AutoAugmentImage) */ {
 public:
  AutoAugmentImage();
  virtual ~AutoAugmentImage();

  AutoAugmentImage(const AutoAugmentImage& from);
  AutoAugmentImage(AutoAugmentImage&& from) noexcept
    : AutoAugmentImage() {
    *this = ::std::move(from);
  }

  inline AutoAugmentImage& operator=(const AutoAugmentImage& from) {
    CopyFrom(from);
    return *this;
  }
  inline AutoAugmentImage& operator=(AutoAugmentImage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const AutoAugmentImage& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AutoAugmentImage* internal_default_instance() {
    return reinterpret_cast<const AutoAugmentImage*>(
               &_AutoAugmentImage_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    35;

  friend void swap(AutoAugmentImage& a, AutoAugmentImage& b) {
    a.Swap(&b);
  }
  inline void Swap(AutoAugmentImage* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline AutoAugmentImage* New() const final {
    return CreateMaybeMessage<AutoAugmentImage>(nullptr);
  }

  AutoAugmentImage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<AutoAugmentImage>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const AutoAugmentImage& from);
  void MergeFrom(const AutoAugmentImage& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(AutoAugmentImage* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.AutoAugmentImage";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kPolicyNameFieldNumber = 1,
  };
  // optional string policy_name = 1 [default = "v0"];
  bool has_policy_name() const;
  void clear_policy_name();
  const std::string& policy_name() const;
  void set_policy_name(const std::string& value);
  void set_policy_name(std::string&& value);
  void set_policy_name(const char* value);
  void set_policy_name(const char* value, size_t size);
  std::string* mutable_policy_name();
  std::string* release_policy_name();
  void set_allocated_policy_name(std::string* policy_name);

  // @@protoc_insertion_point(class_scope:object_detection.protos.AutoAugmentImage)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  public:
  static ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<std::string> _i_give_permission_to_break_this_code_default_policy_name_;
  private:
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr policy_name_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class DropLabelProbabilistically :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.DropLabelProbabilistically) */ {
 public:
  DropLabelProbabilistically();
  virtual ~DropLabelProbabilistically();

  DropLabelProbabilistically(const DropLabelProbabilistically& from);
  DropLabelProbabilistically(DropLabelProbabilistically&& from) noexcept
    : DropLabelProbabilistically() {
    *this = ::std::move(from);
  }

  inline DropLabelProbabilistically& operator=(const DropLabelProbabilistically& from) {
    CopyFrom(from);
    return *this;
  }
  inline DropLabelProbabilistically& operator=(DropLabelProbabilistically&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const DropLabelProbabilistically& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const DropLabelProbabilistically* internal_default_instance() {
    return reinterpret_cast<const DropLabelProbabilistically*>(
               &_DropLabelProbabilistically_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    36;

  friend void swap(DropLabelProbabilistically& a, DropLabelProbabilistically& b) {
    a.Swap(&b);
  }
  inline void Swap(DropLabelProbabilistically* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline DropLabelProbabilistically* New() const final {
    return CreateMaybeMessage<DropLabelProbabilistically>(nullptr);
  }

  DropLabelProbabilistically* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<DropLabelProbabilistically>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const DropLabelProbabilistically& from);
  void MergeFrom(const DropLabelProbabilistically& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DropLabelProbabilistically* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.DropLabelProbabilistically";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kLabelFieldNumber = 1,
    kDropProbabilityFieldNumber = 2,
  };
  // optional int32 label = 1;
  bool has_label() const;
  void clear_label();
  ::PROTOBUF_NAMESPACE_ID::int32 label() const;
  void set_label(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional float drop_probability = 2 [default = 1];
  bool has_drop_probability() const;
  void clear_drop_probability();
  float drop_probability() const;
  void set_drop_probability(float value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.DropLabelProbabilistically)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::int32 label_;
  float drop_probability_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// -------------------------------------------------------------------

class RemapLabels :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:object_detection.protos.RemapLabels) */ {
 public:
  RemapLabels();
  virtual ~RemapLabels();

  RemapLabels(const RemapLabels& from);
  RemapLabels(RemapLabels&& from) noexcept
    : RemapLabels() {
    *this = ::std::move(from);
  }

  inline RemapLabels& operator=(const RemapLabels& from) {
    CopyFrom(from);
    return *this;
  }
  inline RemapLabels& operator=(RemapLabels&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RemapLabels& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RemapLabels* internal_default_instance() {
    return reinterpret_cast<const RemapLabels*>(
               &_RemapLabels_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    37;

  friend void swap(RemapLabels& a, RemapLabels& b) {
    a.Swap(&b);
  }
  inline void Swap(RemapLabels* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RemapLabels* New() const final {
    return CreateMaybeMessage<RemapLabels>(nullptr);
  }

  RemapLabels* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RemapLabels>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RemapLabels& from);
  void MergeFrom(const RemapLabels& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RemapLabels* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "object_detection.protos.RemapLabels";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
    return ::descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kOriginalLabelsFieldNumber = 1,
    kNewLabelFieldNumber = 2,
  };
  // repeated int32 original_labels = 1;
  int original_labels_size() const;
  void clear_original_labels();
  ::PROTOBUF_NAMESPACE_ID::int32 original_labels(int index) const;
  void set_original_labels(int index, ::PROTOBUF_NAMESPACE_ID::int32 value);
  void add_original_labels(::PROTOBUF_NAMESPACE_ID::int32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      original_labels() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      mutable_original_labels();

  // optional int32 new_label = 2;
  bool has_new_label() const;
  void clear_new_label();
  ::PROTOBUF_NAMESPACE_ID::int32 new_label() const;
  void set_new_label(::PROTOBUF_NAMESPACE_ID::int32 value);

  // @@protoc_insertion_point(class_scope:object_detection.protos.RemapLabels)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > original_labels_;
  ::PROTOBUF_NAMESPACE_ID::int32 new_label_;
  friend struct ::TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
};
// ===================================================================


// ===================================================================

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// PreprocessingStep

// optional .object_detection.protos.NormalizeImage normalize_image = 1;
inline bool PreprocessingStep::has_normalize_image() const {
  return preprocessing_step_case() == kNormalizeImage;
}
inline void PreprocessingStep::set_has_normalize_image() {
  _oneof_case_[0] = kNormalizeImage;
}
inline void PreprocessingStep::clear_normalize_image() {
  if (has_normalize_image()) {
    delete preprocessing_step_.normalize_image_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::NormalizeImage* PreprocessingStep::release_normalize_image() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.normalize_image)
  if (has_normalize_image()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::NormalizeImage* temp = preprocessing_step_.normalize_image_;
    preprocessing_step_.normalize_image_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::NormalizeImage& PreprocessingStep::normalize_image() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.normalize_image)
  return has_normalize_image()
      ? *preprocessing_step_.normalize_image_
      : *reinterpret_cast< ::object_detection::protos::NormalizeImage*>(&::object_detection::protos::_NormalizeImage_default_instance_);
}
inline ::object_detection::protos::NormalizeImage* PreprocessingStep::mutable_normalize_image() {
  if (!has_normalize_image()) {
    clear_preprocessing_step();
    set_has_normalize_image();
    preprocessing_step_.normalize_image_ = CreateMaybeMessage< ::object_detection::protos::NormalizeImage >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.normalize_image)
  return preprocessing_step_.normalize_image_;
}

// optional .object_detection.protos.RandomHorizontalFlip random_horizontal_flip = 2;
inline bool PreprocessingStep::has_random_horizontal_flip() const {
  return preprocessing_step_case() == kRandomHorizontalFlip;
}
inline void PreprocessingStep::set_has_random_horizontal_flip() {
  _oneof_case_[0] = kRandomHorizontalFlip;
}
inline void PreprocessingStep::clear_random_horizontal_flip() {
  if (has_random_horizontal_flip()) {
    delete preprocessing_step_.random_horizontal_flip_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomHorizontalFlip* PreprocessingStep::release_random_horizontal_flip() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_horizontal_flip)
  if (has_random_horizontal_flip()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomHorizontalFlip* temp = preprocessing_step_.random_horizontal_flip_;
    preprocessing_step_.random_horizontal_flip_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomHorizontalFlip& PreprocessingStep::random_horizontal_flip() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_horizontal_flip)
  return has_random_horizontal_flip()
      ? *preprocessing_step_.random_horizontal_flip_
      : *reinterpret_cast< ::object_detection::protos::RandomHorizontalFlip*>(&::object_detection::protos::_RandomHorizontalFlip_default_instance_);
}
inline ::object_detection::protos::RandomHorizontalFlip* PreprocessingStep::mutable_random_horizontal_flip() {
  if (!has_random_horizontal_flip()) {
    clear_preprocessing_step();
    set_has_random_horizontal_flip();
    preprocessing_step_.random_horizontal_flip_ = CreateMaybeMessage< ::object_detection::protos::RandomHorizontalFlip >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_horizontal_flip)
  return preprocessing_step_.random_horizontal_flip_;
}

// optional .object_detection.protos.RandomPixelValueScale random_pixel_value_scale = 3;
inline bool PreprocessingStep::has_random_pixel_value_scale() const {
  return preprocessing_step_case() == kRandomPixelValueScale;
}
inline void PreprocessingStep::set_has_random_pixel_value_scale() {
  _oneof_case_[0] = kRandomPixelValueScale;
}
inline void PreprocessingStep::clear_random_pixel_value_scale() {
  if (has_random_pixel_value_scale()) {
    delete preprocessing_step_.random_pixel_value_scale_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomPixelValueScale* PreprocessingStep::release_random_pixel_value_scale() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_pixel_value_scale)
  if (has_random_pixel_value_scale()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomPixelValueScale* temp = preprocessing_step_.random_pixel_value_scale_;
    preprocessing_step_.random_pixel_value_scale_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomPixelValueScale& PreprocessingStep::random_pixel_value_scale() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_pixel_value_scale)
  return has_random_pixel_value_scale()
      ? *preprocessing_step_.random_pixel_value_scale_
      : *reinterpret_cast< ::object_detection::protos::RandomPixelValueScale*>(&::object_detection::protos::_RandomPixelValueScale_default_instance_);
}
inline ::object_detection::protos::RandomPixelValueScale* PreprocessingStep::mutable_random_pixel_value_scale() {
  if (!has_random_pixel_value_scale()) {
    clear_preprocessing_step();
    set_has_random_pixel_value_scale();
    preprocessing_step_.random_pixel_value_scale_ = CreateMaybeMessage< ::object_detection::protos::RandomPixelValueScale >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_pixel_value_scale)
  return preprocessing_step_.random_pixel_value_scale_;
}

// optional .object_detection.protos.RandomImageScale random_image_scale = 4;
inline bool PreprocessingStep::has_random_image_scale() const {
  return preprocessing_step_case() == kRandomImageScale;
}
inline void PreprocessingStep::set_has_random_image_scale() {
  _oneof_case_[0] = kRandomImageScale;
}
inline void PreprocessingStep::clear_random_image_scale() {
  if (has_random_image_scale()) {
    delete preprocessing_step_.random_image_scale_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomImageScale* PreprocessingStep::release_random_image_scale() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_image_scale)
  if (has_random_image_scale()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomImageScale* temp = preprocessing_step_.random_image_scale_;
    preprocessing_step_.random_image_scale_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomImageScale& PreprocessingStep::random_image_scale() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_image_scale)
  return has_random_image_scale()
      ? *preprocessing_step_.random_image_scale_
      : *reinterpret_cast< ::object_detection::protos::RandomImageScale*>(&::object_detection::protos::_RandomImageScale_default_instance_);
}
inline ::object_detection::protos::RandomImageScale* PreprocessingStep::mutable_random_image_scale() {
  if (!has_random_image_scale()) {
    clear_preprocessing_step();
    set_has_random_image_scale();
    preprocessing_step_.random_image_scale_ = CreateMaybeMessage< ::object_detection::protos::RandomImageScale >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_image_scale)
  return preprocessing_step_.random_image_scale_;
}

// optional .object_detection.protos.RandomRGBtoGray random_rgb_to_gray = 5;
inline bool PreprocessingStep::has_random_rgb_to_gray() const {
  return preprocessing_step_case() == kRandomRgbToGray;
}
inline void PreprocessingStep::set_has_random_rgb_to_gray() {
  _oneof_case_[0] = kRandomRgbToGray;
}
inline void PreprocessingStep::clear_random_rgb_to_gray() {
  if (has_random_rgb_to_gray()) {
    delete preprocessing_step_.random_rgb_to_gray_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomRGBtoGray* PreprocessingStep::release_random_rgb_to_gray() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_rgb_to_gray)
  if (has_random_rgb_to_gray()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomRGBtoGray* temp = preprocessing_step_.random_rgb_to_gray_;
    preprocessing_step_.random_rgb_to_gray_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomRGBtoGray& PreprocessingStep::random_rgb_to_gray() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_rgb_to_gray)
  return has_random_rgb_to_gray()
      ? *preprocessing_step_.random_rgb_to_gray_
      : *reinterpret_cast< ::object_detection::protos::RandomRGBtoGray*>(&::object_detection::protos::_RandomRGBtoGray_default_instance_);
}
inline ::object_detection::protos::RandomRGBtoGray* PreprocessingStep::mutable_random_rgb_to_gray() {
  if (!has_random_rgb_to_gray()) {
    clear_preprocessing_step();
    set_has_random_rgb_to_gray();
    preprocessing_step_.random_rgb_to_gray_ = CreateMaybeMessage< ::object_detection::protos::RandomRGBtoGray >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_rgb_to_gray)
  return preprocessing_step_.random_rgb_to_gray_;
}

// optional .object_detection.protos.RandomAdjustBrightness random_adjust_brightness = 6;
inline bool PreprocessingStep::has_random_adjust_brightness() const {
  return preprocessing_step_case() == kRandomAdjustBrightness;
}
inline void PreprocessingStep::set_has_random_adjust_brightness() {
  _oneof_case_[0] = kRandomAdjustBrightness;
}
inline void PreprocessingStep::clear_random_adjust_brightness() {
  if (has_random_adjust_brightness()) {
    delete preprocessing_step_.random_adjust_brightness_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomAdjustBrightness* PreprocessingStep::release_random_adjust_brightness() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_adjust_brightness)
  if (has_random_adjust_brightness()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomAdjustBrightness* temp = preprocessing_step_.random_adjust_brightness_;
    preprocessing_step_.random_adjust_brightness_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomAdjustBrightness& PreprocessingStep::random_adjust_brightness() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_adjust_brightness)
  return has_random_adjust_brightness()
      ? *preprocessing_step_.random_adjust_brightness_
      : *reinterpret_cast< ::object_detection::protos::RandomAdjustBrightness*>(&::object_detection::protos::_RandomAdjustBrightness_default_instance_);
}
inline ::object_detection::protos::RandomAdjustBrightness* PreprocessingStep::mutable_random_adjust_brightness() {
  if (!has_random_adjust_brightness()) {
    clear_preprocessing_step();
    set_has_random_adjust_brightness();
    preprocessing_step_.random_adjust_brightness_ = CreateMaybeMessage< ::object_detection::protos::RandomAdjustBrightness >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_adjust_brightness)
  return preprocessing_step_.random_adjust_brightness_;
}

// optional .object_detection.protos.RandomAdjustContrast random_adjust_contrast = 7;
inline bool PreprocessingStep::has_random_adjust_contrast() const {
  return preprocessing_step_case() == kRandomAdjustContrast;
}
inline void PreprocessingStep::set_has_random_adjust_contrast() {
  _oneof_case_[0] = kRandomAdjustContrast;
}
inline void PreprocessingStep::clear_random_adjust_contrast() {
  if (has_random_adjust_contrast()) {
    delete preprocessing_step_.random_adjust_contrast_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomAdjustContrast* PreprocessingStep::release_random_adjust_contrast() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_adjust_contrast)
  if (has_random_adjust_contrast()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomAdjustContrast* temp = preprocessing_step_.random_adjust_contrast_;
    preprocessing_step_.random_adjust_contrast_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomAdjustContrast& PreprocessingStep::random_adjust_contrast() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_adjust_contrast)
  return has_random_adjust_contrast()
      ? *preprocessing_step_.random_adjust_contrast_
      : *reinterpret_cast< ::object_detection::protos::RandomAdjustContrast*>(&::object_detection::protos::_RandomAdjustContrast_default_instance_);
}
inline ::object_detection::protos::RandomAdjustContrast* PreprocessingStep::mutable_random_adjust_contrast() {
  if (!has_random_adjust_contrast()) {
    clear_preprocessing_step();
    set_has_random_adjust_contrast();
    preprocessing_step_.random_adjust_contrast_ = CreateMaybeMessage< ::object_detection::protos::RandomAdjustContrast >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_adjust_contrast)
  return preprocessing_step_.random_adjust_contrast_;
}

// optional .object_detection.protos.RandomAdjustHue random_adjust_hue = 8;
inline bool PreprocessingStep::has_random_adjust_hue() const {
  return preprocessing_step_case() == kRandomAdjustHue;
}
inline void PreprocessingStep::set_has_random_adjust_hue() {
  _oneof_case_[0] = kRandomAdjustHue;
}
inline void PreprocessingStep::clear_random_adjust_hue() {
  if (has_random_adjust_hue()) {
    delete preprocessing_step_.random_adjust_hue_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomAdjustHue* PreprocessingStep::release_random_adjust_hue() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_adjust_hue)
  if (has_random_adjust_hue()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomAdjustHue* temp = preprocessing_step_.random_adjust_hue_;
    preprocessing_step_.random_adjust_hue_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomAdjustHue& PreprocessingStep::random_adjust_hue() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_adjust_hue)
  return has_random_adjust_hue()
      ? *preprocessing_step_.random_adjust_hue_
      : *reinterpret_cast< ::object_detection::protos::RandomAdjustHue*>(&::object_detection::protos::_RandomAdjustHue_default_instance_);
}
inline ::object_detection::protos::RandomAdjustHue* PreprocessingStep::mutable_random_adjust_hue() {
  if (!has_random_adjust_hue()) {
    clear_preprocessing_step();
    set_has_random_adjust_hue();
    preprocessing_step_.random_adjust_hue_ = CreateMaybeMessage< ::object_detection::protos::RandomAdjustHue >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_adjust_hue)
  return preprocessing_step_.random_adjust_hue_;
}

// optional .object_detection.protos.RandomAdjustSaturation random_adjust_saturation = 9;
inline bool PreprocessingStep::has_random_adjust_saturation() const {
  return preprocessing_step_case() == kRandomAdjustSaturation;
}
inline void PreprocessingStep::set_has_random_adjust_saturation() {
  _oneof_case_[0] = kRandomAdjustSaturation;
}
inline void PreprocessingStep::clear_random_adjust_saturation() {
  if (has_random_adjust_saturation()) {
    delete preprocessing_step_.random_adjust_saturation_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomAdjustSaturation* PreprocessingStep::release_random_adjust_saturation() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_adjust_saturation)
  if (has_random_adjust_saturation()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomAdjustSaturation* temp = preprocessing_step_.random_adjust_saturation_;
    preprocessing_step_.random_adjust_saturation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomAdjustSaturation& PreprocessingStep::random_adjust_saturation() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_adjust_saturation)
  return has_random_adjust_saturation()
      ? *preprocessing_step_.random_adjust_saturation_
      : *reinterpret_cast< ::object_detection::protos::RandomAdjustSaturation*>(&::object_detection::protos::_RandomAdjustSaturation_default_instance_);
}
inline ::object_detection::protos::RandomAdjustSaturation* PreprocessingStep::mutable_random_adjust_saturation() {
  if (!has_random_adjust_saturation()) {
    clear_preprocessing_step();
    set_has_random_adjust_saturation();
    preprocessing_step_.random_adjust_saturation_ = CreateMaybeMessage< ::object_detection::protos::RandomAdjustSaturation >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_adjust_saturation)
  return preprocessing_step_.random_adjust_saturation_;
}

// optional .object_detection.protos.RandomDistortColor random_distort_color = 10;
inline bool PreprocessingStep::has_random_distort_color() const {
  return preprocessing_step_case() == kRandomDistortColor;
}
inline void PreprocessingStep::set_has_random_distort_color() {
  _oneof_case_[0] = kRandomDistortColor;
}
inline void PreprocessingStep::clear_random_distort_color() {
  if (has_random_distort_color()) {
    delete preprocessing_step_.random_distort_color_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomDistortColor* PreprocessingStep::release_random_distort_color() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_distort_color)
  if (has_random_distort_color()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomDistortColor* temp = preprocessing_step_.random_distort_color_;
    preprocessing_step_.random_distort_color_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomDistortColor& PreprocessingStep::random_distort_color() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_distort_color)
  return has_random_distort_color()
      ? *preprocessing_step_.random_distort_color_
      : *reinterpret_cast< ::object_detection::protos::RandomDistortColor*>(&::object_detection::protos::_RandomDistortColor_default_instance_);
}
inline ::object_detection::protos::RandomDistortColor* PreprocessingStep::mutable_random_distort_color() {
  if (!has_random_distort_color()) {
    clear_preprocessing_step();
    set_has_random_distort_color();
    preprocessing_step_.random_distort_color_ = CreateMaybeMessage< ::object_detection::protos::RandomDistortColor >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_distort_color)
  return preprocessing_step_.random_distort_color_;
}

// optional .object_detection.protos.RandomJitterBoxes random_jitter_boxes = 11;
inline bool PreprocessingStep::has_random_jitter_boxes() const {
  return preprocessing_step_case() == kRandomJitterBoxes;
}
inline void PreprocessingStep::set_has_random_jitter_boxes() {
  _oneof_case_[0] = kRandomJitterBoxes;
}
inline void PreprocessingStep::clear_random_jitter_boxes() {
  if (has_random_jitter_boxes()) {
    delete preprocessing_step_.random_jitter_boxes_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomJitterBoxes* PreprocessingStep::release_random_jitter_boxes() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_jitter_boxes)
  if (has_random_jitter_boxes()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomJitterBoxes* temp = preprocessing_step_.random_jitter_boxes_;
    preprocessing_step_.random_jitter_boxes_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomJitterBoxes& PreprocessingStep::random_jitter_boxes() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_jitter_boxes)
  return has_random_jitter_boxes()
      ? *preprocessing_step_.random_jitter_boxes_
      : *reinterpret_cast< ::object_detection::protos::RandomJitterBoxes*>(&::object_detection::protos::_RandomJitterBoxes_default_instance_);
}
inline ::object_detection::protos::RandomJitterBoxes* PreprocessingStep::mutable_random_jitter_boxes() {
  if (!has_random_jitter_boxes()) {
    clear_preprocessing_step();
    set_has_random_jitter_boxes();
    preprocessing_step_.random_jitter_boxes_ = CreateMaybeMessage< ::object_detection::protos::RandomJitterBoxes >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_jitter_boxes)
  return preprocessing_step_.random_jitter_boxes_;
}

// optional .object_detection.protos.RandomCropImage random_crop_image = 12;
inline bool PreprocessingStep::has_random_crop_image() const {
  return preprocessing_step_case() == kRandomCropImage;
}
inline void PreprocessingStep::set_has_random_crop_image() {
  _oneof_case_[0] = kRandomCropImage;
}
inline void PreprocessingStep::clear_random_crop_image() {
  if (has_random_crop_image()) {
    delete preprocessing_step_.random_crop_image_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomCropImage* PreprocessingStep::release_random_crop_image() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_crop_image)
  if (has_random_crop_image()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomCropImage* temp = preprocessing_step_.random_crop_image_;
    preprocessing_step_.random_crop_image_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomCropImage& PreprocessingStep::random_crop_image() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_crop_image)
  return has_random_crop_image()
      ? *preprocessing_step_.random_crop_image_
      : *reinterpret_cast< ::object_detection::protos::RandomCropImage*>(&::object_detection::protos::_RandomCropImage_default_instance_);
}
inline ::object_detection::protos::RandomCropImage* PreprocessingStep::mutable_random_crop_image() {
  if (!has_random_crop_image()) {
    clear_preprocessing_step();
    set_has_random_crop_image();
    preprocessing_step_.random_crop_image_ = CreateMaybeMessage< ::object_detection::protos::RandomCropImage >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_crop_image)
  return preprocessing_step_.random_crop_image_;
}

// optional .object_detection.protos.RandomPadImage random_pad_image = 13;
inline bool PreprocessingStep::has_random_pad_image() const {
  return preprocessing_step_case() == kRandomPadImage;
}
inline void PreprocessingStep::set_has_random_pad_image() {
  _oneof_case_[0] = kRandomPadImage;
}
inline void PreprocessingStep::clear_random_pad_image() {
  if (has_random_pad_image()) {
    delete preprocessing_step_.random_pad_image_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomPadImage* PreprocessingStep::release_random_pad_image() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_pad_image)
  if (has_random_pad_image()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomPadImage* temp = preprocessing_step_.random_pad_image_;
    preprocessing_step_.random_pad_image_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomPadImage& PreprocessingStep::random_pad_image() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_pad_image)
  return has_random_pad_image()
      ? *preprocessing_step_.random_pad_image_
      : *reinterpret_cast< ::object_detection::protos::RandomPadImage*>(&::object_detection::protos::_RandomPadImage_default_instance_);
}
inline ::object_detection::protos::RandomPadImage* PreprocessingStep::mutable_random_pad_image() {
  if (!has_random_pad_image()) {
    clear_preprocessing_step();
    set_has_random_pad_image();
    preprocessing_step_.random_pad_image_ = CreateMaybeMessage< ::object_detection::protos::RandomPadImage >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_pad_image)
  return preprocessing_step_.random_pad_image_;
}

// optional .object_detection.protos.RandomCropPadImage random_crop_pad_image = 14;
inline bool PreprocessingStep::has_random_crop_pad_image() const {
  return preprocessing_step_case() == kRandomCropPadImage;
}
inline void PreprocessingStep::set_has_random_crop_pad_image() {
  _oneof_case_[0] = kRandomCropPadImage;
}
inline void PreprocessingStep::clear_random_crop_pad_image() {
  if (has_random_crop_pad_image()) {
    delete preprocessing_step_.random_crop_pad_image_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomCropPadImage* PreprocessingStep::release_random_crop_pad_image() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_crop_pad_image)
  if (has_random_crop_pad_image()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomCropPadImage* temp = preprocessing_step_.random_crop_pad_image_;
    preprocessing_step_.random_crop_pad_image_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomCropPadImage& PreprocessingStep::random_crop_pad_image() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_crop_pad_image)
  return has_random_crop_pad_image()
      ? *preprocessing_step_.random_crop_pad_image_
      : *reinterpret_cast< ::object_detection::protos::RandomCropPadImage*>(&::object_detection::protos::_RandomCropPadImage_default_instance_);
}
inline ::object_detection::protos::RandomCropPadImage* PreprocessingStep::mutable_random_crop_pad_image() {
  if (!has_random_crop_pad_image()) {
    clear_preprocessing_step();
    set_has_random_crop_pad_image();
    preprocessing_step_.random_crop_pad_image_ = CreateMaybeMessage< ::object_detection::protos::RandomCropPadImage >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_crop_pad_image)
  return preprocessing_step_.random_crop_pad_image_;
}

// optional .object_detection.protos.RandomCropToAspectRatio random_crop_to_aspect_ratio = 15;
inline bool PreprocessingStep::has_random_crop_to_aspect_ratio() const {
  return preprocessing_step_case() == kRandomCropToAspectRatio;
}
inline void PreprocessingStep::set_has_random_crop_to_aspect_ratio() {
  _oneof_case_[0] = kRandomCropToAspectRatio;
}
inline void PreprocessingStep::clear_random_crop_to_aspect_ratio() {
  if (has_random_crop_to_aspect_ratio()) {
    delete preprocessing_step_.random_crop_to_aspect_ratio_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomCropToAspectRatio* PreprocessingStep::release_random_crop_to_aspect_ratio() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_crop_to_aspect_ratio)
  if (has_random_crop_to_aspect_ratio()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomCropToAspectRatio* temp = preprocessing_step_.random_crop_to_aspect_ratio_;
    preprocessing_step_.random_crop_to_aspect_ratio_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomCropToAspectRatio& PreprocessingStep::random_crop_to_aspect_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_crop_to_aspect_ratio)
  return has_random_crop_to_aspect_ratio()
      ? *preprocessing_step_.random_crop_to_aspect_ratio_
      : *reinterpret_cast< ::object_detection::protos::RandomCropToAspectRatio*>(&::object_detection::protos::_RandomCropToAspectRatio_default_instance_);
}
inline ::object_detection::protos::RandomCropToAspectRatio* PreprocessingStep::mutable_random_crop_to_aspect_ratio() {
  if (!has_random_crop_to_aspect_ratio()) {
    clear_preprocessing_step();
    set_has_random_crop_to_aspect_ratio();
    preprocessing_step_.random_crop_to_aspect_ratio_ = CreateMaybeMessage< ::object_detection::protos::RandomCropToAspectRatio >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_crop_to_aspect_ratio)
  return preprocessing_step_.random_crop_to_aspect_ratio_;
}

// optional .object_detection.protos.RandomBlackPatches random_black_patches = 16;
inline bool PreprocessingStep::has_random_black_patches() const {
  return preprocessing_step_case() == kRandomBlackPatches;
}
inline void PreprocessingStep::set_has_random_black_patches() {
  _oneof_case_[0] = kRandomBlackPatches;
}
inline void PreprocessingStep::clear_random_black_patches() {
  if (has_random_black_patches()) {
    delete preprocessing_step_.random_black_patches_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomBlackPatches* PreprocessingStep::release_random_black_patches() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_black_patches)
  if (has_random_black_patches()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomBlackPatches* temp = preprocessing_step_.random_black_patches_;
    preprocessing_step_.random_black_patches_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomBlackPatches& PreprocessingStep::random_black_patches() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_black_patches)
  return has_random_black_patches()
      ? *preprocessing_step_.random_black_patches_
      : *reinterpret_cast< ::object_detection::protos::RandomBlackPatches*>(&::object_detection::protos::_RandomBlackPatches_default_instance_);
}
inline ::object_detection::protos::RandomBlackPatches* PreprocessingStep::mutable_random_black_patches() {
  if (!has_random_black_patches()) {
    clear_preprocessing_step();
    set_has_random_black_patches();
    preprocessing_step_.random_black_patches_ = CreateMaybeMessage< ::object_detection::protos::RandomBlackPatches >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_black_patches)
  return preprocessing_step_.random_black_patches_;
}

// optional .object_detection.protos.RandomResizeMethod random_resize_method = 17;
inline bool PreprocessingStep::has_random_resize_method() const {
  return preprocessing_step_case() == kRandomResizeMethod;
}
inline void PreprocessingStep::set_has_random_resize_method() {
  _oneof_case_[0] = kRandomResizeMethod;
}
inline void PreprocessingStep::clear_random_resize_method() {
  if (has_random_resize_method()) {
    delete preprocessing_step_.random_resize_method_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomResizeMethod* PreprocessingStep::release_random_resize_method() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_resize_method)
  if (has_random_resize_method()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomResizeMethod* temp = preprocessing_step_.random_resize_method_;
    preprocessing_step_.random_resize_method_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomResizeMethod& PreprocessingStep::random_resize_method() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_resize_method)
  return has_random_resize_method()
      ? *preprocessing_step_.random_resize_method_
      : *reinterpret_cast< ::object_detection::protos::RandomResizeMethod*>(&::object_detection::protos::_RandomResizeMethod_default_instance_);
}
inline ::object_detection::protos::RandomResizeMethod* PreprocessingStep::mutable_random_resize_method() {
  if (!has_random_resize_method()) {
    clear_preprocessing_step();
    set_has_random_resize_method();
    preprocessing_step_.random_resize_method_ = CreateMaybeMessage< ::object_detection::protos::RandomResizeMethod >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_resize_method)
  return preprocessing_step_.random_resize_method_;
}

// optional .object_detection.protos.ScaleBoxesToPixelCoordinates scale_boxes_to_pixel_coordinates = 18;
inline bool PreprocessingStep::has_scale_boxes_to_pixel_coordinates() const {
  return preprocessing_step_case() == kScaleBoxesToPixelCoordinates;
}
inline void PreprocessingStep::set_has_scale_boxes_to_pixel_coordinates() {
  _oneof_case_[0] = kScaleBoxesToPixelCoordinates;
}
inline void PreprocessingStep::clear_scale_boxes_to_pixel_coordinates() {
  if (has_scale_boxes_to_pixel_coordinates()) {
    delete preprocessing_step_.scale_boxes_to_pixel_coordinates_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::ScaleBoxesToPixelCoordinates* PreprocessingStep::release_scale_boxes_to_pixel_coordinates() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.scale_boxes_to_pixel_coordinates)
  if (has_scale_boxes_to_pixel_coordinates()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::ScaleBoxesToPixelCoordinates* temp = preprocessing_step_.scale_boxes_to_pixel_coordinates_;
    preprocessing_step_.scale_boxes_to_pixel_coordinates_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::ScaleBoxesToPixelCoordinates& PreprocessingStep::scale_boxes_to_pixel_coordinates() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.scale_boxes_to_pixel_coordinates)
  return has_scale_boxes_to_pixel_coordinates()
      ? *preprocessing_step_.scale_boxes_to_pixel_coordinates_
      : *reinterpret_cast< ::object_detection::protos::ScaleBoxesToPixelCoordinates*>(&::object_detection::protos::_ScaleBoxesToPixelCoordinates_default_instance_);
}
inline ::object_detection::protos::ScaleBoxesToPixelCoordinates* PreprocessingStep::mutable_scale_boxes_to_pixel_coordinates() {
  if (!has_scale_boxes_to_pixel_coordinates()) {
    clear_preprocessing_step();
    set_has_scale_boxes_to_pixel_coordinates();
    preprocessing_step_.scale_boxes_to_pixel_coordinates_ = CreateMaybeMessage< ::object_detection::protos::ScaleBoxesToPixelCoordinates >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.scale_boxes_to_pixel_coordinates)
  return preprocessing_step_.scale_boxes_to_pixel_coordinates_;
}

// optional .object_detection.protos.ResizeImage resize_image = 19;
inline bool PreprocessingStep::has_resize_image() const {
  return preprocessing_step_case() == kResizeImage;
}
inline void PreprocessingStep::set_has_resize_image() {
  _oneof_case_[0] = kResizeImage;
}
inline void PreprocessingStep::clear_resize_image() {
  if (has_resize_image()) {
    delete preprocessing_step_.resize_image_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::ResizeImage* PreprocessingStep::release_resize_image() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.resize_image)
  if (has_resize_image()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::ResizeImage* temp = preprocessing_step_.resize_image_;
    preprocessing_step_.resize_image_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::ResizeImage& PreprocessingStep::resize_image() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.resize_image)
  return has_resize_image()
      ? *preprocessing_step_.resize_image_
      : *reinterpret_cast< ::object_detection::protos::ResizeImage*>(&::object_detection::protos::_ResizeImage_default_instance_);
}
inline ::object_detection::protos::ResizeImage* PreprocessingStep::mutable_resize_image() {
  if (!has_resize_image()) {
    clear_preprocessing_step();
    set_has_resize_image();
    preprocessing_step_.resize_image_ = CreateMaybeMessage< ::object_detection::protos::ResizeImage >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.resize_image)
  return preprocessing_step_.resize_image_;
}

// optional .object_detection.protos.SubtractChannelMean subtract_channel_mean = 20;
inline bool PreprocessingStep::has_subtract_channel_mean() const {
  return preprocessing_step_case() == kSubtractChannelMean;
}
inline void PreprocessingStep::set_has_subtract_channel_mean() {
  _oneof_case_[0] = kSubtractChannelMean;
}
inline void PreprocessingStep::clear_subtract_channel_mean() {
  if (has_subtract_channel_mean()) {
    delete preprocessing_step_.subtract_channel_mean_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::SubtractChannelMean* PreprocessingStep::release_subtract_channel_mean() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.subtract_channel_mean)
  if (has_subtract_channel_mean()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::SubtractChannelMean* temp = preprocessing_step_.subtract_channel_mean_;
    preprocessing_step_.subtract_channel_mean_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::SubtractChannelMean& PreprocessingStep::subtract_channel_mean() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.subtract_channel_mean)
  return has_subtract_channel_mean()
      ? *preprocessing_step_.subtract_channel_mean_
      : *reinterpret_cast< ::object_detection::protos::SubtractChannelMean*>(&::object_detection::protos::_SubtractChannelMean_default_instance_);
}
inline ::object_detection::protos::SubtractChannelMean* PreprocessingStep::mutable_subtract_channel_mean() {
  if (!has_subtract_channel_mean()) {
    clear_preprocessing_step();
    set_has_subtract_channel_mean();
    preprocessing_step_.subtract_channel_mean_ = CreateMaybeMessage< ::object_detection::protos::SubtractChannelMean >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.subtract_channel_mean)
  return preprocessing_step_.subtract_channel_mean_;
}

// optional .object_detection.protos.SSDRandomCrop ssd_random_crop = 21;
inline bool PreprocessingStep::has_ssd_random_crop() const {
  return preprocessing_step_case() == kSsdRandomCrop;
}
inline void PreprocessingStep::set_has_ssd_random_crop() {
  _oneof_case_[0] = kSsdRandomCrop;
}
inline void PreprocessingStep::clear_ssd_random_crop() {
  if (has_ssd_random_crop()) {
    delete preprocessing_step_.ssd_random_crop_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::SSDRandomCrop* PreprocessingStep::release_ssd_random_crop() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.ssd_random_crop)
  if (has_ssd_random_crop()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::SSDRandomCrop* temp = preprocessing_step_.ssd_random_crop_;
    preprocessing_step_.ssd_random_crop_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::SSDRandomCrop& PreprocessingStep::ssd_random_crop() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.ssd_random_crop)
  return has_ssd_random_crop()
      ? *preprocessing_step_.ssd_random_crop_
      : *reinterpret_cast< ::object_detection::protos::SSDRandomCrop*>(&::object_detection::protos::_SSDRandomCrop_default_instance_);
}
inline ::object_detection::protos::SSDRandomCrop* PreprocessingStep::mutable_ssd_random_crop() {
  if (!has_ssd_random_crop()) {
    clear_preprocessing_step();
    set_has_ssd_random_crop();
    preprocessing_step_.ssd_random_crop_ = CreateMaybeMessage< ::object_detection::protos::SSDRandomCrop >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.ssd_random_crop)
  return preprocessing_step_.ssd_random_crop_;
}

// optional .object_detection.protos.SSDRandomCropPad ssd_random_crop_pad = 22;
inline bool PreprocessingStep::has_ssd_random_crop_pad() const {
  return preprocessing_step_case() == kSsdRandomCropPad;
}
inline void PreprocessingStep::set_has_ssd_random_crop_pad() {
  _oneof_case_[0] = kSsdRandomCropPad;
}
inline void PreprocessingStep::clear_ssd_random_crop_pad() {
  if (has_ssd_random_crop_pad()) {
    delete preprocessing_step_.ssd_random_crop_pad_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::SSDRandomCropPad* PreprocessingStep::release_ssd_random_crop_pad() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.ssd_random_crop_pad)
  if (has_ssd_random_crop_pad()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::SSDRandomCropPad* temp = preprocessing_step_.ssd_random_crop_pad_;
    preprocessing_step_.ssd_random_crop_pad_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::SSDRandomCropPad& PreprocessingStep::ssd_random_crop_pad() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.ssd_random_crop_pad)
  return has_ssd_random_crop_pad()
      ? *preprocessing_step_.ssd_random_crop_pad_
      : *reinterpret_cast< ::object_detection::protos::SSDRandomCropPad*>(&::object_detection::protos::_SSDRandomCropPad_default_instance_);
}
inline ::object_detection::protos::SSDRandomCropPad* PreprocessingStep::mutable_ssd_random_crop_pad() {
  if (!has_ssd_random_crop_pad()) {
    clear_preprocessing_step();
    set_has_ssd_random_crop_pad();
    preprocessing_step_.ssd_random_crop_pad_ = CreateMaybeMessage< ::object_detection::protos::SSDRandomCropPad >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.ssd_random_crop_pad)
  return preprocessing_step_.ssd_random_crop_pad_;
}

// optional .object_detection.protos.SSDRandomCropFixedAspectRatio ssd_random_crop_fixed_aspect_ratio = 23;
inline bool PreprocessingStep::has_ssd_random_crop_fixed_aspect_ratio() const {
  return preprocessing_step_case() == kSsdRandomCropFixedAspectRatio;
}
inline void PreprocessingStep::set_has_ssd_random_crop_fixed_aspect_ratio() {
  _oneof_case_[0] = kSsdRandomCropFixedAspectRatio;
}
inline void PreprocessingStep::clear_ssd_random_crop_fixed_aspect_ratio() {
  if (has_ssd_random_crop_fixed_aspect_ratio()) {
    delete preprocessing_step_.ssd_random_crop_fixed_aspect_ratio_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::SSDRandomCropFixedAspectRatio* PreprocessingStep::release_ssd_random_crop_fixed_aspect_ratio() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.ssd_random_crop_fixed_aspect_ratio)
  if (has_ssd_random_crop_fixed_aspect_ratio()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::SSDRandomCropFixedAspectRatio* temp = preprocessing_step_.ssd_random_crop_fixed_aspect_ratio_;
    preprocessing_step_.ssd_random_crop_fixed_aspect_ratio_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::SSDRandomCropFixedAspectRatio& PreprocessingStep::ssd_random_crop_fixed_aspect_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.ssd_random_crop_fixed_aspect_ratio)
  return has_ssd_random_crop_fixed_aspect_ratio()
      ? *preprocessing_step_.ssd_random_crop_fixed_aspect_ratio_
      : *reinterpret_cast< ::object_detection::protos::SSDRandomCropFixedAspectRatio*>(&::object_detection::protos::_SSDRandomCropFixedAspectRatio_default_instance_);
}
inline ::object_detection::protos::SSDRandomCropFixedAspectRatio* PreprocessingStep::mutable_ssd_random_crop_fixed_aspect_ratio() {
  if (!has_ssd_random_crop_fixed_aspect_ratio()) {
    clear_preprocessing_step();
    set_has_ssd_random_crop_fixed_aspect_ratio();
    preprocessing_step_.ssd_random_crop_fixed_aspect_ratio_ = CreateMaybeMessage< ::object_detection::protos::SSDRandomCropFixedAspectRatio >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.ssd_random_crop_fixed_aspect_ratio)
  return preprocessing_step_.ssd_random_crop_fixed_aspect_ratio_;
}

// optional .object_detection.protos.SSDRandomCropPadFixedAspectRatio ssd_random_crop_pad_fixed_aspect_ratio = 24;
inline bool PreprocessingStep::has_ssd_random_crop_pad_fixed_aspect_ratio() const {
  return preprocessing_step_case() == kSsdRandomCropPadFixedAspectRatio;
}
inline void PreprocessingStep::set_has_ssd_random_crop_pad_fixed_aspect_ratio() {
  _oneof_case_[0] = kSsdRandomCropPadFixedAspectRatio;
}
inline void PreprocessingStep::clear_ssd_random_crop_pad_fixed_aspect_ratio() {
  if (has_ssd_random_crop_pad_fixed_aspect_ratio()) {
    delete preprocessing_step_.ssd_random_crop_pad_fixed_aspect_ratio_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::SSDRandomCropPadFixedAspectRatio* PreprocessingStep::release_ssd_random_crop_pad_fixed_aspect_ratio() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.ssd_random_crop_pad_fixed_aspect_ratio)
  if (has_ssd_random_crop_pad_fixed_aspect_ratio()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::SSDRandomCropPadFixedAspectRatio* temp = preprocessing_step_.ssd_random_crop_pad_fixed_aspect_ratio_;
    preprocessing_step_.ssd_random_crop_pad_fixed_aspect_ratio_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::SSDRandomCropPadFixedAspectRatio& PreprocessingStep::ssd_random_crop_pad_fixed_aspect_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.ssd_random_crop_pad_fixed_aspect_ratio)
  return has_ssd_random_crop_pad_fixed_aspect_ratio()
      ? *preprocessing_step_.ssd_random_crop_pad_fixed_aspect_ratio_
      : *reinterpret_cast< ::object_detection::protos::SSDRandomCropPadFixedAspectRatio*>(&::object_detection::protos::_SSDRandomCropPadFixedAspectRatio_default_instance_);
}
inline ::object_detection::protos::SSDRandomCropPadFixedAspectRatio* PreprocessingStep::mutable_ssd_random_crop_pad_fixed_aspect_ratio() {
  if (!has_ssd_random_crop_pad_fixed_aspect_ratio()) {
    clear_preprocessing_step();
    set_has_ssd_random_crop_pad_fixed_aspect_ratio();
    preprocessing_step_.ssd_random_crop_pad_fixed_aspect_ratio_ = CreateMaybeMessage< ::object_detection::protos::SSDRandomCropPadFixedAspectRatio >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.ssd_random_crop_pad_fixed_aspect_ratio)
  return preprocessing_step_.ssd_random_crop_pad_fixed_aspect_ratio_;
}

// optional .object_detection.protos.RandomVerticalFlip random_vertical_flip = 25;
inline bool PreprocessingStep::has_random_vertical_flip() const {
  return preprocessing_step_case() == kRandomVerticalFlip;
}
inline void PreprocessingStep::set_has_random_vertical_flip() {
  _oneof_case_[0] = kRandomVerticalFlip;
}
inline void PreprocessingStep::clear_random_vertical_flip() {
  if (has_random_vertical_flip()) {
    delete preprocessing_step_.random_vertical_flip_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomVerticalFlip* PreprocessingStep::release_random_vertical_flip() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_vertical_flip)
  if (has_random_vertical_flip()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomVerticalFlip* temp = preprocessing_step_.random_vertical_flip_;
    preprocessing_step_.random_vertical_flip_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomVerticalFlip& PreprocessingStep::random_vertical_flip() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_vertical_flip)
  return has_random_vertical_flip()
      ? *preprocessing_step_.random_vertical_flip_
      : *reinterpret_cast< ::object_detection::protos::RandomVerticalFlip*>(&::object_detection::protos::_RandomVerticalFlip_default_instance_);
}
inline ::object_detection::protos::RandomVerticalFlip* PreprocessingStep::mutable_random_vertical_flip() {
  if (!has_random_vertical_flip()) {
    clear_preprocessing_step();
    set_has_random_vertical_flip();
    preprocessing_step_.random_vertical_flip_ = CreateMaybeMessage< ::object_detection::protos::RandomVerticalFlip >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_vertical_flip)
  return preprocessing_step_.random_vertical_flip_;
}

// optional .object_detection.protos.RandomRotation90 random_rotation90 = 26;
inline bool PreprocessingStep::has_random_rotation90() const {
  return preprocessing_step_case() == kRandomRotation90;
}
inline void PreprocessingStep::set_has_random_rotation90() {
  _oneof_case_[0] = kRandomRotation90;
}
inline void PreprocessingStep::clear_random_rotation90() {
  if (has_random_rotation90()) {
    delete preprocessing_step_.random_rotation90_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomRotation90* PreprocessingStep::release_random_rotation90() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_rotation90)
  if (has_random_rotation90()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomRotation90* temp = preprocessing_step_.random_rotation90_;
    preprocessing_step_.random_rotation90_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomRotation90& PreprocessingStep::random_rotation90() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_rotation90)
  return has_random_rotation90()
      ? *preprocessing_step_.random_rotation90_
      : *reinterpret_cast< ::object_detection::protos::RandomRotation90*>(&::object_detection::protos::_RandomRotation90_default_instance_);
}
inline ::object_detection::protos::RandomRotation90* PreprocessingStep::mutable_random_rotation90() {
  if (!has_random_rotation90()) {
    clear_preprocessing_step();
    set_has_random_rotation90();
    preprocessing_step_.random_rotation90_ = CreateMaybeMessage< ::object_detection::protos::RandomRotation90 >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_rotation90)
  return preprocessing_step_.random_rotation90_;
}

// optional .object_detection.protos.RGBtoGray rgb_to_gray = 27;
inline bool PreprocessingStep::has_rgb_to_gray() const {
  return preprocessing_step_case() == kRgbToGray;
}
inline void PreprocessingStep::set_has_rgb_to_gray() {
  _oneof_case_[0] = kRgbToGray;
}
inline void PreprocessingStep::clear_rgb_to_gray() {
  if (has_rgb_to_gray()) {
    delete preprocessing_step_.rgb_to_gray_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RGBtoGray* PreprocessingStep::release_rgb_to_gray() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.rgb_to_gray)
  if (has_rgb_to_gray()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RGBtoGray* temp = preprocessing_step_.rgb_to_gray_;
    preprocessing_step_.rgb_to_gray_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RGBtoGray& PreprocessingStep::rgb_to_gray() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.rgb_to_gray)
  return has_rgb_to_gray()
      ? *preprocessing_step_.rgb_to_gray_
      : *reinterpret_cast< ::object_detection::protos::RGBtoGray*>(&::object_detection::protos::_RGBtoGray_default_instance_);
}
inline ::object_detection::protos::RGBtoGray* PreprocessingStep::mutable_rgb_to_gray() {
  if (!has_rgb_to_gray()) {
    clear_preprocessing_step();
    set_has_rgb_to_gray();
    preprocessing_step_.rgb_to_gray_ = CreateMaybeMessage< ::object_detection::protos::RGBtoGray >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.rgb_to_gray)
  return preprocessing_step_.rgb_to_gray_;
}

// optional .object_detection.protos.ConvertClassLogitsToSoftmax convert_class_logits_to_softmax = 28;
inline bool PreprocessingStep::has_convert_class_logits_to_softmax() const {
  return preprocessing_step_case() == kConvertClassLogitsToSoftmax;
}
inline void PreprocessingStep::set_has_convert_class_logits_to_softmax() {
  _oneof_case_[0] = kConvertClassLogitsToSoftmax;
}
inline void PreprocessingStep::clear_convert_class_logits_to_softmax() {
  if (has_convert_class_logits_to_softmax()) {
    delete preprocessing_step_.convert_class_logits_to_softmax_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::ConvertClassLogitsToSoftmax* PreprocessingStep::release_convert_class_logits_to_softmax() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.convert_class_logits_to_softmax)
  if (has_convert_class_logits_to_softmax()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::ConvertClassLogitsToSoftmax* temp = preprocessing_step_.convert_class_logits_to_softmax_;
    preprocessing_step_.convert_class_logits_to_softmax_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::ConvertClassLogitsToSoftmax& PreprocessingStep::convert_class_logits_to_softmax() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.convert_class_logits_to_softmax)
  return has_convert_class_logits_to_softmax()
      ? *preprocessing_step_.convert_class_logits_to_softmax_
      : *reinterpret_cast< ::object_detection::protos::ConvertClassLogitsToSoftmax*>(&::object_detection::protos::_ConvertClassLogitsToSoftmax_default_instance_);
}
inline ::object_detection::protos::ConvertClassLogitsToSoftmax* PreprocessingStep::mutable_convert_class_logits_to_softmax() {
  if (!has_convert_class_logits_to_softmax()) {
    clear_preprocessing_step();
    set_has_convert_class_logits_to_softmax();
    preprocessing_step_.convert_class_logits_to_softmax_ = CreateMaybeMessage< ::object_detection::protos::ConvertClassLogitsToSoftmax >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.convert_class_logits_to_softmax)
  return preprocessing_step_.convert_class_logits_to_softmax_;
}

// optional .object_detection.protos.RandomAbsolutePadImage random_absolute_pad_image = 29;
inline bool PreprocessingStep::has_random_absolute_pad_image() const {
  return preprocessing_step_case() == kRandomAbsolutePadImage;
}
inline void PreprocessingStep::set_has_random_absolute_pad_image() {
  _oneof_case_[0] = kRandomAbsolutePadImage;
}
inline void PreprocessingStep::clear_random_absolute_pad_image() {
  if (has_random_absolute_pad_image()) {
    delete preprocessing_step_.random_absolute_pad_image_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomAbsolutePadImage* PreprocessingStep::release_random_absolute_pad_image() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_absolute_pad_image)
  if (has_random_absolute_pad_image()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomAbsolutePadImage* temp = preprocessing_step_.random_absolute_pad_image_;
    preprocessing_step_.random_absolute_pad_image_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomAbsolutePadImage& PreprocessingStep::random_absolute_pad_image() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_absolute_pad_image)
  return has_random_absolute_pad_image()
      ? *preprocessing_step_.random_absolute_pad_image_
      : *reinterpret_cast< ::object_detection::protos::RandomAbsolutePadImage*>(&::object_detection::protos::_RandomAbsolutePadImage_default_instance_);
}
inline ::object_detection::protos::RandomAbsolutePadImage* PreprocessingStep::mutable_random_absolute_pad_image() {
  if (!has_random_absolute_pad_image()) {
    clear_preprocessing_step();
    set_has_random_absolute_pad_image();
    preprocessing_step_.random_absolute_pad_image_ = CreateMaybeMessage< ::object_detection::protos::RandomAbsolutePadImage >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_absolute_pad_image)
  return preprocessing_step_.random_absolute_pad_image_;
}

// optional .object_detection.protos.RandomSelfConcatImage random_self_concat_image = 30;
inline bool PreprocessingStep::has_random_self_concat_image() const {
  return preprocessing_step_case() == kRandomSelfConcatImage;
}
inline void PreprocessingStep::set_has_random_self_concat_image() {
  _oneof_case_[0] = kRandomSelfConcatImage;
}
inline void PreprocessingStep::clear_random_self_concat_image() {
  if (has_random_self_concat_image()) {
    delete preprocessing_step_.random_self_concat_image_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RandomSelfConcatImage* PreprocessingStep::release_random_self_concat_image() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.random_self_concat_image)
  if (has_random_self_concat_image()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RandomSelfConcatImage* temp = preprocessing_step_.random_self_concat_image_;
    preprocessing_step_.random_self_concat_image_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RandomSelfConcatImage& PreprocessingStep::random_self_concat_image() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.random_self_concat_image)
  return has_random_self_concat_image()
      ? *preprocessing_step_.random_self_concat_image_
      : *reinterpret_cast< ::object_detection::protos::RandomSelfConcatImage*>(&::object_detection::protos::_RandomSelfConcatImage_default_instance_);
}
inline ::object_detection::protos::RandomSelfConcatImage* PreprocessingStep::mutable_random_self_concat_image() {
  if (!has_random_self_concat_image()) {
    clear_preprocessing_step();
    set_has_random_self_concat_image();
    preprocessing_step_.random_self_concat_image_ = CreateMaybeMessage< ::object_detection::protos::RandomSelfConcatImage >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.random_self_concat_image)
  return preprocessing_step_.random_self_concat_image_;
}

// optional .object_detection.protos.AutoAugmentImage autoaugment_image = 31;
inline bool PreprocessingStep::has_autoaugment_image() const {
  return preprocessing_step_case() == kAutoaugmentImage;
}
inline void PreprocessingStep::set_has_autoaugment_image() {
  _oneof_case_[0] = kAutoaugmentImage;
}
inline void PreprocessingStep::clear_autoaugment_image() {
  if (has_autoaugment_image()) {
    delete preprocessing_step_.autoaugment_image_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::AutoAugmentImage* PreprocessingStep::release_autoaugment_image() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.autoaugment_image)
  if (has_autoaugment_image()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::AutoAugmentImage* temp = preprocessing_step_.autoaugment_image_;
    preprocessing_step_.autoaugment_image_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::AutoAugmentImage& PreprocessingStep::autoaugment_image() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.autoaugment_image)
  return has_autoaugment_image()
      ? *preprocessing_step_.autoaugment_image_
      : *reinterpret_cast< ::object_detection::protos::AutoAugmentImage*>(&::object_detection::protos::_AutoAugmentImage_default_instance_);
}
inline ::object_detection::protos::AutoAugmentImage* PreprocessingStep::mutable_autoaugment_image() {
  if (!has_autoaugment_image()) {
    clear_preprocessing_step();
    set_has_autoaugment_image();
    preprocessing_step_.autoaugment_image_ = CreateMaybeMessage< ::object_detection::protos::AutoAugmentImage >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.autoaugment_image)
  return preprocessing_step_.autoaugment_image_;
}

// optional .object_detection.protos.DropLabelProbabilistically drop_label_probabilistically = 32;
inline bool PreprocessingStep::has_drop_label_probabilistically() const {
  return preprocessing_step_case() == kDropLabelProbabilistically;
}
inline void PreprocessingStep::set_has_drop_label_probabilistically() {
  _oneof_case_[0] = kDropLabelProbabilistically;
}
inline void PreprocessingStep::clear_drop_label_probabilistically() {
  if (has_drop_label_probabilistically()) {
    delete preprocessing_step_.drop_label_probabilistically_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::DropLabelProbabilistically* PreprocessingStep::release_drop_label_probabilistically() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.drop_label_probabilistically)
  if (has_drop_label_probabilistically()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::DropLabelProbabilistically* temp = preprocessing_step_.drop_label_probabilistically_;
    preprocessing_step_.drop_label_probabilistically_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::DropLabelProbabilistically& PreprocessingStep::drop_label_probabilistically() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.drop_label_probabilistically)
  return has_drop_label_probabilistically()
      ? *preprocessing_step_.drop_label_probabilistically_
      : *reinterpret_cast< ::object_detection::protos::DropLabelProbabilistically*>(&::object_detection::protos::_DropLabelProbabilistically_default_instance_);
}
inline ::object_detection::protos::DropLabelProbabilistically* PreprocessingStep::mutable_drop_label_probabilistically() {
  if (!has_drop_label_probabilistically()) {
    clear_preprocessing_step();
    set_has_drop_label_probabilistically();
    preprocessing_step_.drop_label_probabilistically_ = CreateMaybeMessage< ::object_detection::protos::DropLabelProbabilistically >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.drop_label_probabilistically)
  return preprocessing_step_.drop_label_probabilistically_;
}

// optional .object_detection.protos.RemapLabels remap_labels = 33;
inline bool PreprocessingStep::has_remap_labels() const {
  return preprocessing_step_case() == kRemapLabels;
}
inline void PreprocessingStep::set_has_remap_labels() {
  _oneof_case_[0] = kRemapLabels;
}
inline void PreprocessingStep::clear_remap_labels() {
  if (has_remap_labels()) {
    delete preprocessing_step_.remap_labels_;
    clear_has_preprocessing_step();
  }
}
inline ::object_detection::protos::RemapLabels* PreprocessingStep::release_remap_labels() {
  // @@protoc_insertion_point(field_release:object_detection.protos.PreprocessingStep.remap_labels)
  if (has_remap_labels()) {
    clear_has_preprocessing_step();
      ::object_detection::protos::RemapLabels* temp = preprocessing_step_.remap_labels_;
    preprocessing_step_.remap_labels_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::object_detection::protos::RemapLabels& PreprocessingStep::remap_labels() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.PreprocessingStep.remap_labels)
  return has_remap_labels()
      ? *preprocessing_step_.remap_labels_
      : *reinterpret_cast< ::object_detection::protos::RemapLabels*>(&::object_detection::protos::_RemapLabels_default_instance_);
}
inline ::object_detection::protos::RemapLabels* PreprocessingStep::mutable_remap_labels() {
  if (!has_remap_labels()) {
    clear_preprocessing_step();
    set_has_remap_labels();
    preprocessing_step_.remap_labels_ = CreateMaybeMessage< ::object_detection::protos::RemapLabels >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:object_detection.protos.PreprocessingStep.remap_labels)
  return preprocessing_step_.remap_labels_;
}

inline bool PreprocessingStep::has_preprocessing_step() const {
  return preprocessing_step_case() != PREPROCESSING_STEP_NOT_SET;
}
inline void PreprocessingStep::clear_has_preprocessing_step() {
  _oneof_case_[0] = PREPROCESSING_STEP_NOT_SET;
}
inline PreprocessingStep::PreprocessingStepCase PreprocessingStep::preprocessing_step_case() const {
  return PreprocessingStep::PreprocessingStepCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// NormalizeImage

// optional float original_minval = 1;
inline bool NormalizeImage::has_original_minval() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void NormalizeImage::clear_original_minval() {
  original_minval_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline float NormalizeImage::original_minval() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.NormalizeImage.original_minval)
  return original_minval_;
}
inline void NormalizeImage::set_original_minval(float value) {
  _has_bits_[0] |= 0x00000001u;
  original_minval_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.NormalizeImage.original_minval)
}

// optional float original_maxval = 2;
inline bool NormalizeImage::has_original_maxval() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void NormalizeImage::clear_original_maxval() {
  original_maxval_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline float NormalizeImage::original_maxval() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.NormalizeImage.original_maxval)
  return original_maxval_;
}
inline void NormalizeImage::set_original_maxval(float value) {
  _has_bits_[0] |= 0x00000002u;
  original_maxval_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.NormalizeImage.original_maxval)
}

// optional float target_minval = 3 [default = 0];
inline bool NormalizeImage::has_target_minval() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void NormalizeImage::clear_target_minval() {
  target_minval_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline float NormalizeImage::target_minval() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.NormalizeImage.target_minval)
  return target_minval_;
}
inline void NormalizeImage::set_target_minval(float value) {
  _has_bits_[0] |= 0x00000004u;
  target_minval_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.NormalizeImage.target_minval)
}

// optional float target_maxval = 4 [default = 1];
inline bool NormalizeImage::has_target_maxval() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void NormalizeImage::clear_target_maxval() {
  target_maxval_ = 1;
  _has_bits_[0] &= ~0x00000008u;
}
inline float NormalizeImage::target_maxval() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.NormalizeImage.target_maxval)
  return target_maxval_;
}
inline void NormalizeImage::set_target_maxval(float value) {
  _has_bits_[0] |= 0x00000008u;
  target_maxval_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.NormalizeImage.target_maxval)
}

// -------------------------------------------------------------------

// RandomHorizontalFlip

// repeated int32 keypoint_flip_permutation = 1;
inline int RandomHorizontalFlip::keypoint_flip_permutation_size() const {
  return keypoint_flip_permutation_.size();
}
inline void RandomHorizontalFlip::clear_keypoint_flip_permutation() {
  keypoint_flip_permutation_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RandomHorizontalFlip::keypoint_flip_permutation(int index) const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomHorizontalFlip.keypoint_flip_permutation)
  return keypoint_flip_permutation_.Get(index);
}
inline void RandomHorizontalFlip::set_keypoint_flip_permutation(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) {
  keypoint_flip_permutation_.Set(index, value);
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomHorizontalFlip.keypoint_flip_permutation)
}
inline void RandomHorizontalFlip::add_keypoint_flip_permutation(::PROTOBUF_NAMESPACE_ID::int32 value) {
  keypoint_flip_permutation_.Add(value);
  // @@protoc_insertion_point(field_add:object_detection.protos.RandomHorizontalFlip.keypoint_flip_permutation)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
RandomHorizontalFlip::keypoint_flip_permutation() const {
  // @@protoc_insertion_point(field_list:object_detection.protos.RandomHorizontalFlip.keypoint_flip_permutation)
  return keypoint_flip_permutation_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
RandomHorizontalFlip::mutable_keypoint_flip_permutation() {
  // @@protoc_insertion_point(field_mutable_list:object_detection.protos.RandomHorizontalFlip.keypoint_flip_permutation)
  return &keypoint_flip_permutation_;
}

// -------------------------------------------------------------------

// RandomVerticalFlip

// repeated int32 keypoint_flip_permutation = 1;
inline int RandomVerticalFlip::keypoint_flip_permutation_size() const {
  return keypoint_flip_permutation_.size();
}
inline void RandomVerticalFlip::clear_keypoint_flip_permutation() {
  keypoint_flip_permutation_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RandomVerticalFlip::keypoint_flip_permutation(int index) const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomVerticalFlip.keypoint_flip_permutation)
  return keypoint_flip_permutation_.Get(index);
}
inline void RandomVerticalFlip::set_keypoint_flip_permutation(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) {
  keypoint_flip_permutation_.Set(index, value);
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomVerticalFlip.keypoint_flip_permutation)
}
inline void RandomVerticalFlip::add_keypoint_flip_permutation(::PROTOBUF_NAMESPACE_ID::int32 value) {
  keypoint_flip_permutation_.Add(value);
  // @@protoc_insertion_point(field_add:object_detection.protos.RandomVerticalFlip.keypoint_flip_permutation)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
RandomVerticalFlip::keypoint_flip_permutation() const {
  // @@protoc_insertion_point(field_list:object_detection.protos.RandomVerticalFlip.keypoint_flip_permutation)
  return keypoint_flip_permutation_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
RandomVerticalFlip::mutable_keypoint_flip_permutation() {
  // @@protoc_insertion_point(field_mutable_list:object_detection.protos.RandomVerticalFlip.keypoint_flip_permutation)
  return &keypoint_flip_permutation_;
}

// -------------------------------------------------------------------

// RandomRotation90

// -------------------------------------------------------------------

// RandomPixelValueScale

// optional float minval = 1 [default = 0.9];
inline bool RandomPixelValueScale::has_minval() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RandomPixelValueScale::clear_minval() {
  minval_ = 0.9f;
  _has_bits_[0] &= ~0x00000001u;
}
inline float RandomPixelValueScale::minval() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomPixelValueScale.minval)
  return minval_;
}
inline void RandomPixelValueScale::set_minval(float value) {
  _has_bits_[0] |= 0x00000001u;
  minval_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomPixelValueScale.minval)
}

// optional float maxval = 2 [default = 1.1];
inline bool RandomPixelValueScale::has_maxval() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RandomPixelValueScale::clear_maxval() {
  maxval_ = 1.1f;
  _has_bits_[0] &= ~0x00000002u;
}
inline float RandomPixelValueScale::maxval() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomPixelValueScale.maxval)
  return maxval_;
}
inline void RandomPixelValueScale::set_maxval(float value) {
  _has_bits_[0] |= 0x00000002u;
  maxval_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomPixelValueScale.maxval)
}

// -------------------------------------------------------------------

// RandomImageScale

// optional float min_scale_ratio = 1 [default = 0.5];
inline bool RandomImageScale::has_min_scale_ratio() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RandomImageScale::clear_min_scale_ratio() {
  min_scale_ratio_ = 0.5f;
  _has_bits_[0] &= ~0x00000001u;
}
inline float RandomImageScale::min_scale_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomImageScale.min_scale_ratio)
  return min_scale_ratio_;
}
inline void RandomImageScale::set_min_scale_ratio(float value) {
  _has_bits_[0] |= 0x00000001u;
  min_scale_ratio_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomImageScale.min_scale_ratio)
}

// optional float max_scale_ratio = 2 [default = 2];
inline bool RandomImageScale::has_max_scale_ratio() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RandomImageScale::clear_max_scale_ratio() {
  max_scale_ratio_ = 2;
  _has_bits_[0] &= ~0x00000002u;
}
inline float RandomImageScale::max_scale_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomImageScale.max_scale_ratio)
  return max_scale_ratio_;
}
inline void RandomImageScale::set_max_scale_ratio(float value) {
  _has_bits_[0] |= 0x00000002u;
  max_scale_ratio_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomImageScale.max_scale_ratio)
}

// -------------------------------------------------------------------

// RandomRGBtoGray

// optional float probability = 1 [default = 0.1];
inline bool RandomRGBtoGray::has_probability() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RandomRGBtoGray::clear_probability() {
  probability_ = 0.1f;
  _has_bits_[0] &= ~0x00000001u;
}
inline float RandomRGBtoGray::probability() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomRGBtoGray.probability)
  return probability_;
}
inline void RandomRGBtoGray::set_probability(float value) {
  _has_bits_[0] |= 0x00000001u;
  probability_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomRGBtoGray.probability)
}

// -------------------------------------------------------------------

// RandomAdjustBrightness

// optional float max_delta = 1 [default = 0.2];
inline bool RandomAdjustBrightness::has_max_delta() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RandomAdjustBrightness::clear_max_delta() {
  max_delta_ = 0.2f;
  _has_bits_[0] &= ~0x00000001u;
}
inline float RandomAdjustBrightness::max_delta() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomAdjustBrightness.max_delta)
  return max_delta_;
}
inline void RandomAdjustBrightness::set_max_delta(float value) {
  _has_bits_[0] |= 0x00000001u;
  max_delta_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomAdjustBrightness.max_delta)
}

// -------------------------------------------------------------------

// RandomAdjustContrast

// optional float min_delta = 1 [default = 0.8];
inline bool RandomAdjustContrast::has_min_delta() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RandomAdjustContrast::clear_min_delta() {
  min_delta_ = 0.8f;
  _has_bits_[0] &= ~0x00000001u;
}
inline float RandomAdjustContrast::min_delta() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomAdjustContrast.min_delta)
  return min_delta_;
}
inline void RandomAdjustContrast::set_min_delta(float value) {
  _has_bits_[0] |= 0x00000001u;
  min_delta_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomAdjustContrast.min_delta)
}

// optional float max_delta = 2 [default = 1.25];
inline bool RandomAdjustContrast::has_max_delta() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RandomAdjustContrast::clear_max_delta() {
  max_delta_ = 1.25f;
  _has_bits_[0] &= ~0x00000002u;
}
inline float RandomAdjustContrast::max_delta() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomAdjustContrast.max_delta)
  return max_delta_;
}
inline void RandomAdjustContrast::set_max_delta(float value) {
  _has_bits_[0] |= 0x00000002u;
  max_delta_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomAdjustContrast.max_delta)
}

// -------------------------------------------------------------------

// RandomAdjustHue

// optional float max_delta = 1 [default = 0.02];
inline bool RandomAdjustHue::has_max_delta() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RandomAdjustHue::clear_max_delta() {
  max_delta_ = 0.02f;
  _has_bits_[0] &= ~0x00000001u;
}
inline float RandomAdjustHue::max_delta() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomAdjustHue.max_delta)
  return max_delta_;
}
inline void RandomAdjustHue::set_max_delta(float value) {
  _has_bits_[0] |= 0x00000001u;
  max_delta_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomAdjustHue.max_delta)
}

// -------------------------------------------------------------------

// RandomAdjustSaturation

// optional float min_delta = 1 [default = 0.8];
inline bool RandomAdjustSaturation::has_min_delta() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RandomAdjustSaturation::clear_min_delta() {
  min_delta_ = 0.8f;
  _has_bits_[0] &= ~0x00000001u;
}
inline float RandomAdjustSaturation::min_delta() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomAdjustSaturation.min_delta)
  return min_delta_;
}
inline void RandomAdjustSaturation::set_min_delta(float value) {
  _has_bits_[0] |= 0x00000001u;
  min_delta_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomAdjustSaturation.min_delta)
}

// optional float max_delta = 2 [default = 1.25];
inline bool RandomAdjustSaturation::has_max_delta() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RandomAdjustSaturation::clear_max_delta() {
  max_delta_ = 1.25f;
  _has_bits_[0] &= ~0x00000002u;
}
inline float RandomAdjustSaturation::max_delta() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomAdjustSaturation.max_delta)
  return max_delta_;
}
inline void RandomAdjustSaturation::set_max_delta(float value) {
  _has_bits_[0] |= 0x00000002u;
  max_delta_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomAdjustSaturation.max_delta)
}

// -------------------------------------------------------------------

// RandomDistortColor

// optional int32 color_ordering = 1;
inline bool RandomDistortColor::has_color_ordering() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RandomDistortColor::clear_color_ordering() {
  color_ordering_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RandomDistortColor::color_ordering() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomDistortColor.color_ordering)
  return color_ordering_;
}
inline void RandomDistortColor::set_color_ordering(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  color_ordering_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomDistortColor.color_ordering)
}

// -------------------------------------------------------------------

// RandomJitterBoxes

// optional float ratio = 1 [default = 0.05];
inline bool RandomJitterBoxes::has_ratio() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RandomJitterBoxes::clear_ratio() {
  ratio_ = 0.05f;
  _has_bits_[0] &= ~0x00000001u;
}
inline float RandomJitterBoxes::ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomJitterBoxes.ratio)
  return ratio_;
}
inline void RandomJitterBoxes::set_ratio(float value) {
  _has_bits_[0] |= 0x00000001u;
  ratio_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomJitterBoxes.ratio)
}

// -------------------------------------------------------------------

// RandomCropImage

// optional float min_object_covered = 1 [default = 1];
inline bool RandomCropImage::has_min_object_covered() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void RandomCropImage::clear_min_object_covered() {
  min_object_covered_ = 1;
  _has_bits_[0] &= ~0x00000004u;
}
inline float RandomCropImage::min_object_covered() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropImage.min_object_covered)
  return min_object_covered_;
}
inline void RandomCropImage::set_min_object_covered(float value) {
  _has_bits_[0] |= 0x00000004u;
  min_object_covered_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropImage.min_object_covered)
}

// optional float min_aspect_ratio = 2 [default = 0.75];
inline bool RandomCropImage::has_min_aspect_ratio() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void RandomCropImage::clear_min_aspect_ratio() {
  min_aspect_ratio_ = 0.75f;
  _has_bits_[0] &= ~0x00000008u;
}
inline float RandomCropImage::min_aspect_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropImage.min_aspect_ratio)
  return min_aspect_ratio_;
}
inline void RandomCropImage::set_min_aspect_ratio(float value) {
  _has_bits_[0] |= 0x00000008u;
  min_aspect_ratio_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropImage.min_aspect_ratio)
}

// optional float max_aspect_ratio = 3 [default = 1.33];
inline bool RandomCropImage::has_max_aspect_ratio() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void RandomCropImage::clear_max_aspect_ratio() {
  max_aspect_ratio_ = 1.33f;
  _has_bits_[0] &= ~0x00000010u;
}
inline float RandomCropImage::max_aspect_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropImage.max_aspect_ratio)
  return max_aspect_ratio_;
}
inline void RandomCropImage::set_max_aspect_ratio(float value) {
  _has_bits_[0] |= 0x00000010u;
  max_aspect_ratio_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropImage.max_aspect_ratio)
}

// optional float min_area = 4 [default = 0.1];
inline bool RandomCropImage::has_min_area() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void RandomCropImage::clear_min_area() {
  min_area_ = 0.1f;
  _has_bits_[0] &= ~0x00000020u;
}
inline float RandomCropImage::min_area() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropImage.min_area)
  return min_area_;
}
inline void RandomCropImage::set_min_area(float value) {
  _has_bits_[0] |= 0x00000020u;
  min_area_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropImage.min_area)
}

// optional float max_area = 5 [default = 1];
inline bool RandomCropImage::has_max_area() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void RandomCropImage::clear_max_area() {
  max_area_ = 1;
  _has_bits_[0] &= ~0x00000040u;
}
inline float RandomCropImage::max_area() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropImage.max_area)
  return max_area_;
}
inline void RandomCropImage::set_max_area(float value) {
  _has_bits_[0] |= 0x00000040u;
  max_area_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropImage.max_area)
}

// optional float overlap_thresh = 6 [default = 0.3];
inline bool RandomCropImage::has_overlap_thresh() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void RandomCropImage::clear_overlap_thresh() {
  overlap_thresh_ = 0.3f;
  _has_bits_[0] &= ~0x00000080u;
}
inline float RandomCropImage::overlap_thresh() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropImage.overlap_thresh)
  return overlap_thresh_;
}
inline void RandomCropImage::set_overlap_thresh(float value) {
  _has_bits_[0] |= 0x00000080u;
  overlap_thresh_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropImage.overlap_thresh)
}

// optional bool clip_boxes = 8 [default = true];
inline bool RandomCropImage::has_clip_boxes() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RandomCropImage::clear_clip_boxes() {
  clip_boxes_ = true;
  _has_bits_[0] &= ~0x00000002u;
}
inline bool RandomCropImage::clip_boxes() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropImage.clip_boxes)
  return clip_boxes_;
}
inline void RandomCropImage::set_clip_boxes(bool value) {
  _has_bits_[0] |= 0x00000002u;
  clip_boxes_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropImage.clip_boxes)
}

// optional float random_coef = 7 [default = 0];
inline bool RandomCropImage::has_random_coef() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RandomCropImage::clear_random_coef() {
  random_coef_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline float RandomCropImage::random_coef() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropImage.random_coef)
  return random_coef_;
}
inline void RandomCropImage::set_random_coef(float value) {
  _has_bits_[0] |= 0x00000001u;
  random_coef_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropImage.random_coef)
}

// -------------------------------------------------------------------

// RandomPadImage

// optional int32 min_image_height = 1;
inline bool RandomPadImage::has_min_image_height() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RandomPadImage::clear_min_image_height() {
  min_image_height_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RandomPadImage::min_image_height() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomPadImage.min_image_height)
  return min_image_height_;
}
inline void RandomPadImage::set_min_image_height(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  min_image_height_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomPadImage.min_image_height)
}

// optional int32 min_image_width = 2;
inline bool RandomPadImage::has_min_image_width() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RandomPadImage::clear_min_image_width() {
  min_image_width_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RandomPadImage::min_image_width() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomPadImage.min_image_width)
  return min_image_width_;
}
inline void RandomPadImage::set_min_image_width(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  min_image_width_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomPadImage.min_image_width)
}

// optional int32 max_image_height = 3;
inline bool RandomPadImage::has_max_image_height() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void RandomPadImage::clear_max_image_height() {
  max_image_height_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RandomPadImage::max_image_height() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomPadImage.max_image_height)
  return max_image_height_;
}
inline void RandomPadImage::set_max_image_height(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000004u;
  max_image_height_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomPadImage.max_image_height)
}

// optional int32 max_image_width = 4;
inline bool RandomPadImage::has_max_image_width() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void RandomPadImage::clear_max_image_width() {
  max_image_width_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RandomPadImage::max_image_width() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomPadImage.max_image_width)
  return max_image_width_;
}
inline void RandomPadImage::set_max_image_width(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000008u;
  max_image_width_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomPadImage.max_image_width)
}

// repeated float pad_color = 5;
inline int RandomPadImage::pad_color_size() const {
  return pad_color_.size();
}
inline void RandomPadImage::clear_pad_color() {
  pad_color_.Clear();
}
inline float RandomPadImage::pad_color(int index) const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomPadImage.pad_color)
  return pad_color_.Get(index);
}
inline void RandomPadImage::set_pad_color(int index, float value) {
  pad_color_.Set(index, value);
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomPadImage.pad_color)
}
inline void RandomPadImage::add_pad_color(float value) {
  pad_color_.Add(value);
  // @@protoc_insertion_point(field_add:object_detection.protos.RandomPadImage.pad_color)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
RandomPadImage::pad_color() const {
  // @@protoc_insertion_point(field_list:object_detection.protos.RandomPadImage.pad_color)
  return pad_color_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
RandomPadImage::mutable_pad_color() {
  // @@protoc_insertion_point(field_mutable_list:object_detection.protos.RandomPadImage.pad_color)
  return &pad_color_;
}

// -------------------------------------------------------------------

// RandomAbsolutePadImage

// optional int32 max_height_padding = 1;
inline bool RandomAbsolutePadImage::has_max_height_padding() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RandomAbsolutePadImage::clear_max_height_padding() {
  max_height_padding_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RandomAbsolutePadImage::max_height_padding() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomAbsolutePadImage.max_height_padding)
  return max_height_padding_;
}
inline void RandomAbsolutePadImage::set_max_height_padding(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  max_height_padding_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomAbsolutePadImage.max_height_padding)
}

// optional int32 max_width_padding = 2;
inline bool RandomAbsolutePadImage::has_max_width_padding() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RandomAbsolutePadImage::clear_max_width_padding() {
  max_width_padding_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RandomAbsolutePadImage::max_width_padding() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomAbsolutePadImage.max_width_padding)
  return max_width_padding_;
}
inline void RandomAbsolutePadImage::set_max_width_padding(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  max_width_padding_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomAbsolutePadImage.max_width_padding)
}

// repeated float pad_color = 3;
inline int RandomAbsolutePadImage::pad_color_size() const {
  return pad_color_.size();
}
inline void RandomAbsolutePadImage::clear_pad_color() {
  pad_color_.Clear();
}
inline float RandomAbsolutePadImage::pad_color(int index) const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomAbsolutePadImage.pad_color)
  return pad_color_.Get(index);
}
inline void RandomAbsolutePadImage::set_pad_color(int index, float value) {
  pad_color_.Set(index, value);
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomAbsolutePadImage.pad_color)
}
inline void RandomAbsolutePadImage::add_pad_color(float value) {
  pad_color_.Add(value);
  // @@protoc_insertion_point(field_add:object_detection.protos.RandomAbsolutePadImage.pad_color)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
RandomAbsolutePadImage::pad_color() const {
  // @@protoc_insertion_point(field_list:object_detection.protos.RandomAbsolutePadImage.pad_color)
  return pad_color_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
RandomAbsolutePadImage::mutable_pad_color() {
  // @@protoc_insertion_point(field_mutable_list:object_detection.protos.RandomAbsolutePadImage.pad_color)
  return &pad_color_;
}

// -------------------------------------------------------------------

// RandomCropPadImage

// optional float min_object_covered = 1 [default = 1];
inline bool RandomCropPadImage::has_min_object_covered() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void RandomCropPadImage::clear_min_object_covered() {
  min_object_covered_ = 1;
  _has_bits_[0] &= ~0x00000004u;
}
inline float RandomCropPadImage::min_object_covered() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropPadImage.min_object_covered)
  return min_object_covered_;
}
inline void RandomCropPadImage::set_min_object_covered(float value) {
  _has_bits_[0] |= 0x00000004u;
  min_object_covered_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropPadImage.min_object_covered)
}

// optional float min_aspect_ratio = 2 [default = 0.75];
inline bool RandomCropPadImage::has_min_aspect_ratio() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void RandomCropPadImage::clear_min_aspect_ratio() {
  min_aspect_ratio_ = 0.75f;
  _has_bits_[0] &= ~0x00000008u;
}
inline float RandomCropPadImage::min_aspect_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropPadImage.min_aspect_ratio)
  return min_aspect_ratio_;
}
inline void RandomCropPadImage::set_min_aspect_ratio(float value) {
  _has_bits_[0] |= 0x00000008u;
  min_aspect_ratio_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropPadImage.min_aspect_ratio)
}

// optional float max_aspect_ratio = 3 [default = 1.33];
inline bool RandomCropPadImage::has_max_aspect_ratio() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void RandomCropPadImage::clear_max_aspect_ratio() {
  max_aspect_ratio_ = 1.33f;
  _has_bits_[0] &= ~0x00000010u;
}
inline float RandomCropPadImage::max_aspect_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropPadImage.max_aspect_ratio)
  return max_aspect_ratio_;
}
inline void RandomCropPadImage::set_max_aspect_ratio(float value) {
  _has_bits_[0] |= 0x00000010u;
  max_aspect_ratio_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropPadImage.max_aspect_ratio)
}

// optional float min_area = 4 [default = 0.1];
inline bool RandomCropPadImage::has_min_area() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void RandomCropPadImage::clear_min_area() {
  min_area_ = 0.1f;
  _has_bits_[0] &= ~0x00000020u;
}
inline float RandomCropPadImage::min_area() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropPadImage.min_area)
  return min_area_;
}
inline void RandomCropPadImage::set_min_area(float value) {
  _has_bits_[0] |= 0x00000020u;
  min_area_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropPadImage.min_area)
}

// optional float max_area = 5 [default = 1];
inline bool RandomCropPadImage::has_max_area() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void RandomCropPadImage::clear_max_area() {
  max_area_ = 1;
  _has_bits_[0] &= ~0x00000040u;
}
inline float RandomCropPadImage::max_area() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropPadImage.max_area)
  return max_area_;
}
inline void RandomCropPadImage::set_max_area(float value) {
  _has_bits_[0] |= 0x00000040u;
  max_area_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropPadImage.max_area)
}

// optional float overlap_thresh = 6 [default = 0.3];
inline bool RandomCropPadImage::has_overlap_thresh() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void RandomCropPadImage::clear_overlap_thresh() {
  overlap_thresh_ = 0.3f;
  _has_bits_[0] &= ~0x00000080u;
}
inline float RandomCropPadImage::overlap_thresh() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropPadImage.overlap_thresh)
  return overlap_thresh_;
}
inline void RandomCropPadImage::set_overlap_thresh(float value) {
  _has_bits_[0] |= 0x00000080u;
  overlap_thresh_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropPadImage.overlap_thresh)
}

// optional bool clip_boxes = 11 [default = true];
inline bool RandomCropPadImage::has_clip_boxes() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RandomCropPadImage::clear_clip_boxes() {
  clip_boxes_ = true;
  _has_bits_[0] &= ~0x00000002u;
}
inline bool RandomCropPadImage::clip_boxes() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropPadImage.clip_boxes)
  return clip_boxes_;
}
inline void RandomCropPadImage::set_clip_boxes(bool value) {
  _has_bits_[0] |= 0x00000002u;
  clip_boxes_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropPadImage.clip_boxes)
}

// optional float random_coef = 7 [default = 0];
inline bool RandomCropPadImage::has_random_coef() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RandomCropPadImage::clear_random_coef() {
  random_coef_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline float RandomCropPadImage::random_coef() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropPadImage.random_coef)
  return random_coef_;
}
inline void RandomCropPadImage::set_random_coef(float value) {
  _has_bits_[0] |= 0x00000001u;
  random_coef_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropPadImage.random_coef)
}

// repeated float min_padded_size_ratio = 8;
inline int RandomCropPadImage::min_padded_size_ratio_size() const {
  return min_padded_size_ratio_.size();
}
inline void RandomCropPadImage::clear_min_padded_size_ratio() {
  min_padded_size_ratio_.Clear();
}
inline float RandomCropPadImage::min_padded_size_ratio(int index) const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropPadImage.min_padded_size_ratio)
  return min_padded_size_ratio_.Get(index);
}
inline void RandomCropPadImage::set_min_padded_size_ratio(int index, float value) {
  min_padded_size_ratio_.Set(index, value);
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropPadImage.min_padded_size_ratio)
}
inline void RandomCropPadImage::add_min_padded_size_ratio(float value) {
  min_padded_size_ratio_.Add(value);
  // @@protoc_insertion_point(field_add:object_detection.protos.RandomCropPadImage.min_padded_size_ratio)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
RandomCropPadImage::min_padded_size_ratio() const {
  // @@protoc_insertion_point(field_list:object_detection.protos.RandomCropPadImage.min_padded_size_ratio)
  return min_padded_size_ratio_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
RandomCropPadImage::mutable_min_padded_size_ratio() {
  // @@protoc_insertion_point(field_mutable_list:object_detection.protos.RandomCropPadImage.min_padded_size_ratio)
  return &min_padded_size_ratio_;
}

// repeated float max_padded_size_ratio = 9;
inline int RandomCropPadImage::max_padded_size_ratio_size() const {
  return max_padded_size_ratio_.size();
}
inline void RandomCropPadImage::clear_max_padded_size_ratio() {
  max_padded_size_ratio_.Clear();
}
inline float RandomCropPadImage::max_padded_size_ratio(int index) const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropPadImage.max_padded_size_ratio)
  return max_padded_size_ratio_.Get(index);
}
inline void RandomCropPadImage::set_max_padded_size_ratio(int index, float value) {
  max_padded_size_ratio_.Set(index, value);
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropPadImage.max_padded_size_ratio)
}
inline void RandomCropPadImage::add_max_padded_size_ratio(float value) {
  max_padded_size_ratio_.Add(value);
  // @@protoc_insertion_point(field_add:object_detection.protos.RandomCropPadImage.max_padded_size_ratio)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
RandomCropPadImage::max_padded_size_ratio() const {
  // @@protoc_insertion_point(field_list:object_detection.protos.RandomCropPadImage.max_padded_size_ratio)
  return max_padded_size_ratio_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
RandomCropPadImage::mutable_max_padded_size_ratio() {
  // @@protoc_insertion_point(field_mutable_list:object_detection.protos.RandomCropPadImage.max_padded_size_ratio)
  return &max_padded_size_ratio_;
}

// repeated float pad_color = 10;
inline int RandomCropPadImage::pad_color_size() const {
  return pad_color_.size();
}
inline void RandomCropPadImage::clear_pad_color() {
  pad_color_.Clear();
}
inline float RandomCropPadImage::pad_color(int index) const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropPadImage.pad_color)
  return pad_color_.Get(index);
}
inline void RandomCropPadImage::set_pad_color(int index, float value) {
  pad_color_.Set(index, value);
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropPadImage.pad_color)
}
inline void RandomCropPadImage::add_pad_color(float value) {
  pad_color_.Add(value);
  // @@protoc_insertion_point(field_add:object_detection.protos.RandomCropPadImage.pad_color)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
RandomCropPadImage::pad_color() const {
  // @@protoc_insertion_point(field_list:object_detection.protos.RandomCropPadImage.pad_color)
  return pad_color_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
RandomCropPadImage::mutable_pad_color() {
  // @@protoc_insertion_point(field_mutable_list:object_detection.protos.RandomCropPadImage.pad_color)
  return &pad_color_;
}

// -------------------------------------------------------------------

// RandomCropToAspectRatio

// optional float aspect_ratio = 1 [default = 1];
inline bool RandomCropToAspectRatio::has_aspect_ratio() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RandomCropToAspectRatio::clear_aspect_ratio() {
  aspect_ratio_ = 1;
  _has_bits_[0] &= ~0x00000002u;
}
inline float RandomCropToAspectRatio::aspect_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropToAspectRatio.aspect_ratio)
  return aspect_ratio_;
}
inline void RandomCropToAspectRatio::set_aspect_ratio(float value) {
  _has_bits_[0] |= 0x00000002u;
  aspect_ratio_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropToAspectRatio.aspect_ratio)
}

// optional float overlap_thresh = 2 [default = 0.3];
inline bool RandomCropToAspectRatio::has_overlap_thresh() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void RandomCropToAspectRatio::clear_overlap_thresh() {
  overlap_thresh_ = 0.3f;
  _has_bits_[0] &= ~0x00000004u;
}
inline float RandomCropToAspectRatio::overlap_thresh() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropToAspectRatio.overlap_thresh)
  return overlap_thresh_;
}
inline void RandomCropToAspectRatio::set_overlap_thresh(float value) {
  _has_bits_[0] |= 0x00000004u;
  overlap_thresh_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropToAspectRatio.overlap_thresh)
}

// optional bool clip_boxes = 3 [default = true];
inline bool RandomCropToAspectRatio::has_clip_boxes() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RandomCropToAspectRatio::clear_clip_boxes() {
  clip_boxes_ = true;
  _has_bits_[0] &= ~0x00000001u;
}
inline bool RandomCropToAspectRatio::clip_boxes() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomCropToAspectRatio.clip_boxes)
  return clip_boxes_;
}
inline void RandomCropToAspectRatio::set_clip_boxes(bool value) {
  _has_bits_[0] |= 0x00000001u;
  clip_boxes_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomCropToAspectRatio.clip_boxes)
}

// -------------------------------------------------------------------

// RandomBlackPatches

// optional int32 max_black_patches = 1 [default = 10];
inline bool RandomBlackPatches::has_max_black_patches() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RandomBlackPatches::clear_max_black_patches() {
  max_black_patches_ = 10;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RandomBlackPatches::max_black_patches() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomBlackPatches.max_black_patches)
  return max_black_patches_;
}
inline void RandomBlackPatches::set_max_black_patches(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  max_black_patches_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomBlackPatches.max_black_patches)
}

// optional float probability = 2 [default = 0.5];
inline bool RandomBlackPatches::has_probability() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void RandomBlackPatches::clear_probability() {
  probability_ = 0.5f;
  _has_bits_[0] &= ~0x00000004u;
}
inline float RandomBlackPatches::probability() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomBlackPatches.probability)
  return probability_;
}
inline void RandomBlackPatches::set_probability(float value) {
  _has_bits_[0] |= 0x00000004u;
  probability_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomBlackPatches.probability)
}

// optional float size_to_image_ratio = 3 [default = 0.1];
inline bool RandomBlackPatches::has_size_to_image_ratio() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RandomBlackPatches::clear_size_to_image_ratio() {
  size_to_image_ratio_ = 0.1f;
  _has_bits_[0] &= ~0x00000001u;
}
inline float RandomBlackPatches::size_to_image_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomBlackPatches.size_to_image_ratio)
  return size_to_image_ratio_;
}
inline void RandomBlackPatches::set_size_to_image_ratio(float value) {
  _has_bits_[0] |= 0x00000001u;
  size_to_image_ratio_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomBlackPatches.size_to_image_ratio)
}

// -------------------------------------------------------------------

// RandomResizeMethod

// optional int32 target_height = 1;
inline bool RandomResizeMethod::has_target_height() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RandomResizeMethod::clear_target_height() {
  target_height_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RandomResizeMethod::target_height() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomResizeMethod.target_height)
  return target_height_;
}
inline void RandomResizeMethod::set_target_height(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  target_height_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomResizeMethod.target_height)
}

// optional int32 target_width = 2;
inline bool RandomResizeMethod::has_target_width() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RandomResizeMethod::clear_target_width() {
  target_width_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RandomResizeMethod::target_width() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomResizeMethod.target_width)
  return target_width_;
}
inline void RandomResizeMethod::set_target_width(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  target_width_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomResizeMethod.target_width)
}

// -------------------------------------------------------------------

// RGBtoGray

// -------------------------------------------------------------------

// ScaleBoxesToPixelCoordinates

// -------------------------------------------------------------------

// ResizeImage

// optional int32 new_height = 1;
inline bool ResizeImage::has_new_height() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ResizeImage::clear_new_height() {
  new_height_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 ResizeImage::new_height() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.ResizeImage.new_height)
  return new_height_;
}
inline void ResizeImage::set_new_height(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  new_height_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.ResizeImage.new_height)
}

// optional int32 new_width = 2;
inline bool ResizeImage::has_new_width() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void ResizeImage::clear_new_width() {
  new_width_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 ResizeImage::new_width() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.ResizeImage.new_width)
  return new_width_;
}
inline void ResizeImage::set_new_width(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  new_width_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.ResizeImage.new_width)
}

// optional .object_detection.protos.ResizeImage.Method method = 3 [default = BILINEAR];
inline bool ResizeImage::has_method() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void ResizeImage::clear_method() {
  method_ = 3;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::object_detection::protos::ResizeImage_Method ResizeImage::method() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.ResizeImage.method)
  return static_cast< ::object_detection::protos::ResizeImage_Method >(method_);
}
inline void ResizeImage::set_method(::object_detection::protos::ResizeImage_Method value) {
  assert(::object_detection::protos::ResizeImage_Method_IsValid(value));
  _has_bits_[0] |= 0x00000004u;
  method_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.ResizeImage.method)
}

// -------------------------------------------------------------------

// SubtractChannelMean

// repeated float means = 1;
inline int SubtractChannelMean::means_size() const {
  return means_.size();
}
inline void SubtractChannelMean::clear_means() {
  means_.Clear();
}
inline float SubtractChannelMean::means(int index) const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SubtractChannelMean.means)
  return means_.Get(index);
}
inline void SubtractChannelMean::set_means(int index, float value) {
  means_.Set(index, value);
  // @@protoc_insertion_point(field_set:object_detection.protos.SubtractChannelMean.means)
}
inline void SubtractChannelMean::add_means(float value) {
  means_.Add(value);
  // @@protoc_insertion_point(field_add:object_detection.protos.SubtractChannelMean.means)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
SubtractChannelMean::means() const {
  // @@protoc_insertion_point(field_list:object_detection.protos.SubtractChannelMean.means)
  return means_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
SubtractChannelMean::mutable_means() {
  // @@protoc_insertion_point(field_mutable_list:object_detection.protos.SubtractChannelMean.means)
  return &means_;
}

// -------------------------------------------------------------------

// SSDRandomCropOperation

// optional float min_object_covered = 1;
inline bool SSDRandomCropOperation::has_min_object_covered() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void SSDRandomCropOperation::clear_min_object_covered() {
  min_object_covered_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline float SSDRandomCropOperation::min_object_covered() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropOperation.min_object_covered)
  return min_object_covered_;
}
inline void SSDRandomCropOperation::set_min_object_covered(float value) {
  _has_bits_[0] |= 0x00000001u;
  min_object_covered_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropOperation.min_object_covered)
}

// optional float min_aspect_ratio = 2;
inline bool SSDRandomCropOperation::has_min_aspect_ratio() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void SSDRandomCropOperation::clear_min_aspect_ratio() {
  min_aspect_ratio_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline float SSDRandomCropOperation::min_aspect_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropOperation.min_aspect_ratio)
  return min_aspect_ratio_;
}
inline void SSDRandomCropOperation::set_min_aspect_ratio(float value) {
  _has_bits_[0] |= 0x00000002u;
  min_aspect_ratio_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropOperation.min_aspect_ratio)
}

// optional float max_aspect_ratio = 3;
inline bool SSDRandomCropOperation::has_max_aspect_ratio() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void SSDRandomCropOperation::clear_max_aspect_ratio() {
  max_aspect_ratio_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline float SSDRandomCropOperation::max_aspect_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropOperation.max_aspect_ratio)
  return max_aspect_ratio_;
}
inline void SSDRandomCropOperation::set_max_aspect_ratio(float value) {
  _has_bits_[0] |= 0x00000004u;
  max_aspect_ratio_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropOperation.max_aspect_ratio)
}

// optional float min_area = 4;
inline bool SSDRandomCropOperation::has_min_area() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void SSDRandomCropOperation::clear_min_area() {
  min_area_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline float SSDRandomCropOperation::min_area() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropOperation.min_area)
  return min_area_;
}
inline void SSDRandomCropOperation::set_min_area(float value) {
  _has_bits_[0] |= 0x00000008u;
  min_area_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropOperation.min_area)
}

// optional float max_area = 5;
inline bool SSDRandomCropOperation::has_max_area() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void SSDRandomCropOperation::clear_max_area() {
  max_area_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline float SSDRandomCropOperation::max_area() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropOperation.max_area)
  return max_area_;
}
inline void SSDRandomCropOperation::set_max_area(float value) {
  _has_bits_[0] |= 0x00000010u;
  max_area_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropOperation.max_area)
}

// optional float overlap_thresh = 6;
inline bool SSDRandomCropOperation::has_overlap_thresh() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void SSDRandomCropOperation::clear_overlap_thresh() {
  overlap_thresh_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline float SSDRandomCropOperation::overlap_thresh() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropOperation.overlap_thresh)
  return overlap_thresh_;
}
inline void SSDRandomCropOperation::set_overlap_thresh(float value) {
  _has_bits_[0] |= 0x00000020u;
  overlap_thresh_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropOperation.overlap_thresh)
}

// optional bool clip_boxes = 8 [default = true];
inline bool SSDRandomCropOperation::has_clip_boxes() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void SSDRandomCropOperation::clear_clip_boxes() {
  clip_boxes_ = true;
  _has_bits_[0] &= ~0x00000080u;
}
inline bool SSDRandomCropOperation::clip_boxes() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropOperation.clip_boxes)
  return clip_boxes_;
}
inline void SSDRandomCropOperation::set_clip_boxes(bool value) {
  _has_bits_[0] |= 0x00000080u;
  clip_boxes_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropOperation.clip_boxes)
}

// optional float random_coef = 7;
inline bool SSDRandomCropOperation::has_random_coef() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void SSDRandomCropOperation::clear_random_coef() {
  random_coef_ = 0;
  _has_bits_[0] &= ~0x00000040u;
}
inline float SSDRandomCropOperation::random_coef() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropOperation.random_coef)
  return random_coef_;
}
inline void SSDRandomCropOperation::set_random_coef(float value) {
  _has_bits_[0] |= 0x00000040u;
  random_coef_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropOperation.random_coef)
}

// -------------------------------------------------------------------

// SSDRandomCrop

// repeated .object_detection.protos.SSDRandomCropOperation operations = 1;
inline int SSDRandomCrop::operations_size() const {
  return operations_.size();
}
inline void SSDRandomCrop::clear_operations() {
  operations_.Clear();
}
inline ::object_detection::protos::SSDRandomCropOperation* SSDRandomCrop::mutable_operations(int index) {
  // @@protoc_insertion_point(field_mutable:object_detection.protos.SSDRandomCrop.operations)
  return operations_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropOperation >*
SSDRandomCrop::mutable_operations() {
  // @@protoc_insertion_point(field_mutable_list:object_detection.protos.SSDRandomCrop.operations)
  return &operations_;
}
inline const ::object_detection::protos::SSDRandomCropOperation& SSDRandomCrop::operations(int index) const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCrop.operations)
  return operations_.Get(index);
}
inline ::object_detection::protos::SSDRandomCropOperation* SSDRandomCrop::add_operations() {
  // @@protoc_insertion_point(field_add:object_detection.protos.SSDRandomCrop.operations)
  return operations_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropOperation >&
SSDRandomCrop::operations() const {
  // @@protoc_insertion_point(field_list:object_detection.protos.SSDRandomCrop.operations)
  return operations_;
}

// -------------------------------------------------------------------

// SSDRandomCropPadOperation

// optional float min_object_covered = 1;
inline bool SSDRandomCropPadOperation::has_min_object_covered() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void SSDRandomCropPadOperation::clear_min_object_covered() {
  min_object_covered_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline float SSDRandomCropPadOperation::min_object_covered() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadOperation.min_object_covered)
  return min_object_covered_;
}
inline void SSDRandomCropPadOperation::set_min_object_covered(float value) {
  _has_bits_[0] |= 0x00000001u;
  min_object_covered_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadOperation.min_object_covered)
}

// optional float min_aspect_ratio = 2;
inline bool SSDRandomCropPadOperation::has_min_aspect_ratio() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void SSDRandomCropPadOperation::clear_min_aspect_ratio() {
  min_aspect_ratio_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline float SSDRandomCropPadOperation::min_aspect_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadOperation.min_aspect_ratio)
  return min_aspect_ratio_;
}
inline void SSDRandomCropPadOperation::set_min_aspect_ratio(float value) {
  _has_bits_[0] |= 0x00000002u;
  min_aspect_ratio_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadOperation.min_aspect_ratio)
}

// optional float max_aspect_ratio = 3;
inline bool SSDRandomCropPadOperation::has_max_aspect_ratio() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void SSDRandomCropPadOperation::clear_max_aspect_ratio() {
  max_aspect_ratio_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline float SSDRandomCropPadOperation::max_aspect_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadOperation.max_aspect_ratio)
  return max_aspect_ratio_;
}
inline void SSDRandomCropPadOperation::set_max_aspect_ratio(float value) {
  _has_bits_[0] |= 0x00000004u;
  max_aspect_ratio_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadOperation.max_aspect_ratio)
}

// optional float min_area = 4;
inline bool SSDRandomCropPadOperation::has_min_area() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void SSDRandomCropPadOperation::clear_min_area() {
  min_area_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline float SSDRandomCropPadOperation::min_area() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadOperation.min_area)
  return min_area_;
}
inline void SSDRandomCropPadOperation::set_min_area(float value) {
  _has_bits_[0] |= 0x00000008u;
  min_area_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadOperation.min_area)
}

// optional float max_area = 5;
inline bool SSDRandomCropPadOperation::has_max_area() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void SSDRandomCropPadOperation::clear_max_area() {
  max_area_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline float SSDRandomCropPadOperation::max_area() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadOperation.max_area)
  return max_area_;
}
inline void SSDRandomCropPadOperation::set_max_area(float value) {
  _has_bits_[0] |= 0x00000010u;
  max_area_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadOperation.max_area)
}

// optional float overlap_thresh = 6;
inline bool SSDRandomCropPadOperation::has_overlap_thresh() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void SSDRandomCropPadOperation::clear_overlap_thresh() {
  overlap_thresh_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline float SSDRandomCropPadOperation::overlap_thresh() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadOperation.overlap_thresh)
  return overlap_thresh_;
}
inline void SSDRandomCropPadOperation::set_overlap_thresh(float value) {
  _has_bits_[0] |= 0x00000020u;
  overlap_thresh_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadOperation.overlap_thresh)
}

// optional bool clip_boxes = 13 [default = true];
inline bool SSDRandomCropPadOperation::has_clip_boxes() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void SSDRandomCropPadOperation::clear_clip_boxes() {
  clip_boxes_ = true;
  _has_bits_[0] &= ~0x00000400u;
}
inline bool SSDRandomCropPadOperation::clip_boxes() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadOperation.clip_boxes)
  return clip_boxes_;
}
inline void SSDRandomCropPadOperation::set_clip_boxes(bool value) {
  _has_bits_[0] |= 0x00000400u;
  clip_boxes_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadOperation.clip_boxes)
}

// optional float random_coef = 7;
inline bool SSDRandomCropPadOperation::has_random_coef() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void SSDRandomCropPadOperation::clear_random_coef() {
  random_coef_ = 0;
  _has_bits_[0] &= ~0x00000040u;
}
inline float SSDRandomCropPadOperation::random_coef() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadOperation.random_coef)
  return random_coef_;
}
inline void SSDRandomCropPadOperation::set_random_coef(float value) {
  _has_bits_[0] |= 0x00000040u;
  random_coef_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadOperation.random_coef)
}

// repeated float min_padded_size_ratio = 8;
inline int SSDRandomCropPadOperation::min_padded_size_ratio_size() const {
  return min_padded_size_ratio_.size();
}
inline void SSDRandomCropPadOperation::clear_min_padded_size_ratio() {
  min_padded_size_ratio_.Clear();
}
inline float SSDRandomCropPadOperation::min_padded_size_ratio(int index) const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadOperation.min_padded_size_ratio)
  return min_padded_size_ratio_.Get(index);
}
inline void SSDRandomCropPadOperation::set_min_padded_size_ratio(int index, float value) {
  min_padded_size_ratio_.Set(index, value);
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadOperation.min_padded_size_ratio)
}
inline void SSDRandomCropPadOperation::add_min_padded_size_ratio(float value) {
  min_padded_size_ratio_.Add(value);
  // @@protoc_insertion_point(field_add:object_detection.protos.SSDRandomCropPadOperation.min_padded_size_ratio)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
SSDRandomCropPadOperation::min_padded_size_ratio() const {
  // @@protoc_insertion_point(field_list:object_detection.protos.SSDRandomCropPadOperation.min_padded_size_ratio)
  return min_padded_size_ratio_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
SSDRandomCropPadOperation::mutable_min_padded_size_ratio() {
  // @@protoc_insertion_point(field_mutable_list:object_detection.protos.SSDRandomCropPadOperation.min_padded_size_ratio)
  return &min_padded_size_ratio_;
}

// repeated float max_padded_size_ratio = 9;
inline int SSDRandomCropPadOperation::max_padded_size_ratio_size() const {
  return max_padded_size_ratio_.size();
}
inline void SSDRandomCropPadOperation::clear_max_padded_size_ratio() {
  max_padded_size_ratio_.Clear();
}
inline float SSDRandomCropPadOperation::max_padded_size_ratio(int index) const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadOperation.max_padded_size_ratio)
  return max_padded_size_ratio_.Get(index);
}
inline void SSDRandomCropPadOperation::set_max_padded_size_ratio(int index, float value) {
  max_padded_size_ratio_.Set(index, value);
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadOperation.max_padded_size_ratio)
}
inline void SSDRandomCropPadOperation::add_max_padded_size_ratio(float value) {
  max_padded_size_ratio_.Add(value);
  // @@protoc_insertion_point(field_add:object_detection.protos.SSDRandomCropPadOperation.max_padded_size_ratio)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
SSDRandomCropPadOperation::max_padded_size_ratio() const {
  // @@protoc_insertion_point(field_list:object_detection.protos.SSDRandomCropPadOperation.max_padded_size_ratio)
  return max_padded_size_ratio_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
SSDRandomCropPadOperation::mutable_max_padded_size_ratio() {
  // @@protoc_insertion_point(field_mutable_list:object_detection.protos.SSDRandomCropPadOperation.max_padded_size_ratio)
  return &max_padded_size_ratio_;
}

// optional float pad_color_r = 10;
inline bool SSDRandomCropPadOperation::has_pad_color_r() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void SSDRandomCropPadOperation::clear_pad_color_r() {
  pad_color_r_ = 0;
  _has_bits_[0] &= ~0x00000080u;
}
inline float SSDRandomCropPadOperation::pad_color_r() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadOperation.pad_color_r)
  return pad_color_r_;
}
inline void SSDRandomCropPadOperation::set_pad_color_r(float value) {
  _has_bits_[0] |= 0x00000080u;
  pad_color_r_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadOperation.pad_color_r)
}

// optional float pad_color_g = 11;
inline bool SSDRandomCropPadOperation::has_pad_color_g() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void SSDRandomCropPadOperation::clear_pad_color_g() {
  pad_color_g_ = 0;
  _has_bits_[0] &= ~0x00000100u;
}
inline float SSDRandomCropPadOperation::pad_color_g() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadOperation.pad_color_g)
  return pad_color_g_;
}
inline void SSDRandomCropPadOperation::set_pad_color_g(float value) {
  _has_bits_[0] |= 0x00000100u;
  pad_color_g_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadOperation.pad_color_g)
}

// optional float pad_color_b = 12;
inline bool SSDRandomCropPadOperation::has_pad_color_b() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void SSDRandomCropPadOperation::clear_pad_color_b() {
  pad_color_b_ = 0;
  _has_bits_[0] &= ~0x00000200u;
}
inline float SSDRandomCropPadOperation::pad_color_b() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadOperation.pad_color_b)
  return pad_color_b_;
}
inline void SSDRandomCropPadOperation::set_pad_color_b(float value) {
  _has_bits_[0] |= 0x00000200u;
  pad_color_b_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadOperation.pad_color_b)
}

// -------------------------------------------------------------------

// SSDRandomCropPad

// repeated .object_detection.protos.SSDRandomCropPadOperation operations = 1;
inline int SSDRandomCropPad::operations_size() const {
  return operations_.size();
}
inline void SSDRandomCropPad::clear_operations() {
  operations_.Clear();
}
inline ::object_detection::protos::SSDRandomCropPadOperation* SSDRandomCropPad::mutable_operations(int index) {
  // @@protoc_insertion_point(field_mutable:object_detection.protos.SSDRandomCropPad.operations)
  return operations_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropPadOperation >*
SSDRandomCropPad::mutable_operations() {
  // @@protoc_insertion_point(field_mutable_list:object_detection.protos.SSDRandomCropPad.operations)
  return &operations_;
}
inline const ::object_detection::protos::SSDRandomCropPadOperation& SSDRandomCropPad::operations(int index) const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPad.operations)
  return operations_.Get(index);
}
inline ::object_detection::protos::SSDRandomCropPadOperation* SSDRandomCropPad::add_operations() {
  // @@protoc_insertion_point(field_add:object_detection.protos.SSDRandomCropPad.operations)
  return operations_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropPadOperation >&
SSDRandomCropPad::operations() const {
  // @@protoc_insertion_point(field_list:object_detection.protos.SSDRandomCropPad.operations)
  return operations_;
}

// -------------------------------------------------------------------

// SSDRandomCropFixedAspectRatioOperation

// optional float min_object_covered = 1;
inline bool SSDRandomCropFixedAspectRatioOperation::has_min_object_covered() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void SSDRandomCropFixedAspectRatioOperation::clear_min_object_covered() {
  min_object_covered_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline float SSDRandomCropFixedAspectRatioOperation::min_object_covered() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropFixedAspectRatioOperation.min_object_covered)
  return min_object_covered_;
}
inline void SSDRandomCropFixedAspectRatioOperation::set_min_object_covered(float value) {
  _has_bits_[0] |= 0x00000001u;
  min_object_covered_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropFixedAspectRatioOperation.min_object_covered)
}

// optional float min_area = 4;
inline bool SSDRandomCropFixedAspectRatioOperation::has_min_area() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void SSDRandomCropFixedAspectRatioOperation::clear_min_area() {
  min_area_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline float SSDRandomCropFixedAspectRatioOperation::min_area() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropFixedAspectRatioOperation.min_area)
  return min_area_;
}
inline void SSDRandomCropFixedAspectRatioOperation::set_min_area(float value) {
  _has_bits_[0] |= 0x00000002u;
  min_area_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropFixedAspectRatioOperation.min_area)
}

// optional float max_area = 5;
inline bool SSDRandomCropFixedAspectRatioOperation::has_max_area() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void SSDRandomCropFixedAspectRatioOperation::clear_max_area() {
  max_area_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline float SSDRandomCropFixedAspectRatioOperation::max_area() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropFixedAspectRatioOperation.max_area)
  return max_area_;
}
inline void SSDRandomCropFixedAspectRatioOperation::set_max_area(float value) {
  _has_bits_[0] |= 0x00000004u;
  max_area_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropFixedAspectRatioOperation.max_area)
}

// optional float overlap_thresh = 6;
inline bool SSDRandomCropFixedAspectRatioOperation::has_overlap_thresh() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void SSDRandomCropFixedAspectRatioOperation::clear_overlap_thresh() {
  overlap_thresh_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline float SSDRandomCropFixedAspectRatioOperation::overlap_thresh() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropFixedAspectRatioOperation.overlap_thresh)
  return overlap_thresh_;
}
inline void SSDRandomCropFixedAspectRatioOperation::set_overlap_thresh(float value) {
  _has_bits_[0] |= 0x00000008u;
  overlap_thresh_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropFixedAspectRatioOperation.overlap_thresh)
}

// optional bool clip_boxes = 8 [default = true];
inline bool SSDRandomCropFixedAspectRatioOperation::has_clip_boxes() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void SSDRandomCropFixedAspectRatioOperation::clear_clip_boxes() {
  clip_boxes_ = true;
  _has_bits_[0] &= ~0x00000020u;
}
inline bool SSDRandomCropFixedAspectRatioOperation::clip_boxes() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropFixedAspectRatioOperation.clip_boxes)
  return clip_boxes_;
}
inline void SSDRandomCropFixedAspectRatioOperation::set_clip_boxes(bool value) {
  _has_bits_[0] |= 0x00000020u;
  clip_boxes_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropFixedAspectRatioOperation.clip_boxes)
}

// optional float random_coef = 7;
inline bool SSDRandomCropFixedAspectRatioOperation::has_random_coef() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void SSDRandomCropFixedAspectRatioOperation::clear_random_coef() {
  random_coef_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline float SSDRandomCropFixedAspectRatioOperation::random_coef() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropFixedAspectRatioOperation.random_coef)
  return random_coef_;
}
inline void SSDRandomCropFixedAspectRatioOperation::set_random_coef(float value) {
  _has_bits_[0] |= 0x00000010u;
  random_coef_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropFixedAspectRatioOperation.random_coef)
}

// -------------------------------------------------------------------

// SSDRandomCropFixedAspectRatio

// repeated .object_detection.protos.SSDRandomCropFixedAspectRatioOperation operations = 1;
inline int SSDRandomCropFixedAspectRatio::operations_size() const {
  return operations_.size();
}
inline void SSDRandomCropFixedAspectRatio::clear_operations() {
  operations_.Clear();
}
inline ::object_detection::protos::SSDRandomCropFixedAspectRatioOperation* SSDRandomCropFixedAspectRatio::mutable_operations(int index) {
  // @@protoc_insertion_point(field_mutable:object_detection.protos.SSDRandomCropFixedAspectRatio.operations)
  return operations_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropFixedAspectRatioOperation >*
SSDRandomCropFixedAspectRatio::mutable_operations() {
  // @@protoc_insertion_point(field_mutable_list:object_detection.protos.SSDRandomCropFixedAspectRatio.operations)
  return &operations_;
}
inline const ::object_detection::protos::SSDRandomCropFixedAspectRatioOperation& SSDRandomCropFixedAspectRatio::operations(int index) const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropFixedAspectRatio.operations)
  return operations_.Get(index);
}
inline ::object_detection::protos::SSDRandomCropFixedAspectRatioOperation* SSDRandomCropFixedAspectRatio::add_operations() {
  // @@protoc_insertion_point(field_add:object_detection.protos.SSDRandomCropFixedAspectRatio.operations)
  return operations_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropFixedAspectRatioOperation >&
SSDRandomCropFixedAspectRatio::operations() const {
  // @@protoc_insertion_point(field_list:object_detection.protos.SSDRandomCropFixedAspectRatio.operations)
  return operations_;
}

// optional float aspect_ratio = 2 [default = 1];
inline bool SSDRandomCropFixedAspectRatio::has_aspect_ratio() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void SSDRandomCropFixedAspectRatio::clear_aspect_ratio() {
  aspect_ratio_ = 1;
  _has_bits_[0] &= ~0x00000001u;
}
inline float SSDRandomCropFixedAspectRatio::aspect_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropFixedAspectRatio.aspect_ratio)
  return aspect_ratio_;
}
inline void SSDRandomCropFixedAspectRatio::set_aspect_ratio(float value) {
  _has_bits_[0] |= 0x00000001u;
  aspect_ratio_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropFixedAspectRatio.aspect_ratio)
}

// -------------------------------------------------------------------

// SSDRandomCropPadFixedAspectRatioOperation

// optional float min_object_covered = 1;
inline bool SSDRandomCropPadFixedAspectRatioOperation::has_min_object_covered() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void SSDRandomCropPadFixedAspectRatioOperation::clear_min_object_covered() {
  min_object_covered_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline float SSDRandomCropPadFixedAspectRatioOperation::min_object_covered() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation.min_object_covered)
  return min_object_covered_;
}
inline void SSDRandomCropPadFixedAspectRatioOperation::set_min_object_covered(float value) {
  _has_bits_[0] |= 0x00000001u;
  min_object_covered_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation.min_object_covered)
}

// optional float min_aspect_ratio = 2;
inline bool SSDRandomCropPadFixedAspectRatioOperation::has_min_aspect_ratio() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void SSDRandomCropPadFixedAspectRatioOperation::clear_min_aspect_ratio() {
  min_aspect_ratio_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline float SSDRandomCropPadFixedAspectRatioOperation::min_aspect_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation.min_aspect_ratio)
  return min_aspect_ratio_;
}
inline void SSDRandomCropPadFixedAspectRatioOperation::set_min_aspect_ratio(float value) {
  _has_bits_[0] |= 0x00000002u;
  min_aspect_ratio_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation.min_aspect_ratio)
}

// optional float max_aspect_ratio = 3;
inline bool SSDRandomCropPadFixedAspectRatioOperation::has_max_aspect_ratio() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void SSDRandomCropPadFixedAspectRatioOperation::clear_max_aspect_ratio() {
  max_aspect_ratio_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline float SSDRandomCropPadFixedAspectRatioOperation::max_aspect_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation.max_aspect_ratio)
  return max_aspect_ratio_;
}
inline void SSDRandomCropPadFixedAspectRatioOperation::set_max_aspect_ratio(float value) {
  _has_bits_[0] |= 0x00000004u;
  max_aspect_ratio_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation.max_aspect_ratio)
}

// optional float min_area = 4;
inline bool SSDRandomCropPadFixedAspectRatioOperation::has_min_area() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void SSDRandomCropPadFixedAspectRatioOperation::clear_min_area() {
  min_area_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline float SSDRandomCropPadFixedAspectRatioOperation::min_area() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation.min_area)
  return min_area_;
}
inline void SSDRandomCropPadFixedAspectRatioOperation::set_min_area(float value) {
  _has_bits_[0] |= 0x00000008u;
  min_area_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation.min_area)
}

// optional float max_area = 5;
inline bool SSDRandomCropPadFixedAspectRatioOperation::has_max_area() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void SSDRandomCropPadFixedAspectRatioOperation::clear_max_area() {
  max_area_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline float SSDRandomCropPadFixedAspectRatioOperation::max_area() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation.max_area)
  return max_area_;
}
inline void SSDRandomCropPadFixedAspectRatioOperation::set_max_area(float value) {
  _has_bits_[0] |= 0x00000010u;
  max_area_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation.max_area)
}

// optional float overlap_thresh = 6;
inline bool SSDRandomCropPadFixedAspectRatioOperation::has_overlap_thresh() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void SSDRandomCropPadFixedAspectRatioOperation::clear_overlap_thresh() {
  overlap_thresh_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline float SSDRandomCropPadFixedAspectRatioOperation::overlap_thresh() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation.overlap_thresh)
  return overlap_thresh_;
}
inline void SSDRandomCropPadFixedAspectRatioOperation::set_overlap_thresh(float value) {
  _has_bits_[0] |= 0x00000020u;
  overlap_thresh_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation.overlap_thresh)
}

// optional bool clip_boxes = 8 [default = true];
inline bool SSDRandomCropPadFixedAspectRatioOperation::has_clip_boxes() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void SSDRandomCropPadFixedAspectRatioOperation::clear_clip_boxes() {
  clip_boxes_ = true;
  _has_bits_[0] &= ~0x00000080u;
}
inline bool SSDRandomCropPadFixedAspectRatioOperation::clip_boxes() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation.clip_boxes)
  return clip_boxes_;
}
inline void SSDRandomCropPadFixedAspectRatioOperation::set_clip_boxes(bool value) {
  _has_bits_[0] |= 0x00000080u;
  clip_boxes_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation.clip_boxes)
}

// optional float random_coef = 7;
inline bool SSDRandomCropPadFixedAspectRatioOperation::has_random_coef() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void SSDRandomCropPadFixedAspectRatioOperation::clear_random_coef() {
  random_coef_ = 0;
  _has_bits_[0] &= ~0x00000040u;
}
inline float SSDRandomCropPadFixedAspectRatioOperation::random_coef() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation.random_coef)
  return random_coef_;
}
inline void SSDRandomCropPadFixedAspectRatioOperation::set_random_coef(float value) {
  _has_bits_[0] |= 0x00000040u;
  random_coef_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation.random_coef)
}

// -------------------------------------------------------------------

// SSDRandomCropPadFixedAspectRatio

// repeated .object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation operations = 1;
inline int SSDRandomCropPadFixedAspectRatio::operations_size() const {
  return operations_.size();
}
inline void SSDRandomCropPadFixedAspectRatio::clear_operations() {
  operations_.Clear();
}
inline ::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation* SSDRandomCropPadFixedAspectRatio::mutable_operations(int index) {
  // @@protoc_insertion_point(field_mutable:object_detection.protos.SSDRandomCropPadFixedAspectRatio.operations)
  return operations_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation >*
SSDRandomCropPadFixedAspectRatio::mutable_operations() {
  // @@protoc_insertion_point(field_mutable_list:object_detection.protos.SSDRandomCropPadFixedAspectRatio.operations)
  return &operations_;
}
inline const ::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation& SSDRandomCropPadFixedAspectRatio::operations(int index) const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadFixedAspectRatio.operations)
  return operations_.Get(index);
}
inline ::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation* SSDRandomCropPadFixedAspectRatio::add_operations() {
  // @@protoc_insertion_point(field_add:object_detection.protos.SSDRandomCropPadFixedAspectRatio.operations)
  return operations_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation >&
SSDRandomCropPadFixedAspectRatio::operations() const {
  // @@protoc_insertion_point(field_list:object_detection.protos.SSDRandomCropPadFixedAspectRatio.operations)
  return operations_;
}

// optional float aspect_ratio = 2 [default = 1];
inline bool SSDRandomCropPadFixedAspectRatio::has_aspect_ratio() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void SSDRandomCropPadFixedAspectRatio::clear_aspect_ratio() {
  aspect_ratio_ = 1;
  _has_bits_[0] &= ~0x00000001u;
}
inline float SSDRandomCropPadFixedAspectRatio::aspect_ratio() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadFixedAspectRatio.aspect_ratio)
  return aspect_ratio_;
}
inline void SSDRandomCropPadFixedAspectRatio::set_aspect_ratio(float value) {
  _has_bits_[0] |= 0x00000001u;
  aspect_ratio_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadFixedAspectRatio.aspect_ratio)
}

// repeated float min_padded_size_ratio = 3;
inline int SSDRandomCropPadFixedAspectRatio::min_padded_size_ratio_size() const {
  return min_padded_size_ratio_.size();
}
inline void SSDRandomCropPadFixedAspectRatio::clear_min_padded_size_ratio() {
  min_padded_size_ratio_.Clear();
}
inline float SSDRandomCropPadFixedAspectRatio::min_padded_size_ratio(int index) const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadFixedAspectRatio.min_padded_size_ratio)
  return min_padded_size_ratio_.Get(index);
}
inline void SSDRandomCropPadFixedAspectRatio::set_min_padded_size_ratio(int index, float value) {
  min_padded_size_ratio_.Set(index, value);
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadFixedAspectRatio.min_padded_size_ratio)
}
inline void SSDRandomCropPadFixedAspectRatio::add_min_padded_size_ratio(float value) {
  min_padded_size_ratio_.Add(value);
  // @@protoc_insertion_point(field_add:object_detection.protos.SSDRandomCropPadFixedAspectRatio.min_padded_size_ratio)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
SSDRandomCropPadFixedAspectRatio::min_padded_size_ratio() const {
  // @@protoc_insertion_point(field_list:object_detection.protos.SSDRandomCropPadFixedAspectRatio.min_padded_size_ratio)
  return min_padded_size_ratio_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
SSDRandomCropPadFixedAspectRatio::mutable_min_padded_size_ratio() {
  // @@protoc_insertion_point(field_mutable_list:object_detection.protos.SSDRandomCropPadFixedAspectRatio.min_padded_size_ratio)
  return &min_padded_size_ratio_;
}

// repeated float max_padded_size_ratio = 4;
inline int SSDRandomCropPadFixedAspectRatio::max_padded_size_ratio_size() const {
  return max_padded_size_ratio_.size();
}
inline void SSDRandomCropPadFixedAspectRatio::clear_max_padded_size_ratio() {
  max_padded_size_ratio_.Clear();
}
inline float SSDRandomCropPadFixedAspectRatio::max_padded_size_ratio(int index) const {
  // @@protoc_insertion_point(field_get:object_detection.protos.SSDRandomCropPadFixedAspectRatio.max_padded_size_ratio)
  return max_padded_size_ratio_.Get(index);
}
inline void SSDRandomCropPadFixedAspectRatio::set_max_padded_size_ratio(int index, float value) {
  max_padded_size_ratio_.Set(index, value);
  // @@protoc_insertion_point(field_set:object_detection.protos.SSDRandomCropPadFixedAspectRatio.max_padded_size_ratio)
}
inline void SSDRandomCropPadFixedAspectRatio::add_max_padded_size_ratio(float value) {
  max_padded_size_ratio_.Add(value);
  // @@protoc_insertion_point(field_add:object_detection.protos.SSDRandomCropPadFixedAspectRatio.max_padded_size_ratio)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
SSDRandomCropPadFixedAspectRatio::max_padded_size_ratio() const {
  // @@protoc_insertion_point(field_list:object_detection.protos.SSDRandomCropPadFixedAspectRatio.max_padded_size_ratio)
  return max_padded_size_ratio_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
SSDRandomCropPadFixedAspectRatio::mutable_max_padded_size_ratio() {
  // @@protoc_insertion_point(field_mutable_list:object_detection.protos.SSDRandomCropPadFixedAspectRatio.max_padded_size_ratio)
  return &max_padded_size_ratio_;
}

// -------------------------------------------------------------------

// ConvertClassLogitsToSoftmax

// optional float temperature = 1 [default = 1];
inline bool ConvertClassLogitsToSoftmax::has_temperature() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ConvertClassLogitsToSoftmax::clear_temperature() {
  temperature_ = 1;
  _has_bits_[0] &= ~0x00000001u;
}
inline float ConvertClassLogitsToSoftmax::temperature() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.ConvertClassLogitsToSoftmax.temperature)
  return temperature_;
}
inline void ConvertClassLogitsToSoftmax::set_temperature(float value) {
  _has_bits_[0] |= 0x00000001u;
  temperature_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.ConvertClassLogitsToSoftmax.temperature)
}

// -------------------------------------------------------------------

// RandomSelfConcatImage

// optional float concat_vertical_probability = 1 [default = 0.1];
inline bool RandomSelfConcatImage::has_concat_vertical_probability() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RandomSelfConcatImage::clear_concat_vertical_probability() {
  concat_vertical_probability_ = 0.1f;
  _has_bits_[0] &= ~0x00000001u;
}
inline float RandomSelfConcatImage::concat_vertical_probability() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomSelfConcatImage.concat_vertical_probability)
  return concat_vertical_probability_;
}
inline void RandomSelfConcatImage::set_concat_vertical_probability(float value) {
  _has_bits_[0] |= 0x00000001u;
  concat_vertical_probability_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomSelfConcatImage.concat_vertical_probability)
}

// optional float concat_horizontal_probability = 2 [default = 0.1];
inline bool RandomSelfConcatImage::has_concat_horizontal_probability() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RandomSelfConcatImage::clear_concat_horizontal_probability() {
  concat_horizontal_probability_ = 0.1f;
  _has_bits_[0] &= ~0x00000002u;
}
inline float RandomSelfConcatImage::concat_horizontal_probability() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RandomSelfConcatImage.concat_horizontal_probability)
  return concat_horizontal_probability_;
}
inline void RandomSelfConcatImage::set_concat_horizontal_probability(float value) {
  _has_bits_[0] |= 0x00000002u;
  concat_horizontal_probability_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RandomSelfConcatImage.concat_horizontal_probability)
}

// -------------------------------------------------------------------

// AutoAugmentImage

// optional string policy_name = 1 [default = "v0"];
inline bool AutoAugmentImage::has_policy_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void AutoAugmentImage::clear_policy_name() {
  policy_name_.ClearToDefaultNoArena(&::object_detection::protos::AutoAugmentImage::_i_give_permission_to_break_this_code_default_policy_name_.get());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& AutoAugmentImage::policy_name() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.AutoAugmentImage.policy_name)
  return policy_name_.GetNoArena();
}
inline void AutoAugmentImage::set_policy_name(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  policy_name_.SetNoArena(&::object_detection::protos::AutoAugmentImage::_i_give_permission_to_break_this_code_default_policy_name_.get(), value);
  // @@protoc_insertion_point(field_set:object_detection.protos.AutoAugmentImage.policy_name)
}
inline void AutoAugmentImage::set_policy_name(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  policy_name_.SetNoArena(
    &::object_detection::protos::AutoAugmentImage::_i_give_permission_to_break_this_code_default_policy_name_.get(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:object_detection.protos.AutoAugmentImage.policy_name)
}
inline void AutoAugmentImage::set_policy_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  policy_name_.SetNoArena(&::object_detection::protos::AutoAugmentImage::_i_give_permission_to_break_this_code_default_policy_name_.get(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:object_detection.protos.AutoAugmentImage.policy_name)
}
inline void AutoAugmentImage::set_policy_name(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000001u;
  policy_name_.SetNoArena(&::object_detection::protos::AutoAugmentImage::_i_give_permission_to_break_this_code_default_policy_name_.get(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:object_detection.protos.AutoAugmentImage.policy_name)
}
inline std::string* AutoAugmentImage::mutable_policy_name() {
  _has_bits_[0] |= 0x00000001u;
  // @@protoc_insertion_point(field_mutable:object_detection.protos.AutoAugmentImage.policy_name)
  return policy_name_.MutableNoArena(&::object_detection::protos::AutoAugmentImage::_i_give_permission_to_break_this_code_default_policy_name_.get());
}
inline std::string* AutoAugmentImage::release_policy_name() {
  // @@protoc_insertion_point(field_release:object_detection.protos.AutoAugmentImage.policy_name)
  if (!has_policy_name()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return policy_name_.ReleaseNonDefaultNoArena(&::object_detection::protos::AutoAugmentImage::_i_give_permission_to_break_this_code_default_policy_name_.get());
}
inline void AutoAugmentImage::set_allocated_policy_name(std::string* policy_name) {
  if (policy_name != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  policy_name_.SetAllocatedNoArena(&::object_detection::protos::AutoAugmentImage::_i_give_permission_to_break_this_code_default_policy_name_.get(), policy_name);
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.AutoAugmentImage.policy_name)
}

// -------------------------------------------------------------------

// DropLabelProbabilistically

// optional int32 label = 1;
inline bool DropLabelProbabilistically::has_label() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void DropLabelProbabilistically::clear_label() {
  label_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 DropLabelProbabilistically::label() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.DropLabelProbabilistically.label)
  return label_;
}
inline void DropLabelProbabilistically::set_label(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  label_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.DropLabelProbabilistically.label)
}

// optional float drop_probability = 2 [default = 1];
inline bool DropLabelProbabilistically::has_drop_probability() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void DropLabelProbabilistically::clear_drop_probability() {
  drop_probability_ = 1;
  _has_bits_[0] &= ~0x00000002u;
}
inline float DropLabelProbabilistically::drop_probability() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.DropLabelProbabilistically.drop_probability)
  return drop_probability_;
}
inline void DropLabelProbabilistically::set_drop_probability(float value) {
  _has_bits_[0] |= 0x00000002u;
  drop_probability_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.DropLabelProbabilistically.drop_probability)
}

// -------------------------------------------------------------------

// RemapLabels

// repeated int32 original_labels = 1;
inline int RemapLabels::original_labels_size() const {
  return original_labels_.size();
}
inline void RemapLabels::clear_original_labels() {
  original_labels_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RemapLabels::original_labels(int index) const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RemapLabels.original_labels)
  return original_labels_.Get(index);
}
inline void RemapLabels::set_original_labels(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) {
  original_labels_.Set(index, value);
  // @@protoc_insertion_point(field_set:object_detection.protos.RemapLabels.original_labels)
}
inline void RemapLabels::add_original_labels(::PROTOBUF_NAMESPACE_ID::int32 value) {
  original_labels_.Add(value);
  // @@protoc_insertion_point(field_add:object_detection.protos.RemapLabels.original_labels)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
RemapLabels::original_labels() const {
  // @@protoc_insertion_point(field_list:object_detection.protos.RemapLabels.original_labels)
  return original_labels_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
RemapLabels::mutable_original_labels() {
  // @@protoc_insertion_point(field_mutable_list:object_detection.protos.RemapLabels.original_labels)
  return &original_labels_;
}

// optional int32 new_label = 2;
inline bool RemapLabels::has_new_label() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RemapLabels::clear_new_label() {
  new_label_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RemapLabels::new_label() const {
  // @@protoc_insertion_point(field_get:object_detection.protos.RemapLabels.new_label)
  return new_label_;
}
inline void RemapLabels::set_new_label(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  new_label_ = value;
  // @@protoc_insertion_point(field_set:object_detection.protos.RemapLabels.new_label)
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)

}  // namespace protos
}  // namespace object_detection

PROTOBUF_NAMESPACE_OPEN

template <> struct is_proto_enum< ::object_detection::protos::ResizeImage_Method> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::object_detection::protos::ResizeImage_Method>() {
  return ::object_detection::protos::ResizeImage_Method_descriptor();
}

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

#include <google/protobuf/port_undef.inc>
#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_object_5fdetection_2fprotos_2fpreprocessor_2eproto
