-
Notifications
You must be signed in to change notification settings - Fork 113
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
A question about point cloud data reading #70
Comments
Hi @r-sy, you are correct. We do put multiple point clouds into a single batch, kind of like the batch operation for images. Here is an example of how we do it: Given two point clouds from frame 1 and frame 2. Frame 1 is a point cloud with two vertices: A, B, let's say we are doing pooling and select B as a key-point. So we have the source set [A, B] and the destination set [B], therefore Frame 2 is another point cloud with three vertices: C, D, E, and we want no downsampling. So the source set is [C, D, E] and the destination set is exactly the same set [C, D, E], Now, we can run GNN separately for each frame just as you said, but we can also batch the frames and go through GNN together. We batch the graphs by increment the vertices ids. A Batch of Frame 1 and Frame 2: the concatenated source set is [A, B, C, D, E] and the concatenate destination set is [B, C, D, E]. The indices that link the source to the destination is now This batching process is done by Line 135 in 48f3d79
This batching operation is just an optimization, if it sounds too much trouble, you can add Hope it helps. |
Thank you for your answer, which is very clear! |
I would like to ask you a question about point cloud data reading:
I tried to see the shape and content of the DataProvider function's read data. I can see that there are 3260 related files containing "car_class", and that each GPU processes batch_size=2 randomly. However, I found that Point-GNN combined the two batch data together after processing. So these are two different scenarios and why are they being calculated together?Shouldn't it be done separately in parallel?It made me wonder if I was wrong.
For example, as shown in the code above, I will read a point cloud bin file with two indexes corresponding to [1545, 1546]. I have done the joint read processing of batch_size = 2 and the separate read processing of batch_size = 1 respectively. Results are as follows:
It can be seen that when batch is 2, the data's vertices and edges of two different scenes are mixed together for calculation
If it is calculated separately and in parallel, could you please explain it to me in the code? This is very important to me. I hope you can help me.
The text was updated successfully, but these errors were encountered: