dvlab-research / VoxelNeXt

VoxelNeXt: Fully Sparse VoxelNet for 3D Object Detection and Tracking (CVPR 2023)
https://arxiv.org/abs/2303.11301
Apache License 2.0
735 stars 64 forks source link

Question on NMS configs in the POST_PROCESSING #33

Closed Galaxy-ZRX closed 1 year ago

Galaxy-ZRX commented 1 year ago

Hi,

Thank you for the impressive work! I noticed that you mentioned in your paper that VoxelNext doesn't require NMS process, but I still found the NMS settings in the POST_PROCESSING part of the configs. May I ask what is the purpose of this setting or if I misunderstand it?

Many thanks, Ruixiao

Galaxy-ZRX commented 1 year ago

Hi,

After checking the code details, it seems that you rewrote the post-processing function in the detector file, and the nms process is removed, which means that the NMS settings in the configs are actually never used. Hope that you can confirm if I understand this correctly or not and close the question, thank you! :)

yukang2017 commented 1 year ago

Hi,

Thanks for your interest in our work.

NMS can be replace by sparse max pooling. You can refer to this config, where NMS is never used.

https://github.com/dvlab-research/VoxelNeXt/blob/master/tools/cfgs/nuscenes_models/cbgs_voxel0075_voxelnext_maxpool.yaml

NMS in our work is optional. I provide the version with it in here and the version without it above.

Regards, Yukang Chen

csinsgcc commented 1 year ago

Hi,

I compared the two configs you provided, but the difference between them is DENSE_HEAD name and SIZE_EACH_HEAD. The NMS_CONFIG part was used in both configs and they are exactly the same. So, as Ruixiao said, the function was rewritten, so NMS_CONFIG part in maxpool.yaml are actually never used?

But I don't understand which part of the function was rewritten?

Thank you!

yukang2017 commented 1 year ago

Hi,

Yes. NMS_CONFIG in the maxpool.yaml is actually never used.

The max pooling function is written here.

Regards, Yukang Chen

Galaxy-ZRX commented 1 year ago

Hi Yukang,

Thank you for your reply and explanation! I quickly checked the related head files and found that they are quite different. As you said, the maxpool-version head didn't use the NMS parameters while the VoxelNeXtHead uses them and their forward functions are quite different. I should focus more on the maxpool version which is the main design of your VoxelNext as I understand. Thank you for your reply again!

yukang2017 commented 1 year ago

Great.

csinsgcc commented 1 year ago

Thank you very much for your reply! I also understand.