Você pode usar este site para estilizar imagens por meio de vários métodos de transferência neural style .
Este projeto é implementado principalmente em Keras 2.1.3 (alguma parte é Tensorflow)
Vídeo de demonstração
neural style rápido
estilo neural " style="largura máxima: 100%;">
Troca de estilo
Estilo de máscara
neural style rápido
A implementação neural style rápido é baseada em keras de estilo neural rápido de misgod. Fizemos algumas alterações nele, e este método é baseado em Perdas de percepção para transferência de estilo em tempo real e super-resolução de Johnson et al.
Na versão atual, substituímos parte da camada Conv2D por convoluções separáveis em profundidade na rede de transformação de imagem. os detalhes dos procedimentos de treinamento serão adicionados em breve.
Troca de estilo
A camada de troca de estilo é uma referência do WCT-TF de eridgd, o artigo original é Fast Patch-based Style Transfer of Arbitrary Style de Chen et al.
Estilo de máscara
Usamos Mask R-CNN que é implementado pelo Matterport, o artigo original do Mask R-CNN é Mask R-CNN de He et al.
Python >= 3.5 (Anaconda)
CUDA >=8.0 (para suporte de GPU, usando uma versão mais recente seria necessário verificar a compatibilidade com a versão tensorflow-gpu)
Cudnn >=6.0 (para suporte de GPU)
Frasco 0.12.2
Keras 2.1.3
tensorflow-gpu 1.4
scipy 1.0.0
imagem scikit
picocotool
imagem
pil
cíton
Você também precisa atender aos requisitos do Mask R-CNN.
Baixe os modelos pré-treinados destilados e descompacte os modelos em models/fast_style_transfer/pretrained
, em seguida, modifique MODELS_PATH em models/file_path.py
e use o console para mover para a pasta raiz do projeto e digite
python app.py
e abra o navegador, vá para localhost:5000
Você deve primeiro baixar o conjunto de dados COCO, usamos o conjunto de treinamento de 2014 (83 mil imagens).
neural style rápido Original
Você precisa preencher a string do caminho na função loss_net
em models/src/nets.py
para seu modelo vgg16 pré-treinado. Observe que suas imagens de treinamento devem ser colocadas em uma pasta como esta cocotrain/0/xxx.jpg
porque estamos usando ImageDataGenerator para carregar as imagens, ele assume que diferentes classes de imagens são armazenadas em diferentes pastas.
Prepare uma imagem de estilo e coloque-a em static/img/styles/
.
Digite o comando abaixo para treinar um modelo. Este é um exemplo que mostra que se minhas imagens de treinamento estiverem armazenadas na pasta raiz do projeto, e disser que quero treinar um estilo chamado mosaico.
python train_fast_model.py -p ./cocotrain -s mosaic
Você também pode ajustar o peso de content e style , digite -h para ver todos os argumentos.
python train_fast_model.py -h
neural style rápido Destilado
Você precisa ter os modelos pré-treinados originais neural style , aqui está o link modelos pré-treinados originais.
Execute generate_image.py
, você também precisa especificar o caminho do conjunto de dados COCO usando -p
.
python generate_image.py -p ./cocotrain
train_distillated_model.py
, o caminho para o caminho do conjunto de dados COCO e o nome do estilo são necessários. Abaixo está um exemplo. python train_distillated_model.py -p ./cocotrain -s mosaic
Modelo de troca de estilo
Você não precisa apenas do conjunto de dados COCO, mas também de muitas imagens de estilo. Assim como o papel, usamos o Painter by Numbers. Observe que suas imagens de treinamento e imagens de estilo devem ser colocadas em uma pasta como cocotrain/0/xxx.jpg
e styleimages/0/xxx.jpg
.
train_style_swap_model.py
, o caminho para o caminho do conjunto de dados COCO e as imagens de estilo são necessários. Abaixo está um exemplo. python train_style_swap_model.py -p ./cocotrain -s ./styleimages