/lungseg-vip2018

Pipeline for Lung Segmentation on the NSCLC Radiomics Dataset as part of the IEEE VIP 2018 Challenge

Primary LanguagePythonMIT LicenseMIT

A PIPELINE FOR LUNG TUMOR DETECTION AND SEGMENTATION FROM CT SCANS USING DILATED CONVOLUTIONAL NEURAL NETWORKS

DOI: 10.1109/ICASSP.2019.8683802

Abstract

Lung cancer is the most prevalent cancer worldwide with about 230,000 new cases every year. Most cases go undiagnosed until it’s too late, especially in developing countries and remote areas. Early detection is key to beating cancer. Towards this end, the work presented here proposes an automated pipeline for lung tumor detection and segmentation from 3D lung CT scans from the NSCLC Radiomics Dataset. It also presents a new dilated hybrid-3D convolutional neural network architecture for tumor segmentation. First, a binary classifier chooses CT scan slices that may contain parts of a tumor. To segment the tumors, the selected slices are passed to the segmentation model which extracts feature maps from each 2D slice using dilated convolutions and then fuses the stacked maps through 3D convolutions - incorporating the 3D structural information present in the CT scan volume into the output. Lastly, the segmentation masks are passed through a post-processing block which cleans them up through morphological operations. The proposed segmentation model outperformed other contemporary models like LungNet and U-Net. The average and median dice coefficient on the test set for the proposed model were 65.7% and 70.39% respectively. The next best model, LungNet had dice scores of 62.67% and 66.78%.

Data Preperation

Dataset

Set Patients With Tumor Without Tumor
Train 260 4,296 26,951
Test 40 848 3,630

Data Augmentation

  • X/Y Mirroring
  • Rotations
  • Elastic Transformation
  • 7 fold increase in data

Three subsets created from total data pool:

  • A: all Tumor Slices only
  • B: A + 10 non-tumor slices from each patient
  • C: 3D stacks of 9 consecutive slices

Sample Slices from the NSCLC Dataset

Pipeline:


Input 3D CT Scan

Preprocessing:

  • Detecting and Cropping out Lung Region (Image Processing)
  • Adaptive Histogram Equalization
  • Normalization and Resizing

Binary Classifier:

  • Feature Extraction from each 2D slice using LungNet2D
  • Binary Classifier labels probable slices containing tumor
  • Tumors generally localized in small volume (3-30 slices = 10 ~ 100 mm3) compared to total lung volume ( ~ 900 mm3)
  • Frontend binary classifier used to weed out non tumor containing slices
  • Positive detection = 8 neighboring slices along the ±z directions passed to Segmentation Model

LungNet3D:

  • Feature Extraction Block (FEB) = LungNet2D
  • Dilation Rate increased in Fibonacci Sequence
  • Initially trained with 2D slices to output 2D masks
  • FEB applied to each of the 9 slices in mini stack
  • Feature maps are fused through 3D Convolution
  • Outputs 3D masks

Post Processing:

  • Area based Thresholding to get rid of specks (region < 5mm2 removed)
  • Morphological Operations to refine segmentation mask


Generated Masks

Training:

LungNet3D

  • LungNet2D trained first on subset A and then subset B on decimated learning rate
  • To transform LungNet2D into the proposed model, LungNet3D
    • Final Convolutional layers switched to 3D convolutions
    • Instead of single slice input, stacks of 9 slices provided
  • LungNet3D trained on subset C


Training Curve

Binary Classifier

  • The trained LungNet2D model was used as base
  • Final Convolutional Layers replaced by fully connected layers
  • Trained on subset B to output binary labels (tumor/non-tumor)

Results

Model Arch. Total params (x10^6) Mean Dice (%) Median Dice (%)
U-NET 31 58.5 62.3
LungNet 2D 0.13 62.7 66.8
Proposed 0.40 65.8 70.4


Success Cases