GithubHelp home page GithubHelp logo

The efficiency of KNN about randla-net HOT 6 OPEN

qingyonghu avatar qingyonghu commented on August 15, 2024
The efficiency of KNN

from randla-net.

Comments (6)

Yang7879 avatar Yang7879 commented on August 15, 2024 1

Hi @last-one , to compute KNN, we use existing methods of NanoFLANN which relies on KD-trees and is therefore quite fast. To infer the semantics of a large-scale pc in the SemanticKITTI dataset, we sample 10^5 points as a set and then feed as many sets as possible into the GPU to parallelly process. This allows our RandLA-Net to achieve 23 frames/s on average. The code will be released soon.

For the implementation of KNN, you may refer: https://github.com/aboulch/ConvPoint

from randla-net.

tchaton avatar tchaton commented on August 15, 2024 1

@Yang7879, have a look at https://github.com/nicolas-chaulet/deeppointcloud-benchmarks

from randla-net.

Yang7879 avatar Yang7879 commented on August 15, 2024

Hi @Ghostish, thanks for your interest in our paper. Actually we use 10^5 pts in our experiments (clarified in #1 and will be updated in the next version).

We do not pre-compute the KNN. Instead, it's calculated within the neural network and the reported time in the paper (Sec 4.2) includes all operations such as neural processing, KNN and sampling of our framework. Indeed, KNN is also expensive and it can take nearly half of the total time. We believe this could be the future work to further improve the overall efficiency.

from randla-net.

last-one avatar last-one commented on August 15, 2024

Hi @Yang7879 , thanks for your great idea. But I also have the same question about KNN.

In Sec 4.2, the paper said the RandLA-Net takes the shortest time (translating to 23 frames per second) to infer the semantic labels for each large-scale point cloud (up to 10^6 points). Could you share the idea on computing the KNN. I don't find a way to compute the KNN of 10^6 points in 23 frames / s. Or do you compute the KNN of each frame in parallel? Could you share the inference time of each frame?

And looking forward to open source.

from randla-net.

last-one avatar last-one commented on August 15, 2024

@Yang7879 Thanks for your reply. Could share the inference time of a single frame? Because in most cases, the time of parallel computing does not have much reference value.

from randla-net.

Yang7879 avatar Yang7879 commented on August 15, 2024

@last-one There are many ways to evaluate the efficiency of different approaches. In our paper, for the fairest comparison that can be done, we obtain the total computation time for each approach, by treating it as a black box with the same validation set as the input and with the full utilization of the same hardware. Therefore, the averaged 23 frames per second is a rough but reasonable indication for our efficient RandLA-Net.

As to a strict frame rate you are eager to know, we are unfortunately unable to provide. It is non-trivial to conduct a strict experiment for all approaches, as it involves critical engineering tricks. For example, to what extent to parallelly process the point cloud? should we use single-float or double-float at inference? just to name a few.

If you need a strict time for your engineering work, you are encouraged to run experiments according to your specific hardware and software environments.

from randla-net.

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.