1 #ifndef CAFFE2_OPERATORS_COLLECT_AND_DISTRIBUTE_FPN_RPN_PROPOSALS_OP_H_ 2 #define CAFFE2_OPERATORS_COLLECT_AND_DISTRIBUTE_FPN_RPN_PROPOSALS_OP_H_ 4 #include "caffe2/core/context.h" 5 #include "caffe2/core/operator.h" 6 #include "caffe2/utils/eigen_utils.h" 7 #include "caffe2/utils/math.h" 14 ERArrXXf BoxesArea(
const ERArrXXf& boxes);
18 ERArrXXf MapRoIsToFpnLevels(Eigen::Ref<const ERArrXXf> rois,
19 const float k_min,
const float k_max,
20 const float s0,
const float lvl0);
24 void SortAndLimitRoIsByScores(Eigen::Ref<const EArrXf> scores,
int n,
29 void ArgSort(EArrXi& arr);
33 void RowsWhereRoILevelEquals(Eigen::Ref<const ERArrXXf> rois,
34 const ERArrXXf& lvls,
const int lvl,
35 ERArrXXf* out_filtered, EArrXi* out_indices);
45 template <
class Context>
48 USE_OPERATOR_CONTEXT_FUNCTIONS;
52 OperatorBase::GetSingleArgument<int>(
"roi_canonical_scale", 224)),
54 OperatorBase::GetSingleArgument<int>(
"roi_canonical_level", 4)),
56 OperatorBase::GetSingleArgument<int>(
"roi_max_level", 5)),
58 OperatorBase::GetSingleArgument<int>(
"roi_min_level", 2)),
60 OperatorBase::GetSingleArgument<int>(
"rpn_max_level", 6)),
62 OperatorBase::GetSingleArgument<int>(
"rpn_min_level", 2)),
64 OperatorBase::GetSingleArgument<int>(
"post_nms_topN", 2000)) {
68 "roi_max_level " + caffe2::to_string(roi_max_level_) +
69 " must be greater than or equal to roi_min_level " +
70 caffe2::to_string(roi_min_level_) +
".");
74 "rpn_max_level " + caffe2::to_string(rpn_max_level_) +
75 " must be greater than or equal to rpn_min_level " +
76 caffe2::to_string(rpn_min_level_) +
".");
81 bool RunOnDevice()
override;
85 int roi_canonical_scale_{224};
87 int roi_canonical_level_{4};
89 int roi_max_level_{5};
91 int roi_min_level_{2};
93 int rpn_max_level_{6};
95 int rpn_min_level_{2};
97 int rpn_post_nms_topN_{2000};
102 #endif // CAFFE2_OPERATORS_COLLECT_AND_DISTRIBUTE_FPN_RPN_PROPOSALS_OP_H_
Workspace is a class that holds all the related objects created during runtime: (1) all blobs...
A global dictionary that holds information about what Caffe2 modules have been loaded in the current ...