24 namespace perception {
31 const BBoxRegParameter &bbox_reg_param,
32 const DetectionOutputSSDParameter &detection_output_ssd_param,
33 nvinfer1::Dims *in_dims) {
34 num_rois_ = in_dims[2].d[0];
36 for (
int i = 0; i < 4; ++i) {
37 bbox_mean_[i] = bbox_reg_param.bbox_mean(i);
38 bbox_std_[i] = bbox_reg_param.bbox_std(i);
42 static_cast<int>(detection_output_ssd_param.min_size_mode());
43 min_size_h_ = detection_output_ssd_param.min_size_h();
44 min_size_w_ = detection_output_ssd_param.min_size_w();
46 num_class_ = detection_output_ssd_param.num_class();
47 refine_out_of_map_bbox_ =
48 detection_output_ssd_param.refine_out_of_map_bbox();
49 regress_agnostic_ = detection_output_ssd_param.regress_agnostic();
50 rpn_proposal_output_score_ =
51 detection_output_ssd_param.rpn_proposal_output_score();
53 threshold_objectness_ = detection_output_ssd_param.threshold_objectness();
54 for (
int i = 0; i < num_class_; ++i) {
55 thresholds_.push_back(detection_output_ssd_param.threshold(i));
58 NMSSSDParameter nms_param = detection_output_ssd_param.nms_param();
59 max_candidate_n_ = nms_param.max_candidate_n(0);
60 overlap_ratio_ = nms_param.overlap_ratio(0);
61 top_n_ = nms_param.top_n(0);
63 out_channel_ = rpn_proposal_output_score_ ? 9 : 5;
73 int nbInputDims)
override {
76 return nvinfer1::Dims4(top_n_ * 1, out_channel_, 1, 1);
79 void configure(
const nvinfer1::Dims *inputDims,
int nbInputs,
80 const nvinfer1::Dims *outputDims,
int nbOutputs,
81 int maxBatchSize)
override {}
85 virtual int enqueue(
int batchSize,
const void *
const *inputs,
void **outputs,
86 void *workspace, cudaStream_t stream);
91 char *d =
reinterpret_cast<char *
>(buffer), *a = d;
93 CHECK_EQ(d, a + size);
97 const int thread_size_ = 512;
98 bool refine_out_of_map_bbox_ =
true;
100 bool regress_agnostic_ =
false;
101 bool rpn_proposal_output_score_ =
true;
107 float threshold_objectness_;
108 float overlap_ratio_;
111 int max_candidate_n_;
117 std::vector<float> thresholds_{};
void serialize(void *buffer) override
Definition: rcnn_proposal_plugin.h:90
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
void configure(const nvinfer1::Dims *inputDims, int nbInputs, const nvinfer1::Dims *outputDims, int nbOutputs, int maxBatchSize) override
Definition: rcnn_proposal_plugin.h:79
virtual ~RCNNProposalPlugin()
Definition: rcnn_proposal_plugin.h:66
virtual void terminate()
Definition: rcnn_proposal_plugin.h:69
virtual int initialize()
Definition: rcnn_proposal_plugin.h:68
nvinfer1::Dims getOutputDimensions(int index, const nvinfer1::Dims *inputs, int nbInputDims) override
Definition: rcnn_proposal_plugin.h:72
virtual int enqueue(int batchSize, const void *const *inputs, void **outputs, void *workspace, cudaStream_t stream)
size_t getSerializationSize() override
Definition: rcnn_proposal_plugin.h:88
int getNbOutputs() const override
Definition: rcnn_proposal_plugin.h:70
RCNNProposalPlugin(const BBoxRegParameter &bbox_reg_param, const DetectionOutputSSDParameter &detection_output_ssd_param, nvinfer1::Dims *in_dims)
Definition: rcnn_proposal_plugin.h:30
size_t getWorkspaceSize(int maxBatchSize) const override
Definition: rcnn_proposal_plugin.h:83
Definition: rcnn_proposal_plugin.h:28