The Completeness-Aware Reconstruction Enhancement (CARE) framework addresses a critical gap in sparse-view CT reconstruction by shifting the evaluation from traditional pixel-wise metrics to anatomy-aware metrics derived from automated structural segmentation. By incorporating segmentation-informed losses into latent diffusion models, CARE significantly improves the reconstruction fidelity of clinically relevant anatomical structures, ensuring that critical diagnostic features are preserved under highly limited view conditions.
Are Pixel-Wise Metrics Reliable for Sparse-View Computed Tomography Reconstruction?
Tianyu Lin1,
Xinran Li1,
Chuntung Zhuang1,
Qi Chen1,
Yuanhao Cai1,
Kai Ding2,
Alan L. Yuille1 and
Zongwei Zhou1,*
1Johns Hopkins University, 2Johns Hopkins Medicine
We have documented common questions for the paper in Frequently Asked Questions (FAQ).
Create an conda environement via:
conda create -n care python=3.11 -y
conda activate careThen install all requirements using:
pip install -r requirements.txtWe have documented detailed steps to help prepare for downloading model checkpoints.
Pretrained Autoencoder Checkpoint
huggingface-cli download TianyuLin/CARE --include="autoencoder/*" --local-dir="./STEP1-AutoEncoderModel/klvae/"Pretrained Diffusion Model Checkpoint
huggingface-cli download TianyuLin/CARE --include="diffusion/*" --local-dir="./STEP2-DiffusionModel/"Pretrained CARE Model Checkpoints
huggingface-cli download TianyuLin/CARE --include="CARE/*" --local-dir="./STEP3-CAREModel/"Note
The following script is designed for the nine reconstruction methods mentioned in the paper: three traditional reconstruction methods (FDK, SART, ASD-POCS), five NeRF-based reconstruction methods (InTomo, NeRF, TensoRF, NAF, SAX-NeRF) using the SAX-NeRF Repo, and a Gaussian-Spaltting-based method R2-GS based on its own R2-GS Repo. Feel free to edit to fit your need.
Firstly, Based on the CT reconstruction results from SAX-NeRF Repo and GitHub Repo, please use the provided script to format the dataset:
cd ./ReconstructionPipeline/ # working directory
python -W ignore step1_softlink_BDMAP_O.py # place the ground truth CT and segmentation
python -W ignore step2_extractAndpixelMetric.py # calculate pixel-wise metrics (SSIM and PSNR)The resulting dataset format is:
└── BDMAP_O/ # ground truth folder
└── BDMAP_O0000001
└── ct.nii.gz # the ground truth CT scan of this case
└── BDMAP_O_methodName_numViews/ # reconstruction results folder
└── BDMAP_O0000001
└── ct.nii.gz # the reconstructed CT from `methodName` method with `numViews` X-raysRun the inference of CARE model via:
cd ./STEP3-CAREModel
bash inference.sh nerf_50
# e.g. using nerf as CT reconstruction baselineThe anatomy segmentator is built upon nnU-Net, please prepare the dataset first based on nnU-Net's dataset format. Our anatomy segmentator requires 25 anatomical structures.
Then, train the model (datasetNum is your actual nnU-Net dataset number):
export nnUNet_raw="/path/to/Dataset_raw"
export nnUNet_preprocessed="/path/to/Dataset_preprocessed"
export nnUNet_results="/path/to/nnUNet_results"
DATASET_NUM=# your actual 3-digit nnU-Net dataset number
nnUNetv2_plan_and_preprocess -d $DATASET_NUM -pl nnUNetPlannerResEncL --verify_dataset_integrity
nnUNetv2_train $DATASET_NUM 3d_fullres all -p nnUNetResEncUNetLPlans # 3d version for anatomy-aware metrics
nnUNetv2_train $DATASET_NUM 2d all -p nnUNetResEncUNetLPlans # 2d version for CARE model trainingFirst time Diffusers user should run accelerate config for training device configuration. Assume that the original dataset is in BDMAP format (e.g., AbdomenAtlas 1.0), please use ./ReconstructionPipeline/niigz2h5.py to convert the dataset into *.h5 format.
Next, go to the working directory:
cd ./STEP1-AutoEncoderModel/klvaeThen, modify TRAIN_DATA_DIR and validation_images in train.sh and run the trianing:
bash train.shThe dataset remained unchanged comparing to the Autoencoder section. Entering the working directory:
cd ./STEP2-DiffusionModelThen, change the FT_VAE_NAME to select a pretrained autoencoder checkpoint, and run the training:
bash train.shTo train the CARE model, first prepare the dataset by:
cd ./ReconstructionPipeline/
python -W ignore step1_softlink_BDMAP_O.py # place the ground truth CT and segmentation
python -W ignore step2_extractAndpixelMetric.py # format the reconstruction & pixel-wise metricsNext, go to the working directory:
cd ./STEP3-CAREModelThen, change the FT_VAE_NAME and TRAINED_UNET_NAME to select a pretrained autoencoder/diffusion model's checkpoint, and run the training:
bash train.sh nerf_50 # example@article{lin2025pixel,
title={Are Pixel-Wise Metrics Reliable for Sparse-View Computed Tomography Reconstruction?},
author={Lin, Tianyu and Li, Xinran and Zhuang, Chuntung and Chen, Qi and Cai, Yuanhao and Ding, Kai and Yuille, Alan L and Zhou, Zongwei},
journal={arXiv preprint arXiv:2506.02093},
year={2025}
}This work was supported by the Lustgarten Foundation for Pancreatic Cancer Research and the Patrick J. McGovern Foundation Award. We would like to thank the Johns Hopkins Research IT team in IT@JH for their support and infrastructure resources where some of these analyses were conducted; especially DISCOVERY HPC DISCOVERY HPC. We thank Hamed Hooshangnejad, Heng Li, Wenxuan Li, and Guofeng Zhang for their helpful suggestions throughout the project.

