NHKの番組で放送された温水さんの顔を生成するAI(GAN)のコードを公開します

f:id:karaage:20211031213737j:plain:w240f:id:karaage:20211031213739p:plain:w240

NHKの番組に温水さんの顔を生成するGAN技術で協力しました

 先日お知らせをしていましたが、NHKの番組「漫画家イエナガの複雑社会を超定義」に技術協力しました。

 番組を見てもらった人はご存知と思いますが、温水さんの100枚の顔写真をAIで学習して、温水さんの顔画像をAIで生成するコーナーがありました。私が技術協力したのは、その顔画像を生成するGANと呼ばれるAI技術の部分になります。

 番組を見逃した方は、ちょうどNHKのYouTubeチャンネルに該当の動画が上がっているので、以下のリンク先の動画をごらんください。

 今回、番組に協力した際に、特別にブログで技術解説やコードの公開をしても良いという許可をいただいたので、番組で使用したコードをブログで紹介したいと思います。

 ただ、そのまま温水さんの顔を使うのは、著作権上問題となってしまいますので、今回はサンプルとして著作権フリーのろんすたさんの顔画像を使ったコードを公開します。コードをベースに、各自で自分の顔や、許可得た人の顔で遊んでみてください!

GANで人の顔を生成する方法

 今回、学習するコードをGoogle Colaboratory(Google Colab)のノートブック形式で用意したので、以下の2つのステップでAIの顔生成ができます(ろんすたさんの画像でよければ1ステップ)。プログラムに詳しくなくても、比較的簡単に実行できるようになっていますので、興味ある人は是非チャレンジしてみてください。

  • 顔写真を準備する
  • Google Colaboratoryのノートブックで学習

顔をたくさん準備します

 人の顔写真をたくさん集めましょう。私の場合は、ハードディスクのろんすたライブラリが火を噴きました。

 ろんすたライブラリ f:id:karaage:20211031213716p:plain:w640

 Amazon PhotosやGoogle Photoを使っている人は、顔認識の機能が約に立つかもしれません。今回は特定の1人の画像を集めました。

 画像は100枚以上あれば問題ないと思います。少なくとも50枚以上は集めた方が良いと思います。

 手元に使える画像が無い人のために、著作権フリーのろんすたさんの顔画像を準備していますので、ろんすたさんの画像でよければ、このステップは飛ばしてもOKです。

Google Colaboratoryのノートブックで学習

 無料でつかえるPythonのクラウド実行環境のGoogle Colaboratory(Google Colab)を使用します。

 Google Colabに関しては以下記事参照ください。

 Google Colabのノートブックです。Googleのアカウントを取得した上で、以下ノートブックをクリックしましょう。

GANを使って人の顔画像を生成するノートブック

 その後は、ノートブックの指示に従い実行していってください。基本は、ノートブックをコピーして、ひたすら「Shift+Enter」を押していけばOKです。

AI(GAN)の学習の様子

 AIが学習して賢くなっていく様子を可視化したものです。だんだん賢くなっていく様子が分かりますね。

 0世代
f:id:karaage:20211031230050p:plain

 100世代
f:id:karaage:20211031230058p:plain

 500世代
f:id:karaage:20211031230106p:plain

 1000世代
f:id:karaage:20211031230120p:plain

 2000世代
f:id:karaage:20211031230129p:plain

 最終的に生成した画像は以下のような感じです。

f:id:karaage:20211031213737j:plain:w240

f:id:karaage:20211031213739p:plain:w240

 結構面影(?)ありますね。

まとめ

 NHKで放送された番組で使用したコードを特別に公開しました。実際にテレビで使われたコードが(一部改変されたとはいえ)公開されることは貴重なのではないかなと思います。

 よろしければ、是非ご自身の顔などで試してみてください。また、GANやAIに興味もって「もう少し詳しく知りたい!」「他にも色々試してみたい!」と思った方は、手前味噌ですが拙作「とにかく楽しいAI自作教室」がオススメです。

 今回使用したGANのコードも、ほとんど書籍で取り上げたGANのコードそのままだったりします。

関連記事

 今回コードで使用した顔認識部分に関しては、以下記事の顔認識のコードを応用しています。

変更履歴

  • 2021/11/01 番組YouTubeへのリンクを追記