Skip to content

JeremyKTH/Brain-MRI-Image-Segmentation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Brain MRI Image Segmentation with U-Net

The network architecture in this project is based on the original U-Net publication U-Net: ConvolutionalNetworks for Biomedical Image Segmentation. The codes in this repo are mainly developed in Python and GoogleColab.

Table of contents

Introduction

The U-Net architecture of this project consists of an encoder and a decoder part that together givethe network an U-shaped form. The encoder part follows a traditional architecture of aconvolutional network. Each layer consists of a repeated 3x3 padded double convolutions, followed by batch normalization and a rectifier linear units (ReLU) activation. The output feature map is stored as a skip connection which will later be concatenated to the decoder part. Moving downwardsthrough the network, a down sampling is performed by a 2x2 max pooling operation with a stride of2, which doubles the number of feature channels.

UNet

Dataset

Brain MRI images

Requirements

  • Python 3.9.1
  • PyTorch 1.8.1
  • CUDA toolkit 10.2
  • Albumentations

Experiments

  1. Optimiser Comparison - SGD vs Adam
  2. Loss Comparison - Binary Cross-Entropy(BCE) Loss vs Dice Loss vs BCE + Dice

Results

In this project, it was found that Adam optimiser with Binary Cross-Entropy Loss produce the best test result.

SGD + BCE (Test accuracy: 68.13%)

50_sgd_bce

Adam + BCE (Test accuracy: 76.48%)

50_adam_bce

Adam + Dice (Test accuracy: 74.13%)

50_adam_dice

Adam + BCE + BCE (Test accuracy: 73.81%)

50_adam_bce_dice

Contact