jbehley / point_labeler

My awesome point cloud labeling tool
MIT License
647 stars 161 forks source link

label my own datesets #75

Closed yuyaoliang closed 10 months ago

yuyaoliang commented 12 months ago

hi, thanks for the labeling tools.I'm using your tools to label my data. here is my labels.xml,I don't understand what instanceable means,i set all instanceable to true but not sure if that's correct. I don't know what's the difference between semantic labels and instance labels, if I want to do semantic segmentation and give different semantic information to each point cloud, is it that I just need to create semantic labels and don't need instance labels Do you have some suggestions?

<config>
<label>
<id>0</id>
<name>unlabeled</name>
<description>all points with no special label.</description>
<color>0 0 0</color>
<root>void</root>
<macro></macro>
<category>unlabeled</category>
</label>

<label>
<id>1</id>
<name>Road</name>
<description>Road</description>
<color>30 144 255</color>
<root>Road</root>
<macro>Road</macro>
<category>Road</category>
<instanceable>true</instanceable>
</label>

<label>
<id>2</id>
<name>Backgrund</name>
<description>Background</description>
<color>255 255 0</color>
<root>Background</root>
<macro>Background</macro>
<category>Background</category>
<instanceable>true</instanceable>
</label>

<label>
<id>3</id>
<name>Obstacle</name>
<description>Obstacle</description>
<color>255 0 0</color>
<root>Obstacle</root>
<macro>Obstacle</macro>
<category>Obstacle</category>
<instanceable>true</instanceable>
</label>

</config>
yuyaoliang commented 12 months ago

I'd like to know if it's only necessary to label each point with semantic labels when training for point cloud semantic segmentation, without labeling instances

jbehley commented 12 months ago

answering your first question: instance-able means that the instance annotation considers the specific class as being an instance. in the way that we annotated it, it first was a process of annotating just the semantics, and then grouping the points into instances. for creating instances, the selection considers all points inside the polygon and determines the majority vote of the instantiable class as an instance.

regarding your second question: for semantic segmentation, you don't have to annotate the instances. (it only changes the part of the 32 bits that is responsible for the instances. So if you use labels[i] & 0xFF you get the semantic class. (and in case you don't assign instances labels[i] == labels[i] & 0xFF as every point that you label has initially instance 0.

yuyaoliang commented 11 months ago

thank you very much, i understand

jbehley commented 10 months ago

seems to be solved. if you have further questions, just open another issue or re-open this issues if you need further assistance.