Comments (4)
Hi @vvaibhav08,
Thank for your interest in KPConv. I am happy to see that it performs well on your tasks.
Let's elaborate a bit more. At test time, I want the network to test every part of the scene in a regular manner. If I took, random point in the scene, high density areas would be picked more and thus tested more times, which is a waste of time.
The solution I chose, is to assign a value at each point of the dataset that I call potential. Every time the network tests a sphere, I increment the potential value in this sphere so that we know this area has already been tested. The next spheres are chosen where the potential is the lowest, so that every part of the dataset will be picked approximately the same amount of time. Furthermore, the potential are incremented with Gaussian-like function (high in the center, and decreasing with distance), which means that the next time the network will have to test a sphere in the same area, it will not be chosen with the same center. This helps the diversity of test spheres. A given point will be tested by different spheres.
Eventually the result probabilities at a given point are computed as the average of the probabilities that this point got from different spheres. This is a voting scheme that helps the results.
In my own experiments, you can see a difference between 1 vote and 20 votes, but between 20 and 100, it will likely be the same results. The more votes you add, the less random are the results.
I hope I was clear enough.
Best,
Hugues
from kpconv.
HI @amiltonwong,
You did not get the model training again, this is a log of the testing script.
The epochs are just fake so just ignore them. You can see the min potential, which indicates that every location of the dataset has been tested by at least 100 different input test spheres. The final result for a point is the average prediction over all test spheres.
If you go into the folder named /data/code11/KPConv/test/Log_pretrained_NPM3D
, you should find test predictions in ply format.
Best,
Hugues
from kpconv.
Hi @HuguesTHOMAS ,
First of all, I would like to thank you for sharing this amazing work. So far I've tested KPConv on several datasets with different kinds of features (RGB/intensity) and it performs astonishingly well on all.
I was wondering about the optimum value for the number of votes while testing. How much of a difference do you think testing with high num_votes (say 100) and thus high minimum potential will there be compared to low num_votes (say 20) and thus low minimum potential? It would be great if you could elaborate on your above-mentioned point. Qualitatively I did not notice big differences. Even the clouds saved for the first time produce really good results.
Best,
Vaibhav
from kpconv.
Hi @vvaibhav08,
Thank for your interest in KPConv. I am happy to see that it performs well on your tasks.
Let's elaborate a bit more. At test time, I want the network to test every part of the scene in a regular manner. If I took, random point in the scene, high density areas would be picked more and thus tested more times, which is a waste of time.
The solution I chose, is to assign a value at each point of the dataset that I call potential. Every time the network tests a sphere, I increment the potential value in this sphere so that we know this area has already been tested. The next spheres are chosen where the potential is the lowest, so that every part of the dataset will be picked approximately the same amount of time. Furthermore, the potential are incremented with Gaussian-like function (high in the center, and decreasing with distance), which means that the next time the network will have to test a sphere in the same area, it will not be chosen with the same center. This helps the diversity of test spheres. A given point will be tested by different spheres.
Eventually the result probabilities at a given point are computed as the average of the probabilities that this point got from different spheres. This is a voting scheme that helps the results.
In my own experiments, you can see a difference between 1 vote and 20 votes, but between 20 and 100, it will likely be the same results. The more votes you add, the less random are the results.
I hope I was clear enough.
Best,
Hugues
Yes, this helps a lot. Thanks
from kpconv.
Related Issues (20)
- about test results
- about making my own datasets
- ModelNet40 implementation - (\x00\x00\x00\x00\x00)
- about segmentation fault (core demped) HOT 2
- about the training time
- Designing a cylindrical neighborhood. HOT 2
- Do you have the pretrained model for the Semantic3D dataset? HOT 2
- Thesis not available anymore
- GAN for point cloud
- More features in KPCONV HOT 1
- IndexError:too many indices for array
- Why are there no oa and macc in the test results for S3DIS
- Not compiling
- Why S3DIS is only tested on validation set? HOT 1
- visualize in SemanticKITTI dataset HOT 1
- Problem with Compile the C++ extension modules HOT 2
- Transfer Learning
- Why switching y-z in ShapeNetPart dataset preprocessing
- How to train only with XYZ.
- Does this model support inference on CPU? HOT 1
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 kpconv.