antao97 / unsupervisedpointcloudreconstruction Goto Github PK
View Code? Open in Web Editor NEWExperiments on unsupervised point cloud reconstruction.
License: MIT License
Experiments on unsupervised point cloud reconstruction.
License: MIT License
I'm trying to reconstruct 16384 points. Right now the points are looking very "artificial", clear lines of points almost like scan lines. Any suggestions on what parameters to update?
Hi,
thanks for this great repo. I was wondering with which method you calculated the average CD score reported in the README.md file (I could not find a function to do so). When I was calculating the CD score for one of your pretrained models (Original, 16, Sphere), I do get a much higher CD score (~21).
Thanks,
Linh
I've found that using torch.bmm leads to inaccurate computations of the pairwise distances, sometimes resulting in negative chamfer distances. My solution has been to change lines 23-32 in loss.py to:
xx = x.pow(2).sum(dim=-1)
yy = y.pow(2).sum(dim=-1)
zz = torch.bmm(x, y.transpose(2, 1))
rx = xx.unsqueeze(1).expand_as(zz.transpose(2, 1))
ry = yy.unsqueeze(1).expand_as(zz)
I didn't see much difference in speed. The performance was slightly more stable due to no negative chamfer distances in P. The final performance was unchanged.
Another solution is to calculate the loss in doubles, but that's memory intensive and inefficient.
What is the reason for the oddly placed transposes and only applying a single non-linearity?
As far as i understand Conv1d with a kernel size of 1 is equivalent of appplying a linear layer on the transposed data (pytorch behavior aside). So why not just apply either two linear layers and transpose or transpose and then two convolutional layers?
Additionally, i'd like to ask for the reason for applying only a non-linearity to the output of what i presume is the first graph layer? While the second does not have any applied? And also what is the motivation for not applying them after the linear layers and only after the convolutional one?
Hi,
Very impressed to see this work and the results.
I was wondeing whether the sphere.npy strcture can be changed when using point clouds of size more than 2048.
How to recreate the spere.npy for a point cloud of size 5000,3.
Eagerly awaiting for your response.
Hi all,
I have a rosbag file from which I have extracted pointclouds as pcd files, how can I create a dataset of my own?
Hi,
Thanks for releasing the code! I am very interested in your implementation of FoldingNet!
https://github.com/AnTao97/UnsupervisedPointCloudReconstruction/blob/6c8b56c2d9eaceb2eb5ec7cf27e71c48014558cd/model.py#L49
In this line, why the local covariance is computed by using the positions of top 2 out of top k neighbors?
The original implementation of FoldingNet uses numpy.cov() to compute the local covariance matrix for k points.
I guess the local covariance computed by these two methods are not equal?
hi thanks for giving the source code, I am very interested in the project ,but i found some problem in reimplement. After the training for 300 epochs I test the reconstruction performance , the base condition are k=16 shape=plane encoder=foldnet,batch_size=4, dataset=shapenetcorev2, but the cd loss is 36, too high ... And i download the pretrained model in same condition the loss is 16, It is quite different from the data in the paper. I want to ask you for some details , maybe i forgot something... thanks for reading
I want to ensure that the data I generate follows the same distribution as yours.
Did you do it this way?
import numpy as np
np.save("gaussian.npy", np.random.randn(points_num).reshape(points_num // 3, 3))
Thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.