Skip to content

CNN for Classification of Coronary Artery Stenosis Score inMPR Images.

Notifications You must be signed in to change notification settings

ucuapps/CoronaryArteryStenosisScoreClassification

Repository files navigation

Coronary Artery Stenosis Level Classification

This is an implementation of the CNN-CASS: CNN for Classification of Coronary Artery Stenosis Score in MPR Images by Maria Dobko, Bohdan Petryshak, and Oles Dobosevych

In CVWW 2020 proceedings

Overview

To decrease patient waiting time for di-agnosis of the Coronary Artery Disease, automaticmethods are applied to identify its severity in Coro-nary Computed Tomography Angiography scans orextracted Multiplanar Reconstruction (MPR) im-ages, giving doctors a second-opinion on the pri-ority of each case. The main disadvantage of pre-vious studies is the lack of large set of data thatcould guarantee their reliability. Another limitationis the usage of handcrafted features requiring man-ual preprocessing, such as centerline extraction. Weovercome both limitations by applying different au-tomated approach based on ShuffleNet V2 networkarchitecture and testing it on the proposed collecteddataset of MPR images, which is bigger than anyother used in this field before. We also omit cen-terline extraction step, and train and test our modelusing whole curved MPR images of 708 and 105 pa-tients, respectively. The model predicts one of threeclasses: ‘no stenosis’ for normal, ‘non-significant’— 1-50% of stenosis detected, ‘significant’ — morethan 50% of stenosis. We demonstrate model’s in-terpretability through visualization of most importantfeatures selected by the network. For stenosis scoreclassification, the method showed improved perfor-mance comparing to previous works, achieving 80%accuracy on the patient level. We will make our codepublicly available.

Res Vis

Results Table Confusion Matrixes

General Pipeline

General Pipeline

Usage

Dependencies

All necessary modules are in the requirements.txt

pip install -r requirements.txt

Also, this code should be compatible with Python versions 2.7-3.5.

Training

  1. Set parameters for the experiment config.yaml (for detailed explanation of the config file see config section below)
  2. Run the following command:
python train.py

Testing

For the evaluating of the trained models you should use the jupyter notebooks, which are located in the notebooks folder.

Dataset structure

The dataset has the following structure:

|-- RootDir
|     |-- Train
|           |-- labels.csv/.xlsx
|           |-- imgs
|                 |--  patient_1
|                       |-- LAD
|                       |-- RCA
|                       ...
|                 ...
|     |-- Val
|           |-- labels.csv/.xlsx
|           |-- imgs
|                 |--  val_patient_1
|                       |-- LAD
|                       |-- RCA
|                       ...
|                 ...
|     |-- Test
|           |-- labels.csv/.xlsx
|           |-- imgs
|                 |--  test_patient_1
|                       |-- LAD
|                       |-- RCA
|                       ...
|                 ...
|

Config

Our config organized as follows:

  1. experiments_path - relative or absolute path to output of the TensorBoard.
experiments_path: experiments_lenet/

  1. device - device, where to run on.
device: cuda
    <