Maison  >  Article  >  Périphériques technologiques  >  L’IA est-elle capable de supprimer la mosaïque ?

L’IA est-elle capable de supprimer la mosaïque ?

WBOY
WBOYavant
2023-04-09 19:11:035287parcourir

Bonjour à tous.

Avez-vous déjà pensé à utiliser la technologie de l'IA pour supprimer la mosaïque ?

Si vous y réfléchissez bien, ce problème est assez difficile, car la technologie d'IA que nous utilisions auparavant, qu'il s'agisse de reconnaissance faciale ou de reconnaissance OCR, peut au moins être reconnue manuellement. Mais si on vous donne une image en mosaïque, pouvez-vous la restaurer ?

L’IA est-elle capable de supprimer la mosaïque ?

C’est évidemment difficile. Si les humains ne peuvent pas récupérer, comment pouvons-nous apprendre aux ordinateurs à récupérer ?

Vous souvenez-vous encore de l'article "Utiliser l'IA pour générer des avatars" que j'ai écrit il y a quelques jours. Dans cet article, nous avons formé un modèle DCGAN capable de générer une image à partir de nombres aléatoires arbitraires.

L’IA est-elle capable de supprimer la mosaïque ?

Les nombres aléatoires sont utilisés comme cartes de bruit générées par les pixels

L’IA est-elle capable de supprimer la mosaïque ?

Le modèle génère des avatars normaux à partir de nombres aléatoires

DCGAN​Contient deux modèles : le modèle générateur et le modèle discriminateur. Le rôle du modèle générateur. est Générer une image à partir d'un ensemble de nombres aléatoires. Plus l'image est proche de l'échantillon d'apprentissage, mieux c'est, afin de tromper le modèle discriminateur. Le modèle discriminateur doit continuellement améliorer sa capacité de discrimination pour empêcher les images générées par le modèle générateur. de se faire dépasser.

Si nous modifions l'entrée du modèle de générateur ci-dessus de nombres aléatoires en images avec mosaïques, la sortie sera des images sans mosaïques. Est-il possible de former un modèle qui supprime la mosaïque ?

Ensuite, je partagerai avec vous comment entraîner un modèle de suppression de mosaïque, puis je partagerai un outil prêt à l'emploi que vous pouvez télécharger et utiliser directement pour essayer l'effet.

1. Pix2pix + CycleGAN

Ici, nous n'utilisons pas le DCGAN présenté ci-dessus, mais utilisons deux modèles plus puissants, Pix2pix et CycleGAN, pour nous entraîner séparément.

Pix2pix​ est un algorithme de traduction d'images basé sur GAN. Des images mosaïques aux images normales, il est essentiellement similaire à la conversion d'une langue à une autre.

L’IA est-elle capable de supprimer la mosaïque ?

Traduction du modèle Pix2pix

L'effet obtenu par CycleGAN est simplement de convertir des images entre différents domaines, tandis que la forme elle-même reste inchangée.

L’IA est-elle capable de supprimer la mosaïque ?

Modèle CycleGAN

L'article nous fournit l'ensemble de données et le processus de formation complet, qui peuvent nous aider à former le modèle à moindre coût.

Tout d'abord, téléchargez l'ensemble de données

L’IA est-elle capable de supprimer la mosaïque ?

L'ensemble de données

totalise 654 M.

Ensuite, téléchargez le modèle pré-entraîné Paddle

L’IA est-elle capable de supprimer la mosaïque ?

modèle pré-entraîné​

Enfin, entraînez respectivement les modèles Pix2pix et CycleGAN.

Modèle Pix2pix

python gan<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">/</span>infer<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">.py</span> <br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--init_model output/pix2pix/checkpoints/110/ </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--dataset_dir /home/aistudio/ </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--image_size 256 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--n_samples 1 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--crop_size 256 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--model_net Pix2pix </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--net_G unet_256 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--test_list /home/aistudio/test_list.txt </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--output ./infer_result/pix2pix/</span>

Modèle CycleGAN

python gan<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">/</span>infer<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">.py</span> <br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--init_model output/cyclegan/checkpoints/48/ </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--dataset_dir /home/aistudio/ </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--image_size 256 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--n_samples 1 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--crop_size 256 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--input_style A </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--test_list /home/aistudio/test_list.txt </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--model_net CycleGAN </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--net_G resnet_9block </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--g_base_dims 32 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--output ./infer_result/cyclegan/</span>

Après l'entraînement, vous pouvez exécuter le fichier gan/infer.py pour comparer les effets de suppression de mosaïque des deux modèles.

2. Outils prêts à l'emploi

Si vous ne souhaitez pas entraîner le modèle vous-même, voici un projet prêt à l'emploi à partager avec vous. Il est également basé sur la segmentation sémantique et la traduction d'images, en référence à. Pix2pix et CycleGAN.

Adresse du projet : https://github.com/HypoX64/DeepMosaics/blob/master/README_CN.md

Pour les utilisateurs de Windows, l'auteur fournit un progiciel sans installation contenant une interface GUI.

L’IA est-elle capable de supprimer la mosaïque ?

Interface UI

Comme nous l'avons dit précédemment, cette technologie est encore relativement difficile, alors n'ayez pas d'attentes trop élevées. Voici l'effet de suppression réel.

L’IA est-elle capable de supprimer la mosaïque ?

Encodage

L’IA est-elle capable de supprimer la mosaïque ?

Décodage

L'effet est toujours OK, mais il n'est pas aussi parfait qu'on l'imaginait. Vous pouvez le télécharger et l'exécuter pour essayer.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer