Propaganda

As redes neurais podem fazer muitas coisas. Eles podem interpretar imagens, entender nossas vozes 6 recursos do Google Now que mudarão como você pesquisa Você já pode estar usando o Google Now no seu dispositivo Android, mas está conseguindo tudo o que pode com isso? Conhecer esses pequenos recursos pode fazer uma grande diferença. consulte Mais informação e traduzir conversas Como o Star Trek Translator da Skype funcionaO novo recurso de tradução do Skype oferece algo sonhado desde Star Trek - uma maneira fácil de se comunicar entre idiomas. consulte Mais informação . Mas você sabia que eles também podem pintar?

Um trabalho de pesquisa recente (intitulado “Algoritmo Neural de Estilo Artístico“) Iniciou uma enxurrada de discussões on-line com alguns exemplos visuais impressionantes. Essencialmente, o artigo discute uma técnica para treinar um rede neural profunda Microsoft vs Google - Quem lidera a corrida pela inteligência artificial?Pesquisadores de inteligência artificial estão fazendo progressos tangíveis, e as pessoas estão começando a falar seriamente sobre IA novamente. Os dois titãs que lideram a corrida pela inteligência artificial são Google e Microsoft.

instagram viewer
consulte Mais informação para separar o estilo artístico da estrutura da imagem e combinar o estilo de uma imagem com a estrutura de outra. O resultado disso tudo é que você pode treinar uma enorme rede neural para transformar fotografias em “neurais”. pinturas "que parecem ter sido pintadas por artistas famosos -" falsificações digitais ", falar.

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

PaperImages

Os pesquisadores originais não divulgaram seu código, infelizmente. No entanto, alguns programadores intrépidos replicaram seus resultados nos últimos dias e seu código está disponível de código aberto na Internet. Tudo o que você precisa para rodar é uma máquina linux e um pouco de paciência.

Hoje, mostrarei como fazer isso e mostrarei alguns dos meus próprios resultados. Você pode pensar nisso como uma sequência solta de nossa Tutorial do DeepDream Crie seus próprios sonhos de febre artificial com o "DeepDream" do GoogleVocê viu as imagens trippy saindo do DeepDream? Quer fazer o seu próprio? Não procure mais! consulte Mais informação . É um pouco complicado, mas qualquer pessoa com uma máquina Linux pode acompanhar - nenhuma experiência em codificação é necessária.

Transformei uma pintura de luz de Picasso em uma pintura de estilo de Picasso com #DeepStyle! pic.twitter.com/cjkEoIhVcF

- James Blaha (@jamesblaha) 5 de setembro de 2015

Configurando o software

Primeiro, se você não tem muita pressa ou não possui uma máquina Linux, ainda pode jogar com o DeepStyle usando o DeepForger Twitter bot (envie uma imagem e um estilo, que acabará por responder com os resultados desejados). Se você deseja processar mais imagens rapidamente (e com mais controle sobre os resultados), leia o tutorial.

Primeiro, verifique se você tem uma cópia atualizada do 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, consulte o nosso tutorial em inicialização dupla do Ubuntu ao lado do Windows Cansado do Windows 8? Como Dual Boot Windows e UbuntuSe você descobrir que o Windows 8 não é exatamente a sua xícara de chá e não possui um caminho viável para fazer o downgrade, pode ser uma boa ideia fazer uma inicialização dupla com o Linux para ter uma alternativa ... consulte Mais informação . Você também precisará de privilégios de root, portanto, faça isso antes de prosseguir.

Ferramentas básicas

Direito do morcego, este é um projeto de código aberto, então vamos querer ter Git instalado. Git é o padrão ouro para software de controle de versão O que é o Git e por que você deve usar o controle de versão se você é um desenvolvedorComo desenvolvedores da Web, na maioria das vezes, tendemos a trabalhar em sites de desenvolvimento local e depois fazemos o upload de tudo quando terminamos. Tudo bem quando é só você e as alterações são pequenas, ... consulte Mais informação . Praticamente todos os projetos de código aberto que valem a pena conhecer estão hospedados no Github.

Para baixar e instalar o Git, basta abrir um terminal e digite "sudo apt-get install git"E concorda com as demandas do instalador.

Em seguida: vamos configurar algumas ferramentas básicas necessário para fazer o software funcionar.

Primeiro, instale Lua. Esse é o idioma em que a ferramenta está escrita. É bem simples. Basta digitar "sudo apt-get install lua5.2”E siga o processo de instalação.

Segundo, nós vamos conseguir Luarocks. Essa é a ferramenta que facilita a instalação de outras ferramentas (você não gosta do Linux?). Para este, digite "sudo apt-get install luarocks”E siga as etapas da instalação.

Terceiro, vamos instalar Luajit. Este é um compilador just-in-time para Lua que tornará nossas vidas um pouco mais simples. Basta digitar "sudo apt-get install luajit.”

Por enquanto, tudo bem.

Sou um bot que cria falsificações de suas fotos no estilo de pintores famosos. Clique para instruções abaixo! pic.twitter.com/3MpThDNwRE

- O Forjador Profundo (@DeepForger) 5 de setembro de 2015

Frameworks

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

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

Quando terminar, digite "luajit -ltorch“. Isso exibirá a interface da tocha e verificará se tudo foi instalado corretamente.

Saia disso.

Agora vamos instalar loadcaffe - um pacote específico de rede neural. Instale sua única dependência, digitando "sudo apt-get install libprotobuf-dev protobuf-compilador“. Em seguida, você pode instalar o próprio pacote usando "sudo luarocks install loadcaffe ".

@Johnicholas Seu colapso de falsificação, com estilo da Escola Rembrandt van Rijn. #Arte digital#StyleNetpic.twitter.com/pf0sZxWkaT

- O Forjador Profundo (@DeepForger) 7 de setembro de 2015

Dependências de verificação dupla

Por fim, atualizaremos preventivamente algumas coisas apenas para garantir que tudo corra bem.

Tipo "imagem de instalação do sudo luarocks”Para garantir que seu pacote de imagens esteja atualizado. Em seguida, insira "luarocks install nn", Que fará o mesmo com o seu pacote 'nn'.

Instalando o Deep Style

Bem! Neste ponto, estamos prontos para instalar o software em si. Por uma questão de limpeza, crie uma nova pasta no seu diretório pessoal ("mkdir DeepStyle"). Em seguida, insira-o usando "cd Deepstyle“. Agora digite "sudo git clone https://github.com/jcjohnson/neural-style.git".

Em seguida, precisamos fazer o download do modelo. Faça uma xícara de café ou algo assim, isso levará um tempo. De volta ao terminal e digite "modelos sudo sh / download_models.sh“. Isso iniciará um longo e elaborado processo de download. Se falhar devido a erros de permissão, tente conceder a si mesmo permissões de leitura e gravação nas pastas relevantes, usando chmod.

@ 44thats44oars encomendou isso #ProceduralArt#NeuralArt. pic.twitter.com/tbMH7gsvc8

- O Forjador Profundo (@DeepForger) 6 de setembro de 2015

Usando estilo profundo

Ok, estamos prontos para ir. Usar o software é bem simples.

Verifique se você está no Diretório DeepStyle / estilo neural no terminal. Agora, você precisará de algumas imagens para trabalhar. Faça o download da Internet (ou qualquer outra coisa) e copie-a para o Pasta DeepStyle / estilo neural usando o navegador de arquivos.

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

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

(Obviamente, você precisará substituir os pedaços em ALL CAPS pelos nomes dos seus arquivos).

Isso iniciará a rede neural. Ele dura cerca de uma hora, emitindo novas imagens parcialmente convergidas a cada poucos minutos até terminar. o -gpu -1 A flag impede que você tente acessar sua GPU.

Depois de várias horas tentando (e bloqueando o sistema operacional várias vezes), não consegui que o Ubuntu e o CUDA funcionassem bem com minha GPU (uma NVIDIA GTX 970). Se você tiver mais sorte com isso, instale o CUDA e o cudann.torch (consulte o repositório github Para maiores informações). Caso contrário, tudo bem - ainda funcionará usando sua CPU; será apenas um pouco mais lento.

Se você tiver algum problema para fazer tudo isso funcionar, basta me perguntar nos comentários e farei o possível para ajudá-lo.

Resultados

Aqui estão algumas imagens que eu gerei nos últimos dias. Os resultados são variados, mas muitos deles são bastante impressionantes.

zack-paden-composite

Clique aqui para resolução completa.

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

jerseycity-demuth-composite

Clique aqui para resolução completa.

Este é cortesia de um dos meus artistas favoritos, Charles Demuth (veja: Incenso de uma nova igrejae Figura 5 em ouro). Curiosamente, Demuth é uma das principais inspirações visuais para a arte de Team Fortress 2 Team Fortress 2: o jogo a vapor gratuito que você deve jogarO Team Fortress 2 é apenas um jogo rápido para testar gráficos e desempenho, ou vale a pena jogar repetidamente? consulte Mais informação , como você pode ver na imagem do estilo.

Alimentei uma imagem de Jersey City que encontrei no Wikimedia. Os resultados são... muito bons. Ele não percebeu a angularidade do estilo de Demuth, mas certamente percebeu a aparência suave e texturizada e a paleta de cores.

flores-okeefe-composto

Clique aqui para resolução completa.

Esta é uma tentativa de gerar um O'Keeffe sintético, usando uma imagem bastante mundana de algumas flores que encontrei. Os resultados são, francamente, espetaculares. Esteticamente, este é um dos meus resultados favoritos. A riqueza das cores e formas de O’Keeffe ocorre claramente. As bordas em camadas das pétalas das flores se tornam as bordas das folhas no fundo. As flores se dissolvem em cores, tornando-se quase abstratas.

Seria uma boa pintura se um humano fizesse isso. Estou muito tentado a passar alguns dias processando uma versão em alta resolução desta e a enquadrando.

Shannon-Picasso-Composite

Clique aqui para resolução completa.

Aqui está minha amiga Shannon em sua fantasia de Halloween, por meio de uma gravura de Picasso. Curiosamente, o dispositivo escolheu pintar a parte inferior do rosto de branco (semelhante ao layout de cores da peça Picasso). Não tenho certeza se isso foi uma coincidência ou não, mas os resultados são impressionantes. Também parece ter identificado corretamente o cabelo de Shannon no lado esquerdo e o redesenhado usando a cor e a linha do cabelo na imagem do estilo. O mesmo vale para o chapéu dela.

Essa é uma das peças em que as limitações da técnica começam a ficar claras. Se Picasso estivesse realmente pintando Shannon, ele jogaria fora a estrutura do rosto dela e distorceria os recursos para alcançar o efeito que desejava. Esse sistema não entende esses tipos de conceitos de alto nível e é capaz de imitar apenas aspectos superficiais do estilo, como o escuro, as linhas angulares e a paleta de cores.

eiffel-vangogh-composite

Clique aqui para resolução completa.

Bastante direto: uma foto da Torre Eiffel e a de Van Gogh de outros Noite estrelada. Ele faz um bom trabalho ao renderizar a nuvem no estilo de Van Gogh, apesar da ausência de nuvens na imagem original. Também faz um bom trabalho de traduzir a cena do dia para a noite.

Eu não sabia por que ela decidiu transformar a ponta da torre Fiffel como uma coluna de fogo. Parece legal, mas não é realmente justificável a partir dos dados de entrada. Então percebi que a imagem do estilo tinha treze longas faixas verticais amarelas, na forma de reflexos na água. Esse é um cluster bastante grande, com tão poucos dados de treinamento. O pobre provavelmente aprendeu que qualquer borda vertical de alto contraste deve ser uma dessas reflexões. Você pode ver faixas verticais mais estranhas fracamente nas nuvens.

nebulosa-vangogh-compósito

Clique aqui para resolução completa.

A mesma pintura de Van Gogh, mas desta vez eu dei algumas estrelas reais para pintar. Nesse caso, a parte dos pilares da nebulosa da Águia. Gosto dos resultados - embora, mais uma vez, você possa ver sua obsessão por listras amarelas. Cada porção vertical do pilar se torna uma linha amarela brilhante e instável. Também está claramente chateado com o verde, que não ocorreu nos dados de treinamento, e faz o possível para se livrar deles em favor do azul e do preto.

Tecnologia

Alguns resultados são extremamente convincentes, embora a técnica tenha limitações claras. Algumas imagens têm uma composição ruim, e o sistema tem dificuldade com artistas mais abstratos como Picasso - que famosa gostava de distorcer seu assunto, espalhando suas características. O algoritmo capta suas linhas angulares e cores conflitantes, mas ainda é escravo dos valores de pixel da imagem. Ele não tem a compreensão de que você precisa se afastar muito do material de origem.

O que me empolga em tudo isso é que eu não acho que essas limitações sejam fundamentais.

A abordagem usada aqui - treinar uma rede em uma imagem e usá-la para construir outra - é fundamentalmente uma espécie de hack. Dá à rede muito poucos dados para trabalhar. Uma versão mais avançada desse aplicativo usaria uma rede que possui informações sobre muitos pinturas e talvez até imagens reais, para contextualizar bastante a imagem que está tentando "pintura."

Uma compreensão profunda do estilo só pode existir em um contexto mais amplo. Você não pode derivar de uma única imagem. Projetar uma arquitetura que dê ao sistema acesso a dados mais amplos pode permitir obter mais Compreensão “humana” da imagem e como os artistas representam diferentes elementos do real mundo. Essa rede pode ser capaz de produzir imagens mais abstratas e com melhor composição. Tais algoritmos deixariam de ser um brinquedo legal (como este) e se tornariam uma maneira de produzir arte real e original.

O que é um pensamento muito peculiar, de certa forma.

Fazendo suas próprias imagens

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

  • -content_weight -value Quanto pesar o termo de reconstrução de conteúdo. O padrão é 5e0.
  • -style_weight -value: Quanto peso deve ser atribuído à imagem do estilo. O padrão é 1e2.
  • -style_scale - valor: Qual o tamanho das amostras de imagens que o sistema deve analisar (Maior se torna mais abstrato). O padrão é 1.0.

Depois de obter tudo funcionando de maneira satisfatória, poste suas imagens mais interessantes nos comentários. Estou realmente interessado em ver o que vocês inventam.

Créditos da imagem: pintor de cérebros humanos via Shutterstock

Escritor e jornalista baseado no sudoeste, Andre tem a garantia de permanecer funcional até 50 graus Celsius e é à prova d'água a uma profundidade de nove metros.