U-Net est un réseau de neurones à convolution développé pour la segmentation d'images biomédicales au département d'informatique de l'université de Fribourg en Allemagne[1]. Le réseau est basé sur l'architecture dite entièrement convolutionnelle (fully convolutional networks)[2], modifiée et étendue pour fonctionner avec moins d’images d'entrainement et pour permettre une segmentation plus précise. La segmentation d'une image 512 * 512 prend moins d'une seconde sur un GPU récent.

L'architecture U-Net a eu un impact important (plusieurs dizaines de milliers de citations de l'article original[3]) et est une des références en matière de modèles image-to-image (réseaux convertissant une image en une autre de mêmes dimensions)[4],[5].

Description modifier

U-Net est une architecture plus élégante, appelée «réseau entièrement convolutionnel»[2].

L'idée principale est de compléter un contracting network par couches successives, les opérations de pooling sont remplacées par des opérateurs de suréchantillonnage. Par conséquent, ces couches augmentent la résolution de la sortie. De plus, une couche convolutionnelle successive peut alors apprendre à assembler une sortie précise à partir de cette information[1].

Une modification importante dans U-Net est qu'il existe un grand nombre de canaux de fonctions dans la partie de ré-échantillonnage, ce qui permet au réseau de propager des informations de contexte vers des couches de résolution supérieure. En conséquence, le chemin d'expansion est plus ou moins symétrique à la partie contractante et donne une architecture en forme de «U». Le réseau utilise uniquement la partie valide de chaque convolution sans aucune couche entièrement connectée[2]. Pour prédire les pixels dans la zone de bordure de l'image, le contexte manquant est extrapolé en reflétant l'image d'entrée. Cette stratégie de mosaïque est importante pour appliquer le réseau aux images volumineuses, car sinon la résolution serait limitée par la mémoire du processeur graphique.

Historique modifier

U-Net a été proposé par Olaf Ronneberger, Philipp Fischer et Thomas Brox en 2015 dans l'article «UNet: réseaux de convolution pour la segmentation d'images biomédicales» à la Conference on Computer Vision and Pattern Recognition en 2015[1].

C'est une amélioration et un développement de l'architecture entièrement convolutionnelle développée par Evan Shelhamer, Jonathan Long et Trevor Darrell dans leur article "Fully convolutional networks for semantic segmentation" (2014)[2].

Architecture du réseau modifier

 
Un exemple d'architecture de U-Net

Le réseau se compose d'une partie contractante et une voie expansive, ce qui lui confère une architecture en forme de «U». La partie contractante est un réseau de convolution typique qui consiste en une application répétée de convolutions, chacune suivie d'une unité linéaire rectifiée (ReLU) et d'une opération de pooling maximum. Pendant la contraction, les informations spatiales sont réduites tandis que les informations sur les caractéristiques sont augmentées. La voie expansive combine les informations de caractéristiques géographiques et spatiales à travers une séquence de convolutions et concaténations ascendantes avec des fonctionnalités haute résolution issues de la voie contractante[6].

Applications modifier

Il existe de nombreuses applications d' U-Net dans la segmentation d'images biomédicales, telles que la segmentation d'images cérébrales ("BRATS"[7]) ou hépatiques ("siliver07"[8]). L'architecture U-Net a également été appliquée dans d'autres contextes, par exemple pour le pansharpening (en)[9], la segmentation volumétrique 3D[10], ou combinée avec d'autres pour améliorer ses performances[11].

Implémentations modifier

Le code source d'origine, qui s'appuie sur la librairie Caffe (en), est disponible en ligne[6], accompagné des poids du réseau entraîné.

Des implémentations tierces, notamment en TensorFlow[12], sont également disponibles.

Références modifier

  1. a b et c (en) Olaf Ronneberger, Philipp Fischer et Thomas Brox, « U-Net: Convolutional Networks for Biomedical Image Segmentation », Medical Image Computing and Computer-Assisted Intervention – MICCAI 2015, Springer International Publishing,‎ , p. 234–241 (ISBN 978-3-319-24574-4, DOI 10.1007/978-3-319-24574-4_28, lire en ligne, consulté le )
  2. a b c et d Jonathan Long, Evan Shelhamer et Trevor Darrell, « Fully convolutional networks for semantic segmentation », 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), IEEE,‎ , p. 3431–3440 (ISBN 978-1-4673-6964-0, DOI 10.1109/CVPR.2015.7298965, lire en ligne, consulté le )
  3. « Google Scholar », sur scholar.google.com (consulté le )
  4. Phillip Isola, Jun-Yan Zhu, Tinghui Zhou et Alexei A. Efros, « Image-to-Image Translation with Conditional Adversarial Networks », 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), IEEE,‎ , p. 5967–5976 (ISBN 978-1-5386-0457-1, DOI 10.1109/CVPR.2017.632, lire en ligne, consulté le )
  5. Matan Sela, Elad Richardson et Ron Kimmel, « Unrestricted Facial Geometry Reconstruction Using Image-to-Image Translation », 2017 IEEE International Conference on Computer Vision (ICCV),‎ , p. 1585–1594 (DOI 10.1109/ICCV.2017.175, lire en ligne, consulté le )
  6. a et b « U-Net: Convolutional Networks for Biomedical Image Segmentation », lmb.informatik.uni-freiburg.de (consulté le )
  7. « MICCAI BraTS 2017: Scope | Section for Biomedical Image Analysis (SBIA) | Perelman School of Medicine at the University of Pennsylvania », www.med.upenn.edu (consulté le )
  8. « SLIVER07 : Home », www.sliver07.org (consulté le )
  9. (en) « Pixel-wise regression using U-Net and its application on pansharpening », Neurocomputing, vol. 312,‎ , p. 364–371 (ISSN 0925-2312, DOI 10.1016/j.neucom.2018.05.103, lire en ligne)
  10. (en) Özgün Çiçek, Ahmed Abdulkadir, Soeren S. Lienkamp et Thomas Brox, « 3D U-Net: Learning Dense Volumetric Segmentation from Sparse Annotation », dans Medical Image Computing and Computer-Assisted Intervention – MICCAI 2016, vol. 9901, Springer International Publishing, (ISBN 978-3-319-46722-1, DOI 10.1007/978-3-319-46723-8_49, lire en ligne), p. 424–432
  11. Vladimir Iglovikov et Alexey Shvets, « TernausNet: U-Net with VGG11 Encoder Pre-Trained on ImageNet for Image Segmentation », arXiv:1801.05746 [cs],‎ (lire en ligne, consulté le )
  12. Joel Akeret, Generic U-Net Tensorflow implementation for image segmentation: jakeret/tf_unet, (lire en ligne)

Liens externes modifier