2D-3D image registration - COMPLETE 6D ESTIMATION
88 views (last 30 days)
Show older comments
Hello everyone,
I am simulating a 2D–3D image registration pipeline for 6D motion estimation (3D translation + rotation) from two 2D X-ray projections, based on the following paper:
[1] Fu & Kuduvalli, “A fast, accurate, and automatic 2D–3D image registration for image-guided cranial radiosurgery,” Med. Phys., 2008.
The pipeline consists of:
- Generating a 3D CT volume with known fiducials
- Applying a known 6D rigid transformation to the CT
- Generating two 2D projections (A and B)
- Performing accurate 2D–2D registration between each X-ray and its corresponding DRR
- Estimating the final 6D transformation using geometric back-projection / analytical decomposition (as described in the paper)
Problem Description
- The 2D image registrations are accurate and stable (x, y, in-plane rotation, and roll are recovered correctly for both projections).
- However, the final 6D estimation shows significant error, especially in:
- Out-of-plane translation
- Out-of-plane rotations
Because the 2D registrations behave as expected, I suspect the issue is in the geometric back-projection / 2D-to-3D decomposition step, rather than in the similarity metric or optimization.
Specifically, I am unsure whether:
- My implementation of the analytical back-projection equations is correct
- The projection geometry (scaling, sign conventions, coordinate frames) is consistent between the two views
- Additional geometric constraints or assumptions are required for observability
What I Am Looking For
I would greatly appreciate any insights or suggestions on:
- Correct implementation of 2D-to-3D geometric back-projection for dual-view registration
- Common pitfalls in coordinate systems, scaling factors, or sign conventions
- Whether a cone-beam vs. parallel-beam assumption materially affects the 6D solution
- Any recommended validation or sanity checks for this type of pipeline
I have attached the MATLAB code below for reference.
Thank you very much for your time and support.
Reference
[1] Fu, D., & Kuduvalli, G. (2008). A fast, accurate, and automatic 2D–3D image registration for image-guided cranial radiosurgery. Medical Physics, 35(5), 2180–2194.
0 Comments
Answers (1)
Matt J
on 18 Dec 2025 at 15:46
Edited: Matt J
on 19 Dec 2025 at 2:27
I haven't read the paper, but I don't see how the proposed method would ever work as you describe it. 6D motion simply does not propagate into 2D projections in a way that 2D-2D registration (step 4) can model, whether cone beam or parallel beam. Additionally, registering the DRR's to each projection independetly ignores the coupled effects of 3D motion on each projection.
Since you say the CT subject contains fiducials, it seems to me like the best approach would be to find the fiducials in the projections and then triangulate their 3D positions stereoscopically. (In fact, I vaguely wonder if that's the true purpose of the 2D-2D registration -- to help you search for the fiducial projections in 2D.)
To do the triangulation, the Computer Vision Toolbox has a command triangulate which may be helpful. Once you've triangulated, the problem reduces to a 3D-3D point registration, which you can do with,
10 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!