1 of 22

Progress Report

P. Karthik

Mansi Parashar

August 2021

2 of 22

PROBLEM STATEMENT

  • Federated Segmentation for BioMedical Images
  • Dataset -  The Liver Tumor Segmentation Benchmark (LiTS) : is a liver tumor segmentation benchmark.
  • Problem Statement Complexities:
    • Working with 3D Bio Medical images
    • Multiclass segmentation – Liver + Tumor
    • Introducing federated training for segmentation task

3 of 22

DEEP LEARNING FOR SEGMENTATION

Medical Image

Liver – Class 1

Tumor - Class 2

Data loading is done by SimpleITK library

4 of 22

DATASET DETAILS

  • Dataset used: Liver tumor segmentation (LITS) challenge.
  • Data consists of 230 patients annotated volumes.

Data Preprocessing:

  1. Data is loaded using SimpleITK library.
  2. The data is split into patches of (32,128,128) to perform 3D segmentation.
  3. Based on the voxels, the data is split across folders if the patch contains liver/tumor or only background.
  4. In total, 545 tumor patches, 1330 liver patches, 9341 non class patches were extracted.

Data Splitting:

  1. Training Set: 3815 patches [445 tumor + 1170 liver patches + 2200 non class]
  2. Validation and Test set: 330 patches each [50 tumor + 80 liver + 100 non class]

Data Augmentation used:

1) Rotation of 10 degrees in the axial direction.

2) Horizontal and vertical flip

5 of 22

1. Extracting patches from 3D volumes

6 of 22

2. Augmentation and Train/Val data generators

7 of 22

3. Model Architecture - UNet

  • Standard Encoding decoding architecture with 4 encoding and decoding layers.
  • Each encoding layer: Pair of convolutional layers with ‘relu’ activation function.
  • In the upsampling layers, after the skip connections (concatenation), a similar pair of convolutional layers followed by Batch normalization.
  • The output layer outputs 3 channels (each for three classes- background, tumor, liver) and the activation function used is ‘softmax’.
  • The dice function performs argmax to get the respective classes.

8 of 22

4. Metrics – Weighted Dice and Dice loss

9 of 22

Flower Architecture

10 of 22

FL Client

FL Client

FL Client

11 of 22

FEDERATED SEGMENTATION - FLOWER

PyTorch

  • python = "^3.6.2"
  • flwr = "^0.15.0"
  • torch = "1.7.1"
  • torchvision = "0.8.2"

TensorFlow

  • python = "^3.6.2"
  • flwr = "^0.15.0"
  • tensorflow-cpu = "2.4.1"

12 of 22

FLOWER – PROJECT STRUCTURE

Server.py

Client.py

Main.py

Dataset

Masks

Images

Requirements.txt

13 of 22

2. Main.py – centralized segmentation code

Centralized code wrapped up as

  • Data Loader
  • Model class
  • Train wrapper
  • Test wrapper

14 of 22

1. Flower Client

FLOWER CLIENT

get_parameters set_parameters fit evaluate

15 of 22

CENTRALIZED TRAINING

16 of 22

FEDERATED TRAINING - BLOCKERS

17 of 22

FEDERATED TRAINING – PROOF OF CONCEPT

  • To provide a proof of concept, we attempted training on limited RAM by
    • Decreasing data size
    • Decreasing model downsampling layers
    • Reducing batch size to 1
    • 3 federated rounds with 1 epoch each

18 of 22

FEDERATED TRAINING – PROOF OF CONCEPT

Federated Server

19 of 22

FEDERATED TRAINING – PROOF OF CONCEPT

Client 1

Client 2

20 of 22

CONCLUSION AND FUTURE WORK

  • Boilerplate code for Federated Segmentation for BioMedical images has been successfully constructed.
  • Complete training would depend on resources in the form of RAM and high performance GPU

  • FUTURE WORK
  • Coding the logic for dynamic allocation of data to each client
  • Experiments with server side aggregation and loss

21 of 22

THANK YOU

22 of 22