Skip to content
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

Inputs into PolarNet #12

Open
polars05 opened this issue May 18, 2020 · 6 comments
Open

Inputs into PolarNet #12

polars05 opened this issue May 18, 2020 · 6 comments

Comments

@polars05
Copy link

polars05 commented May 18, 2020

PolarNet seems to take in a 9-dimensional feature vector as an input; could you clarify what these 9 features are?

Based on spherical_dataset in ./dataloader/dataset.py, my guesses are --

  • return_xyz: (3 features) [**not too sure what this is**]
  • xyz_pol: (3 features) original x, y and z coordinates converted to radius, angle and z, size [num_points, grid_size_r, grid_size_theta, grid_size_z]
  • xy: (2 features) original x and y coordinates, size [num_points, 3]
  • sig: (1 feature) reflectance, size [num_points, 1]

Are my guesses correct / wrong? Thanks!

@edwardzhou130
Copy link
Owner

return_xyz is the residual distances of points from the center of the assigned grid.

@polars05
Copy link
Author

Thanks for your clarifications, @edwardzhou130! Why do you choose to input so many variations of spatial representation (return_xyz, xyz_pol, xy) instead of just, for example, xyz_pol and reflectance?

@YangZhang4065
Copy link
Collaborator

Hi @polars05 ,

Thanks for asking and very insightful questions. return_xyz (not even reflectance) is all you need if you only need to set up a decent baseline. We found additional seemingly-redundant xyz improve 0.5% mIoU (c.f. 9F in Table 5 in our paper). This trick is also used in SqueezeSeg papers and we are inspired by them.

Also, you can replace sig with your customized features (RGB + reflectance/ RBG only/ nothing at all).

@polars05
Copy link
Author

Hi @YangZhang4065, it was a very interesting paper, and hence my curiosity / questions 😄

To clarify that my understanding of return_xyz ("residual distances of points from the center of the assigned grid" as mentioned by @edwardzhou130) is correct, is this what it means?:
return_xyz

Is so, why not convert the points and grid to polar coordinates first, and then use the residual distances in the polar space instead?

@edwardzhou130
Copy link
Owner

@polars05, sorry for the confusion caused by the name. I used the same name return_xyz in both voxel_dataset and spherical_dataset class, despite return_xyz in spherical_dataset is actually the distance in the polar space.

# center data on each voxel for PTnet
voxel_centers = (grid_ind.astype(np.float32) + 0.5)*intervals + min_bound
return_xyz = xyz_pol - voxel_centers
return_xyz = np.concatenate((return_xyz,xyz_pol,xyz[:,:2]),axis = 1)
if len(data) == 2:
return_fea = return_xyz
elif len(data) == 3:
return_fea = np.concatenate((return_xyz,sig[...,np.newaxis]),axis = 1)

@polars05
Copy link
Author

Thanks for clarifying my confusion! And residual distances refer to the l1, l2, l3, etc. in my above diagram?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants