Git Product home page Git Product logo

Comments (4)

mathiasunberath avatar mathiasunberath commented on May 26, 2024

Hi,
the most likely reason why this projector is slower than other implementation is the higher workload since it's projecting multiple materials which also requires increased memory transfer (segmentation masks, etc). I don't know how you are currently using the projector; from your statement I assume you try to use generate single images at a time. The intended use (and this is also how we benchmarked in the paper) is to generate large datasets in a single query so that memory transfer only happens once. In this case, the performance per image should be much better.
In addition to the above, the code can be adapted for online generation of images and we are working on this, unfortunately, it is not yet in a commit-able state.
Maybe Nico has some more ideas.

from deepdrr.

jannicozaech avatar jannicozaech commented on May 26, 2024

Hi,
as stated by Mathias, the memory transfer is time consuming and therefore all projections from one volume should be generated in a single query. Besides this, the projector needs to perform interpolation of the density and segmentation masks for multiple materials, which results in a higher runtime compared to a classical DRR projector.
Do you measure 6.5 seconds only for the forward projection or for the complete pipeline?

from deepdrr.

pengchengu avatar pengchengu commented on May 26, 2024

Hi Mathis and Nico,
Thanks for the reply, the measurement of 6.5 seconds is for the forward projection to generate single images at a time. The projector in the codes is modified from CONRAD and I'm not familiar with CONRAD. I'm wondering why you chose CONRAD instead of some common frameworks like ITK and plastimatch, does CONRAD have some extra functions that ITK is lack of?

from deepdrr.

mathiasunberath avatar mathiasunberath commented on May 26, 2024

Hi,
as pointed out above the code is not currently optimized for online generation of small image batches and we have someone working on providing alternatives for this way of using it soon. We have used CONRAD extensively previously so it was an easy choice for us. You could of course incorporate other frameworks' implementations of the projection operation if you feat that this is the bottleneck; it's just a cuda kernel and related memory transform really.
I will be closing this issue for now but feel free to re-open if more questions or concerns regarding this issue arise.

from deepdrr.

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.