Streaming point cloud data (for online learning, not datasets) #2906
Unanswered
contactrika
asked this question in
Q&A
Replies: 1 comment
-
A faster way to create batch = torch.arange(num_envs).view(-1, 1).repeat(1, num_points_in_one_cloud).view(-1)
data = Batch(pos=pos.view(-1, 3), batch=batch) In case you do not have any node features, there are multiple options:
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
What is a good way to run methods from torch_geometric library on point clouds that come in dynamically (not on a fixed dataset)?
For example, we get data from a set of N environments in parallel and would like to process them right away (so streaming data comes in small batches, e.g. for online learning). We currently use custom code for taking a flat batch of point cloud observations - a tensor of size [num_envs x num_points_in_one_cloud x 3], then use a simple PointNet implementation to output a feature vector (and then use these lower-dimensional features in our active learning methods).
We would like to use the PointNet++, PCNN, DGCNN implementations from torch_geometric instead, but it seems inefficient to have to construct Data(pos=pts[env_i]) from each point cloud in the tensor into data_list and then aggregate them using Batch.from_data_list(data_list). All our point clouds are the same size. What would be a simple and better way to make data.x, data.pos, data.batch ?
Another question: what should data.x contain for point clouds? Several torch_geometric implementations assume data.x is present, but for point clouds with no additional metadata - should this be just same as data.pos or something else?
Would appreciate suggestions. Thanks!
Beta Was this translation helpful? Give feedback.
All reactions