Regardez la vidéo
Avez-vous déjà trouvé une image que vous aimiez beaucoup, mais seulement dans une petite version qui ressemblait à celle de gauche ci-dessus ? Ce serait génial de pouvoir la prendre et la rendre deux fois plus belle. Mais pourquoi ne pas la rendre quatre ou même huit fois plus définie ? Là, ça devient intéressant. Regardez simplement le résultat. Ici, nous avons multiplié la résolution par quatre, ce qui signifie quatre fois plus de pixels en hauteur et en largeur pour obtenir davantage de détails et une image beaucoup plus lisse. Le plus génial, c’est que le tout se fait automatiquement en quelques secondes et fonctionne avec pratiquement n’importe quelle image. Oh, et vous pouvez même l’essayer grâce à la démo offerte, comme nous le verrons dans la vidéo.

Suréchantillonnage d’images
Avant de découvrir cet incroyable modèle, nous devons présenter le suréchantillonnage de photos, aussi appelé super-résolution d’images. L’objectif consiste à construire une image haute résolution à partir d’une image d’entrée basse résolution correspondante. Il s’agit ici d’un visage, mais ce pourrait être n’importe quel objet, animal ou paysage. L’image basse résolution peut mesurer 512 pixels ou moins. Elle n’est pas si floue, mais elle n’est clairement pas en haute définition lorsqu’elle occupe tout l’écran.

Exemple d’image en basse définition.
Prenez une seconde pour l’observer et vous verrez les artéfacts. Nous prenons cette image basse définition et la transformons en image haute définition avec un visage beaucoup plus clair. Dans ce cas-ci, nous obtenons une image carrée de 2048 pixels, soit quatre fois plus haute définition :

Image agrandie avec SwinIR.
Pour y arriver, nous utilisons habituellement une architecture semblable à UNet avec des réseaux neuronaux convolutifs, que j’ai présentés dans plusieurs articles précédents. Je vous invite à les lire si vous souhaitez mieux comprendre leur fonctionnement. Le principal désavantage des CNN est leur difficulté à s’adapter à des jeux de données extrêmement vastes puisqu’ils utilisent les mêmes noyaux pour toutes les images. Ils sont donc excellents pour les résultats locaux et la généralisation, mais moins puissants pour le résultat global lorsque nous cherchons le meilleur résultat pour chaque image individuelle.

Convolutions et auto-attention utilisée dans les transformeurs.
De leur côté, les transformeurs sont une architecture prometteuse puisque leur mécanisme d’auto-attention capture les interactions globales entre les contextes de chaque image. Ils exigent toutefois trop de calcul pour bien convenir aux images.
Au lieu d’utiliser seulement des CNN ou des transformeurs, les chercheurs ont créé la même architecture semblable à UNet en combinant des convolutions et des mécanismes d’attention. Plus précisément, ils utilisent le Swin Transformer. Celui-ci est fantastique puisqu’il profite de la capacité des CNN à traiter de grandes images et à les préparer pour les mécanismes d’attention. Ces mécanismes créent ensuite des connexions à longue portée afin que le modèle comprenne beaucoup mieux l’image complète et puisse mieux la reconstruire. Je n’entrerai pas dans les détails du Swin Transformer, puisque j’ai déjà présenté cette architecture il y a quelques mois et expliqué ses différences avec les CNN et les transformeurs classiques utilisés en traitement du langage naturel.
Si vous souhaitez en apprendre davantage sur son fonctionnement et sur la façon dont les chercheurs ont appliqué les transformeurs à la vision, consultez mon article sur Towards AI, puis revenez pour l’explication de ce modèle de suréchantillonnage !
SwinIR
Le modèle s’appelle SwinIR et peut accomplir de nombreuses tâches, dont le suréchantillonnage d’images. Comme je l’ai dit, il utilise des convolutions pour accepter de plus grandes images. Plus précisément, les chercheurs emploient une couche convolutive pour réduire la taille de l’image, comme vous le voyez ici.

Architecture proposée de SwinIR pour la restauration d’images. Image tirée de SwinIR [1].
Cette image réduite est envoyée au modèle, mais aussi directement au module de reconstruction afin de lui fournir de l’information générale sur l’image. Cette représentation ressemble essentiellement à plusieurs versions étranges et floues de l’image qui indiquent au module d’agrandissement l’apparence générale qu’elle devrait avoir. Nous retrouvons ensuite les couches du Swin Transformer combinées à des convolutions. Elles compriment davantage l’image et extraient toujours plus d’information précise et utile sur le style et les détails, tout en oubliant l’image globale. C’est pourquoi nous ajoutons ensuite l’image convoluée pour redonner l’information générale manquante grâce à une connexion résiduelle.
Le tout est finalement envoyé à un module de reconstruction appelé sous-pixel. Celui-ci utilise les grandes caractéristiques générales et les petites caractéristiques détaillées que nous venons de créer pour reconstruire une image plus définie. Vous pouvez le voir comme un réseau neuronal convolutif inversé, ou simplement comme un décodeur, qui reçoit nos caractéristiques condensées et reconstruit une plus grande image. Encore une fois, si vous souhaitez en apprendre davantage sur les CNN et les décodeurs, consultez certains de mes articles à leur sujet.
En gros, vous envoyez votre image dans un CNN, prenez cette nouvelle représentation et la sauvegardez pour plus tard tout en l’envoyant aussi dans l’architecture Swin Transformer. Celle-ci condense encore davantage l’information et apprend les caractéristiques les plus importantes à reconstruire. Vous combinez ensuite ces nouvelles caractéristiques à celles sauvegardées, puis utilisez un décodeur pour reconstruire la version haute définition.
Et voilà !
Il vous faut maintenant seulement assez de données pour obtenir des résultats comme ceux-ci (regardez la vidéo !).
Bien sûr, comme dans toute recherche, il existe certaines limites. Ici, probablement à cause de la couche convolutive initiale, le modèle fonctionne moins bien avec les très petites images de moins de 200 pixels de largeur.
Il semble aussi que les plus grands facteurs d’agrandissement peuvent retirer les rides, ce qui peut être un artéfact utile si c’est ce que vous cherchez. En dehors de cela, les résultats sont complètement fous et, après avoir beaucoup joué avec le modèle au cours des derniers jours, je peux confirmer que l’agrandissement par quatre est incroyable.
Vous pouvez vous aussi l’essayer ! Les chercheurs ont rendu le répertoire GitHub accessible à tous, avec des modèles préentraînés et même une démo que vous pouvez utiliser immédiatement sans écrire de code. Bien sûr, ce n’était qu’un survol de cet incroyable nouveau modèle. Je vous invite fortement à lire leur article de recherche pour approfondir les aspects techniques. Tous les liens se trouvent dans les références ci-dessous. Dites-moi ce que vous en pensez, et j’espère que vous avez aimé cet article !
Merci encore à Weights & Biases d’avoir commandité la vidéo et l’article, ainsi qu’à tous ceux qui lisent encore !
Je vous retrouve la semaine prochaine avec un autre article de recherche fascinant !
Lisez la traduction espagnole réalisée par l’un de mes amis ici !
Si vous aimez mon travail et souhaitez rester au courant de l’IA, vous devriez absolument me suivre sur mes autres réseaux sociaux (LinkedIn, Twitter) et vous abonner à mon infolettre hebdomadaire sur l’IA !
Pour me soutenir :
- La meilleure façon de me soutenir est de devenir membre de ce site Web ou de vous abonner à ma chaîne YouTube si vous aimez le format vidéo.
- Suivez-moi ici ou sur Medium
- Vous voulez vous lancer en IA ou améliorer vos compétences ? Lisez ceci !
Références
- Liang, J., Cao, J., Sun, G., Zhang, K., Van Gool, L. and Timofte, R., 2021. SwinIR: Image restoration using swin transformer. In Proceedings of the IEEE/CVF International Conference on Computer Vision (pp. 1833–1844).
- Code : https://github.com/JingyunLiang/SwinIR
- Démo : https://replicate.ai/jingyunliang/swinir
FAQ
Que fait SwinIR ?
SwinIR restaure les images pour des tâches comme la super-résolution, le débruitage et le retrait des artéfacts de compression.
Comment peut-il rendre une image huit fois plus grande ?
Il prédit des détails haute résolution à partir de motifs visuels appris au lieu de simplement étirer les pixels existants.
Qu’apporte le Swin Transformer ?
L’attention par fenêtres capture efficacement les détails locaux, tandis que les fenêtres décalées relient l’information entre de plus grandes régions de l’image.
La super-résolution récupère-t-elle les véritables détails manquants ?
Non. Elle génère des détails plausibles qui peuvent sembler nets sans correspondre exactement à la scène originale invisible.
Quelles images SwinIR peut-il traiter ?
L’approche générale de restauration peut fonctionner au-delà des visages, mais sa qualité dépend de la dégradation et de la couverture des données d’entraînement.


