11 de jun de 2018

Tutorial de TensorFlow para iniciantes: aprenda a processar imagens

Mat Leonard

O processamento de imagens é uma das aplicações mais legais de inteligência artificial e deep learning. Através dele, você pode treinar um computador para ver e interpretar imagens de maneira similar a um ser humano.

Neste artigo, você aprenderá a usar um modelo de deep learning para transferir estilos de pintura com TensorFlow, uma biblioteca de machine learning originalmente desenvolvida pelo Google. Este é um projeto realizado durante o curso de deep learning da Udacity.

Com este tutorial de TensorFlow, você poderá recriar imagens no estilo de pinturas famosas, como "La Muse", de Pablo Picasso, e "O Grito", de Edvard Munch. O modelo que usará já foi treinado para reconhcer os estilos de uma série de obras de arte, então não será necessário treiná-lo por conta própria. O objetivo aqui é mostrar como um modelo de deep learning pode ser utilizado.

Leia: Quer recomendar produtos tão bem quanto a Amazon? Utilize a tecnologia de graça

Como organizar seu sistema

A melhor maneira é instalar todos os pacotes que você precisa para executar o código utilizando o Miniconda. O Miniconda vem com o Conda, um gerenciador de pacotes e ambientes construído para programas em Python. Você vai precisar da versão apropriada para seu sistema operacional.

Uma vez que o Miniconda esteja instalado, você precisa instalar todos os pacotes e executar o código de transferência de estilo. O processo é um pouco diferente para cada sistema operacional.

Windows

Para Windows, você vai precisar de Python 3, TensorFlow, Pillow, SciPy e MoviePy. Para instalar tudo, abra seu terminal e digite estes comandos:

conda create -n style-transfer python=3

activate style-transfer

conda install tensorflow scipy pillow

pip install moviepy

python -c "import imageio; imageio.plugins.ffmpeg.download()"

OS X e Linux

Para OS X e Linux, você vai precisar de Python 3, TensorFlow, Pillow, SciPy e MoviePy. Para instalar tudo, abra seu terminal e digite estes comandos:

conda create -n style-transfer python=3

activate style-transfer

conda install tensorflow scipy pillow

pip install moviepy

python -c “import imageio; imageio.plugins.ffmpeg.download()”

Vamos observar rapidamente o que esses comandos fazem. A primeira linha em ambos cria um novo ambiente com Python 3. Este ambiente vai guardar todos os pacotes que você precisa para o código de transferência de estilo.

A segunda linha entra nesse ambiente. Em seguida, instalamos TensorFlow, SciPy, Pillow (que é uma biblioteca de processamento de imagens) e moviepy. A última linha instala ffmpeg, uma aplicação para converter imagens e vídeos.

Leia: 15 bibliotecas Python úteis para data science e machine learning

Como fazer transferência de estilos

Agora que tudo está pronto, você precisa clonar o repositório de fast-style-transfer, ou transferência rápida de estilo ao executar o seguinte comando no terminal:

git clone https://github.com/lengstrom/fast-style-transfer.git

Em seguida:

  1. Faça download do checkpoint Rain Princess e coloque-o na pasta do fast-style-transfer. Um arquivo checkpoint é um modelo que já foi treinado com parâmetros específicos. Nesse caso, o modelo foi treinado com a pintura "Rain Princess", de Leonid Afremov. Usar um arquivo checkpoint significa que você pode partir diretamente para a aplicação do modelo
  2. Encontre a imagem que você quer processar. Pode ser uma foto sua, de uma paisagem ou de seu bicho de estimação. O que você quiser! Copie essa imagem e cole em sua pasta fast-style-transfer.
  3. Entre no ambiente Conda que você criou, navague até a pasta fast-style-transfer e digite:
    python evaluate.py --checkpoint ./rain-princess.ckpt --in-path <path_to_input_file> --out-path ./output_image.jpg
    
  4. Note que seu arquivo checkpoint pode se chamar rain_princess.ckpt ao invés de rain-princess.ckpt.
  5. É isso! Agora você tem sua própria imagem à moda de uma grande obra de arte, recriada no estilo da "Rain Princess" de Leonid Afremov.

De Picasso a Munch, outros estilos para testar

Experimente com outros checkpoints que foram treinados com outras pinturas famosas:

"La Muse", de Pablo Picasso

"Udnie", de Francis Picabia

"O Grito", de Edvard Munch

"A Grande Onda de Kanagawa", de Hokusai

"Naufrágio de um Cargueiro", de J.M.W. Turner

Vá além e estude deep learning

Processar imagens com TensorFlow é um dos muitos projetos que estudantes da Udacity fazem ao construir suas habilidades e experiências com inteligência artificial. Se você gostou da ideia, conheça os cursos de AI da Udacity!

Leia também:

Artigo originalmente publicado no blog americano da Udacity

Sobre o autor
Mat Leonard