post Image
AIは宮崎駿になれるのか

AIでジブリっぽい絵を生成する

今回はCartoonGANというAIのモデルを使って、写真をジブリの絵っぽく変換してみます。
CartoonGANとは、写真を宮崎駿さんや細田守さんの絵のタッチに変換するというモデルです。
GANの一種で、画像を変換するAIモデルです。GANの仕組みに関しては、taku-buntuさんのこちらの記事がとてもわかりやすいです。
論文がとても興味深かったので、実際に動かしてみました。

写真からジブリの絵が再現できるのか…?

ではさっそく、結果を見てもらいましょう。私が試した画像はこちら。
宮崎監督も細田監督も、森が登場する作品が多いイメージなので、まずはこんな画像で試してみました。

input

forest.jpg

output

宮崎監督風
forest_Hayao.jpg

細田監督風
forest_Hosoda.jpg

あれ、なんか思ったよりボンヤリしてる…。
両監督の映画では、自然はもっと鮮やかに描かれています。

このあと人物や自然など色んなタイプの写真を試してみましたが、両タイプとも傾向として、
「輪郭を縁取って色彩をぼんやりさせる」
そして宮崎監督風ではそこに「赤みを足す」ものとAIは学習しているようです。
人物画などはまだ弱いですね。

でもジブリっぽい風景だとかなり似ている

ただ、ネットで「ジブリっぽい」と言われている場所の写真を読み込ませてみると、かなりジブリっぽい絵が生成されました。
mig_Hayao.jpg

195_Hayao.jpg

ghibli_museum02_ph15_Hayao.jpg

みなさんも、もしジブリっぽい場所が見つかったら試してみてください。

自分で試したい方へ

インストール

公式の手順通り進めます。

  1. CartoonGANのデータをダウンロードする
  2. Pytorchのためにpipとnumpyのアップデート
  3. Pytorchをインストール

CartoonGANのデータをダウンロードする

まずは、ターミナルでデータをダウンロードしたいファイルの場所に移動し、git cloneしてきます。

git clone https://github.com/Yijunmaverick/CartoonGAN-Test-Pytorch-Torch
cd CartoonGAN-Test-Pytorch-Torch

Pytorchのインストール

そしてPytorchかTorchで動かすんですが、私はどちらも入れていなかったので、そちらのインストールから。私はPytorchにしました。

pipとnumpyをアップデート

Pytorchのインストールは、まずpipとnumpyのアップロードが必要だそうです。

Please ensure that you are on the latest pip and numpy packages.

https://pytorch.org/

入っていない場合は、この2つもインストールしましょう。

公式ではAnacondaが推奨されているようです。

Anaconda is our recommended package manager
https://pytorch.org/

Anacondaを入れるとどちらもインストールされるのでおすすめです。

アップデートする場合はこちら。

# pip
pip install -U pip
pip install -U numpy

# Anaconda
conda update pip
conda update numpy

Pytorchのインストール

Pytorchは公式でconda,pip,githubから選んでインストールできます。
私はmacでgpuを使わないので↓のコマンドを入れました。

conda install pytorch torchvision -c pytorch

実際に動かしてみる

では、YourImgDirというディレクトリを作って変換したい画像を保存してから、以下のコマンドを実行します。gpuを使わない場合は--gpu -1にします。

python test.py --input_dir YourImgDir --style Hosoda --gpu -1

まとめ

やはりGANの画像変換は面白いですね。
今回はユニークな画像変換を取り上げました。最近は人物の写真もアニメ絵に変換したりもできるので、GANにもまだまだ注目です。


『 機械学習 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。