Skip to content

Course Project for Bio Medical Imaging: Detecting Lung Nodules from CT Scans

License

Notifications You must be signed in to change notification settings

shreyaspadhy/Luna2016-Lung-Nodule-Detection

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Luna2016-Lung-Nodule-Detection

Course Project for Bio Medical Imaging: Detecting Lung Nodules from CT Scans

This project was inspired by the LUNA 2016 Grand Challenge that uses low-dose CT scans for pulmonary nodule detection in lung scans.

We use a U-net Convolutional Neural Network for lung nodule detection.

Running The Code

==================================

Dependencies

Preprocess

  • SimpleITK
  • numpy
  • csv
  • glob
  • pandas
  • scikit-learn
  • scikit-image

UNET

  • theano
  • keras

Preprocessing

Before inputting the CT images into the U-net architecture, it is important to reduce the domain size for more accurate results. We perform a variety of preprocessing steps to segment out the ROI (the lungs) from the surrounding regions of bones and fatty tissues. These include

  • Binary Thresholding
  • Selecting the two largest connected regions
  • Erosion to separate nodules attached to blood vessels
  • Dilation to keep nodules attached to the lung walls
  • Filling holes by dilation

Network


LUNA_unet.py contains the code for the actual model. The following arguments can be passed to the network.

-batch_size     (default 2,batch size)
-lr      		(default 0.001, learning rate)
-load_weights	(default False, load pre-existing model)
-filter_width	(default 3, The default filter width)
-stride			(default 3, The stride of the filters)
-model_file		(default '', The path to the model file )
-save_prefix	(default model prefix, The prefix of the saving of models)

The model expects as inputs the segmented lung images (512x512) as inputs (generated in preprocessing steps) and generates the mask of the nodule (512x512). The loss used is the dice coefficient loss between the predicted mask and the gold mask. Model weights are saved using the following convention: model__script_on_epoch_ + epoch number + _lr_ + lr + _WITH_STRIDES_ + filter stride + _FILTER_WIDTH_ + filter width + .weights

Results


The following are some results we obtain

alt text alt text

About

Course Project for Bio Medical Imaging: Detecting Lung Nodules from CT Scans

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%