Puede utilizar este sitio web para estilizar imágenes mediante varios métodos de transferencia neural style .
Este proyecto se implementa principalmente en Keras 2.1.3 (una parte es Tensorflow)
Vídeo de demostración
neural style rápido
estilo neuronal " estilo="ancho máximo: 100%;">
Intercambio de estilo
Estilo de máscara
neural style rápido
La implementación neural style rápido se basa en keras de estilo neuronal rápido de misgod. Le hicimos algunos cambios y este método se basa en las pérdidas de percepción para la transferencia de estilo en tiempo real y la superresolución de Johnson et al.
En la versión actual, reemplazamos parte de la capa Conv2D por convoluciones separables en profundidad en la red de transformación de imágenes. Los detalles de los procedimientos de capacitación se agregarán pronto.
Intercambio de estilo
La capa de intercambio de estilo es una referencia de WCT-TF de eridgd, el artículo original es Fast Patch-based Style Transfer of Arbitrary Style de Chen et al.
Estilo de máscara
Usamos Mask R-CNN que está implementado por Matterport, el artículo original de Mask R-CNN es Mask R-CNN de He et al.
Python >= 3.5 (Anaconda)
CUDA >=8.0 (para compatibilidad con GPU, al usar una versión más reciente sería necesario verificar la compatibilidad con la versión tensorflow-gpu)
Cudnn >=6.0 (Para compatibilidad con GPU)
Matraz 0.12.2
Keras 2.1.3
tensorflow-gpu 1.4
scipy 1.0.0
imagen-scikit
pycocotool
imgaug
pil
citón
También debe cumplir con los requisitos de Mask R-CNN.
Descargue los modelos destilados previamente entrenados y descomprima los modelos en models/fast_style_transfer/pretrained
, luego modifique MODELS_PATH en models/file_path.py
y use la consola para moverse a la carpeta raíz del proyecto y escriba
python app.py
y abra el navegador, vaya a localhost:5000
Primero debe descargar el conjunto de datos COCO, utilizamos el conjunto de entrenamiento de 2014 (83K imágenes).
neural style rápido Original
Debe completar la cadena de ruta en la función loss_net
en models/src/nets.py
para su modelo vgg16 previamente entrenado. Tenga en cuenta que sus imágenes de entrenamiento deben colocarse en una carpeta como esta cocotrain/0/xxx.jpg
porque estamos usando ImageDataGenerator para cargar las imágenes, se supone que se almacenan diferentes clases de imágenes en las diferentes carpetas.
Prepare una imagen de estilo y colóquela en static/img/styles/
.
Escriba el siguiente comando para entrenar un modelo. Este es un ejemplo que muestra que si mis imágenes de entrenamiento están almacenadas en la carpeta raíz del proyecto y digo que quiero entrenar un estilo llamado mosaico.
python train_fast_model.py -p ./cocotrain -s mosaic
También puede ajustar el peso del contenido y el estilo, escriba -h para ver todos los argumentos.
python train_fast_model.py -h
neural style rápido Destilado
Debe tener los modelos preentrenados neural style rápido originales. Aquí está el enlace de los modelos preentrenados originales.
Ejecute generate_image.py
, también debe especificar la ruta del conjunto de datos COCO usando -p
.
python generate_image.py -p ./cocotrain
train_distillated_model.py
, se necesitan la ruta al conjunto de datos COCO y el nombre del estilo. A continuación se muestra un ejemplo. python train_distillated_model.py -p ./cocotrain -s mosaic
Modelo de intercambio de estilo
No solo necesitas el conjunto de datos COCO, sino también muchas imágenes de estilo. Al igual que el papel, utilizamos Painter by Numbers. Tenga en cuenta que sus imágenes de entrenamiento e imágenes de estilo deben colocarse en una carpeta como cocotrain/0/xxx.jpg
y styleimages/0/xxx.jpg
.
train_style_swap_model.py
, se necesitan la ruta al conjunto de datos COCO y las imágenes de estilo. A continuación se muestra un ejemplo. python train_style_swap_model.py -p ./cocotrain -s ./styleimages