A linac CBCT usually takes hundreds of projections over a half rotation, and the vendor reconstructs them with FDK. Cut the projection count to save dose or time and FDK falls apart into streaks. Most deep learning fixes for sparse-view CBCT are trained for one fixed view count, tested on idealized geometry, and never shown on real scanner data. In arXiv:2610.37740, Jiening Zhu, Chengzhu Zhang, Jason Fan, LiCheng Kuo, Weixing Cai, Xiuxiu He, Laura Cervino, Jean Moran, Xiang Li, Tianfang Li and Yabo Fu from the Department of Medical Physics at Memorial Sloan Kettering Cancer Center describe EUReCA, one feed-forward network that takes anywhere from 8 to 100 projections on a clinical Varian Halcyon geometry and returns a 3D volume in about a second.
The code and the trained weights are both public, which is rare for reconstruction work and is the main reason I picked this paper.
What the method does
EUReCA reads the raw projections and their gantry angles, not a reconstructed image. The pipeline has four parts.
- Encode each projection. A shared 2D backbone (ConvNeXt V2 Nano, pretrained on ImageNet) turns every projection into features at three scales.
- Back-project the features along the real rays. Each voxel is projected into each view with the exact cone-beam geometry, so a view only contributes along the ray that physically passes through that voxel.
- Pool by angle. The gantry circle is split into 36 sectors. Views inside a sector are merged into one feature per voxel, and empty sectors are marked as unobserved. This fixed-length sequence is what lets one set of weights accept 8 views or 100.
- Fuse with plain FDK and decode. An ordinary FDK reconstruction of the same projections (about 0.1 s, no learned parameters) is encoded and mixed in at every decoder scale through voxel-wise gates. The gates look at how many views and how much angular spread cover each voxel, so the model leans on FDK where the data support it. A 3D transformer handles global context and a decoder restores detail.
Training used 12,255 CT volumes (filtered down from 21,231) from seven public datasets, including LUNA16, AMOS22, TotalSegmentator and AbdomenAtlas, plus an internal prostate cohort. The projections are simulated from those CTs on the Halcyon HyperSight geometry: a 211 degree half-scan arc that can start anywhere on the circle, with random view counts, small patient pose shifts and collimator blade masking. The same recipe, trained once per trajectory, also covers two orthogonal views, four fixed gantry angles and 90 or 120 degree short arcs.
What comes out of it
The output is a 256 x 256 x 128 volume at 2 mm isotropic voxels, a 512 x 512 x 256 mm field, with intensities in [0, 1] that map to -1000 to 1000 HU. The repository writes it as NIfTI. Input is a stack of line-integral projections resampled to the Halcyon detector grid plus the gantry angles, and the repo includes readers for Halcyon XIM files and for vendor-corrected iTools exports.
The featured image shows what this means on a chest case at 10 projections. FDK shows mostly streaks. NAF, a per-scan neural field fit, removes the streaks but smooths away the soft tissue. EUReCA brings back the body wall, the mediastinum and the pulmonary vessels, close to the CT the projections were simulated from.
For a radiotherapy software team or a viewer company working with oncology clinics, I see three uses: a fast first volume during patient setup when only a short or sparse acquisition is possible, repeated low-projection imaging during treatment for motion checks, and an initial volume for a slower iterative reconstruction. The authors suggest the last two themselves but did not test them. If your product shows CBCT next to the planning CT, the 2 mm NIfTI output still needs DICOM conversion, a frame of reference and registration before it can sit in a viewer. Our post on cleaning on-board radiotherapy CBCT into CT-like slices covers what you can do after reconstruction.
Results that matter
Speed is the clearest result. At 10 views EUReCA reconstructs a volume in 0.32 s end to end on one GPU, against 6.5 minutes for NAF on the same scans, and it stays near a second at 100 views.
The real-data test is the one I would trust. The authors took measured projections from 15 patients scanned on a Halcyon HyperSight (head and neck, esophagus and pelvic sites), gave each method 10 to 100 of them, and compared against the vendor’s clinical reconstruction from all 335 to 407 projections. EUReCA scored best at every view count, but the lead shrank a lot compared with simulated data: at 10 views it was 0.56 dB PSNR ahead of the next feed-forward model, ILV. The model was trained only on simulated projections, and the per-scan optimizers, which fit each real scan directly, close most of the gap.
Two other findings are useful if you plan acquisitions. Angular coverage counted more than view count: four views spread over 135 degrees beat 15 views squeezed into a 90 degree arc. And removing the FDK branch hurt more as views increased, so the plain analytic reconstruction still carries real information inside the network.
Where it falls short
- Trained on simulated projections. All training data are DRRs rendered from CT. Real scatter, noise and detector effects only appear at test time, which is why the margins shrink on patient data.
- One machine, one site. The weights are tuned to the Halcyon geometry, and the real-scan test is 15 patients from one institution. The authors call for evaluation across institutions, machines and protocols. Other geometries need resampling to the same detector grid and may degrade.
- HU accuracy is not verified. The FDK input is normalized, so the authors say quantitative Hounsfield unit accuracy remains unverified. Do not use the output for dose calculation without your own validation.
- Low-dose noise is untested. The study covers angular undersampling only, and noise at reduced exposure per projection was never varied.
- No uncertainty map. A learned prior can draw plausible structure the measurements do not support, and there is no flag yet for weakly supported regions.
- Coarse grid and one model per trajectory. 2 mm voxels at 256 x 256 x 128 is enough for setup and motion, not for fine detail. Each trajectory has its own weights, and at a fixed dense protocol a specialist trained for that count does slightly better.
Code, weights and licence
The code is public at github.com/Jiening666/EUReCA under Apache-2.0, including training scripts, the CUDA DRR renderer, the Halcyon real-data pipeline and a demo on a LUNA16 chest case. Five trained models (main 8 to 100 views, four-view, two orthogonal views, 90 and 120 degree arcs, 210 M parameters each) are on Hugging Face under CC BY-NC 4.0, because the encoder is fine-tuned from Meta’s ConvNeXt V2, which is itself non-commercial. The README says inference fits in 16 GB of GPU memory at 100 views. No patient data are distributed; the internal prostate cohort is available on request. The preprint is under CC BY 4.0, and the work was supported in part by the US National Cancer Institute. The model card states it is not a medical device and not for clinical decision-making.
For a different approach to the same sparse-view problem in dentistry, see our post on AD-GS for sharper dental CBCT from fewer projections.
My take
This is the most complete open release for sparse-view linac CBCT I have seen: code, weights for five trajectories, a real-data reader and a demo that runs in minutes. The non-commercial weights mean a product team would have to retrain with a commercially licensed encoder before shipping, and the Apache code makes that possible. For a radiotherapy physics group with Halcyon data, the next step is to run the demo, then reconstruct a few of your own setup scans at 20 to 50 views and compare them with the vendor volume before trusting anything beyond setup alignment.