-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Wrong output from DynamicScatter #1177
Comments
Why does your given |
I think |
Yes, I see. Have you ever tried to add a breakpoint to have a look at the intermediate results when running this function for a complete point cloud? Does it run correctly? Let's see whether this problem is a corner case or not. |
According to my observations, this error only occurs when the number of points is very small. When I take point clouds containing at least 500 points as input, no empty tensor is generated and the algorithm works fine. |
Thanks for your sharing of observations. I guess there might be some problems with corner cases, and I will just keep this issue open for community discussion. We will also further check this part afterward. |
Reproduction
In my perspective, the following script should not generate an empty tensor, because there are clearly two valid points.
I have not analyzed it in depth, but I hope the following script can help you figure it out.
BTW, according to my experience, it seems better to implement dynamic voxelization with
torch.unique
andtorch_scatter
. The output oftorch.unique
withreturn_inverse=True
make it very easy to map voxel features to points by a simple indexing op instead ofmap_voxel_center_to_point
function inDynamicVFE
. The integer canvas inmap_voxel_center_to_point
seems memory-consuming when using very tiny voxels in 3D space. I share my torch_scatter based DynamicVFE in the end, hope it could help.Environment
torch_scatter based VFE, having the same interface with the one in MMDetection3D:
The text was updated successfully, but these errors were encountered: