Crie seus próprios “pinturas neurais” com deepstyle & ubuntu

As redes neurais podem fazer um monte de coisas. Eles podem interpretar imagens, entender nossas vozes

, e traduzir conversas. Mas você sabia que também pode pintar?6 Google Now funcionalidades que irão mudar Como você Busque 6 Google Now funcionalidades que irão mudar Como você Busque Você pode já estar usando o Google Now no seu dispositivo Android, mas você está recebendo tudo o que você pode sair dela? Saber sobre esses pequenos recursos podem fazer uma grande diferença.consulte Mais informação

Um estudo recente (intitulado “Um algoritmo Neural de Estilo Artístico“) foi expulso uma enxurrada de discussão on-line com alguns exemplos visuais marcantes. Essencialmente, o artigo discute uma técnica para treinar um rede neural profunda para separar estilo artístico de estrutura de imagem e combinar o estilo de uma imagem com a estrutura de outro. O resultado de tudo isso é que você pode treinar uma rede neural enorme para transformar fotografias em pinturas “neurais” que se parecem como se tivessem sido pintados por artistas famosos - “falsificações digitais,” por assim dizer.

Aqui estão alguns exemplos do artigo. A primeira imagem é o original. As imagens posteriores são os resultados obtidos, com o quadro a partir da qual o modelo foi amostrado mostrado em miniatura.

PaperImages

Os pesquisadores originais não ter lançado seu código, infelizmente. No entanto, alguns programadores intrépidos replicaram seus resultados ao longo dos últimos dias, e seu código está disponível, de código aberto na internet. Tudo que você precisa para executá-lo é uma máquina linux e um pouco de paciência.

Hoje, eu vou levá-lo através de como fazer isso, e mostrar-lhe alguns dos meus próprios resultados. Você pode pensar nisso como uma sequela solta à nossa DeepDream tutorial. É um pouco complicado, mas qualquer pessoa com uma máquina Linux pode acompanhar - nenhuma experiência codificação necessária.Crie seus próprios sonhos febris Artificial com Google "DeepDream"Crie seus próprios sonhos febris Artificial com Google "DeepDream"Você já viu as imagens trippy que saem de DeepDream? Quer fazer o seu próprio? Não procure mais!consulte Mais informação

Configurando o Software

Primeiro, se você não está com pressa ou não tem uma máquina Linux, você ainda pode jogar com DeepStyle usando o bot DeepForger Twitter (enviá-lo uma imagem e um estilo, e que acabará por responder com os resultados que você quer). Se você quiser processar mais imagens rapidamente (e com mais controle sobre os resultados), para ler sobre o tutorial.

Primeiro, verifique se você tem uma cópia atualizada de Ubuntu (14,04 é o que eu usei). Você é deve ter pelo menos alguns shows extras de espaço no disco rígido. Para mais informações, confira nosso tutorial sobre dual-boot Ubuntu junto com o Windows. Você também vai precisar de privilégios de root, para se certificar que você faz antes de prosseguir.Cansado de Windows 8? Como Dual Boot do Windows & UbuntuCansado de Windows 8? Como Dual Boot do Windows & UbuntuSe você descobrir que o Windows 8 não é exatamente sua xícara de chá, e você não tem nenhum caminho viável para fazer o downgrade, pode ser uma boa idéia para dual boot com Linux para ter uma alternativa ...consulte Mais informação

Ferramentas básicas

Direita da bat, este é um projeto de código aberto, por isso estamos indo querer ter git instalado. Git é o padrão ouro para o software de controle de versão. Praticamente todos os projetos de código aberto vale a pena conhecer está hospedado no GitHub.

Para baixar e instalar o Git, basta abrir um terminal e digite “sudo apt-get install git”E concordar com as exigências do instalador.

Seguinte: vamos crie instrumentos básicos necessária para fazer funcionar o software.

Primeiro, instale Lua. Esta é a linguagem que a ferramenta está escrito em. É muito simples. Basta digitar “sudo apt-get instalar lua5.2”E siga o processo de instalação.

Em segundo lugar, vamos obter luarocks. Esta é a ferramenta que torna mais fácil de instalar outras ferramentas (não que você ama Linux?). Para este, tipo “sudo apt-get install luarocks”E siga os passos instalações.

Em terceiro lugar, vamos instalar Luajit. Este é um compilador just-in-time para a Lua que vai fazer nossas vidas um pouco mais simples. Basta digitar “sudo apt-get instalar luajit.”

Por enquanto, tudo bem.

Frameworks

Em seguida, vamos instalar Tocha, uma estrutura de computação e aprendizagem de máquina científica que compõe a espinha dorsal da aplicação. Infelizmente, este não pode ser instalado usando apt-get (o gerenciador de pacotes padrão do Ubuntu).

Felizmente, eles têm um instalador de uma linha que usa alguma magia de linha de comando. Volte para o seu terminal e digite “enrolar -s https://raw.githubusercontent.com/torch/ezinstall/master/install-all | bater“.

Quando estiver pronto, digite “luajit -ltorch“. Isso fará com que a interface tocha e verificar que tudo foi instalado corretamente.

Saia desse.

Agora vamos instalar loadcaffe - um pacote específico neural-network. Instalar a sua única dependência, digitando “sudo apt-get install libprotobuf-dev protobuf-compiler“. Em seguida, você pode instalar o pacote em si usando “sudo luarocks instalar loadcaffe".

Dependências de duplo controlo

Finalmente, vamos atualizar preventivamente algumas coisas apenas para se certificar que tudo corra bem.

Tipo "luarocks sudo imagem de instalação”Para se certificar de que seu pacote de imagem está atualizado. Em seguida, digite “luarocks instalar nn”, Que vai fazer o mesmo para o seu pacote de‘nn`.

Instalando Estilo profunda

Bem! Neste ponto, estamos prontos para realmente instalar o software em si. Pelo amor limpeza, criar uma nova pasta em seu diretório home ( ‘mkdir DeepStyle `). Em seguida, insira-o, usando “cd Deepstyle“. Agora digite “sudo git clone https://github.com/jcjohnson/neural-style.git".

Em seguida, temos de fazer o download do modelo. Faça uma xícara de café ou algo assim, isso vai demorar um pouco. Voltar para o terminal e digite “sudo sh modelos / download_models.sh“. Isso vai iniciar um longo e elaborado processo de download. Se ele falhar devido a erros de permissão, tente dar-se as permissões de leitura e escrita nas pastas relevantes, usando chmod.

Usando Estilo profunda

Ok, nós somos bons de ir. Usando o software é bastante simples.

Certifique-se de que você está no diretório /-style neural DeepStyle no terminal. Agora, você vai precisar de algumas imagens para trabalhar. Baixá-los da Internet (ou qualquer outro), em seguida, copiá-los para o pasta / estilo neural DeepStyle usando o navegador de arquivos.

Agora você pode usar a linha de comando para processar imagens individuais. O formato é bastante simples:

th neural_style.lua -style_image YOURPAINTINGHERE.jpg - content_image YOURPHOTOHERE.jpg -gpu -1

(Obviamente, você vai precisar para substituir os pedaços em todas as tampas com os nomes de seus arquivos).

Que terá a rede neural começou. Ele vai correr por aproximadamente uma hora, cuspindo novas imagens parcialmente convergentes cada poucos minutos até que ele termine. o -GPU -1 bandeira impede de tentar aceder ao seu GPU.



Depois de várias horas de tentar (e bricking o sistema operacional várias vezes) que eu era incapaz de obter Ubuntu e CUDA para jogar bonito com a minha GPU (uma GTX NVIDIA 970). Se você tem mais sorte com isso, você vai querer instalar CUDA e cudann.torch (ver o repo github para mais informações). Se não, tudo bem - ele ainda vai trabalhar com o seu o seu CPU que será apenas um pouco mais lento.

Se você tiver quaisquer problemas recebendo tudo isso de trabalho, só me perguntar nos comentários, e eu vou fazer o meu melhor para ajudá-lo.

Resultados

Aqui estão algumas imagens que eu gerados ao longo do último par de dias. Os resultados são mistos, mas muitos deles são bastante impressionantes.

-Zack-paden compósito

Clique aqui para resolução máxima.

Este é do meu amigo Zack em uma caminhada de Yellowstone. O estilo vem de uma pintura abstrata, criado por Theresa Paden. Eu estava curioso para ver como o sistema faria usando uma imagem com absolutamente nenhuma estrutura. Os resultados são bastante puro, e você pode definitivamente ver as semelhanças com a imagem do estilo.

-Jersey City-Demuth compósito

Clique aqui para resolução máxima.

Este vem cortesia de um dos meus artistas favoritos, Charles Demuth (ver: Incenso de uma Igreja Nova, e Figura 5 em Ouro). Curiosamente, Demuth é uma das inspirações visuais primárias para a arte de Team Fortress 2, como você pode ver na imagem estilo.Team Fortress 2: The Game Vapor Free-to-Play Você deve jogarTeam Fortress 2: The Game Vapor Free-to-Play Você deve jogarTeam Fortress 2 é apenas um jogo rápido para testar gráficos e desempenho, ou é um jogo vale a pena jogar várias vezes?consulte Mais informação

Eu alimentava uma imagem de Jersey City que eu encontrei no Wikimedia. Os resultados são ... muito bom. Não pegar na angularidade do estilo de Demuth, mas certamente pegou o olhar suave, texturizado e paleta de cores.

-Flor-okeefe compósito

Clique aqui para resolução máxima.

Esta é uma tentativa de gerar um O`Keeffe sintética, utilizando uma imagem bastante mundana de algumas flores que eu encontrei. Os resultados são, francamente, espetacular. Esteticamente, este é um dos meus resultados favoritas. A riqueza de cores e formas de O`Keeffe vir através claramente. As bordas em camadas de pétalas de flores tornam-se as bordas das folhas no fundo. As flores-se dissolver em cores, tornando-se quase abstrato.

Seria uma boa pintura se um ser humano fez isso. Eu estou muito tentado a passar um par de dias tornando uma versão de alta resolução deste e tê-lo enquadrado.

-Shannon-picasso compósito

Clique aqui para resolução máxima.

Aqui é minha amiga Shannon em seu traje de Halloween, por meio de uma impressão Picasso. Curiosamente, o dispositivo escolheu para pintar a parte inferior do rosto branco (semelhante ao layout da cor da peça Picasso). Eu não tenho certeza se isso foi uma coincidência ou não, mas os resultados são impressionantes. Ele também parece ter identificado corretamente o cabelo de Shannon, no lado esquerdo, e re-extraídas-lo usando a cor e linework do cabelo na imagem estilo. O mesmo vale para seu chapéu.

Esta é uma das peças onde as limitações da técnica começar a ficar claro. Se Picasso foram realmente pintar Shannon, ele teria jogado fora a estrutura do seu rosto e distorcido os recursos para alcançar o efeito que ele queria. Este sistema não entender esses tipos de conceitos de alto nível, e é capaz de imitar apenas os aspectos superficiais do estilo, como as, linhas angulares escuras e paleta de cores.

Eiffel-vangogh-compósito

Clique aqui para resolução máxima.

Bastante simples: uma imagem da Torre Eiffel, e Van Gogh de de outros Noite estrelada. Ele faz um bom trabalho tornando a nuvem em um estilo de Van Gogh-ey, apesar da ausência de nuvens na imagem original. Ele também faz um bom trabalho de traduzir a cena do dia para noite.

Eu não tinha certeza por que ele decidiu tornar a ponta da torre Fiffel como uma coluna de fogo. Parece legal, mas não é realmente justificável a partir dos dados de entrada. Em seguida, realizou que a imagem do estilo tem treze longas tiras, amarelo verticais na mesma, sob a forma dos reflexos na água. Isso é um aglomerado muito avultados, uma vez dados de treinamento tão pouco. A coisa pobre tem provavelmente aprendeu que qualquer aresta vertical de alto contraste deve ser uma dessas reflexões. Você pode ver listras verticais mais estranhas levemente nas nuvens.

nebulosa-vangogh-compósito

Clique aqui para resolução máxima.

Mesma pintura de Van Gogh, mas desta vez eu dei-lhe algumas estrelas reais para pintar. Neste caso, a porção de pilares da nebulosa de Eagle. Eu gosto dos resultados - embora, mais uma vez, você pode ver a sua obsessão com listras amarelas. Cada porção vertical do pilar torna-se uma linha amarela brilhante, vacilante. É também claramente chateado com o verde, o que não ocorreu nos dados de treinamento, e faz o seu melhor para se livrar dele em favor de azul e preto.

Tecnologia

Alguns resultados deste são extremamente convincente, embora a técnica tem limitações claras. Algumas imagens têm composição ruim, eo sistema tem dificuldade com artistas mais abstratos como Picasso - que ficou famoso gostava de distorcer seu assunto, espalhando suas características. O algoritmo pega suas linhas angulares e cores berrantes, mas ainda é um escravo para os valores de pixel da imagem. Ele não tem a compreensão que você precisa para se desviar muito longe do material de origem.

O que me excita sobre tudo isso é que eu não acho que essas limitações são fundamentais.

A abordagem a ser utilizada aqui - treinar uma rede em uma imagem e usá-lo para construir outro - é fundamentalmente um tipo de hack. Dá a rede muito poucos dados para trabalhar. Uma versão mais avançada deste aplicativo deve usar uma rede que tem informações sobre muitas pinturas e imagens talvez até mesmo reais, para dar-lhe uma abundância de contexto sobre a imagem que está tentando “pintura.”

A compreensão profunda do estilo só pode existir em um contexto mais amplo. Você não pode derivar a partir de uma única imagem. Projetar uma arquitetura que dá acesso ao sistema de dados mais amplas pode permitir que ele para obter uma compreensão mais “humano-like” da imagem, e como os artistas representam diferentes elementos do mundo real. Essa rede pode ser capaz de produzir imagens que são mais abstrato e têm uma melhor composição. Tais algoritmos deixaria de ser um brinquedo legal (como este) e tornar-se uma maneira de produzir real arte, originais.

Que é um pensamento muito peculiar, em alguns aspectos.

Fazer seus próprios imagens

Se você obter um resultado decepcionante, você pode brincar com as opções um pouco para tentar obter resultados mais convincentes. A lista completa está no Github. Os mais importantes são

  • -content_weight -valor Quanto ao peso do termo reconstrução conteúdo. O padrão é 5e0.
  • --valor style_weight: Quanto peso para dar à imagem do estilo. O padrão é 1e2.
  • -style_scale - Valor: Como grande de patches de imagem deve o sistema de análise (maior se torna mais abstrato). O padrão é 1,0.

Depois de conseguir tudo funcionando a sua satisfação, por favor postar suas imagens mais interessantes nos comentários. Estou realmente interessado em ver o que vocês venha com.


Artigos relacionados