プログラミング

初心者でも出来る!機械学習を使ってピカソ風の画像をつくる

こんにちは、とだ(cohki0305)です!!

今日は機械学習(AI)の技術を使って、ピカソ風の画像を作ろうと思います!

機械学習と聞くとすごく難しそうなのですが、使うだけであれば全然簡単なのでプログラミング初心者の方でも大丈夫ですよ。

今回はピカソの絵のタッチやカラーを AI に教え込んだものを使って、いろんな画像をピカソ風に変えていくというものです!!高い金払って、ピカソの絵買ったやつかわいそうですね!

ちなみに完成した画像は以下です。
圧倒的な気品の高さ!部屋に飾ればセレブの仲間入り!

めっちゃかっこいい画像ができますよ!

元画像

ちなみにアイキャッチは葛飾北斎風です。

機械学習とは

そもそも機械学習とは wikipedia によると以下のとおりです。

機械学習とは、人間が自然に行っている学習能力と同様の機能をコンピュータで実現しようとする技術・手法のことである。

機械学習 | wikipedia

人間がやるようなことをコンピューターにやらせるということです。
今回でいうと、絵のアレンジという人がやる作業をコンピューターにやらせるということです。

環境構築

絵をアレンジするには、Google が作った fast-style-transfer というツールを使う必要があります。
fast-style-transfer | Github

このライブラリは、python3 の以下のライブラリに依存しているので、インストールしていきます。

  • transform
  • numpy
  • scipy
  • tensorflow

コンソールで以下のコマンドを実行するだけで終わりです!

【前提】
python3 をインストールしていない方は以下を参考にしてインストールしてください。
Homebrewを使用したインストール方法 | Pythonインストール(Mac編)

fast-style-transfer をダウンロード

以下の Github のレポジトリーにアクセスして、実行するためのファイルをダウンロードします。
fast-style-transfer | Github

git 操作に成れている方は git clone しましょう
git clone https://github.com/lengstrom/fast-style-transfer.git

アクセスすると以下の画面が表示されます。
clone or download というボタンがあるので、そこを押してください。
押すと、Download ZIP というボタンが出てくるので押してダウンロードしてください。

ダウンロードされたファイルを解凍すれば終了です。

画像の変換を行う

下準備が終わったので、画像の変換を行っていきましょう!

学習済みのデータを読み込む

以下の Google Drive より学習済みのデータをダウンロードします。
学習済みのデータ

la_muse.ckpt というファイルをダウンロードします。

これは学習済みのデータです。特に解凍をする必要はありません。

変換を行う!

では変換しましょう!変換したい画像を適用に用意しましょう。
なんでもいいです。エロいやつでもエロくないやつでも結構です。

ダウンロードしたコンソール上で lengstrom/fast-style-transfer 配下に移動しましょう。

そして以下のコマンドを実行しましょう。

MOTO_PATH には、変換元にしたい画像の PATH
SAVE_PATH には、変換した画像を保存したい場所を指定します。

以下のような感じです。

実行すると、指定したパスに画像が作成されています!
(ちょっと時間がかかります。気長に待ちましょう。)

僕が作ったのはこんな感じになりました!!

自分の画像でやってみたらめっちゃ気持ち悪くて引きました…風景を見てください…

さいごに

以上で「機械学習を使ってピカソ風の画像をつくる」を終わります!
もっと勉強したい方は、以下の Udemy のコース がおすすめです。僕もこれを使って勉強しました。

【4日で体験しよう!】 TensorFlow x Python 3 で学ぶディープラーニング入門

今回作った画像の他、手書き文字の認識や画像認識などを学習できます。
動画ベースで勉強できるので小難しい本読むより圧倒的に理解しやすかったです。
講師の方に質問できるのも魅力でした。

機械学習は数学の知識が必要で結構難しいのですが、このコースは数学的な知識をそれほど使わずにわかりやすくアルゴリズムの説明をしてくれています。
今なら 1200 円くらいで受講できるので、機械学習を始めようかと思っている人にはおすすめです!

【4日で体験しよう!】 TensorFlow x Python 3 で学ぶディープラーニング入門

ABOUT ME
cohki0305
不必要に下ネタいっちゃうゲスエンジニア。 週3フルリモートで働くが気持ちは過労死寸前。それでも生きていけるのは、25歳・実務経験1年だけど、ノリでフリーランスエンジニアになって時給が4倍になったから。元営業なので、性格は最低。 自分の経験を元に、未経験からエンジニアになる方法や業界のことを発信してます。
プログラマーになって年収1000万目指そう

学歴・職歴関係なく、数年間で年収 1000 万円を目指せる職業って何が思いつきますか??

僕はソフトウェアエンジニア(プログラマー)しか思いつかないです。

僕は実務一年でフリーランスになって年収1000万稼げるようになりましたが、別にこの業界なら普通です。学歴も職歴も関係ないです。

プログラマーを目指して稼ぎたい方は、僕が紹介している「プログラマーになるための最短ステップ 3」を是非読んでチャレンジしてください。

未経験からプログラマーになるための方法を知る