23 #include "pcl/visualization/pcl_visualizer.h" 33 #include "modules/perception/lidar/lib/detector/ncut_segmentation/proto/ncut_param.pb.h" 36 namespace perception {
51 std::string
Name()
const override {
return "NCutSegmentation"; }
55 remove_ground_ =
false;
59 bool Configure(std::string model_name);
61 void PartitionConnectedComponents(
63 std::vector<base::PointFCloudPtr>* out_clouds);
66 bool filter_pedestrian_only,
68 std::vector<base::ObjectPtr>* segments);
72 bool GetConfigs(std::string* ncut_file);
83 std::shared_ptr<base::AttributePointCloud<base::PointF>> original_cloud_;
84 std::shared_ptr<base::AttributePointCloud<base::PointD>>
85 original_world_cloud_;
86 std::shared_ptr<base::AttributePointCloud<base::PointF>> roi_cloud_;
87 std::shared_ptr<base::AttributePointCloud<base::PointD>> roi_world_cloud_;
91 std::vector<std::shared_ptr<NCut>> _segmentors;
93 std::unique_ptr<std::vector<ObjectPtr>> _outliers;
94 float grid_radius_ = 100.0f;
95 float height_threshold_ = 2.5f;
96 float partition_cell_size_ = 1.0f;
97 float vehicle_filter_cell_size_ = 1.0f;
98 float pedestrian_filter_cell_size_ = 0.05f;
99 float outlier_length_ = 0.3f;
100 float outlier_width_ = 0.3f;
101 float outlier_height_ = 0.3f;
102 int outlier_min_num_points_ = 10;
103 bool remove_ground_ =
true;
104 bool remove_roi_ =
true;
105 bool do_classification_ =
true;
106 std::string ground_detector_str_;
107 std::string roi_filter_str_;
108 NCutParam ncut_param_;
111 pcl::visualization::PCLVisualizer::Ptr _viewer;
113 char _viewer_id[128];
116 void VisualizeSegments(
const std::vector<base::ObjectPtr>& segments);
117 void VisualizeComponents(
119 const std::vector<std::vector<int>>& component_points);
NCutSegmentation()=default
Definition: ncut_segmentation.h:41
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
Definition: base_roi_filter.h:32
pcl::PointCloud< CPoint >::Ptr CPointCloudPtr
Definition: pcl_util.h:33
Definition: base_lidar_detector.h:34
void ByPassROIService()
Definition: ncut_segmentation.h:53
Definition: base_ground_detector.h:32
bool Detect(const LidarDetectorOptions &options, LidarFrame *frame) override
Definition: thread_worker.h:27
bool Init(const LidarDetectorInitOptions &options=LidarDetectorInitOptions()) override
Definition: lidar_frame.h:33
std::shared_ptr< PointFCloud > PointFCloudPtr
Definition: point_cloud.h:482
Definition: base_lidar_detector.h:28
Definition: base_lidar_detector.h:32
ObjectType
Definition: object_types.h:26
virtual ~NCutSegmentation()=default
std::string Name() const override
Definition: ncut_segmentation.h:51
std::shared_ptr< Object > ObjectPtr
Definition: object.h:123