Vous pouvez utiliser ce site Web pour styliser une image par plusieurs méthodes de transfert neural style .
Ce projet est implémenté principalement dans Keras 2.1.3 (une partie est Tensorflow)
Vidéo de démonstration
neural style rapide
style neuronal " style="max-width: 100%;">
Échange de styles
Style de masque
neural style rapide
L'implémentation neural style rapide est basée sur les keras de style neuronal rapide de misgod. Nous y avons apporté quelques modifications, et cette méthode est basée sur les pertes de perception pour le transfert de style en temps réel et la super-résolution de Johnson et al.
Dans la version actuelle, nous remplaçons une partie de la couche Conv2D par des convolutions séparables en profondeur dans le réseau de transformation d'image. le détail des procédures de formation sera ajouté prochainement.
Échange de styles
La couche d'échange de style est une référence du WCT-TF d'eridgd, l'article original est Fast Patch-based Style Transfer of Arbitrary Style de Chen et al.
Style de masque
Nous utilisons Mask R-CNN qui est implémenté par Matterport, l'article original de Mask R-CNN est Mask R-CNN par He et al.
Python >= 3,5 (Anaconda)
CUDA >=8.0 (Pour la prise en charge du GPU, l'utilisation d'une version plus récente nécessiterait de vérifier la compatibilité avec la version tensorflow-gpu)
Cudnn >=6.0 (pour la prise en charge GPU)
Flacon 0.12.2
Keras 2.1.3
tensorflow-gpu 1.4
scipy 1.0.0
image scikit
pycocotool
imgaug
pile
cython
Vous devez également répondre aux exigences du Mask R-CNN.
Téléchargez les modèles pré-entraînés distillés et décompressez les modèles dans le models/fast_style_transfer/pretrained
, puis modifiez MODELS_PATH dans models/file_path.py
et utilisez le déplacement de la console vers le dossier racine du projet et tapez
python app.py
et ouvrez le navigateur, accédez à localhost : 5000
Vous devez d'abord télécharger l'ensemble de données COCO, nous utilisons l'ensemble de formation de 2014 (83 000 images).
neural style rapide Original
Vous devez remplir la chaîne de chemin dans la fonction loss_net
dans models/src/nets.py
vers votre modèle vgg16 pré-entraîné. Notez que vos images d'entraînement doivent être placées dans un dossier comme celui-ci cocotrain/0/xxx.jpg
car nous utilisons ImageDataGenerator pour charger les images, cela suppose que différentes classes d'images sont stockées dans les différents dossiers.
Préparez une image de style et placez-la dans static/img/styles/
.
Tapez la commande ci-dessous pour entraîner un modèle. Ceci est un exemple montrant que si mes images d'entraînement sont stockées dans le dossier racine du projet et que je souhaite entraîner un style nommé mosaïque.
python train_fast_model.py -p ./cocotrain -s mosaic
Vous pouvez également ajuster le poids du contenu et du style, tapez -h pour voir tous les arguments.
python train_fast_model.py -h
neural style rapide distillé
Vous devez disposer des modèles pré-entraînés originaux neural style rapide , voici le lien des modèles pré-entraînés originaux.
Exécutez generate_image.py
, vous devez également spécifier le chemin de l'ensemble de données COCO à l'aide -p
.
python generate_image.py -p ./cocotrain
train_distillated_model.py
, le chemin d'accès à l'ensemble de données COCO et le nom du style sont nécessaires. Ci-dessous un exemple. python train_distillated_model.py -p ./cocotrain -s mosaic
Modèle d'échange de style
Vous avez besoin non seulement d'un ensemble de données COCO, mais également de nombreuses images de style. Tout comme le papier, nous utilisons Painter by Numbers. Notez que vos images d'entraînement et vos images de style doivent être placées dans un dossier comme cocotrain/0/xxx.jpg
et styleimages/0/xxx.jpg
.
train_style_swap_model.py
, le chemin d'accès au chemin de l'ensemble de données COCO et les images de style sont nécessaires. Ci-dessous un exemple. python train_style_swap_model.py -p ./cocotrain -s ./styleimages