Par Équipe Blent
Data Scientist
Publié le 8 mars 2022
Catégorie Machine Learning
Le domaine de la Computer Vision avance très rapidement au cours des dernières années. C'est un domaine qui cherche à automatiser les tâches que le système visuel humain peut accomplir, dont la compréhension complète de n'importe quelle scène visuelle. Pour ce faire, plusieurs architectures de réseaux de neurones ont été créés afin d'accomplir une tâche bien spécifique appelé la segmentation sémantique.
L'une de ces architectures dont en parle très souvent est le U-Net. Ayant fait ces preuves en termes de précision et rapidité, le U-Net est maintenant le plus utilisé pour la segmentation d'images, surtout dans le domaine d'imagerie biomédicale.
Dans cet article, nous examinerons le concept de la segmentation sémantique et nous allons détailler le fonctionnement, les avantages de l'architecture U-Net ainsi que des exemples de ses variantes.
Il y a différents niveaux de granularité dans lesquels les ordinateurs peuvent acquérir une compréhension des images. Pour chacun de ces niveaux, il y a un problème défini dans le domaine Computer Vision, à partir d’une compréhension grossière jusqu’à une compréhension plus fine.
À lire aussi : découvrez notre formation MLOps
On se trouve à chaque fois avec une tâche plus compliquée et pour laquelle on a recours à des types différents d'architecture de réseaux de neurones adaptés.
Comme on l'a déjà dit, la segmentation sémantique est tache précise de la vision par ordinateur qui vise à classer chaque pixel d’une image dans une classe particulière. Cette tache est appliquée dans plusieurs cas d'usage, par exemple :
Il existe plusieurs architectures de réseaux de neurones standard qui ont apporté des contributions significatives au domaine de la vision par ordinateur étant souvent utilisés comme base des systèmes de segmentation sémantique. On peut citer en guise d'exemple : AlexNet, ResNet, VGG-16 et GoogLeNet et bien évidemment le U-Net.
L’idée principale derrière les CNNs est d’apprendre le mappage de fonctionnalités d’une image. Cela fonctionne très bien dans les problèmes de classification lorsque l’image est convertie en un vecteur qui est utilisé après pour la classification. Mais dans la segmentation d’image, on doit non seulement la convertir en vecteur, mais aussi reconstruire une image à partir de ce vecteur. C’est une tâche gigantesque, car il est beaucoup plus difficile de convertir un vecteur en image que l’inverse. Toute l’idée d’U-Net tourne autour de ce problème.
U-Net, issu du réseau de neurones CNN traditionnel, a été conçu et appliqué pour la première fois en 2015 pour traiter les images biomédicales. Il est capable de localiser et de distinguer les frontières des éléments composant une certaine image en faisant la classification sur chaque pixel. Détaillons l'architecture de ce modèle afin de comprendre son fonctionnement et ce qui fait qu'il soit aussi précis et adapté à ces situations complexes.
Visuellement, il a une forme en « U ». L’architecture est symétrique et se compose de trois sections : La contraction, le goulot d’étranglement et la section d’expansion.
Le premier bloc aussi appelé encodeur est utilisé pour récupérer le contexte d’une image. Ce bloc consiste en un assemblage de couches de convolution et de couches de max pooling permettant de capturer les caractéristiques d’une image et de réduire sa taille pour diminuer le nombre de paramètres du réseau. Cela consiste en l’application répétée de deux couches de convolution 3x3. Chaque couche est suivie d’une fonction d'activation ReLU et d’une normalisation par lots (batch normalization). Ensuite, une opération de max pooling 2x2 est appliquée pour réduire les dimensions spatiales.
Le pont, ou bien le goulot d’étranglement relie l’encodeur et le réseau de décodeurs et complète le flux d’informations. Il se compose de deux couches de convolutions 3x3, où chaque couche est suivie d’une fonction d’activation ReLU. Le second bloc est celui du décodeur. Il permet la localisation précise grâce à la convolution transposée et permet également de retrouver la taille initiale de l'image. Le bloc décodeur commence par un sur-échantillonnage (upsampling) de la carte des caractéristiques suivie d'une couche de convolution 2x2 transposée. Après, deux couches de convolutions 3x3 sont utilisées, où chaque convolution est suivie d’une fonction d’activation ReLU. La sortie du dernier décodeur passe par une couche de convolution 1x1 avec une fonction d'activation sigmoïde.
U-Net utilise une fonction de perte pour chaque pixel de l’image. La fonction Softmax est appliqué à chaque pixel suivi d’une fonction de perte. Ceci convertit le problème de segmentation en un problème de classification où on doit classer chaque pixel dans l’une des classes.
Il existe de nombreuses applications de segmentation d’image en utilisant U-Net et il existe également plusieurs variantes de ce réseau, des versions améliorées ou bien adaptées à des cas bien précis. On prendra quelque exemples:
À lire aussi : découvrez notre formation MLOps
Il existe d'autres variantes telles le No New U-Net, Le U-Net recurrent, le U-Net dense et le U-Net residuel basé sur le ResNet.
Un avantage de U-Net très important est le fait qu'il est capable de faire la segmentation d’image en prédisant l’image pixel par pixel.
Le U-Net est une architecture réseau conventionnelle pour une segmentation rapide et précise des images. Jusqu’à présent, il a surpassé toutes les méthodes précédentes surtout dans le domaine médical et la détection des anomalies et des tumeurs.
Vous souhaitez vous former au MLOps ?
Articles similaires
20 sept. 2022
Hugging Face est une startup française qui s'est fait connaître grâce à l'infrastructure NLP qu'ils ont développée. Aujourd'hui, elle est sur le point de révolutionner le domaine du Machine Learning et traitement automatique du langage naturel. Dans cet article, nous allons présenter Hugging Face et détailler les taches de base que cette librairie permet de réaliser. Nous allons également énumérer ses avantages et ses alternatifs.
Équipe Blent
Data Scientist
Lire l'article
12 juil. 2022
spaCy est une bibliothèque open-source pour le traitement avancé du langage naturel. Elle est conçue spécifiquement pour une utilisation en production et permet de construire des applications qui traitent et comprennent de grands volumes de texte.
Équipe Blent
Data Scientist
Lire l'article
4 juil. 2022
Un auto-encodeur est une structure de réseaux neuronaux profonds qui s'entraîne pour réduire la quantité de données nécessaires pour représenter une donnée d'entrée. Ils sont couramment utilisés en apprentissage automatique pour effectuer des tâches de compression de données, d'apprentissage de représentations et de détection de motifs.
Équipe Blent
Data Scientist
Lire l'article
60 rue François 1er
75008 Paris
Blent est une plateforme 100% en ligne pour se former aux métiers Tech & Data.
Organisme de formation n°11755985075.
Data Engineering
IA Générative
MLOps
Cloud & DevOps
À propos
Gestion des cookies
© 2024 Blent.ai | Tous droits réservés