edwardzhou130 / PolarSeg

Implementation for PolarNet: An Improved Grid Representation for Online LiDAR Point Clouds Semantic Segmentation (CVPR 2020)
BSD 3-Clause "New" or "Revised" License
369 stars 80 forks source link

Why calculate IoU from voxel label? #37

Closed jialeli1 closed 3 years ago

jialeli1 commented 3 years ago

Hi.

I a new to point cloud segmentation. There are problems that have been bothering me a lot.

1). Why does PolarNet (here) calculate IoU from voxel-wise label instead of point-wise label? Even PolarNet directly saves the voxel label to the file for submission (here).

2.) As I learned from semantic-kitti-api, predictions about each point of the scan are required when submitted to the benchmark. Is my understanding correct? Or is it not necessary to predict the label of every point?

Thank you for answering me. It really bothers me very much.

edwardzhou130 commented 3 years ago

1). Why does PolarNet (here) calculate IoU from voxel-wise label instead of point-wise label? Even PolarNet directly saves the voxel label to the file for submission (here).

In the validation and testing, we will project the voxel-wise label to the point-wise label (here). predict_labels is the predicted voxel-wise label, val_grid is the voxel location of each point. And there are two reasons why we use the voxel-wise label in the training: 1. it will be faster to train. 2. our experiment showed the result won't be improved if we use the point-wise label.

2.) As I learned from semantic-kitti-api, predictions about each point of the scan are required when submitted to the benchmark. Is my understanding correct? Or is it not necessary to predict the label of every point?

Yes. The submission file needs to be the label of every point. And the label needs to be in the original dataset format(here)

jialeli1 commented 3 years ago

Thank you for your kind reply.

I mistakenly thought that it was mapping val_pt_labs to voxel. I feel much clearer.