1 of 37

Segmentation of

challenging microscopy

images

Yaroslava Lochman

2 of 37

Acknowledgement

3 of 37

Acknowledgement

4 of 37

Acknowledgement

Dmytro Hrishko

Yaroslava Lochman

Illya Stolpakov

Matus Chladek

Dmytro Fishman

5 of 37

Motivation

Automated medical image processing & analysis

Fast & accurate results

Fast disease diagnostics

6 of 37

Presentation pipeline

  1. Problem
  1. Model
  1. Results

- Final model details

- Evaluation scores

- Microscopy images overview

- Processing steps

- Architecture details

- Losses

- Evaluation metrics

  1. Data

- Statement

- Approaches

7 of 37

Semantic segmentation

Problem

8 of 37

Problem statement

?

Model

400

750

9 of 37

Approaches

“Classic” approaches

Single-Histogram Class Models (2006)

TextonForest (2008)

Random Forest (2008)

Deep learning era (CNNs)

FCN (2014)

UNet (2015)

SegNet (2015)

PSPNet (2016)

LinkNet (2017)

DeepLab (2017)

FC-DenseNet or Tiramisu (2017)

TernausNet (2018)

...

10 of 37

Approaches

Before deep learning

Single-Histogram Class Models (2006)

TextonForest (2008)

Random Forest (2008)

Deep learning era (CNNs)

FCN (2014)

UNet (2015)

SegNet (2015)

PSPNet (2016)

LinkNet (2017)

DeepLab (2017)

FC-DenseNet or Tiramisu (2017)

TernausNet (2018)

...

11 of 37

Data insights

Processing microscopy images

12 of 37

Microscopy images

  • 35 images
    • ~15% of tissues
    • ~85% background

  • different sizes, shapes
  • different colors
  • dirt, holes, noise

...

27

train

val

8

13 of 37

Train-time augmentation

Motivation:

  • make dataset large and diverse
  • make algorithm more ‘invariant’ (stable) to different transformations

Libraries used:

  • imgaug
  • albumentations

(alternate input image during training)

Final: random crop 256x256

14 of 37

✅ Flip

✅ Affine transformations

✅ Translation

15 of 37

✅ Contrast / Brightness

Grayscale

✅ HSV

16 of 37

✅ Gaussian Noise

Median / Gaussian Blur

✅ Sharpen / Emboss

17 of 37

Train-time augmentation. Examples

256

256

18 of 37

Model

Architecture overview & training

19 of 37

Semantic segmentation

20 of 37

U-net

21 of 37

Encoder (downsampling)

Pooling

Convolutions with different

  • stride
  • dilation (atrous convolutions)

Blue maps are inputs, and cyan maps are outputs.

padding ‘same’

stride 2, no dilation

no stride, dilation 2

no padding

no stride, no dilation

pooling 2x2,

stride 2

“Simple”

convolution

22 of 37

Decoder (upsampling)

no padding

no stride, no dilation

“Simple”

convolution

Transposed convolutions (deconvolutions)

padding

stride 2 (transposed)

23 of 37

More about architecture

Final 1x1 convolution + softmax

Skip connection

24 of 37

More about architecture

Final 1x1 convolution + softmax

Skip connection

25 of 37

TernausNet

26 of 37

TernausNet

27 of 37

TernausNet

28 of 37

Metrics. Loss function

Pixel-wise binary cross entropy loss

29 of 37

Metrics. Evaluation

Precision & Recall

Dice:

F-score (generalization):

Jaccard:

30 of 37

Metrics. Evaluation

Jaccard index

Y

P

Y

P

P

Y

Y

P

Y

P

Y

P

Y

P

Y

P

2

or Intersection over Union (IoU)

Precision Recall Dice

31 of 37

Metrics

e.g. soft jaccard as addition to BCE (used in TernausNet)

Dice & Jaccard are often used in addition to BCE

Dice & Jaccard losses

32 of 37

and further improvements

Results

33 of 37

Baseline results

Mean IoU: 0.79

Mean precision: 0.87

Mean recall: 0.91

34 of 37

Final results

Mean IoU: 0.88

Mean precision: 0.94

Mean recall: 0.93

35 of 37

Accumulated results

36 of 37

Final training details

Architecture: vanilla UNet

Loss: BCE

Adam optimizer

Learning rate 0.0002

Batch size 16

Different augmentations described earlier

200 epochs

37 of 37

Thank you!