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