PerX2CT / README.md
dek924's picture
Duplicate from dek924/PerX2CT
36a42ec
|
Raw
History Blame Contribute Delete
6.23 kB
---
license: cc-by-nc-4.0
language:
- en
pipeline_tag: image-to-image
tags:
- image-to-image
- medical-imaging
- ct-reconstruction
- chest-ct
- x-ray
- 3d-reconstruction
---
# PerX2CT — Perspective Projection-Based 3D CT Reconstruction from Biplanar X-rays
This repository hosts the **pretrained checkpoints** for **PerX2CT**, a framework that reconstructs a 3D CT volume from two orthogonal (biplanar) 2D X-ray images, using a perspective-projection-based feature sampling scheme.
- **Paper:** Perspective Projection-Based 3D CT Reconstruction from Biplanar X-rays (ICASSP 2023, Best Student Paper Award) — https://arxiv.org/abs/2303.05297
- **Code:** https://github.com/dek924/PerX2CT
- **Authors:** Daeun Kyung, Kyungmin Jo, Jaegul Choo, Joonseok Lee, Edward Choi
> ⚠️ **These are weights only.** The `.ckpt` files cannot be used on their own. You must clone the code from the GitHub repository above to load and run them (see [Usage](#usage)).
---
## Checkpoints
| File | Paired config (in the GitHub repo) | Notes |
| --- | --- | --- |
| `PerX2CT.ckpt` | `configs/PerX2CT.yaml` | Base PerX2CT model (full-frame reconstruction). |
| `PerX2CT_global.ckpt` | `configs/PerX2CT_global_w_zoomin.yaml` | PerX2CT-global model, trained with zoom-in; supports zoom-in (sub-region) reconstruction. |
Each checkpoint must be paired with its matching config; using the wrong config will not load correctly.
---
## Usage
These weights require the original codebase.
```bash
# 1. Get the code
git clone https://github.com/dek924/PerX2CT.git
cd PerX2CT
# 2. Environment
conda create -n perx2ct python=3.8
conda activate perx2ct
pip install --upgrade pip
pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 \
-f https://download.pytorch.org/whl/torch_stable.html
pip install -r requirement.txt
# 3. Download the checkpoints from this Hugging Face repo, then run inference.
```
**Full-frame evaluation**
```bash
python main_test.py \
--ckpt_path /path/to/PerX2CT.ckpt \
--config_path configs/PerX2CT.yaml \
--save_dir /path/to/output \
--val_test test
```
**Zoom-in evaluation** (use the `PerX2CT_global.ckpt` + `configs/PerX2CT_global_w_zoomin.yaml`)
```bash
python main_test_zoom.py \
--ckpt_path /path/to/PerX2CT_global.ckpt \
--config_path configs/PerX2CT_global_w_zoomin.yaml \
--save_dir /path/to/output \
--zoom_size <target_zoomin_patch_size>
```
See the GitHub README for the full set of options and for training instructions.
---
## Training data
The model was trained on the **LIDC-IDRI** chest CT collection, obtained from
**The Cancer Imaging Archive (TCIA)**. Synthetic biplanar X-rays were generated from the CT volumes
following the projection pipeline introduced in the X2CT-GAN work.
Use of these weights is subject to the data's terms:
- LIDC-IDRI is distributed under the **Creative Commons Attribution 3.0 Unported (CC BY 3.0)** license and the **TCIA Data Usage Policy**. You must give proper attribution (see [Citation](#citation)).
- Per the TCIA terms of use, **you must not attempt to re-identify** the research participants in the underlying data.
---
## Intended use & limitations
- **Intended use:** research and educational purposes only — method reproduction, benchmarking, and academic study.
- **Not for clinical use:** this model is **not** a medical device and must **not** be used for diagnosis, treatment decisions, or any clinical purpose.
- **Domain limits:** trained on LIDC-IDRI chest CT with synthetic X-ray inputs. Performance on real clinical X-rays, other anatomy, other scanners/protocols, or other populations is not guaranteed and is likely to degrade under distribution shift.
---
## License
- **Weights (the `.ckpt` files in this repository):** [Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)](https://creativecommons.org/licenses/by-nc/4.0/). Non-commercial use only; attribution required.
- **Code:** not included here. It lives in the [GitHub repository](https://github.com/dek924/PerX2CT) under that project's terms. Note that the data-preprocessing pipeline there is adapted from X2CT-GAN, which is **GPLv3**, while the model backbone (`taming/`) is **MIT**. The inference code needed to run these weights does not require the GPLv3 preprocessing scripts.
- **Underlying data (LIDC-IDRI):** CC BY 3.0 + TCIA Data Usage Policy, as described above.
---
## Citation
If you use these weights, please cite the PerX2CT paper and the LIDC-IDRI / TCIA sources.
**PerX2CT**
```bibtex
@INPROCEEDINGS{kyung2023perx2ct,
author={Kyung, Daeun and Jo, Kyungmin and Choo, Jaegul and Lee, Joonseok and Choi, Edward},
booktitle={ICASSP 2023 - 2023 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)},
title={Perspective Projection-Based 3d CT Reconstruction from Biplanar X-Rays},
year={2023},
pages={1-5},
doi={10.1109/ICASSP49357.2023.10096296}}
```
**LIDC-IDRI (publication)**
```bibtex
@article{armato2011lidc,
title={The Lung Image Database Consortium (LIDC) and Image Database Resource Initiative (IDRI): A completed reference database of lung nodules on CT scans},
author={Armato III, Samuel G. and McLennan, Geoffrey and Bidaut, Luc and others},
journal={Medical Physics},
volume={38}, number={2}, pages={915--931}, year={2011},
doi={10.1118/1.3528204}}
```
**TCIA**
```bibtex
@article{clark2013tcia,
title={The Cancer Imaging Archive (TCIA): Maintaining and Operating a Public Information Repository},
author={Clark, Kenneth and Vendt, Bruce and Smith, Kirk and others},
journal={Journal of Digital Imaging},
volume={26}, number={6}, pages={1045--1057}, year={2013},
doi={10.1007/s10278-013-9622-7}}
```
> The LIDC-IDRI **data citation / DOI** (separate from the publication above) is provided on the current TCIA collection page — please copy it from https://www.cancerimagingarchive.net/collection/lidc-idri/ to ensure it is up to date.
---
## Acknowledgements
This work builds on:
- [CompVis/taming-transformers](https://github.com/CompVis/taming-transformers) (MIT) — VQGAN backbone.
- [kylekma/X2CT](https://github.com/kylekma/X2CT) (GPLv3) — CT-to-X-ray projection method used for data preprocessing.