jccjd / Nodule-CADx

Pulmonary nodules computer-aided diagnosis demo system.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nodule CADx

Nodule CADx

Pulmonary nodules computer-aided diagnosis demo system.
Basically an application integrate NoduleNet & texture classification model.

⚠️ Warning: Performance of the system is still incomplete and far away from practical use.

Table of contents

Application Demo

Introduction

This is a pulmonary nodules (lung nodules) computer-aided diagnosis (CADx) demo application, which cound directly raise a diagnostic suggestion based on Lung-RADS automatically from computed tomography (CT) scan.

The application has three different view:

  • Main Window
  • Screening Window
  • Preferences

Main Window

main window

  • Have a quick view of patient list and corresponding scans & nodules information.
  • Field introduction
    • Upper block: Patient list
      • Updated: Indicate if all the scans of this patient have been detected
      • Patient Name/Date of Birth/Sex : Information of patient
      • Score/Management: Output based on Lung-RADS
    • Lower block: Scan & Nodule list
      • Updated: Indicate if the scan has been detected
      • Scan date/File Directory: Information of scan
      • Type: Texture type of corresponding nodule, has five categories (Non-Solid, Non/Part, Part-Solid, Part/Solid, Solid)
      • Calcification/Spiculation/Perifissural/Endobronchial: 0 indicate No and 1 indicate Yes
      • Score: Score of single nodule based on Lung-RADS
  • Button introduction
    • Load Scan: Load CT scan
    • Detect: Run automatic diagnosis on seleteced scan, it may take minutes
    • Save Changes: Since the information of nodules could be edited by user, save those changes to project file (.json)
    • Export Report: Export field information in csv format
    • Display: Open screening window for selected scan

Screening Window

screening window

  • Showing selected scan and it's corresponding detected nodules
  • Since model isn't perfect, user can edit nodules information here

Preferences

  • Several simple settings of application
  • LIDC-IDRI dataset label texture in 5 categories (1~5), with 2 & 4 is undetermined. Check the box will classify 2 with 1, and 4 with 5
  • Threshold indicate thresholding the probability at detection stage

preferences

Models

There are two models in models

  • nodulenet_model.ckpt
    • Perform nodule detection & segmentation
    • Follow the training procedure describe at NoduleNet repo
    • Since I modified some data_parallel code in net to make model run on CPU, replace the net directory for your own use may be needed
  • classification_model.pkl
    • Perform nodule texture classification (only for Non-Solid, Part-Solid and Solid classification)
    • Train with LIDC-IDRI dataset (LUNA16 1186 nodules selected version)
    • Using Radiomics methodology, with Principal Component Analysis (PCA) and Support Vector Regression (SVR)

Built With

Modules besides python built-ins

Getting Started

Prerequisites

Installation

  • Clone the repo
git clone https://github.com/wenyalintw/Nodule_CADx.git
pip install -r /path/to/requirements.txt
  • Ready to go
cd src
python main.py

Future Work

  • Lung ROI segmentation
  • Size based on Lung-RADS criteria
  • Types classification beside texture

Acknowledgments

MIT License (2020), Wen-Ya Lin

About

Pulmonary nodules computer-aided diagnosis demo system.

License:MIT License