GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, offset_w_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, width_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, height_),
- 0,
- 1,
~0u,
- 8,
- 9,
~0u,
+ ~0u,
+ 6,
+ 7,
+ ~0u,
+ 0,
+ 1,
2,
3,
4,
5,
- 6,
- 7,
- 10,
+ 8,
~0u,
~0u,
~0u,
"al\030\001 \001(\010:\004true\0223\n\014scale_filler\030\002 \001(\0132\035.o"
"pencv_caffe.FillerParameter\022\034\n\016channel_s"
"hared\030\003 \001(\010:\004true\022\022\n\003eps\030\004 \001(\002:\0051e-10\"\346\002"
- "\n\021PriorBoxParameter\022\020\n\010min_size\030\001 \001(\002\022\020\n"
- "\010max_size\030\002 \001(\002\022\024\n\014aspect_ratio\030\003 \003(\002\022\022\n"
+ "\n\021PriorBoxParameter\022\020\n\010min_size\030\001 \003(\002\022\020\n"
+ "\010max_size\030\002 \003(\002\022\024\n\014aspect_ratio\030\003 \003(\002\022\022\n"
"\004flip\030\004 \001(\010:\004true\022\022\n\004clip\030\005 \001(\010:\004true\022\020\n"
"\010variance\030\006 \003(\002\022\020\n\010img_size\030\007 \001(\r\022\r\n\005img"
"_h\030\010 \001(\r\022\r\n\005img_w\030\t \001(\r\022\014\n\004step\030\n \001(\002\022\016\n"
_internal_metadata_(NULL),
_has_bits_(from._has_bits_),
_cached_size_(0),
+ min_size_(from.min_size_),
+ max_size_(from.max_size_),
aspect_ratio_(from.aspect_ratio_),
variance_(from.variance_),
offset_h_(from.offset_h_),
width_(from.width_),
height_(from.height_) {
_internal_metadata_.MergeFrom(from._internal_metadata_);
- ::memcpy(&min_size_, &from.min_size_,
+ ::memcpy(&img_size_, &from.img_size_,
static_cast<size_t>(reinterpret_cast<char*>(&offset_) -
- reinterpret_cast<char*>(&min_size_)) + sizeof(offset_));
+ reinterpret_cast<char*>(&img_size_)) + sizeof(offset_));
// @@protoc_insertion_point(copy_constructor:opencv_caffe.PriorBoxParameter)
}
void PriorBoxParameter::SharedCtor() {
_cached_size_ = 0;
- ::memset(&min_size_, 0, static_cast<size_t>(
+ ::memset(&img_size_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&step_w_) -
- reinterpret_cast<char*>(&min_size_)) + sizeof(step_w_));
+ reinterpret_cast<char*>(&img_size_)) + sizeof(step_w_));
flip_ = true;
clip_ = true;
offset_ = 0.5f;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
+ min_size_.Clear();
+ max_size_.Clear();
aspect_ratio_.Clear();
variance_.Clear();
offset_h_.Clear();
height_.Clear();
cached_has_bits = _has_bits_[0];
if (cached_has_bits & 255u) {
- ::memset(&min_size_, 0, static_cast<size_t>(
+ ::memset(&img_size_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&step_w_) -
- reinterpret_cast<char*>(&min_size_)) + sizeof(step_w_));
- }
- if (cached_has_bits & 1792u) {
+ reinterpret_cast<char*>(&img_size_)) + sizeof(step_w_));
flip_ = true;
clip_ = true;
- offset_ = 0.5f;
}
+ offset_ = 0.5f;
_has_bits_.Clear();
_internal_metadata_.Clear();
}
tag = p.first;
if (!p.second) goto handle_unusual;
switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
- // optional float min_size = 1;
+ // repeated float min_size = 1;
case 1: {
if (static_cast< ::google::protobuf::uint8>(tag) ==
static_cast< ::google::protobuf::uint8>(13u /* 13 & 0xFF */)) {
- set_has_min_size();
- DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitive<
float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
- input, &min_size_)));
+ 1, 13u, input, this->mutable_min_size())));
+ } else if (
+ static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitiveNoInline<
+ float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
+ input, this->mutable_min_size())));
} else {
goto handle_unusual;
}
break;
}
- // optional float max_size = 2;
+ // repeated float max_size = 2;
case 2: {
if (static_cast< ::google::protobuf::uint8>(tag) ==
static_cast< ::google::protobuf::uint8>(21u /* 21 & 0xFF */)) {
- set_has_max_size();
- DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitive<
+ float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
+ 1, 21u, input, this->mutable_max_size())));
+ } else if (
+ static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitiveNoInline<
float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
- input, &max_size_)));
+ input, this->mutable_max_size())));
} else {
goto handle_unusual;
}
::google::protobuf::uint32 cached_has_bits = 0;
(void) cached_has_bits;
- cached_has_bits = _has_bits_[0];
- // optional float min_size = 1;
- if (cached_has_bits & 0x00000001u) {
- ::google::protobuf::internal::WireFormatLite::WriteFloat(1, this->min_size(), output);
+ // repeated float min_size = 1;
+ for (int i = 0, n = this->min_size_size(); i < n; i++) {
+ ::google::protobuf::internal::WireFormatLite::WriteFloat(
+ 1, this->min_size(i), output);
}
- // optional float max_size = 2;
- if (cached_has_bits & 0x00000002u) {
- ::google::protobuf::internal::WireFormatLite::WriteFloat(2, this->max_size(), output);
+ // repeated float max_size = 2;
+ for (int i = 0, n = this->max_size_size(); i < n; i++) {
+ ::google::protobuf::internal::WireFormatLite::WriteFloat(
+ 2, this->max_size(i), output);
}
// repeated float aspect_ratio = 3;
3, this->aspect_ratio(i), output);
}
+ cached_has_bits = _has_bits_[0];
// optional bool flip = 4 [default = true];
- if (cached_has_bits & 0x00000100u) {
+ if (cached_has_bits & 0x00000040u) {
::google::protobuf::internal::WireFormatLite::WriteBool(4, this->flip(), output);
}
// optional bool clip = 5 [default = true];
- if (cached_has_bits & 0x00000200u) {
+ if (cached_has_bits & 0x00000080u) {
::google::protobuf::internal::WireFormatLite::WriteBool(5, this->clip(), output);
}
}
// optional uint32 img_size = 7;
- if (cached_has_bits & 0x00000004u) {
+ if (cached_has_bits & 0x00000001u) {
::google::protobuf::internal::WireFormatLite::WriteUInt32(7, this->img_size(), output);
}
// optional uint32 img_h = 8;
- if (cached_has_bits & 0x00000008u) {
+ if (cached_has_bits & 0x00000002u) {
::google::protobuf::internal::WireFormatLite::WriteUInt32(8, this->img_h(), output);
}
// optional uint32 img_w = 9;
- if (cached_has_bits & 0x00000010u) {
+ if (cached_has_bits & 0x00000004u) {
::google::protobuf::internal::WireFormatLite::WriteUInt32(9, this->img_w(), output);
}
// optional float step = 10;
- if (cached_has_bits & 0x00000020u) {
+ if (cached_has_bits & 0x00000008u) {
::google::protobuf::internal::WireFormatLite::WriteFloat(10, this->step(), output);
}
// optional float step_h = 11;
- if (cached_has_bits & 0x00000040u) {
+ if (cached_has_bits & 0x00000010u) {
::google::protobuf::internal::WireFormatLite::WriteFloat(11, this->step_h(), output);
}
// optional float step_w = 12;
- if (cached_has_bits & 0x00000080u) {
+ if (cached_has_bits & 0x00000020u) {
::google::protobuf::internal::WireFormatLite::WriteFloat(12, this->step_w(), output);
}
// optional float offset = 13 [default = 0.5];
- if (cached_has_bits & 0x00000400u) {
+ if (cached_has_bits & 0x00000100u) {
::google::protobuf::internal::WireFormatLite::WriteFloat(13, this->offset(), output);
}
::google::protobuf::uint32 cached_has_bits = 0;
(void) cached_has_bits;
- cached_has_bits = _has_bits_[0];
- // optional float min_size = 1;
- if (cached_has_bits & 0x00000001u) {
- target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(1, this->min_size(), target);
- }
+ // repeated float min_size = 1;
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteFloatToArray(1, this->min_size_, target);
- // optional float max_size = 2;
- if (cached_has_bits & 0x00000002u) {
- target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(2, this->max_size(), target);
- }
+ // repeated float max_size = 2;
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteFloatToArray(2, this->max_size_, target);
// repeated float aspect_ratio = 3;
target = ::google::protobuf::internal::WireFormatLite::
WriteFloatToArray(3, this->aspect_ratio_, target);
+ cached_has_bits = _has_bits_[0];
// optional bool flip = 4 [default = true];
- if (cached_has_bits & 0x00000100u) {
+ if (cached_has_bits & 0x00000040u) {
target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(4, this->flip(), target);
}
// optional bool clip = 5 [default = true];
- if (cached_has_bits & 0x00000200u) {
+ if (cached_has_bits & 0x00000080u) {
target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(5, this->clip(), target);
}
WriteFloatToArray(6, this->variance_, target);
// optional uint32 img_size = 7;
- if (cached_has_bits & 0x00000004u) {
+ if (cached_has_bits & 0x00000001u) {
target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(7, this->img_size(), target);
}
// optional uint32 img_h = 8;
- if (cached_has_bits & 0x00000008u) {
+ if (cached_has_bits & 0x00000002u) {
target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(8, this->img_h(), target);
}
// optional uint32 img_w = 9;
- if (cached_has_bits & 0x00000010u) {
+ if (cached_has_bits & 0x00000004u) {
target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(9, this->img_w(), target);
}
// optional float step = 10;
- if (cached_has_bits & 0x00000020u) {
+ if (cached_has_bits & 0x00000008u) {
target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(10, this->step(), target);
}
// optional float step_h = 11;
- if (cached_has_bits & 0x00000040u) {
+ if (cached_has_bits & 0x00000010u) {
target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(11, this->step_h(), target);
}
// optional float step_w = 12;
- if (cached_has_bits & 0x00000080u) {
+ if (cached_has_bits & 0x00000020u) {
target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(12, this->step_w(), target);
}
// optional float offset = 13 [default = 0.5];
- if (cached_has_bits & 0x00000400u) {
+ if (cached_has_bits & 0x00000100u) {
target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(13, this->offset(), target);
}
::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
_internal_metadata_.unknown_fields());
}
+ // repeated float min_size = 1;
+ {
+ unsigned int count = static_cast<unsigned int>(this->min_size_size());
+ size_t data_size = 4UL * count;
+ total_size += 1 *
+ ::google::protobuf::internal::FromIntSize(this->min_size_size());
+ total_size += data_size;
+ }
+
+ // repeated float max_size = 2;
+ {
+ unsigned int count = static_cast<unsigned int>(this->max_size_size());
+ size_t data_size = 4UL * count;
+ total_size += 1 *
+ ::google::protobuf::internal::FromIntSize(this->max_size_size());
+ total_size += data_size;
+ }
+
// repeated float aspect_ratio = 3;
{
unsigned int count = static_cast<unsigned int>(this->aspect_ratio_size());
}
if (_has_bits_[0 / 32] & 255u) {
- // optional float min_size = 1;
- if (has_min_size()) {
- total_size += 1 + 4;
- }
-
- // optional float max_size = 2;
- if (has_max_size()) {
- total_size += 1 + 4;
- }
-
// optional uint32 img_size = 7;
if (has_img_size()) {
total_size += 1 +
total_size += 1 + 4;
}
- }
- if (_has_bits_[8 / 32] & 1792u) {
// optional bool flip = 4 [default = true];
if (has_flip()) {
total_size += 1 + 1;
total_size += 1 + 1;
}
- // optional float offset = 13 [default = 0.5];
- if (has_offset()) {
- total_size += 1 + 4;
- }
-
}
+ // optional float offset = 13 [default = 0.5];
+ if (has_offset()) {
+ total_size += 1 + 4;
+ }
+
int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
_cached_size_ = cached_size;
::google::protobuf::uint32 cached_has_bits = 0;
(void) cached_has_bits;
+ min_size_.MergeFrom(from.min_size_);
+ max_size_.MergeFrom(from.max_size_);
aspect_ratio_.MergeFrom(from.aspect_ratio_);
variance_.MergeFrom(from.variance_);
offset_h_.MergeFrom(from.offset_h_);
cached_has_bits = from._has_bits_[0];
if (cached_has_bits & 255u) {
if (cached_has_bits & 0x00000001u) {
- min_size_ = from.min_size_;
- }
- if (cached_has_bits & 0x00000002u) {
- max_size_ = from.max_size_;
- }
- if (cached_has_bits & 0x00000004u) {
img_size_ = from.img_size_;
}
- if (cached_has_bits & 0x00000008u) {
+ if (cached_has_bits & 0x00000002u) {
img_h_ = from.img_h_;
}
- if (cached_has_bits & 0x00000010u) {
+ if (cached_has_bits & 0x00000004u) {
img_w_ = from.img_w_;
}
- if (cached_has_bits & 0x00000020u) {
+ if (cached_has_bits & 0x00000008u) {
step_ = from.step_;
}
- if (cached_has_bits & 0x00000040u) {
+ if (cached_has_bits & 0x00000010u) {
step_h_ = from.step_h_;
}
- if (cached_has_bits & 0x00000080u) {
+ if (cached_has_bits & 0x00000020u) {
step_w_ = from.step_w_;
}
- _has_bits_[0] |= cached_has_bits;
- }
- if (cached_has_bits & 1792u) {
- if (cached_has_bits & 0x00000100u) {
+ if (cached_has_bits & 0x00000040u) {
flip_ = from.flip_;
}
- if (cached_has_bits & 0x00000200u) {
+ if (cached_has_bits & 0x00000080u) {
clip_ = from.clip_;
}
- if (cached_has_bits & 0x00000400u) {
- offset_ = from.offset_;
- }
_has_bits_[0] |= cached_has_bits;
}
+ if (cached_has_bits & 0x00000100u) {
+ set_offset(from.offset());
+ }
}
void PriorBoxParameter::CopyFrom(const ::google::protobuf::Message& from) {
}
void PriorBoxParameter::InternalSwap(PriorBoxParameter* other) {
using std::swap;
+ min_size_.InternalSwap(&other->min_size_);
+ max_size_.InternalSwap(&other->max_size_);
aspect_ratio_.InternalSwap(&other->aspect_ratio_);
variance_.InternalSwap(&other->variance_);
offset_h_.InternalSwap(&other->offset_h_);
offset_w_.InternalSwap(&other->offset_w_);
width_.InternalSwap(&other->width_);
height_.InternalSwap(&other->height_);
- swap(min_size_, other->min_size_);
- swap(max_size_, other->max_size_);
swap(img_size_, other->img_size_);
swap(img_h_, other->img_h_);
swap(img_w_, other->img_w_);
// accessors -------------------------------------------------------
+ // repeated float min_size = 1;
+ int min_size_size() const;
+ void clear_min_size();
+ static const int kMinSizeFieldNumber = 1;
+ float min_size(int index) const;
+ void set_min_size(int index, float value);
+ void add_min_size(float value);
+ const ::google::protobuf::RepeatedField< float >&
+ min_size() const;
+ ::google::protobuf::RepeatedField< float >*
+ mutable_min_size();
+
+ // repeated float max_size = 2;
+ int max_size_size() const;
+ void clear_max_size();
+ static const int kMaxSizeFieldNumber = 2;
+ float max_size(int index) const;
+ void set_max_size(int index, float value);
+ void add_max_size(float value);
+ const ::google::protobuf::RepeatedField< float >&
+ max_size() const;
+ ::google::protobuf::RepeatedField< float >*
+ mutable_max_size();
+
// repeated float aspect_ratio = 3;
int aspect_ratio_size() const;
void clear_aspect_ratio();
::google::protobuf::RepeatedField< float >*
mutable_height();
- // optional float min_size = 1;
- bool has_min_size() const;
- void clear_min_size();
- static const int kMinSizeFieldNumber = 1;
- float min_size() const;
- void set_min_size(float value);
-
- // optional float max_size = 2;
- bool has_max_size() const;
- void clear_max_size();
- static const int kMaxSizeFieldNumber = 2;
- float max_size() const;
- void set_max_size(float value);
-
// optional uint32 img_size = 7;
bool has_img_size() const;
void clear_img_size();
// @@protoc_insertion_point(class_scope:opencv_caffe.PriorBoxParameter)
private:
- void set_has_min_size();
- void clear_has_min_size();
- void set_has_max_size();
- void clear_has_max_size();
void set_has_flip();
void clear_has_flip();
void set_has_clip();
::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
::google::protobuf::internal::HasBits<1> _has_bits_;
mutable int _cached_size_;
+ ::google::protobuf::RepeatedField< float > min_size_;
+ ::google::protobuf::RepeatedField< float > max_size_;
::google::protobuf::RepeatedField< float > aspect_ratio_;
::google::protobuf::RepeatedField< float > variance_;
::google::protobuf::RepeatedField< float > offset_h_;
::google::protobuf::RepeatedField< float > offset_w_;
::google::protobuf::RepeatedField< float > width_;
::google::protobuf::RepeatedField< float > height_;
- float min_size_;
- float max_size_;
::google::protobuf::uint32 img_size_;
::google::protobuf::uint32 img_h_;
::google::protobuf::uint32 img_w_;
// PriorBoxParameter
-// optional float min_size = 1;
-inline bool PriorBoxParameter::has_min_size() const {
- return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void PriorBoxParameter::set_has_min_size() {
- _has_bits_[0] |= 0x00000001u;
-}
-inline void PriorBoxParameter::clear_has_min_size() {
- _has_bits_[0] &= ~0x00000001u;
+// repeated float min_size = 1;
+inline int PriorBoxParameter::min_size_size() const {
+ return min_size_.size();
}
inline void PriorBoxParameter::clear_min_size() {
- min_size_ = 0;
- clear_has_min_size();
+ min_size_.Clear();
}
-inline float PriorBoxParameter::min_size() const {
+inline float PriorBoxParameter::min_size(int index) const {
// @@protoc_insertion_point(field_get:opencv_caffe.PriorBoxParameter.min_size)
- return min_size_;
+ return min_size_.Get(index);
}
-inline void PriorBoxParameter::set_min_size(float value) {
- set_has_min_size();
- min_size_ = value;
+inline void PriorBoxParameter::set_min_size(int index, float value) {
+ min_size_.Set(index, value);
// @@protoc_insertion_point(field_set:opencv_caffe.PriorBoxParameter.min_size)
}
-
-// optional float max_size = 2;
-inline bool PriorBoxParameter::has_max_size() const {
- return (_has_bits_[0] & 0x00000002u) != 0;
+inline void PriorBoxParameter::add_min_size(float value) {
+ min_size_.Add(value);
+ // @@protoc_insertion_point(field_add:opencv_caffe.PriorBoxParameter.min_size)
}
-inline void PriorBoxParameter::set_has_max_size() {
- _has_bits_[0] |= 0x00000002u;
+inline const ::google::protobuf::RepeatedField< float >&
+PriorBoxParameter::min_size() const {
+ // @@protoc_insertion_point(field_list:opencv_caffe.PriorBoxParameter.min_size)
+ return min_size_;
}
-inline void PriorBoxParameter::clear_has_max_size() {
- _has_bits_[0] &= ~0x00000002u;
+inline ::google::protobuf::RepeatedField< float >*
+PriorBoxParameter::mutable_min_size() {
+ // @@protoc_insertion_point(field_mutable_list:opencv_caffe.PriorBoxParameter.min_size)
+ return &min_size_;
+}
+
+// repeated float max_size = 2;
+inline int PriorBoxParameter::max_size_size() const {
+ return max_size_.size();
}
inline void PriorBoxParameter::clear_max_size() {
- max_size_ = 0;
- clear_has_max_size();
+ max_size_.Clear();
}
-inline float PriorBoxParameter::max_size() const {
+inline float PriorBoxParameter::max_size(int index) const {
// @@protoc_insertion_point(field_get:opencv_caffe.PriorBoxParameter.max_size)
- return max_size_;
+ return max_size_.Get(index);
}
-inline void PriorBoxParameter::set_max_size(float value) {
- set_has_max_size();
- max_size_ = value;
+inline void PriorBoxParameter::set_max_size(int index, float value) {
+ max_size_.Set(index, value);
// @@protoc_insertion_point(field_set:opencv_caffe.PriorBoxParameter.max_size)
}
+inline void PriorBoxParameter::add_max_size(float value) {
+ max_size_.Add(value);
+ // @@protoc_insertion_point(field_add:opencv_caffe.PriorBoxParameter.max_size)
+}
+inline const ::google::protobuf::RepeatedField< float >&
+PriorBoxParameter::max_size() const {
+ // @@protoc_insertion_point(field_list:opencv_caffe.PriorBoxParameter.max_size)
+ return max_size_;
+}
+inline ::google::protobuf::RepeatedField< float >*
+PriorBoxParameter::mutable_max_size() {
+ // @@protoc_insertion_point(field_mutable_list:opencv_caffe.PriorBoxParameter.max_size)
+ return &max_size_;
+}
// repeated float aspect_ratio = 3;
inline int PriorBoxParameter::aspect_ratio_size() const {
// optional bool flip = 4 [default = true];
inline bool PriorBoxParameter::has_flip() const {
- return (_has_bits_[0] & 0x00000100u) != 0;
+ return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void PriorBoxParameter::set_has_flip() {
- _has_bits_[0] |= 0x00000100u;
+ _has_bits_[0] |= 0x00000040u;
}
inline void PriorBoxParameter::clear_has_flip() {
- _has_bits_[0] &= ~0x00000100u;
+ _has_bits_[0] &= ~0x00000040u;
}
inline void PriorBoxParameter::clear_flip() {
flip_ = true;
// optional bool clip = 5 [default = true];
inline bool PriorBoxParameter::has_clip() const {
- return (_has_bits_[0] & 0x00000200u) != 0;
+ return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void PriorBoxParameter::set_has_clip() {
- _has_bits_[0] |= 0x00000200u;
+ _has_bits_[0] |= 0x00000080u;
}
inline void PriorBoxParameter::clear_has_clip() {
- _has_bits_[0] &= ~0x00000200u;
+ _has_bits_[0] &= ~0x00000080u;
}
inline void PriorBoxParameter::clear_clip() {
clip_ = true;
// optional uint32 img_size = 7;
inline bool PriorBoxParameter::has_img_size() const {
- return (_has_bits_[0] & 0x00000004u) != 0;
+ return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PriorBoxParameter::set_has_img_size() {
- _has_bits_[0] |= 0x00000004u;
+ _has_bits_[0] |= 0x00000001u;
}
inline void PriorBoxParameter::clear_has_img_size() {
- _has_bits_[0] &= ~0x00000004u;
+ _has_bits_[0] &= ~0x00000001u;
}
inline void PriorBoxParameter::clear_img_size() {
img_size_ = 0u;
// optional uint32 img_h = 8;
inline bool PriorBoxParameter::has_img_h() const {
- return (_has_bits_[0] & 0x00000008u) != 0;
+ return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PriorBoxParameter::set_has_img_h() {
- _has_bits_[0] |= 0x00000008u;
+ _has_bits_[0] |= 0x00000002u;
}
inline void PriorBoxParameter::clear_has_img_h() {
- _has_bits_[0] &= ~0x00000008u;
+ _has_bits_[0] &= ~0x00000002u;
}
inline void PriorBoxParameter::clear_img_h() {
img_h_ = 0u;
// optional uint32 img_w = 9;
inline bool PriorBoxParameter::has_img_w() const {
- return (_has_bits_[0] & 0x00000010u) != 0;
+ return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PriorBoxParameter::set_has_img_w() {
- _has_bits_[0] |= 0x00000010u;
+ _has_bits_[0] |= 0x00000004u;
}
inline void PriorBoxParameter::clear_has_img_w() {
- _has_bits_[0] &= ~0x00000010u;
+ _has_bits_[0] &= ~0x00000004u;
}
inline void PriorBoxParameter::clear_img_w() {
img_w_ = 0u;
// optional float step = 10;
inline bool PriorBoxParameter::has_step() const {
- return (_has_bits_[0] & 0x00000020u) != 0;
+ return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PriorBoxParameter::set_has_step() {
- _has_bits_[0] |= 0x00000020u;
+ _has_bits_[0] |= 0x00000008u;
}
inline void PriorBoxParameter::clear_has_step() {
- _has_bits_[0] &= ~0x00000020u;
+ _has_bits_[0] &= ~0x00000008u;
}
inline void PriorBoxParameter::clear_step() {
step_ = 0;
// optional float step_h = 11;
inline bool PriorBoxParameter::has_step_h() const {
- return (_has_bits_[0] & 0x00000040u) != 0;
+ return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void PriorBoxParameter::set_has_step_h() {
- _has_bits_[0] |= 0x00000040u;
+ _has_bits_[0] |= 0x00000010u;
}
inline void PriorBoxParameter::clear_has_step_h() {
- _has_bits_[0] &= ~0x00000040u;
+ _has_bits_[0] &= ~0x00000010u;
}
inline void PriorBoxParameter::clear_step_h() {
step_h_ = 0;
// optional float step_w = 12;
inline bool PriorBoxParameter::has_step_w() const {
- return (_has_bits_[0] & 0x00000080u) != 0;
+ return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void PriorBoxParameter::set_has_step_w() {
- _has_bits_[0] |= 0x00000080u;
+ _has_bits_[0] |= 0x00000020u;
}
inline void PriorBoxParameter::clear_has_step_w() {
- _has_bits_[0] &= ~0x00000080u;
+ _has_bits_[0] &= ~0x00000020u;
}
inline void PriorBoxParameter::clear_step_w() {
step_w_ = 0;
// optional float offset = 13 [default = 0.5];
inline bool PriorBoxParameter::has_offset() const {
- return (_has_bits_[0] & 0x00000400u) != 0;
+ return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void PriorBoxParameter::set_has_offset() {
- _has_bits_[0] |= 0x00000400u;
+ _has_bits_[0] |= 0x00000100u;
}
inline void PriorBoxParameter::clear_has_offset() {
- _has_bits_[0] &= ~0x00000400u;
+ _has_bits_[0] &= ~0x00000100u;
}
inline void PriorBoxParameter::clear_offset() {
offset_ = 0.5f;
CENTER_SIZE = 2;
}
// Minimum box size (in pixels). Required!
- optional float min_size = 1;
+ repeated float min_size = 1;
// Maximum box size (in pixels). Required!
- optional float max_size = 2;
+ repeated float max_size = 2;
// Various of aspect ratios. Duplicate ratios will be ignored.
// If none is provided, we use default ratio 1.
repeated float aspect_ratio = 3;
PriorBoxLayerImpl(const LayerParams ¶ms)
{
setParamsFrom(params);
- _minSize = getParameter<float>(params, "min_size", 0, false, 0);
_flip = getParameter<bool>(params, "flip", 0, false, true);
_clip = getParameter<bool>(params, "clip", 0, false, true);
_bboxesNormalized = getParameter<bool>(params, "normalized_bbox", 0, false, true);
- _aspectRatios.clear();
-
+ getParams("min_size", params, &_minSize);
getAspectRatios(params);
getVariance(params);
- _maxSize = -1;
if (params.has("max_size"))
{
- _maxSize = params.get("max_size").get<float>(0);
- CV_Assert(_maxSize > _minSize);
+ getParams("max_size", params, &_maxSize);
+ CV_Assert(_minSize.size() == _maxSize.size());
+ for (int i = 0; i < _maxSize.size(); i++)
+ CV_Assert(_minSize[i] < _maxSize[i]);
}
std::vector<float> widths, heights;
}
else
{
- CV_Assert(_minSize > 0);
- _boxWidths.resize(1 + (_maxSize > 0 ? 1 : 0) + _aspectRatios.size());
- _boxHeights.resize(_boxWidths.size());
- _boxWidths[0] = _boxHeights[0] = _minSize;
-
- int i = 1;
- if (_maxSize > 0)
+ CV_Assert(!_minSize.empty());
+ for (int i = 0; i < _minSize.size(); ++i)
{
- // second prior: aspect_ratio = 1, size = sqrt(min_size * max_size)
- _boxWidths[i] = _boxHeights[i] = sqrt(_minSize * _maxSize);
- i += 1;
- }
+ float minSize = _minSize[i];
+ CV_Assert(minSize > 0);
+ _boxWidths.push_back(minSize);
+ _boxHeights.push_back(minSize);
- // rest of priors
- for (size_t r = 0; r < _aspectRatios.size(); ++r)
- {
- float arSqrt = sqrt(_aspectRatios[r]);
- _boxWidths[i + r] = _minSize * arSqrt;
- _boxHeights[i + r] = _minSize / arSqrt;
+ if (_maxSize.size() > 0)
+ {
+ float size = sqrt(minSize * _maxSize[i]);
+ _boxWidths.push_back(size);
+ _boxHeights.push_back(size);
+ }
+
+ // rest of priors
+ for (size_t r = 0; r < _aspectRatios.size(); ++r)
+ {
+ float arSqrt = sqrt(_aspectRatios[r]);
+ _boxWidths.push_back(minSize * arSqrt);
+ _boxHeights.push_back(minSize / arSqrt);
+ }
}
}
CV_Assert(_boxWidths.size() == _boxHeights.size());
virtual bool supportBackend(int backendId) CV_OVERRIDE
{
return backendId == DNN_BACKEND_OPENCV ||
- (backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine());
+ (backendId == DNN_BACKEND_INFERENCE_ENGINE && haveInfEngine() &&
+ ( _explicitSizes || (_minSize.size() == 1 && _maxSize.size() <= 1)));
}
bool getMemoryShapes(const std::vector<MatShape> &inputs,
InferenceEngine::Builder::PriorBoxLayer ieLayer(name);
CV_Assert(!_explicitSizes);
-
- ieLayer.setMinSize(_minSize);
- if (_maxSize > 0)
- ieLayer.setMaxSize(_maxSize);
+ ieLayer.setMinSize(_minSize[0]);
+ if (!_maxSize.empty())
+ ieLayer.setMaxSize(_maxSize[0]);
CV_CheckEQ(_offsetsX.size(), (size_t)1, ""); CV_CheckEQ(_offsetsY.size(), (size_t)1, ""); CV_CheckEQ(_offsetsX[0], _offsetsY[0], "");
ieLayer.setOffset(_offsetsX[0]);
}
private:
- float _minSize;
- float _maxSize;
+ std::vector<float> _minSize;
+ std::vector<float> _maxSize;
float _stepX, _stepY;
normAssert(out, blobFromImage(ref));
}
+TEST_P(Test_Caffe_layers, PriorBox_repeated)
+{
+ Net net = readNet(_tf("prior_box.prototxt"));
+ int inp_size[] = {1, 3, 10, 10};
+ int shape_size[] = {1, 2, 3, 4};
+ Mat inp(4, inp_size, CV_32F);
+ randu(inp, -1.0f, 1.0f);
+ Mat shape(4, shape_size, CV_32F);
+ randu(shape, -1.0f, 1.0f);
+ net.setInput(inp, "data");
+ net.setInput(shape, "shape");
+ Mat out = net.forward();
+ Mat ref = blobFromNPY(_tf("priorbox_output.npy"));
+ normAssert(out, ref, "");
+}
+
// Test PriorBoxLayer in case of no aspect ratios (just squared proposals).
TEST_P(Test_Caffe_layers, PriorBox_squares)
{