anthonysimeonov / ndf_robot

Implementation of the method proposed in the paper "Neural Descriptor Fields: SE(3)-Equivariant Object Representations for Manipulation"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Generating dataset on new categories

Steven-xzr opened this issue · comments

Hi there!

NDF works impressively well on mugs, bowls and bottles. So I'm curious about how it will perform on categories with more complex shapes such as airplanes or chairs.

According to your docs, what I need for training an NDF are generated point clouds and ground truth occupancy values. I've successfully produced the point clouds via https://github.com/anthonysimeonov/ndf_robot/blob/master/src/ndf_robot/data_gen/shapenet_pcd_gen.py. However, it seems that the code to produce ground truth occupancy values is not yet available. Is it possible that you could provide the code? Or maybe could you tell me the procedure to produce the occupancy values?

Thanks a lot!!!

Hi,

Could you expand a bit what you mean by the ground truth occupancy value for a mesh? One thing you can do is to directly voxelize the mesh and use the voxels to determine occupancy.

Hi @yilundu ,

Thanks for your timely reply!

So I have checked the file /ndf_robot/data/training_data/occ_shapenet_mug.p that you provided, and I saw for every object, it stores an attribute coord of size (100000, 3) and its corresponding voxel_bool of size (100000, 1) as well. I understand that as long as I have a mesh and a query coordinate, I can acquire the occupancy value of the coordinate via some functions in, say, open3d.

But my question is basically how to sample the query coordinates. As far as I'm concerned, too many query points inside the object mesh, for instance, can lead to too many True occupancy values, and an imbalanced dataset is not what we desire. To be more specific, if I just randomly sample points in the AABB bounding box of the object, will that be okay?

This may not be quite an issue, but I'm a beginner to occupancy value based methods, so it does trouble me a lot.

Yes, you can sample points in the AABB bounding box -- afterwards, you can importance sample the points so that the percentage of occupied and unoccupied points is the same.

Okay, I see. Thanks a lot!