modèle de traduction de l'image --pix2pix

1. introduction


Traitement de l' image, l' infographie et de nombreux problèmes dans la vision par ordinateur peut être considéré comme l' image d'entrée « traduction » dans l'image de sortie correspondant . « La traduction » est souvent utilisé pour traduire entre les langues, telles que la traduction entre le chinois et l' anglais. Mais les moyens de translation d'image différentes formes de conversion entre l' image et de l' image . Par exemple , une image de la scène peut être présenté dans une image RGB, le champ de gradient, la carte de bord, le mappage d' une forme d'étiquette sémantique, dont les résultats à la Fig.



processus de conversion d'image traditionnelle et sont basées sur un algorithme spécifique pour un problème spécifique à résoudre, mais la nature de ces processus sont basés à prédire (prédire de pixels à pixels) pixel à pixel (information d'entrée) , l' objectif Pix2pix est d'établir un architecture commune pour résoudre tous les problèmes de traduction de l' image ci - dessus, de sorte que nous ne devons pas refaire chaque caractéristique une perte de fonction.


2. L'idée de base


2.1 Structure de la perte de modélisation basée sur l'image


Image à des problèmes de traduction d'image sont généralement basées sur la classification des pixels ou régression à résoudre. Ces espace de sortie de formules comme « non structuré » , à savoir, dans le cas où une image d'entrée donnée, chaque pixel de sortie est considéré indépendamment de tous les autres pixels conditionnellement. Et cGANs (conditionnel GAN) qui est différente de la structure de la perte d'apprentissage, et peut théoriquement être des sanctions possibles entre la sortie et la structure cible.


2.2 c PAR


Avant cela, de nombreux chercheurs utilisent la réparation GAN, prédire l'état futur, guide d'utilisation de traitement d'image contrainte, la migration et de super-résolution de style ont obtenu des résultats remarquables, mais chaque méthode sont adaptées à des applications spécifiques de . Sauf que pas de cadre Pix2pix application particulière. Il est également différent du travail précédent dans plusieurs choix architecturaux et générer le discriminateur. Pour le générateur, nous basé sur une architecture « U-Net », car le discriminateur, nous utilisons convolution classificateur « PatchGAN », sa structure que de punition à l'échelle des taches d'image (petite photo).


Pix2pix est emprunté des idées CGAN. CGAN est entré uniquement lorsque le bruit d'entrée réseau G, va entrer dans une condition (condition), le réseau G généré des images de faux touchés par une condition spécifique. Donc, si une image comme condition, les images fausses générées sur la relation correspondante avec ces images de condition, afin de parvenir à un processus d'image à l'image Traduction. Schéma PixPix est la suivante:



Structure de réseau Pix2pix comme indiqué ci - dessus, est utilisé dans le générateur G de la structure U-Net, le profil d'entrée codé et décodé en une image réelle, un discriminateur D est utilisé en termes de discriminateur proposé PatchGAN, discriminante D effecteurs est en vue de profil dans des conditions pour la génération de l'image est déterminée comme étant fausse, l' image réelle est déterminée pour être vrai.


2.3 Comparaison avec CGAN Pix2pix



2.4 fonction de perte


fonction objectif général cGANs suit comme:


$ L {CGAN} (G, D) = E {x, y} [log D (x, y)] + e_ {x, z} [log (1 - D (x, G (x, z))] $


G et D dans laquelle tentent de minimiser l'objectif est de maximiser la cible, à savoir: $ \ rm G ^ * = arg; min_G; max_D; L_ {} CGAN (G, D) $


Pour faire la comparaison, en même temps d'aller à la formation d'un GAN ordinaire, qui est, ne permettent D de déterminer si l'image réelle.


$ \ Rm L {CGAN} (G, D) = E_y [log D (y)] + E {x, z} [log (1 - D (G (x, z))] $


Pour les tâches de traduction d'image, entre l'entrée et la sortie G partagent en fait un grand nombre d'informations, comme tâche de couleur de l'image, partagée entre l'entrée et la sortie sur une information de côté. Par conséquent, afin d'assurer que le degré de similitude entre l'image d'entrée et l'image de sortie, mais aussi la perte L1 ajouté:


$ \ Rm L {L1} (G) = E {x, y, z} [|| y - G (x, z) || _1] $


- À -dire L1 est une distance entre les images réelles et de fausses images réelles générées, (IMGB ' et IMGB) assure la similitude des images d' entrée et de sortie.


La fonction de perte finale:


$ \ rm G ^ * = arg; \ underset {G} {min}; \ underset {D} {max}; L {CGAN} (G, D) + λL {L1} (G) $


3. Architecture de réseau (architecture réseau)


Et la génération d'un module discriminateur utilise convolution-BatchNorm-RELU


Création d'un réseau G 3.1


Une image de caractéristique déterminante aux problèmes de la traduction de l'image est qu'ils sont la carte de grille d'entrée à haute résolution à une grille de sortie à haute résolution. De plus, nous considérons le problème de différents aspect de surface des entrées et sorties, mais les deux devraient partager certaines informations. Ainsi, la structure de l'entrée et de la structure de sortie sensiblement alignés. Nous considérons que la conception autour de ces architecture de génération.



la structure U-Net modèle Encoder-Decoder, la structure symétrique du codeur et du décodeur. Diffère de la U-Net est la i-ème couche et la seconde couche sont reliées ni, où n est le nombre total de couches, cette liaison est appelée connecteur sautée (sauter connexions). I-ni-ème couche et la taille de l'image est la même couche, ils peuvent être considérés comme portant des informations similaires.


3.2 déterminer le réseau D


fonctions de reconstruction d'images de perte de L1 et L2 sont floues, à savoir L1 et L2 ne sont pas bien partie haute fréquence restaurée de l'image (bords d'image, etc.), mais peut mieux récupérer la partie basse fréquence de l'image (l'image des blocs de couleur).


Des images de haute fréquence est une mesure de la variation d'intensité entre des positions procédé de l'image, les composantes basse fréquence: la principale mesure intégrée de la résistance de l'ensemble de sous-image. composante haute fréquence: est une mesure des bords principaux et des contours de l'image. Si l'amplitude de l'intensité de chaque position d'une image sont égaux, il n'y a qu'une image de composante de fréquence basse, une image vue à partir du spectre, il y a un seul pic, et situé à la fréquence zéro. Si la variation d'intensité d'une position de l'image respective vigoureuse, non seulement l'image de composante de fréquence basse, et il y a aussi de nombreuses composantes à haute fréquence du point de vue de l'image du spectre, il n'y a qu'un seul pic majeur, il y a également une pluralité de crêtes adjacentes.


Afin d'obtenir mieux de porter un jugement sur les images partielles, réseau Pix2pix utilisant la détermination de la structure patchGAN, c'est-à-dire la pluralité d'images dans une taille fixe Patch, vrai et faux, respectivement, est déterminé pour chacun des Patch, et enfin la dernière moyenne que D sortie. Cette prestation:


  • Entrée D est petite, une petite quantité de calcul, la vitesse de formation rapide.
  • Parce que G lui-même est pleine convolution, l'image sans limitation de taille. Si Patch et D selon le traitement d'image, il n'y a pas de limitation sur la taille de l'image. Il fera l'ensemble du cadre Pix2pix aucune limite sur la taille de l'image, ce qui augmente le cadre d'extensibilité.


PatchGAN dans la texture du papier comme une autre forme de perte ou de perte de style. Dans une expérience spécifique, différente pièce de taille, la taille 70x70 trouvé plus approprié.


3.3 et l'optimisation raisonnement


La formation en utilisant des méthodes standard: formation variante D et G, et utilisé minibatch SGD et optimiseur Adam.


Lorsque le raisonnement, nous utilisons la même façon d'exécuter le générateur de phase de formation. Utiliser le décrochage et la normalisation des lots dans la phase d'essai, où nous utilisons le lot de test statistique plutôt que par lots de train de.


4. Code interprétation


Cette partie est en train de lire le papier Source: https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix .



  • Train Files:


script de formation générale, vous pouvez passer des paramètres à spécifier des modèles de formation différents et différents ensembles de données.


--model: Par exemple, pix2pix, cyclegan,colorization


--dataset_mode: Par exemple, aligned, unaligned, single, colorization)


  • Test du fichier:


des scripts de test communs par modèle de participation de masse à charger -- checkpoints_dir, enregistrer la sortie des résultats --results_dir.


4.1 Données dossier:


Les fichiers dans le répertoire contenant le chargement de données et de traitement, et les utilisateurs peuvent créer leurs propres ensembles de données. La description détaillée suivante des données du fichier:


  • __init__.py: La mise en œuvre de l'interface entre le boîtier et le train, les scripts de test. train.py et test.py pour créer un ensemble de données en fonction des options données opt package de transfert from data import create_datasetetdataset = create_dataset(opt)
  • base_dataset.py: Classe héritée et la flamme de la classe de base abstraite ensemble de données, le document comprend également une méthode de conversion d'image commune, utilisée pour faciliter les sous-classes suivantes.
  • image_folder.py: Modification du dossier d' image code officiel de pytorch qui peut charger des images à partir du répertoire courant et des sous - répertoires.
  • template_dataset.py: Fournit des modèles et des références pour faire votre propre ensemble de données, qui détaille certains des commentaires.
  • aligned_dataset.pyEt unaligned_dataset.py: La différence est que le premier est chargé d'un dossier est la même paire d'images {A, B}, qui est chargé des deux dossiers différents sont {A}, {B}.
  • single_dataset.py: Chargez une image dans le chemin spécifié.
  • colorization_dataset.py: Charger une image et convertie en RVB (L, ab) de l'espace colorimétrique Lab, pix2pix utilisé pour dessiner le modèle de couleur.


4.2 dossier modèles:


modèles de module inclus sont: une fonction objective, l'optimisation, l'architecture réseau. La description détaillée suivante des fichiers dans les modèles:


  • __init__.py: Pour implémenter l'interface entre le boîtier et le train, les scripts de test. train.pyEt test.pypour créer un modèle basé sur un morceau donné opt packs d'options from models import create_modelet model = create_model(opt).
  • base_model.py: classe abstraite héritée, ainsi qu'un certain nombre d'autres fonctions couramment utilisées: setup,, test, update_learning_rate, save_networks, load_networksil sera utilisé dans une sous - classe.
  • template_model.py: mettre en œuvre un modèle propre modèle, qui les commentent quelques détails.
  • pix2pix_model.py: pour obtenir un modèle de pix2pix, ensemble de données de formation de modèle --dataset_mode alignedpar défaut --netG unet256 --netD basicdiscriminateur (PatchGAN). --gan_mode vanillaperte GAN (cross-entropie standard).
  • colorization_model.py: pix2pix_model hérité, apportées au modèle sont les suivants : la carte de l' image en noir et blanc est une image en couleurs. -dataset_model colorizationensemble de données. Par défaut, colorizationle DataSet est automatiquement réglé --input_nc 1et --output_nc 2.
  • cycle_gan_model.py: pour atteindre le modèle cyclegan. --dataset_mode unalignedDataSet, --netG resnet_9blocksle générateur ResNet, --netD basicdiscriminateur (PatchGAN Présenté par pix2pix), moindres carrés A Gans Objectif ( --gan_mode lsgan)
  • networks.py: comprenant une architecture de réseau et un générateur de discriminateur, des couches de normalisation, le procédé d'initialisation, l' optimisation de la structure (politique de taux d' apprentissage) fonction objectif GAN ( vanilla, lsgan, wgangp).
  • test_model.py: utilisé pour générer cyclegan conséquence, le modèle est automatiquement réglée --dataset_mode single.


4.3 dossier Options:


Il comprend des modules de formation, mis en place un test de modules TrainOptions和TestOptionssont les BaseOptionssous - classes. Fichier sous les options en détail.


  • __init__.py: L'interpréteur python joué fichier fera un dossier comme options de paquet à traiter.
  • base_options.py: En plus de la formation, le test sont l' option utilisée, il existe quelques méthodes: parseur, impression, sauvegarde des options.
  • train_options.py: les besoins de formation des options.
  • test_options.py : tests options requises.


4.4 dossier utils:


Principalement il contient des outils utiles, telles que les données visuelles. Une documentation détaillée sous utils:


  • __init__.py: L'interpréteur python joué de fichier laisser utils dossier comme un paquet à traiter.
  • get_data.py: pour télécharger les ensembles de données de script.
  • html.py: Enregistrer l'image écrit en html. Diminate l'API DOM basée.
  • image_pool.py: pour parvenir à une génération avant que le tampon pour stocker des images.
  • visualizer.py: Enregistrer les images, les images montrent.
  • utils.py: contient des fonctions d'aide: conversion tensor2numpy, mkdir gradient de diagnose réseau.


5. Résumé et perspectives


5.1 Avantages et inconvénients pix2pix


Pix2pix modèle est l' une à une correspondance entre . Est - à - dire pix2pix est la reconstruction de la vérité du terrain: un profil d'entrée → codec Unet par le vecteur correspondant décodé en vrai → Fig. Celui - ci est portée très limitée de la cartographie des applications, lorsque nous données d' entrée et les lacunes données dans l'ensemble de la formation est importante, le résultat est susceptible de générer n'a pas de sens, ce qui nous oblige à essayer de couvrir les différents types d'ensembles de données.


Cet article sera tous les points papiers Pix2Pix ont exprimé, et notamment:


  • CGAN, l'image d'entrée à la place du vecteur aléatoire
  • U-Net, en utilisant la benne connexion à partager plus d'informations
  • carte paire pour assurer l'entrée du D
  • Patch-D pour réduire l'effet d'améliorer le calcul
  • fonction de perte L1 est ajouté pour assurer la cohérence entre l'entrée et la sortie


5.2 sommaire


À l' heure actuelle, vous pouvez Mo trouver le centre d'application plate - forme pix2pixGAN , vous pourrez découvrir la partie expérimentale de l'étiquette de papier de construction d'image → photo (photo → étiquettes d' architecture), bientôt vous dessiner des esquisses d'images architecturales générées comme votre cabine de l' esprit . Vous dans le processus d' apprentissage, des difficultés et découvrez nos erreurs, vous pouvez nous contacter à tout moment.


Dans cet article, vous devriez avoir une compréhension préliminaire du modèle de l' architecture réseau et le principe de la mise en œuvre Pix2pix, ainsi que la réalisation initiale des éléments clés du code. Si vous apprenez peut - être la tensorflow en profondeur une meilleure compréhension, référence édition tensorflow atteindre Pix2pix , si vous êtes familier avec cadre pytorch, vous pouvez vous référer pytorch obtenir Pix2pix , si vous voulez en savoir plus en profondeur la compréhension du principe starGAN, peut se référer à papier .


6. Référence:


1. Papier: https://arxiv.org/pdf/1611.07004.pdf


2.Pix2pix site officiel: https://phillipi.github.io/pix2pix/


3. Code de la version PyTorch: https://github.com/phillipi/pix2pix


4. Code tensorflow Version: https://github.com/yenchenlin/pix2pix-tensorflow


5. Code tensorflow Version: https://github.com/affinelayer/pix2pix-tensorflow


6. Connaître presque: https://zhuanlan.zhihu.com/p/38411618


7. sais presque: https://zhuanlan.zhihu.com/p/55059359


8. blog: https://blog.csdn.net/qq_16137569/article/details/79950092


9. blog: https://blog.csdn.net/infinita_LV/article/details/85679195


10. Blog: https://blog.csdn.net/weixin_36474809/article/details/89004841


A propos de nous

Mo (URL: momodel.cn ) est un support Python de l' intelligence artificielle de la plate - forme de modélisation en ligne qui peut vous aider à développer rapidement, la formation et modèle de déploiement.


Mo clubs AI sont parrainés par le site R & D et l' équipe de conception de produits, engagée dans le développement et l' utilisation de l' intelligence artificielle pour réduire le seuil du club. L' équipe avec le grand traitement et l' analyse des données, la visualisation des données et l' expérience de modélisation, a entrepris projet d'intelligence multidisciplinaire, avec une capacité de conception et de développement dans tous les domaines du fond à l'extrémité avant. Les principales orientations de recherche pour la gestion d' une grande analyse des données et de la technologie de l' intelligence artificielle, et afin de promouvoir la recherche scientifique axée sur les données.


Actuellement, le club a tenu salon six technologique apprentissage automatique des activités thématiques sous la ligne à Hangzhou hebdomadaire, de temps en temps pour partager des articles et des échanges universitaires. Dans l'espoir de Converge de tous les horizons de la vie à l'intelligence artificielle des amis intéressés, les échanges continuent à se développer, promouvoir la démocratisation de l'intelligence artificielle, une utilisation plus large.

image.png


Publié 36 articles originaux · a gagné les éloges 4 · vues 10000 +

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44015907/article/details/92418827
conseillé
Classement