Posted on

[Updated on: 2019-01-14]

downloads

  • mémoire
  • slides (The presentation took place in Belfort, France in august 2018)

aim

Our aim was to train a deep neural network so that so that it is then able to segment zones of interest in heart MRIs.

This is for example a heart MRI, unlabelled:

MRI image

And this is the same MRI, labelled by a cardiologist:

MRI image contoured

convolutional neural Network

Our solution is derived from the deeplab convolutional neural network designed by Chen et al. (2016 and 2017) and from its implementation in pytorch by Kazuto Nakashima (github repository)

The deeplab (v3) architecture (Chen et al, 2017):

A trous convolution image level features

One key element in our implementation is to set the loss definition as follows:

Criterion

The best results were achieved with the deeplab v3 architecture. The batch size is set to $2$. In the first part of the training, the learning rate is constant and is set to $2.5 \times 10^{-4}$.

training first part

We keep the $15000$ iterations point as the starting point of a second phase of training. This time, the learning rate is automatically decreased. It is multiplied by :

$$ (1 - \frac{iter}{max_iter})^{0.9} $$

We obtain the following evolution of the performance:

training second part

And we keep the $10000$ (additional) iterations checkpoint.

Overall, the total training time was $30$ hours for the $25000$ iterations. The training was performed on a Geforce Titan X GPU, with a batch size of 2, and each iteration would last about 4.3 seconds.

results

Here are two examples (from the test set) for which the prediction is rather good:

results

results

And a two more examples (from the test set) for which it is more problematic:

results

results

The performance metrics are:

performance

Dice: the Dice coefficient; IoU: Intersection over Union.

Class 0 corresponds to black, that is the contour being drawn. An IoU of $0.46$ means that the prediction by the training network is rather good.

acknowledgments

Many thanks to Raphaël Couturier and Michel Salomon from the AND research group of the femto-st institute, for their support and advice, and for providing computer time on their GPUs.

And also many thanks to Kazuto Nakashima for sharing his excellent pytorch implementation of deeplab.