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

#include "object_detection/protos/preprocessor.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>

PROTOBUF_PRAGMA_INIT_SEG

namespace _pb = ::PROTOBUF_NAMESPACE_ID;
namespace _pbi = _pb::internal;

namespace object_detection {
namespace protos {
PROTOBUF_CONSTEXPR PreprocessingStep::PreprocessingStep(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.preprocessing_step_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct PreprocessingStepDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PreprocessingStepDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~PreprocessingStepDefaultTypeInternal() {}
  union {
    PreprocessingStep _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PreprocessingStepDefaultTypeInternal _PreprocessingStep_default_instance_;
PROTOBUF_CONSTEXPR NormalizeImage::NormalizeImage(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.original_minval_)*/0
  , /*decltype(_impl_.original_maxval_)*/0
  , /*decltype(_impl_.target_minval_)*/0
  , /*decltype(_impl_.target_maxval_)*/1} {}
struct NormalizeImageDefaultTypeInternal {
  PROTOBUF_CONSTEXPR NormalizeImageDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~NormalizeImageDefaultTypeInternal() {}
  union {
    NormalizeImage _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 NormalizeImageDefaultTypeInternal _NormalizeImage_default_instance_;
PROTOBUF_CONSTEXPR RandomHorizontalFlip::RandomHorizontalFlip(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.keypoint_flip_permutation_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct RandomHorizontalFlipDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomHorizontalFlipDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomHorizontalFlipDefaultTypeInternal() {}
  union {
    RandomHorizontalFlip _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomHorizontalFlipDefaultTypeInternal _RandomHorizontalFlip_default_instance_;
PROTOBUF_CONSTEXPR RandomVerticalFlip::RandomVerticalFlip(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.keypoint_flip_permutation_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct RandomVerticalFlipDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomVerticalFlipDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomVerticalFlipDefaultTypeInternal() {}
  union {
    RandomVerticalFlip _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomVerticalFlipDefaultTypeInternal _RandomVerticalFlip_default_instance_;
PROTOBUF_CONSTEXPR RandomRotation90::RandomRotation90(
    ::_pbi::ConstantInitialized) {}
struct RandomRotation90DefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomRotation90DefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomRotation90DefaultTypeInternal() {}
  union {
    RandomRotation90 _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomRotation90DefaultTypeInternal _RandomRotation90_default_instance_;
PROTOBUF_CONSTEXPR RandomPixelValueScale::RandomPixelValueScale(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.minval_)*/0.9f
  , /*decltype(_impl_.maxval_)*/1.1f} {}
struct RandomPixelValueScaleDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomPixelValueScaleDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomPixelValueScaleDefaultTypeInternal() {}
  union {
    RandomPixelValueScale _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomPixelValueScaleDefaultTypeInternal _RandomPixelValueScale_default_instance_;
PROTOBUF_CONSTEXPR RandomImageScale::RandomImageScale(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.min_scale_ratio_)*/0.5f
  , /*decltype(_impl_.max_scale_ratio_)*/2} {}
struct RandomImageScaleDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomImageScaleDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomImageScaleDefaultTypeInternal() {}
  union {
    RandomImageScale _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomImageScaleDefaultTypeInternal _RandomImageScale_default_instance_;
PROTOBUF_CONSTEXPR RandomRGBtoGray::RandomRGBtoGray(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.probability_)*/0.1f} {}
struct RandomRGBtoGrayDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomRGBtoGrayDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomRGBtoGrayDefaultTypeInternal() {}
  union {
    RandomRGBtoGray _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomRGBtoGrayDefaultTypeInternal _RandomRGBtoGray_default_instance_;
PROTOBUF_CONSTEXPR RandomAdjustBrightness::RandomAdjustBrightness(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.max_delta_)*/0.2f} {}
struct RandomAdjustBrightnessDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomAdjustBrightnessDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomAdjustBrightnessDefaultTypeInternal() {}
  union {
    RandomAdjustBrightness _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomAdjustBrightnessDefaultTypeInternal _RandomAdjustBrightness_default_instance_;
PROTOBUF_CONSTEXPR RandomAdjustContrast::RandomAdjustContrast(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.min_delta_)*/0.8f
  , /*decltype(_impl_.max_delta_)*/1.25f} {}
struct RandomAdjustContrastDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomAdjustContrastDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomAdjustContrastDefaultTypeInternal() {}
  union {
    RandomAdjustContrast _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomAdjustContrastDefaultTypeInternal _RandomAdjustContrast_default_instance_;
PROTOBUF_CONSTEXPR RandomAdjustHue::RandomAdjustHue(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.max_delta_)*/0.02f} {}
struct RandomAdjustHueDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomAdjustHueDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomAdjustHueDefaultTypeInternal() {}
  union {
    RandomAdjustHue _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomAdjustHueDefaultTypeInternal _RandomAdjustHue_default_instance_;
PROTOBUF_CONSTEXPR RandomAdjustSaturation::RandomAdjustSaturation(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.min_delta_)*/0.8f
  , /*decltype(_impl_.max_delta_)*/1.25f} {}
struct RandomAdjustSaturationDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomAdjustSaturationDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomAdjustSaturationDefaultTypeInternal() {}
  union {
    RandomAdjustSaturation _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomAdjustSaturationDefaultTypeInternal _RandomAdjustSaturation_default_instance_;
PROTOBUF_CONSTEXPR RandomDistortColor::RandomDistortColor(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.color_ordering_)*/0} {}
struct RandomDistortColorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomDistortColorDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomDistortColorDefaultTypeInternal() {}
  union {
    RandomDistortColor _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomDistortColorDefaultTypeInternal _RandomDistortColor_default_instance_;
PROTOBUF_CONSTEXPR RandomJitterBoxes::RandomJitterBoxes(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.ratio_)*/0.05f} {}
struct RandomJitterBoxesDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomJitterBoxesDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomJitterBoxesDefaultTypeInternal() {}
  union {
    RandomJitterBoxes _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomJitterBoxesDefaultTypeInternal _RandomJitterBoxes_default_instance_;
PROTOBUF_CONSTEXPR RandomCropImage::RandomCropImage(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.random_coef_)*/0
  , /*decltype(_impl_.clip_boxes_)*/true
  , /*decltype(_impl_.min_object_covered_)*/1
  , /*decltype(_impl_.min_aspect_ratio_)*/0.75f
  , /*decltype(_impl_.max_aspect_ratio_)*/1.33f
  , /*decltype(_impl_.min_area_)*/0.1f
  , /*decltype(_impl_.max_area_)*/1
  , /*decltype(_impl_.overlap_thresh_)*/0.3f} {}
struct RandomCropImageDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomCropImageDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomCropImageDefaultTypeInternal() {}
  union {
    RandomCropImage _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomCropImageDefaultTypeInternal _RandomCropImage_default_instance_;
PROTOBUF_CONSTEXPR RandomPadImage::RandomPadImage(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.pad_color_)*/{}
  , /*decltype(_impl_.min_image_height_)*/0
  , /*decltype(_impl_.min_image_width_)*/0
  , /*decltype(_impl_.max_image_height_)*/0
  , /*decltype(_impl_.max_image_width_)*/0} {}
struct RandomPadImageDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomPadImageDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomPadImageDefaultTypeInternal() {}
  union {
    RandomPadImage _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomPadImageDefaultTypeInternal _RandomPadImage_default_instance_;
PROTOBUF_CONSTEXPR RandomAbsolutePadImage::RandomAbsolutePadImage(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.pad_color_)*/{}
  , /*decltype(_impl_.max_height_padding_)*/0
  , /*decltype(_impl_.max_width_padding_)*/0} {}
struct RandomAbsolutePadImageDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomAbsolutePadImageDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomAbsolutePadImageDefaultTypeInternal() {}
  union {
    RandomAbsolutePadImage _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomAbsolutePadImageDefaultTypeInternal _RandomAbsolutePadImage_default_instance_;
PROTOBUF_CONSTEXPR RandomCropPadImage::RandomCropPadImage(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.min_padded_size_ratio_)*/{}
  , /*decltype(_impl_.max_padded_size_ratio_)*/{}
  , /*decltype(_impl_.pad_color_)*/{}
  , /*decltype(_impl_.random_coef_)*/0
  , /*decltype(_impl_.clip_boxes_)*/true
  , /*decltype(_impl_.min_object_covered_)*/1
  , /*decltype(_impl_.min_aspect_ratio_)*/0.75f
  , /*decltype(_impl_.max_aspect_ratio_)*/1.33f
  , /*decltype(_impl_.min_area_)*/0.1f
  , /*decltype(_impl_.max_area_)*/1
  , /*decltype(_impl_.overlap_thresh_)*/0.3f} {}
struct RandomCropPadImageDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomCropPadImageDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomCropPadImageDefaultTypeInternal() {}
  union {
    RandomCropPadImage _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomCropPadImageDefaultTypeInternal _RandomCropPadImage_default_instance_;
PROTOBUF_CONSTEXPR RandomCropToAspectRatio::RandomCropToAspectRatio(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.clip_boxes_)*/true
  , /*decltype(_impl_.aspect_ratio_)*/1
  , /*decltype(_impl_.overlap_thresh_)*/0.3f} {}
struct RandomCropToAspectRatioDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomCropToAspectRatioDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomCropToAspectRatioDefaultTypeInternal() {}
  union {
    RandomCropToAspectRatio _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomCropToAspectRatioDefaultTypeInternal _RandomCropToAspectRatio_default_instance_;
PROTOBUF_CONSTEXPR RandomBlackPatches::RandomBlackPatches(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.size_to_image_ratio_)*/0.1f
  , /*decltype(_impl_.max_black_patches_)*/10
  , /*decltype(_impl_.probability_)*/0.5f} {}
struct RandomBlackPatchesDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomBlackPatchesDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomBlackPatchesDefaultTypeInternal() {}
  union {
    RandomBlackPatches _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomBlackPatchesDefaultTypeInternal _RandomBlackPatches_default_instance_;
PROTOBUF_CONSTEXPR RandomResizeMethod::RandomResizeMethod(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.target_height_)*/0
  , /*decltype(_impl_.target_width_)*/0} {}
struct RandomResizeMethodDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomResizeMethodDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomResizeMethodDefaultTypeInternal() {}
  union {
    RandomResizeMethod _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomResizeMethodDefaultTypeInternal _RandomResizeMethod_default_instance_;
PROTOBUF_CONSTEXPR RGBtoGray::RGBtoGray(
    ::_pbi::ConstantInitialized) {}
struct RGBtoGrayDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RGBtoGrayDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RGBtoGrayDefaultTypeInternal() {}
  union {
    RGBtoGray _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RGBtoGrayDefaultTypeInternal _RGBtoGray_default_instance_;
PROTOBUF_CONSTEXPR ScaleBoxesToPixelCoordinates::ScaleBoxesToPixelCoordinates(
    ::_pbi::ConstantInitialized) {}
struct ScaleBoxesToPixelCoordinatesDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ScaleBoxesToPixelCoordinatesDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ScaleBoxesToPixelCoordinatesDefaultTypeInternal() {}
  union {
    ScaleBoxesToPixelCoordinates _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ScaleBoxesToPixelCoordinatesDefaultTypeInternal _ScaleBoxesToPixelCoordinates_default_instance_;
PROTOBUF_CONSTEXPR ResizeImage::ResizeImage(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.new_height_)*/0
  , /*decltype(_impl_.new_width_)*/0
  , /*decltype(_impl_.method_)*/3} {}
struct ResizeImageDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ResizeImageDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ResizeImageDefaultTypeInternal() {}
  union {
    ResizeImage _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ResizeImageDefaultTypeInternal _ResizeImage_default_instance_;
PROTOBUF_CONSTEXPR SubtractChannelMean::SubtractChannelMean(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.means_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SubtractChannelMeanDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SubtractChannelMeanDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SubtractChannelMeanDefaultTypeInternal() {}
  union {
    SubtractChannelMean _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SubtractChannelMeanDefaultTypeInternal _SubtractChannelMean_default_instance_;
PROTOBUF_CONSTEXPR SSDRandomCropOperation::SSDRandomCropOperation(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.min_object_covered_)*/0
  , /*decltype(_impl_.min_aspect_ratio_)*/0
  , /*decltype(_impl_.max_aspect_ratio_)*/0
  , /*decltype(_impl_.min_area_)*/0
  , /*decltype(_impl_.max_area_)*/0
  , /*decltype(_impl_.overlap_thresh_)*/0
  , /*decltype(_impl_.random_coef_)*/0
  , /*decltype(_impl_.clip_boxes_)*/true} {}
struct SSDRandomCropOperationDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SSDRandomCropOperationDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SSDRandomCropOperationDefaultTypeInternal() {}
  union {
    SSDRandomCropOperation _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SSDRandomCropOperationDefaultTypeInternal _SSDRandomCropOperation_default_instance_;
PROTOBUF_CONSTEXPR SSDRandomCrop::SSDRandomCrop(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.operations_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SSDRandomCropDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SSDRandomCropDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SSDRandomCropDefaultTypeInternal() {}
  union {
    SSDRandomCrop _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SSDRandomCropDefaultTypeInternal _SSDRandomCrop_default_instance_;
PROTOBUF_CONSTEXPR SSDRandomCropPadOperation::SSDRandomCropPadOperation(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.min_padded_size_ratio_)*/{}
  , /*decltype(_impl_.max_padded_size_ratio_)*/{}
  , /*decltype(_impl_.min_object_covered_)*/0
  , /*decltype(_impl_.min_aspect_ratio_)*/0
  , /*decltype(_impl_.max_aspect_ratio_)*/0
  , /*decltype(_impl_.min_area_)*/0
  , /*decltype(_impl_.max_area_)*/0
  , /*decltype(_impl_.overlap_thresh_)*/0
  , /*decltype(_impl_.random_coef_)*/0
  , /*decltype(_impl_.pad_color_r_)*/0
  , /*decltype(_impl_.pad_color_g_)*/0
  , /*decltype(_impl_.pad_color_b_)*/0
  , /*decltype(_impl_.clip_boxes_)*/true} {}
struct SSDRandomCropPadOperationDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SSDRandomCropPadOperationDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SSDRandomCropPadOperationDefaultTypeInternal() {}
  union {
    SSDRandomCropPadOperation _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SSDRandomCropPadOperationDefaultTypeInternal _SSDRandomCropPadOperation_default_instance_;
PROTOBUF_CONSTEXPR SSDRandomCropPad::SSDRandomCropPad(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.operations_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SSDRandomCropPadDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SSDRandomCropPadDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SSDRandomCropPadDefaultTypeInternal() {}
  union {
    SSDRandomCropPad _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SSDRandomCropPadDefaultTypeInternal _SSDRandomCropPad_default_instance_;
PROTOBUF_CONSTEXPR SSDRandomCropFixedAspectRatioOperation::SSDRandomCropFixedAspectRatioOperation(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.min_object_covered_)*/0
  , /*decltype(_impl_.min_area_)*/0
  , /*decltype(_impl_.max_area_)*/0
  , /*decltype(_impl_.overlap_thresh_)*/0
  , /*decltype(_impl_.random_coef_)*/0
  , /*decltype(_impl_.clip_boxes_)*/true} {}
struct SSDRandomCropFixedAspectRatioOperationDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SSDRandomCropFixedAspectRatioOperationDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SSDRandomCropFixedAspectRatioOperationDefaultTypeInternal() {}
  union {
    SSDRandomCropFixedAspectRatioOperation _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SSDRandomCropFixedAspectRatioOperationDefaultTypeInternal _SSDRandomCropFixedAspectRatioOperation_default_instance_;
PROTOBUF_CONSTEXPR SSDRandomCropFixedAspectRatio::SSDRandomCropFixedAspectRatio(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.operations_)*/{}
  , /*decltype(_impl_.aspect_ratio_)*/1} {}
struct SSDRandomCropFixedAspectRatioDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SSDRandomCropFixedAspectRatioDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SSDRandomCropFixedAspectRatioDefaultTypeInternal() {}
  union {
    SSDRandomCropFixedAspectRatio _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SSDRandomCropFixedAspectRatioDefaultTypeInternal _SSDRandomCropFixedAspectRatio_default_instance_;
PROTOBUF_CONSTEXPR SSDRandomCropPadFixedAspectRatioOperation::SSDRandomCropPadFixedAspectRatioOperation(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.min_object_covered_)*/0
  , /*decltype(_impl_.min_aspect_ratio_)*/0
  , /*decltype(_impl_.max_aspect_ratio_)*/0
  , /*decltype(_impl_.min_area_)*/0
  , /*decltype(_impl_.max_area_)*/0
  , /*decltype(_impl_.overlap_thresh_)*/0
  , /*decltype(_impl_.random_coef_)*/0
  , /*decltype(_impl_.clip_boxes_)*/true} {}
struct SSDRandomCropPadFixedAspectRatioOperationDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SSDRandomCropPadFixedAspectRatioOperationDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SSDRandomCropPadFixedAspectRatioOperationDefaultTypeInternal() {}
  union {
    SSDRandomCropPadFixedAspectRatioOperation _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SSDRandomCropPadFixedAspectRatioOperationDefaultTypeInternal _SSDRandomCropPadFixedAspectRatioOperation_default_instance_;
PROTOBUF_CONSTEXPR SSDRandomCropPadFixedAspectRatio::SSDRandomCropPadFixedAspectRatio(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.operations_)*/{}
  , /*decltype(_impl_.min_padded_size_ratio_)*/{}
  , /*decltype(_impl_.max_padded_size_ratio_)*/{}
  , /*decltype(_impl_.aspect_ratio_)*/1} {}
struct SSDRandomCropPadFixedAspectRatioDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SSDRandomCropPadFixedAspectRatioDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SSDRandomCropPadFixedAspectRatioDefaultTypeInternal() {}
  union {
    SSDRandomCropPadFixedAspectRatio _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SSDRandomCropPadFixedAspectRatioDefaultTypeInternal _SSDRandomCropPadFixedAspectRatio_default_instance_;
PROTOBUF_CONSTEXPR ConvertClassLogitsToSoftmax::ConvertClassLogitsToSoftmax(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.temperature_)*/1} {}
struct ConvertClassLogitsToSoftmaxDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ConvertClassLogitsToSoftmaxDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ConvertClassLogitsToSoftmaxDefaultTypeInternal() {}
  union {
    ConvertClassLogitsToSoftmax _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ConvertClassLogitsToSoftmaxDefaultTypeInternal _ConvertClassLogitsToSoftmax_default_instance_;
PROTOBUF_CONSTEXPR RandomSelfConcatImage::RandomSelfConcatImage(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.concat_vertical_probability_)*/0.1f
  , /*decltype(_impl_.concat_horizontal_probability_)*/0.1f} {}
struct RandomSelfConcatImageDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RandomSelfConcatImageDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RandomSelfConcatImageDefaultTypeInternal() {}
  union {
    RandomSelfConcatImage _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RandomSelfConcatImageDefaultTypeInternal _RandomSelfConcatImage_default_instance_;
PROTOBUF_CONSTEXPR AutoAugmentImage::AutoAugmentImage(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.policy_name_)*/{nullptr, ::_pbi::ConstantInitialized{}}} {}
struct AutoAugmentImageDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AutoAugmentImageDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~AutoAugmentImageDefaultTypeInternal() {}
  union {
    AutoAugmentImage _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AutoAugmentImageDefaultTypeInternal _AutoAugmentImage_default_instance_;
PROTOBUF_CONSTEXPR DropLabelProbabilistically::DropLabelProbabilistically(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.label_)*/0
  , /*decltype(_impl_.drop_probability_)*/1} {}
struct DropLabelProbabilisticallyDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DropLabelProbabilisticallyDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~DropLabelProbabilisticallyDefaultTypeInternal() {}
  union {
    DropLabelProbabilistically _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DropLabelProbabilisticallyDefaultTypeInternal _DropLabelProbabilistically_default_instance_;
PROTOBUF_CONSTEXPR RemapLabels::RemapLabels(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.original_labels_)*/{}
  , /*decltype(_impl_.new_label_)*/0} {}
struct RemapLabelsDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RemapLabelsDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RemapLabelsDefaultTypeInternal() {}
  union {
    RemapLabels _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RemapLabelsDefaultTypeInternal _RemapLabels_default_instance_;
}  // namespace protos
}  // namespace object_detection
static ::_pb::Metadata file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[38];
static const ::_pb::EnumDescriptor* file_level_enum_descriptors_object_5fdetection_2fprotos_2fpreprocessor_2eproto[1];
static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_object_5fdetection_2fprotos_2fpreprocessor_2eproto = nullptr;

const uint32_t TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::PreprocessingStep, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::PreprocessingStep, _impl_._oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::PreprocessingStep, _impl_.preprocessing_step_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::NormalizeImage, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::NormalizeImage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::NormalizeImage, _impl_.original_minval_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::NormalizeImage, _impl_.original_maxval_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::NormalizeImage, _impl_.target_minval_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::NormalizeImage, _impl_.target_maxval_),
  0,
  1,
  2,
  3,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomHorizontalFlip, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomHorizontalFlip, _impl_.keypoint_flip_permutation_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomVerticalFlip, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomVerticalFlip, _impl_.keypoint_flip_permutation_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomRotation90, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomPixelValueScale, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomPixelValueScale, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomPixelValueScale, _impl_.minval_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomPixelValueScale, _impl_.maxval_),
  0,
  1,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomImageScale, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomImageScale, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomImageScale, _impl_.min_scale_ratio_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomImageScale, _impl_.max_scale_ratio_),
  0,
  1,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomRGBtoGray, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomRGBtoGray, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomRGBtoGray, _impl_.probability_),
  0,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAdjustBrightness, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAdjustBrightness, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAdjustBrightness, _impl_.max_delta_),
  0,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAdjustContrast, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAdjustContrast, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAdjustContrast, _impl_.min_delta_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAdjustContrast, _impl_.max_delta_),
  0,
  1,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAdjustHue, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAdjustHue, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAdjustHue, _impl_.max_delta_),
  0,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAdjustSaturation, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAdjustSaturation, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAdjustSaturation, _impl_.min_delta_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAdjustSaturation, _impl_.max_delta_),
  0,
  1,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomDistortColor, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomDistortColor, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomDistortColor, _impl_.color_ordering_),
  0,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomJitterBoxes, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomJitterBoxes, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomJitterBoxes, _impl_.ratio_),
  0,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropImage, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropImage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropImage, _impl_.min_object_covered_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropImage, _impl_.min_aspect_ratio_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropImage, _impl_.max_aspect_ratio_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropImage, _impl_.min_area_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropImage, _impl_.max_area_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropImage, _impl_.overlap_thresh_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropImage, _impl_.clip_boxes_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropImage, _impl_.random_coef_),
  2,
  3,
  4,
  5,
  6,
  7,
  1,
  0,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomPadImage, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomPadImage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomPadImage, _impl_.min_image_height_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomPadImage, _impl_.min_image_width_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomPadImage, _impl_.max_image_height_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomPadImage, _impl_.max_image_width_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomPadImage, _impl_.pad_color_),
  0,
  1,
  2,
  3,
  ~0u,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAbsolutePadImage, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAbsolutePadImage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAbsolutePadImage, _impl_.max_height_padding_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAbsolutePadImage, _impl_.max_width_padding_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomAbsolutePadImage, _impl_.pad_color_),
  0,
  1,
  ~0u,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropPadImage, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropPadImage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropPadImage, _impl_.min_object_covered_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropPadImage, _impl_.min_aspect_ratio_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropPadImage, _impl_.max_aspect_ratio_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropPadImage, _impl_.min_area_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropPadImage, _impl_.max_area_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropPadImage, _impl_.overlap_thresh_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropPadImage, _impl_.clip_boxes_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropPadImage, _impl_.random_coef_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropPadImage, _impl_.min_padded_size_ratio_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropPadImage, _impl_.max_padded_size_ratio_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropPadImage, _impl_.pad_color_),
  2,
  3,
  4,
  5,
  6,
  7,
  1,
  0,
  ~0u,
  ~0u,
  ~0u,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropToAspectRatio, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropToAspectRatio, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropToAspectRatio, _impl_.aspect_ratio_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropToAspectRatio, _impl_.overlap_thresh_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomCropToAspectRatio, _impl_.clip_boxes_),
  1,
  2,
  0,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomBlackPatches, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomBlackPatches, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomBlackPatches, _impl_.max_black_patches_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomBlackPatches, _impl_.probability_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomBlackPatches, _impl_.size_to_image_ratio_),
  1,
  2,
  0,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomResizeMethod, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomResizeMethod, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomResizeMethod, _impl_.target_height_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomResizeMethod, _impl_.target_width_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RGBtoGray, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::ScaleBoxesToPixelCoordinates, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::ResizeImage, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::ResizeImage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::ResizeImage, _impl_.new_height_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::ResizeImage, _impl_.new_width_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::ResizeImage, _impl_.method_),
  0,
  1,
  2,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SubtractChannelMean, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SubtractChannelMean, _impl_.means_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropOperation, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropOperation, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropOperation, _impl_.min_object_covered_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropOperation, _impl_.min_aspect_ratio_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropOperation, _impl_.max_aspect_ratio_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropOperation, _impl_.min_area_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropOperation, _impl_.max_area_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropOperation, _impl_.overlap_thresh_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropOperation, _impl_.clip_boxes_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropOperation, _impl_.random_coef_),
  0,
  1,
  2,
  3,
  4,
  5,
  7,
  6,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCrop, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCrop, _impl_.operations_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadOperation, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadOperation, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadOperation, _impl_.min_object_covered_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadOperation, _impl_.min_aspect_ratio_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadOperation, _impl_.max_aspect_ratio_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadOperation, _impl_.min_area_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadOperation, _impl_.max_area_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadOperation, _impl_.overlap_thresh_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadOperation, _impl_.clip_boxes_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadOperation, _impl_.random_coef_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadOperation, _impl_.min_padded_size_ratio_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadOperation, _impl_.max_padded_size_ratio_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadOperation, _impl_.pad_color_r_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadOperation, _impl_.pad_color_g_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadOperation, _impl_.pad_color_b_),
  0,
  1,
  2,
  3,
  4,
  5,
  10,
  6,
  ~0u,
  ~0u,
  7,
  8,
  9,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPad, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPad, _impl_.operations_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropFixedAspectRatioOperation, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropFixedAspectRatioOperation, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropFixedAspectRatioOperation, _impl_.min_object_covered_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropFixedAspectRatioOperation, _impl_.min_area_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropFixedAspectRatioOperation, _impl_.max_area_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropFixedAspectRatioOperation, _impl_.overlap_thresh_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropFixedAspectRatioOperation, _impl_.clip_boxes_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropFixedAspectRatioOperation, _impl_.random_coef_),
  0,
  1,
  2,
  3,
  5,
  4,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropFixedAspectRatio, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropFixedAspectRatio, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropFixedAspectRatio, _impl_.operations_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropFixedAspectRatio, _impl_.aspect_ratio_),
  ~0u,
  0,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation, _impl_.min_object_covered_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation, _impl_.min_aspect_ratio_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation, _impl_.max_aspect_ratio_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation, _impl_.min_area_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation, _impl_.max_area_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation, _impl_.overlap_thresh_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation, _impl_.clip_boxes_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation, _impl_.random_coef_),
  0,
  1,
  2,
  3,
  4,
  5,
  7,
  6,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadFixedAspectRatio, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadFixedAspectRatio, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadFixedAspectRatio, _impl_.operations_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadFixedAspectRatio, _impl_.aspect_ratio_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadFixedAspectRatio, _impl_.min_padded_size_ratio_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::SSDRandomCropPadFixedAspectRatio, _impl_.max_padded_size_ratio_),
  ~0u,
  0,
  ~0u,
  ~0u,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::ConvertClassLogitsToSoftmax, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::ConvertClassLogitsToSoftmax, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::ConvertClassLogitsToSoftmax, _impl_.temperature_),
  0,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomSelfConcatImage, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomSelfConcatImage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomSelfConcatImage, _impl_.concat_vertical_probability_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RandomSelfConcatImage, _impl_.concat_horizontal_probability_),
  0,
  1,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::AutoAugmentImage, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::AutoAugmentImage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::AutoAugmentImage, _impl_.policy_name_),
  0,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::DropLabelProbabilistically, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::DropLabelProbabilistically, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::DropLabelProbabilistically, _impl_.label_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::DropLabelProbabilistically, _impl_.drop_probability_),
  0,
  1,
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RemapLabels, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RemapLabels, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RemapLabels, _impl_.original_labels_),
  PROTOBUF_FIELD_OFFSET(::object_detection::protos::RemapLabels, _impl_.new_label_),
  ~0u,
  0,
};
static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, -1, sizeof(::object_detection::protos::PreprocessingStep)},
  { 40, 50, -1, sizeof(::object_detection::protos::NormalizeImage)},
  { 54, -1, -1, sizeof(::object_detection::protos::RandomHorizontalFlip)},
  { 61, -1, -1, sizeof(::object_detection::protos::RandomVerticalFlip)},
  { 68, -1, -1, sizeof(::object_detection::protos::RandomRotation90)},
  { 74, 82, -1, sizeof(::object_detection::protos::RandomPixelValueScale)},
  { 84, 92, -1, sizeof(::object_detection::protos::RandomImageScale)},
  { 94, 101, -1, sizeof(::object_detection::protos::RandomRGBtoGray)},
  { 102, 109, -1, sizeof(::object_detection::protos::RandomAdjustBrightness)},
  { 110, 118, -1, sizeof(::object_detection::protos::RandomAdjustContrast)},
  { 120, 127, -1, sizeof(::object_detection::protos::RandomAdjustHue)},
  { 128, 136, -1, sizeof(::object_detection::protos::RandomAdjustSaturation)},
  { 138, 145, -1, sizeof(::object_detection::protos::RandomDistortColor)},
  { 146, 153, -1, sizeof(::object_detection::protos::RandomJitterBoxes)},
  { 154, 168, -1, sizeof(::object_detection::protos::RandomCropImage)},
  { 176, 187, -1, sizeof(::object_detection::protos::RandomPadImage)},
  { 192, 201, -1, sizeof(::object_detection::protos::RandomAbsolutePadImage)},
  { 204, 221, -1, sizeof(::object_detection::protos::RandomCropPadImage)},
  { 232, 241, -1, sizeof(::object_detection::protos::RandomCropToAspectRatio)},
  { 244, 253, -1, sizeof(::object_detection::protos::RandomBlackPatches)},
  { 256, 264, -1, sizeof(::object_detection::protos::RandomResizeMethod)},
  { 266, -1, -1, sizeof(::object_detection::protos::RGBtoGray)},
  { 272, -1, -1, sizeof(::object_detection::protos::ScaleBoxesToPixelCoordinates)},
  { 278, 287, -1, sizeof(::object_detection::protos::ResizeImage)},
  { 290, -1, -1, sizeof(::object_detection::protos::SubtractChannelMean)},
  { 297, 311, -1, sizeof(::object_detection::protos::SSDRandomCropOperation)},
  { 319, -1, -1, sizeof(::object_detection::protos::SSDRandomCrop)},
  { 326, 345, -1, sizeof(::object_detection::protos::SSDRandomCropPadOperation)},
  { 358, -1, -1, sizeof(::object_detection::protos::SSDRandomCropPad)},
  { 365, 377, -1, sizeof(::object_detection::protos::SSDRandomCropFixedAspectRatioOperation)},
  { 383, 391, -1, sizeof(::object_detection::protos::SSDRandomCropFixedAspectRatio)},
  { 393, 407, -1, sizeof(::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation)},
  { 415, 425, -1, sizeof(::object_detection::protos::SSDRandomCropPadFixedAspectRatio)},
  { 429, 436, -1, sizeof(::object_detection::protos::ConvertClassLogitsToSoftmax)},
  { 437, 445, -1, sizeof(::object_detection::protos::RandomSelfConcatImage)},
  { 447, 454, -1, sizeof(::object_detection::protos::AutoAugmentImage)},
  { 455, 463, -1, sizeof(::object_detection::protos::DropLabelProbabilistically)},
  { 465, 473, -1, sizeof(::object_detection::protos::RemapLabels)},
};

static const ::_pb::Message* const file_default_instances[] = {
  &::object_detection::protos::_PreprocessingStep_default_instance_._instance,
  &::object_detection::protos::_NormalizeImage_default_instance_._instance,
  &::object_detection::protos::_RandomHorizontalFlip_default_instance_._instance,
  &::object_detection::protos::_RandomVerticalFlip_default_instance_._instance,
  &::object_detection::protos::_RandomRotation90_default_instance_._instance,
  &::object_detection::protos::_RandomPixelValueScale_default_instance_._instance,
  &::object_detection::protos::_RandomImageScale_default_instance_._instance,
  &::object_detection::protos::_RandomRGBtoGray_default_instance_._instance,
  &::object_detection::protos::_RandomAdjustBrightness_default_instance_._instance,
  &::object_detection::protos::_RandomAdjustContrast_default_instance_._instance,
  &::object_detection::protos::_RandomAdjustHue_default_instance_._instance,
  &::object_detection::protos::_RandomAdjustSaturation_default_instance_._instance,
  &::object_detection::protos::_RandomDistortColor_default_instance_._instance,
  &::object_detection::protos::_RandomJitterBoxes_default_instance_._instance,
  &::object_detection::protos::_RandomCropImage_default_instance_._instance,
  &::object_detection::protos::_RandomPadImage_default_instance_._instance,
  &::object_detection::protos::_RandomAbsolutePadImage_default_instance_._instance,
  &::object_detection::protos::_RandomCropPadImage_default_instance_._instance,
  &::object_detection::protos::_RandomCropToAspectRatio_default_instance_._instance,
  &::object_detection::protos::_RandomBlackPatches_default_instance_._instance,
  &::object_detection::protos::_RandomResizeMethod_default_instance_._instance,
  &::object_detection::protos::_RGBtoGray_default_instance_._instance,
  &::object_detection::protos::_ScaleBoxesToPixelCoordinates_default_instance_._instance,
  &::object_detection::protos::_ResizeImage_default_instance_._instance,
  &::object_detection::protos::_SubtractChannelMean_default_instance_._instance,
  &::object_detection::protos::_SSDRandomCropOperation_default_instance_._instance,
  &::object_detection::protos::_SSDRandomCrop_default_instance_._instance,
  &::object_detection::protos::_SSDRandomCropPadOperation_default_instance_._instance,
  &::object_detection::protos::_SSDRandomCropPad_default_instance_._instance,
  &::object_detection::protos::_SSDRandomCropFixedAspectRatioOperation_default_instance_._instance,
  &::object_detection::protos::_SSDRandomCropFixedAspectRatio_default_instance_._instance,
  &::object_detection::protos::_SSDRandomCropPadFixedAspectRatioOperation_default_instance_._instance,
  &::object_detection::protos::_SSDRandomCropPadFixedAspectRatio_default_instance_._instance,
  &::object_detection::protos::_ConvertClassLogitsToSoftmax_default_instance_._instance,
  &::object_detection::protos::_RandomSelfConcatImage_default_instance_._instance,
  &::object_detection::protos::_AutoAugmentImage_default_instance_._instance,
  &::object_detection::protos::_DropLabelProbabilistically_default_instance_._instance,
  &::object_detection::protos::_RemapLabels_default_instance_._instance,
};

const char descriptor_table_protodef_object_5fdetection_2fprotos_2fpreprocessor_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n*object_detection/protos/preprocessor.p"
  "roto\022\027object_detection.protos\"\330\024\n\021Prepro"
  "cessingStep\022B\n\017normalize_image\030\001 \001(\0132\'.o"
  "bject_detection.protos.NormalizeImageH\000\022"
  "O\n\026random_horizontal_flip\030\002 \001(\0132-.object"
  "_detection.protos.RandomHorizontalFlipH\000"
  "\022R\n\030random_pixel_value_scale\030\003 \001(\0132..obj"
  "ect_detection.protos.RandomPixelValueSca"
  "leH\000\022G\n\022random_image_scale\030\004 \001(\0132).objec"
  "t_detection.protos.RandomImageScaleH\000\022F\n"
  "\022random_rgb_to_gray\030\005 \001(\0132(.object_detec"
  "tion.protos.RandomRGBtoGrayH\000\022S\n\030random_"
  "adjust_brightness\030\006 \001(\0132/.object_detecti"
  "on.protos.RandomAdjustBrightnessH\000\022O\n\026ra"
  "ndom_adjust_contrast\030\007 \001(\0132-.object_dete"
  "ction.protos.RandomAdjustContrastH\000\022E\n\021r"
  "andom_adjust_hue\030\010 \001(\0132(.object_detectio"
  "n.protos.RandomAdjustHueH\000\022S\n\030random_adj"
  "ust_saturation\030\t \001(\0132/.object_detection."
  "protos.RandomAdjustSaturationH\000\022K\n\024rando"
  "m_distort_color\030\n \001(\0132+.object_detection"
  ".protos.RandomDistortColorH\000\022I\n\023random_j"
  "itter_boxes\030\013 \001(\0132*.object_detection.pro"
  "tos.RandomJitterBoxesH\000\022E\n\021random_crop_i"
  "mage\030\014 \001(\0132(.object_detection.protos.Ran"
  "domCropImageH\000\022C\n\020random_pad_image\030\r \001(\013"
  "2\'.object_detection.protos.RandomPadImag"
  "eH\000\022L\n\025random_crop_pad_image\030\016 \001(\0132+.obj"
  "ect_detection.protos.RandomCropPadImageH"
  "\000\022W\n\033random_crop_to_aspect_ratio\030\017 \001(\01320"
  ".object_detection.protos.RandomCropToAsp"
  "ectRatioH\000\022K\n\024random_black_patches\030\020 \001(\013"
  "2+.object_detection.protos.RandomBlackPa"
  "tchesH\000\022K\n\024random_resize_method\030\021 \001(\0132+."
  "object_detection.protos.RandomResizeMeth"
  "odH\000\022a\n scale_boxes_to_pixel_coordinates"
  "\030\022 \001(\01325.object_detection.protos.ScaleBo"
  "xesToPixelCoordinatesH\000\022<\n\014resize_image\030"
  "\023 \001(\0132$.object_detection.protos.ResizeIm"
  "ageH\000\022M\n\025subtract_channel_mean\030\024 \001(\0132,.o"
  "bject_detection.protos.SubtractChannelMe"
  "anH\000\022A\n\017ssd_random_crop\030\025 \001(\0132&.object_d"
  "etection.protos.SSDRandomCropH\000\022H\n\023ssd_r"
  "andom_crop_pad\030\026 \001(\0132).object_detection."
  "protos.SSDRandomCropPadH\000\022d\n\"ssd_random_"
  "crop_fixed_aspect_ratio\030\027 \001(\01326.object_d"
  "etection.protos.SSDRandomCropFixedAspect"
  "RatioH\000\022k\n&ssd_random_crop_pad_fixed_asp"
  "ect_ratio\030\030 \001(\01329.object_detection.proto"
  "s.SSDRandomCropPadFixedAspectRatioH\000\022K\n\024"
  "random_vertical_flip\030\031 \001(\0132+.object_dete"
  "ction.protos.RandomVerticalFlipH\000\022F\n\021ran"
  "dom_rotation90\030\032 \001(\0132).object_detection."
  "protos.RandomRotation90H\000\0229\n\013rgb_to_gray"
  "\030\033 \001(\0132\".object_detection.protos.RGBtoGr"
  "ayH\000\022_\n\037convert_class_logits_to_softmax\030"
  "\034 \001(\01324.object_detection.protos.ConvertC"
  "lassLogitsToSoftmaxH\000\022T\n\031random_absolute"
  "_pad_image\030\035 \001(\0132/.object_detection.prot"
  "os.RandomAbsolutePadImageH\000\022R\n\030random_se"
  "lf_concat_image\030\036 \001(\0132..object_detection"
  ".protos.RandomSelfConcatImageH\000\022F\n\021autoa"
  "ugment_image\030\037 \001(\0132).object_detection.pr"
  "otos.AutoAugmentImageH\000\022[\n\034drop_label_pr"
  "obabilistically\030  \001(\01323.object_detection"
  ".protos.DropLabelProbabilisticallyH\000\022<\n\014"
  "remap_labels\030! \001(\0132$.object_detection.pr"
  "otos.RemapLabelsH\000B\024\n\022preprocessing_step"
  "\"v\n\016NormalizeImage\022\027\n\017original_minval\030\001 "
  "\001(\002\022\027\n\017original_maxval\030\002 \001(\002\022\030\n\rtarget_m"
  "inval\030\003 \001(\002:\0010\022\030\n\rtarget_maxval\030\004 \001(\002:\0011"
  "\"9\n\024RandomHorizontalFlip\022!\n\031keypoint_fli"
  "p_permutation\030\001 \003(\005\"7\n\022RandomVerticalFli"
  "p\022!\n\031keypoint_flip_permutation\030\001 \003(\005\"\022\n\020"
  "RandomRotation90\"A\n\025RandomPixelValueScal"
  "e\022\023\n\006minval\030\001 \001(\002:\0030.9\022\023\n\006maxval\030\002 \001(\002:\003"
  "1.1\"L\n\020RandomImageScale\022\034\n\017min_scale_rat"
  "io\030\001 \001(\002:\0030.5\022\032\n\017max_scale_ratio\030\002 \001(\002:\001"
  "2\"+\n\017RandomRGBtoGray\022\030\n\013probability\030\001 \001("
  "\002:\0030.1\"0\n\026RandomAdjustBrightness\022\026\n\tmax_"
  "delta\030\001 \001(\002:\0030.2\"G\n\024RandomAdjustContrast"
  "\022\026\n\tmin_delta\030\001 \001(\002:\0030.8\022\027\n\tmax_delta\030\002 "
  "\001(\002:\0041.25\"*\n\017RandomAdjustHue\022\027\n\tmax_delt"
  "a\030\001 \001(\002:\0040.02\"I\n\026RandomAdjustSaturation\022"
  "\026\n\tmin_delta\030\001 \001(\002:\0030.8\022\027\n\tmax_delta\030\002 \001"
  "(\002:\0041.25\",\n\022RandomDistortColor\022\026\n\016color_"
  "ordering\030\001 \001(\005\"(\n\021RandomJitterBoxes\022\023\n\005r"
  "atio\030\001 \001(\002:\0040.05\"\353\001\n\017RandomCropImage\022\035\n\022"
  "min_object_covered\030\001 \001(\002:\0011\022\036\n\020min_aspec"
  "t_ratio\030\002 \001(\002:\0040.75\022\036\n\020max_aspect_ratio\030"
  "\003 \001(\002:\0041.33\022\025\n\010min_area\030\004 \001(\002:\0030.1\022\023\n\010ma"
  "x_area\030\005 \001(\002:\0011\022\033\n\016overlap_thresh\030\006 \001(\002:"
  "\0030.3\022\030\n\nclip_boxes\030\010 \001(\010:\004true\022\026\n\013random"
  "_coef\030\007 \001(\002:\0010\"\211\001\n\016RandomPadImage\022\030\n\020min"
  "_image_height\030\001 \001(\005\022\027\n\017min_image_width\030\002"
  " \001(\005\022\030\n\020max_image_height\030\003 \001(\005\022\027\n\017max_im"
  "age_width\030\004 \001(\005\022\021\n\tpad_color\030\005 \003(\002\"b\n\026Ra"
  "ndomAbsolutePadImage\022\032\n\022max_height_paddi"
  "ng\030\001 \001(\005\022\031\n\021max_width_padding\030\002 \001(\005\022\021\n\tp"
  "ad_color\030\003 \003(\002\"\277\002\n\022RandomCropPadImage\022\035\n"
  "\022min_object_covered\030\001 \001(\002:\0011\022\036\n\020min_aspe"
  "ct_ratio\030\002 \001(\002:\0040.75\022\036\n\020max_aspect_ratio"
  "\030\003 \001(\002:\0041.33\022\025\n\010min_area\030\004 \001(\002:\0030.1\022\023\n\010m"
  "ax_area\030\005 \001(\002:\0011\022\033\n\016overlap_thresh\030\006 \001(\002"
  ":\0030.3\022\030\n\nclip_boxes\030\013 \001(\010:\004true\022\026\n\013rando"
  "m_coef\030\007 \001(\002:\0010\022\035\n\025min_padded_size_ratio"
  "\030\010 \003(\002\022\035\n\025max_padded_size_ratio\030\t \003(\002\022\021\n"
  "\tpad_color\030\n \003(\002\"i\n\027RandomCropToAspectRa"
  "tio\022\027\n\014aspect_ratio\030\001 \001(\002:\0011\022\033\n\016overlap_"
  "thresh\030\002 \001(\002:\0030.3\022\030\n\nclip_boxes\030\003 \001(\010:\004t"
  "rue\"o\n\022RandomBlackPatches\022\035\n\021max_black_p"
  "atches\030\001 \001(\005:\00210\022\030\n\013probability\030\002 \001(\002:\0030"
  ".5\022 \n\023size_to_image_ratio\030\003 \001(\002:\0030.1\"A\n\022"
  "RandomResizeMethod\022\025\n\rtarget_height\030\001 \001("
  "\005\022\024\n\014target_width\030\002 \001(\005\"\013\n\tRGBtoGray\"\036\n\034"
  "ScaleBoxesToPixelCoordinates\"\300\001\n\013ResizeI"
  "mage\022\022\n\nnew_height\030\001 \001(\005\022\021\n\tnew_width\030\002 "
  "\001(\005\022E\n\006method\030\003 \001(\0162+.object_detection.p"
  "rotos.ResizeImage.Method:\010BILINEAR\"C\n\006Me"
  "thod\022\010\n\004AREA\020\001\022\013\n\007BICUBIC\020\002\022\014\n\010BILINEAR\020"
  "\003\022\024\n\020NEAREST_NEIGHBOR\020\004\"$\n\023SubtractChann"
  "elMean\022\r\n\005means\030\001 \003(\002\"\323\001\n\026SSDRandomCropO"
  "peration\022\032\n\022min_object_covered\030\001 \001(\002\022\030\n\020"
  "min_aspect_ratio\030\002 \001(\002\022\030\n\020max_aspect_rat"
  "io\030\003 \001(\002\022\020\n\010min_area\030\004 \001(\002\022\020\n\010max_area\030\005"
  " \001(\002\022\026\n\016overlap_thresh\030\006 \001(\002\022\030\n\nclip_box"
  "es\030\010 \001(\010:\004true\022\023\n\013random_coef\030\007 \001(\002\"T\n\rS"
  "SDRandomCrop\022C\n\noperations\030\001 \003(\0132/.objec"
  "t_detection.protos.SSDRandomCropOperatio"
  "n\"\323\002\n\031SSDRandomCropPadOperation\022\032\n\022min_o"
  "bject_covered\030\001 \001(\002\022\030\n\020min_aspect_ratio\030"
  "\002 \001(\002\022\030\n\020max_aspect_ratio\030\003 \001(\002\022\020\n\010min_a"
  "rea\030\004 \001(\002\022\020\n\010max_area\030\005 \001(\002\022\026\n\016overlap_t"
  "hresh\030\006 \001(\002\022\030\n\nclip_boxes\030\r \001(\010:\004true\022\023\n"
  "\013random_coef\030\007 \001(\002\022\035\n\025min_padded_size_ra"
  "tio\030\010 \003(\002\022\035\n\025max_padded_size_ratio\030\t \003(\002"
  "\022\023\n\013pad_color_r\030\n \001(\002\022\023\n\013pad_color_g\030\013 \001"
  "(\002\022\023\n\013pad_color_b\030\014 \001(\002\"Z\n\020SSDRandomCrop"
  "Pad\022F\n\noperations\030\001 \003(\01322.object_detecti"
  "on.protos.SSDRandomCropPadOperation\"\257\001\n&"
  "SSDRandomCropFixedAspectRatioOperation\022\032"
  "\n\022min_object_covered\030\001 \001(\002\022\020\n\010min_area\030\004"
  " \001(\002\022\020\n\010max_area\030\005 \001(\002\022\026\n\016overlap_thresh"
  "\030\006 \001(\002\022\030\n\nclip_boxes\030\010 \001(\010:\004true\022\023\n\013rand"
  "om_coef\030\007 \001(\002\"\215\001\n\035SSDRandomCropFixedAspe"
  "ctRatio\022S\n\noperations\030\001 \003(\0132\?.object_det"
  "ection.protos.SSDRandomCropFixedAspectRa"
  "tioOperation\022\027\n\014aspect_ratio\030\002 \001(\002:\0011\"\346\001"
  "\n)SSDRandomCropPadFixedAspectRatioOperat"
  "ion\022\032\n\022min_object_covered\030\001 \001(\002\022\030\n\020min_a"
  "spect_ratio\030\002 \001(\002\022\030\n\020max_aspect_ratio\030\003 "
  "\001(\002\022\020\n\010min_area\030\004 \001(\002\022\020\n\010max_area\030\005 \001(\002\022"
  "\026\n\016overlap_thresh\030\006 \001(\002\022\030\n\nclip_boxes\030\010 "
  "\001(\010:\004true\022\023\n\013random_coef\030\007 \001(\002\"\321\001\n SSDRa"
  "ndomCropPadFixedAspectRatio\022V\n\noperation"
  "s\030\001 \003(\0132B.object_detection.protos.SSDRan"
  "domCropPadFixedAspectRatioOperation\022\027\n\014a"
  "spect_ratio\030\002 \001(\002:\0011\022\035\n\025min_padded_size_"
  "ratio\030\003 \003(\002\022\035\n\025max_padded_size_ratio\030\004 \003"
  "(\002\"5\n\033ConvertClassLogitsToSoftmax\022\026\n\013tem"
  "perature\030\001 \001(\002:\0011\"m\n\025RandomSelfConcatIma"
  "ge\022(\n\033concat_vertical_probability\030\001 \001(\002:"
  "\0030.1\022*\n\035concat_horizontal_probability\030\002 "
  "\001(\002:\0030.1\"+\n\020AutoAugmentImage\022\027\n\013policy_n"
  "ame\030\001 \001(\t:\002v0\"H\n\032DropLabelProbabilistica"
  "lly\022\r\n\005label\030\001 \001(\005\022\033\n\020drop_probability\030\002"
  " \001(\002:\0011\"9\n\013RemapLabels\022\027\n\017original_label"
  "s\030\001 \003(\005\022\021\n\tnew_label\030\002 \001(\005"
  ;
static ::_pbi::once_flag descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto = {
    false, false, 6706, descriptor_table_protodef_object_5fdetection_2fprotos_2fpreprocessor_2eproto,
    "object_detection/protos/preprocessor.proto",
    &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once, nullptr, 0, 38,
    schemas, file_default_instances, TableStruct_object_5fdetection_2fprotos_2fpreprocessor_2eproto::offsets,
    file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto, file_level_enum_descriptors_object_5fdetection_2fprotos_2fpreprocessor_2eproto,
    file_level_service_descriptors_object_5fdetection_2fprotos_2fpreprocessor_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter() {
  return &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto;
}

// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_object_5fdetection_2fprotos_2fpreprocessor_2eproto(&descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
namespace object_detection {
namespace protos {
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ResizeImage_Method_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto);
  return file_level_enum_descriptors_object_5fdetection_2fprotos_2fpreprocessor_2eproto[0];
}
bool ResizeImage_Method_IsValid(int value) {
  switch (value) {
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
constexpr ResizeImage_Method ResizeImage::AREA;
constexpr ResizeImage_Method ResizeImage::BICUBIC;
constexpr ResizeImage_Method ResizeImage::BILINEAR;
constexpr ResizeImage_Method ResizeImage::NEAREST_NEIGHBOR;
constexpr ResizeImage_Method ResizeImage::Method_MIN;
constexpr ResizeImage_Method ResizeImage::Method_MAX;
constexpr int ResizeImage::Method_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))

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

class PreprocessingStep::_Internal {
 public:
  static const ::object_detection::protos::NormalizeImage& normalize_image(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomHorizontalFlip& random_horizontal_flip(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomPixelValueScale& random_pixel_value_scale(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomImageScale& random_image_scale(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomRGBtoGray& random_rgb_to_gray(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomAdjustBrightness& random_adjust_brightness(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomAdjustContrast& random_adjust_contrast(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomAdjustHue& random_adjust_hue(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomAdjustSaturation& random_adjust_saturation(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomDistortColor& random_distort_color(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomJitterBoxes& random_jitter_boxes(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomCropImage& random_crop_image(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomPadImage& random_pad_image(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomCropPadImage& random_crop_pad_image(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomCropToAspectRatio& random_crop_to_aspect_ratio(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomBlackPatches& random_black_patches(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomResizeMethod& random_resize_method(const PreprocessingStep* msg);
  static const ::object_detection::protos::ScaleBoxesToPixelCoordinates& scale_boxes_to_pixel_coordinates(const PreprocessingStep* msg);
  static const ::object_detection::protos::ResizeImage& resize_image(const PreprocessingStep* msg);
  static const ::object_detection::protos::SubtractChannelMean& subtract_channel_mean(const PreprocessingStep* msg);
  static const ::object_detection::protos::SSDRandomCrop& ssd_random_crop(const PreprocessingStep* msg);
  static const ::object_detection::protos::SSDRandomCropPad& ssd_random_crop_pad(const PreprocessingStep* msg);
  static const ::object_detection::protos::SSDRandomCropFixedAspectRatio& ssd_random_crop_fixed_aspect_ratio(const PreprocessingStep* msg);
  static const ::object_detection::protos::SSDRandomCropPadFixedAspectRatio& ssd_random_crop_pad_fixed_aspect_ratio(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomVerticalFlip& random_vertical_flip(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomRotation90& random_rotation90(const PreprocessingStep* msg);
  static const ::object_detection::protos::RGBtoGray& rgb_to_gray(const PreprocessingStep* msg);
  static const ::object_detection::protos::ConvertClassLogitsToSoftmax& convert_class_logits_to_softmax(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomAbsolutePadImage& random_absolute_pad_image(const PreprocessingStep* msg);
  static const ::object_detection::protos::RandomSelfConcatImage& random_self_concat_image(const PreprocessingStep* msg);
  static const ::object_detection::protos::AutoAugmentImage& autoaugment_image(const PreprocessingStep* msg);
  static const ::object_detection::protos::DropLabelProbabilistically& drop_label_probabilistically(const PreprocessingStep* msg);
  static const ::object_detection::protos::RemapLabels& remap_labels(const PreprocessingStep* msg);
};

const ::object_detection::protos::NormalizeImage&
PreprocessingStep::_Internal::normalize_image(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.normalize_image_;
}
const ::object_detection::protos::RandomHorizontalFlip&
PreprocessingStep::_Internal::random_horizontal_flip(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_horizontal_flip_;
}
const ::object_detection::protos::RandomPixelValueScale&
PreprocessingStep::_Internal::random_pixel_value_scale(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_pixel_value_scale_;
}
const ::object_detection::protos::RandomImageScale&
PreprocessingStep::_Internal::random_image_scale(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_image_scale_;
}
const ::object_detection::protos::RandomRGBtoGray&
PreprocessingStep::_Internal::random_rgb_to_gray(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_rgb_to_gray_;
}
const ::object_detection::protos::RandomAdjustBrightness&
PreprocessingStep::_Internal::random_adjust_brightness(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_adjust_brightness_;
}
const ::object_detection::protos::RandomAdjustContrast&
PreprocessingStep::_Internal::random_adjust_contrast(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_adjust_contrast_;
}
const ::object_detection::protos::RandomAdjustHue&
PreprocessingStep::_Internal::random_adjust_hue(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_adjust_hue_;
}
const ::object_detection::protos::RandomAdjustSaturation&
PreprocessingStep::_Internal::random_adjust_saturation(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_adjust_saturation_;
}
const ::object_detection::protos::RandomDistortColor&
PreprocessingStep::_Internal::random_distort_color(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_distort_color_;
}
const ::object_detection::protos::RandomJitterBoxes&
PreprocessingStep::_Internal::random_jitter_boxes(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_jitter_boxes_;
}
const ::object_detection::protos::RandomCropImage&
PreprocessingStep::_Internal::random_crop_image(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_crop_image_;
}
const ::object_detection::protos::RandomPadImage&
PreprocessingStep::_Internal::random_pad_image(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_pad_image_;
}
const ::object_detection::protos::RandomCropPadImage&
PreprocessingStep::_Internal::random_crop_pad_image(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_crop_pad_image_;
}
const ::object_detection::protos::RandomCropToAspectRatio&
PreprocessingStep::_Internal::random_crop_to_aspect_ratio(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_crop_to_aspect_ratio_;
}
const ::object_detection::protos::RandomBlackPatches&
PreprocessingStep::_Internal::random_black_patches(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_black_patches_;
}
const ::object_detection::protos::RandomResizeMethod&
PreprocessingStep::_Internal::random_resize_method(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_resize_method_;
}
const ::object_detection::protos::ScaleBoxesToPixelCoordinates&
PreprocessingStep::_Internal::scale_boxes_to_pixel_coordinates(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.scale_boxes_to_pixel_coordinates_;
}
const ::object_detection::protos::ResizeImage&
PreprocessingStep::_Internal::resize_image(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.resize_image_;
}
const ::object_detection::protos::SubtractChannelMean&
PreprocessingStep::_Internal::subtract_channel_mean(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.subtract_channel_mean_;
}
const ::object_detection::protos::SSDRandomCrop&
PreprocessingStep::_Internal::ssd_random_crop(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.ssd_random_crop_;
}
const ::object_detection::protos::SSDRandomCropPad&
PreprocessingStep::_Internal::ssd_random_crop_pad(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.ssd_random_crop_pad_;
}
const ::object_detection::protos::SSDRandomCropFixedAspectRatio&
PreprocessingStep::_Internal::ssd_random_crop_fixed_aspect_ratio(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.ssd_random_crop_fixed_aspect_ratio_;
}
const ::object_detection::protos::SSDRandomCropPadFixedAspectRatio&
PreprocessingStep::_Internal::ssd_random_crop_pad_fixed_aspect_ratio(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.ssd_random_crop_pad_fixed_aspect_ratio_;
}
const ::object_detection::protos::RandomVerticalFlip&
PreprocessingStep::_Internal::random_vertical_flip(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_vertical_flip_;
}
const ::object_detection::protos::RandomRotation90&
PreprocessingStep::_Internal::random_rotation90(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_rotation90_;
}
const ::object_detection::protos::RGBtoGray&
PreprocessingStep::_Internal::rgb_to_gray(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.rgb_to_gray_;
}
const ::object_detection::protos::ConvertClassLogitsToSoftmax&
PreprocessingStep::_Internal::convert_class_logits_to_softmax(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.convert_class_logits_to_softmax_;
}
const ::object_detection::protos::RandomAbsolutePadImage&
PreprocessingStep::_Internal::random_absolute_pad_image(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_absolute_pad_image_;
}
const ::object_detection::protos::RandomSelfConcatImage&
PreprocessingStep::_Internal::random_self_concat_image(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.random_self_concat_image_;
}
const ::object_detection::protos::AutoAugmentImage&
PreprocessingStep::_Internal::autoaugment_image(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.autoaugment_image_;
}
const ::object_detection::protos::DropLabelProbabilistically&
PreprocessingStep::_Internal::drop_label_probabilistically(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.drop_label_probabilistically_;
}
const ::object_detection::protos::RemapLabels&
PreprocessingStep::_Internal::remap_labels(const PreprocessingStep* msg) {
  return *msg->_impl_.preprocessing_step_.remap_labels_;
}
void PreprocessingStep::set_allocated_normalize_image(::object_detection::protos::NormalizeImage* normalize_image) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (normalize_image) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(normalize_image);
    if (message_arena != submessage_arena) {
      normalize_image = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, normalize_image, submessage_arena);
    }
    set_has_normalize_image();
    _impl_.preprocessing_step_.normalize_image_ = normalize_image;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.normalize_image)
}
void PreprocessingStep::set_allocated_random_horizontal_flip(::object_detection::protos::RandomHorizontalFlip* random_horizontal_flip) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_horizontal_flip) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_horizontal_flip);
    if (message_arena != submessage_arena) {
      random_horizontal_flip = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_horizontal_flip, submessage_arena);
    }
    set_has_random_horizontal_flip();
    _impl_.preprocessing_step_.random_horizontal_flip_ = random_horizontal_flip;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_horizontal_flip)
}
void PreprocessingStep::set_allocated_random_pixel_value_scale(::object_detection::protos::RandomPixelValueScale* random_pixel_value_scale) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_pixel_value_scale) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_pixel_value_scale);
    if (message_arena != submessage_arena) {
      random_pixel_value_scale = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_pixel_value_scale, submessage_arena);
    }
    set_has_random_pixel_value_scale();
    _impl_.preprocessing_step_.random_pixel_value_scale_ = random_pixel_value_scale;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_pixel_value_scale)
}
void PreprocessingStep::set_allocated_random_image_scale(::object_detection::protos::RandomImageScale* random_image_scale) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_image_scale) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_image_scale);
    if (message_arena != submessage_arena) {
      random_image_scale = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_image_scale, submessage_arena);
    }
    set_has_random_image_scale();
    _impl_.preprocessing_step_.random_image_scale_ = random_image_scale;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_image_scale)
}
void PreprocessingStep::set_allocated_random_rgb_to_gray(::object_detection::protos::RandomRGBtoGray* random_rgb_to_gray) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_rgb_to_gray) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_rgb_to_gray);
    if (message_arena != submessage_arena) {
      random_rgb_to_gray = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_rgb_to_gray, submessage_arena);
    }
    set_has_random_rgb_to_gray();
    _impl_.preprocessing_step_.random_rgb_to_gray_ = random_rgb_to_gray;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_rgb_to_gray)
}
void PreprocessingStep::set_allocated_random_adjust_brightness(::object_detection::protos::RandomAdjustBrightness* random_adjust_brightness) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_adjust_brightness) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_adjust_brightness);
    if (message_arena != submessage_arena) {
      random_adjust_brightness = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_adjust_brightness, submessage_arena);
    }
    set_has_random_adjust_brightness();
    _impl_.preprocessing_step_.random_adjust_brightness_ = random_adjust_brightness;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_adjust_brightness)
}
void PreprocessingStep::set_allocated_random_adjust_contrast(::object_detection::protos::RandomAdjustContrast* random_adjust_contrast) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_adjust_contrast) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_adjust_contrast);
    if (message_arena != submessage_arena) {
      random_adjust_contrast = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_adjust_contrast, submessage_arena);
    }
    set_has_random_adjust_contrast();
    _impl_.preprocessing_step_.random_adjust_contrast_ = random_adjust_contrast;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_adjust_contrast)
}
void PreprocessingStep::set_allocated_random_adjust_hue(::object_detection::protos::RandomAdjustHue* random_adjust_hue) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_adjust_hue) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_adjust_hue);
    if (message_arena != submessage_arena) {
      random_adjust_hue = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_adjust_hue, submessage_arena);
    }
    set_has_random_adjust_hue();
    _impl_.preprocessing_step_.random_adjust_hue_ = random_adjust_hue;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_adjust_hue)
}
void PreprocessingStep::set_allocated_random_adjust_saturation(::object_detection::protos::RandomAdjustSaturation* random_adjust_saturation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_adjust_saturation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_adjust_saturation);
    if (message_arena != submessage_arena) {
      random_adjust_saturation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_adjust_saturation, submessage_arena);
    }
    set_has_random_adjust_saturation();
    _impl_.preprocessing_step_.random_adjust_saturation_ = random_adjust_saturation;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_adjust_saturation)
}
void PreprocessingStep::set_allocated_random_distort_color(::object_detection::protos::RandomDistortColor* random_distort_color) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_distort_color) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_distort_color);
    if (message_arena != submessage_arena) {
      random_distort_color = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_distort_color, submessage_arena);
    }
    set_has_random_distort_color();
    _impl_.preprocessing_step_.random_distort_color_ = random_distort_color;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_distort_color)
}
void PreprocessingStep::set_allocated_random_jitter_boxes(::object_detection::protos::RandomJitterBoxes* random_jitter_boxes) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_jitter_boxes) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_jitter_boxes);
    if (message_arena != submessage_arena) {
      random_jitter_boxes = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_jitter_boxes, submessage_arena);
    }
    set_has_random_jitter_boxes();
    _impl_.preprocessing_step_.random_jitter_boxes_ = random_jitter_boxes;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_jitter_boxes)
}
void PreprocessingStep::set_allocated_random_crop_image(::object_detection::protos::RandomCropImage* random_crop_image) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_crop_image) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_crop_image);
    if (message_arena != submessage_arena) {
      random_crop_image = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_crop_image, submessage_arena);
    }
    set_has_random_crop_image();
    _impl_.preprocessing_step_.random_crop_image_ = random_crop_image;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_crop_image)
}
void PreprocessingStep::set_allocated_random_pad_image(::object_detection::protos::RandomPadImage* random_pad_image) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_pad_image) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_pad_image);
    if (message_arena != submessage_arena) {
      random_pad_image = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_pad_image, submessage_arena);
    }
    set_has_random_pad_image();
    _impl_.preprocessing_step_.random_pad_image_ = random_pad_image;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_pad_image)
}
void PreprocessingStep::set_allocated_random_crop_pad_image(::object_detection::protos::RandomCropPadImage* random_crop_pad_image) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_crop_pad_image) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_crop_pad_image);
    if (message_arena != submessage_arena) {
      random_crop_pad_image = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_crop_pad_image, submessage_arena);
    }
    set_has_random_crop_pad_image();
    _impl_.preprocessing_step_.random_crop_pad_image_ = random_crop_pad_image;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_crop_pad_image)
}
void PreprocessingStep::set_allocated_random_crop_to_aspect_ratio(::object_detection::protos::RandomCropToAspectRatio* random_crop_to_aspect_ratio) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_crop_to_aspect_ratio) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_crop_to_aspect_ratio);
    if (message_arena != submessage_arena) {
      random_crop_to_aspect_ratio = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_crop_to_aspect_ratio, submessage_arena);
    }
    set_has_random_crop_to_aspect_ratio();
    _impl_.preprocessing_step_.random_crop_to_aspect_ratio_ = random_crop_to_aspect_ratio;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_crop_to_aspect_ratio)
}
void PreprocessingStep::set_allocated_random_black_patches(::object_detection::protos::RandomBlackPatches* random_black_patches) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_black_patches) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_black_patches);
    if (message_arena != submessage_arena) {
      random_black_patches = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_black_patches, submessage_arena);
    }
    set_has_random_black_patches();
    _impl_.preprocessing_step_.random_black_patches_ = random_black_patches;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_black_patches)
}
void PreprocessingStep::set_allocated_random_resize_method(::object_detection::protos::RandomResizeMethod* random_resize_method) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_resize_method) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_resize_method);
    if (message_arena != submessage_arena) {
      random_resize_method = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_resize_method, submessage_arena);
    }
    set_has_random_resize_method();
    _impl_.preprocessing_step_.random_resize_method_ = random_resize_method;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_resize_method)
}
void PreprocessingStep::set_allocated_scale_boxes_to_pixel_coordinates(::object_detection::protos::ScaleBoxesToPixelCoordinates* scale_boxes_to_pixel_coordinates) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (scale_boxes_to_pixel_coordinates) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(scale_boxes_to_pixel_coordinates);
    if (message_arena != submessage_arena) {
      scale_boxes_to_pixel_coordinates = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, scale_boxes_to_pixel_coordinates, submessage_arena);
    }
    set_has_scale_boxes_to_pixel_coordinates();
    _impl_.preprocessing_step_.scale_boxes_to_pixel_coordinates_ = scale_boxes_to_pixel_coordinates;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.scale_boxes_to_pixel_coordinates)
}
void PreprocessingStep::set_allocated_resize_image(::object_detection::protos::ResizeImage* resize_image) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (resize_image) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(resize_image);
    if (message_arena != submessage_arena) {
      resize_image = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, resize_image, submessage_arena);
    }
    set_has_resize_image();
    _impl_.preprocessing_step_.resize_image_ = resize_image;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.resize_image)
}
void PreprocessingStep::set_allocated_subtract_channel_mean(::object_detection::protos::SubtractChannelMean* subtract_channel_mean) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (subtract_channel_mean) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(subtract_channel_mean);
    if (message_arena != submessage_arena) {
      subtract_channel_mean = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, subtract_channel_mean, submessage_arena);
    }
    set_has_subtract_channel_mean();
    _impl_.preprocessing_step_.subtract_channel_mean_ = subtract_channel_mean;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.subtract_channel_mean)
}
void PreprocessingStep::set_allocated_ssd_random_crop(::object_detection::protos::SSDRandomCrop* ssd_random_crop) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (ssd_random_crop) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(ssd_random_crop);
    if (message_arena != submessage_arena) {
      ssd_random_crop = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, ssd_random_crop, submessage_arena);
    }
    set_has_ssd_random_crop();
    _impl_.preprocessing_step_.ssd_random_crop_ = ssd_random_crop;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.ssd_random_crop)
}
void PreprocessingStep::set_allocated_ssd_random_crop_pad(::object_detection::protos::SSDRandomCropPad* ssd_random_crop_pad) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (ssd_random_crop_pad) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(ssd_random_crop_pad);
    if (message_arena != submessage_arena) {
      ssd_random_crop_pad = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, ssd_random_crop_pad, submessage_arena);
    }
    set_has_ssd_random_crop_pad();
    _impl_.preprocessing_step_.ssd_random_crop_pad_ = ssd_random_crop_pad;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.ssd_random_crop_pad)
}
void PreprocessingStep::set_allocated_ssd_random_crop_fixed_aspect_ratio(::object_detection::protos::SSDRandomCropFixedAspectRatio* ssd_random_crop_fixed_aspect_ratio) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (ssd_random_crop_fixed_aspect_ratio) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(ssd_random_crop_fixed_aspect_ratio);
    if (message_arena != submessage_arena) {
      ssd_random_crop_fixed_aspect_ratio = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, ssd_random_crop_fixed_aspect_ratio, submessage_arena);
    }
    set_has_ssd_random_crop_fixed_aspect_ratio();
    _impl_.preprocessing_step_.ssd_random_crop_fixed_aspect_ratio_ = ssd_random_crop_fixed_aspect_ratio;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.ssd_random_crop_fixed_aspect_ratio)
}
void PreprocessingStep::set_allocated_ssd_random_crop_pad_fixed_aspect_ratio(::object_detection::protos::SSDRandomCropPadFixedAspectRatio* ssd_random_crop_pad_fixed_aspect_ratio) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (ssd_random_crop_pad_fixed_aspect_ratio) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(ssd_random_crop_pad_fixed_aspect_ratio);
    if (message_arena != submessage_arena) {
      ssd_random_crop_pad_fixed_aspect_ratio = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, ssd_random_crop_pad_fixed_aspect_ratio, submessage_arena);
    }
    set_has_ssd_random_crop_pad_fixed_aspect_ratio();
    _impl_.preprocessing_step_.ssd_random_crop_pad_fixed_aspect_ratio_ = ssd_random_crop_pad_fixed_aspect_ratio;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.ssd_random_crop_pad_fixed_aspect_ratio)
}
void PreprocessingStep::set_allocated_random_vertical_flip(::object_detection::protos::RandomVerticalFlip* random_vertical_flip) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_vertical_flip) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_vertical_flip);
    if (message_arena != submessage_arena) {
      random_vertical_flip = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_vertical_flip, submessage_arena);
    }
    set_has_random_vertical_flip();
    _impl_.preprocessing_step_.random_vertical_flip_ = random_vertical_flip;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_vertical_flip)
}
void PreprocessingStep::set_allocated_random_rotation90(::object_detection::protos::RandomRotation90* random_rotation90) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_rotation90) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_rotation90);
    if (message_arena != submessage_arena) {
      random_rotation90 = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_rotation90, submessage_arena);
    }
    set_has_random_rotation90();
    _impl_.preprocessing_step_.random_rotation90_ = random_rotation90;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_rotation90)
}
void PreprocessingStep::set_allocated_rgb_to_gray(::object_detection::protos::RGBtoGray* rgb_to_gray) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (rgb_to_gray) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(rgb_to_gray);
    if (message_arena != submessage_arena) {
      rgb_to_gray = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, rgb_to_gray, submessage_arena);
    }
    set_has_rgb_to_gray();
    _impl_.preprocessing_step_.rgb_to_gray_ = rgb_to_gray;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.rgb_to_gray)
}
void PreprocessingStep::set_allocated_convert_class_logits_to_softmax(::object_detection::protos::ConvertClassLogitsToSoftmax* convert_class_logits_to_softmax) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (convert_class_logits_to_softmax) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(convert_class_logits_to_softmax);
    if (message_arena != submessage_arena) {
      convert_class_logits_to_softmax = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, convert_class_logits_to_softmax, submessage_arena);
    }
    set_has_convert_class_logits_to_softmax();
    _impl_.preprocessing_step_.convert_class_logits_to_softmax_ = convert_class_logits_to_softmax;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.convert_class_logits_to_softmax)
}
void PreprocessingStep::set_allocated_random_absolute_pad_image(::object_detection::protos::RandomAbsolutePadImage* random_absolute_pad_image) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_absolute_pad_image) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_absolute_pad_image);
    if (message_arena != submessage_arena) {
      random_absolute_pad_image = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_absolute_pad_image, submessage_arena);
    }
    set_has_random_absolute_pad_image();
    _impl_.preprocessing_step_.random_absolute_pad_image_ = random_absolute_pad_image;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_absolute_pad_image)
}
void PreprocessingStep::set_allocated_random_self_concat_image(::object_detection::protos::RandomSelfConcatImage* random_self_concat_image) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (random_self_concat_image) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(random_self_concat_image);
    if (message_arena != submessage_arena) {
      random_self_concat_image = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, random_self_concat_image, submessage_arena);
    }
    set_has_random_self_concat_image();
    _impl_.preprocessing_step_.random_self_concat_image_ = random_self_concat_image;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.random_self_concat_image)
}
void PreprocessingStep::set_allocated_autoaugment_image(::object_detection::protos::AutoAugmentImage* autoaugment_image) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (autoaugment_image) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(autoaugment_image);
    if (message_arena != submessage_arena) {
      autoaugment_image = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, autoaugment_image, submessage_arena);
    }
    set_has_autoaugment_image();
    _impl_.preprocessing_step_.autoaugment_image_ = autoaugment_image;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.autoaugment_image)
}
void PreprocessingStep::set_allocated_drop_label_probabilistically(::object_detection::protos::DropLabelProbabilistically* drop_label_probabilistically) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (drop_label_probabilistically) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(drop_label_probabilistically);
    if (message_arena != submessage_arena) {
      drop_label_probabilistically = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, drop_label_probabilistically, submessage_arena);
    }
    set_has_drop_label_probabilistically();
    _impl_.preprocessing_step_.drop_label_probabilistically_ = drop_label_probabilistically;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.drop_label_probabilistically)
}
void PreprocessingStep::set_allocated_remap_labels(::object_detection::protos::RemapLabels* remap_labels) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_preprocessing_step();
  if (remap_labels) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(remap_labels);
    if (message_arena != submessage_arena) {
      remap_labels = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, remap_labels, submessage_arena);
    }
    set_has_remap_labels();
    _impl_.preprocessing_step_.remap_labels_ = remap_labels;
  }
  // @@protoc_insertion_point(field_set_allocated:object_detection.protos.PreprocessingStep.remap_labels)
}
PreprocessingStep::PreprocessingStep(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.PreprocessingStep)
}
PreprocessingStep::PreprocessingStep(const PreprocessingStep& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  PreprocessingStep* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.preprocessing_step_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  clear_has_preprocessing_step();
  switch (from.preprocessing_step_case()) {
    case kNormalizeImage: {
      _this->_internal_mutable_normalize_image()->::object_detection::protos::NormalizeImage::MergeFrom(
          from._internal_normalize_image());
      break;
    }
    case kRandomHorizontalFlip: {
      _this->_internal_mutable_random_horizontal_flip()->::object_detection::protos::RandomHorizontalFlip::MergeFrom(
          from._internal_random_horizontal_flip());
      break;
    }
    case kRandomPixelValueScale: {
      _this->_internal_mutable_random_pixel_value_scale()->::object_detection::protos::RandomPixelValueScale::MergeFrom(
          from._internal_random_pixel_value_scale());
      break;
    }
    case kRandomImageScale: {
      _this->_internal_mutable_random_image_scale()->::object_detection::protos::RandomImageScale::MergeFrom(
          from._internal_random_image_scale());
      break;
    }
    case kRandomRgbToGray: {
      _this->_internal_mutable_random_rgb_to_gray()->::object_detection::protos::RandomRGBtoGray::MergeFrom(
          from._internal_random_rgb_to_gray());
      break;
    }
    case kRandomAdjustBrightness: {
      _this->_internal_mutable_random_adjust_brightness()->::object_detection::protos::RandomAdjustBrightness::MergeFrom(
          from._internal_random_adjust_brightness());
      break;
    }
    case kRandomAdjustContrast: {
      _this->_internal_mutable_random_adjust_contrast()->::object_detection::protos::RandomAdjustContrast::MergeFrom(
          from._internal_random_adjust_contrast());
      break;
    }
    case kRandomAdjustHue: {
      _this->_internal_mutable_random_adjust_hue()->::object_detection::protos::RandomAdjustHue::MergeFrom(
          from._internal_random_adjust_hue());
      break;
    }
    case kRandomAdjustSaturation: {
      _this->_internal_mutable_random_adjust_saturation()->::object_detection::protos::RandomAdjustSaturation::MergeFrom(
          from._internal_random_adjust_saturation());
      break;
    }
    case kRandomDistortColor: {
      _this->_internal_mutable_random_distort_color()->::object_detection::protos::RandomDistortColor::MergeFrom(
          from._internal_random_distort_color());
      break;
    }
    case kRandomJitterBoxes: {
      _this->_internal_mutable_random_jitter_boxes()->::object_detection::protos::RandomJitterBoxes::MergeFrom(
          from._internal_random_jitter_boxes());
      break;
    }
    case kRandomCropImage: {
      _this->_internal_mutable_random_crop_image()->::object_detection::protos::RandomCropImage::MergeFrom(
          from._internal_random_crop_image());
      break;
    }
    case kRandomPadImage: {
      _this->_internal_mutable_random_pad_image()->::object_detection::protos::RandomPadImage::MergeFrom(
          from._internal_random_pad_image());
      break;
    }
    case kRandomCropPadImage: {
      _this->_internal_mutable_random_crop_pad_image()->::object_detection::protos::RandomCropPadImage::MergeFrom(
          from._internal_random_crop_pad_image());
      break;
    }
    case kRandomCropToAspectRatio: {
      _this->_internal_mutable_random_crop_to_aspect_ratio()->::object_detection::protos::RandomCropToAspectRatio::MergeFrom(
          from._internal_random_crop_to_aspect_ratio());
      break;
    }
    case kRandomBlackPatches: {
      _this->_internal_mutable_random_black_patches()->::object_detection::protos::RandomBlackPatches::MergeFrom(
          from._internal_random_black_patches());
      break;
    }
    case kRandomResizeMethod: {
      _this->_internal_mutable_random_resize_method()->::object_detection::protos::RandomResizeMethod::MergeFrom(
          from._internal_random_resize_method());
      break;
    }
    case kScaleBoxesToPixelCoordinates: {
      _this->_internal_mutable_scale_boxes_to_pixel_coordinates()->::object_detection::protos::ScaleBoxesToPixelCoordinates::MergeFrom(
          from._internal_scale_boxes_to_pixel_coordinates());
      break;
    }
    case kResizeImage: {
      _this->_internal_mutable_resize_image()->::object_detection::protos::ResizeImage::MergeFrom(
          from._internal_resize_image());
      break;
    }
    case kSubtractChannelMean: {
      _this->_internal_mutable_subtract_channel_mean()->::object_detection::protos::SubtractChannelMean::MergeFrom(
          from._internal_subtract_channel_mean());
      break;
    }
    case kSsdRandomCrop: {
      _this->_internal_mutable_ssd_random_crop()->::object_detection::protos::SSDRandomCrop::MergeFrom(
          from._internal_ssd_random_crop());
      break;
    }
    case kSsdRandomCropPad: {
      _this->_internal_mutable_ssd_random_crop_pad()->::object_detection::protos::SSDRandomCropPad::MergeFrom(
          from._internal_ssd_random_crop_pad());
      break;
    }
    case kSsdRandomCropFixedAspectRatio: {
      _this->_internal_mutable_ssd_random_crop_fixed_aspect_ratio()->::object_detection::protos::SSDRandomCropFixedAspectRatio::MergeFrom(
          from._internal_ssd_random_crop_fixed_aspect_ratio());
      break;
    }
    case kSsdRandomCropPadFixedAspectRatio: {
      _this->_internal_mutable_ssd_random_crop_pad_fixed_aspect_ratio()->::object_detection::protos::SSDRandomCropPadFixedAspectRatio::MergeFrom(
          from._internal_ssd_random_crop_pad_fixed_aspect_ratio());
      break;
    }
    case kRandomVerticalFlip: {
      _this->_internal_mutable_random_vertical_flip()->::object_detection::protos::RandomVerticalFlip::MergeFrom(
          from._internal_random_vertical_flip());
      break;
    }
    case kRandomRotation90: {
      _this->_internal_mutable_random_rotation90()->::object_detection::protos::RandomRotation90::MergeFrom(
          from._internal_random_rotation90());
      break;
    }
    case kRgbToGray: {
      _this->_internal_mutable_rgb_to_gray()->::object_detection::protos::RGBtoGray::MergeFrom(
          from._internal_rgb_to_gray());
      break;
    }
    case kConvertClassLogitsToSoftmax: {
      _this->_internal_mutable_convert_class_logits_to_softmax()->::object_detection::protos::ConvertClassLogitsToSoftmax::MergeFrom(
          from._internal_convert_class_logits_to_softmax());
      break;
    }
    case kRandomAbsolutePadImage: {
      _this->_internal_mutable_random_absolute_pad_image()->::object_detection::protos::RandomAbsolutePadImage::MergeFrom(
          from._internal_random_absolute_pad_image());
      break;
    }
    case kRandomSelfConcatImage: {
      _this->_internal_mutable_random_self_concat_image()->::object_detection::protos::RandomSelfConcatImage::MergeFrom(
          from._internal_random_self_concat_image());
      break;
    }
    case kAutoaugmentImage: {
      _this->_internal_mutable_autoaugment_image()->::object_detection::protos::AutoAugmentImage::MergeFrom(
          from._internal_autoaugment_image());
      break;
    }
    case kDropLabelProbabilistically: {
      _this->_internal_mutable_drop_label_probabilistically()->::object_detection::protos::DropLabelProbabilistically::MergeFrom(
          from._internal_drop_label_probabilistically());
      break;
    }
    case kRemapLabels: {
      _this->_internal_mutable_remap_labels()->::object_detection::protos::RemapLabels::MergeFrom(
          from._internal_remap_labels());
      break;
    }
    case PREPROCESSING_STEP_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.PreprocessingStep)
}

inline void PreprocessingStep::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.preprocessing_step_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_preprocessing_step();
}

PreprocessingStep::~PreprocessingStep() {
  // @@protoc_insertion_point(destructor:object_detection.protos.PreprocessingStep)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PreprocessingStep::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_preprocessing_step()) {
    clear_preprocessing_step();
  }
}

void PreprocessingStep::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PreprocessingStep::clear_preprocessing_step() {
// @@protoc_insertion_point(one_of_clear_start:object_detection.protos.PreprocessingStep)
  switch (preprocessing_step_case()) {
    case kNormalizeImage: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.normalize_image_;
      }
      break;
    }
    case kRandomHorizontalFlip: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_horizontal_flip_;
      }
      break;
    }
    case kRandomPixelValueScale: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_pixel_value_scale_;
      }
      break;
    }
    case kRandomImageScale: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_image_scale_;
      }
      break;
    }
    case kRandomRgbToGray: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_rgb_to_gray_;
      }
      break;
    }
    case kRandomAdjustBrightness: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_adjust_brightness_;
      }
      break;
    }
    case kRandomAdjustContrast: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_adjust_contrast_;
      }
      break;
    }
    case kRandomAdjustHue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_adjust_hue_;
      }
      break;
    }
    case kRandomAdjustSaturation: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_adjust_saturation_;
      }
      break;
    }
    case kRandomDistortColor: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_distort_color_;
      }
      break;
    }
    case kRandomJitterBoxes: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_jitter_boxes_;
      }
      break;
    }
    case kRandomCropImage: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_crop_image_;
      }
      break;
    }
    case kRandomPadImage: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_pad_image_;
      }
      break;
    }
    case kRandomCropPadImage: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_crop_pad_image_;
      }
      break;
    }
    case kRandomCropToAspectRatio: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_crop_to_aspect_ratio_;
      }
      break;
    }
    case kRandomBlackPatches: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_black_patches_;
      }
      break;
    }
    case kRandomResizeMethod: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_resize_method_;
      }
      break;
    }
    case kScaleBoxesToPixelCoordinates: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.scale_boxes_to_pixel_coordinates_;
      }
      break;
    }
    case kResizeImage: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.resize_image_;
      }
      break;
    }
    case kSubtractChannelMean: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.subtract_channel_mean_;
      }
      break;
    }
    case kSsdRandomCrop: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.ssd_random_crop_;
      }
      break;
    }
    case kSsdRandomCropPad: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.ssd_random_crop_pad_;
      }
      break;
    }
    case kSsdRandomCropFixedAspectRatio: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.ssd_random_crop_fixed_aspect_ratio_;
      }
      break;
    }
    case kSsdRandomCropPadFixedAspectRatio: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.ssd_random_crop_pad_fixed_aspect_ratio_;
      }
      break;
    }
    case kRandomVerticalFlip: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_vertical_flip_;
      }
      break;
    }
    case kRandomRotation90: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_rotation90_;
      }
      break;
    }
    case kRgbToGray: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.rgb_to_gray_;
      }
      break;
    }
    case kConvertClassLogitsToSoftmax: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.convert_class_logits_to_softmax_;
      }
      break;
    }
    case kRandomAbsolutePadImage: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_absolute_pad_image_;
      }
      break;
    }
    case kRandomSelfConcatImage: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.random_self_concat_image_;
      }
      break;
    }
    case kAutoaugmentImage: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.autoaugment_image_;
      }
      break;
    }
    case kDropLabelProbabilistically: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.drop_label_probabilistically_;
      }
      break;
    }
    case kRemapLabels: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.preprocessing_step_.remap_labels_;
      }
      break;
    }
    case PREPROCESSING_STEP_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = PREPROCESSING_STEP_NOT_SET;
}


void PreprocessingStep::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.PreprocessingStep)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_preprocessing_step();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PreprocessingStep::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .object_detection.protos.NormalizeImage normalize_image = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_normalize_image(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomHorizontalFlip random_horizontal_flip = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_horizontal_flip(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomPixelValueScale random_pixel_value_scale = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_pixel_value_scale(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomImageScale random_image_scale = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_image_scale(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomRGBtoGray random_rgb_to_gray = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_rgb_to_gray(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomAdjustBrightness random_adjust_brightness = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_adjust_brightness(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomAdjustContrast random_adjust_contrast = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_adjust_contrast(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomAdjustHue random_adjust_hue = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_adjust_hue(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomAdjustSaturation random_adjust_saturation = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_adjust_saturation(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomDistortColor random_distort_color = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_distort_color(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomJitterBoxes random_jitter_boxes = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_jitter_boxes(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomCropImage random_crop_image = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_crop_image(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomPadImage random_pad_image = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_pad_image(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomCropPadImage random_crop_pad_image = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 114)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_crop_pad_image(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomCropToAspectRatio random_crop_to_aspect_ratio = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 122)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_crop_to_aspect_ratio(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomBlackPatches random_black_patches = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 130)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_black_patches(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomResizeMethod random_resize_method = 17;
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 138)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_resize_method(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.ScaleBoxesToPixelCoordinates scale_boxes_to_pixel_coordinates = 18;
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 146)) {
          ptr = ctx->ParseMessage(_internal_mutable_scale_boxes_to_pixel_coordinates(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.ResizeImage resize_image = 19;
      case 19:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 154)) {
          ptr = ctx->ParseMessage(_internal_mutable_resize_image(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.SubtractChannelMean subtract_channel_mean = 20;
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 162)) {
          ptr = ctx->ParseMessage(_internal_mutable_subtract_channel_mean(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.SSDRandomCrop ssd_random_crop = 21;
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 170)) {
          ptr = ctx->ParseMessage(_internal_mutable_ssd_random_crop(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.SSDRandomCropPad ssd_random_crop_pad = 22;
      case 22:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 178)) {
          ptr = ctx->ParseMessage(_internal_mutable_ssd_random_crop_pad(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.SSDRandomCropFixedAspectRatio ssd_random_crop_fixed_aspect_ratio = 23;
      case 23:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 186)) {
          ptr = ctx->ParseMessage(_internal_mutable_ssd_random_crop_fixed_aspect_ratio(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.SSDRandomCropPadFixedAspectRatio ssd_random_crop_pad_fixed_aspect_ratio = 24;
      case 24:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 194)) {
          ptr = ctx->ParseMessage(_internal_mutable_ssd_random_crop_pad_fixed_aspect_ratio(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomVerticalFlip random_vertical_flip = 25;
      case 25:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 202)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_vertical_flip(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomRotation90 random_rotation90 = 26;
      case 26:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 210)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_rotation90(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RGBtoGray rgb_to_gray = 27;
      case 27:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 218)) {
          ptr = ctx->ParseMessage(_internal_mutable_rgb_to_gray(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.ConvertClassLogitsToSoftmax convert_class_logits_to_softmax = 28;
      case 28:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 226)) {
          ptr = ctx->ParseMessage(_internal_mutable_convert_class_logits_to_softmax(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomAbsolutePadImage random_absolute_pad_image = 29;
      case 29:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 234)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_absolute_pad_image(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RandomSelfConcatImage random_self_concat_image = 30;
      case 30:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 242)) {
          ptr = ctx->ParseMessage(_internal_mutable_random_self_concat_image(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.AutoAugmentImage autoaugment_image = 31;
      case 31:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 250)) {
          ptr = ctx->ParseMessage(_internal_mutable_autoaugment_image(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.DropLabelProbabilistically drop_label_probabilistically = 32;
      case 32:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 2)) {
          ptr = ctx->ParseMessage(_internal_mutable_drop_label_probabilistically(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .object_detection.protos.RemapLabels remap_labels = 33;
      case 33:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_remap_labels(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PreprocessingStep::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.PreprocessingStep)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (preprocessing_step_case()) {
    case kNormalizeImage: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, _Internal::normalize_image(this),
          _Internal::normalize_image(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomHorizontalFlip: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, _Internal::random_horizontal_flip(this),
          _Internal::random_horizontal_flip(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomPixelValueScale: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, _Internal::random_pixel_value_scale(this),
          _Internal::random_pixel_value_scale(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomImageScale: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(4, _Internal::random_image_scale(this),
          _Internal::random_image_scale(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomRgbToGray: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(5, _Internal::random_rgb_to_gray(this),
          _Internal::random_rgb_to_gray(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomAdjustBrightness: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(6, _Internal::random_adjust_brightness(this),
          _Internal::random_adjust_brightness(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomAdjustContrast: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(7, _Internal::random_adjust_contrast(this),
          _Internal::random_adjust_contrast(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomAdjustHue: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(8, _Internal::random_adjust_hue(this),
          _Internal::random_adjust_hue(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomAdjustSaturation: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(9, _Internal::random_adjust_saturation(this),
          _Internal::random_adjust_saturation(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomDistortColor: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(10, _Internal::random_distort_color(this),
          _Internal::random_distort_color(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomJitterBoxes: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(11, _Internal::random_jitter_boxes(this),
          _Internal::random_jitter_boxes(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomCropImage: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(12, _Internal::random_crop_image(this),
          _Internal::random_crop_image(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomPadImage: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(13, _Internal::random_pad_image(this),
          _Internal::random_pad_image(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomCropPadImage: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(14, _Internal::random_crop_pad_image(this),
          _Internal::random_crop_pad_image(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomCropToAspectRatio: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(15, _Internal::random_crop_to_aspect_ratio(this),
          _Internal::random_crop_to_aspect_ratio(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomBlackPatches: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(16, _Internal::random_black_patches(this),
          _Internal::random_black_patches(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomResizeMethod: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(17, _Internal::random_resize_method(this),
          _Internal::random_resize_method(this).GetCachedSize(), target, stream);
      break;
    }
    case kScaleBoxesToPixelCoordinates: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(18, _Internal::scale_boxes_to_pixel_coordinates(this),
          _Internal::scale_boxes_to_pixel_coordinates(this).GetCachedSize(), target, stream);
      break;
    }
    case kResizeImage: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(19, _Internal::resize_image(this),
          _Internal::resize_image(this).GetCachedSize(), target, stream);
      break;
    }
    case kSubtractChannelMean: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(20, _Internal::subtract_channel_mean(this),
          _Internal::subtract_channel_mean(this).GetCachedSize(), target, stream);
      break;
    }
    case kSsdRandomCrop: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(21, _Internal::ssd_random_crop(this),
          _Internal::ssd_random_crop(this).GetCachedSize(), target, stream);
      break;
    }
    case kSsdRandomCropPad: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(22, _Internal::ssd_random_crop_pad(this),
          _Internal::ssd_random_crop_pad(this).GetCachedSize(), target, stream);
      break;
    }
    case kSsdRandomCropFixedAspectRatio: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(23, _Internal::ssd_random_crop_fixed_aspect_ratio(this),
          _Internal::ssd_random_crop_fixed_aspect_ratio(this).GetCachedSize(), target, stream);
      break;
    }
    case kSsdRandomCropPadFixedAspectRatio: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(24, _Internal::ssd_random_crop_pad_fixed_aspect_ratio(this),
          _Internal::ssd_random_crop_pad_fixed_aspect_ratio(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomVerticalFlip: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(25, _Internal::random_vertical_flip(this),
          _Internal::random_vertical_flip(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomRotation90: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(26, _Internal::random_rotation90(this),
          _Internal::random_rotation90(this).GetCachedSize(), target, stream);
      break;
    }
    case kRgbToGray: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(27, _Internal::rgb_to_gray(this),
          _Internal::rgb_to_gray(this).GetCachedSize(), target, stream);
      break;
    }
    case kConvertClassLogitsToSoftmax: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(28, _Internal::convert_class_logits_to_softmax(this),
          _Internal::convert_class_logits_to_softmax(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomAbsolutePadImage: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(29, _Internal::random_absolute_pad_image(this),
          _Internal::random_absolute_pad_image(this).GetCachedSize(), target, stream);
      break;
    }
    case kRandomSelfConcatImage: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(30, _Internal::random_self_concat_image(this),
          _Internal::random_self_concat_image(this).GetCachedSize(), target, stream);
      break;
    }
    case kAutoaugmentImage: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(31, _Internal::autoaugment_image(this),
          _Internal::autoaugment_image(this).GetCachedSize(), target, stream);
      break;
    }
    case kDropLabelProbabilistically: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(32, _Internal::drop_label_probabilistically(this),
          _Internal::drop_label_probabilistically(this).GetCachedSize(), target, stream);
      break;
    }
    case kRemapLabels: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(33, _Internal::remap_labels(this),
          _Internal::remap_labels(this).GetCachedSize(), target, stream);
      break;
    }
    default: ;
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.PreprocessingStep)
  return target;
}

size_t PreprocessingStep::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.PreprocessingStep)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (preprocessing_step_case()) {
    // .object_detection.protos.NormalizeImage normalize_image = 1;
    case kNormalizeImage: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.normalize_image_);
      break;
    }
    // .object_detection.protos.RandomHorizontalFlip random_horizontal_flip = 2;
    case kRandomHorizontalFlip: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_horizontal_flip_);
      break;
    }
    // .object_detection.protos.RandomPixelValueScale random_pixel_value_scale = 3;
    case kRandomPixelValueScale: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_pixel_value_scale_);
      break;
    }
    // .object_detection.protos.RandomImageScale random_image_scale = 4;
    case kRandomImageScale: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_image_scale_);
      break;
    }
    // .object_detection.protos.RandomRGBtoGray random_rgb_to_gray = 5;
    case kRandomRgbToGray: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_rgb_to_gray_);
      break;
    }
    // .object_detection.protos.RandomAdjustBrightness random_adjust_brightness = 6;
    case kRandomAdjustBrightness: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_adjust_brightness_);
      break;
    }
    // .object_detection.protos.RandomAdjustContrast random_adjust_contrast = 7;
    case kRandomAdjustContrast: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_adjust_contrast_);
      break;
    }
    // .object_detection.protos.RandomAdjustHue random_adjust_hue = 8;
    case kRandomAdjustHue: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_adjust_hue_);
      break;
    }
    // .object_detection.protos.RandomAdjustSaturation random_adjust_saturation = 9;
    case kRandomAdjustSaturation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_adjust_saturation_);
      break;
    }
    // .object_detection.protos.RandomDistortColor random_distort_color = 10;
    case kRandomDistortColor: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_distort_color_);
      break;
    }
    // .object_detection.protos.RandomJitterBoxes random_jitter_boxes = 11;
    case kRandomJitterBoxes: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_jitter_boxes_);
      break;
    }
    // .object_detection.protos.RandomCropImage random_crop_image = 12;
    case kRandomCropImage: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_crop_image_);
      break;
    }
    // .object_detection.protos.RandomPadImage random_pad_image = 13;
    case kRandomPadImage: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_pad_image_);
      break;
    }
    // .object_detection.protos.RandomCropPadImage random_crop_pad_image = 14;
    case kRandomCropPadImage: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_crop_pad_image_);
      break;
    }
    // .object_detection.protos.RandomCropToAspectRatio random_crop_to_aspect_ratio = 15;
    case kRandomCropToAspectRatio: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_crop_to_aspect_ratio_);
      break;
    }
    // .object_detection.protos.RandomBlackPatches random_black_patches = 16;
    case kRandomBlackPatches: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_black_patches_);
      break;
    }
    // .object_detection.protos.RandomResizeMethod random_resize_method = 17;
    case kRandomResizeMethod: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_resize_method_);
      break;
    }
    // .object_detection.protos.ScaleBoxesToPixelCoordinates scale_boxes_to_pixel_coordinates = 18;
    case kScaleBoxesToPixelCoordinates: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.scale_boxes_to_pixel_coordinates_);
      break;
    }
    // .object_detection.protos.ResizeImage resize_image = 19;
    case kResizeImage: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.resize_image_);
      break;
    }
    // .object_detection.protos.SubtractChannelMean subtract_channel_mean = 20;
    case kSubtractChannelMean: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.subtract_channel_mean_);
      break;
    }
    // .object_detection.protos.SSDRandomCrop ssd_random_crop = 21;
    case kSsdRandomCrop: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.ssd_random_crop_);
      break;
    }
    // .object_detection.protos.SSDRandomCropPad ssd_random_crop_pad = 22;
    case kSsdRandomCropPad: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.ssd_random_crop_pad_);
      break;
    }
    // .object_detection.protos.SSDRandomCropFixedAspectRatio ssd_random_crop_fixed_aspect_ratio = 23;
    case kSsdRandomCropFixedAspectRatio: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.ssd_random_crop_fixed_aspect_ratio_);
      break;
    }
    // .object_detection.protos.SSDRandomCropPadFixedAspectRatio ssd_random_crop_pad_fixed_aspect_ratio = 24;
    case kSsdRandomCropPadFixedAspectRatio: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.ssd_random_crop_pad_fixed_aspect_ratio_);
      break;
    }
    // .object_detection.protos.RandomVerticalFlip random_vertical_flip = 25;
    case kRandomVerticalFlip: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_vertical_flip_);
      break;
    }
    // .object_detection.protos.RandomRotation90 random_rotation90 = 26;
    case kRandomRotation90: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_rotation90_);
      break;
    }
    // .object_detection.protos.RGBtoGray rgb_to_gray = 27;
    case kRgbToGray: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.rgb_to_gray_);
      break;
    }
    // .object_detection.protos.ConvertClassLogitsToSoftmax convert_class_logits_to_softmax = 28;
    case kConvertClassLogitsToSoftmax: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.convert_class_logits_to_softmax_);
      break;
    }
    // .object_detection.protos.RandomAbsolutePadImage random_absolute_pad_image = 29;
    case kRandomAbsolutePadImage: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_absolute_pad_image_);
      break;
    }
    // .object_detection.protos.RandomSelfConcatImage random_self_concat_image = 30;
    case kRandomSelfConcatImage: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.random_self_concat_image_);
      break;
    }
    // .object_detection.protos.AutoAugmentImage autoaugment_image = 31;
    case kAutoaugmentImage: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.autoaugment_image_);
      break;
    }
    // .object_detection.protos.DropLabelProbabilistically drop_label_probabilistically = 32;
    case kDropLabelProbabilistically: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.drop_label_probabilistically_);
      break;
    }
    // .object_detection.protos.RemapLabels remap_labels = 33;
    case kRemapLabels: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.preprocessing_step_.remap_labels_);
      break;
    }
    case PREPROCESSING_STEP_NOT_SET: {
      break;
    }
  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PreprocessingStep::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    PreprocessingStep::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PreprocessingStep::GetClassData() const { return &_class_data_; }


void PreprocessingStep::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<PreprocessingStep*>(&to_msg);
  auto& from = static_cast<const PreprocessingStep&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.PreprocessingStep)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.preprocessing_step_case()) {
    case kNormalizeImage: {
      _this->_internal_mutable_normalize_image()->::object_detection::protos::NormalizeImage::MergeFrom(
          from._internal_normalize_image());
      break;
    }
    case kRandomHorizontalFlip: {
      _this->_internal_mutable_random_horizontal_flip()->::object_detection::protos::RandomHorizontalFlip::MergeFrom(
          from._internal_random_horizontal_flip());
      break;
    }
    case kRandomPixelValueScale: {
      _this->_internal_mutable_random_pixel_value_scale()->::object_detection::protos::RandomPixelValueScale::MergeFrom(
          from._internal_random_pixel_value_scale());
      break;
    }
    case kRandomImageScale: {
      _this->_internal_mutable_random_image_scale()->::object_detection::protos::RandomImageScale::MergeFrom(
          from._internal_random_image_scale());
      break;
    }
    case kRandomRgbToGray: {
      _this->_internal_mutable_random_rgb_to_gray()->::object_detection::protos::RandomRGBtoGray::MergeFrom(
          from._internal_random_rgb_to_gray());
      break;
    }
    case kRandomAdjustBrightness: {
      _this->_internal_mutable_random_adjust_brightness()->::object_detection::protos::RandomAdjustBrightness::MergeFrom(
          from._internal_random_adjust_brightness());
      break;
    }
    case kRandomAdjustContrast: {
      _this->_internal_mutable_random_adjust_contrast()->::object_detection::protos::RandomAdjustContrast::MergeFrom(
          from._internal_random_adjust_contrast());
      break;
    }
    case kRandomAdjustHue: {
      _this->_internal_mutable_random_adjust_hue()->::object_detection::protos::RandomAdjustHue::MergeFrom(
          from._internal_random_adjust_hue());
      break;
    }
    case kRandomAdjustSaturation: {
      _this->_internal_mutable_random_adjust_saturation()->::object_detection::protos::RandomAdjustSaturation::MergeFrom(
          from._internal_random_adjust_saturation());
      break;
    }
    case kRandomDistortColor: {
      _this->_internal_mutable_random_distort_color()->::object_detection::protos::RandomDistortColor::MergeFrom(
          from._internal_random_distort_color());
      break;
    }
    case kRandomJitterBoxes: {
      _this->_internal_mutable_random_jitter_boxes()->::object_detection::protos::RandomJitterBoxes::MergeFrom(
          from._internal_random_jitter_boxes());
      break;
    }
    case kRandomCropImage: {
      _this->_internal_mutable_random_crop_image()->::object_detection::protos::RandomCropImage::MergeFrom(
          from._internal_random_crop_image());
      break;
    }
    case kRandomPadImage: {
      _this->_internal_mutable_random_pad_image()->::object_detection::protos::RandomPadImage::MergeFrom(
          from._internal_random_pad_image());
      break;
    }
    case kRandomCropPadImage: {
      _this->_internal_mutable_random_crop_pad_image()->::object_detection::protos::RandomCropPadImage::MergeFrom(
          from._internal_random_crop_pad_image());
      break;
    }
    case kRandomCropToAspectRatio: {
      _this->_internal_mutable_random_crop_to_aspect_ratio()->::object_detection::protos::RandomCropToAspectRatio::MergeFrom(
          from._internal_random_crop_to_aspect_ratio());
      break;
    }
    case kRandomBlackPatches: {
      _this->_internal_mutable_random_black_patches()->::object_detection::protos::RandomBlackPatches::MergeFrom(
          from._internal_random_black_patches());
      break;
    }
    case kRandomResizeMethod: {
      _this->_internal_mutable_random_resize_method()->::object_detection::protos::RandomResizeMethod::MergeFrom(
          from._internal_random_resize_method());
      break;
    }
    case kScaleBoxesToPixelCoordinates: {
      _this->_internal_mutable_scale_boxes_to_pixel_coordinates()->::object_detection::protos::ScaleBoxesToPixelCoordinates::MergeFrom(
          from._internal_scale_boxes_to_pixel_coordinates());
      break;
    }
    case kResizeImage: {
      _this->_internal_mutable_resize_image()->::object_detection::protos::ResizeImage::MergeFrom(
          from._internal_resize_image());
      break;
    }
    case kSubtractChannelMean: {
      _this->_internal_mutable_subtract_channel_mean()->::object_detection::protos::SubtractChannelMean::MergeFrom(
          from._internal_subtract_channel_mean());
      break;
    }
    case kSsdRandomCrop: {
      _this->_internal_mutable_ssd_random_crop()->::object_detection::protos::SSDRandomCrop::MergeFrom(
          from._internal_ssd_random_crop());
      break;
    }
    case kSsdRandomCropPad: {
      _this->_internal_mutable_ssd_random_crop_pad()->::object_detection::protos::SSDRandomCropPad::MergeFrom(
          from._internal_ssd_random_crop_pad());
      break;
    }
    case kSsdRandomCropFixedAspectRatio: {
      _this->_internal_mutable_ssd_random_crop_fixed_aspect_ratio()->::object_detection::protos::SSDRandomCropFixedAspectRatio::MergeFrom(
          from._internal_ssd_random_crop_fixed_aspect_ratio());
      break;
    }
    case kSsdRandomCropPadFixedAspectRatio: {
      _this->_internal_mutable_ssd_random_crop_pad_fixed_aspect_ratio()->::object_detection::protos::SSDRandomCropPadFixedAspectRatio::MergeFrom(
          from._internal_ssd_random_crop_pad_fixed_aspect_ratio());
      break;
    }
    case kRandomVerticalFlip: {
      _this->_internal_mutable_random_vertical_flip()->::object_detection::protos::RandomVerticalFlip::MergeFrom(
          from._internal_random_vertical_flip());
      break;
    }
    case kRandomRotation90: {
      _this->_internal_mutable_random_rotation90()->::object_detection::protos::RandomRotation90::MergeFrom(
          from._internal_random_rotation90());
      break;
    }
    case kRgbToGray: {
      _this->_internal_mutable_rgb_to_gray()->::object_detection::protos::RGBtoGray::MergeFrom(
          from._internal_rgb_to_gray());
      break;
    }
    case kConvertClassLogitsToSoftmax: {
      _this->_internal_mutable_convert_class_logits_to_softmax()->::object_detection::protos::ConvertClassLogitsToSoftmax::MergeFrom(
          from._internal_convert_class_logits_to_softmax());
      break;
    }
    case kRandomAbsolutePadImage: {
      _this->_internal_mutable_random_absolute_pad_image()->::object_detection::protos::RandomAbsolutePadImage::MergeFrom(
          from._internal_random_absolute_pad_image());
      break;
    }
    case kRandomSelfConcatImage: {
      _this->_internal_mutable_random_self_concat_image()->::object_detection::protos::RandomSelfConcatImage::MergeFrom(
          from._internal_random_self_concat_image());
      break;
    }
    case kAutoaugmentImage: {
      _this->_internal_mutable_autoaugment_image()->::object_detection::protos::AutoAugmentImage::MergeFrom(
          from._internal_autoaugment_image());
      break;
    }
    case kDropLabelProbabilistically: {
      _this->_internal_mutable_drop_label_probabilistically()->::object_detection::protos::DropLabelProbabilistically::MergeFrom(
          from._internal_drop_label_probabilistically());
      break;
    }
    case kRemapLabels: {
      _this->_internal_mutable_remap_labels()->::object_detection::protos::RemapLabels::MergeFrom(
          from._internal_remap_labels());
      break;
    }
    case PREPROCESSING_STEP_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void PreprocessingStep::CopyFrom(const PreprocessingStep& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.PreprocessingStep)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PreprocessingStep::IsInitialized() const {
  return true;
}

void PreprocessingStep::InternalSwap(PreprocessingStep* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.preprocessing_step_, other->_impl_.preprocessing_step_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata PreprocessingStep::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[0]);
}

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

class NormalizeImage::_Internal {
 public:
  using HasBits = decltype(std::declval<NormalizeImage>()._impl_._has_bits_);
  static void set_has_original_minval(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_original_maxval(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_target_minval(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_target_maxval(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
};

NormalizeImage::NormalizeImage(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.NormalizeImage)
}
NormalizeImage::NormalizeImage(const NormalizeImage& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  NormalizeImage* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.original_minval_){}
    , decltype(_impl_.original_maxval_){}
    , decltype(_impl_.target_minval_){}
    , decltype(_impl_.target_maxval_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.original_minval_, &from._impl_.original_minval_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.target_maxval_) -
    reinterpret_cast<char*>(&_impl_.original_minval_)) + sizeof(_impl_.target_maxval_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.NormalizeImage)
}

inline void NormalizeImage::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.original_minval_){0}
    , decltype(_impl_.original_maxval_){0}
    , decltype(_impl_.target_minval_){0}
    , decltype(_impl_.target_maxval_){1}
  };
}

NormalizeImage::~NormalizeImage() {
  // @@protoc_insertion_point(destructor:object_detection.protos.NormalizeImage)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void NormalizeImage::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void NormalizeImage::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void NormalizeImage::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.NormalizeImage)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    ::memset(&_impl_.original_minval_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.target_minval_) -
        reinterpret_cast<char*>(&_impl_.original_minval_)) + sizeof(_impl_.target_minval_));
    _impl_.target_maxval_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* NormalizeImage::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float original_minval = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_original_minval(&has_bits);
          _impl_.original_minval_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float original_maxval = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_original_maxval(&has_bits);
          _impl_.original_maxval_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float target_minval = 3 [default = 0];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 29)) {
          _Internal::set_has_target_minval(&has_bits);
          _impl_.target_minval_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float target_maxval = 4 [default = 1];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 37)) {
          _Internal::set_has_target_maxval(&has_bits);
          _impl_.target_maxval_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* NormalizeImage::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.NormalizeImage)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float original_minval = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_original_minval(), target);
  }

  // optional float original_maxval = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_original_maxval(), target);
  }

  // optional float target_minval = 3 [default = 0];
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(3, this->_internal_target_minval(), target);
  }

  // optional float target_maxval = 4 [default = 1];
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(4, this->_internal_target_maxval(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.NormalizeImage)
  return target;
}

size_t NormalizeImage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.NormalizeImage)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    // optional float original_minval = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 + 4;
    }

    // optional float original_maxval = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 + 4;
    }

    // optional float target_minval = 3 [default = 0];
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 + 4;
    }

    // optional float target_maxval = 4 [default = 1];
    if (cached_has_bits & 0x00000008u) {
      total_size += 1 + 4;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData NormalizeImage::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    NormalizeImage::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*NormalizeImage::GetClassData() const { return &_class_data_; }


void NormalizeImage::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<NormalizeImage*>(&to_msg);
  auto& from = static_cast<const NormalizeImage&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.NormalizeImage)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.original_minval_ = from._impl_.original_minval_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.original_maxval_ = from._impl_.original_maxval_;
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_impl_.target_minval_ = from._impl_.target_minval_;
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_impl_.target_maxval_ = from._impl_.target_maxval_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void NormalizeImage::CopyFrom(const NormalizeImage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.NormalizeImage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool NormalizeImage::IsInitialized() const {
  return true;
}

void NormalizeImage::InternalSwap(NormalizeImage* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(NormalizeImage, _impl_.target_minval_)
      + sizeof(NormalizeImage::_impl_.target_minval_)
      - PROTOBUF_FIELD_OFFSET(NormalizeImage, _impl_.original_minval_)>(
          reinterpret_cast<char*>(&_impl_.original_minval_),
          reinterpret_cast<char*>(&other->_impl_.original_minval_));
  swap(_impl_.target_maxval_, other->_impl_.target_maxval_);
}

::PROTOBUF_NAMESPACE_ID::Metadata NormalizeImage::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[1]);
}

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

class RandomHorizontalFlip::_Internal {
 public:
};

RandomHorizontalFlip::RandomHorizontalFlip(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomHorizontalFlip)
}
RandomHorizontalFlip::RandomHorizontalFlip(const RandomHorizontalFlip& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomHorizontalFlip* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.keypoint_flip_permutation_){from._impl_.keypoint_flip_permutation_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomHorizontalFlip)
}

inline void RandomHorizontalFlip::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.keypoint_flip_permutation_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

RandomHorizontalFlip::~RandomHorizontalFlip() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomHorizontalFlip)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomHorizontalFlip::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.keypoint_flip_permutation_.~RepeatedField();
}

void RandomHorizontalFlip::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomHorizontalFlip::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomHorizontalFlip)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.keypoint_flip_permutation_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomHorizontalFlip::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated int32 keypoint_flip_permutation = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          ptr -= 1;
          do {
            ptr += 1;
            _internal_add_keypoint_flip_permutation(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<8>(ptr));
        } else if (static_cast<uint8_t>(tag) == 10) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_keypoint_flip_permutation(), ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomHorizontalFlip::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomHorizontalFlip)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated int32 keypoint_flip_permutation = 1;
  for (int i = 0, n = this->_internal_keypoint_flip_permutation_size(); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_keypoint_flip_permutation(i), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomHorizontalFlip)
  return target;
}

size_t RandomHorizontalFlip::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomHorizontalFlip)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated int32 keypoint_flip_permutation = 1;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->_impl_.keypoint_flip_permutation_);
    total_size += 1 *
                  ::_pbi::FromIntSize(this->_internal_keypoint_flip_permutation_size());
    total_size += data_size;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomHorizontalFlip::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomHorizontalFlip::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomHorizontalFlip::GetClassData() const { return &_class_data_; }


void RandomHorizontalFlip::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomHorizontalFlip*>(&to_msg);
  auto& from = static_cast<const RandomHorizontalFlip&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomHorizontalFlip)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.keypoint_flip_permutation_.MergeFrom(from._impl_.keypoint_flip_permutation_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomHorizontalFlip::CopyFrom(const RandomHorizontalFlip& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomHorizontalFlip)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomHorizontalFlip::IsInitialized() const {
  return true;
}

void RandomHorizontalFlip::InternalSwap(RandomHorizontalFlip* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.keypoint_flip_permutation_.InternalSwap(&other->_impl_.keypoint_flip_permutation_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomHorizontalFlip::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[2]);
}

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

class RandomVerticalFlip::_Internal {
 public:
};

RandomVerticalFlip::RandomVerticalFlip(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomVerticalFlip)
}
RandomVerticalFlip::RandomVerticalFlip(const RandomVerticalFlip& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomVerticalFlip* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.keypoint_flip_permutation_){from._impl_.keypoint_flip_permutation_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomVerticalFlip)
}

inline void RandomVerticalFlip::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.keypoint_flip_permutation_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

RandomVerticalFlip::~RandomVerticalFlip() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomVerticalFlip)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomVerticalFlip::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.keypoint_flip_permutation_.~RepeatedField();
}

void RandomVerticalFlip::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomVerticalFlip::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomVerticalFlip)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.keypoint_flip_permutation_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomVerticalFlip::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated int32 keypoint_flip_permutation = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          ptr -= 1;
          do {
            ptr += 1;
            _internal_add_keypoint_flip_permutation(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<8>(ptr));
        } else if (static_cast<uint8_t>(tag) == 10) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_keypoint_flip_permutation(), ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomVerticalFlip::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomVerticalFlip)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated int32 keypoint_flip_permutation = 1;
  for (int i = 0, n = this->_internal_keypoint_flip_permutation_size(); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_keypoint_flip_permutation(i), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomVerticalFlip)
  return target;
}

size_t RandomVerticalFlip::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomVerticalFlip)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated int32 keypoint_flip_permutation = 1;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->_impl_.keypoint_flip_permutation_);
    total_size += 1 *
                  ::_pbi::FromIntSize(this->_internal_keypoint_flip_permutation_size());
    total_size += data_size;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomVerticalFlip::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomVerticalFlip::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomVerticalFlip::GetClassData() const { return &_class_data_; }


void RandomVerticalFlip::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomVerticalFlip*>(&to_msg);
  auto& from = static_cast<const RandomVerticalFlip&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomVerticalFlip)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.keypoint_flip_permutation_.MergeFrom(from._impl_.keypoint_flip_permutation_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomVerticalFlip::CopyFrom(const RandomVerticalFlip& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomVerticalFlip)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomVerticalFlip::IsInitialized() const {
  return true;
}

void RandomVerticalFlip::InternalSwap(RandomVerticalFlip* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.keypoint_flip_permutation_.InternalSwap(&other->_impl_.keypoint_flip_permutation_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomVerticalFlip::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[3]);
}

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

class RandomRotation90::_Internal {
 public:
};

RandomRotation90::RandomRotation90(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) {
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomRotation90)
}
RandomRotation90::RandomRotation90(const RandomRotation90& from)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() {
  RandomRotation90* const _this = this; (void)_this;
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomRotation90)
}





const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomRotation90::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl,
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl,
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomRotation90::GetClassData() const { return &_class_data_; }







::PROTOBUF_NAMESPACE_ID::Metadata RandomRotation90::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[4]);
}

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

class RandomPixelValueScale::_Internal {
 public:
  using HasBits = decltype(std::declval<RandomPixelValueScale>()._impl_._has_bits_);
  static void set_has_minval(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_maxval(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
};

RandomPixelValueScale::RandomPixelValueScale(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomPixelValueScale)
}
RandomPixelValueScale::RandomPixelValueScale(const RandomPixelValueScale& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomPixelValueScale* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.minval_){}
    , decltype(_impl_.maxval_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.minval_, &from._impl_.minval_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.maxval_) -
    reinterpret_cast<char*>(&_impl_.minval_)) + sizeof(_impl_.maxval_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomPixelValueScale)
}

inline void RandomPixelValueScale::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.minval_){0.9f}
    , decltype(_impl_.maxval_){1.1f}
  };
}

RandomPixelValueScale::~RandomPixelValueScale() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomPixelValueScale)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomPixelValueScale::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void RandomPixelValueScale::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomPixelValueScale::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomPixelValueScale)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    _impl_.minval_ = 0.9f;
    _impl_.maxval_ = 1.1f;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomPixelValueScale::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float minval = 1 [default = 0.9];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_minval(&has_bits);
          _impl_.minval_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float maxval = 2 [default = 1.1];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_maxval(&has_bits);
          _impl_.maxval_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomPixelValueScale::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomPixelValueScale)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float minval = 1 [default = 0.9];
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_minval(), target);
  }

  // optional float maxval = 2 [default = 1.1];
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_maxval(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomPixelValueScale)
  return target;
}

size_t RandomPixelValueScale::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomPixelValueScale)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    // optional float minval = 1 [default = 0.9];
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 + 4;
    }

    // optional float maxval = 2 [default = 1.1];
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 + 4;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomPixelValueScale::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomPixelValueScale::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomPixelValueScale::GetClassData() const { return &_class_data_; }


void RandomPixelValueScale::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomPixelValueScale*>(&to_msg);
  auto& from = static_cast<const RandomPixelValueScale&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomPixelValueScale)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.minval_ = from._impl_.minval_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.maxval_ = from._impl_.maxval_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomPixelValueScale::CopyFrom(const RandomPixelValueScale& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomPixelValueScale)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomPixelValueScale::IsInitialized() const {
  return true;
}

void RandomPixelValueScale::InternalSwap(RandomPixelValueScale* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.minval_, other->_impl_.minval_);
  swap(_impl_.maxval_, other->_impl_.maxval_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomPixelValueScale::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[5]);
}

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

class RandomImageScale::_Internal {
 public:
  using HasBits = decltype(std::declval<RandomImageScale>()._impl_._has_bits_);
  static void set_has_min_scale_ratio(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_max_scale_ratio(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
};

RandomImageScale::RandomImageScale(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomImageScale)
}
RandomImageScale::RandomImageScale(const RandomImageScale& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomImageScale* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.min_scale_ratio_){}
    , decltype(_impl_.max_scale_ratio_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.min_scale_ratio_, &from._impl_.min_scale_ratio_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.max_scale_ratio_) -
    reinterpret_cast<char*>(&_impl_.min_scale_ratio_)) + sizeof(_impl_.max_scale_ratio_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomImageScale)
}

inline void RandomImageScale::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.min_scale_ratio_){0.5f}
    , decltype(_impl_.max_scale_ratio_){2}
  };
}

RandomImageScale::~RandomImageScale() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomImageScale)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomImageScale::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void RandomImageScale::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomImageScale::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomImageScale)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    _impl_.min_scale_ratio_ = 0.5f;
    _impl_.max_scale_ratio_ = 2;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomImageScale::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float min_scale_ratio = 1 [default = 0.5];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_min_scale_ratio(&has_bits);
          _impl_.min_scale_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float max_scale_ratio = 2 [default = 2];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_max_scale_ratio(&has_bits);
          _impl_.max_scale_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomImageScale::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomImageScale)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float min_scale_ratio = 1 [default = 0.5];
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_min_scale_ratio(), target);
  }

  // optional float max_scale_ratio = 2 [default = 2];
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_max_scale_ratio(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomImageScale)
  return target;
}

size_t RandomImageScale::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomImageScale)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    // optional float min_scale_ratio = 1 [default = 0.5];
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 + 4;
    }

    // optional float max_scale_ratio = 2 [default = 2];
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 + 4;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomImageScale::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomImageScale::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomImageScale::GetClassData() const { return &_class_data_; }


void RandomImageScale::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomImageScale*>(&to_msg);
  auto& from = static_cast<const RandomImageScale&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomImageScale)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.min_scale_ratio_ = from._impl_.min_scale_ratio_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.max_scale_ratio_ = from._impl_.max_scale_ratio_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomImageScale::CopyFrom(const RandomImageScale& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomImageScale)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomImageScale::IsInitialized() const {
  return true;
}

void RandomImageScale::InternalSwap(RandomImageScale* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.min_scale_ratio_, other->_impl_.min_scale_ratio_);
  swap(_impl_.max_scale_ratio_, other->_impl_.max_scale_ratio_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomImageScale::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[6]);
}

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

class RandomRGBtoGray::_Internal {
 public:
  using HasBits = decltype(std::declval<RandomRGBtoGray>()._impl_._has_bits_);
  static void set_has_probability(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

RandomRGBtoGray::RandomRGBtoGray(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomRGBtoGray)
}
RandomRGBtoGray::RandomRGBtoGray(const RandomRGBtoGray& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomRGBtoGray* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.probability_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.probability_ = from._impl_.probability_;
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomRGBtoGray)
}

inline void RandomRGBtoGray::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.probability_){0.1f}
  };
}

RandomRGBtoGray::~RandomRGBtoGray() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomRGBtoGray)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomRGBtoGray::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void RandomRGBtoGray::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomRGBtoGray::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomRGBtoGray)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.probability_ = 0.1f;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomRGBtoGray::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float probability = 1 [default = 0.1];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_probability(&has_bits);
          _impl_.probability_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomRGBtoGray::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomRGBtoGray)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float probability = 1 [default = 0.1];
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_probability(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomRGBtoGray)
  return target;
}

size_t RandomRGBtoGray::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomRGBtoGray)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // optional float probability = 1 [default = 0.1];
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    total_size += 1 + 4;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomRGBtoGray::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomRGBtoGray::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomRGBtoGray::GetClassData() const { return &_class_data_; }


void RandomRGBtoGray::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomRGBtoGray*>(&to_msg);
  auto& from = static_cast<const RandomRGBtoGray&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomRGBtoGray)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_probability()) {
    _this->_internal_set_probability(from._internal_probability());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomRGBtoGray::CopyFrom(const RandomRGBtoGray& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomRGBtoGray)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomRGBtoGray::IsInitialized() const {
  return true;
}

void RandomRGBtoGray::InternalSwap(RandomRGBtoGray* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.probability_, other->_impl_.probability_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomRGBtoGray::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[7]);
}

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

class RandomAdjustBrightness::_Internal {
 public:
  using HasBits = decltype(std::declval<RandomAdjustBrightness>()._impl_._has_bits_);
  static void set_has_max_delta(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

RandomAdjustBrightness::RandomAdjustBrightness(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomAdjustBrightness)
}
RandomAdjustBrightness::RandomAdjustBrightness(const RandomAdjustBrightness& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomAdjustBrightness* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.max_delta_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.max_delta_ = from._impl_.max_delta_;
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomAdjustBrightness)
}

inline void RandomAdjustBrightness::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.max_delta_){0.2f}
  };
}

RandomAdjustBrightness::~RandomAdjustBrightness() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomAdjustBrightness)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomAdjustBrightness::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void RandomAdjustBrightness::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomAdjustBrightness::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomAdjustBrightness)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.max_delta_ = 0.2f;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomAdjustBrightness::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float max_delta = 1 [default = 0.2];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_max_delta(&has_bits);
          _impl_.max_delta_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomAdjustBrightness::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomAdjustBrightness)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float max_delta = 1 [default = 0.2];
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_max_delta(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomAdjustBrightness)
  return target;
}

size_t RandomAdjustBrightness::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomAdjustBrightness)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // optional float max_delta = 1 [default = 0.2];
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    total_size += 1 + 4;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomAdjustBrightness::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomAdjustBrightness::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomAdjustBrightness::GetClassData() const { return &_class_data_; }


void RandomAdjustBrightness::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomAdjustBrightness*>(&to_msg);
  auto& from = static_cast<const RandomAdjustBrightness&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomAdjustBrightness)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_max_delta()) {
    _this->_internal_set_max_delta(from._internal_max_delta());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomAdjustBrightness::CopyFrom(const RandomAdjustBrightness& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomAdjustBrightness)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomAdjustBrightness::IsInitialized() const {
  return true;
}

void RandomAdjustBrightness::InternalSwap(RandomAdjustBrightness* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.max_delta_, other->_impl_.max_delta_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomAdjustBrightness::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[8]);
}

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

class RandomAdjustContrast::_Internal {
 public:
  using HasBits = decltype(std::declval<RandomAdjustContrast>()._impl_._has_bits_);
  static void set_has_min_delta(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_max_delta(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
};

RandomAdjustContrast::RandomAdjustContrast(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomAdjustContrast)
}
RandomAdjustContrast::RandomAdjustContrast(const RandomAdjustContrast& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomAdjustContrast* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.min_delta_){}
    , decltype(_impl_.max_delta_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.min_delta_, &from._impl_.min_delta_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.max_delta_) -
    reinterpret_cast<char*>(&_impl_.min_delta_)) + sizeof(_impl_.max_delta_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomAdjustContrast)
}

inline void RandomAdjustContrast::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.min_delta_){0.8f}
    , decltype(_impl_.max_delta_){1.25f}
  };
}

RandomAdjustContrast::~RandomAdjustContrast() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomAdjustContrast)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomAdjustContrast::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void RandomAdjustContrast::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomAdjustContrast::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomAdjustContrast)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    _impl_.min_delta_ = 0.8f;
    _impl_.max_delta_ = 1.25f;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomAdjustContrast::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float min_delta = 1 [default = 0.8];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_min_delta(&has_bits);
          _impl_.min_delta_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float max_delta = 2 [default = 1.25];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_max_delta(&has_bits);
          _impl_.max_delta_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomAdjustContrast::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomAdjustContrast)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float min_delta = 1 [default = 0.8];
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_min_delta(), target);
  }

  // optional float max_delta = 2 [default = 1.25];
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_max_delta(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomAdjustContrast)
  return target;
}

size_t RandomAdjustContrast::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomAdjustContrast)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    // optional float min_delta = 1 [default = 0.8];
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 + 4;
    }

    // optional float max_delta = 2 [default = 1.25];
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 + 4;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomAdjustContrast::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomAdjustContrast::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomAdjustContrast::GetClassData() const { return &_class_data_; }


void RandomAdjustContrast::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomAdjustContrast*>(&to_msg);
  auto& from = static_cast<const RandomAdjustContrast&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomAdjustContrast)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.min_delta_ = from._impl_.min_delta_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.max_delta_ = from._impl_.max_delta_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomAdjustContrast::CopyFrom(const RandomAdjustContrast& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomAdjustContrast)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomAdjustContrast::IsInitialized() const {
  return true;
}

void RandomAdjustContrast::InternalSwap(RandomAdjustContrast* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.min_delta_, other->_impl_.min_delta_);
  swap(_impl_.max_delta_, other->_impl_.max_delta_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomAdjustContrast::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[9]);
}

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

class RandomAdjustHue::_Internal {
 public:
  using HasBits = decltype(std::declval<RandomAdjustHue>()._impl_._has_bits_);
  static void set_has_max_delta(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

RandomAdjustHue::RandomAdjustHue(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomAdjustHue)
}
RandomAdjustHue::RandomAdjustHue(const RandomAdjustHue& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomAdjustHue* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.max_delta_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.max_delta_ = from._impl_.max_delta_;
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomAdjustHue)
}

inline void RandomAdjustHue::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.max_delta_){0.02f}
  };
}

RandomAdjustHue::~RandomAdjustHue() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomAdjustHue)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomAdjustHue::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void RandomAdjustHue::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomAdjustHue::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomAdjustHue)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.max_delta_ = 0.02f;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomAdjustHue::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float max_delta = 1 [default = 0.02];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_max_delta(&has_bits);
          _impl_.max_delta_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomAdjustHue::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomAdjustHue)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float max_delta = 1 [default = 0.02];
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_max_delta(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomAdjustHue)
  return target;
}

size_t RandomAdjustHue::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomAdjustHue)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // optional float max_delta = 1 [default = 0.02];
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    total_size += 1 + 4;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomAdjustHue::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomAdjustHue::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomAdjustHue::GetClassData() const { return &_class_data_; }


void RandomAdjustHue::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomAdjustHue*>(&to_msg);
  auto& from = static_cast<const RandomAdjustHue&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomAdjustHue)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_max_delta()) {
    _this->_internal_set_max_delta(from._internal_max_delta());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomAdjustHue::CopyFrom(const RandomAdjustHue& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomAdjustHue)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomAdjustHue::IsInitialized() const {
  return true;
}

void RandomAdjustHue::InternalSwap(RandomAdjustHue* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.max_delta_, other->_impl_.max_delta_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomAdjustHue::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[10]);
}

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

class RandomAdjustSaturation::_Internal {
 public:
  using HasBits = decltype(std::declval<RandomAdjustSaturation>()._impl_._has_bits_);
  static void set_has_min_delta(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_max_delta(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
};

RandomAdjustSaturation::RandomAdjustSaturation(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomAdjustSaturation)
}
RandomAdjustSaturation::RandomAdjustSaturation(const RandomAdjustSaturation& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomAdjustSaturation* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.min_delta_){}
    , decltype(_impl_.max_delta_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.min_delta_, &from._impl_.min_delta_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.max_delta_) -
    reinterpret_cast<char*>(&_impl_.min_delta_)) + sizeof(_impl_.max_delta_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomAdjustSaturation)
}

inline void RandomAdjustSaturation::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.min_delta_){0.8f}
    , decltype(_impl_.max_delta_){1.25f}
  };
}

RandomAdjustSaturation::~RandomAdjustSaturation() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomAdjustSaturation)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomAdjustSaturation::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void RandomAdjustSaturation::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomAdjustSaturation::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomAdjustSaturation)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    _impl_.min_delta_ = 0.8f;
    _impl_.max_delta_ = 1.25f;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomAdjustSaturation::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float min_delta = 1 [default = 0.8];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_min_delta(&has_bits);
          _impl_.min_delta_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float max_delta = 2 [default = 1.25];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_max_delta(&has_bits);
          _impl_.max_delta_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomAdjustSaturation::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomAdjustSaturation)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float min_delta = 1 [default = 0.8];
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_min_delta(), target);
  }

  // optional float max_delta = 2 [default = 1.25];
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_max_delta(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomAdjustSaturation)
  return target;
}

size_t RandomAdjustSaturation::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomAdjustSaturation)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    // optional float min_delta = 1 [default = 0.8];
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 + 4;
    }

    // optional float max_delta = 2 [default = 1.25];
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 + 4;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomAdjustSaturation::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomAdjustSaturation::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomAdjustSaturation::GetClassData() const { return &_class_data_; }


void RandomAdjustSaturation::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomAdjustSaturation*>(&to_msg);
  auto& from = static_cast<const RandomAdjustSaturation&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomAdjustSaturation)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.min_delta_ = from._impl_.min_delta_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.max_delta_ = from._impl_.max_delta_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomAdjustSaturation::CopyFrom(const RandomAdjustSaturation& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomAdjustSaturation)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomAdjustSaturation::IsInitialized() const {
  return true;
}

void RandomAdjustSaturation::InternalSwap(RandomAdjustSaturation* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.min_delta_, other->_impl_.min_delta_);
  swap(_impl_.max_delta_, other->_impl_.max_delta_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomAdjustSaturation::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[11]);
}

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

class RandomDistortColor::_Internal {
 public:
  using HasBits = decltype(std::declval<RandomDistortColor>()._impl_._has_bits_);
  static void set_has_color_ordering(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

RandomDistortColor::RandomDistortColor(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomDistortColor)
}
RandomDistortColor::RandomDistortColor(const RandomDistortColor& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomDistortColor* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.color_ordering_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.color_ordering_ = from._impl_.color_ordering_;
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomDistortColor)
}

inline void RandomDistortColor::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.color_ordering_){0}
  };
}

RandomDistortColor::~RandomDistortColor() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomDistortColor)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomDistortColor::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void RandomDistortColor::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomDistortColor::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomDistortColor)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.color_ordering_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomDistortColor::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional int32 color_ordering = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _Internal::set_has_color_ordering(&has_bits);
          _impl_.color_ordering_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomDistortColor::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomDistortColor)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional int32 color_ordering = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_color_ordering(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomDistortColor)
  return target;
}

size_t RandomDistortColor::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomDistortColor)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // optional int32 color_ordering = 1;
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_color_ordering());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomDistortColor::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomDistortColor::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomDistortColor::GetClassData() const { return &_class_data_; }


void RandomDistortColor::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomDistortColor*>(&to_msg);
  auto& from = static_cast<const RandomDistortColor&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomDistortColor)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_color_ordering()) {
    _this->_internal_set_color_ordering(from._internal_color_ordering());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomDistortColor::CopyFrom(const RandomDistortColor& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomDistortColor)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomDistortColor::IsInitialized() const {
  return true;
}

void RandomDistortColor::InternalSwap(RandomDistortColor* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.color_ordering_, other->_impl_.color_ordering_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomDistortColor::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[12]);
}

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

class RandomJitterBoxes::_Internal {
 public:
  using HasBits = decltype(std::declval<RandomJitterBoxes>()._impl_._has_bits_);
  static void set_has_ratio(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

RandomJitterBoxes::RandomJitterBoxes(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomJitterBoxes)
}
RandomJitterBoxes::RandomJitterBoxes(const RandomJitterBoxes& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomJitterBoxes* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.ratio_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.ratio_ = from._impl_.ratio_;
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomJitterBoxes)
}

inline void RandomJitterBoxes::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.ratio_){0.05f}
  };
}

RandomJitterBoxes::~RandomJitterBoxes() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomJitterBoxes)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomJitterBoxes::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void RandomJitterBoxes::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomJitterBoxes::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomJitterBoxes)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.ratio_ = 0.05f;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomJitterBoxes::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float ratio = 1 [default = 0.05];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_ratio(&has_bits);
          _impl_.ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomJitterBoxes::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomJitterBoxes)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float ratio = 1 [default = 0.05];
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_ratio(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomJitterBoxes)
  return target;
}

size_t RandomJitterBoxes::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomJitterBoxes)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // optional float ratio = 1 [default = 0.05];
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    total_size += 1 + 4;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomJitterBoxes::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomJitterBoxes::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomJitterBoxes::GetClassData() const { return &_class_data_; }


void RandomJitterBoxes::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomJitterBoxes*>(&to_msg);
  auto& from = static_cast<const RandomJitterBoxes&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomJitterBoxes)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_ratio()) {
    _this->_internal_set_ratio(from._internal_ratio());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomJitterBoxes::CopyFrom(const RandomJitterBoxes& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomJitterBoxes)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomJitterBoxes::IsInitialized() const {
  return true;
}

void RandomJitterBoxes::InternalSwap(RandomJitterBoxes* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.ratio_, other->_impl_.ratio_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomJitterBoxes::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[13]);
}

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

class RandomCropImage::_Internal {
 public:
  using HasBits = decltype(std::declval<RandomCropImage>()._impl_._has_bits_);
  static void set_has_min_object_covered(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_min_aspect_ratio(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static void set_has_max_aspect_ratio(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
  static void set_has_min_area(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static void set_has_max_area(HasBits* has_bits) {
    (*has_bits)[0] |= 64u;
  }
  static void set_has_overlap_thresh(HasBits* has_bits) {
    (*has_bits)[0] |= 128u;
  }
  static void set_has_clip_boxes(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_random_coef(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

RandomCropImage::RandomCropImage(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomCropImage)
}
RandomCropImage::RandomCropImage(const RandomCropImage& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomCropImage* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.random_coef_){}
    , decltype(_impl_.clip_boxes_){}
    , decltype(_impl_.min_object_covered_){}
    , decltype(_impl_.min_aspect_ratio_){}
    , decltype(_impl_.max_aspect_ratio_){}
    , decltype(_impl_.min_area_){}
    , decltype(_impl_.max_area_){}
    , decltype(_impl_.overlap_thresh_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.random_coef_, &from._impl_.random_coef_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.overlap_thresh_) -
    reinterpret_cast<char*>(&_impl_.random_coef_)) + sizeof(_impl_.overlap_thresh_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomCropImage)
}

inline void RandomCropImage::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.random_coef_){0}
    , decltype(_impl_.clip_boxes_){true}
    , decltype(_impl_.min_object_covered_){1}
    , decltype(_impl_.min_aspect_ratio_){0.75f}
    , decltype(_impl_.max_aspect_ratio_){1.33f}
    , decltype(_impl_.min_area_){0.1f}
    , decltype(_impl_.max_area_){1}
    , decltype(_impl_.overlap_thresh_){0.3f}
  };
}

RandomCropImage::~RandomCropImage() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomCropImage)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomCropImage::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void RandomCropImage::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomCropImage::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomCropImage)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    _impl_.random_coef_ = 0;
    _impl_.clip_boxes_ = true;
    _impl_.min_object_covered_ = 1;
    _impl_.min_aspect_ratio_ = 0.75f;
    _impl_.max_aspect_ratio_ = 1.33f;
    _impl_.min_area_ = 0.1f;
    _impl_.max_area_ = 1;
    _impl_.overlap_thresh_ = 0.3f;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomCropImage::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float min_object_covered = 1 [default = 1];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_min_object_covered(&has_bits);
          _impl_.min_object_covered_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float min_aspect_ratio = 2 [default = 0.75];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_min_aspect_ratio(&has_bits);
          _impl_.min_aspect_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float max_aspect_ratio = 3 [default = 1.33];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 29)) {
          _Internal::set_has_max_aspect_ratio(&has_bits);
          _impl_.max_aspect_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float min_area = 4 [default = 0.1];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 37)) {
          _Internal::set_has_min_area(&has_bits);
          _impl_.min_area_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float max_area = 5 [default = 1];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 45)) {
          _Internal::set_has_max_area(&has_bits);
          _impl_.max_area_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float overlap_thresh = 6 [default = 0.3];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 53)) {
          _Internal::set_has_overlap_thresh(&has_bits);
          _impl_.overlap_thresh_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float random_coef = 7 [default = 0];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 61)) {
          _Internal::set_has_random_coef(&has_bits);
          _impl_.random_coef_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional bool clip_boxes = 8 [default = true];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          _Internal::set_has_clip_boxes(&has_bits);
          _impl_.clip_boxes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomCropImage::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomCropImage)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float min_object_covered = 1 [default = 1];
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_min_object_covered(), target);
  }

  // optional float min_aspect_ratio = 2 [default = 0.75];
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_min_aspect_ratio(), target);
  }

  // optional float max_aspect_ratio = 3 [default = 1.33];
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(3, this->_internal_max_aspect_ratio(), target);
  }

  // optional float min_area = 4 [default = 0.1];
  if (cached_has_bits & 0x00000020u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(4, this->_internal_min_area(), target);
  }

  // optional float max_area = 5 [default = 1];
  if (cached_has_bits & 0x00000040u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(5, this->_internal_max_area(), target);
  }

  // optional float overlap_thresh = 6 [default = 0.3];
  if (cached_has_bits & 0x00000080u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(6, this->_internal_overlap_thresh(), target);
  }

  // optional float random_coef = 7 [default = 0];
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(7, this->_internal_random_coef(), target);
  }

  // optional bool clip_boxes = 8 [default = true];
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(8, this->_internal_clip_boxes(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomCropImage)
  return target;
}

size_t RandomCropImage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomCropImage)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    // optional float random_coef = 7 [default = 0];
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 + 4;
    }

    // optional bool clip_boxes = 8 [default = true];
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 + 1;
    }

    // optional float min_object_covered = 1 [default = 1];
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 + 4;
    }

    // optional float min_aspect_ratio = 2 [default = 0.75];
    if (cached_has_bits & 0x00000008u) {
      total_size += 1 + 4;
    }

    // optional float max_aspect_ratio = 3 [default = 1.33];
    if (cached_has_bits & 0x00000010u) {
      total_size += 1 + 4;
    }

    // optional float min_area = 4 [default = 0.1];
    if (cached_has_bits & 0x00000020u) {
      total_size += 1 + 4;
    }

    // optional float max_area = 5 [default = 1];
    if (cached_has_bits & 0x00000040u) {
      total_size += 1 + 4;
    }

    // optional float overlap_thresh = 6 [default = 0.3];
    if (cached_has_bits & 0x00000080u) {
      total_size += 1 + 4;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomCropImage::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomCropImage::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomCropImage::GetClassData() const { return &_class_data_; }


void RandomCropImage::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomCropImage*>(&to_msg);
  auto& from = static_cast<const RandomCropImage&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomCropImage)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.random_coef_ = from._impl_.random_coef_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.clip_boxes_ = from._impl_.clip_boxes_;
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_impl_.min_object_covered_ = from._impl_.min_object_covered_;
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_impl_.min_aspect_ratio_ = from._impl_.min_aspect_ratio_;
    }
    if (cached_has_bits & 0x00000010u) {
      _this->_impl_.max_aspect_ratio_ = from._impl_.max_aspect_ratio_;
    }
    if (cached_has_bits & 0x00000020u) {
      _this->_impl_.min_area_ = from._impl_.min_area_;
    }
    if (cached_has_bits & 0x00000040u) {
      _this->_impl_.max_area_ = from._impl_.max_area_;
    }
    if (cached_has_bits & 0x00000080u) {
      _this->_impl_.overlap_thresh_ = from._impl_.overlap_thresh_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomCropImage::CopyFrom(const RandomCropImage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomCropImage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomCropImage::IsInitialized() const {
  return true;
}

void RandomCropImage::InternalSwap(RandomCropImage* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.random_coef_, other->_impl_.random_coef_);
  swap(_impl_.clip_boxes_, other->_impl_.clip_boxes_);
  swap(_impl_.min_object_covered_, other->_impl_.min_object_covered_);
  swap(_impl_.min_aspect_ratio_, other->_impl_.min_aspect_ratio_);
  swap(_impl_.max_aspect_ratio_, other->_impl_.max_aspect_ratio_);
  swap(_impl_.min_area_, other->_impl_.min_area_);
  swap(_impl_.max_area_, other->_impl_.max_area_);
  swap(_impl_.overlap_thresh_, other->_impl_.overlap_thresh_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomCropImage::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[14]);
}

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

class RandomPadImage::_Internal {
 public:
  using HasBits = decltype(std::declval<RandomPadImage>()._impl_._has_bits_);
  static void set_has_min_image_height(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_min_image_width(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_max_image_height(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_max_image_width(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
};

RandomPadImage::RandomPadImage(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomPadImage)
}
RandomPadImage::RandomPadImage(const RandomPadImage& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomPadImage* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.pad_color_){from._impl_.pad_color_}
    , decltype(_impl_.min_image_height_){}
    , decltype(_impl_.min_image_width_){}
    , decltype(_impl_.max_image_height_){}
    , decltype(_impl_.max_image_width_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.min_image_height_, &from._impl_.min_image_height_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.max_image_width_) -
    reinterpret_cast<char*>(&_impl_.min_image_height_)) + sizeof(_impl_.max_image_width_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomPadImage)
}

inline void RandomPadImage::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.pad_color_){arena}
    , decltype(_impl_.min_image_height_){0}
    , decltype(_impl_.min_image_width_){0}
    , decltype(_impl_.max_image_height_){0}
    , decltype(_impl_.max_image_width_){0}
  };
}

RandomPadImage::~RandomPadImage() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomPadImage)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomPadImage::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.pad_color_.~RepeatedField();
}

void RandomPadImage::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomPadImage::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomPadImage)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.pad_color_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    ::memset(&_impl_.min_image_height_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.max_image_width_) -
        reinterpret_cast<char*>(&_impl_.min_image_height_)) + sizeof(_impl_.max_image_width_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomPadImage::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional int32 min_image_height = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _Internal::set_has_min_image_height(&has_bits);
          _impl_.min_image_height_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 min_image_width = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _Internal::set_has_min_image_width(&has_bits);
          _impl_.min_image_width_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 max_image_height = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _Internal::set_has_max_image_height(&has_bits);
          _impl_.max_image_height_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 max_image_width = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          _Internal::set_has_max_image_width(&has_bits);
          _impl_.max_image_width_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated float pad_color = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 45)) {
          ptr -= 1;
          do {
            ptr += 1;
            _internal_add_pad_color(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
            ptr += sizeof(float);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<45>(ptr));
        } else if (static_cast<uint8_t>(tag) == 42) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_pad_color(), ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomPadImage::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomPadImage)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional int32 min_image_height = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_min_image_height(), target);
  }

  // optional int32 min_image_width = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_min_image_width(), target);
  }

  // optional int32 max_image_height = 3;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(3, this->_internal_max_image_height(), target);
  }

  // optional int32 max_image_width = 4;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(4, this->_internal_max_image_width(), target);
  }

  // repeated float pad_color = 5;
  for (int i = 0, n = this->_internal_pad_color_size(); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(5, this->_internal_pad_color(i), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomPadImage)
  return target;
}

size_t RandomPadImage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomPadImage)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated float pad_color = 5;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_pad_color_size());
    size_t data_size = 4UL * count;
    total_size += 1 *
                  ::_pbi::FromIntSize(this->_internal_pad_color_size());
    total_size += data_size;
  }

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    // optional int32 min_image_height = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_min_image_height());
    }

    // optional int32 min_image_width = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_min_image_width());
    }

    // optional int32 max_image_height = 3;
    if (cached_has_bits & 0x00000004u) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_max_image_height());
    }

    // optional int32 max_image_width = 4;
    if (cached_has_bits & 0x00000008u) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_max_image_width());
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomPadImage::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomPadImage::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomPadImage::GetClassData() const { return &_class_data_; }


void RandomPadImage::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomPadImage*>(&to_msg);
  auto& from = static_cast<const RandomPadImage&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomPadImage)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.pad_color_.MergeFrom(from._impl_.pad_color_);
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.min_image_height_ = from._impl_.min_image_height_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.min_image_width_ = from._impl_.min_image_width_;
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_impl_.max_image_height_ = from._impl_.max_image_height_;
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_impl_.max_image_width_ = from._impl_.max_image_width_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomPadImage::CopyFrom(const RandomPadImage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomPadImage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomPadImage::IsInitialized() const {
  return true;
}

void RandomPadImage::InternalSwap(RandomPadImage* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.pad_color_.InternalSwap(&other->_impl_.pad_color_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(RandomPadImage, _impl_.max_image_width_)
      + sizeof(RandomPadImage::_impl_.max_image_width_)
      - PROTOBUF_FIELD_OFFSET(RandomPadImage, _impl_.min_image_height_)>(
          reinterpret_cast<char*>(&_impl_.min_image_height_),
          reinterpret_cast<char*>(&other->_impl_.min_image_height_));
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomPadImage::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[15]);
}

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

class RandomAbsolutePadImage::_Internal {
 public:
  using HasBits = decltype(std::declval<RandomAbsolutePadImage>()._impl_._has_bits_);
  static void set_has_max_height_padding(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_max_width_padding(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
};

RandomAbsolutePadImage::RandomAbsolutePadImage(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomAbsolutePadImage)
}
RandomAbsolutePadImage::RandomAbsolutePadImage(const RandomAbsolutePadImage& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomAbsolutePadImage* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.pad_color_){from._impl_.pad_color_}
    , decltype(_impl_.max_height_padding_){}
    , decltype(_impl_.max_width_padding_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.max_height_padding_, &from._impl_.max_height_padding_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.max_width_padding_) -
    reinterpret_cast<char*>(&_impl_.max_height_padding_)) + sizeof(_impl_.max_width_padding_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomAbsolutePadImage)
}

inline void RandomAbsolutePadImage::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.pad_color_){arena}
    , decltype(_impl_.max_height_padding_){0}
    , decltype(_impl_.max_width_padding_){0}
  };
}

RandomAbsolutePadImage::~RandomAbsolutePadImage() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomAbsolutePadImage)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomAbsolutePadImage::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.pad_color_.~RepeatedField();
}

void RandomAbsolutePadImage::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomAbsolutePadImage::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomAbsolutePadImage)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.pad_color_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    ::memset(&_impl_.max_height_padding_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.max_width_padding_) -
        reinterpret_cast<char*>(&_impl_.max_height_padding_)) + sizeof(_impl_.max_width_padding_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomAbsolutePadImage::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional int32 max_height_padding = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _Internal::set_has_max_height_padding(&has_bits);
          _impl_.max_height_padding_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 max_width_padding = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _Internal::set_has_max_width_padding(&has_bits);
          _impl_.max_width_padding_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated float pad_color = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 29)) {
          ptr -= 1;
          do {
            ptr += 1;
            _internal_add_pad_color(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
            ptr += sizeof(float);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<29>(ptr));
        } else if (static_cast<uint8_t>(tag) == 26) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_pad_color(), ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomAbsolutePadImage::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomAbsolutePadImage)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional int32 max_height_padding = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_max_height_padding(), target);
  }

  // optional int32 max_width_padding = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_max_width_padding(), target);
  }

  // repeated float pad_color = 3;
  for (int i = 0, n = this->_internal_pad_color_size(); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(3, this->_internal_pad_color(i), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomAbsolutePadImage)
  return target;
}

size_t RandomAbsolutePadImage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomAbsolutePadImage)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated float pad_color = 3;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_pad_color_size());
    size_t data_size = 4UL * count;
    total_size += 1 *
                  ::_pbi::FromIntSize(this->_internal_pad_color_size());
    total_size += data_size;
  }

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    // optional int32 max_height_padding = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_max_height_padding());
    }

    // optional int32 max_width_padding = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_max_width_padding());
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomAbsolutePadImage::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomAbsolutePadImage::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomAbsolutePadImage::GetClassData() const { return &_class_data_; }


void RandomAbsolutePadImage::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomAbsolutePadImage*>(&to_msg);
  auto& from = static_cast<const RandomAbsolutePadImage&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomAbsolutePadImage)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.pad_color_.MergeFrom(from._impl_.pad_color_);
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.max_height_padding_ = from._impl_.max_height_padding_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.max_width_padding_ = from._impl_.max_width_padding_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomAbsolutePadImage::CopyFrom(const RandomAbsolutePadImage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomAbsolutePadImage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomAbsolutePadImage::IsInitialized() const {
  return true;
}

void RandomAbsolutePadImage::InternalSwap(RandomAbsolutePadImage* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.pad_color_.InternalSwap(&other->_impl_.pad_color_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(RandomAbsolutePadImage, _impl_.max_width_padding_)
      + sizeof(RandomAbsolutePadImage::_impl_.max_width_padding_)
      - PROTOBUF_FIELD_OFFSET(RandomAbsolutePadImage, _impl_.max_height_padding_)>(
          reinterpret_cast<char*>(&_impl_.max_height_padding_),
          reinterpret_cast<char*>(&other->_impl_.max_height_padding_));
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomAbsolutePadImage::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[16]);
}

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

class RandomCropPadImage::_Internal {
 public:
  using HasBits = decltype(std::declval<RandomCropPadImage>()._impl_._has_bits_);
  static void set_has_min_object_covered(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_min_aspect_ratio(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static void set_has_max_aspect_ratio(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
  static void set_has_min_area(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static void set_has_max_area(HasBits* has_bits) {
    (*has_bits)[0] |= 64u;
  }
  static void set_has_overlap_thresh(HasBits* has_bits) {
    (*has_bits)[0] |= 128u;
  }
  static void set_has_clip_boxes(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_random_coef(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

RandomCropPadImage::RandomCropPadImage(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomCropPadImage)
}
RandomCropPadImage::RandomCropPadImage(const RandomCropPadImage& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomCropPadImage* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.min_padded_size_ratio_){from._impl_.min_padded_size_ratio_}
    , decltype(_impl_.max_padded_size_ratio_){from._impl_.max_padded_size_ratio_}
    , decltype(_impl_.pad_color_){from._impl_.pad_color_}
    , decltype(_impl_.random_coef_){}
    , decltype(_impl_.clip_boxes_){}
    , decltype(_impl_.min_object_covered_){}
    , decltype(_impl_.min_aspect_ratio_){}
    , decltype(_impl_.max_aspect_ratio_){}
    , decltype(_impl_.min_area_){}
    , decltype(_impl_.max_area_){}
    , decltype(_impl_.overlap_thresh_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.random_coef_, &from._impl_.random_coef_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.overlap_thresh_) -
    reinterpret_cast<char*>(&_impl_.random_coef_)) + sizeof(_impl_.overlap_thresh_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomCropPadImage)
}

inline void RandomCropPadImage::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.min_padded_size_ratio_){arena}
    , decltype(_impl_.max_padded_size_ratio_){arena}
    , decltype(_impl_.pad_color_){arena}
    , decltype(_impl_.random_coef_){0}
    , decltype(_impl_.clip_boxes_){true}
    , decltype(_impl_.min_object_covered_){1}
    , decltype(_impl_.min_aspect_ratio_){0.75f}
    , decltype(_impl_.max_aspect_ratio_){1.33f}
    , decltype(_impl_.min_area_){0.1f}
    , decltype(_impl_.max_area_){1}
    , decltype(_impl_.overlap_thresh_){0.3f}
  };
}

RandomCropPadImage::~RandomCropPadImage() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomCropPadImage)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomCropPadImage::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.min_padded_size_ratio_.~RepeatedField();
  _impl_.max_padded_size_ratio_.~RepeatedField();
  _impl_.pad_color_.~RepeatedField();
}

void RandomCropPadImage::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomCropPadImage::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomCropPadImage)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.min_padded_size_ratio_.Clear();
  _impl_.max_padded_size_ratio_.Clear();
  _impl_.pad_color_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    _impl_.random_coef_ = 0;
    _impl_.clip_boxes_ = true;
    _impl_.min_object_covered_ = 1;
    _impl_.min_aspect_ratio_ = 0.75f;
    _impl_.max_aspect_ratio_ = 1.33f;
    _impl_.min_area_ = 0.1f;
    _impl_.max_area_ = 1;
    _impl_.overlap_thresh_ = 0.3f;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomCropPadImage::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float min_object_covered = 1 [default = 1];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_min_object_covered(&has_bits);
          _impl_.min_object_covered_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float min_aspect_ratio = 2 [default = 0.75];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_min_aspect_ratio(&has_bits);
          _impl_.min_aspect_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float max_aspect_ratio = 3 [default = 1.33];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 29)) {
          _Internal::set_has_max_aspect_ratio(&has_bits);
          _impl_.max_aspect_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float min_area = 4 [default = 0.1];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 37)) {
          _Internal::set_has_min_area(&has_bits);
          _impl_.min_area_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float max_area = 5 [default = 1];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 45)) {
          _Internal::set_has_max_area(&has_bits);
          _impl_.max_area_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float overlap_thresh = 6 [default = 0.3];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 53)) {
          _Internal::set_has_overlap_thresh(&has_bits);
          _impl_.overlap_thresh_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float random_coef = 7 [default = 0];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 61)) {
          _Internal::set_has_random_coef(&has_bits);
          _impl_.random_coef_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated float min_padded_size_ratio = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 69)) {
          ptr -= 1;
          do {
            ptr += 1;
            _internal_add_min_padded_size_ratio(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
            ptr += sizeof(float);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<69>(ptr));
        } else if (static_cast<uint8_t>(tag) == 66) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_min_padded_size_ratio(), ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated float max_padded_size_ratio = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 77)) {
          ptr -= 1;
          do {
            ptr += 1;
            _internal_add_max_padded_size_ratio(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
            ptr += sizeof(float);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<77>(ptr));
        } else if (static_cast<uint8_t>(tag) == 74) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_max_padded_size_ratio(), ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated float pad_color = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 85)) {
          ptr -= 1;
          do {
            ptr += 1;
            _internal_add_pad_color(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
            ptr += sizeof(float);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<85>(ptr));
        } else if (static_cast<uint8_t>(tag) == 82) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_pad_color(), ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional bool clip_boxes = 11 [default = true];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
          _Internal::set_has_clip_boxes(&has_bits);
          _impl_.clip_boxes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomCropPadImage::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomCropPadImage)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float min_object_covered = 1 [default = 1];
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_min_object_covered(), target);
  }

  // optional float min_aspect_ratio = 2 [default = 0.75];
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_min_aspect_ratio(), target);
  }

  // optional float max_aspect_ratio = 3 [default = 1.33];
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(3, this->_internal_max_aspect_ratio(), target);
  }

  // optional float min_area = 4 [default = 0.1];
  if (cached_has_bits & 0x00000020u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(4, this->_internal_min_area(), target);
  }

  // optional float max_area = 5 [default = 1];
  if (cached_has_bits & 0x00000040u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(5, this->_internal_max_area(), target);
  }

  // optional float overlap_thresh = 6 [default = 0.3];
  if (cached_has_bits & 0x00000080u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(6, this->_internal_overlap_thresh(), target);
  }

  // optional float random_coef = 7 [default = 0];
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(7, this->_internal_random_coef(), target);
  }

  // repeated float min_padded_size_ratio = 8;
  for (int i = 0, n = this->_internal_min_padded_size_ratio_size(); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(8, this->_internal_min_padded_size_ratio(i), target);
  }

  // repeated float max_padded_size_ratio = 9;
  for (int i = 0, n = this->_internal_max_padded_size_ratio_size(); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(9, this->_internal_max_padded_size_ratio(i), target);
  }

  // repeated float pad_color = 10;
  for (int i = 0, n = this->_internal_pad_color_size(); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(10, this->_internal_pad_color(i), target);
  }

  // optional bool clip_boxes = 11 [default = true];
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(11, this->_internal_clip_boxes(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomCropPadImage)
  return target;
}

size_t RandomCropPadImage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomCropPadImage)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated float min_padded_size_ratio = 8;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_min_padded_size_ratio_size());
    size_t data_size = 4UL * count;
    total_size += 1 *
                  ::_pbi::FromIntSize(this->_internal_min_padded_size_ratio_size());
    total_size += data_size;
  }

  // repeated float max_padded_size_ratio = 9;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_max_padded_size_ratio_size());
    size_t data_size = 4UL * count;
    total_size += 1 *
                  ::_pbi::FromIntSize(this->_internal_max_padded_size_ratio_size());
    total_size += data_size;
  }

  // repeated float pad_color = 10;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_pad_color_size());
    size_t data_size = 4UL * count;
    total_size += 1 *
                  ::_pbi::FromIntSize(this->_internal_pad_color_size());
    total_size += data_size;
  }

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    // optional float random_coef = 7 [default = 0];
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 + 4;
    }

    // optional bool clip_boxes = 11 [default = true];
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 + 1;
    }

    // optional float min_object_covered = 1 [default = 1];
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 + 4;
    }

    // optional float min_aspect_ratio = 2 [default = 0.75];
    if (cached_has_bits & 0x00000008u) {
      total_size += 1 + 4;
    }

    // optional float max_aspect_ratio = 3 [default = 1.33];
    if (cached_has_bits & 0x00000010u) {
      total_size += 1 + 4;
    }

    // optional float min_area = 4 [default = 0.1];
    if (cached_has_bits & 0x00000020u) {
      total_size += 1 + 4;
    }

    // optional float max_area = 5 [default = 1];
    if (cached_has_bits & 0x00000040u) {
      total_size += 1 + 4;
    }

    // optional float overlap_thresh = 6 [default = 0.3];
    if (cached_has_bits & 0x00000080u) {
      total_size += 1 + 4;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomCropPadImage::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomCropPadImage::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomCropPadImage::GetClassData() const { return &_class_data_; }


void RandomCropPadImage::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomCropPadImage*>(&to_msg);
  auto& from = static_cast<const RandomCropPadImage&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomCropPadImage)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.min_padded_size_ratio_.MergeFrom(from._impl_.min_padded_size_ratio_);
  _this->_impl_.max_padded_size_ratio_.MergeFrom(from._impl_.max_padded_size_ratio_);
  _this->_impl_.pad_color_.MergeFrom(from._impl_.pad_color_);
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.random_coef_ = from._impl_.random_coef_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.clip_boxes_ = from._impl_.clip_boxes_;
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_impl_.min_object_covered_ = from._impl_.min_object_covered_;
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_impl_.min_aspect_ratio_ = from._impl_.min_aspect_ratio_;
    }
    if (cached_has_bits & 0x00000010u) {
      _this->_impl_.max_aspect_ratio_ = from._impl_.max_aspect_ratio_;
    }
    if (cached_has_bits & 0x00000020u) {
      _this->_impl_.min_area_ = from._impl_.min_area_;
    }
    if (cached_has_bits & 0x00000040u) {
      _this->_impl_.max_area_ = from._impl_.max_area_;
    }
    if (cached_has_bits & 0x00000080u) {
      _this->_impl_.overlap_thresh_ = from._impl_.overlap_thresh_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomCropPadImage::CopyFrom(const RandomCropPadImage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomCropPadImage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomCropPadImage::IsInitialized() const {
  return true;
}

void RandomCropPadImage::InternalSwap(RandomCropPadImage* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.min_padded_size_ratio_.InternalSwap(&other->_impl_.min_padded_size_ratio_);
  _impl_.max_padded_size_ratio_.InternalSwap(&other->_impl_.max_padded_size_ratio_);
  _impl_.pad_color_.InternalSwap(&other->_impl_.pad_color_);
  swap(_impl_.random_coef_, other->_impl_.random_coef_);
  swap(_impl_.clip_boxes_, other->_impl_.clip_boxes_);
  swap(_impl_.min_object_covered_, other->_impl_.min_object_covered_);
  swap(_impl_.min_aspect_ratio_, other->_impl_.min_aspect_ratio_);
  swap(_impl_.max_aspect_ratio_, other->_impl_.max_aspect_ratio_);
  swap(_impl_.min_area_, other->_impl_.min_area_);
  swap(_impl_.max_area_, other->_impl_.max_area_);
  swap(_impl_.overlap_thresh_, other->_impl_.overlap_thresh_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomCropPadImage::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[17]);
}

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

class RandomCropToAspectRatio::_Internal {
 public:
  using HasBits = decltype(std::declval<RandomCropToAspectRatio>()._impl_._has_bits_);
  static void set_has_aspect_ratio(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_overlap_thresh(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_clip_boxes(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

RandomCropToAspectRatio::RandomCropToAspectRatio(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomCropToAspectRatio)
}
RandomCropToAspectRatio::RandomCropToAspectRatio(const RandomCropToAspectRatio& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomCropToAspectRatio* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.clip_boxes_){}
    , decltype(_impl_.aspect_ratio_){}
    , decltype(_impl_.overlap_thresh_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.clip_boxes_, &from._impl_.clip_boxes_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.overlap_thresh_) -
    reinterpret_cast<char*>(&_impl_.clip_boxes_)) + sizeof(_impl_.overlap_thresh_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomCropToAspectRatio)
}

inline void RandomCropToAspectRatio::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.clip_boxes_){true}
    , decltype(_impl_.aspect_ratio_){1}
    , decltype(_impl_.overlap_thresh_){0.3f}
  };
}

RandomCropToAspectRatio::~RandomCropToAspectRatio() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomCropToAspectRatio)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomCropToAspectRatio::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void RandomCropToAspectRatio::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomCropToAspectRatio::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomCropToAspectRatio)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    _impl_.clip_boxes_ = true;
    _impl_.aspect_ratio_ = 1;
    _impl_.overlap_thresh_ = 0.3f;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomCropToAspectRatio::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float aspect_ratio = 1 [default = 1];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_aspect_ratio(&has_bits);
          _impl_.aspect_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float overlap_thresh = 2 [default = 0.3];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_overlap_thresh(&has_bits);
          _impl_.overlap_thresh_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional bool clip_boxes = 3 [default = true];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _Internal::set_has_clip_boxes(&has_bits);
          _impl_.clip_boxes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomCropToAspectRatio::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomCropToAspectRatio)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float aspect_ratio = 1 [default = 1];
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_aspect_ratio(), target);
  }

  // optional float overlap_thresh = 2 [default = 0.3];
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_overlap_thresh(), target);
  }

  // optional bool clip_boxes = 3 [default = true];
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(3, this->_internal_clip_boxes(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomCropToAspectRatio)
  return target;
}

size_t RandomCropToAspectRatio::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomCropToAspectRatio)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    // optional bool clip_boxes = 3 [default = true];
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 + 1;
    }

    // optional float aspect_ratio = 1 [default = 1];
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 + 4;
    }

    // optional float overlap_thresh = 2 [default = 0.3];
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 + 4;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomCropToAspectRatio::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomCropToAspectRatio::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomCropToAspectRatio::GetClassData() const { return &_class_data_; }


void RandomCropToAspectRatio::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomCropToAspectRatio*>(&to_msg);
  auto& from = static_cast<const RandomCropToAspectRatio&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomCropToAspectRatio)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.clip_boxes_ = from._impl_.clip_boxes_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.aspect_ratio_ = from._impl_.aspect_ratio_;
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_impl_.overlap_thresh_ = from._impl_.overlap_thresh_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomCropToAspectRatio::CopyFrom(const RandomCropToAspectRatio& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomCropToAspectRatio)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomCropToAspectRatio::IsInitialized() const {
  return true;
}

void RandomCropToAspectRatio::InternalSwap(RandomCropToAspectRatio* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.clip_boxes_, other->_impl_.clip_boxes_);
  swap(_impl_.aspect_ratio_, other->_impl_.aspect_ratio_);
  swap(_impl_.overlap_thresh_, other->_impl_.overlap_thresh_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomCropToAspectRatio::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[18]);
}

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

class RandomBlackPatches::_Internal {
 public:
  using HasBits = decltype(std::declval<RandomBlackPatches>()._impl_._has_bits_);
  static void set_has_max_black_patches(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_probability(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_size_to_image_ratio(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

RandomBlackPatches::RandomBlackPatches(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomBlackPatches)
}
RandomBlackPatches::RandomBlackPatches(const RandomBlackPatches& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomBlackPatches* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.size_to_image_ratio_){}
    , decltype(_impl_.max_black_patches_){}
    , decltype(_impl_.probability_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.size_to_image_ratio_, &from._impl_.size_to_image_ratio_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.probability_) -
    reinterpret_cast<char*>(&_impl_.size_to_image_ratio_)) + sizeof(_impl_.probability_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomBlackPatches)
}

inline void RandomBlackPatches::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.size_to_image_ratio_){0.1f}
    , decltype(_impl_.max_black_patches_){10}
    , decltype(_impl_.probability_){0.5f}
  };
}

RandomBlackPatches::~RandomBlackPatches() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomBlackPatches)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomBlackPatches::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void RandomBlackPatches::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomBlackPatches::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomBlackPatches)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    _impl_.size_to_image_ratio_ = 0.1f;
    _impl_.max_black_patches_ = 10;
    _impl_.probability_ = 0.5f;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomBlackPatches::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional int32 max_black_patches = 1 [default = 10];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _Internal::set_has_max_black_patches(&has_bits);
          _impl_.max_black_patches_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional float probability = 2 [default = 0.5];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_probability(&has_bits);
          _impl_.probability_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float size_to_image_ratio = 3 [default = 0.1];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 29)) {
          _Internal::set_has_size_to_image_ratio(&has_bits);
          _impl_.size_to_image_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomBlackPatches::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomBlackPatches)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional int32 max_black_patches = 1 [default = 10];
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_max_black_patches(), target);
  }

  // optional float probability = 2 [default = 0.5];
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_probability(), target);
  }

  // optional float size_to_image_ratio = 3 [default = 0.1];
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(3, this->_internal_size_to_image_ratio(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomBlackPatches)
  return target;
}

size_t RandomBlackPatches::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomBlackPatches)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    // optional float size_to_image_ratio = 3 [default = 0.1];
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 + 4;
    }

    // optional int32 max_black_patches = 1 [default = 10];
    if (cached_has_bits & 0x00000002u) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_max_black_patches());
    }

    // optional float probability = 2 [default = 0.5];
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 + 4;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomBlackPatches::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomBlackPatches::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomBlackPatches::GetClassData() const { return &_class_data_; }


void RandomBlackPatches::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomBlackPatches*>(&to_msg);
  auto& from = static_cast<const RandomBlackPatches&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomBlackPatches)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.size_to_image_ratio_ = from._impl_.size_to_image_ratio_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.max_black_patches_ = from._impl_.max_black_patches_;
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_impl_.probability_ = from._impl_.probability_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomBlackPatches::CopyFrom(const RandomBlackPatches& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomBlackPatches)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomBlackPatches::IsInitialized() const {
  return true;
}

void RandomBlackPatches::InternalSwap(RandomBlackPatches* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.size_to_image_ratio_, other->_impl_.size_to_image_ratio_);
  swap(_impl_.max_black_patches_, other->_impl_.max_black_patches_);
  swap(_impl_.probability_, other->_impl_.probability_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomBlackPatches::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[19]);
}

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

class RandomResizeMethod::_Internal {
 public:
  using HasBits = decltype(std::declval<RandomResizeMethod>()._impl_._has_bits_);
  static void set_has_target_height(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_target_width(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
};

RandomResizeMethod::RandomResizeMethod(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomResizeMethod)
}
RandomResizeMethod::RandomResizeMethod(const RandomResizeMethod& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomResizeMethod* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.target_height_){}
    , decltype(_impl_.target_width_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.target_height_, &from._impl_.target_height_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.target_width_) -
    reinterpret_cast<char*>(&_impl_.target_height_)) + sizeof(_impl_.target_width_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomResizeMethod)
}

inline void RandomResizeMethod::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.target_height_){0}
    , decltype(_impl_.target_width_){0}
  };
}

RandomResizeMethod::~RandomResizeMethod() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomResizeMethod)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomResizeMethod::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void RandomResizeMethod::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomResizeMethod::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomResizeMethod)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    ::memset(&_impl_.target_height_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.target_width_) -
        reinterpret_cast<char*>(&_impl_.target_height_)) + sizeof(_impl_.target_width_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomResizeMethod::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional int32 target_height = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _Internal::set_has_target_height(&has_bits);
          _impl_.target_height_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 target_width = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _Internal::set_has_target_width(&has_bits);
          _impl_.target_width_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomResizeMethod::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomResizeMethod)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional int32 target_height = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_target_height(), target);
  }

  // optional int32 target_width = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_target_width(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomResizeMethod)
  return target;
}

size_t RandomResizeMethod::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomResizeMethod)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    // optional int32 target_height = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_target_height());
    }

    // optional int32 target_width = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_target_width());
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomResizeMethod::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomResizeMethod::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomResizeMethod::GetClassData() const { return &_class_data_; }


void RandomResizeMethod::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomResizeMethod*>(&to_msg);
  auto& from = static_cast<const RandomResizeMethod&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomResizeMethod)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.target_height_ = from._impl_.target_height_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.target_width_ = from._impl_.target_width_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomResizeMethod::CopyFrom(const RandomResizeMethod& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomResizeMethod)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomResizeMethod::IsInitialized() const {
  return true;
}

void RandomResizeMethod::InternalSwap(RandomResizeMethod* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(RandomResizeMethod, _impl_.target_width_)
      + sizeof(RandomResizeMethod::_impl_.target_width_)
      - PROTOBUF_FIELD_OFFSET(RandomResizeMethod, _impl_.target_height_)>(
          reinterpret_cast<char*>(&_impl_.target_height_),
          reinterpret_cast<char*>(&other->_impl_.target_height_));
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomResizeMethod::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[20]);
}

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

class RGBtoGray::_Internal {
 public:
};

RGBtoGray::RGBtoGray(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) {
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RGBtoGray)
}
RGBtoGray::RGBtoGray(const RGBtoGray& from)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() {
  RGBtoGray* const _this = this; (void)_this;
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RGBtoGray)
}





const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RGBtoGray::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl,
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl,
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RGBtoGray::GetClassData() const { return &_class_data_; }







::PROTOBUF_NAMESPACE_ID::Metadata RGBtoGray::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[21]);
}

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

class ScaleBoxesToPixelCoordinates::_Internal {
 public:
};

ScaleBoxesToPixelCoordinates::ScaleBoxesToPixelCoordinates(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) {
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.ScaleBoxesToPixelCoordinates)
}
ScaleBoxesToPixelCoordinates::ScaleBoxesToPixelCoordinates(const ScaleBoxesToPixelCoordinates& from)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() {
  ScaleBoxesToPixelCoordinates* const _this = this; (void)_this;
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.ScaleBoxesToPixelCoordinates)
}





const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ScaleBoxesToPixelCoordinates::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl,
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl,
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ScaleBoxesToPixelCoordinates::GetClassData() const { return &_class_data_; }







::PROTOBUF_NAMESPACE_ID::Metadata ScaleBoxesToPixelCoordinates::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[22]);
}

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

class ResizeImage::_Internal {
 public:
  using HasBits = decltype(std::declval<ResizeImage>()._impl_._has_bits_);
  static void set_has_new_height(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_new_width(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_method(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
};

ResizeImage::ResizeImage(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.ResizeImage)
}
ResizeImage::ResizeImage(const ResizeImage& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ResizeImage* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.new_height_){}
    , decltype(_impl_.new_width_){}
    , decltype(_impl_.method_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.new_height_, &from._impl_.new_height_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.method_) -
    reinterpret_cast<char*>(&_impl_.new_height_)) + sizeof(_impl_.method_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.ResizeImage)
}

inline void ResizeImage::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.new_height_){0}
    , decltype(_impl_.new_width_){0}
    , decltype(_impl_.method_){3}
  };
}

ResizeImage::~ResizeImage() {
  // @@protoc_insertion_point(destructor:object_detection.protos.ResizeImage)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ResizeImage::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void ResizeImage::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ResizeImage::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.ResizeImage)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    ::memset(&_impl_.new_height_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.new_width_) -
        reinterpret_cast<char*>(&_impl_.new_height_)) + sizeof(_impl_.new_width_));
    _impl_.method_ = 3;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ResizeImage::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional int32 new_height = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _Internal::set_has_new_height(&has_bits);
          _impl_.new_height_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 new_width = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _Internal::set_has_new_width(&has_bits);
          _impl_.new_width_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional .object_detection.protos.ResizeImage.Method method = 3 [default = BILINEAR];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          if (PROTOBUF_PREDICT_TRUE(::object_detection::protos::ResizeImage_Method_IsValid(val))) {
            _internal_set_method(static_cast<::object_detection::protos::ResizeImage_Method>(val));
          } else {
            ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(3, val, mutable_unknown_fields());
          }
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ResizeImage::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.ResizeImage)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional int32 new_height = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_new_height(), target);
  }

  // optional int32 new_width = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_new_width(), target);
  }

  // optional .object_detection.protos.ResizeImage.Method method = 3 [default = BILINEAR];
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      3, this->_internal_method(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.ResizeImage)
  return target;
}

size_t ResizeImage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.ResizeImage)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    // optional int32 new_height = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_new_height());
    }

    // optional int32 new_width = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_new_width());
    }

    // optional .object_detection.protos.ResizeImage.Method method = 3 [default = BILINEAR];
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 +
        ::_pbi::WireFormatLite::EnumSize(this->_internal_method());
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ResizeImage::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ResizeImage::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ResizeImage::GetClassData() const { return &_class_data_; }


void ResizeImage::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ResizeImage*>(&to_msg);
  auto& from = static_cast<const ResizeImage&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.ResizeImage)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.new_height_ = from._impl_.new_height_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.new_width_ = from._impl_.new_width_;
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_impl_.method_ = from._impl_.method_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ResizeImage::CopyFrom(const ResizeImage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.ResizeImage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ResizeImage::IsInitialized() const {
  return true;
}

void ResizeImage::InternalSwap(ResizeImage* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ResizeImage, _impl_.new_width_)
      + sizeof(ResizeImage::_impl_.new_width_)
      - PROTOBUF_FIELD_OFFSET(ResizeImage, _impl_.new_height_)>(
          reinterpret_cast<char*>(&_impl_.new_height_),
          reinterpret_cast<char*>(&other->_impl_.new_height_));
  swap(_impl_.method_, other->_impl_.method_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ResizeImage::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[23]);
}

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

class SubtractChannelMean::_Internal {
 public:
};

SubtractChannelMean::SubtractChannelMean(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.SubtractChannelMean)
}
SubtractChannelMean::SubtractChannelMean(const SubtractChannelMean& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SubtractChannelMean* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.means_){from._impl_.means_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.SubtractChannelMean)
}

inline void SubtractChannelMean::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.means_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

SubtractChannelMean::~SubtractChannelMean() {
  // @@protoc_insertion_point(destructor:object_detection.protos.SubtractChannelMean)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SubtractChannelMean::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.means_.~RepeatedField();
}

void SubtractChannelMean::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SubtractChannelMean::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.SubtractChannelMean)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.means_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SubtractChannelMean::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated float means = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          ptr -= 1;
          do {
            ptr += 1;
            _internal_add_means(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
            ptr += sizeof(float);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<13>(ptr));
        } else if (static_cast<uint8_t>(tag) == 10) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_means(), ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SubtractChannelMean::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.SubtractChannelMean)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated float means = 1;
  for (int i = 0, n = this->_internal_means_size(); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_means(i), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.SubtractChannelMean)
  return target;
}

size_t SubtractChannelMean::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.SubtractChannelMean)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated float means = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_means_size());
    size_t data_size = 4UL * count;
    total_size += 1 *
                  ::_pbi::FromIntSize(this->_internal_means_size());
    total_size += data_size;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SubtractChannelMean::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SubtractChannelMean::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SubtractChannelMean::GetClassData() const { return &_class_data_; }


void SubtractChannelMean::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SubtractChannelMean*>(&to_msg);
  auto& from = static_cast<const SubtractChannelMean&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.SubtractChannelMean)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.means_.MergeFrom(from._impl_.means_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SubtractChannelMean::CopyFrom(const SubtractChannelMean& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.SubtractChannelMean)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SubtractChannelMean::IsInitialized() const {
  return true;
}

void SubtractChannelMean::InternalSwap(SubtractChannelMean* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.means_.InternalSwap(&other->_impl_.means_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SubtractChannelMean::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[24]);
}

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

class SSDRandomCropOperation::_Internal {
 public:
  using HasBits = decltype(std::declval<SSDRandomCropOperation>()._impl_._has_bits_);
  static void set_has_min_object_covered(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_min_aspect_ratio(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_max_aspect_ratio(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_min_area(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static void set_has_max_area(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
  static void set_has_overlap_thresh(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static void set_has_clip_boxes(HasBits* has_bits) {
    (*has_bits)[0] |= 128u;
  }
  static void set_has_random_coef(HasBits* has_bits) {
    (*has_bits)[0] |= 64u;
  }
};

SSDRandomCropOperation::SSDRandomCropOperation(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.SSDRandomCropOperation)
}
SSDRandomCropOperation::SSDRandomCropOperation(const SSDRandomCropOperation& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SSDRandomCropOperation* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.min_object_covered_){}
    , decltype(_impl_.min_aspect_ratio_){}
    , decltype(_impl_.max_aspect_ratio_){}
    , decltype(_impl_.min_area_){}
    , decltype(_impl_.max_area_){}
    , decltype(_impl_.overlap_thresh_){}
    , decltype(_impl_.random_coef_){}
    , decltype(_impl_.clip_boxes_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.min_object_covered_, &from._impl_.min_object_covered_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.clip_boxes_) -
    reinterpret_cast<char*>(&_impl_.min_object_covered_)) + sizeof(_impl_.clip_boxes_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.SSDRandomCropOperation)
}

inline void SSDRandomCropOperation::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.min_object_covered_){0}
    , decltype(_impl_.min_aspect_ratio_){0}
    , decltype(_impl_.max_aspect_ratio_){0}
    , decltype(_impl_.min_area_){0}
    , decltype(_impl_.max_area_){0}
    , decltype(_impl_.overlap_thresh_){0}
    , decltype(_impl_.random_coef_){0}
    , decltype(_impl_.clip_boxes_){true}
  };
}

SSDRandomCropOperation::~SSDRandomCropOperation() {
  // @@protoc_insertion_point(destructor:object_detection.protos.SSDRandomCropOperation)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SSDRandomCropOperation::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void SSDRandomCropOperation::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SSDRandomCropOperation::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.SSDRandomCropOperation)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    ::memset(&_impl_.min_object_covered_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.random_coef_) -
        reinterpret_cast<char*>(&_impl_.min_object_covered_)) + sizeof(_impl_.random_coef_));
    _impl_.clip_boxes_ = true;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SSDRandomCropOperation::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float min_object_covered = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_min_object_covered(&has_bits);
          _impl_.min_object_covered_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float min_aspect_ratio = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_min_aspect_ratio(&has_bits);
          _impl_.min_aspect_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float max_aspect_ratio = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 29)) {
          _Internal::set_has_max_aspect_ratio(&has_bits);
          _impl_.max_aspect_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float min_area = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 37)) {
          _Internal::set_has_min_area(&has_bits);
          _impl_.min_area_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float max_area = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 45)) {
          _Internal::set_has_max_area(&has_bits);
          _impl_.max_area_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float overlap_thresh = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 53)) {
          _Internal::set_has_overlap_thresh(&has_bits);
          _impl_.overlap_thresh_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float random_coef = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 61)) {
          _Internal::set_has_random_coef(&has_bits);
          _impl_.random_coef_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional bool clip_boxes = 8 [default = true];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          _Internal::set_has_clip_boxes(&has_bits);
          _impl_.clip_boxes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SSDRandomCropOperation::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.SSDRandomCropOperation)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float min_object_covered = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_min_object_covered(), target);
  }

  // optional float min_aspect_ratio = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_min_aspect_ratio(), target);
  }

  // optional float max_aspect_ratio = 3;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(3, this->_internal_max_aspect_ratio(), target);
  }

  // optional float min_area = 4;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(4, this->_internal_min_area(), target);
  }

  // optional float max_area = 5;
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(5, this->_internal_max_area(), target);
  }

  // optional float overlap_thresh = 6;
  if (cached_has_bits & 0x00000020u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(6, this->_internal_overlap_thresh(), target);
  }

  // optional float random_coef = 7;
  if (cached_has_bits & 0x00000040u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(7, this->_internal_random_coef(), target);
  }

  // optional bool clip_boxes = 8 [default = true];
  if (cached_has_bits & 0x00000080u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(8, this->_internal_clip_boxes(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.SSDRandomCropOperation)
  return target;
}

size_t SSDRandomCropOperation::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.SSDRandomCropOperation)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    // optional float min_object_covered = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 + 4;
    }

    // optional float min_aspect_ratio = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 + 4;
    }

    // optional float max_aspect_ratio = 3;
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 + 4;
    }

    // optional float min_area = 4;
    if (cached_has_bits & 0x00000008u) {
      total_size += 1 + 4;
    }

    // optional float max_area = 5;
    if (cached_has_bits & 0x00000010u) {
      total_size += 1 + 4;
    }

    // optional float overlap_thresh = 6;
    if (cached_has_bits & 0x00000020u) {
      total_size += 1 + 4;
    }

    // optional float random_coef = 7;
    if (cached_has_bits & 0x00000040u) {
      total_size += 1 + 4;
    }

    // optional bool clip_boxes = 8 [default = true];
    if (cached_has_bits & 0x00000080u) {
      total_size += 1 + 1;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SSDRandomCropOperation::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SSDRandomCropOperation::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SSDRandomCropOperation::GetClassData() const { return &_class_data_; }


void SSDRandomCropOperation::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SSDRandomCropOperation*>(&to_msg);
  auto& from = static_cast<const SSDRandomCropOperation&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.SSDRandomCropOperation)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.min_object_covered_ = from._impl_.min_object_covered_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.min_aspect_ratio_ = from._impl_.min_aspect_ratio_;
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_impl_.max_aspect_ratio_ = from._impl_.max_aspect_ratio_;
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_impl_.min_area_ = from._impl_.min_area_;
    }
    if (cached_has_bits & 0x00000010u) {
      _this->_impl_.max_area_ = from._impl_.max_area_;
    }
    if (cached_has_bits & 0x00000020u) {
      _this->_impl_.overlap_thresh_ = from._impl_.overlap_thresh_;
    }
    if (cached_has_bits & 0x00000040u) {
      _this->_impl_.random_coef_ = from._impl_.random_coef_;
    }
    if (cached_has_bits & 0x00000080u) {
      _this->_impl_.clip_boxes_ = from._impl_.clip_boxes_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SSDRandomCropOperation::CopyFrom(const SSDRandomCropOperation& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.SSDRandomCropOperation)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SSDRandomCropOperation::IsInitialized() const {
  return true;
}

void SSDRandomCropOperation::InternalSwap(SSDRandomCropOperation* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SSDRandomCropOperation, _impl_.random_coef_)
      + sizeof(SSDRandomCropOperation::_impl_.random_coef_)
      - PROTOBUF_FIELD_OFFSET(SSDRandomCropOperation, _impl_.min_object_covered_)>(
          reinterpret_cast<char*>(&_impl_.min_object_covered_),
          reinterpret_cast<char*>(&other->_impl_.min_object_covered_));
  swap(_impl_.clip_boxes_, other->_impl_.clip_boxes_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SSDRandomCropOperation::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[25]);
}

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

class SSDRandomCrop::_Internal {
 public:
};

SSDRandomCrop::SSDRandomCrop(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.SSDRandomCrop)
}
SSDRandomCrop::SSDRandomCrop(const SSDRandomCrop& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SSDRandomCrop* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.operations_){from._impl_.operations_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.SSDRandomCrop)
}

inline void SSDRandomCrop::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.operations_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

SSDRandomCrop::~SSDRandomCrop() {
  // @@protoc_insertion_point(destructor:object_detection.protos.SSDRandomCrop)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SSDRandomCrop::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.operations_.~RepeatedPtrField();
}

void SSDRandomCrop::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SSDRandomCrop::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.SSDRandomCrop)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.operations_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SSDRandomCrop::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .object_detection.protos.SSDRandomCropOperation operations = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_operations(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SSDRandomCrop::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.SSDRandomCrop)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .object_detection.protos.SSDRandomCropOperation operations = 1;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_operations_size()); i < n; i++) {
    const auto& repfield = this->_internal_operations(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.SSDRandomCrop)
  return target;
}

size_t SSDRandomCrop::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.SSDRandomCrop)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .object_detection.protos.SSDRandomCropOperation operations = 1;
  total_size += 1UL * this->_internal_operations_size();
  for (const auto& msg : this->_impl_.operations_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SSDRandomCrop::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SSDRandomCrop::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SSDRandomCrop::GetClassData() const { return &_class_data_; }


void SSDRandomCrop::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SSDRandomCrop*>(&to_msg);
  auto& from = static_cast<const SSDRandomCrop&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.SSDRandomCrop)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.operations_.MergeFrom(from._impl_.operations_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SSDRandomCrop::CopyFrom(const SSDRandomCrop& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.SSDRandomCrop)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SSDRandomCrop::IsInitialized() const {
  return true;
}

void SSDRandomCrop::InternalSwap(SSDRandomCrop* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.operations_.InternalSwap(&other->_impl_.operations_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SSDRandomCrop::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[26]);
}

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

class SSDRandomCropPadOperation::_Internal {
 public:
  using HasBits = decltype(std::declval<SSDRandomCropPadOperation>()._impl_._has_bits_);
  static void set_has_min_object_covered(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_min_aspect_ratio(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_max_aspect_ratio(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_min_area(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static void set_has_max_area(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
  static void set_has_overlap_thresh(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static void set_has_clip_boxes(HasBits* has_bits) {
    (*has_bits)[0] |= 1024u;
  }
  static void set_has_random_coef(HasBits* has_bits) {
    (*has_bits)[0] |= 64u;
  }
  static void set_has_pad_color_r(HasBits* has_bits) {
    (*has_bits)[0] |= 128u;
  }
  static void set_has_pad_color_g(HasBits* has_bits) {
    (*has_bits)[0] |= 256u;
  }
  static void set_has_pad_color_b(HasBits* has_bits) {
    (*has_bits)[0] |= 512u;
  }
};

SSDRandomCropPadOperation::SSDRandomCropPadOperation(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.SSDRandomCropPadOperation)
}
SSDRandomCropPadOperation::SSDRandomCropPadOperation(const SSDRandomCropPadOperation& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SSDRandomCropPadOperation* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.min_padded_size_ratio_){from._impl_.min_padded_size_ratio_}
    , decltype(_impl_.max_padded_size_ratio_){from._impl_.max_padded_size_ratio_}
    , decltype(_impl_.min_object_covered_){}
    , decltype(_impl_.min_aspect_ratio_){}
    , decltype(_impl_.max_aspect_ratio_){}
    , decltype(_impl_.min_area_){}
    , decltype(_impl_.max_area_){}
    , decltype(_impl_.overlap_thresh_){}
    , decltype(_impl_.random_coef_){}
    , decltype(_impl_.pad_color_r_){}
    , decltype(_impl_.pad_color_g_){}
    , decltype(_impl_.pad_color_b_){}
    , decltype(_impl_.clip_boxes_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.min_object_covered_, &from._impl_.min_object_covered_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.clip_boxes_) -
    reinterpret_cast<char*>(&_impl_.min_object_covered_)) + sizeof(_impl_.clip_boxes_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.SSDRandomCropPadOperation)
}

inline void SSDRandomCropPadOperation::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.min_padded_size_ratio_){arena}
    , decltype(_impl_.max_padded_size_ratio_){arena}
    , decltype(_impl_.min_object_covered_){0}
    , decltype(_impl_.min_aspect_ratio_){0}
    , decltype(_impl_.max_aspect_ratio_){0}
    , decltype(_impl_.min_area_){0}
    , decltype(_impl_.max_area_){0}
    , decltype(_impl_.overlap_thresh_){0}
    , decltype(_impl_.random_coef_){0}
    , decltype(_impl_.pad_color_r_){0}
    , decltype(_impl_.pad_color_g_){0}
    , decltype(_impl_.pad_color_b_){0}
    , decltype(_impl_.clip_boxes_){true}
  };
}

SSDRandomCropPadOperation::~SSDRandomCropPadOperation() {
  // @@protoc_insertion_point(destructor:object_detection.protos.SSDRandomCropPadOperation)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SSDRandomCropPadOperation::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.min_padded_size_ratio_.~RepeatedField();
  _impl_.max_padded_size_ratio_.~RepeatedField();
}

void SSDRandomCropPadOperation::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SSDRandomCropPadOperation::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.SSDRandomCropPadOperation)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.min_padded_size_ratio_.Clear();
  _impl_.max_padded_size_ratio_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    ::memset(&_impl_.min_object_covered_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.pad_color_r_) -
        reinterpret_cast<char*>(&_impl_.min_object_covered_)) + sizeof(_impl_.pad_color_r_));
  }
  if (cached_has_bits & 0x00000700u) {
    ::memset(&_impl_.pad_color_g_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.pad_color_b_) -
        reinterpret_cast<char*>(&_impl_.pad_color_g_)) + sizeof(_impl_.pad_color_b_));
    _impl_.clip_boxes_ = true;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SSDRandomCropPadOperation::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float min_object_covered = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_min_object_covered(&has_bits);
          _impl_.min_object_covered_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float min_aspect_ratio = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_min_aspect_ratio(&has_bits);
          _impl_.min_aspect_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float max_aspect_ratio = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 29)) {
          _Internal::set_has_max_aspect_ratio(&has_bits);
          _impl_.max_aspect_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float min_area = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 37)) {
          _Internal::set_has_min_area(&has_bits);
          _impl_.min_area_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float max_area = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 45)) {
          _Internal::set_has_max_area(&has_bits);
          _impl_.max_area_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float overlap_thresh = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 53)) {
          _Internal::set_has_overlap_thresh(&has_bits);
          _impl_.overlap_thresh_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float random_coef = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 61)) {
          _Internal::set_has_random_coef(&has_bits);
          _impl_.random_coef_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated float min_padded_size_ratio = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 69)) {
          ptr -= 1;
          do {
            ptr += 1;
            _internal_add_min_padded_size_ratio(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
            ptr += sizeof(float);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<69>(ptr));
        } else if (static_cast<uint8_t>(tag) == 66) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_min_padded_size_ratio(), ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated float max_padded_size_ratio = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 77)) {
          ptr -= 1;
          do {
            ptr += 1;
            _internal_add_max_padded_size_ratio(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
            ptr += sizeof(float);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<77>(ptr));
        } else if (static_cast<uint8_t>(tag) == 74) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_max_padded_size_ratio(), ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional float pad_color_r = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 85)) {
          _Internal::set_has_pad_color_r(&has_bits);
          _impl_.pad_color_r_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float pad_color_g = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 93)) {
          _Internal::set_has_pad_color_g(&has_bits);
          _impl_.pad_color_g_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float pad_color_b = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 101)) {
          _Internal::set_has_pad_color_b(&has_bits);
          _impl_.pad_color_b_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional bool clip_boxes = 13 [default = true];
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 104)) {
          _Internal::set_has_clip_boxes(&has_bits);
          _impl_.clip_boxes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SSDRandomCropPadOperation::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.SSDRandomCropPadOperation)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float min_object_covered = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_min_object_covered(), target);
  }

  // optional float min_aspect_ratio = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_min_aspect_ratio(), target);
  }

  // optional float max_aspect_ratio = 3;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(3, this->_internal_max_aspect_ratio(), target);
  }

  // optional float min_area = 4;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(4, this->_internal_min_area(), target);
  }

  // optional float max_area = 5;
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(5, this->_internal_max_area(), target);
  }

  // optional float overlap_thresh = 6;
  if (cached_has_bits & 0x00000020u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(6, this->_internal_overlap_thresh(), target);
  }

  // optional float random_coef = 7;
  if (cached_has_bits & 0x00000040u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(7, this->_internal_random_coef(), target);
  }

  // repeated float min_padded_size_ratio = 8;
  for (int i = 0, n = this->_internal_min_padded_size_ratio_size(); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(8, this->_internal_min_padded_size_ratio(i), target);
  }

  // repeated float max_padded_size_ratio = 9;
  for (int i = 0, n = this->_internal_max_padded_size_ratio_size(); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(9, this->_internal_max_padded_size_ratio(i), target);
  }

  // optional float pad_color_r = 10;
  if (cached_has_bits & 0x00000080u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(10, this->_internal_pad_color_r(), target);
  }

  // optional float pad_color_g = 11;
  if (cached_has_bits & 0x00000100u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(11, this->_internal_pad_color_g(), target);
  }

  // optional float pad_color_b = 12;
  if (cached_has_bits & 0x00000200u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(12, this->_internal_pad_color_b(), target);
  }

  // optional bool clip_boxes = 13 [default = true];
  if (cached_has_bits & 0x00000400u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(13, this->_internal_clip_boxes(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.SSDRandomCropPadOperation)
  return target;
}

size_t SSDRandomCropPadOperation::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.SSDRandomCropPadOperation)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated float min_padded_size_ratio = 8;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_min_padded_size_ratio_size());
    size_t data_size = 4UL * count;
    total_size += 1 *
                  ::_pbi::FromIntSize(this->_internal_min_padded_size_ratio_size());
    total_size += data_size;
  }

  // repeated float max_padded_size_ratio = 9;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_max_padded_size_ratio_size());
    size_t data_size = 4UL * count;
    total_size += 1 *
                  ::_pbi::FromIntSize(this->_internal_max_padded_size_ratio_size());
    total_size += data_size;
  }

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    // optional float min_object_covered = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 + 4;
    }

    // optional float min_aspect_ratio = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 + 4;
    }

    // optional float max_aspect_ratio = 3;
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 + 4;
    }

    // optional float min_area = 4;
    if (cached_has_bits & 0x00000008u) {
      total_size += 1 + 4;
    }

    // optional float max_area = 5;
    if (cached_has_bits & 0x00000010u) {
      total_size += 1 + 4;
    }

    // optional float overlap_thresh = 6;
    if (cached_has_bits & 0x00000020u) {
      total_size += 1 + 4;
    }

    // optional float random_coef = 7;
    if (cached_has_bits & 0x00000040u) {
      total_size += 1 + 4;
    }

    // optional float pad_color_r = 10;
    if (cached_has_bits & 0x00000080u) {
      total_size += 1 + 4;
    }

  }
  if (cached_has_bits & 0x00000700u) {
    // optional float pad_color_g = 11;
    if (cached_has_bits & 0x00000100u) {
      total_size += 1 + 4;
    }

    // optional float pad_color_b = 12;
    if (cached_has_bits & 0x00000200u) {
      total_size += 1 + 4;
    }

    // optional bool clip_boxes = 13 [default = true];
    if (cached_has_bits & 0x00000400u) {
      total_size += 1 + 1;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SSDRandomCropPadOperation::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SSDRandomCropPadOperation::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SSDRandomCropPadOperation::GetClassData() const { return &_class_data_; }


void SSDRandomCropPadOperation::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SSDRandomCropPadOperation*>(&to_msg);
  auto& from = static_cast<const SSDRandomCropPadOperation&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.SSDRandomCropPadOperation)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.min_padded_size_ratio_.MergeFrom(from._impl_.min_padded_size_ratio_);
  _this->_impl_.max_padded_size_ratio_.MergeFrom(from._impl_.max_padded_size_ratio_);
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.min_object_covered_ = from._impl_.min_object_covered_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.min_aspect_ratio_ = from._impl_.min_aspect_ratio_;
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_impl_.max_aspect_ratio_ = from._impl_.max_aspect_ratio_;
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_impl_.min_area_ = from._impl_.min_area_;
    }
    if (cached_has_bits & 0x00000010u) {
      _this->_impl_.max_area_ = from._impl_.max_area_;
    }
    if (cached_has_bits & 0x00000020u) {
      _this->_impl_.overlap_thresh_ = from._impl_.overlap_thresh_;
    }
    if (cached_has_bits & 0x00000040u) {
      _this->_impl_.random_coef_ = from._impl_.random_coef_;
    }
    if (cached_has_bits & 0x00000080u) {
      _this->_impl_.pad_color_r_ = from._impl_.pad_color_r_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  if (cached_has_bits & 0x00000700u) {
    if (cached_has_bits & 0x00000100u) {
      _this->_impl_.pad_color_g_ = from._impl_.pad_color_g_;
    }
    if (cached_has_bits & 0x00000200u) {
      _this->_impl_.pad_color_b_ = from._impl_.pad_color_b_;
    }
    if (cached_has_bits & 0x00000400u) {
      _this->_impl_.clip_boxes_ = from._impl_.clip_boxes_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SSDRandomCropPadOperation::CopyFrom(const SSDRandomCropPadOperation& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.SSDRandomCropPadOperation)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SSDRandomCropPadOperation::IsInitialized() const {
  return true;
}

void SSDRandomCropPadOperation::InternalSwap(SSDRandomCropPadOperation* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.min_padded_size_ratio_.InternalSwap(&other->_impl_.min_padded_size_ratio_);
  _impl_.max_padded_size_ratio_.InternalSwap(&other->_impl_.max_padded_size_ratio_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SSDRandomCropPadOperation, _impl_.pad_color_b_)
      + sizeof(SSDRandomCropPadOperation::_impl_.pad_color_b_)
      - PROTOBUF_FIELD_OFFSET(SSDRandomCropPadOperation, _impl_.min_object_covered_)>(
          reinterpret_cast<char*>(&_impl_.min_object_covered_),
          reinterpret_cast<char*>(&other->_impl_.min_object_covered_));
  swap(_impl_.clip_boxes_, other->_impl_.clip_boxes_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SSDRandomCropPadOperation::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[27]);
}

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

class SSDRandomCropPad::_Internal {
 public:
};

SSDRandomCropPad::SSDRandomCropPad(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.SSDRandomCropPad)
}
SSDRandomCropPad::SSDRandomCropPad(const SSDRandomCropPad& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SSDRandomCropPad* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.operations_){from._impl_.operations_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.SSDRandomCropPad)
}

inline void SSDRandomCropPad::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.operations_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

SSDRandomCropPad::~SSDRandomCropPad() {
  // @@protoc_insertion_point(destructor:object_detection.protos.SSDRandomCropPad)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SSDRandomCropPad::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.operations_.~RepeatedPtrField();
}

void SSDRandomCropPad::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SSDRandomCropPad::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.SSDRandomCropPad)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.operations_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SSDRandomCropPad::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .object_detection.protos.SSDRandomCropPadOperation operations = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_operations(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SSDRandomCropPad::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.SSDRandomCropPad)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .object_detection.protos.SSDRandomCropPadOperation operations = 1;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_operations_size()); i < n; i++) {
    const auto& repfield = this->_internal_operations(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.SSDRandomCropPad)
  return target;
}

size_t SSDRandomCropPad::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.SSDRandomCropPad)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .object_detection.protos.SSDRandomCropPadOperation operations = 1;
  total_size += 1UL * this->_internal_operations_size();
  for (const auto& msg : this->_impl_.operations_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SSDRandomCropPad::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SSDRandomCropPad::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SSDRandomCropPad::GetClassData() const { return &_class_data_; }


void SSDRandomCropPad::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SSDRandomCropPad*>(&to_msg);
  auto& from = static_cast<const SSDRandomCropPad&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.SSDRandomCropPad)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.operations_.MergeFrom(from._impl_.operations_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SSDRandomCropPad::CopyFrom(const SSDRandomCropPad& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.SSDRandomCropPad)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SSDRandomCropPad::IsInitialized() const {
  return true;
}

void SSDRandomCropPad::InternalSwap(SSDRandomCropPad* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.operations_.InternalSwap(&other->_impl_.operations_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SSDRandomCropPad::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[28]);
}

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

class SSDRandomCropFixedAspectRatioOperation::_Internal {
 public:
  using HasBits = decltype(std::declval<SSDRandomCropFixedAspectRatioOperation>()._impl_._has_bits_);
  static void set_has_min_object_covered(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_min_area(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_max_area(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_overlap_thresh(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static void set_has_clip_boxes(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static void set_has_random_coef(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
};

SSDRandomCropFixedAspectRatioOperation::SSDRandomCropFixedAspectRatioOperation(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.SSDRandomCropFixedAspectRatioOperation)
}
SSDRandomCropFixedAspectRatioOperation::SSDRandomCropFixedAspectRatioOperation(const SSDRandomCropFixedAspectRatioOperation& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SSDRandomCropFixedAspectRatioOperation* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.min_object_covered_){}
    , decltype(_impl_.min_area_){}
    , decltype(_impl_.max_area_){}
    , decltype(_impl_.overlap_thresh_){}
    , decltype(_impl_.random_coef_){}
    , decltype(_impl_.clip_boxes_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.min_object_covered_, &from._impl_.min_object_covered_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.clip_boxes_) -
    reinterpret_cast<char*>(&_impl_.min_object_covered_)) + sizeof(_impl_.clip_boxes_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.SSDRandomCropFixedAspectRatioOperation)
}

inline void SSDRandomCropFixedAspectRatioOperation::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.min_object_covered_){0}
    , decltype(_impl_.min_area_){0}
    , decltype(_impl_.max_area_){0}
    , decltype(_impl_.overlap_thresh_){0}
    , decltype(_impl_.random_coef_){0}
    , decltype(_impl_.clip_boxes_){true}
  };
}

SSDRandomCropFixedAspectRatioOperation::~SSDRandomCropFixedAspectRatioOperation() {
  // @@protoc_insertion_point(destructor:object_detection.protos.SSDRandomCropFixedAspectRatioOperation)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SSDRandomCropFixedAspectRatioOperation::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void SSDRandomCropFixedAspectRatioOperation::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SSDRandomCropFixedAspectRatioOperation::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.SSDRandomCropFixedAspectRatioOperation)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x0000003fu) {
    ::memset(&_impl_.min_object_covered_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.random_coef_) -
        reinterpret_cast<char*>(&_impl_.min_object_covered_)) + sizeof(_impl_.random_coef_));
    _impl_.clip_boxes_ = true;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SSDRandomCropFixedAspectRatioOperation::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float min_object_covered = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_min_object_covered(&has_bits);
          _impl_.min_object_covered_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float min_area = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 37)) {
          _Internal::set_has_min_area(&has_bits);
          _impl_.min_area_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float max_area = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 45)) {
          _Internal::set_has_max_area(&has_bits);
          _impl_.max_area_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float overlap_thresh = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 53)) {
          _Internal::set_has_overlap_thresh(&has_bits);
          _impl_.overlap_thresh_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float random_coef = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 61)) {
          _Internal::set_has_random_coef(&has_bits);
          _impl_.random_coef_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional bool clip_boxes = 8 [default = true];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          _Internal::set_has_clip_boxes(&has_bits);
          _impl_.clip_boxes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SSDRandomCropFixedAspectRatioOperation::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.SSDRandomCropFixedAspectRatioOperation)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float min_object_covered = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_min_object_covered(), target);
  }

  // optional float min_area = 4;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(4, this->_internal_min_area(), target);
  }

  // optional float max_area = 5;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(5, this->_internal_max_area(), target);
  }

  // optional float overlap_thresh = 6;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(6, this->_internal_overlap_thresh(), target);
  }

  // optional float random_coef = 7;
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(7, this->_internal_random_coef(), target);
  }

  // optional bool clip_boxes = 8 [default = true];
  if (cached_has_bits & 0x00000020u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(8, this->_internal_clip_boxes(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.SSDRandomCropFixedAspectRatioOperation)
  return target;
}

size_t SSDRandomCropFixedAspectRatioOperation::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.SSDRandomCropFixedAspectRatioOperation)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x0000003fu) {
    // optional float min_object_covered = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 + 4;
    }

    // optional float min_area = 4;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 + 4;
    }

    // optional float max_area = 5;
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 + 4;
    }

    // optional float overlap_thresh = 6;
    if (cached_has_bits & 0x00000008u) {
      total_size += 1 + 4;
    }

    // optional float random_coef = 7;
    if (cached_has_bits & 0x00000010u) {
      total_size += 1 + 4;
    }

    // optional bool clip_boxes = 8 [default = true];
    if (cached_has_bits & 0x00000020u) {
      total_size += 1 + 1;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SSDRandomCropFixedAspectRatioOperation::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SSDRandomCropFixedAspectRatioOperation::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SSDRandomCropFixedAspectRatioOperation::GetClassData() const { return &_class_data_; }


void SSDRandomCropFixedAspectRatioOperation::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SSDRandomCropFixedAspectRatioOperation*>(&to_msg);
  auto& from = static_cast<const SSDRandomCropFixedAspectRatioOperation&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.SSDRandomCropFixedAspectRatioOperation)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x0000003fu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.min_object_covered_ = from._impl_.min_object_covered_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.min_area_ = from._impl_.min_area_;
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_impl_.max_area_ = from._impl_.max_area_;
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_impl_.overlap_thresh_ = from._impl_.overlap_thresh_;
    }
    if (cached_has_bits & 0x00000010u) {
      _this->_impl_.random_coef_ = from._impl_.random_coef_;
    }
    if (cached_has_bits & 0x00000020u) {
      _this->_impl_.clip_boxes_ = from._impl_.clip_boxes_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SSDRandomCropFixedAspectRatioOperation::CopyFrom(const SSDRandomCropFixedAspectRatioOperation& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.SSDRandomCropFixedAspectRatioOperation)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SSDRandomCropFixedAspectRatioOperation::IsInitialized() const {
  return true;
}

void SSDRandomCropFixedAspectRatioOperation::InternalSwap(SSDRandomCropFixedAspectRatioOperation* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SSDRandomCropFixedAspectRatioOperation, _impl_.random_coef_)
      + sizeof(SSDRandomCropFixedAspectRatioOperation::_impl_.random_coef_)
      - PROTOBUF_FIELD_OFFSET(SSDRandomCropFixedAspectRatioOperation, _impl_.min_object_covered_)>(
          reinterpret_cast<char*>(&_impl_.min_object_covered_),
          reinterpret_cast<char*>(&other->_impl_.min_object_covered_));
  swap(_impl_.clip_boxes_, other->_impl_.clip_boxes_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SSDRandomCropFixedAspectRatioOperation::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[29]);
}

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

class SSDRandomCropFixedAspectRatio::_Internal {
 public:
  using HasBits = decltype(std::declval<SSDRandomCropFixedAspectRatio>()._impl_._has_bits_);
  static void set_has_aspect_ratio(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

SSDRandomCropFixedAspectRatio::SSDRandomCropFixedAspectRatio(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.SSDRandomCropFixedAspectRatio)
}
SSDRandomCropFixedAspectRatio::SSDRandomCropFixedAspectRatio(const SSDRandomCropFixedAspectRatio& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SSDRandomCropFixedAspectRatio* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.operations_){from._impl_.operations_}
    , decltype(_impl_.aspect_ratio_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.aspect_ratio_ = from._impl_.aspect_ratio_;
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.SSDRandomCropFixedAspectRatio)
}

inline void SSDRandomCropFixedAspectRatio::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.operations_){arena}
    , decltype(_impl_.aspect_ratio_){1}
  };
}

SSDRandomCropFixedAspectRatio::~SSDRandomCropFixedAspectRatio() {
  // @@protoc_insertion_point(destructor:object_detection.protos.SSDRandomCropFixedAspectRatio)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SSDRandomCropFixedAspectRatio::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.operations_.~RepeatedPtrField();
}

void SSDRandomCropFixedAspectRatio::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SSDRandomCropFixedAspectRatio::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.SSDRandomCropFixedAspectRatio)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.operations_.Clear();
  _impl_.aspect_ratio_ = 1;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SSDRandomCropFixedAspectRatio::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .object_detection.protos.SSDRandomCropFixedAspectRatioOperation operations = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_operations(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // optional float aspect_ratio = 2 [default = 1];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_aspect_ratio(&has_bits);
          _impl_.aspect_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SSDRandomCropFixedAspectRatio::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.SSDRandomCropFixedAspectRatio)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .object_detection.protos.SSDRandomCropFixedAspectRatioOperation operations = 1;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_operations_size()); i < n; i++) {
    const auto& repfield = this->_internal_operations(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  cached_has_bits = _impl_._has_bits_[0];
  // optional float aspect_ratio = 2 [default = 1];
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_aspect_ratio(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.SSDRandomCropFixedAspectRatio)
  return target;
}

size_t SSDRandomCropFixedAspectRatio::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.SSDRandomCropFixedAspectRatio)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .object_detection.protos.SSDRandomCropFixedAspectRatioOperation operations = 1;
  total_size += 1UL * this->_internal_operations_size();
  for (const auto& msg : this->_impl_.operations_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // optional float aspect_ratio = 2 [default = 1];
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    total_size += 1 + 4;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SSDRandomCropFixedAspectRatio::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SSDRandomCropFixedAspectRatio::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SSDRandomCropFixedAspectRatio::GetClassData() const { return &_class_data_; }


void SSDRandomCropFixedAspectRatio::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SSDRandomCropFixedAspectRatio*>(&to_msg);
  auto& from = static_cast<const SSDRandomCropFixedAspectRatio&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.SSDRandomCropFixedAspectRatio)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.operations_.MergeFrom(from._impl_.operations_);
  if (from._internal_has_aspect_ratio()) {
    _this->_internal_set_aspect_ratio(from._internal_aspect_ratio());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SSDRandomCropFixedAspectRatio::CopyFrom(const SSDRandomCropFixedAspectRatio& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.SSDRandomCropFixedAspectRatio)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SSDRandomCropFixedAspectRatio::IsInitialized() const {
  return true;
}

void SSDRandomCropFixedAspectRatio::InternalSwap(SSDRandomCropFixedAspectRatio* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.operations_.InternalSwap(&other->_impl_.operations_);
  swap(_impl_.aspect_ratio_, other->_impl_.aspect_ratio_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SSDRandomCropFixedAspectRatio::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[30]);
}

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

class SSDRandomCropPadFixedAspectRatioOperation::_Internal {
 public:
  using HasBits = decltype(std::declval<SSDRandomCropPadFixedAspectRatioOperation>()._impl_._has_bits_);
  static void set_has_min_object_covered(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_min_aspect_ratio(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_max_aspect_ratio(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_min_area(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static void set_has_max_area(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
  static void set_has_overlap_thresh(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static void set_has_clip_boxes(HasBits* has_bits) {
    (*has_bits)[0] |= 128u;
  }
  static void set_has_random_coef(HasBits* has_bits) {
    (*has_bits)[0] |= 64u;
  }
};

SSDRandomCropPadFixedAspectRatioOperation::SSDRandomCropPadFixedAspectRatioOperation(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation)
}
SSDRandomCropPadFixedAspectRatioOperation::SSDRandomCropPadFixedAspectRatioOperation(const SSDRandomCropPadFixedAspectRatioOperation& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SSDRandomCropPadFixedAspectRatioOperation* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.min_object_covered_){}
    , decltype(_impl_.min_aspect_ratio_){}
    , decltype(_impl_.max_aspect_ratio_){}
    , decltype(_impl_.min_area_){}
    , decltype(_impl_.max_area_){}
    , decltype(_impl_.overlap_thresh_){}
    , decltype(_impl_.random_coef_){}
    , decltype(_impl_.clip_boxes_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.min_object_covered_, &from._impl_.min_object_covered_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.clip_boxes_) -
    reinterpret_cast<char*>(&_impl_.min_object_covered_)) + sizeof(_impl_.clip_boxes_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation)
}

inline void SSDRandomCropPadFixedAspectRatioOperation::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.min_object_covered_){0}
    , decltype(_impl_.min_aspect_ratio_){0}
    , decltype(_impl_.max_aspect_ratio_){0}
    , decltype(_impl_.min_area_){0}
    , decltype(_impl_.max_area_){0}
    , decltype(_impl_.overlap_thresh_){0}
    , decltype(_impl_.random_coef_){0}
    , decltype(_impl_.clip_boxes_){true}
  };
}

SSDRandomCropPadFixedAspectRatioOperation::~SSDRandomCropPadFixedAspectRatioOperation() {
  // @@protoc_insertion_point(destructor:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SSDRandomCropPadFixedAspectRatioOperation::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void SSDRandomCropPadFixedAspectRatioOperation::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SSDRandomCropPadFixedAspectRatioOperation::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    ::memset(&_impl_.min_object_covered_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.random_coef_) -
        reinterpret_cast<char*>(&_impl_.min_object_covered_)) + sizeof(_impl_.random_coef_));
    _impl_.clip_boxes_ = true;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SSDRandomCropPadFixedAspectRatioOperation::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float min_object_covered = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_min_object_covered(&has_bits);
          _impl_.min_object_covered_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float min_aspect_ratio = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_min_aspect_ratio(&has_bits);
          _impl_.min_aspect_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float max_aspect_ratio = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 29)) {
          _Internal::set_has_max_aspect_ratio(&has_bits);
          _impl_.max_aspect_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float min_area = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 37)) {
          _Internal::set_has_min_area(&has_bits);
          _impl_.min_area_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float max_area = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 45)) {
          _Internal::set_has_max_area(&has_bits);
          _impl_.max_area_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float overlap_thresh = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 53)) {
          _Internal::set_has_overlap_thresh(&has_bits);
          _impl_.overlap_thresh_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float random_coef = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 61)) {
          _Internal::set_has_random_coef(&has_bits);
          _impl_.random_coef_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional bool clip_boxes = 8 [default = true];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          _Internal::set_has_clip_boxes(&has_bits);
          _impl_.clip_boxes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SSDRandomCropPadFixedAspectRatioOperation::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float min_object_covered = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_min_object_covered(), target);
  }

  // optional float min_aspect_ratio = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_min_aspect_ratio(), target);
  }

  // optional float max_aspect_ratio = 3;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(3, this->_internal_max_aspect_ratio(), target);
  }

  // optional float min_area = 4;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(4, this->_internal_min_area(), target);
  }

  // optional float max_area = 5;
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(5, this->_internal_max_area(), target);
  }

  // optional float overlap_thresh = 6;
  if (cached_has_bits & 0x00000020u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(6, this->_internal_overlap_thresh(), target);
  }

  // optional float random_coef = 7;
  if (cached_has_bits & 0x00000040u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(7, this->_internal_random_coef(), target);
  }

  // optional bool clip_boxes = 8 [default = true];
  if (cached_has_bits & 0x00000080u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(8, this->_internal_clip_boxes(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation)
  return target;
}

size_t SSDRandomCropPadFixedAspectRatioOperation::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    // optional float min_object_covered = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 + 4;
    }

    // optional float min_aspect_ratio = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 + 4;
    }

    // optional float max_aspect_ratio = 3;
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 + 4;
    }

    // optional float min_area = 4;
    if (cached_has_bits & 0x00000008u) {
      total_size += 1 + 4;
    }

    // optional float max_area = 5;
    if (cached_has_bits & 0x00000010u) {
      total_size += 1 + 4;
    }

    // optional float overlap_thresh = 6;
    if (cached_has_bits & 0x00000020u) {
      total_size += 1 + 4;
    }

    // optional float random_coef = 7;
    if (cached_has_bits & 0x00000040u) {
      total_size += 1 + 4;
    }

    // optional bool clip_boxes = 8 [default = true];
    if (cached_has_bits & 0x00000080u) {
      total_size += 1 + 1;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SSDRandomCropPadFixedAspectRatioOperation::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SSDRandomCropPadFixedAspectRatioOperation::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SSDRandomCropPadFixedAspectRatioOperation::GetClassData() const { return &_class_data_; }


void SSDRandomCropPadFixedAspectRatioOperation::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SSDRandomCropPadFixedAspectRatioOperation*>(&to_msg);
  auto& from = static_cast<const SSDRandomCropPadFixedAspectRatioOperation&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.min_object_covered_ = from._impl_.min_object_covered_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.min_aspect_ratio_ = from._impl_.min_aspect_ratio_;
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_impl_.max_aspect_ratio_ = from._impl_.max_aspect_ratio_;
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_impl_.min_area_ = from._impl_.min_area_;
    }
    if (cached_has_bits & 0x00000010u) {
      _this->_impl_.max_area_ = from._impl_.max_area_;
    }
    if (cached_has_bits & 0x00000020u) {
      _this->_impl_.overlap_thresh_ = from._impl_.overlap_thresh_;
    }
    if (cached_has_bits & 0x00000040u) {
      _this->_impl_.random_coef_ = from._impl_.random_coef_;
    }
    if (cached_has_bits & 0x00000080u) {
      _this->_impl_.clip_boxes_ = from._impl_.clip_boxes_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SSDRandomCropPadFixedAspectRatioOperation::CopyFrom(const SSDRandomCropPadFixedAspectRatioOperation& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SSDRandomCropPadFixedAspectRatioOperation::IsInitialized() const {
  return true;
}

void SSDRandomCropPadFixedAspectRatioOperation::InternalSwap(SSDRandomCropPadFixedAspectRatioOperation* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SSDRandomCropPadFixedAspectRatioOperation, _impl_.random_coef_)
      + sizeof(SSDRandomCropPadFixedAspectRatioOperation::_impl_.random_coef_)
      - PROTOBUF_FIELD_OFFSET(SSDRandomCropPadFixedAspectRatioOperation, _impl_.min_object_covered_)>(
          reinterpret_cast<char*>(&_impl_.min_object_covered_),
          reinterpret_cast<char*>(&other->_impl_.min_object_covered_));
  swap(_impl_.clip_boxes_, other->_impl_.clip_boxes_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SSDRandomCropPadFixedAspectRatioOperation::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[31]);
}

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

class SSDRandomCropPadFixedAspectRatio::_Internal {
 public:
  using HasBits = decltype(std::declval<SSDRandomCropPadFixedAspectRatio>()._impl_._has_bits_);
  static void set_has_aspect_ratio(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

SSDRandomCropPadFixedAspectRatio::SSDRandomCropPadFixedAspectRatio(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.SSDRandomCropPadFixedAspectRatio)
}
SSDRandomCropPadFixedAspectRatio::SSDRandomCropPadFixedAspectRatio(const SSDRandomCropPadFixedAspectRatio& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SSDRandomCropPadFixedAspectRatio* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.operations_){from._impl_.operations_}
    , decltype(_impl_.min_padded_size_ratio_){from._impl_.min_padded_size_ratio_}
    , decltype(_impl_.max_padded_size_ratio_){from._impl_.max_padded_size_ratio_}
    , decltype(_impl_.aspect_ratio_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.aspect_ratio_ = from._impl_.aspect_ratio_;
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.SSDRandomCropPadFixedAspectRatio)
}

inline void SSDRandomCropPadFixedAspectRatio::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.operations_){arena}
    , decltype(_impl_.min_padded_size_ratio_){arena}
    , decltype(_impl_.max_padded_size_ratio_){arena}
    , decltype(_impl_.aspect_ratio_){1}
  };
}

SSDRandomCropPadFixedAspectRatio::~SSDRandomCropPadFixedAspectRatio() {
  // @@protoc_insertion_point(destructor:object_detection.protos.SSDRandomCropPadFixedAspectRatio)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SSDRandomCropPadFixedAspectRatio::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.operations_.~RepeatedPtrField();
  _impl_.min_padded_size_ratio_.~RepeatedField();
  _impl_.max_padded_size_ratio_.~RepeatedField();
}

void SSDRandomCropPadFixedAspectRatio::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SSDRandomCropPadFixedAspectRatio::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.SSDRandomCropPadFixedAspectRatio)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.operations_.Clear();
  _impl_.min_padded_size_ratio_.Clear();
  _impl_.max_padded_size_ratio_.Clear();
  _impl_.aspect_ratio_ = 1;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SSDRandomCropPadFixedAspectRatio::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation operations = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_operations(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // optional float aspect_ratio = 2 [default = 1];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_aspect_ratio(&has_bits);
          _impl_.aspect_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated float min_padded_size_ratio = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 29)) {
          ptr -= 1;
          do {
            ptr += 1;
            _internal_add_min_padded_size_ratio(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
            ptr += sizeof(float);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<29>(ptr));
        } else if (static_cast<uint8_t>(tag) == 26) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_min_padded_size_ratio(), ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated float max_padded_size_ratio = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 37)) {
          ptr -= 1;
          do {
            ptr += 1;
            _internal_add_max_padded_size_ratio(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
            ptr += sizeof(float);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<37>(ptr));
        } else if (static_cast<uint8_t>(tag) == 34) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_max_padded_size_ratio(), ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SSDRandomCropPadFixedAspectRatio::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.SSDRandomCropPadFixedAspectRatio)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation operations = 1;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_operations_size()); i < n; i++) {
    const auto& repfield = this->_internal_operations(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  cached_has_bits = _impl_._has_bits_[0];
  // optional float aspect_ratio = 2 [default = 1];
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_aspect_ratio(), target);
  }

  // repeated float min_padded_size_ratio = 3;
  for (int i = 0, n = this->_internal_min_padded_size_ratio_size(); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(3, this->_internal_min_padded_size_ratio(i), target);
  }

  // repeated float max_padded_size_ratio = 4;
  for (int i = 0, n = this->_internal_max_padded_size_ratio_size(); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(4, this->_internal_max_padded_size_ratio(i), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.SSDRandomCropPadFixedAspectRatio)
  return target;
}

size_t SSDRandomCropPadFixedAspectRatio::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.SSDRandomCropPadFixedAspectRatio)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .object_detection.protos.SSDRandomCropPadFixedAspectRatioOperation operations = 1;
  total_size += 1UL * this->_internal_operations_size();
  for (const auto& msg : this->_impl_.operations_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated float min_padded_size_ratio = 3;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_min_padded_size_ratio_size());
    size_t data_size = 4UL * count;
    total_size += 1 *
                  ::_pbi::FromIntSize(this->_internal_min_padded_size_ratio_size());
    total_size += data_size;
  }

  // repeated float max_padded_size_ratio = 4;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_max_padded_size_ratio_size());
    size_t data_size = 4UL * count;
    total_size += 1 *
                  ::_pbi::FromIntSize(this->_internal_max_padded_size_ratio_size());
    total_size += data_size;
  }

  // optional float aspect_ratio = 2 [default = 1];
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    total_size += 1 + 4;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SSDRandomCropPadFixedAspectRatio::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SSDRandomCropPadFixedAspectRatio::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SSDRandomCropPadFixedAspectRatio::GetClassData() const { return &_class_data_; }


void SSDRandomCropPadFixedAspectRatio::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SSDRandomCropPadFixedAspectRatio*>(&to_msg);
  auto& from = static_cast<const SSDRandomCropPadFixedAspectRatio&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.SSDRandomCropPadFixedAspectRatio)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.operations_.MergeFrom(from._impl_.operations_);
  _this->_impl_.min_padded_size_ratio_.MergeFrom(from._impl_.min_padded_size_ratio_);
  _this->_impl_.max_padded_size_ratio_.MergeFrom(from._impl_.max_padded_size_ratio_);
  if (from._internal_has_aspect_ratio()) {
    _this->_internal_set_aspect_ratio(from._internal_aspect_ratio());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SSDRandomCropPadFixedAspectRatio::CopyFrom(const SSDRandomCropPadFixedAspectRatio& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.SSDRandomCropPadFixedAspectRatio)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SSDRandomCropPadFixedAspectRatio::IsInitialized() const {
  return true;
}

void SSDRandomCropPadFixedAspectRatio::InternalSwap(SSDRandomCropPadFixedAspectRatio* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.operations_.InternalSwap(&other->_impl_.operations_);
  _impl_.min_padded_size_ratio_.InternalSwap(&other->_impl_.min_padded_size_ratio_);
  _impl_.max_padded_size_ratio_.InternalSwap(&other->_impl_.max_padded_size_ratio_);
  swap(_impl_.aspect_ratio_, other->_impl_.aspect_ratio_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SSDRandomCropPadFixedAspectRatio::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[32]);
}

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

class ConvertClassLogitsToSoftmax::_Internal {
 public:
  using HasBits = decltype(std::declval<ConvertClassLogitsToSoftmax>()._impl_._has_bits_);
  static void set_has_temperature(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

ConvertClassLogitsToSoftmax::ConvertClassLogitsToSoftmax(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.ConvertClassLogitsToSoftmax)
}
ConvertClassLogitsToSoftmax::ConvertClassLogitsToSoftmax(const ConvertClassLogitsToSoftmax& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ConvertClassLogitsToSoftmax* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.temperature_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.temperature_ = from._impl_.temperature_;
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.ConvertClassLogitsToSoftmax)
}

inline void ConvertClassLogitsToSoftmax::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.temperature_){1}
  };
}

ConvertClassLogitsToSoftmax::~ConvertClassLogitsToSoftmax() {
  // @@protoc_insertion_point(destructor:object_detection.protos.ConvertClassLogitsToSoftmax)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ConvertClassLogitsToSoftmax::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void ConvertClassLogitsToSoftmax::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ConvertClassLogitsToSoftmax::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.ConvertClassLogitsToSoftmax)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.temperature_ = 1;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ConvertClassLogitsToSoftmax::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float temperature = 1 [default = 1];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_temperature(&has_bits);
          _impl_.temperature_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ConvertClassLogitsToSoftmax::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.ConvertClassLogitsToSoftmax)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float temperature = 1 [default = 1];
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_temperature(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.ConvertClassLogitsToSoftmax)
  return target;
}

size_t ConvertClassLogitsToSoftmax::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.ConvertClassLogitsToSoftmax)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // optional float temperature = 1 [default = 1];
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    total_size += 1 + 4;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ConvertClassLogitsToSoftmax::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ConvertClassLogitsToSoftmax::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ConvertClassLogitsToSoftmax::GetClassData() const { return &_class_data_; }


void ConvertClassLogitsToSoftmax::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ConvertClassLogitsToSoftmax*>(&to_msg);
  auto& from = static_cast<const ConvertClassLogitsToSoftmax&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.ConvertClassLogitsToSoftmax)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_temperature()) {
    _this->_internal_set_temperature(from._internal_temperature());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ConvertClassLogitsToSoftmax::CopyFrom(const ConvertClassLogitsToSoftmax& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.ConvertClassLogitsToSoftmax)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ConvertClassLogitsToSoftmax::IsInitialized() const {
  return true;
}

void ConvertClassLogitsToSoftmax::InternalSwap(ConvertClassLogitsToSoftmax* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.temperature_, other->_impl_.temperature_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ConvertClassLogitsToSoftmax::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[33]);
}

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

class RandomSelfConcatImage::_Internal {
 public:
  using HasBits = decltype(std::declval<RandomSelfConcatImage>()._impl_._has_bits_);
  static void set_has_concat_vertical_probability(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_concat_horizontal_probability(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
};

RandomSelfConcatImage::RandomSelfConcatImage(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RandomSelfConcatImage)
}
RandomSelfConcatImage::RandomSelfConcatImage(const RandomSelfConcatImage& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RandomSelfConcatImage* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.concat_vertical_probability_){}
    , decltype(_impl_.concat_horizontal_probability_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.concat_vertical_probability_, &from._impl_.concat_vertical_probability_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.concat_horizontal_probability_) -
    reinterpret_cast<char*>(&_impl_.concat_vertical_probability_)) + sizeof(_impl_.concat_horizontal_probability_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RandomSelfConcatImage)
}

inline void RandomSelfConcatImage::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.concat_vertical_probability_){0.1f}
    , decltype(_impl_.concat_horizontal_probability_){0.1f}
  };
}

RandomSelfConcatImage::~RandomSelfConcatImage() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RandomSelfConcatImage)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RandomSelfConcatImage::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void RandomSelfConcatImage::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RandomSelfConcatImage::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RandomSelfConcatImage)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    _impl_.concat_vertical_probability_ = 0.1f;
    _impl_.concat_horizontal_probability_ = 0.1f;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RandomSelfConcatImage::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float concat_vertical_probability = 1 [default = 0.1];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_concat_vertical_probability(&has_bits);
          _impl_.concat_vertical_probability_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float concat_horizontal_probability = 2 [default = 0.1];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_concat_horizontal_probability(&has_bits);
          _impl_.concat_horizontal_probability_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RandomSelfConcatImage::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RandomSelfConcatImage)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float concat_vertical_probability = 1 [default = 0.1];
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_concat_vertical_probability(), target);
  }

  // optional float concat_horizontal_probability = 2 [default = 0.1];
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_concat_horizontal_probability(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RandomSelfConcatImage)
  return target;
}

size_t RandomSelfConcatImage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RandomSelfConcatImage)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    // optional float concat_vertical_probability = 1 [default = 0.1];
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 + 4;
    }

    // optional float concat_horizontal_probability = 2 [default = 0.1];
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 + 4;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RandomSelfConcatImage::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RandomSelfConcatImage::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RandomSelfConcatImage::GetClassData() const { return &_class_data_; }


void RandomSelfConcatImage::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RandomSelfConcatImage*>(&to_msg);
  auto& from = static_cast<const RandomSelfConcatImage&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RandomSelfConcatImage)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.concat_vertical_probability_ = from._impl_.concat_vertical_probability_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.concat_horizontal_probability_ = from._impl_.concat_horizontal_probability_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RandomSelfConcatImage::CopyFrom(const RandomSelfConcatImage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RandomSelfConcatImage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RandomSelfConcatImage::IsInitialized() const {
  return true;
}

void RandomSelfConcatImage::InternalSwap(RandomSelfConcatImage* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.concat_vertical_probability_, other->_impl_.concat_vertical_probability_);
  swap(_impl_.concat_horizontal_probability_, other->_impl_.concat_horizontal_probability_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RandomSelfConcatImage::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[34]);
}

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

class AutoAugmentImage::_Internal {
 public:
  using HasBits = decltype(std::declval<AutoAugmentImage>()._impl_._has_bits_);
  static void set_has_policy_name(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

const ::PROTOBUF_NAMESPACE_ID::internal::LazyString AutoAugmentImage::Impl_::_i_give_permission_to_break_this_code_default_policy_name_{{{"v0", 2}}, {nullptr}};
AutoAugmentImage::AutoAugmentImage(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.AutoAugmentImage)
}
AutoAugmentImage::AutoAugmentImage(const AutoAugmentImage& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  AutoAugmentImage* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.policy_name_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.policy_name_.InitDefault();
  if (from._internal_has_policy_name()) {
    _this->_impl_.policy_name_.Set(from._internal_policy_name(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.AutoAugmentImage)
}

inline void AutoAugmentImage::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.policy_name_){}
  };
  _impl_.policy_name_.InitDefault();
}

AutoAugmentImage::~AutoAugmentImage() {
  // @@protoc_insertion_point(destructor:object_detection.protos.AutoAugmentImage)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void AutoAugmentImage::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.policy_name_.Destroy();
}

void AutoAugmentImage::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void AutoAugmentImage::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.AutoAugmentImage)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    _impl_.policy_name_.ClearToDefault(::object_detection::protos::AutoAugmentImage::Impl_::_i_give_permission_to_break_this_code_default_policy_name_, GetArenaForAllocation());
     }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AutoAugmentImage::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional string policy_name = 1 [default = "v0"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_policy_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          #ifndef NDEBUG
          ::_pbi::VerifyUTF8(str, "object_detection.protos.AutoAugmentImage.policy_name");
          #endif  // !NDEBUG
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* AutoAugmentImage::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.AutoAugmentImage)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional string policy_name = 1 [default = "v0"];
  if (cached_has_bits & 0x00000001u) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
      this->_internal_policy_name().data(), static_cast<int>(this->_internal_policy_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
      "object_detection.protos.AutoAugmentImage.policy_name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_policy_name(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.AutoAugmentImage)
  return target;
}

size_t AutoAugmentImage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.AutoAugmentImage)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // optional string policy_name = 1 [default = "v0"];
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_policy_name());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AutoAugmentImage::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    AutoAugmentImage::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AutoAugmentImage::GetClassData() const { return &_class_data_; }


void AutoAugmentImage::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<AutoAugmentImage*>(&to_msg);
  auto& from = static_cast<const AutoAugmentImage&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.AutoAugmentImage)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_policy_name()) {
    _this->_internal_set_policy_name(from._internal_policy_name());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void AutoAugmentImage::CopyFrom(const AutoAugmentImage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.AutoAugmentImage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AutoAugmentImage::IsInitialized() const {
  return true;
}

void AutoAugmentImage::InternalSwap(AutoAugmentImage* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.policy_name_, lhs_arena,
      &other->_impl_.policy_name_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata AutoAugmentImage::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[35]);
}

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

class DropLabelProbabilistically::_Internal {
 public:
  using HasBits = decltype(std::declval<DropLabelProbabilistically>()._impl_._has_bits_);
  static void set_has_label(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_drop_probability(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
};

DropLabelProbabilistically::DropLabelProbabilistically(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.DropLabelProbabilistically)
}
DropLabelProbabilistically::DropLabelProbabilistically(const DropLabelProbabilistically& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  DropLabelProbabilistically* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.label_){}
    , decltype(_impl_.drop_probability_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.label_, &from._impl_.label_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.drop_probability_) -
    reinterpret_cast<char*>(&_impl_.label_)) + sizeof(_impl_.drop_probability_));
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.DropLabelProbabilistically)
}

inline void DropLabelProbabilistically::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.label_){0}
    , decltype(_impl_.drop_probability_){1}
  };
}

DropLabelProbabilistically::~DropLabelProbabilistically() {
  // @@protoc_insertion_point(destructor:object_detection.protos.DropLabelProbabilistically)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void DropLabelProbabilistically::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void DropLabelProbabilistically::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void DropLabelProbabilistically::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.DropLabelProbabilistically)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    _impl_.label_ = 0;
    _impl_.drop_probability_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* DropLabelProbabilistically::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional int32 label = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _Internal::set_has_label(&has_bits);
          _impl_.label_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional float drop_probability = 2 [default = 1];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_drop_probability(&has_bits);
          _impl_.drop_probability_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* DropLabelProbabilistically::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.DropLabelProbabilistically)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional int32 label = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_label(), target);
  }

  // optional float drop_probability = 2 [default = 1];
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_drop_probability(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.DropLabelProbabilistically)
  return target;
}

size_t DropLabelProbabilistically::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.DropLabelProbabilistically)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    // optional int32 label = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_label());
    }

    // optional float drop_probability = 2 [default = 1];
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 + 4;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData DropLabelProbabilistically::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    DropLabelProbabilistically::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*DropLabelProbabilistically::GetClassData() const { return &_class_data_; }


void DropLabelProbabilistically::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<DropLabelProbabilistically*>(&to_msg);
  auto& from = static_cast<const DropLabelProbabilistically&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.DropLabelProbabilistically)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.label_ = from._impl_.label_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.drop_probability_ = from._impl_.drop_probability_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void DropLabelProbabilistically::CopyFrom(const DropLabelProbabilistically& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.DropLabelProbabilistically)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DropLabelProbabilistically::IsInitialized() const {
  return true;
}

void DropLabelProbabilistically::InternalSwap(DropLabelProbabilistically* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.label_, other->_impl_.label_);
  swap(_impl_.drop_probability_, other->_impl_.drop_probability_);
}

::PROTOBUF_NAMESPACE_ID::Metadata DropLabelProbabilistically::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[36]);
}

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

class RemapLabels::_Internal {
 public:
  using HasBits = decltype(std::declval<RemapLabels>()._impl_._has_bits_);
  static void set_has_new_label(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

RemapLabels::RemapLabels(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:object_detection.protos.RemapLabels)
}
RemapLabels::RemapLabels(const RemapLabels& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  RemapLabels* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.original_labels_){from._impl_.original_labels_}
    , decltype(_impl_.new_label_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.new_label_ = from._impl_.new_label_;
  // @@protoc_insertion_point(copy_constructor:object_detection.protos.RemapLabels)
}

inline void RemapLabels::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.original_labels_){arena}
    , decltype(_impl_.new_label_){0}
  };
}

RemapLabels::~RemapLabels() {
  // @@protoc_insertion_point(destructor:object_detection.protos.RemapLabels)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RemapLabels::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.original_labels_.~RepeatedField();
}

void RemapLabels::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void RemapLabels::Clear() {
// @@protoc_insertion_point(message_clear_start:object_detection.protos.RemapLabels)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.original_labels_.Clear();
  _impl_.new_label_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RemapLabels::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated int32 original_labels = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          ptr -= 1;
          do {
            ptr += 1;
            _internal_add_original_labels(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<8>(ptr));
        } else if (static_cast<uint8_t>(tag) == 10) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_original_labels(), ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 new_label = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _Internal::set_has_new_label(&has_bits);
          _impl_.new_label_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RemapLabels::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:object_detection.protos.RemapLabels)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated int32 original_labels = 1;
  for (int i = 0, n = this->_internal_original_labels_size(); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_original_labels(i), target);
  }

  cached_has_bits = _impl_._has_bits_[0];
  // optional int32 new_label = 2;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_new_label(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:object_detection.protos.RemapLabels)
  return target;
}

size_t RemapLabels::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:object_detection.protos.RemapLabels)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated int32 original_labels = 1;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->_impl_.original_labels_);
    total_size += 1 *
                  ::_pbi::FromIntSize(this->_internal_original_labels_size());
    total_size += data_size;
  }

  // optional int32 new_label = 2;
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_new_label());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RemapLabels::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    RemapLabels::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RemapLabels::GetClassData() const { return &_class_data_; }


void RemapLabels::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<RemapLabels*>(&to_msg);
  auto& from = static_cast<const RemapLabels&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:object_detection.protos.RemapLabels)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.original_labels_.MergeFrom(from._impl_.original_labels_);
  if (from._internal_has_new_label()) {
    _this->_internal_set_new_label(from._internal_new_label());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RemapLabels::CopyFrom(const RemapLabels& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:object_detection.protos.RemapLabels)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RemapLabels::IsInitialized() const {
  return true;
}

void RemapLabels::InternalSwap(RemapLabels* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.original_labels_.InternalSwap(&other->_impl_.original_labels_);
  swap(_impl_.new_label_, other->_impl_.new_label_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RemapLabels::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_getter, &descriptor_table_object_5fdetection_2fprotos_2fpreprocessor_2eproto_once,
      file_level_metadata_object_5fdetection_2fprotos_2fpreprocessor_2eproto[37]);
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace protos
}  // namespace object_detection
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::object_detection::protos::PreprocessingStep*
Arena::CreateMaybeMessage< ::object_detection::protos::PreprocessingStep >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::PreprocessingStep >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::NormalizeImage*
Arena::CreateMaybeMessage< ::object_detection::protos::NormalizeImage >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::NormalizeImage >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomHorizontalFlip*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomHorizontalFlip >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomHorizontalFlip >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomVerticalFlip*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomVerticalFlip >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomVerticalFlip >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomRotation90*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomRotation90 >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomRotation90 >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomPixelValueScale*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomPixelValueScale >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomPixelValueScale >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomImageScale*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomImageScale >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomImageScale >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomRGBtoGray*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomRGBtoGray >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomRGBtoGray >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomAdjustBrightness*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomAdjustBrightness >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomAdjustBrightness >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomAdjustContrast*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomAdjustContrast >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomAdjustContrast >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomAdjustHue*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomAdjustHue >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomAdjustHue >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomAdjustSaturation*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomAdjustSaturation >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomAdjustSaturation >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomDistortColor*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomDistortColor >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomDistortColor >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomJitterBoxes*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomJitterBoxes >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomJitterBoxes >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomCropImage*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomCropImage >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomCropImage >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomPadImage*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomPadImage >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomPadImage >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomAbsolutePadImage*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomAbsolutePadImage >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomAbsolutePadImage >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomCropPadImage*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomCropPadImage >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomCropPadImage >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomCropToAspectRatio*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomCropToAspectRatio >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomCropToAspectRatio >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomBlackPatches*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomBlackPatches >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomBlackPatches >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomResizeMethod*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomResizeMethod >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomResizeMethod >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RGBtoGray*
Arena::CreateMaybeMessage< ::object_detection::protos::RGBtoGray >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RGBtoGray >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::ScaleBoxesToPixelCoordinates*
Arena::CreateMaybeMessage< ::object_detection::protos::ScaleBoxesToPixelCoordinates >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::ScaleBoxesToPixelCoordinates >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::ResizeImage*
Arena::CreateMaybeMessage< ::object_detection::protos::ResizeImage >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::ResizeImage >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::SubtractChannelMean*
Arena::CreateMaybeMessage< ::object_detection::protos::SubtractChannelMean >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::SubtractChannelMean >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::SSDRandomCropOperation*
Arena::CreateMaybeMessage< ::object_detection::protos::SSDRandomCropOperation >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::SSDRandomCropOperation >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::SSDRandomCrop*
Arena::CreateMaybeMessage< ::object_detection::protos::SSDRandomCrop >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::SSDRandomCrop >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::SSDRandomCropPadOperation*
Arena::CreateMaybeMessage< ::object_detection::protos::SSDRandomCropPadOperation >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::SSDRandomCropPadOperation >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::SSDRandomCropPad*
Arena::CreateMaybeMessage< ::object_detection::protos::SSDRandomCropPad >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::SSDRandomCropPad >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::SSDRandomCropFixedAspectRatioOperation*
Arena::CreateMaybeMessage< ::object_detection::protos::SSDRandomCropFixedAspectRatioOperation >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::SSDRandomCropFixedAspectRatioOperation >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::SSDRandomCropFixedAspectRatio*
Arena::CreateMaybeMessage< ::object_detection::protos::SSDRandomCropFixedAspectRatio >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::SSDRandomCropFixedAspectRatio >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation*
Arena::CreateMaybeMessage< ::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::SSDRandomCropPadFixedAspectRatioOperation >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::SSDRandomCropPadFixedAspectRatio*
Arena::CreateMaybeMessage< ::object_detection::protos::SSDRandomCropPadFixedAspectRatio >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::SSDRandomCropPadFixedAspectRatio >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::ConvertClassLogitsToSoftmax*
Arena::CreateMaybeMessage< ::object_detection::protos::ConvertClassLogitsToSoftmax >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::ConvertClassLogitsToSoftmax >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RandomSelfConcatImage*
Arena::CreateMaybeMessage< ::object_detection::protos::RandomSelfConcatImage >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RandomSelfConcatImage >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::AutoAugmentImage*
Arena::CreateMaybeMessage< ::object_detection::protos::AutoAugmentImage >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::AutoAugmentImage >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::DropLabelProbabilistically*
Arena::CreateMaybeMessage< ::object_detection::protos::DropLabelProbabilistically >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::DropLabelProbabilistically >(arena);
}
template<> PROTOBUF_NOINLINE ::object_detection::protos::RemapLabels*
Arena::CreateMaybeMessage< ::object_detection::protos::RemapLabels >(Arena* arena) {
  return Arena::CreateMessageInternal< ::object_detection::protos::RemapLabels >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
