Using Convolutional Neural Networks (CNN) for Semantic Segmentation of Breast Cancer Lesions (BRCA)

Overview

cnn4brca

Using Convolutional Neural Networks (CNN) for Semantic Segmentation of Breast Cancer Lesions (BRCA). Master's thesis documents. Bibliography, experiments and reports.

Most articles in the Bibliography folder were obtained directly from the authors or via agreements with my home institution. Please consider any copyright infringement before using them.

Contact info:

Erick Cobos Tandazo
[email protected]

Usage

Data set

  1. You can obtain the BCDR database online (Moura et al.). I used the BCDR-DO1 data set, this one has around 70 patients(~300 digital mammograms) with breast masses and their lesion outlines. fileOrganization has some info on how is this images ordered.

  2. To obtain the masks (from the outlines provided in the database) you can use createMasks.m. This reads the mammogram info from a couple of files provided in the database: sample bcdr_d01_img.csv and sample bcdr_d01_outlines.csv

    Output should look like this:

  3. Use prepareDB to enhance the contrast of the mammograms and downsample them to have a manageable size (2cmx2cm in the mammogram in 128x128).

    Output looks like this:

  4. Finally you would need to divide the dataset into training, validation and test patients. You would need to produce a .csv with image and label filenames as this for each set.

Training

  1. You would need to install Tensorflow
  2. Run train or train_with_val_split to train networks. These train the network defined in model_v3, a fully convolutional network with 10 layers (900K parameters) that uses dillated convolution and is modelled in a ResNet network. Training is done image by image (no batch, but cost is computed in every pixel of the thousand of pixels) and uses dropout among other things Note: Code was written for tensorflow 1.11.0 so it would need to be modified to make work in tf1.0

Evaluation

  1. You can use compute_metrics or compute_FROC to compute evaluation metrics or the FROC curve.

You are invited to check the code for more details, I tried to document it nicely.

You might also like...
A PyTorch implementation for V-Net: Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation
A PyTorch implementation for V-Net: Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation

A PyTorch implementation of V-Net Vnet is a PyTorch implementation of the paper V-Net: Fully Convolutional Neural Networks for Volumetric Medical Imag

Siamese-nn-semantic-text-similarity - A repository containing comprehensive Neural Networks based PyTorch implementations for the semantic text similarity task Cancer metastasis detection with neural conditional random field (NCRF)
Cancer metastasis detection with neural conditional random field (NCRF)

NCRF Prerequisites Data Whole slide images Annotations Patch images Model Training Testing Tissue mask Probability map Tumor localization FROC evaluat

PyTorch implementation of ShapeConv: Shape-aware Convolutional Layer for RGB-D Indoor Semantic Segmentation.
PyTorch implementation of ShapeConv: Shape-aware Convolutional Layer for RGB-D Indoor Semantic Segmentation.

Shape-aware Convolutional Layer (ShapeConv) PyTorch implementation of ShapeConv: Shape-aware Convolutional Layer for RGB-D Indoor Semantic Segmentatio

 U-Net Implementation: Convolutional Networks for Biomedical Image Segmentation
U-Net Implementation: Convolutional Networks for Biomedical Image Segmentation" using the Carvana Image Masking Dataset in PyTorch

U-Net Implementation By Christopher Ley This is my interpretation and implementation of the famous paper "U-Net: Convolutional Networks for Biomedical

An implementation of the research paper
An implementation of the research paper "Retina Blood Vessel Segmentation Using A U-Net Based Convolutional Neural Network"

Retina Blood Vessels Segmentation This is an implementation of the research paper "Retina Blood Vessel Segmentation Using A U-Net Based Convolutional

Mae segmentation - Reproduction of semantic segmentation using masked autoencoder (mae)

ADE20k Semantic segmentation with MAE Getting started Install the mmsegmentation

Spontaneous Facial Micro Expression Recognition using 3D Spatio-Temporal Convolutional Neural Networks

Spontaneous Facial Micro Expression Recognition using 3D Spatio-Temporal Convolutional Neural Networks Abstract Facial expression recognition in video

Learning and Building Convolutional Neural Networks using PyTorch
Learning and Building Convolutional Neural Networks using PyTorch

Image Classification Using Deep Learning Learning and Building Convolutional Neural Networks using PyTorch. Models, selected are based on number of ci

Comments
  • error while running ./train.py

    error while running ./train.py

    hello, I'm trying to test your code, but i come with this error,

    Traceback (most recent call last): File "train.py", line 174, in train() File "train.py", line 148, in train loss_summary = tf.summary.scalar(['logistic_loss', 'loss'], [train_logistic_loss, train_loss], collections=[]) File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/summary/summary.py", line 118, in scalar name = _clean_tag(name) File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/summary/summary.py", line 90, in _clean_tag new_name = INVALID_TAG_CHARACTERS.sub('', name) TypeError: expected string or bytes-like object

    Thanks,

    opened by mohamed945 2
  • Microcalcification detection using CNN !

    Microcalcification detection using CNN !

    hello, Thanks for this code, Actually, I'm interested in microcalcification detection using CNN algorithm. Is it possible to modify your code so that i detect microcalcif in mammo ? if yes, How can i proceed plz !

    Thanks,

    opened by Maya1994 2
  •  createMasks.m

    createMasks.m

    Hello, how can i use createMasks.m for my own single mammogram please ? I didnt understand the code !! should I run it with matlab only , is there any python version ? Sorry if my question sound stupid !!!

    Many Thanks,

    opened by EngNala 1
  • Test new mammogram

    Test new mammogram

    Hello, So finally, and after running compute_metrics how can I check the existence of lesion in a new input mammogram ? I didn't understand what compute_metrics do .

    Thanks,

    opened by EngNala 1
Owner
Erick Cobos
Interested in Machine Learning and Neuroscience. I support science and openness in any way or form :)
Erick Cobos
Patient-Survival - Using Python, I developed a Machine Learning model using classification techniques such as Random Forest and SVM classifiers to predict a patient's survival status that have undergone breast cancer surgery.

Patient-Survival - Using Python, I developed a Machine Learning model using classification techniques such as Random Forest and SVM classifiers to predict a patient's survival status that have undergone breast cancer surgery.

Nafis Ahmed 1 Dec 28, 2021
Predict Breast Cancer Wisconsin (Diagnostic) using Naive Bayes

Naive-Bayes Predict Breast Cancer Wisconsin (Diagnostic) using Naive Bayes Downloading Data Set Use our Breast Cancer Wisconsin Data Set Also you can

Faeze Habibi 0 Apr 6, 2022
This project deals with the detection of skin lesions within the ISICs dataset using YOLOv3 Object Detection with Darknet.

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. Skin Lesion detection using YOLO This project deal

Lalith Veerabhadrappa Badiger 1 Nov 22, 2021
This project aims to segment 4 common retinal lesions from Fundus Images.

This project aims to segment 4 common retinal lesions from Fundus Images.

Husam Nujaim 1 Oct 10, 2021
《A-CNN: Annularly Convolutional Neural Networks on Point Clouds》(2019)

A-CNN: Annularly Convolutional Neural Networks on Point Clouds Created by Artem Komarichev, Zichun Zhong, Jing Hua from Department of Computer Science

Artёm Komarichev 44 Feb 24, 2022
This repository implements and evaluates convolutional networks on the Möbius strip as toy model instantiations of Coordinate Independent Convolutional Networks.

Orientation independent Möbius CNNs This repository implements and evaluates convolutional networks on the Möbius strip as toy model instantiations of

Maurice Weiler 59 Dec 9, 2022
Scripts for training an AI to play the endless runner Subway Surfers using a supervised machine learning approach by imitation and a convolutional neural network (CNN) for image classification

About subwAI subwAI - a project for training an AI to play the endless runner Subway Surfers using a supervised machine learning approach by imitation

null 82 Jan 1, 2023
Cancer Drug Response Prediction via a Hybrid Graph Convolutional Network

DeepCDR Cancer Drug Response Prediction via a Hybrid Graph Convolutional Network This work has been accepted to ECCB2020 and was also published in the

Qiao Liu 50 Dec 18, 2022
NFT-Price-Prediction-CNN - Using visual feature extraction, prices of NFTs are predicted via CNN (Alexnet and Resnet) architectures.

NFT-Price-Prediction-CNN - Using visual feature extraction, prices of NFTs are predicted via CNN (Alexnet and Resnet) architectures.

null 5 Nov 3, 2022
Recall Loss for Semantic Segmentation (This repo implements the paper: Recall Loss for Semantic Segmentation)

Recall Loss for Semantic Segmentation (This repo implements the paper: Recall Loss for Semantic Segmentation) Download Synthia dataset The model uses

null 32 Sep 21, 2022