80 std::string
Name()
const {
return "CenterPointDetection"; }
84 float normalizing_factor);
87 const std::deque<base::PointDCloudPtr> &fuse_clouds);
89 bool Preprocess(
const float *in_points_array,
const int in_num_points,
90 std::vector<int> *voxels_shape,
91 std::vector<float> *voxels_data,
92 std::vector<int> *num_points_shape,
93 std::vector<int> *num_points_data,
94 std::vector<int> *coords_shape,
95 std::vector<int> *coords_data);
97 std::vector<int> GenerateIndices(
int start_index,
int size,
bool shuffle);
99 void GetBoxCorner(
int num_objects,
100 const std::vector<float> &detections,
101 std::vector<float> &box_corner,
102 std::vector<float> &box_rectangular);
104 void GetBoxIndices(
int num_objects,
105 const std::vector<float> &detections,
106 const std::vector<float> &box_corner,
107 const std::vector<float> &box_rectangular,
108 std::vector<std::shared_ptr<base::Object>> *objects);
110 void GetObjects(
const Eigen::Affine3d &pose,
111 const std::vector<float> &detections,
112 const std::vector<int64_t> &labels,
113 const std::vector<float> &scores,
114 std::vector<std::shared_ptr<base::Object>> *objects);
120 float score_threshold, std::vector<float> *box3d_filtered,
121 std::vector<int64_t> *label_preds_filtered,
122 std::vector<float> *scores_filtered);
124 void FilterDiffScore(
128 std::vector<float> *box3d_filtered,
129 std::vector<int64_t> *label_preds_filtered,
130 std::vector<float> *scores_filtered);
134 float GetObjectScoreThreshold(
int label);
136 void FilterObjectsbyPoints(
137 std::vector<std::shared_ptr<base::Object>> *objects);
139 void FilterForegroundPoints(
140 std::vector<std::shared_ptr<base::Object>> *objects);
143 std::vector<std::shared_ptr<base::Object>> *objects);
145 void FilterObjectsbyClassNMS(
146 std::vector<std::shared_ptr<base::Object>> *objects);
148 void FilterObjectsbySemanticType(
149 std::vector<std::shared_ptr<base::Object>> *objects);
153 std::shared_ptr<base::AttributePointCloud<base::PointF>> original_cloud_;
154 std::shared_ptr<base::AttributePointCloud<base::PointD>>
155 original_world_cloud_;
157 std::deque<base::PointDCloudPtr> prev_world_clouds_;
170 double downsample_time_ = 0.0;
171 double fuse_time_ = 0.0;
172 double shuffle_time_ = 0.0;
173 double cloud_to_array_time_ = 0.0;
174 double inference_time_ = 0.0;
175 double collect_time_ = 0.0;
176 double postprocess_time_ = 0.0;
177 double nms_time_ = 0.0;
180 bool diff_class_nms_ =
false;
181 float diff_class_iou_ = 0.0;
183 bool nms_strategy_ =
false;
184 std::map<base::ObjectType, std::vector<base::ObjectType>> nms_strategy_table_;
190 float cone_score_threshold_ = 0.40;
191 float ped_score_threshold_ = 0.40;
192 float cyc_score_threshold_ = 0.40;
193 float small_mot_score_threshold_ = 0.40;
194 float big_mot_score_threshold_ = 0.40;
196 std::shared_ptr<inference::Inference> inference_;
198 std::vector<std::string> input_blob_names_;
200 std::vector<std::string> output_blob_names_;
202 std::shared_ptr<BaseDownSample> down_sample_;