v0.3.3
Prioritize differentiable rendering
Final API change for DiffDRR
DRR
objects now act purely as a differentiable renderer. That means DRR
objects take in rotations
and translations
parameters to specify (batched) camera poses, and render X-rays from those poses.
The pose parameters are not stored as nn.Parameters
of the module. This introduced too many annoyances with the DRR
module, such as gradients not flowing backwards past the pose parameters, or only being able to render a specific batch size.
2D-to-3D registration is still possible with DiffDRR
. This is done by creating a lightweight wrapper module that stores rotations
and translations
as nn.Parameters
, and calls a DRR
object in its forward call. An example is available in the updated documentation.
Small changes:
- DRR generation can now be performed patch-wise (i.e., generate a 600^2 DRR as four 300^2 in series). This means
DiffDRR
can generate insanely large DRRs since computation memory is no longer a constraint. See an example in the updated timing notebook.
What's Changed
- Differentiable rendering and large DRRs by @eigenvivek in #139
Full Changelog: v0.3.2...v0.3.3