Feature Extraction-Based Automated Framework For COVID-19 Disease Identification From Chest CT Scans Using Capsule Networks.
CT-CAPS is a Capsule Network-based feature extractor developed to detect specific characteristics of CT slices, followed by a Max Pooling Layer to convert slice-level feature maps into patientlevel ones. Finally, a stack of fully connected layers are added to make the final decision. The CT-CAPS is trained on a dataset of CT slices labeled by three experienced radiologists to determine slices demonstrating infection and slices without an evidence of infection. CT-CAPS framework benefits from a fast and timely labeling process, which is highly valuable when we are facing an early emergence of a new type of data.
CT-CAPS utilizes segmented lung areas as the input of the model instead of the original CT scans. In order to extract lung areas from the original CT images, a recently developed U-Net based segmentation model is used to preprocess the data. Besides segmenting the lung regions, all images are normalized between 0 and 1, and resized from the original size of [512,512] to [256,256] as the preprocessing step. The detailed COVID-Facts's structure and methodology is explained in detail at https://arxiv.org/abs/2010.16043 .
The CT-CAPS paper has been accepted at the ICASSP 2021 conference, and will be accessible through the IEEE Xplore Digital Library.Note : Please don’t use CT-CAPS as the self-diagnostic model without performing a clinical study and consulting with a medical specialist.
The publically available COVID-CT-MD dataset is used to train/test the model. This dataset contains volumetric chest CT scans of 171 patients positive for COVID-19 infection, 60 patients with CAP (Community Acquired Pneumonia), and 76 normal patients. Slice-Level labels (slices with the evidence of infection) are provided in this dataset.
For the detail description of the COVID-CT-MD dataset, please refer to the https://arxiv.org/abs/2009.14623.
The lungmask module for the lung segmentation is adopted from here and can be installed using the following line of code:
pip install git+https://github.com/JoHof/lungmask
Make sure to have torch installed in your system. Otherwise you can't use the lungmask module. https://pytorch.org
A sample CT scan image with its corresponding segmented lung area using this algorithm is shown in the following image:
- Tested with (tensorflow-gpu 2 and keras-gpu 2.2.4) , and (tensorflow 1.14.0 and keras 2.2.4)
-- Try tensorflow.keras instead of keras if it doesn't work in your system. - Python 3.6
- PyTorch 1.4.0
- Torch 1.5.1
- PyDicom 1.4.2 (Installation)
- SimpleITK (Installation)
- lungmask (Installation)
- OpenCV
- OS
- Numpy
- Matplotlib
If you found the provided code and the related paper useful in your research, please consider citing:
@article{Heidarian2020,
archivePrefix = {arXiv},
arxivId = {2010.16043},
author = {Heidarian, Shahin and Afshar, Parnian and Mohammadi, Arash and Rafiee, Moezedin Javad and Oikonomou, Anastasia and Plataniotis, Konstantinos N. and Naderkhani, Farnoosh},
eprint = {2010.16043},
month = {oct},
title = {{CT-CAPS: Feature Extraction-based Automated Framework for COVID-19 Disease Identification from Chest CT Scans using Capsule Networks}},
url = {http://arxiv.org/abs/2010.16043},
year = {2020}
}