This repository provides the official implementation of our AAAI 2026 paper, "Unsupervised Multi-Parameter Inverse Solving for Reducing Ring Artifacts in 3D X-Ray CBCT" [arXiv]

Fig. 1: Overview of the proposed Riner model.

Fig. 2: Qualitative results of traditional FBP, SOTA-supervised Restormer, and our unsupervised Riner on 10 representative samples from the simulated DeepLesion dataset under 2D fan-beam geometry.

Fig. 3: Qualitative results of traditional FDK, model-based Super, SOTA-supervised Restormer, and our unsupervised Riner on a real-world Chicken foot sample with dimensions of 512x512x80 and an ultra-high resolution of 60x60x60 μm³, acquired by a commercial Bruker SKYSCAN 1276 micro-CT scanner under 3D cone-beam geometry.
Riner
│ config.json # Configuration file for Riner
│ dataset.py # Dataloader
│ data_evaluation.ipynb # Script for data evaluation
│ data_preprocessing.ipynb # Script for data simulation
│ main.py # Script for optimizing Riner
│ model.py # Estimator for X-ray detector responses
│ readme.md # README file
│ train.py # Training script for Riner
│ utils.py # Tool functions
│
├─data
│ c_m.txt # Ground truth responses (i.e., \boldsymbol{\alpha})
│ def_mask.nii # Defective mask $\mathbf{m}$
│ gt.nii # Ground truth CT images
│ mask.nii # Mask for removing background
│ proj_noise.nii # Raw measurements \rho
│ img_noise.nii # FBP reconstructions
│ Restormer.nii # Restormer reconstructions
│
├─gif # Visualizations
│ deeplesion.gif
│ fig_method.png
│ foot.gif
│
└─out
c_m_pre.txt # X-ray detector responses by Riner
Riner.nii # CT images reconstructed by RinerTo run this repository, the following major packages are required:
- PyTorch
- tinycudann
- torchkbnufft
- SimpleITK
- tqdm
- numpy
- other dependencies
Navigate to ./ and run the following command in your terminal:
python main.pyThis optimizes Riner for the 10 representative samples (./data/proj_noise.nii) from the simulated DeepLesion dataset under 2D fan-beam geometry. The reconstructed CT images and the estimated detector response are saved in ./out.
The Jupyter notebooks data_preprocessing.ipynb and data_evaluation.ipynb provide the data simulation for CT ring artifacts and the evaluation code.
For the 10 samples (./data/proj_noise.nii), the quantitative results are as follows:
| Method | PSNR | SSIM |
|---|---|---|
| FBP | 11.70±2.04 | 0.403±0.095 |
| Restormer | 36.85±1.68 | 0.951±0.012 |
| Riner (Ours) | 39.19±1.40 | 0.974±0.005 |
NIFTI files (.nii) can be viewed using ITK-SNAP software, available for free download at: ITK-SNAP Download Page
If you find our work useful in your research, please cite:
@article{wu2024unsupervised,
title={Unsupervised Multi-Parameter Inverse Solving for Reducing Ring Artifacts in 3D X-Ray CBCT},
author={Wu, Qing and Wei, Hongjiang and Yu, Jingyi and Zhang, Yuyao},
journal={arXiv preprint arXiv:2412.05853},
year={2024}
}