PRBonn / deep-point-map-compression

MIT License
95 stars 28 forks source link

Retaining Labels in the Output Clouds from Decoder #7

Closed xbais closed 1 year ago

xbais commented 2 years ago

Hello @louis-wiesmann . Is there any way to retain the class labels of the points obtained after decompression from the decoder?

Thanks in advance. Aakash

louis-wiesmann commented 1 year ago

Hey, if you mean labels like the ones in SemanticKittti (e.g. Car, Person,Street....) then not without modification. The input are only the point cloud, without attributes. But you could modify the code. Instead of initializing the features with ones; simply use the attributes. In the end you would need to output also features which should correspond to the attributes (for labels one hot encoding might be better) and have a second loss term to optimize for attribute quality.

xbais commented 1 year ago

Hello @louis-wiesmann , can you please direct me to the exact places in the code that will require changes. This will help me a lot!

louis-wiesmann commented 1 year ago

The features of the last decoding are not really used. I used them as a last translation vector here. But this could be your features (e.g. a one hot encoding). For this you would need to set the out_dim to the number of classes you have here. The same you have to do for the input: either return the label as first feature or the onehot encoding (am not a segmentation person, so dont know what would work best...), change the config accordingly. For returning the labels you have to modify something around here. But im currently unaware if the labels are even saved in the submaps, but you will figure out.

You would need to create a third loss to optimize for the features, add here.

xbais commented 1 year ago

Thanks a lot! I will implement the changes and come back to you in a while if I face issues...

Master-cai commented 1 year ago

Thanks a lot! I will implement the changes and come back to you in a while if I face issues...

hi, I am very interested in your idea. Have you implemented it? How does it work?