Multi Level Semantic Segmentation


I have a question regarding the current format of the semantic segmentation data. Right now, each point in the data is represented by a single ID in a 1-dimensional array. However, I’ve noticed that some points can belong to multiple classes. For example, let’s say we have a car and a wheel. The points that make up the wheel are also part of the car, so they should have two IDs: one for the car and one for the wheel.

Is there a way to update the generated data from the annotator to include all the IDs associated with each point?

Thanks for your help.

Best regards,


Hi @toninsemaan , in the case you describe above, the wheel will have a different semantic id than the car body. The id is assigned by the semantic label of a prim itself, combining all its parents’ semantic labels.

To expand the case you described, if you you have the following structure.

("class": "car")
    | ----- ("class": "wheel")
    |------ ("class": "seat")

You will have a semantic id of [0, 1, 2] and a id to labels array that maps from semantic ids to semantic labels.
{0: [("class", "car")], 1: [("class", "car, wheel")], 2: [("class", "car, seat")]}
If you want a prim to have a list of semantic ids (based on itself’s semantic label and parents’ semantic labels), you can do it in the post-processing step.