--- license: apache-2.0 tags: - medical-imaging - ct - cbct - synthetic-ct - image-synthesis - nnunet - regression - torchscript language: [] --- # SimCBCT Generator — Synthetic CT, Pelvis A 3D regression model that generates synthetic CT (sCT) images from Cone-Beam CT (CBCT) scans of the PELVIS region. Part of the [SimCBCTGenerator](https://github.com/openvoxelmed/simcbctgenerator) framework, which was used to generate the training data for this model (aligned input/output pairs by simulating CBCT data). The model is trained with an nnUNet regression pipeline (`nnUNetTrainerRegression_mae_deep`, 3D full-resolution). ## Intended Use Convert acquired CBCT images to synthetic CT for pelvis anatomy. Typical applications include adaptive radiotherapy, where sCT is needed for dose recalculation or replanning directly from CBCT without a new planning CT acquisition. It was extensively tested for Elekta machines but initial inspection also results in good performance for Varian datasets! ## Model Files | File | Description | |---|---| | `checkpoints/model.pt` | TorchScript compiled model (~390 MB) | | `checkpoints/metadata.json` | Patch size, normalization stats, inference config | | `sct_generator.py` | Self-contained inference class — no nnUNet install required | The `model.pt` is a **TorchScript** module exported with `torch.jit.save()` and must be loaded with `torch.jit.load()`. ## Requirements ``` torch scipy numpy ``` ## Quick Start ```python import numpy as np from sct_generator import StandaloneRegressionInference # Load model (pass the directory containing model.pt and metadata.json) model = StandaloneRegressionInference( model_path="checkpoints/", device="cuda" # or "cpu" ) # cbct_volume: 3D numpy array of HU values, shape (D, H, W) cbct_volume = np.load("your_cbct_volume.npy") # Run inference — returns sCT volume in HU, same spatial shape as input sct_output = model.predict(cbct_volume) ``` `predict()` handles internally: - Z-score normalization of the CBCT input - Sliding-window tiled inference with Gaussian patch blending - Denormalization of the sCT output back to HU values with the precomputed statistics ## Training Details | Field | Value | |---|---| | Trainer | `nnUNetTrainerRegression_mae_deep` | | Configuration | `3d_fullres` | | Fold | all | | Loss | MAE | | Input | Physics-based simulated CBCT | | Output | CT | | Anatomy | Pelvis | ## Citation If you use this model or the SimCBCTGenerator framework, please cite: ```bibtex @article{zimmermann2026simcbct, title = {Eliminating Registration Bias in Synthetic CT Generation: A Physics-Based Simulation Framework}, author = {Zimmermann, Lukas and Rauter, Michael and Schmid, Maximilian and Georg, Dietmar and Kn\"{a}usl, Barbara}, journal = {arXiv preprint arXiv:2602.02130}, year = {2026} } ``` **Framework repository:** [github.com/openvoxelmed/simcbctgenerator](https://github.com/openvoxelmed/simcbctgenerator)