You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

Automated Detection of Abandoned Leads and CIED Generator Localization from Chest Radiographs

Code and trained model weights for a multiclass semantic segmentation pipeline that localizes cardiac implantable electronic device (CIED) generators and detects abandoned leads on chest radiographs (CXR).

This repository accompanies the manuscript:

A Multi-Stage Deep Learning Pipeline for Automated Detection of Abandoned Leads and Identification of Cardiac Implantable Electronic Devices (CIEDs) from Chest Radiographs.

If you use this code, please cite the manuscript above.


Overview

The pipeline performs 4-class semantic segmentation (background, generator, active lead, abandoned lead) on chest radiographs using a U-Net with a ResNet-50 encoder. The encoder is initialized via encoder-only transfer learning from a segmentation model pretrained on CIED chest radiographs (Busch et al. Radiol Artif Intell. 2024 Sep;6(5):e230502.), with the decoder randomly initialized and trained from scratch. Training uses a combined Focal-Dice loss with class weighting to address severe class imbalance, and 5-fold stratified cross-validation. An operating threshold for abandoned-lead detection was selected via grid search over out-of-fold (OOF) predictions and locked prior to held-out test set evaluation.

Pre-trained Model Weight

The encoder backbone was initialized using weights from:

  • Zenodo DOI: 10.5281/zenodo.10955502
  • Reference: Busch F, Bressem KK, Suwalski P, et al. Open Access Data and Deep Learning for Cardiac Device Identification on Standard DICOM and Smartphone-based Chest Radiographs. Radiol Artif Intell. 2024;6(5):e230502. doi:10.1148/ryai.230502

BibTeX

@article{busch2024open,
  title={Open Access Data and Deep Learning for Cardiac Device Identification on Standard DICOM and Smartphone-based Chest Radiographs},
  author={Busch, Felix and Bressem, Keno K and Suwalski, Paulina and Hoffmann, L แΰΈ₯ΰΈ°ΰΈ„ΰΈ“ΰΈ°},
  journal={Radiology: Artificial Intelligence},
  volume={6},
  number={5},
  pages={e230502},
  year={2024},
  publisher={Radiological Society of North America},
  doi={10.1148/ryai.230502}
}

Ethics approval: REC-MURA_06 (Ramathibodi Hospital, Mahidol University).

---

## Repository structure

. models/ └── best_abdn.pth # pretrained weight (best checkpoint weight for abandoned lead) python/ └── preprocess/
β”œβ”€β”€ anonymizer.py # remove any burn-in texts └── CLAHE.py # applies CLAHE (Contrast Limited Adaptive Histogram Equalization) to improve contrast and enhanced edge definitions └── train/ β”œβ”€β”€ derive_spatial_prior.py # pre-analysis: find generator area threshold and spatial prior └── Train_5Fold_CV.py # model training using 5-fold cross validaiton └── evaluation/ β”œβ”€β”€ eval_ensemble.py # evaluate 5-fold ensemble segmentation model
β”œβ”€β”€ eval_single_model.py # evaluate a single model └── eval_generator_crop.py # evaluate generator localization and crop quality └── inference/ β”œβ”€β”€ visualized_heatmap_overlay.py # heatmap of all classes (generator, active lead, and abandoned lead) β”œβ”€β”€ visualized_abandon.py # probability map of abandoned lead └── crop_generator.py # crop ROI of generator └── requirements.txt # Pinned dependency versions └── README.md


---

Tested on Windows 11 with an NVIDIA GPU (CUDA 13.0). 
---

## Data

Due to institutional data governance policies and patient privacy protections, raw chest radiographs and clinical data are **not** included in this repository. Access to de-identified data may be considered for reasonable research requests directed to the corresponding author, subject to institutional approval.

---

## Model weights

Trained weights for each of the 5 folds are provided as PyTorch state dicts, not full pickled learner objects, to avoid pickle compatibility issues across environments. Load with `infer_abdnL.py`, which reconstructs the model architecture before loading the state dict.

Weights are released under [license, e.g. CC BY-NC 4.0] for non-commercial research use.

---

## Notes on reproducibility

- The 5-fold split uses `StratifiedKFold` with `random_state=42`, stratified on abandoned-lead presence.
- Normalization statistics were computed once from the full training/CV dataset prior to fold splitting (Option 1: fixed stats shared across all folds and used unchanged at inference).
- The held-out pipeline test set was evaluated once, after the operating threshold was locked from OOF predictions only, to avoid data leakage.

---

## Disclosures

Large language model (Claude, Anthropic) was used for auxiliary code development assistance during this project. No patient-identifiable data was shared with external AI tools at any stage. All final code was reviewed by the investigator team.

---

## Contact

Assoc. Prof. Sirin Apiyasawat, MD
Division of Cardiology, Department of Medicine, Ramathibodi Hospital, Mahidol University
Sirin.api@mahidol.ac.th

## License
- **Source Code**: Released under the [MIT License](LICENSE).
- **Model Weights & Checkpoints**: Released under the [CC BY 4.0 License](https://creativecommons.org/licenses/by/4.0/).
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support