63 std::string
Name()
const override {
64 return "NCutSegmentation";
72 remove_ground_ =
false;
76 bool Configure(std::string model_name);
78 void PartitionConnectedComponents(
81 std::vector<base::PointFCloudPtr>* out_clouds);
86 bool filter_pedestrian_only,
88 std::vector<base::ObjectPtr>* segments);
96 std::shared_ptr<base::AttributePointCloud<base::PointF>> original_cloud_;
97 std::shared_ptr<base::AttributePointCloud<base::PointD>> original_world_cloud_;
98 std::shared_ptr<base::AttributePointCloud<base::PointF>> roi_cloud_;
99 std::shared_ptr<base::AttributePointCloud<base::PointD>> roi_world_cloud_;
101 std::vector<std::shared_ptr<NCut>> _segmentors;
103 std::unique_ptr<std::vector<base::ObjectPtr>> _outliers;
104 float grid_radius_ = 100.0f;
105 float height_threshold_ = 2.5f;
106 float partition_cell_size_ = 1.0f;
107 float vehicle_filter_cell_size_ = 1.0f;
108 float pedestrian_filter_cell_size_ = 0.05f;
109 float outlier_length_ = 0.3f;
110 float outlier_width_ = 0.3f;
111 float outlier_height_ = 0.3f;
112 int outlier_min_num_points_ = 10;
113 bool remove_ground_ =
false;
114 bool remove_roi_ =
false;
115 bool filter_vehicle_ =
false;
116 bool filter_pedestrian_ =
false;
117 bool do_classification_ =
true;
118 int num_threads_ = 1;
122 pcl::visualization::PCLVisualizer::Ptr _viewer;
124 char _viewer_id[128];
127 void VisualizeSegments(
const std::vector<base::ObjectPtr>& segments);
128 void VisualizeComponents(
const base::PointFCloudPtr& cloud,
const std::vector<std::vector<int>>& component_points);