SDF-CAR: 3D Coronary Artery Reconstruction from Two Views with a Hybrid SDF-Occupancy Implicit Representation
SDF-CAR is a novel self-supervised framework for reconstructing 3D coronary arteries from only two sparse 2D X-ray projections. By leveraging a Hybrid SDF-Occupancy representation, we overcome the "blobby" artifacts and broken connectivity common in pure occupancy networks (like NeCA), achieving state-of-the-art topological accuracy.
Figure 1: Overview of the SDF-CAR Framework.
Note: This paper is currently under review.
The three-dimensional (3D) reconstruction of coronary arteries is crucial for diagnosis but difficult to achieve from standard Invasive Coronary Angiography (ICA) which provides only sparse 2D views. We propose SDF-CAR, a self-supervised framework that leverages a Signed Distance Field (SDF)-based neural implicit representation. Unlike supervised methods that require unavailable 3D ground truth, SDF-CAR optimizes a patient-specific model directly from 2D projections. By integrating SDF-based geometric priors with an occupancy-based differentiable rendering loss, we improve the Centerline Dice (cIDice) score by over 16% compared to state-of-the-art baselines, ensuring smooth, continuous vessel reconstruction.
- Hybrid Representation: Combines the optimization stability of Occupancy networks with the geometric surface precision of Signed Distance Functions (SDF).
- Sparse View Reconstruction: Works effectively with only 2 standard angiographic views.
- Topological Preservation: Significantly reduces broken vessel segments and disconnected branches in distal areas.
- Self-Supervised: No 3D ground truth required for training; optimizes directly on patient projection data.
SDF-CAR maintains connectivity in complex curved segments where baselines often fail.
Our method successfully captures fine distal branches that are often missed by occupancy-only methods.
This code is based on PyTorch and requires a GPU with CUDA support.
# 1. Navigate to the project directory
cd SDF-CAR
# 2. Create a conda environment
conda create -n sdf-car python=3.8
conda activate sdf-car
# 3. Install PyTorch (Adjust CUDA version as needed)
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
# 4. Install required dependencies
pip install numpy scipy pyyaml tqdm matplotlib pandas
pip install odl tigre
# 5. (Optional) Install tiny-cuda-nn for hash encoding acceleration
pip install git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torchWe utilize the ImageCAS dataset (Coronary Artery Segmentation from CCTA).
-
Download the ImageCAS dataset.
-
Preprocess the CCTA volumes to extract coronary artery segmentations.
-
Organize data as follows:
data/ ├── LAD_GT/ # Ground truth LAD segmentations │ ├── 900.npy │ ├── 901.npy │ └── ... ├── RCA_GT/ # Ground truth RCA segmentations │ ├── 900.npy │ ├── 901.npy │ └── ... └── ... -
Update the configuration file
config/CCTA.yamlwith the correct data paths.
To train on a single model:
python train.py --config config/CCTA.yamlTo train on multiple models automatically:
python batch_train.py --config config/CCTA.yaml --num_gpus 1The training script will automatically process models specified in the model_numbers list in the config file.
To evaluate reconstructions against ground truth:
python eval.py --pred_dir logs/reconstructions/ --gt_dir data/LAD_GT/ --output_dir results/To visualize and compare reconstructions:
python vis.pyPaper Under Review
Citation information will be updated upon publication acceptance.
This code heavily builds upon the following excellent repositories:
For questions, please contact:

