GithubHelp home page GithubHelp logo

yiangahead / bus_deep_learning Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mroussak/bus_deep_learning

0.0 0.0 0.0 13.91 MB

Detection of Malignant and Benign lesions in Breast Ultrasound Images using Deep Learning

Python 0.17% Jupyter Notebook 99.83%

bus_deep_learning's Introduction

BUS_Deep_Learning

This repository trains and implements a variety of convolutional neural network architectures designed for segmenting and classifying malignant and benign lesions in breast ultrasound images

DATASET

The data set was obtained from the following source:

https://scholar.cu.edu.eg/?q=afahmy/pages/dataset

The dataset contains 780 BUS images and their corresponding tumour masks. There are: *437 images with benign tumours *210 images with malignant tumours *133 images with no tumours

The training/validation split was performed in a stratified manner with an 80/20 split with the following output:

Train

  • 350 images with benign tumours
  • 168 images with malignant tumours
  • 106 images with no tumours

624 images in total

Validation

  • 87 images with benign tumours
  • 42 images with malignant tumours
  • 27 images with no tumours

156 images in total

Preprocessing methods *CLAHE *Histogram Equalization *Division of pixel values by 255

https://docs.opencv.org/master/d5/daf/tutorial_py_histogram_equalization.html

SEG MODEL

The base architecture used for comparitive purposes is a standard u-net architecture. The unet architecture contains a series of up and down blocks that function as a encoder-decoder network.

unet.jpg

Various modification were then performed on the unet:

1- Batch Normalization layers were added after every convolutional block

2- Residual layers were added to both every up and down block and additional convolutional layers were added in the up blocks to manage the data flow through the paths of the residual layers

Additionally, experiments were run in which data augmentation was applied on the dataset before training. Specifally, horizontal and vertical shifts, shears and horizontal flipping was performed.

An Adam Optimizer was used for training all the models with a learning rate of 1e-4 and the stanard sigmoid loss was replaced with the dice loss commonly used in medical segmentation tasks.

Comparison between standard u-net (left) and u-net with batch normalization (right)

--> Down Block

u-net u-net + batch norm
unet_bus_base_db.png unet_bus_base+batchnorm_db.jpg

--> UpBlock

u-net u-net + batch norm
unet_bus_base_ub.png unet_bus_base+batchnorm_ub.jpg

Comparison between u-net with batch normalization (left) and res-unet with batch normalization (right)

--> Down Block

u-net + batch norm res-unet + batch norm
unet_bus_base+batchnorm_db.png res_unet_bus_base+batchnorm_db.png

--> UpBlock

u-net + batch norm res-unet + batch norm
unet_bus_base+batchnorm_ub.png res_unet_bus_base+batchnorm_ub.png

Additionally, a U-Net++, an ensemble network of unets, was used, details about which can be found here --> https://arxiv.org/pdf/1912.05074.pdf

The U-Net++ was implemented using a inception resnet v2 backbone with the standard sigmoid loss replaced with dice loss.

Details about the exact configuration can be found on the official implementation github's repository, which was used in this study--> https://github.com/MrGiovanni/UNetPlusPlus

CLASSIFICATION MODEL

A classification model that predicted whether a tumour was malignant or benign was trained as well using the following architectures. These were done with and without the augmentation techinques described above.

  • resnet50
  • inception resnet v2

RESULTS

Segmentation

validation_set_results_seg_w_normals.png

Considerable imporovement was obtained over the standard u-net architecture

IOU 6.8% improvement from u-net with no augmentation and no batch normalization to res-unet with no augmentation and no batch normalization

Dice Loss 6.1% improvement from u-net with no augmentation and no batch normalization to res-unet with no augmentation and no batch normalization

Classification

validation_set_results_classification.png

REFERENCES

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6707567/#pone.0221535.ref022

https://bmcmedimaging.biomedcentral.com/articles/10.1186/s12880-019-0389-2

https://arxiv.org/pdf/1912.05074.pdf

https://arxiv.org/pdf/1911.07067.pdf

bus_deep_learning's People

Contributors

mroussak 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.