Comments (6)
Hi,
Thanks for your question. As you may have noticed, we binarized the feature matrix and the matrix term m_ij
means whether point i and point j belong to the same group. So if there are 2048 points, each row will be a 2048 dimensional 0-1 vector. Then the square of the parameter you mentioned is just hamming distance. We set it to 10 so that we only regards two points are in the same group if they differ in less than 100 digits. If the parameter is too large, small parts will be merged in to larger parts. And if it is too small, large parts will break down to smaller ones. We picked this parameter according to the total number of points and the number of points in the smallest part and found 10 works well.
Also, what do you mean by 'densities of the features'?
from rpm-net.
Thank you so much for your response.
By features I meant the rows of the similarity matrix before binarization and by "their densities", I meant how close those features were, like a simple intra/extra cluster variance measure of those features. I get it right now, thank you.
But there is a question that haunts me a little bit. Why binarize the similarity matrix? Why not perform the clustering on the similarity matrix directly which is smoother or even on the point features directly, and tune epsilon differently?
If you don't mind again, I noticed in the folder data/datalist of the repo, that you have many split files splitting the dataset into "multiple parts" objects, "single parts" objects, "non trivial parts" objects, etc. But the results presented in the paper (Tbale 2 page 11), are they the results of the model trained on the entire dataset?
And as for mobilityNet, did you train it on the predictions of RPM-Net and evaluate it on the predictions of RPM-Net or did you train it on the ground truth displacement maps and evaluate it on the outputs of RPM-Net. I was wondering how robust MobilityNet is especially if we were in the second case.
from rpm-net.
Hi, we are glad to hear your questions.
Why binarize? It's a great question!
We also tried to do clustering on the similarity matrix or even on the point features directly but it turns out the result is not as good. We guess this is because first binarizing the matrix will force the points lying between two groups to pick one side so it would be easier for the algorithm to cluster than doing clustering on point features directly.
Indeed, our proposed method is not perfect: We need to do parameter tuning and DBSCAN will fail to cluster some 'outlier points' sometime, for these we just find the nearest grouped neighbor of them and assign the group label to them.
However, our proposed group merging method works much better than the one proposed in SGPN.
If you come up with a more elegant method please let use know :D
For your second question, the results in Table 2 page 11 are trained on "multiple parts" objects.
And lastly, we train MobilityNet on the predictions of the trained RPM-Net and it is quite robust as long as the segmentation goes well.
from rpm-net.
Thank you very much!
I will let you know ; )
In fact, the last weeks I tried to play with your repository but I had some troubles reproducing the results on the multiple parts segmentation. I have a lower Map. I followed the instructions on the github. Are there some additional instructions I need to follow to reproduce the results.
And by the way, how did you sample your pointclouds from the mesh objects. And as for mobilityNet, I was wondering if you rather take as input 5 frames of motions or more.
from rpm-net.
Hi, @steph1793
There is a simple and useful way to improve the performance: set a larger batch_size
. In the released version, we set batch_size
to 4 to ensure the code can be run by most people.
The pointclouds are sampled by surface uniform sampling.
The frames number of RPM-Net and Mobility-Net are the same.
Thanks!
from rpm-net.
Hi,
Thank you very much for your responses.
from rpm-net.
Related Issues (4)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rpm-net.