Giter Club home page Giter Club logo

lung_cancer_detection's Introduction

Lung Cancer Detection

Lung cancer is the leading cause of cancer-related death worldwide. Screening high risk individuals for lung cancer with low-dose CT scans is now being implemented in the United States and other countries are expected to follow soon. In CT lung cancer screening, many millions of CT scans will have to be analyzed, which is an enormous burden for radiologists. Therefore there is a lot of interest to develop computer algorithms to optimize screening. A vital first step in the analysis of lung cancer screening CT scans is the detection of pulmonary nodules, which may or may not represent early stage lung cancer.

This project is about segmentation of nodules in CT scans using 2D U-Net Convolutional Neural Network architecture.

Dependencies

  • numpy
  • pandas
  • opencv
  • SimpleITK
  • scikit-learn
  • scikit-image
  • tensorflow
  • matplotlib

Dataset

The LUNA16 dataset has been used in this project.

Preprocessing

The CT-Scans images passed through various preprocessing steps before inputting it to U-Net model for more accurate result. These processes includes segmenting the ROI (the lungs) from the surrounding regions of bones and fatty tissues. These include

  • Binary Thresholding
  • Erosion & Dilation for removing noise
  • Filling Holes by contours
  • Extracting Lungs
  • Extracting nodule masks

preprocessing_steps

Training

I used a 2D UNet convolutional neural network architecture which is mainly used for image segmentation. U-net is an encoder-decoder deep learning model which is known to be used in medical images. It is first used in biomedical image segmentation. U-net contained three main blocks, downsampling, upsampling, and concatenation. The dice coefficient loss is selected as the loss function. Dice coefficient as is often used in medical image segmentation.

unet architecture

This model was able to achieve a dice score of 0.83 in training data and 0.75 on test data. The model was trained for 94 epochs.

unet accuracy

Result

Below shown predictions on randomly chosen test sample. In Each box left figure shows lung with actual tumor highlighted in white and right figure shows predicted tumor highlighted in white.

result

License

Licensed under the MIT License.

lung_cancer_detection's People

Contributors

ayush9304 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.