core.occusion_handing.pc_combination

Classes

PcCombination

PcCombination()

Attributes

lidar_position instance-attribute
lidar_position = np.asarray(config.lidar_config.lidar_position)
utils_label instance-attribute
utils_label = UtilsLabel()

Functions

check_inclusion_mask_by_mesh
check_inclusion_mask_by_mesh(pcd_bg: o3d.geometry.PointCloud, mesh: o3d.geometry.TriangleMesh) -> numpy.ndarray

获取包含在该空间mesh中的点云mask——True 被包含; False 不被包含

Parameters:
  • pcd_bg (PointCloud) –

    背景点云

  • mesh (TriangleMesh) –

    空间mesh

Returns:
  • ndarray

    mask

get_lidar_shadow_by_mesh
get_lidar_shadow_by_mesh(mesh_obj: o3d.geometry.TriangleMesh) -> o3d.geometry.TriangleMesh

获取被插入物体mesh遮挡的空间mesh

Parameters:
  • mesh_obj (TriangleMesh) –

    插入物体mesh

Returns:
  • TriangleMesh

    被插入物体mesh遮挡的空间mesh(包括插入物体本身)

get_obscured_points_idx
get_obscured_points_idx(mesh_obj: o3d.geometry.TriangleMesh, pc_bg: numpy.ndarray) -> numpy.ndarray

获取被遮挡的点云索引

Parameters:
  • mesh_obj (TriangleMesh) –

    插入物体mesh

  • pc_bg (ndarray) –

    背景点云

Returns:
  • ndarray

    被遮挡的点云索引

pc_combination_with_objs
pc_combination_with_objs(pc_bg: numpy.ndarray, pcd_objs: List[o3d.geometry.PointCloud], mesh_objs: List[o3d.geometry.TriangleMesh], labels_2: List[List[str]]) -> Tuple[numpy.ndarray, List[List[str]]]

将背景点云与物体点云组合

Parameters:
  • pc_bg (ndarray) –

    背景点云

  • pcd_objs (List[PointCloud]) –

    物体点云

  • mesh_objs (List[TriangleMesh]) –

    物体mesh

  • labels_2 (List[List[str]]) –

    标签

Returns:
  • Tuple[ndarray, List[List[str]]]

    组合点云,更新后的标签

pc_combination_with_one_obj
pc_combination_with_one_obj(total_delete_mask: numpy.ndarray, delete_mask: numpy.ndarray, pc_bg: numpy.ndarray, pcd_obj: o3d.geometry.TriangleMesh) -> Tuple[List[int], numpy.ndarray, numpy.ndarray]

将背景点云与一个物体点云组合

Parameters:
  • total_delete_mask (ndarray) –

    mask汇总

  • delete_mask (ndarray) –

    当前物体的mask

  • pc_bg (ndarray) –

    背景点云

  • pcd_obj (TriangleMesh) –

    插入物体点云

Returns:
  • Tuple[List[int], ndarray, ndarray]