Pointcloud generation and Instance segmentation

Hello,

I am generating synthetic pointcloud using the replicator.

Each point is given an instance ID.

To get the mapping between the instance ID given to points and the class to which the point pertains, I am using the instance_segmentation_semantics_mapping.json file.

However, I realized that the IDs given to points and the IDs in the json file do not match. For example, I have a scene with numerous instances (around 700). For a specific viewport, I got the following IDs in the instance_segmentation_semantics_mapping.json file:

{“0”: {“class”: “BACKGROUND”}, “1”: {“class”: “UNLABELLED”}, “508”: {“class”: “wheelie_bin”}, “510”: {“class”: “wheelie_bin”}, “509”: {“class”: “wheelie_bin”}, “514”: {“class”: “wheelie_bin”}, “511”: {“class”: “wheelie_bin”}, “512”: {“class”: “wheelie_bin”}, “513”: {“class”: “wheelie_bin”}, “705”: {“class”: “stillage_close”}, “718”: {“class”: “stillage_close”}, … “stillage_close”}, “773”: {“class”: “jack”}, “554”: {“class”: “stillage_open”}, “551”: {“class”: “stillage_open”}, “548”: {“class”: “stillage_open”}, “549”: {“class”: “stillage_open”}, “547”: {“class”: “stillage_open”}, “553”: {“class”: “stillage_open”}, “550”: {“class”: “stillage_open”}, “552”: {“class”: “stillage_open”}, “876”: {“class”: “locker”}, “886”: {“class”: “locker”}, “884”: {“class”: “locker”}, “887”: {“class”: “locker”}, “888”: {“class”: “locker”}, …}

however, the ids instance IDs given to points are incremental from 0 to 255. Thus, the mapping is incorrect as most IDs in the json file are not found in the pointcloud_instance.npy file.

How to solve the issue?

I need the pointcloud_instance.npy to the have the exact match as found the json file, to be able to extract the different instances pertaining to each class.

I realized that the data that is outputted from the pointcloud annotator regarding the instance segmentation of points is np,int8. Thus, each scene can accommodate a maximum of 256 instances. In my case, I have much bigger scenes resulting in many instances being assigned to same instance id.

Hi @toninsemaan , did you cast the output per-point instance id to some other dtype? The default type should be np.uint32, which should support id up to 4,294,967,295

Hello @jiehanw ,

No, I am not casting it to any other dtype. I am currently using Isaac Sim 2023.1.0.

The default type became np.uint32 in the Isaac Sim 2023.1.1?

Best,

Anthony