Skip to content

File tensors_to_detections_calculator.pb.cc

File List > calculators > tensor > tensors_to_detections_calculator.pb.cc

Go to the documentation of this file

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: mediapipe/calculators/tensor/tensors_to_detections_calculator.proto

#include "mediapipe/calculators/tensor/tensors_to_detections_calculator.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 mediapipe {
constexpr TensorsToDetectionsCalculatorOptions_TensorMapping::TensorsToDetectionsCalculatorOptions_TensorMapping(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : detections_tensor_index_(0)
  , classes_tensor_index_(0)
  , scores_tensor_index_(0)
  , num_detections_tensor_index_(0)
  , anchors_tensor_index_(0){}
struct TensorsToDetectionsCalculatorOptions_TensorMappingDefaultTypeInternal {
  constexpr TensorsToDetectionsCalculatorOptions_TensorMappingDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~TensorsToDetectionsCalculatorOptions_TensorMappingDefaultTypeInternal() {}
  union {
    TensorsToDetectionsCalculatorOptions_TensorMapping _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT TensorsToDetectionsCalculatorOptions_TensorMappingDefaultTypeInternal _TensorsToDetectionsCalculatorOptions_TensorMapping_default_instance_;
constexpr TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : ymin_(0)
  , xmax_(3)
  , xmin_(1)
  , ymax_(2){}
struct TensorsToDetectionsCalculatorOptions_BoxBoundariesIndicesDefaultTypeInternal {
  constexpr TensorsToDetectionsCalculatorOptions_BoxBoundariesIndicesDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~TensorsToDetectionsCalculatorOptions_BoxBoundariesIndicesDefaultTypeInternal() {}
  union {
    TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT TensorsToDetectionsCalculatorOptions_BoxBoundariesIndicesDefaultTypeInternal _TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices_default_instance_;
constexpr TensorsToDetectionsCalculatorOptions::TensorsToDetectionsCalculatorOptions(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : ignore_classes_()
  , allow_classes_()
  , _allow_classes_cached_byte_size_(0)
  , tensor_mapping_(nullptr)
  , num_classes_(0)
  , num_boxes_(0)
  , num_coords_(0)
  , x_scale_(0)
  , y_scale_(0)
  , w_scale_(0)
  , h_scale_(0)
  , keypoint_coord_offset_(0)
  , num_keypoints_(0)
  , box_coord_offset_(0)
  , apply_exponential_on_box_size_(false)
  , reverse_output_order_(false)
  , sigmoid_score_(false)
  , flip_vertically_(false)
  , score_clipping_thresh_(0)
  , min_score_thresh_(0)
  , box_format_(0)

  , max_classes_per_detection_(1)
  , num_values_per_keypoint_(2)
  , max_results_(-1)
  , _oneof_case_{}{}
struct TensorsToDetectionsCalculatorOptionsDefaultTypeInternal {
  constexpr TensorsToDetectionsCalculatorOptionsDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~TensorsToDetectionsCalculatorOptionsDefaultTypeInternal() {}
  union {
    TensorsToDetectionsCalculatorOptions _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT TensorsToDetectionsCalculatorOptionsDefaultTypeInternal _TensorsToDetectionsCalculatorOptions_default_instance_;
}  // namespace mediapipe
static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto[3];
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto[1];
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto = nullptr;

const uint32_t TableStruct_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions_TensorMapping, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions_TensorMapping, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions_TensorMapping, detections_tensor_index_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions_TensorMapping, classes_tensor_index_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions_TensorMapping, scores_tensor_index_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions_TensorMapping, num_detections_tensor_index_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions_TensorMapping, anchors_tensor_index_),
  0,
  1,
  2,
  3,
  4,
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices, ymin_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices, xmin_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices, ymax_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices, xmax_),
  0,
  2,
  3,
  1,
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, num_classes_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, num_boxes_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, num_coords_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, keypoint_coord_offset_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, num_keypoints_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, num_values_per_keypoint_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, box_coord_offset_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, x_scale_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, y_scale_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, w_scale_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, h_scale_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, apply_exponential_on_box_size_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, reverse_output_order_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, ignore_classes_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, allow_classes_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, sigmoid_score_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, score_clipping_thresh_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, flip_vertically_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, min_score_thresh_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, max_results_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, max_classes_per_detection_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, tensor_mapping_),
  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, box_format_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::TensorsToDetectionsCalculatorOptions, box_indices_),
  1,
  2,
  3,
  8,
  9,
  19,
  10,
  4,
  5,
  6,
  7,
  11,
  12,
  ~0u,
  ~0u,
  13,
  15,
  14,
  16,
  20,
  18,
  0,
  ~0u,
  17,
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, 11, -1, sizeof(::mediapipe::TensorsToDetectionsCalculatorOptions_TensorMapping)},
  { 16, 26, -1, sizeof(::mediapipe::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices)},
  { 30, 61, -1, sizeof(::mediapipe::TensorsToDetectionsCalculatorOptions)},
};

static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::mediapipe::_TensorsToDetectionsCalculatorOptions_TensorMapping_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::mediapipe::_TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::mediapipe::_TensorsToDetectionsCalculatorOptions_default_instance_),
};

const char descriptor_table_protodef_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\nCmediapipe/calculators/tensor/tensors_t"
  "o_detections_calculator.proto\022\tmediapipe"
  "\032$mediapipe/framework/calculator.proto\"\273"
  "\n\n$TensorsToDetectionsCalculatorOptions\022"
  "\023\n\013num_classes\030\001 \001(\005\022\021\n\tnum_boxes\030\002 \001(\005\022"
  "\022\n\nnum_coords\030\003 \001(\005\022\035\n\025keypoint_coord_of"
  "fset\030\t \001(\005\022\030\n\rnum_keypoints\030\n \001(\005:\0010\022\"\n\027"
  "num_values_per_keypoint\030\013 \001(\005:\0012\022\033\n\020box_"
  "coord_offset\030\014 \001(\005:\0010\022\022\n\007x_scale\030\004 \001(\002:\001"
  "0\022\022\n\007y_scale\030\005 \001(\002:\0010\022\022\n\007w_scale\030\006 \001(\002:\001"
  "0\022\022\n\007h_scale\030\007 \001(\002:\0010\022,\n\035apply_exponenti"
  "al_on_box_size\030\r \001(\010:\005false\022#\n\024reverse_o"
  "utput_order\030\016 \001(\010:\005false\022\026\n\016ignore_class"
  "es\030\010 \003(\005\022\031\n\rallow_classes\030\025 \003(\005B\002\020\001\022\034\n\rs"
  "igmoid_score\030\017 \001(\010:\005false\022\035\n\025score_clipp"
  "ing_thresh\030\020 \001(\002\022\036\n\017flip_vertically\030\022 \001("
  "\010:\005false\022\030\n\020min_score_thresh\030\023 \001(\002\022\027\n\013ma"
  "x_results\030\024 \001(\005:\002-1\022$\n\031max_classes_per_d"
  "etection\030\031 \001(\005:\0011\022U\n\016tensor_mapping\030\026 \001("
  "\0132=.mediapipe.TensorsToDetectionsCalcula"
  "torOptions.TensorMapping\022f\n\026box_boundari"
  "es_indices\030\027 \001(\0132D.mediapipe.TensorsToDe"
  "tectionsCalculatorOptions.BoxBoundariesI"
  "ndicesH\000\022Z\n\nbox_format\030\030 \001(\01629.mediapipe"
  ".TensorsToDetectionsCalculatorOptions.Bo"
  "xFormat:\013UNSPECIFIED\032\256\001\n\rTensorMapping\022\037"
  "\n\027detections_tensor_index\030\001 \001(\005\022\034\n\024class"
  "es_tensor_index\030\002 \001(\005\022\033\n\023scores_tensor_i"
  "ndex\030\003 \001(\005\022#\n\033num_detections_tensor_inde"
  "x\030\004 \001(\005\022\034\n\024anchors_tensor_index\030\005 \001(\005\032Z\n"
  "\024BoxBoundariesIndices\022\017\n\004ymin\030\001 \001(\005:\0010\022\017"
  "\n\004xmin\030\002 \001(\005:\0011\022\017\n\004ymax\030\003 \001(\005:\0012\022\017\n\004xmax"
  "\030\004 \001(\005:\0013\":\n\tBoxFormat\022\017\n\013UNSPECIFIED\020\000\022"
  "\010\n\004YXHW\020\001\022\010\n\004XYWH\020\002\022\010\n\004XYXY\020\0032^\n\003ext\022\034.m"
  "ediapipe.CalculatorOptions\030\257\215\214\240\001 \001(\0132/.m"
  "ediapipe.TensorsToDetectionsCalculatorOp"
  "tionsB\r\n\013box_indices"
  ;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto_deps[1] = {
  &::descriptor_table_mediapipe_2fframework_2fcalculator_2eproto,
};
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto_once;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto = {
  false, false, 1460, descriptor_table_protodef_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto, "mediapipe/calculators/tensor/tensors_to_detections_calculator.proto", 
  &descriptor_table_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto_once, descriptor_table_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto_deps, 1, 3,
  schemas, file_default_instances, TableStruct_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto::offsets,
  file_level_metadata_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto, file_level_enum_descriptors_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto, file_level_service_descriptors_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable* descriptor_table_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto_getter() {
  return &descriptor_table_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto;
}

// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY static ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptorsRunner dynamic_init_dummy_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto(&descriptor_table_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto);
namespace mediapipe {
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* TensorsToDetectionsCalculatorOptions_BoxFormat_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto);
  return file_level_enum_descriptors_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto[0];
}
bool TensorsToDetectionsCalculatorOptions_BoxFormat_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
constexpr TensorsToDetectionsCalculatorOptions_BoxFormat TensorsToDetectionsCalculatorOptions::UNSPECIFIED;
constexpr TensorsToDetectionsCalculatorOptions_BoxFormat TensorsToDetectionsCalculatorOptions::YXHW;
constexpr TensorsToDetectionsCalculatorOptions_BoxFormat TensorsToDetectionsCalculatorOptions::XYWH;
constexpr TensorsToDetectionsCalculatorOptions_BoxFormat TensorsToDetectionsCalculatorOptions::XYXY;
constexpr TensorsToDetectionsCalculatorOptions_BoxFormat TensorsToDetectionsCalculatorOptions::BoxFormat_MIN;
constexpr TensorsToDetectionsCalculatorOptions_BoxFormat TensorsToDetectionsCalculatorOptions::BoxFormat_MAX;
constexpr int TensorsToDetectionsCalculatorOptions::BoxFormat_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))

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

class TensorsToDetectionsCalculatorOptions_TensorMapping::_Internal {
 public:
  using HasBits = decltype(std::declval<TensorsToDetectionsCalculatorOptions_TensorMapping>()._has_bits_);
  static void set_has_detections_tensor_index(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_classes_tensor_index(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_scores_tensor_index(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_num_detections_tensor_index(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static void set_has_anchors_tensor_index(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
};

TensorsToDetectionsCalculatorOptions_TensorMapping::TensorsToDetectionsCalculatorOptions_TensorMapping(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:mediapipe.TensorsToDetectionsCalculatorOptions.TensorMapping)
}
TensorsToDetectionsCalculatorOptions_TensorMapping::TensorsToDetectionsCalculatorOptions_TensorMapping(const TensorsToDetectionsCalculatorOptions_TensorMapping& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&detections_tensor_index_, &from.detections_tensor_index_,
    static_cast<size_t>(reinterpret_cast<char*>(&anchors_tensor_index_) -
    reinterpret_cast<char*>(&detections_tensor_index_)) + sizeof(anchors_tensor_index_));
  // @@protoc_insertion_point(copy_constructor:mediapipe.TensorsToDetectionsCalculatorOptions.TensorMapping)
}

inline void TensorsToDetectionsCalculatorOptions_TensorMapping::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&detections_tensor_index_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&anchors_tensor_index_) -
    reinterpret_cast<char*>(&detections_tensor_index_)) + sizeof(anchors_tensor_index_));
}

TensorsToDetectionsCalculatorOptions_TensorMapping::~TensorsToDetectionsCalculatorOptions_TensorMapping() {
  // @@protoc_insertion_point(destructor:mediapipe.TensorsToDetectionsCalculatorOptions.TensorMapping)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

void TensorsToDetectionsCalculatorOptions_TensorMapping::ArenaDtor(void* object) {
  TensorsToDetectionsCalculatorOptions_TensorMapping* _this = reinterpret_cast< TensorsToDetectionsCalculatorOptions_TensorMapping* >(object);
  (void)_this;
}
void TensorsToDetectionsCalculatorOptions_TensorMapping::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void TensorsToDetectionsCalculatorOptions_TensorMapping::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void TensorsToDetectionsCalculatorOptions_TensorMapping::Clear() {
// @@protoc_insertion_point(message_clear_start:mediapipe.TensorsToDetectionsCalculatorOptions.TensorMapping)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* TensorsToDetectionsCalculatorOptions_TensorMapping::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional int32 detections_tensor_index = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _Internal::set_has_detections_tensor_index(&has_bits);
          detections_tensor_index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 classes_tensor_index = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _Internal::set_has_classes_tensor_index(&has_bits);
          classes_tensor_index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 scores_tensor_index = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _Internal::set_has_scores_tensor_index(&has_bits);
          scores_tensor_index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 num_detections_tensor_index = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          _Internal::set_has_num_detections_tensor_index(&has_bits);
          num_detections_tensor_index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 anchors_tensor_index = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          _Internal::set_has_anchors_tensor_index(&has_bits);
          anchors_tensor_index_ = ::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:
  _has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* TensorsToDetectionsCalculatorOptions_TensorMapping::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:mediapipe.TensorsToDetectionsCalculatorOptions.TensorMapping)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 detections_tensor_index = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_detections_tensor_index(), target);
  }

  // optional int32 classes_tensor_index = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_classes_tensor_index(), target);
  }

  // optional int32 scores_tensor_index = 3;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_scores_tensor_index(), target);
  }

  // optional int32 num_detections_tensor_index = 4;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_num_detections_tensor_index(), target);
  }

  // optional int32 anchors_tensor_index = 5;
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_anchors_tensor_index(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::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:mediapipe.TensorsToDetectionsCalculatorOptions.TensorMapping)
  return target;
}

size_t TensorsToDetectionsCalculatorOptions_TensorMapping::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:mediapipe.TensorsToDetectionsCalculatorOptions.TensorMapping)
  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 = _has_bits_[0];
  if (cached_has_bits & 0x0000001fu) {
    // optional int32 detections_tensor_index = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_detections_tensor_index());
    }

    // optional int32 classes_tensor_index = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_classes_tensor_index());
    }

    // optional int32 scores_tensor_index = 3;
    if (cached_has_bits & 0x00000004u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_scores_tensor_index());
    }

    // optional int32 num_detections_tensor_index = 4;
    if (cached_has_bits & 0x00000008u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_num_detections_tensor_index());
    }

    // optional int32 anchors_tensor_index = 5;
    if (cached_has_bits & 0x00000010u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_anchors_tensor_index());
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

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

void TensorsToDetectionsCalculatorOptions_TensorMapping::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<TensorsToDetectionsCalculatorOptions_TensorMapping *>(to)->MergeFrom(
      static_cast<const TensorsToDetectionsCalculatorOptions_TensorMapping &>(from));
}


void TensorsToDetectionsCalculatorOptions_TensorMapping::MergeFrom(const TensorsToDetectionsCalculatorOptions_TensorMapping& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:mediapipe.TensorsToDetectionsCalculatorOptions.TensorMapping)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x0000001fu) {
    if (cached_has_bits & 0x00000001u) {
      detections_tensor_index_ = from.detections_tensor_index_;
    }
    if (cached_has_bits & 0x00000002u) {
      classes_tensor_index_ = from.classes_tensor_index_;
    }
    if (cached_has_bits & 0x00000004u) {
      scores_tensor_index_ = from.scores_tensor_index_;
    }
    if (cached_has_bits & 0x00000008u) {
      num_detections_tensor_index_ = from.num_detections_tensor_index_;
    }
    if (cached_has_bits & 0x00000010u) {
      anchors_tensor_index_ = from.anchors_tensor_index_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void TensorsToDetectionsCalculatorOptions_TensorMapping::CopyFrom(const TensorsToDetectionsCalculatorOptions_TensorMapping& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:mediapipe.TensorsToDetectionsCalculatorOptions.TensorMapping)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

::PROTOBUF_NAMESPACE_ID::Metadata TensorsToDetectionsCalculatorOptions_TensorMapping::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto_getter, &descriptor_table_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto_once,
      file_level_metadata_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto[0]);
}

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

class TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::_Internal {
 public:
  using HasBits = decltype(std::declval<TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices>()._has_bits_);
  static void set_has_ymin(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_xmin(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_ymax(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static void set_has_xmax(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
};

TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:mediapipe.TensorsToDetectionsCalculatorOptions.BoxBoundariesIndices)
}
TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices(const TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&ymin_, &from.ymin_,
    static_cast<size_t>(reinterpret_cast<char*>(&ymax_) -
    reinterpret_cast<char*>(&ymin_)) + sizeof(ymax_));
  // @@protoc_insertion_point(copy_constructor:mediapipe.TensorsToDetectionsCalculatorOptions.BoxBoundariesIndices)
}

inline void TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::SharedCtor() {
ymin_ = 0;
xmax_ = 3;
xmin_ = 1;
ymax_ = 2;
}

TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::~TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices() {
  // @@protoc_insertion_point(destructor:mediapipe.TensorsToDetectionsCalculatorOptions.BoxBoundariesIndices)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

void TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::ArenaDtor(void* object) {
  TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices* _this = reinterpret_cast< TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices* >(object);
  (void)_this;
}
void TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::Clear() {
// @@protoc_insertion_point(message_clear_start:mediapipe.TensorsToDetectionsCalculatorOptions.BoxBoundariesIndices)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    ymin_ = 0;
    xmax_ = 3;
    xmin_ = 1;
    ymax_ = 2;
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional int32 ymin = 1 [default = 0];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _Internal::set_has_ymin(&has_bits);
          ymin_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 xmin = 2 [default = 1];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _Internal::set_has_xmin(&has_bits);
          xmin_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 ymax = 3 [default = 2];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _Internal::set_has_ymax(&has_bits);
          ymax_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 xmax = 4 [default = 3];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          _Internal::set_has_xmax(&has_bits);
          xmax_ = ::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:
  _has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:mediapipe.TensorsToDetectionsCalculatorOptions.BoxBoundariesIndices)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 ymin = 1 [default = 0];
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_ymin(), target);
  }

  // optional int32 xmin = 2 [default = 1];
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_xmin(), target);
  }

  // optional int32 ymax = 3 [default = 2];
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_ymax(), target);
  }

  // optional int32 xmax = 4 [default = 3];
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_xmax(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::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:mediapipe.TensorsToDetectionsCalculatorOptions.BoxBoundariesIndices)
  return target;
}

size_t TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:mediapipe.TensorsToDetectionsCalculatorOptions.BoxBoundariesIndices)
  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 = _has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    // optional int32 ymin = 1 [default = 0];
    if (cached_has_bits & 0x00000001u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_ymin());
    }

    // optional int32 xmax = 4 [default = 3];
    if (cached_has_bits & 0x00000002u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_xmax());
    }

    // optional int32 xmin = 2 [default = 1];
    if (cached_has_bits & 0x00000004u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_xmin());
    }

    // optional int32 ymax = 3 [default = 2];
    if (cached_has_bits & 0x00000008u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_ymax());
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

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

void TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices *>(to)->MergeFrom(
      static_cast<const TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices &>(from));
}


void TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::MergeFrom(const TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:mediapipe.TensorsToDetectionsCalculatorOptions.BoxBoundariesIndices)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    if (cached_has_bits & 0x00000001u) {
      ymin_ = from.ymin_;
    }
    if (cached_has_bits & 0x00000002u) {
      xmax_ = from.xmax_;
    }
    if (cached_has_bits & 0x00000004u) {
      xmin_ = from.xmin_;
    }
    if (cached_has_bits & 0x00000008u) {
      ymax_ = from.ymax_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::CopyFrom(const TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:mediapipe.TensorsToDetectionsCalculatorOptions.BoxBoundariesIndices)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::InternalSwap(TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  swap(ymin_, other->ymin_);
  swap(xmax_, other->xmax_);
  swap(xmin_, other->xmin_);
  swap(ymax_, other->ymax_);
}

::PROTOBUF_NAMESPACE_ID::Metadata TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto_getter, &descriptor_table_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto_once,
      file_level_metadata_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto[1]);
}

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

class TensorsToDetectionsCalculatorOptions::_Internal {
 public:
  using HasBits = decltype(std::declval<TensorsToDetectionsCalculatorOptions>()._has_bits_);
  static void set_has_num_classes(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_num_boxes(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_num_coords(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static void set_has_keypoint_coord_offset(HasBits* has_bits) {
    (*has_bits)[0] |= 256u;
  }
  static void set_has_num_keypoints(HasBits* has_bits) {
    (*has_bits)[0] |= 512u;
  }
  static void set_has_num_values_per_keypoint(HasBits* has_bits) {
    (*has_bits)[0] |= 524288u;
  }
  static void set_has_box_coord_offset(HasBits* has_bits) {
    (*has_bits)[0] |= 1024u;
  }
  static void set_has_x_scale(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
  static void set_has_y_scale(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static void set_has_w_scale(HasBits* has_bits) {
    (*has_bits)[0] |= 64u;
  }
  static void set_has_h_scale(HasBits* has_bits) {
    (*has_bits)[0] |= 128u;
  }
  static void set_has_apply_exponential_on_box_size(HasBits* has_bits) {
    (*has_bits)[0] |= 2048u;
  }
  static void set_has_reverse_output_order(HasBits* has_bits) {
    (*has_bits)[0] |= 4096u;
  }
  static void set_has_sigmoid_score(HasBits* has_bits) {
    (*has_bits)[0] |= 8192u;
  }
  static void set_has_score_clipping_thresh(HasBits* has_bits) {
    (*has_bits)[0] |= 32768u;
  }
  static void set_has_flip_vertically(HasBits* has_bits) {
    (*has_bits)[0] |= 16384u;
  }
  static void set_has_min_score_thresh(HasBits* has_bits) {
    (*has_bits)[0] |= 65536u;
  }
  static void set_has_max_results(HasBits* has_bits) {
    (*has_bits)[0] |= 1048576u;
  }
  static void set_has_max_classes_per_detection(HasBits* has_bits) {
    (*has_bits)[0] |= 262144u;
  }
  static const ::mediapipe::TensorsToDetectionsCalculatorOptions_TensorMapping& tensor_mapping(const TensorsToDetectionsCalculatorOptions* msg);
  static void set_has_tensor_mapping(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static const ::mediapipe::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices& box_boundaries_indices(const TensorsToDetectionsCalculatorOptions* msg);
  static void set_has_box_format(HasBits* has_bits) {
    (*has_bits)[0] |= 131072u;
  }
};

const ::mediapipe::TensorsToDetectionsCalculatorOptions_TensorMapping&
TensorsToDetectionsCalculatorOptions::_Internal::tensor_mapping(const TensorsToDetectionsCalculatorOptions* msg) {
  return *msg->tensor_mapping_;
}
const ::mediapipe::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices&
TensorsToDetectionsCalculatorOptions::_Internal::box_boundaries_indices(const TensorsToDetectionsCalculatorOptions* msg) {
  return *msg->box_indices_.box_boundaries_indices_;
}
void TensorsToDetectionsCalculatorOptions::set_allocated_box_boundaries_indices(::mediapipe::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices* box_boundaries_indices) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_box_indices();
  if (box_boundaries_indices) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::mediapipe::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices>::GetOwningArena(box_boundaries_indices);
    if (message_arena != submessage_arena) {
      box_boundaries_indices = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, box_boundaries_indices, submessage_arena);
    }
    set_has_box_boundaries_indices();
    box_indices_.box_boundaries_indices_ = box_boundaries_indices;
  }
  // @@protoc_insertion_point(field_set_allocated:mediapipe.TensorsToDetectionsCalculatorOptions.box_boundaries_indices)
}
TensorsToDetectionsCalculatorOptions::TensorsToDetectionsCalculatorOptions(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  ignore_classes_(arena),
  allow_classes_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:mediapipe.TensorsToDetectionsCalculatorOptions)
}
TensorsToDetectionsCalculatorOptions::TensorsToDetectionsCalculatorOptions(const TensorsToDetectionsCalculatorOptions& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_),
      ignore_classes_(from.ignore_classes_),
      allow_classes_(from.allow_classes_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_tensor_mapping()) {
    tensor_mapping_ = new ::mediapipe::TensorsToDetectionsCalculatorOptions_TensorMapping(*from.tensor_mapping_);
  } else {
    tensor_mapping_ = nullptr;
  }
  ::memcpy(&num_classes_, &from.num_classes_,
    static_cast<size_t>(reinterpret_cast<char*>(&max_results_) -
    reinterpret_cast<char*>(&num_classes_)) + sizeof(max_results_));
  clear_has_box_indices();
  switch (from.box_indices_case()) {
    case kBoxBoundariesIndices: {
      _internal_mutable_box_boundaries_indices()->::mediapipe::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::MergeFrom(from._internal_box_boundaries_indices());
      break;
    }
    case BOX_INDICES_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:mediapipe.TensorsToDetectionsCalculatorOptions)
}

inline void TensorsToDetectionsCalculatorOptions::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&tensor_mapping_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&box_format_) -
    reinterpret_cast<char*>(&tensor_mapping_)) + sizeof(box_format_));
max_classes_per_detection_ = 1;
num_values_per_keypoint_ = 2;
max_results_ = -1;
clear_has_box_indices();
}

TensorsToDetectionsCalculatorOptions::~TensorsToDetectionsCalculatorOptions() {
  // @@protoc_insertion_point(destructor:mediapipe.TensorsToDetectionsCalculatorOptions)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void TensorsToDetectionsCalculatorOptions::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete tensor_mapping_;
  if (has_box_indices()) {
    clear_box_indices();
  }
}

void TensorsToDetectionsCalculatorOptions::ArenaDtor(void* object) {
  TensorsToDetectionsCalculatorOptions* _this = reinterpret_cast< TensorsToDetectionsCalculatorOptions* >(object);
  (void)_this;
}
void TensorsToDetectionsCalculatorOptions::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void TensorsToDetectionsCalculatorOptions::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void TensorsToDetectionsCalculatorOptions::clear_box_indices() {
// @@protoc_insertion_point(one_of_clear_start:mediapipe.TensorsToDetectionsCalculatorOptions)
  switch (box_indices_case()) {
    case kBoxBoundariesIndices: {
      if (GetArenaForAllocation() == nullptr) {
        delete box_indices_.box_boundaries_indices_;
      }
      break;
    }
    case BOX_INDICES_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = BOX_INDICES_NOT_SET;
}


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

  ignore_classes_.Clear();
  allow_classes_.Clear();
  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    GOOGLE_DCHECK(tensor_mapping_ != nullptr);
    tensor_mapping_->Clear();
  }
  if (cached_has_bits & 0x000000feu) {
    ::memset(&num_classes_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&h_scale_) -
        reinterpret_cast<char*>(&num_classes_)) + sizeof(h_scale_));
  }
  if (cached_has_bits & 0x0000ff00u) {
    ::memset(&keypoint_coord_offset_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&score_clipping_thresh_) -
        reinterpret_cast<char*>(&keypoint_coord_offset_)) + sizeof(score_clipping_thresh_));
  }
  if (cached_has_bits & 0x001f0000u) {
    ::memset(&min_score_thresh_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&box_format_) -
        reinterpret_cast<char*>(&min_score_thresh_)) + sizeof(box_format_));
    max_classes_per_detection_ = 1;
    num_values_per_keypoint_ = 2;
    max_results_ = -1;
  }
  clear_box_indices();
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* TensorsToDetectionsCalculatorOptions::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional int32 num_classes = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _Internal::set_has_num_classes(&has_bits);
          num_classes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 num_boxes = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _Internal::set_has_num_boxes(&has_bits);
          num_boxes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 num_coords = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _Internal::set_has_num_coords(&has_bits);
          num_coords_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional float x_scale = 4 [default = 0];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 37)) {
          _Internal::set_has_x_scale(&has_bits);
          x_scale_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float y_scale = 5 [default = 0];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 45)) {
          _Internal::set_has_y_scale(&has_bits);
          y_scale_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float w_scale = 6 [default = 0];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 53)) {
          _Internal::set_has_w_scale(&has_bits);
          w_scale_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float h_scale = 7 [default = 0];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 61)) {
          _Internal::set_has_h_scale(&has_bits);
          h_scale_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 ignore_classes = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          ptr -= 1;
          do {
            ptr += 1;
            _internal_add_ignore_classes(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<64>(ptr));
        } else if (static_cast<uint8_t>(tag) == 66) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_ignore_classes(), ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 keypoint_coord_offset = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 72)) {
          _Internal::set_has_keypoint_coord_offset(&has_bits);
          keypoint_coord_offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 num_keypoints = 10 [default = 0];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          _Internal::set_has_num_keypoints(&has_bits);
          num_keypoints_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 num_values_per_keypoint = 11 [default = 2];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
          _Internal::set_has_num_values_per_keypoint(&has_bits);
          num_values_per_keypoint_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 box_coord_offset = 12 [default = 0];
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 96)) {
          _Internal::set_has_box_coord_offset(&has_bits);
          box_coord_offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional bool apply_exponential_on_box_size = 13 [default = false];
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 104)) {
          _Internal::set_has_apply_exponential_on_box_size(&has_bits);
          apply_exponential_on_box_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional bool reverse_output_order = 14 [default = false];
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 112)) {
          _Internal::set_has_reverse_output_order(&has_bits);
          reverse_output_order_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional bool sigmoid_score = 15 [default = false];
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 120)) {
          _Internal::set_has_sigmoid_score(&has_bits);
          sigmoid_score_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional float score_clipping_thresh = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 133)) {
          _Internal::set_has_score_clipping_thresh(&has_bits);
          score_clipping_thresh_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional bool flip_vertically = 18 [default = false];
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 144)) {
          _Internal::set_has_flip_vertically(&has_bits);
          flip_vertically_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional float min_score_thresh = 19;
      case 19:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 157)) {
          _Internal::set_has_min_score_thresh(&has_bits);
          min_score_thresh_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional int32 max_results = 20 [default = -1];
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 160)) {
          _Internal::set_has_max_results(&has_bits);
          max_results_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 allow_classes = 21 [packed = true];
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 170)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_allow_classes(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 168) {
          _internal_add_allow_classes(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional .mediapipe.TensorsToDetectionsCalculatorOptions.TensorMapping tensor_mapping = 22;
      case 22:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 178)) {
          ptr = ctx->ParseMessage(_internal_mutable_tensor_mapping(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .mediapipe.TensorsToDetectionsCalculatorOptions.BoxBoundariesIndices box_boundaries_indices = 23;
      case 23:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 186)) {
          ptr = ctx->ParseMessage(_internal_mutable_box_boundaries_indices(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional .mediapipe.TensorsToDetectionsCalculatorOptions.BoxFormat box_format = 24 [default = UNSPECIFIED];
      case 24:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 192)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          if (PROTOBUF_PREDICT_TRUE(::mediapipe::TensorsToDetectionsCalculatorOptions_BoxFormat_IsValid(val))) {
            _internal_set_box_format(static_cast<::mediapipe::TensorsToDetectionsCalculatorOptions_BoxFormat>(val));
          } else {
            ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(24, val, mutable_unknown_fields());
          }
        } else
          goto handle_unusual;
        continue;
      // optional int32 max_classes_per_detection = 25 [default = 1];
      case 25:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 200)) {
          _Internal::set_has_max_classes_per_detection(&has_bits);
          max_classes_per_detection_ = ::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:
  _has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

  cached_has_bits = _has_bits_[0];
  // optional int32 num_classes = 1;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_num_classes(), target);
  }

  // optional int32 num_boxes = 2;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_num_boxes(), target);
  }

  // optional int32 num_coords = 3;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_num_coords(), target);
  }

  // optional float x_scale = 4 [default = 0];
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_x_scale(), target);
  }

  // optional float y_scale = 5 [default = 0];
  if (cached_has_bits & 0x00000020u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(5, this->_internal_y_scale(), target);
  }

  // optional float w_scale = 6 [default = 0];
  if (cached_has_bits & 0x00000040u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(6, this->_internal_w_scale(), target);
  }

  // optional float h_scale = 7 [default = 0];
  if (cached_has_bits & 0x00000080u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(7, this->_internal_h_scale(), target);
  }

  // repeated int32 ignore_classes = 8;
  for (int i = 0, n = this->_internal_ignore_classes_size(); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(8, this->_internal_ignore_classes(i), target);
  }

  // optional int32 keypoint_coord_offset = 9;
  if (cached_has_bits & 0x00000100u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(9, this->_internal_keypoint_coord_offset(), target);
  }

  // optional int32 num_keypoints = 10 [default = 0];
  if (cached_has_bits & 0x00000200u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(10, this->_internal_num_keypoints(), target);
  }

  // optional int32 num_values_per_keypoint = 11 [default = 2];
  if (cached_has_bits & 0x00080000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(11, this->_internal_num_values_per_keypoint(), target);
  }

  // optional int32 box_coord_offset = 12 [default = 0];
  if (cached_has_bits & 0x00000400u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(12, this->_internal_box_coord_offset(), target);
  }

  // optional bool apply_exponential_on_box_size = 13 [default = false];
  if (cached_has_bits & 0x00000800u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(13, this->_internal_apply_exponential_on_box_size(), target);
  }

  // optional bool reverse_output_order = 14 [default = false];
  if (cached_has_bits & 0x00001000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(14, this->_internal_reverse_output_order(), target);
  }

  // optional bool sigmoid_score = 15 [default = false];
  if (cached_has_bits & 0x00002000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(15, this->_internal_sigmoid_score(), target);
  }

  // optional float score_clipping_thresh = 16;
  if (cached_has_bits & 0x00008000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(16, this->_internal_score_clipping_thresh(), target);
  }

  // optional bool flip_vertically = 18 [default = false];
  if (cached_has_bits & 0x00004000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(18, this->_internal_flip_vertically(), target);
  }

  // optional float min_score_thresh = 19;
  if (cached_has_bits & 0x00010000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(19, this->_internal_min_score_thresh(), target);
  }

  // optional int32 max_results = 20 [default = -1];
  if (cached_has_bits & 0x00100000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(20, this->_internal_max_results(), target);
  }

  // repeated int32 allow_classes = 21 [packed = true];
  {
    int byte_size = _allow_classes_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          21, _internal_allow_classes(), byte_size, target);
    }
  }

  // optional .mediapipe.TensorsToDetectionsCalculatorOptions.TensorMapping tensor_mapping = 22;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        22, _Internal::tensor_mapping(this), target, stream);
  }

  // .mediapipe.TensorsToDetectionsCalculatorOptions.BoxBoundariesIndices box_boundaries_indices = 23;
  if (_internal_has_box_boundaries_indices()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        23, _Internal::box_boundaries_indices(this), target, stream);
  }

  // optional .mediapipe.TensorsToDetectionsCalculatorOptions.BoxFormat box_format = 24 [default = UNSPECIFIED];
  if (cached_has_bits & 0x00020000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      24, this->_internal_box_format(), target);
  }

  // optional int32 max_classes_per_detection = 25 [default = 1];
  if (cached_has_bits & 0x00040000u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(25, this->_internal_max_classes_per_detection(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::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:mediapipe.TensorsToDetectionsCalculatorOptions)
  return target;
}

size_t TensorsToDetectionsCalculatorOptions::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:mediapipe.TensorsToDetectionsCalculatorOptions)
  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 ignore_classes = 8;
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      Int32Size(this->ignore_classes_);
    total_size += 1 *
                  ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_ignore_classes_size());
    total_size += data_size;
  }

  // repeated int32 allow_classes = 21 [packed = true];
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      Int32Size(this->allow_classes_);
    if (data_size > 0) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<int32_t>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _allow_classes_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    // optional .mediapipe.TensorsToDetectionsCalculatorOptions.TensorMapping tensor_mapping = 22;
    if (cached_has_bits & 0x00000001u) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *tensor_mapping_);
    }

    // optional int32 num_classes = 1;
    if (cached_has_bits & 0x00000002u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_num_classes());
    }

    // optional int32 num_boxes = 2;
    if (cached_has_bits & 0x00000004u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_num_boxes());
    }

    // optional int32 num_coords = 3;
    if (cached_has_bits & 0x00000008u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_num_coords());
    }

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

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

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

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

  }
  if (cached_has_bits & 0x0000ff00u) {
    // optional int32 keypoint_coord_offset = 9;
    if (cached_has_bits & 0x00000100u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_keypoint_coord_offset());
    }

    // optional int32 num_keypoints = 10 [default = 0];
    if (cached_has_bits & 0x00000200u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_num_keypoints());
    }

    // optional int32 box_coord_offset = 12 [default = 0];
    if (cached_has_bits & 0x00000400u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_box_coord_offset());
    }

    // optional bool apply_exponential_on_box_size = 13 [default = false];
    if (cached_has_bits & 0x00000800u) {
      total_size += 1 + 1;
    }

    // optional bool reverse_output_order = 14 [default = false];
    if (cached_has_bits & 0x00001000u) {
      total_size += 1 + 1;
    }

    // optional bool sigmoid_score = 15 [default = false];
    if (cached_has_bits & 0x00002000u) {
      total_size += 1 + 1;
    }

    // optional bool flip_vertically = 18 [default = false];
    if (cached_has_bits & 0x00004000u) {
      total_size += 2 + 1;
    }

    // optional float score_clipping_thresh = 16;
    if (cached_has_bits & 0x00008000u) {
      total_size += 2 + 4;
    }

  }
  if (cached_has_bits & 0x001f0000u) {
    // optional float min_score_thresh = 19;
    if (cached_has_bits & 0x00010000u) {
      total_size += 2 + 4;
    }

    // optional .mediapipe.TensorsToDetectionsCalculatorOptions.BoxFormat box_format = 24 [default = UNSPECIFIED];
    if (cached_has_bits & 0x00020000u) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_box_format());
    }

    // optional int32 max_classes_per_detection = 25 [default = 1];
    if (cached_has_bits & 0x00040000u) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
          this->_internal_max_classes_per_detection());
    }

    // optional int32 num_values_per_keypoint = 11 [default = 2];
    if (cached_has_bits & 0x00080000u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_num_values_per_keypoint());
    }

    // optional int32 max_results = 20 [default = -1];
    if (cached_has_bits & 0x00100000u) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
          this->_internal_max_results());
    }

  }
  switch (box_indices_case()) {
    // .mediapipe.TensorsToDetectionsCalculatorOptions.BoxBoundariesIndices box_boundaries_indices = 23;
    case kBoxBoundariesIndices: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *box_indices_.box_boundaries_indices_);
      break;
    }
    case BOX_INDICES_NOT_SET: {
      break;
    }
  }
  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

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

void TensorsToDetectionsCalculatorOptions::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<TensorsToDetectionsCalculatorOptions *>(to)->MergeFrom(
      static_cast<const TensorsToDetectionsCalculatorOptions &>(from));
}


void TensorsToDetectionsCalculatorOptions::MergeFrom(const TensorsToDetectionsCalculatorOptions& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:mediapipe.TensorsToDetectionsCalculatorOptions)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  ignore_classes_.MergeFrom(from.ignore_classes_);
  allow_classes_.MergeFrom(from.allow_classes_);
  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      _internal_mutable_tensor_mapping()->::mediapipe::TensorsToDetectionsCalculatorOptions_TensorMapping::MergeFrom(from._internal_tensor_mapping());
    }
    if (cached_has_bits & 0x00000002u) {
      num_classes_ = from.num_classes_;
    }
    if (cached_has_bits & 0x00000004u) {
      num_boxes_ = from.num_boxes_;
    }
    if (cached_has_bits & 0x00000008u) {
      num_coords_ = from.num_coords_;
    }
    if (cached_has_bits & 0x00000010u) {
      x_scale_ = from.x_scale_;
    }
    if (cached_has_bits & 0x00000020u) {
      y_scale_ = from.y_scale_;
    }
    if (cached_has_bits & 0x00000040u) {
      w_scale_ = from.w_scale_;
    }
    if (cached_has_bits & 0x00000080u) {
      h_scale_ = from.h_scale_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  if (cached_has_bits & 0x0000ff00u) {
    if (cached_has_bits & 0x00000100u) {
      keypoint_coord_offset_ = from.keypoint_coord_offset_;
    }
    if (cached_has_bits & 0x00000200u) {
      num_keypoints_ = from.num_keypoints_;
    }
    if (cached_has_bits & 0x00000400u) {
      box_coord_offset_ = from.box_coord_offset_;
    }
    if (cached_has_bits & 0x00000800u) {
      apply_exponential_on_box_size_ = from.apply_exponential_on_box_size_;
    }
    if (cached_has_bits & 0x00001000u) {
      reverse_output_order_ = from.reverse_output_order_;
    }
    if (cached_has_bits & 0x00002000u) {
      sigmoid_score_ = from.sigmoid_score_;
    }
    if (cached_has_bits & 0x00004000u) {
      flip_vertically_ = from.flip_vertically_;
    }
    if (cached_has_bits & 0x00008000u) {
      score_clipping_thresh_ = from.score_clipping_thresh_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  if (cached_has_bits & 0x001f0000u) {
    if (cached_has_bits & 0x00010000u) {
      min_score_thresh_ = from.min_score_thresh_;
    }
    if (cached_has_bits & 0x00020000u) {
      box_format_ = from.box_format_;
    }
    if (cached_has_bits & 0x00040000u) {
      max_classes_per_detection_ = from.max_classes_per_detection_;
    }
    if (cached_has_bits & 0x00080000u) {
      num_values_per_keypoint_ = from.num_values_per_keypoint_;
    }
    if (cached_has_bits & 0x00100000u) {
      max_results_ = from.max_results_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  switch (from.box_indices_case()) {
    case kBoxBoundariesIndices: {
      _internal_mutable_box_boundaries_indices()->::mediapipe::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices::MergeFrom(from._internal_box_boundaries_indices());
      break;
    }
    case BOX_INDICES_NOT_SET: {
      break;
    }
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

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

void TensorsToDetectionsCalculatorOptions::InternalSwap(TensorsToDetectionsCalculatorOptions* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  ignore_classes_.InternalSwap(&other->ignore_classes_);
  allow_classes_.InternalSwap(&other->allow_classes_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(TensorsToDetectionsCalculatorOptions, box_format_)
      + sizeof(TensorsToDetectionsCalculatorOptions::box_format_)
      - PROTOBUF_FIELD_OFFSET(TensorsToDetectionsCalculatorOptions, tensor_mapping_)>(
          reinterpret_cast<char*>(&tensor_mapping_),
          reinterpret_cast<char*>(&other->tensor_mapping_));
  swap(max_classes_per_detection_, other->max_classes_per_detection_);
  swap(num_values_per_keypoint_, other->num_values_per_keypoint_);
  swap(max_results_, other->max_results_);
  swap(box_indices_, other->box_indices_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata TensorsToDetectionsCalculatorOptions::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto_getter, &descriptor_table_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto_once,
      file_level_metadata_mediapipe_2fcalculators_2ftensor_2ftensors_5fto_5fdetections_5fcalculator_2eproto[2]);
}
#if !defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912)
const int TensorsToDetectionsCalculatorOptions::kExtFieldNumber;
#endif
PROTOBUF_ATTRIBUTE_INIT_PRIORITY ::PROTOBUF_NAMESPACE_ID::internal::ExtensionIdentifier< ::mediapipe::CalculatorOptions,
    ::PROTOBUF_NAMESPACE_ID::internal::MessageTypeTraits< ::mediapipe::TensorsToDetectionsCalculatorOptions >, 11, false >
  TensorsToDetectionsCalculatorOptions::ext(kExtFieldNumber, ::mediapipe::TensorsToDetectionsCalculatorOptions::default_instance());

// @@protoc_insertion_point(namespace_scope)
}  // namespace mediapipe
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::mediapipe::TensorsToDetectionsCalculatorOptions_TensorMapping* Arena::CreateMaybeMessage< ::mediapipe::TensorsToDetectionsCalculatorOptions_TensorMapping >(Arena* arena) {
  return Arena::CreateMessageInternal< ::mediapipe::TensorsToDetectionsCalculatorOptions_TensorMapping >(arena);
}
template<> PROTOBUF_NOINLINE ::mediapipe::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices* Arena::CreateMaybeMessage< ::mediapipe::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices >(Arena* arena) {
  return Arena::CreateMessageInternal< ::mediapipe::TensorsToDetectionsCalculatorOptions_BoxBoundariesIndices >(arena);
}
template<> PROTOBUF_NOINLINE ::mediapipe::TensorsToDetectionsCalculatorOptions* Arena::CreateMaybeMessage< ::mediapipe::TensorsToDetectionsCalculatorOptions >(Arena* arena) {
  return Arena::CreateMessageInternal< ::mediapipe::TensorsToDetectionsCalculatorOptions >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>