ReCo-Diff: Residual-Conditioned Deterministic Sampling for Cold Diffusion in Sparse-View CT
-
Residual-Conditioned Deterministic Diffusion
ReCo-Diff introduces residual-conditioned self-guided sampling that explicitly enforces residual consistency during cold diffusion. By directly conditioning on observation residuals, the model stabilizes multi-step reconstruction without relying on heuristic reset strategies. -
Stable Reconstruction Under Severe Sparsity
The proposed method suppresses error accumulation across sampling steps and maintains consistently lower timestep-wise error trajectories, particularly in extremely sparse-view settings (e.g., 18 views). -
Unified Model Without Fine-Tuning
A single trained model supports multiple target view configurations (18 / 36 / 72 views) without additional fine-tuning, demonstrating robustness and practical applicability across varying sparsity levels.
- Create a new virtual environment and install the required libraries using
requirements.txt.
git clone https://github.com/choiyoungeunn/ReCo-Diff.git
cd ReCo-Diff
conda create -n recodiff python=3.7
conda activate recodiff
pip install -r ./requirements.txt- torch-radon is required for simulating DRRs and geometry utils. Install torch-radon by:
- Download torch-radon from torch-radon
git clone https://github.com/matteo-ronchetti/torch-radon.git
- Due to some out-dated Pytorch function in torch-radon, modify code by running
cd torch-radon patch -p1 < path/to/ReCo-Diff/torch-radon_fix/torch-radon_fix.patch
- Install torch-radon by running
python setup.py install
- Download the AAPM dataset.
- After downloading, run preprocessing with
./datasets/preprocess_aapm.py. - Provide dataset paths directly in each script before running.
python ./datasets/preprocess_aapm.py- Provide dataset paths directly in each script before running.
Organize the dataset directory as follows:
<aapm16 data root>/
├── train_img/
│ ├── L067_FD_1_1.CT.0001.0001.2015.12.22.18.09.40.840353.358074219.npy
│ ├── L067_FD_1_1.CT.0001.0002.2015.12.22.18.09.40.840353.358074243.npy
│ └── ...
└── test_img/
├── L506_FD_1_1.CT.0002.0001.2015.12.22.20.19.52.894480.358589814.npy
├── L506_FD_1_1.CT.0002.0002.2015.12.22.20.19.52.894480.358589838.npy
└── ...
Download a checkpoint and use it for testing.
ReCo-Diff ckpt/
├── ReCo-Diff-net-colddiff_179_epoch.pkl
└── ReCo-Diff-net-colddiff_ema_179_epoch.pkl
- Script:
recodiff_train.sh - Set
res_diranddataset_pathat the top of the file, then run:
bash recodiff_train.sh- Script:
recodiff_test.sh - Set
res_dir,dataset_path, andnet_checkpath_defaultat the top of the file, then run:
bash recodiff_test.sh- Script:
recodiff_test_ALL_search.sh - Set
ckpt_dirat the top of the file, then run:
bash recodiff_test_ALL_search.shIf you find our paper helps you, please kindly cite our paper in your publications.
@misc{choi2026recodiffresidualconditioneddeterministicsampling,
title={ReCo-Diff: Residual-Conditioned Deterministic Sampling for Cold Diffusion in Sparse-View CT},
author={Yong Eun Choi and Hyoung Suk Park and Kiwan Jeon and Hyun-Cheol Park and Sung Ho Kang},
year={2026},
eprint={2603.02691},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2603.02691},
}Our code is built upon CvG-Diff.
We sincerely thank the authors for generously sharing their code.



