Une Introduction à la Super-Résolution à l’aide de l’Apprentissage en Profondeur

Une discussion détaillée sur les différents Composants, Fonctions de Perte et Métriques utilisés pour la Super Résolution à l’aide de l’Apprentissage en profondeur.

Photo de Jeremy Thomas sur Unsplash

Introduction

La super Résolution est le processus de récupération d’une image Haute Résolution (HR) à partir d’une image basse Résolution (LR) donnée . Une image peut avoir une « résolution inférieure » en raison d’une résolution spatiale plus petite (c’est-à-dire la taille) ou en raison d’un résultat de dégradation (tel que le flou). On peut relier les images HR et LR à travers l’équation suivante: LR = degradation(HR)

Une image basse résolution conservée en plus de sa version haute résolution. (Photo de Jarrad Horne sur Unsplash)

Clairement, en appliquant une fonction de dégradation, on obtient l’image LR à partir de l’image HR. Mais, pouvons-nous faire l’inverse? Dans le cas idéal, oui! Si nous connaissons la fonction de dégradation exacte, en appliquant son inverse à l’image LR, nous pouvons récupérer l’image HR.

Mais, là réside le problème. Nous ne connaissons généralement pas la fonction de dégradation à l’avance. L’estimation directe de la fonction de dégradation inverse est un problème mal posé. Malgré cela, les techniques d’apprentissage en profondeur se sont révélées efficaces pour la Super Résolution.

Ce blog se concentre principalement sur l’introduction à la Super Résolution en utilisant l’apprentissage en profondeur en utilisant des méthodes de formation supervisées. Certaines fonctions et mesures de perte importantes sont également discutées. Une grande partie du contenu provient de cette revue de la littérature à laquelle le lecteur peut se référer.

Méthodes supervisées

Comme mentionné précédemment, le deep learning peut être utilisé pour estimer l’image Haute Résolution (HR) à partir d’une image Basse Résolution (LR). En utilisant l’image HR comme cible (ou vérité au sol) et l’image LR comme entrée, nous pouvons traiter cela comme un problème d’apprentissage supervisé.

Dans cette section, nous regroupons différentes approches d’apprentissage profond de la manière dont les couches de convolution sont organisées. Avant de passer aux groupes, une introduction sur la préparation des données et les types de circonvolutions est présentée. Les fonctions de perte utilisées pour optimiser le modèle sont présentées séparément vers la fin de ce blog.

Préparation des données

Une méthode simple pour obtenir des données LR consiste à dégrader les données HR. Cela se fait souvent en brouillant ou en ajoutant du bruit. Les images de résolution spatiale inférieure peuvent également être mises à l’échelle par une méthode classique de suréchantillonnage telle que l’interpolation bilinéaire ou bicubique. Des artefacts JPEG et de quantification peuvent également être introduits pour dégrader l’image.

Dégradant une image haute résolution pour en obtenir une version basse résolution. (Photo de Jarrad Horne sur Unsplash)

Une chose importante à noter est qu’il est recommandé de stocker l’image HR dans un format non compressé (ou compressé sans perte). Il s’agit d’éviter une dégradation de la qualité de l’image HR due à une compression avec perte, ce qui peut donner des performances sous-optimales.

Types de circonvolutions

Outre les circonvolutions 2D classiques, plusieurs variantes intéressantes peuvent être utilisées dans les réseaux pour des résultats améliorés. Les circonvolutions dilatées (atreuses) peuvent fournir un plus grand champ de vision efficace, utilisant ainsi des informations séparées par une grande distance. Les connexions sautées, la mise en commun de pyramides Spatiales et les Blocs denses motivent la combinaison de fonctionnalités de bas et de haut niveau pour améliorer les performances.

Stratégies de conception de réseau. (Source)

L’image ci-dessus mentionne un certain nombre de stratégies de conception de réseau. Vous pouvez consulter ce document pour plus d’informations. Pour une introduction sur les différents types de circonvolutions couramment utilisés dans le deep learning, vous pouvez vous référer à ce blog.

Groupe 1 – Pré-suréchantillonnage

Dans cette méthode, les images à basse résolution sont d’abord interpolées pour obtenir une image haute résolution « grossière ». Maintenant, les CNN sont utilisés pour apprendre un mappage de bout en bout des images basse résolution interpolées aux images haute résolution. L’intuition était qu’il pourrait être plus facile de suréchantillonner d’abord les images à basse résolution en utilisant des méthodes traditionnelles (telles que l’interpolation bilinéaire), puis d’affiner la résultante que d’apprendre un mappage direct d’un espace de faible dimension vers un espace de grande dimension.

Un réseau de pré-suréchantillonnage typique. (Source)

Vous pouvez vous référer à la page 5 de cet article pour certains modèles utilisant cette technique. L’avantage est que puisque le suréchantillonnage est géré par des méthodes traditionnelles, le CNN n’a besoin que d’apprendre à affiner l’image grossière, ce qui est plus simple. De plus, comme nous n’utilisons pas de circonvolutions transposées ici, les artefacts en damier peuvent être contournés. Cependant, l’inconvénient est que les méthodes de suréchantillonnage prédéfinies peuvent amplifier le bruit et provoquer un flou.

Groupe 2 – Post-suréchantillonnage

Dans ce cas, les images de basse résolution sont transmises aux CNN en tant que telles. Le suréchantillonnage est effectué dans la dernière couche à l’aide d’une couche apprenable.

Un réseau de post-suréchantillonnage typique. (Source)

L’avantage de cette méthode est que l’extraction des entités est effectuée dans l’espace de dimension inférieure (avant le suréchantillonnage) et donc la complexité de calcul est réduite. De plus, en utilisant une couche de suréchantillonnage apprenable, le modèle peut être formé de bout en bout.

Groupe 3 – Suréchantillonnage progressif

Dans le groupe ci-dessus, même si la complexité de calcul a été réduite, une seule convolution de suréchantillonnage a été utilisée. Cela rend le processus d’apprentissage plus difficile pour les grands facteurs d’échelle. Pour remédier à cet inconvénient, un cadre de suréchantillonnage progressif a été adopté par des travaux tels que Laplacian Pyramid SR Network (LapSRN) et Progressive SR (ProSR). Les modèles dans ce cas utilisent une cascade de CNN pour reconstruire progressivement des images à haute résolution à des facteurs d’échelle plus petits à chaque étape.

Un réseau de suréchantillonnage progressif typique. (Source)

En décomposant une tâche difficile en tâches plus simples, la difficulté d’apprentissage est considérablement réduite et de meilleures performances peuvent être obtenues. De plus, des stratégies d’apprentissage telles que l’apprentissage par curriculum peuvent être intégrées pour réduire davantage les difficultés d’apprentissage et améliorer les performances finales.

Groupe 4 — Échantillonnage itératif de haut en bas

Une autre architecture de modèle populaire est la structure en sablier (ou en U). Certaines variantes telles que le réseau de sabliers empilés utilisent plusieurs structures de sabliers en série, alternant efficacement entre le processus de suréchantillonnage et de suréchantillonnage.

Un réseau d’échantillonnage ascendant et descendant itératif typique. (Source)

Les modèles sous ce cadre peuvent mieux exploiter les relations profondes entre les paires d’images LR-HR et fournir ainsi des résultats de reconstruction de meilleure qualité.

Fonctions de perte

Les fonctions de perte sont utilisées pour mesurer la différence entre l’image Haute résolution générée et l’image Haute résolution ground truth. Cette différence (erreur) est ensuite utilisée pour optimiser le modèle d’apprentissage supervisé. Il existe plusieurs classes de fonctions de perte où chacune pénalise un aspect différent de l’image générée.

Souvent, plus d’une fonction de perte est utilisée en pondérant et en additionnant les erreurs obtenues de chaque fonction de perte individuellement. Cela permet au modèle de se concentrer simultanément sur les aspects apportés par plusieurs fonctions de perte.

total_loss = weight_1 * loss_1 + weight_ 2 * loss_2 + weight_3 * loss_3

Dans cette section, nous allons explorer certaines classes populaires de fonctions de perte utilisées pour l’entraînement des modèles.

Perte de pixels

La perte de pixels est la classe de fonctions de perte la plus simple où chaque pixel de l’image générée est directement comparé à chaque pixel de l’image de vérité au sol. Des fonctions de perte populaires telles que la perte L1 ou L2 ou des variantes avancées telles que la perte L1 lisse sont utilisées.

Tracé de la perte L1 lisse. (Source)

La métrique PSNR (discutée ci-dessous) est fortement corrélée à la différence par pixel, et donc la minimisation de la perte de pixels maximise directement la valeur de la métrique PSNR (indiquant de bonnes performances). Cependant, la perte de pixels ne prend pas en compte la qualité de l’image et le modèle produit souvent des résultats perceptuellement insatisfaisants (souvent dépourvus de détails à haute fréquence).

Perte de contenu

Cette perte évalue la qualité de l’image en fonction de sa qualité perceptive. Une façon intéressante de le faire consiste à comparer les caractéristiques de haut niveau de l’image générée et l’image de vérité au sol. Nous pouvons obtenir ces caractéristiques de haut niveau en passant ces deux images à travers un réseau de classification d’images pré-formé (tel qu’un VGG-Net ou un ResNet).

Perte de contenu entre une image de vérité au sol et une image générée. (Source)

L’équation ci-dessus calcule la perte de contenu entre une image de vérité au sol et une image générée, compte tenu d’un réseau pré-entraîné (Φ) et d’une couche (l) de ce réseau pré-entraîné sur laquelle la perte est calculée. Cette perte encourage l’image générée à être perceptuellement similaire à l’image de vérité au sol. Pour cette raison, elle est également connue sous le nom de perte perceptuelle.

Perte de texture

Pour permettre à l’image générée d’avoir le même style (texture, couleur, contraste, etc.) comme image de vérité au sol, la perte de texture (ou perte de reconstruction de style) est utilisée. La texture d’une image, telle que décrite par Gatys et. al, est défini comme la corrélation entre différents canaux de caractéristiques. Les canaux de caractéristiques sont généralement obtenus à partir d’une carte de caractéristiques extraite à l’aide d’un réseau de classification d’images pré-formé (Φ).

Calcul de la matrice Gram. (Source)

La corrélation entre les cartes d’entités est représentée par la matrice Gram (G), qui est le produit interne entre les cartes d’entités vectorisées i et j sur la couche l (illustré ci-dessus). Une fois la matrice de gramme calculée pour les deux images, le calcul de la perte de texture est simple, comme indiqué ci-dessous :

Calcul de la Perte de texture. (Source)

En utilisant cette perte, le modèle est motivé pour créer des textures réalistes et des résultats visuellement plus satisfaisants.

Perte de variation totale

La perte de variation totale (TV) est utilisée pour supprimer le bruit dans les images générées. Il prend la somme des différences absolues entre les pixels voisins et mesure la quantité de bruit dans l’image. Pour une image générée, la perte TV est calculée comme indiqué ci-dessous :

Perte de variation totale utilisée sur une image Haute Résolution générée. (Source)

Ici, i,j,k itère sur la hauteur, la largeur et les canaux respectivement.

Perte contradictoire

Les réseaux antagonistes génératifs (GAN) ont été de plus en plus utilisés pour plusieurs applications basées sur l’image, y compris la Super Résolution. Les GAN sont généralement constitués d’un système de deux réseaux de neurones — le Générateur et le Discriminateur — s’affrontant en duel.

Étant donné un ensemble d’échantillons cibles, le générateur essaie de produire des échantillons qui peuvent tromper le discriminateur en lui faisant croire qu’ils sont réels. Le discriminateur essaie de résoudre de vrais échantillons (cibles) à partir de faux échantillons (générés). En utilisant cette approche d’entraînement itérative, nous nous retrouvons finalement avec un générateur qui est vraiment bon pour générer des échantillons similaires aux échantillons cibles. L’image suivante montre la structure d’un GAN typique.

GaNS en action. (Source)

Des avancées vers l’architecture GAN de base ont été introduites pour améliorer les performances. Par exemple, Park et. Al. utilisé un discriminateur au niveau des fonctionnalités pour capturer des attributs potentiels plus significatifs d’images réelles à haute résolution. Vous pouvez consulter ce blog pour une enquête plus élaborée sur les progrès du GaNS.

En règle générale, les modèles formés avec une perte contradictoire ont une meilleure qualité perceptive même s’ils peuvent perdre en PSNR par rapport à ceux formés sur la perte de pixels. Un inconvénient mineur est que le processus d’entraînement du GaNS est un peu difficile et instable. Cependant, des méthodes pour stabiliser la formation au GAN sont activement étudiées.

Métriques

Une grande question est de savoir comment évaluer quantitativement les performances de notre modèle. Un certain nombre de techniques (ou métriques) d’Évaluation de la qualité d’image (IQA) sont utilisées pour la même chose. Ces mesures peuvent être globalement classées en deux catégories : les mesures subjectives et les mesures objectives.

Les métriques subjectives sont basées sur l’évaluation perceptuelle de l’observateur humain tandis que les métriques objectives sont basées sur des modèles de calcul qui tentent d’évaluer la qualité de l’image. Les métriques subjectives sont souvent plus « perceptuellement précises », mais certaines de ces métriques sont peu pratiques, fastidieuses ou coûteuses à calculer. Un autre problème est que ces deux catégories de mesures peuvent ne pas être cohérentes l’une avec l’autre. Par conséquent, les chercheurs affichent souvent les résultats à l’aide de métriques des deux catégories.

Dans cette section, nous allons brièvement explorer quelques métriques largement utilisées pour évaluer les performances de notre modèle de super résolution.

PSNR

Le rapport Signal sur bruit de crête (PSNR) est une métrique objective couramment utilisée pour mesurer la qualité de reconstruction d’une transformation avec perte. PSNR est inversement proportionnel au logarithme de l’Erreur Quadratique Moyenne (MSE) entre l’image de vérité au sol et l’image générée.

Calcul du PSNR. (Source)

Dans la formule ci-dessus, L est la valeur maximale de pixels possible (pour les images RVB 8 bits, elle est de 255). Sans surprise, puisque PSNR ne se soucie que de la différence entre les valeurs de pixels, il ne représente pas si bien la qualité perceptuelle.

SSIM

La similitude structurelle (SSIM) est une métrique subjective utilisée pour mesurer la similitude structurelle entre les images, basée sur trois comparaisons relativement indépendantes, à savoir la luminance, le contraste et la structure. De manière abstraite, la formule SSIM peut être présentée comme un produit pondéré de la comparaison de la luminance, du contraste et de la structure calculée indépendamment.

SSIM est un produit pondéré des comparaisons décrites ci-dessus. (Source)

Dans la formule ci-dessus, alpha, bêta et gamma sont les poids des fonctions de comparaison de luminance, de contraste et de structure respectivement. La représentation couramment utilisée de la formule SSIM est la suivante:

Représentation couramment utilisée de la formule SSIM. (Source)

Dans la formule ci-dessus μ(I) représente la moyenne d’une image particulière, σ(I) représente l’écart type d’une image particulière, σ(I,I’) représente la moyenne d’une image particulière, σ(I) représente l’écart type d’une image particulière, σ(I,I’) représente la covariance entre deux images et C1, C2 sont des constantes définies pour éviter l’instabilité. Par souci de concision, la signification des termes et la dérivation exacte ne sont pas expliquées dans ce blog et le lecteur intéressé peut consulter la section 2.3.2 de cet article.

En raison de la distribution inégale possible des caractéristiques statistiques d’image ou des distorsions, l’évaluation de la qualité d’image localement est plus fiable que de l’appliquer globalement. Le SSIM moyen (MSSIM), qui divise l’image en plusieurs fenêtres et fait la moyenne du SSIM obtenu à chaque fenêtre, est l’une de ces méthodes d’évaluation de la qualité localement.

Dans tous les cas, puisque le SSIM évalue la qualité de la reconstruction du point de vue du Système Visuel humain, il répond mieux aux exigences de l’évaluation perceptuelle.

Autres scores IQA

Sans explication, d’autres méthodes d’évaluation de la qualité de l’image sont énumérées ci-dessous. Le lecteur intéressé peut se référer à cet article pour plus de détails.

  • Score d’Opinion moyen (MOS)
  • Évaluation basée sur les tâches
  • Critère de Fidélité à l’information (IFC)
  • Fidélité à l’Information visuelle (VIF)

Conclusion

Cet article de blog a couvert des documents d’introduction et des procédures pour la formation de modèles d’apprentissage profond pour la Super Résolution. Il existe en effet des techniques plus avancées introduites par la recherche de pointe qui peuvent donner de meilleures performances. De plus, des recherches sur des avenues telles que la super résolution non supervisée, de meilleures techniques de normalisation et de meilleures métriques représentatives pourraient grandement améliorer ce domaine. Le lecteur intéressé est encouragé à expérimenter ses idées novatrices en participant à des défis tels que le Défi PIRM.

Partagez maintenant

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.