Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

U-Net

U-Net est un CNN encodeur-décodeur en forme de U dont les connexions de saut assurent une segmentation précise au pixel près à partir de quelques images d’entraînement. Architecture, variantes et code.

U-Net est un réseau de neurones convolutif (CNN) conçu pour la segmentation sémantique, qui consiste à attribuer une classe à chaque pixel d’une image. Olaf Ronneberger, Philipp Fischer et Thomas Brox, de l’université de Fribourg, l’ont présenté en 2015 dans U-Net: Convolutional Networks for Biomedical Image Segmentation. Un encodeur réduit l’image pour en capturer le contenu, un décodeur rétablit la résolution d’origine et des connexions de saut transmettent au décodeur les détails fins de l’encodeur à chaque échelle, ce qui permet de délimiter nettement les objets. U-Net s’est entraîné efficacement sur quelques dizaines d’images de microscopie annotées, a remporté deux catégories du défi de suivi cellulaire ISBI 2015 avec une large avance et reste un modèle de référence en analyse d’images médicales. Sa conception est ensuite devenue le réseau de débruitage de nombreux modèles de diffusion.

Fonctionnement de U-Net#

Le réseau comporte deux moitiés symétriques, dessinées comme les deux branches d’un U :

  • Chemin contractant (encodeur) : des paires répétées de convolutions 3 × 3 avec activations ReLU, chacune suivie d’un max pooling 2 × 2 qui réduit de moitié la résolution. Le nombre de canaux double à chaque niveau, de 64 à 1 024, ce qui échange le détail spatial contre un champ réceptif plus large et des caractéristiques plus riches.
  • Chemin expansif (décodeur) : à chaque niveau, une convolution de suréchantillonnage 2 × 2 double la résolution et divise le nombre de canaux par deux. Le résultat est concaténé à la carte de caractéristiques de l’encodeur du même niveau, puis deux convolutions 3 × 3 fusionnent les deux. Une convolution finale 1 × 1 convertit les caractéristiques de chaque pixel en scores de classe.

Le réseau original comporte 23 couches convolutives et quatre étapes de pooling. Il utilisait des convolutions sans remplissage : une tuile d’entrée de 572 × 572 produisait donc une carte de segmentation de 388 × 388, et les grandes images étaient segmentées en tuiles chevauchantes. La plupart des implémentations actuelles ajoutent du remplissage aux convolutions afin que la sortie ait les mêmes dimensions que l’entrée.

Connexions de saut#

Le pooling supprime précisément l’emplacement de chaque caractéristique. Au niveau du goulot d’étranglement, le réseau sait qu’une région contient une membrane cellulaire, mais ignore quels pixels celle-ci traverse. Les connexions de saut copient la carte de caractéristiques haute résolution de chaque niveau de l’encodeur à travers le U jusqu’au décodeur, qui combine le « quoi » du chemin suréchantillonné avec le « où » de l’encodeur. U-Net concatène les deux le long de la dimension des canaux, tandis que les connexions résiduelles de ResNet additionnent les caractéristiques à l’intérieur d’un bloc. Ce code PyTorch construit un niveau d’encodeur, un goulot d’étranglement et un niveau de décodeur :

import torch
from torch import nn

# One encoder level, a bottleneck, and one decoder level of a U-Net
encoder = nn.Sequential(nn.Conv2d(3, 16, 3, padding=1), nn.ReLU())
bottleneck = nn.Sequential(nn.MaxPool2d(2), nn.Conv2d(16, 32, 3, padding=1), nn.ReLU())
upsample = nn.ConvTranspose2d(32, 16, kernel_size=2, stride=2)
decoder = nn.Sequential(nn.Conv2d(32, 16, 3, padding=1), nn.ReLU())
head = nn.Conv2d(16, 2, kernel_size=1)  # 2 classes, e.g. cell and background

image = torch.randn(1, 3, 128, 128)
skip = encoder(image)  # full-resolution features kept for the decoder
context = bottleneck(skip)  # half resolution, twice the channels, wider context

# Skip connection: concatenate upsampled context with the saved high-resolution features
merged = torch.cat([upsample(context), skip], dim=1)
logits = head(decoder(merged))
print(f"context {tuple(context.shape)} -> merged {tuple(merged.shape)} -> logits {tuple(logits.shape)}")

Le code affiche context (1, 32, 64, 64) -> merged (1, 32, 128, 128) -> logits (1, 2, 128, 128) : les 16 canaux de contexte suréchantillonnés et les 16 canaux de saut se combinent pour en former 32, et la sortie contient deux scores de classe pour chacun des pixels d’entrée, soit 128 × 128 pixels.

Entraînement avec peu de données#

Le jeu d’entraînement original consacré aux structures neuronales en microscopie électronique contenait 30 images de 512 × 512 pixels. U-Net a compensé ce faible volume par une forte augmentation des données, notamment des déformations élastiques aléatoires imitant les courbures des tissus, et par une fonction de perte d’entropie croisée pondérée qui met l’accent sur les fines zones d’arrière-plan entre les cellules adjacentes, afin que les cellules voisines forment des régions distinctes. Les modèles de segmentation médicale s’entraînent souvent aujourd’hui avec la perte Dice, qui mesure directement le chevauchement des masques et gère le cas où une petite structure n’occupe que quelques pour cent des pixels.

Variantes et modèles dérivés#

  • 3D U-Net et V-Net : remplacent les opérations 2D par des opérations 3D afin de segmenter des volumes tels que les scanners CT et IRM.
  • Attention U-Net et UNet++ : ajoutent des portes d’attention ou des chemins de saut imbriqués et densément connectés afin d’affiner les caractéristiques de l’encodeur transmises au décodeur.
  • nnU-Net : un cadre qui configure automatiquement le prétraitement, l’architecture et l’entraînement pour un nouveau jeu de données. Une étude présentée à MICCAI 2024 a conclu que les U-Net basés sur des CNN et bien réglés dans ce cadre surpassent encore les architectures récentes Transformer et Mamba pour la segmentation médicale 3D, lorsqu’elles sont évaluées rigoureusement.
  • U-Net de diffusion : DDPM et Stable Diffusion 1.x utilisent un U-Net pour prédire le bruit dans une image ou un espace latent, avec des couches d’attention permettant au prompt de guider la génération. Le U-Net de Stable Diffusion 1.x compte environ 860 millions de paramètres, et ControlNet se connecte à l’encodeur de ce U-Net. Les générateurs plus récents remplacent U-Net par des Transformers de diffusion.
  • Réseaux entièrement convolutifs (FCN) : le FCN de 2014 a transformé les classifieurs en modèles de prédiction par pixel et fusionné les prédictions grossières et fines en additionnant les cartes de scores de classe. U-Net a construit un décodeur complet avec concaténation des caractéristiques à chaque niveau.
  • Autoencodeurs : ils ont aussi la structure d’un encodeur et d’un décodeur, mais s’entraînent à reconstruire leur entrée à travers un goulot d’étranglement étroit. Les connexions de saut permettraient à un autoencodeur de contourner ce goulot, alors que U-Net en a besoin pour produire des étiquettes alignées sur chaque pixel.
  • Modèles de segmentation d’instances : U-Net produit une classe par pixel. Deux objets adjacents de la même classe partagent donc la même étiquette, sauf si l’entraînement ou le post-traitement les sépare.

Les modèles de segmentation sémantique Ultralytics YOLO26, identifiés par le suffixe -sem, utilisent une version raccourcie du décodeur U-Net. Leur col rééchantillonne deux fois la sortie du backbone à l’échelle 1/32, en concaténant en chemin les caractéristiques du backbone aux échelles 1/16 et 1/8. Le modèle classe ensuite les pixels à l’échelle 1/8 et suréchantillonne les scores de classe 8 fois pour retrouver la taille de l’entrée.

Applications concrètes#

  • Analyse d’images satellites : les cartes de couverture terrestre étiquettent chaque pixel comme eau, forêt, terre cultivée ou bâtiment afin de suivre la déforestation et l’expansion urbaine.
  • Inspection industrielle : les masques de pixels représentant les rayures, les fissures et la corrosion mesurent la taille et la forme exactes d’un défaut, contrairement à une boîte englobante.
  • Imagerie médicale : les U-Net délimitent les organes, les tumeurs et les lésions sur les scanners CT et IRM pour le diagnostic et la planification de la radiothérapie, et séparent les cellules individuelles en microscopie. Lors du défi de suivi cellulaire ISBI 2015, U-Net entraîné sur 20 images de cellules HeLa partiellement annotées a atteint un IoU moyen de 77,5 %, contre 46 % pour la deuxième meilleure méthode.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique