Skip to content

xmed-lab/SSR-KD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SSR-KD

Yiqun Lin, et al. "Real-Time Reconstruction of 3D Bone Models via Very-Low-Dose Protocols"

@article{lin2026real,
  title={Real-time reconstruction of 3D bone models via very-low-dose protocols},
  author={Lin, Yiqun and Sun, Haoran and Li, Yongqing and Aslam, Rabia and Tse, Lung Fung and Cheng, Tiange and Chui, Chun Sing and Yau, Wing Fung and Le Meur, Victorine R and Amangeldy, Meruyert and others},
  journal={npj Digital Medicine},
  year={2026},
  publisher={Nature Publishing Group UK London}
}

1. Code Structure

  • ./data/*.py are mainly used to preprocess CT, simulate X-ray projections, and generate segmentation masks from bone meshes. Processed data are saved in ./data/processed/.
  • ./bone_seg/ is used for X-ray-based bone segmentation.
  • ./bone_recon/ is used for bone reconstruction.
  • ./bone_recon/recon_ct/ is used for CT-based bone reconstruction.
  • ./bone_recon/recon_xray is used for 2-view X-ray-based bone reconstruction.

2. Data Structure

For labeled data:

├── ./data/processed/<case_id>/
│   ├── submesh/
│   │   ├── sub_0.obj # Patella
│   │   ├── sub_1.obj # Femur
│   │   ├── sub_2.obj # Fibula
│   │   └── sub_3.obj # Tibia
│   ├── mesh.obj      # merge bones
│   ├── projs.npz     # X-rays (512×521)
│   ├── bone_mask.npz # X-rays's bone masks (512×512)
│   ├── ct_256x.npz   # CT (256×256×256) used to train CT-based recon
│   ├── ct_512x.npz   # CT (512×512×512) used to generate X-rays
│   ├── seg_mask.npz  # CT's bone masks (512×512×512) used to generate X-rays' bone masks
│   ├── sampling.npz  # sampled points
│   └── spacing.npz   # spacing for CT

For unlabeled data:

├── ./data/processed/<case_id>/
│   ├── projs.npz   # X-rays (512×521)
│   ├── ct_256x.npz # CT (256×256×256) used to train CT-based recon
│   ├── ct_512x.npz # CT (512×512×512) used to generate X-rays
│   └── spacing.npz # spacing for mesh/CT

2. Environment Requirement

This repo was developed and tested on the following environment:

  • OS: Ubuntu 24.04
  • GPU: 8x NVIDIA GeForce 3090 (at least two 3090 GPUs are required for model training)
  • CUDA: 11.1
  • PyTorch: 1.8 (also tested with 1.13)

Additionally, TIGRE is required for projection simulation, and PyTorch3D is required for calculating the chamfer distance (equal to ASSD).

3. Results

Metric Average Patella Femur Fibula Tibia
DSC (%) ↑ 90.9 87.5 96.1 84.1 96.0
HD (mm) ↓ 2.76 3.30 2.20 2.87 2.06
ASSD (mm) ↓ 0.94 1.12 0.80 1.05 0.77

4. Model Weights

Model Weight Link
bone_seg 237 MB
recon_ct 76 MB
recon_xray 112 MB

License

This repository is released under MIT License (see LICENSE file for details).

About

[npj Digital Medicine 2026] Real-Time Reconstruction of 3D Bone Models via Very-Low-Dose Protocols

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors