Coder Social home page Coder Social logo

Comments (4)

HuguesTHOMAS avatar HuguesTHOMAS commented on July 17, 2024 2

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.

HuguesTHOMAS avatar HuguesTHOMAS commented on July 17, 2024 1

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.

vvaibhav08 avatar vvaibhav08 commented on July 17, 2024

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.

vvaibhav08 avatar vvaibhav08 commented on July 17, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.