Skip to content

segmentation_pointcloud_fusion#

Purpose#

The node segmentation_pointcloud_fusion is a package for filtering pointcloud that are belong to less interesting region which is defined by semantic or instance segmentation by 2D image segmentation model.

Inner-workings / Algorithms#

  • The pointclouds are projected onto the semantic/instance segmentation mask image which is the output from 2D segmentation neural network.
  • The pointclouds are belong to segment such as road, sidewalk, building, vegetation, sky ... are considered as less important points for autonomous driving and could be removed.

segmentation_pointcloud_fusion_image

Inputs / Outputs#

Input#

Name Type Description
input sensor_msgs::msg::PointCloud2 input pointcloud
input/camera_info[0-7] sensor_msgs::msg::CameraInfo camera information to project 3d points onto image planes
input/rois[0-7] sensor_msgs::msg::Image A gray-scale image of semantic segmentation mask, the pixel value is semantic class id
input/image_raw[0-7] sensor_msgs::msg::Image images for visualization

Output#

Name Type Description
output sensor_msgs::msg::PointCloud2 output filtered pointcloud

Parameters#

Core Parameters#

Name Type Description Default Range
filter_semantic_label_target.UNKNOWN boolean If true, UNKNOWN class of semantic will be filtered. 0 N/A
filter_semantic_label_target.BUILDING boolean If true, BUILDING class of semantic will be filtered. 1 N/A
filter_semantic_label_target.WALL boolean If true, WALL class of semantic will be filtered. 1 N/A
filter_semantic_label_target.OBSTACLE boolean If true, OBSTACLE class of semantic will be filtered. 0 N/A
filter_semantic_label_target.TRAFFIC_LIGHT boolean If true, TRAFFIC_LIGHT class of semantic will be filtered. 0 N/A
filter_semantic_label_target.TRAFFIC_SIGN boolean If true, TRAFFIC_SIGN class of semantic will be filtered. 0 N/A
filter_semantic_label_target.PERSON boolean If true, PERSON class of semantic will be filtered. 0 N/A
filter_semantic_label_target.VEHICLE boolean If true, VEHICLE class of semantic will be filtered. 0 N/A
filter_semantic_label_target.BIKE boolean If true, BIKE class of semantic will be filtered. 0 N/A
filter_semantic_label_target.ROAD boolean If true, ROAD class of semantic will be filtered. 1 N/A
filter_semantic_label_target.SIDEWALK boolean If true, SIDEWALK class of semantic will be filtered. 0 N/A
filter_semantic_label_target.ROAD_PAINT boolean If true, ROAD_PAINT class of semantic will be filtered. 0 N/A
filter_semantic_label_target.CURBSTONE boolean If true, CURBSTONE class of semantic will be filtered. 0 N/A
filter_semantic_label_target.CROSSWALK boolean If true, CROSSWALK class of semantic will be filtered. 0 N/A
filter_semantic_label_target.VEGETATION boolean If true, VEGETATION class of semantic will be filtered. 1 N/A
filter_semantic_label_target.SKY boolean If true, SKY class of semantic will be filtered. 0 N/A
filter_distance_threshold float A maximum distance of pointcloud to apply filter [m]. 60 ≥0.0
is_publish_debug_mask boolean If true, debug mask image will be published. 0 N/A

Assumptions / Known limits#

(Optional) Error detection and handling#

(Optional) Performance characterization#

(Optional) Future extensions / Unimplemented parts#