Comments (4)
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.
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.
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.
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)
- [Question]About parallel beam and cone beam HOT 1
- mapping 3D points to 2D points
- mapping 2Dpoint to 3Dpoint HOT 3
- Projection Matrix HOT 1
- FLIP AXIS HOT 5
- How to implement STL to DCM transformation in deepdrr HOT 1
- How to set up a simulation of an orthogonal projection? HOT 1
- Isocenter / origin question HOT 1
- Given extrinsic matrix and intrinsic matrix HOT 10
- Zooming out on the DRR HOT 1
- Error when trying out the main branch HOT 7
- Insert new material HOT 1
- About DRR Image HOT 7
- gpu utilization and performances HOT 5
- DRR is white. HOT 7
- cuMemcpyHtoD failed! HOT 6
- Error when compiling kernel (using the example python script) HOT 3
- Dead link to test data (used in Jupyter notebook)
- DEEPDRR Achieve gradient projection HOT 1
- Unexpected DRR orientation HOT 7
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 deepdrr.