An Introduction to Super Resolution using Deep Learning

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 faible (c’est-à-dire la taille) ou en raison d’un résultat de dégradation (comme le flou). Nous pouvons mettre en relation les images HR et LR grâce à l’équation suivante : LR = degradation(HR)

Une image basse résolution conservée à côté de sa version haute résolution. (Photo de Jarrad Horne sur Unsplash)

Il est clair qu’en appliquant une fonction de dégradation, on obtient l’image LR à partir de l’image HR. Mais, peut-on 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, c’est là que 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 profond se sont avérées efficaces pour la super résolution.

Ce blog se concentre principalement sur la fourniture d’une introduction à la réalisation de la super résolution à l’aide de l’apprentissage profond en utilisant des méthodes de formation supervisée. Certaines fonctions de perte et métriques importantes sont également abordées. Une grande partie du contenu est dérivé de cette revue de littérature à laquelle le lecteur peut se référer.

Méthodes supervisées

Comme mentionné précédemment, l’apprentissage profond peut être utilisé pour estimer l’image haute résolution (HR) étant donné une image basse résolution (LR). En utilisant l’image HR comme cible (ou vérité-terrain) et l’image LR comme entrée, nous pouvons traiter cela comme un problème d’apprentissage supervisé.

Dans cette section, nous regroupons diverses approches d’apprentissage profond selon la manière dont les couches de convolution sont organisées. Avant de passer aux groupes, une introduction à la préparation des données et aux types de convolutions 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 facile pour obtenir des données LR est de dégrader les données HR. Ceci est souvent fait en floutant 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égradation d’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). Cela permet d’éviter la dégradation de la qualité de l’image HR due à la compression avec perte, qui peut donner des performances sous-optimales.

Types de convolutions

En dehors des convolutions 2D classiques, plusieurs variantes intéressantes peuvent être utilisées dans les réseaux pour améliorer les résultats. Les convolutions dilatées (Atrous) peuvent fournir un plus grand champ de vision effectif, donc utiliser des informations qui sont séparées par une grande distance. Les connexions sautées, le pooling pyramidal spatial et les blocs denses motivent la combinaison de caractéristiques de bas niveau et de haut niveau pour améliorer les performances.

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

L’image ci-dessus mentionne un certain nombre de stratégies de conception de réseau. Vous pouvez vous référer à ce document pour plus d’informations. Pour une amorce sur les différents types de convolutions couramment utilisés dans l’apprentissage profond, vous pouvez vous référer à ce blog.

Groupe 1 – Pré-échantillonnage

Dans cette méthode, les images à basse résolution sont d’abord interpolées pour obtenir une image à haute résolution « grossière ». Ensuite, des 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 peut ê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 une cartographie directe d’un espace à basse dimension à un espace à haute dimension.

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

Vous pouvez vous référer à la page 5 de ce document pour quelques modèles utilisant cette technique. L’avantage est que, puisque le sur-échantillonnage est géré par des méthodes traditionnelles, le CNN doit seulement apprendre à raffiner l’image grossière, ce qui est plus simple. De plus, comme nous n’utilisons pas de convolutions 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 du flou.

Groupe 2- Post-échantillonnage

Dans ce cas, les images à basse résolution sont transmises telles quelles aux CNN. Le suréchantillonnage est effectué dans la dernière couche en utilisant une couche apprenante.

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

L’avantage de cette méthode est que l’extraction des caractéristiques est effectuée dans l’espace de dimension inférieure (avant le suréchantillonnage) et donc la complexité de calcul est réduite. En outre, en utilisant une couche de suréchantillonnage apprenable, le modèle peut être entraîné 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 le Laplacian Pyramid SR Network (LapSRN) et le Progressive SR (ProSR). Dans ce cas, les modèles 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 fortement réduite et de meilleures performances peuvent être obtenues. De plus, des stratégies d’apprentissage comme l’apprentissage par programme peuvent être intégrées pour réduire davantage la difficulté d’apprentissage et améliorer la performance finale.

Groupe 4 – Échantillonnage itératif ascendant et descendant

Une autre architecture de modèle populaire est la structure en sablier (ou U-Net). Certaines variantes, comme le réseau de sabliers empilés, utilisent plusieurs structures de sabliers en série, alternant effectivement entre le processus d’échantillonnage ascendant et descendant.

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

Les modèles dans ce cadre peuvent mieux exploiter les relations profondes entre les paires d’images LR-HR et ainsi fournir 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 de vérité au sol. Cette différence (erreur) est ensuite utilisée pour optimiser le modèle d’apprentissage supervisé. Plusieurs classes de fonctions de perte existent 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 à partir de chaque fonction de perte individuellement. Cela permet au modèle de se concentrer sur les aspects contribués par plusieurs fonctions de perte simultanément.

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 en pixels

La perte en pixels est la classe la plus simple de fonctions de perte où chaque pixel de l’image générée est directement comparé à chaque pixel de l’image de vérité du sol. On utilise des fonctions de perte populaires telles que la perte L1 ou L2 ou des variantes avancées telles que la perte Smooth L1.

Plot de la perte Smooth L1. (Source)

La métrique PSNR (discutée ci-dessous) est fortement corrélée avec la différence entre les pixels, et donc minimiser la perte de pixels maximise directement la valeur de la métrique PSNR (indiquant une bonne performance). Cependant, la perte de pixels ne prend pas en compte la qualité de l’image et le modèle produit souvent des résultats perceptivement insatisfaisants (manquant souvent 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 est de comparer les caractéristiques de haut niveau de l’image générée et de l’image de vérité terrain. Nous pouvons obtenir ces caractéristiques de haut niveau en faisant passer ces deux images par un réseau de classification d’images pré-entraîné (tel qu’un VGG-Net ou un ResNet).

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

L’équation ci-dessus calcule la perte de contenu entre une image de vérité-terrain et une image générée, étant donné un réseau pré-entraîné (Φ) et une couche (l) de ce réseau pré-entraîné à laquelle la perte est calculée. Cette perte encourage l’image générée à être perceptiblement similaire à l’image de base. 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.) que l’image de vérité terrain, 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éfinie 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é-entraîné (Φ).

Calcul de la matrice de Gram. (Source)

La corrélation entre les cartes de caractéristiques est représentée par la matrice de Gram (G), qui est le produit interne entre les cartes de caractéristiques vectorisées i et j sur la couche l (représentée ci-dessus). Une fois la matrice de Gram 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.

La perte de variation totale

La perte de variation totale (TV) est utilisée pour supprimer le bruit dans les images générées. Elle 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 de 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 adversariale

Les réseaux adversariaux 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 GANs consistent généralement en un système de deux réseaux neuronaux – le Générateur et le Discriminateur – qui s’affrontent en duel.

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 les échantillons réels (cibles) des faux échantillons (générés). En utilisant cette approche d’entraînement itérative, nous finissons par obtenir 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 sur l’architecture de base des GAN ont été introduites pour améliorer les performances. Par exemple, Park et al. ont utilisé un discriminateur de niveau de caractéristique pour capturer des attributs potentiels plus significatifs des images réelles à haute résolution. Vous pouvez consulter ce blog pour une enquête plus élaborée sur les progrès des GAN.

Typiquement, les modèles formés avec la perte adversariale ont une meilleure qualité perceptive même s’ils peuvent perdre sur PSNR par rapport à ceux formés sur la perte de pixel. Un inconvénient mineur est que, le processus de formation des GANs est un peu difficile et instable. Cependant, des méthodes pour stabiliser la formation des GANs sont activement travaillées.

Métriques

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

Les métriques subjectives sont basées sur l’évaluation perceptive de l’observateur humain alors que les métriques objectives sont basées sur des modèles informatiques qui tentent d’évaluer la qualité de l’image. Les métriques subjectives sont souvent plus « perceptuellement exactes », cependant certaines de ces métriques sont peu pratiques, longues 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 en utilisant des métriques des deux catégories.

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

PSNR

Le rapport signal-bruit de pointe (PSNR) est une métrique objective couramment utilisée pour mesurer la qualité de reconstruction d’une transformation avec perte. Le PSNR est inversement proportionnel au logarithme de l’erreur quadratique moyenne (EQM) entre l’image de vérité terrain et l’image générée.

Calcul du PSNR. (Source)

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

SSIM

La similarité structurelle (SSIM) est une métrique subjective utilisée pour mesurer la similarité 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 représentée comme un produit pondéré de la comparaison de la luminance, du contraste et de la structure calculée indépendamment.

La SSIM est un produit pondéré de comparaisons comme décrit 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 covariance entre deux images, et C1, C2 sont des constantes fixées pour éviter l’instabilité. Par souci de brièveté, la signification des termes et la dérivation exacte ne sont pas expliquées dans ce blog et le lecteur intéressé peut vérifier la section 2.3.2 de ce document.

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

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 perceptive.

Autres scores IQA

Sans explication, certaines autres méthodes d’évaluation de la qualité des images sont énumérées ci-dessous. Le lecteur intéressé peut se référer à ce document pour plus de détails.

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

Conclusion

Cet article de blog a couvert quelques matériaux et procédures d’introduction 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 l’état de la recherche de pointe qui peuvent donner de meilleures performances. En outre, la recherche sur des pistes telles que la super résolution non supervisée, de meilleures techniques de normalisation et de meilleures métriques représentatives pourrait faire progresser considérablement ce domaine. Le lecteur intéressé est encouragé à expérimenter ses idées innovantes en participant à des défis tels que le PIRM Challenge.

Laisser un commentaire

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