カタカタログ

いろんなことを書いていきます

ホロライブのファンアートからホロライブっぽい画像を生成する

概要

  • Twitterに上がっているホロライブのファンアートを元にホロライブっぽい画像を生成したよ
  • あるホロライブメンバーっぽさを付与した画像も生成できるよ

分かる人向け概要

  • StyleGAN2でホロライブっぽい画像を生成するモデルを作って遊んでみたよ

成果物

生成したホロライブっぽい画像

f:id:yaagrng:20210214130719p:plain

白金ノエルさんから不知火フレアさんに変化させた画像

f:id:yaagrng:20210214131058p:plain



はじめに

ホロライブとは、カバー株式会社が運営するVTuber事務所ホロライブプロダクションのうちの女性VTuberグループです。 ホロライブには多数のメンバーが所属しており、YouTubeをメインにライブ配信等を行なっています。 最近は様々な企業とコラボをしており、活躍の場を広げています。

www.lawson.co.jp

ホロライブのメンバーは各々Twitterアカウントを持っており、メンバーに関係するハッシュタグが設定されています。 下記の表は、一部のメンバーの用途ごとのハッシュタグです。

メンバー 実況 創作
ときのそら #ときのそら生放送 #soraArt
ロボ子さん #ロボ子生放送 #ロボ子Art
さくらみこ #みこなま #miko_Art
星街すいせい #ほしまちすたじお #ほしまちぎゃらりー

など

創作タグは、そのメンバーに関係する作品が投稿されるときに付けられるタグです。 多くの場合イラストが投稿されており、メンバーの様々な魅力を見ることができます。

創作タグからイラストを持ってくることができ、イラストが十分な量あるならば、でぃーぷらーにんぐ*1で新しいイラストを生成できるのでは?

そうしてホロライブのファンアートからホロライブっぽい画像を生成する試みが始まりました。

使用技術

  • GAN

GANは生成モデルの一種でありGenerative Adversarial Network(敵対的生成ネットワーク)の略です。

GANは、生成ネットワークと識別ネットワークから成ります。

生成ネットワークの目標は、本物と遜色ない偽物を作り出すことです。 一方、識別ネットワークの目標は、提示された物が生成ネットワークが作り出したものか否かを判別することです。

生成ネットワークは識別ネットワークを騙そうと学習し、識別ネットワークは生成ネットワークに騙されないように学習していきます。

初めは両者とも未熟のため、生成ネットワークの生成能力と識別ネットワークの識別能力は大したことはないのですが、お互いに学習を重ねることで、生成ネットワークはより精巧な偽物を生成できるようになり、識別ネットワークはより正確な判別ができるようになっていきます。

以上がGANの概略ですが、より詳しい説明が必要な場合はネットの海をあたってください。

使用データ

ホロライブっぽい子のイラストを生成したいため、Twitterに上げられているホロライブのファンアートを"本物"のデータとして使用しました。

今回はホロライブJPのメンバーのみを対象とし、3972枚の顔画像データを"本物"データとして学習に使用しました。

結果

ホロライブっぽい画像生成

ランダムに生成したホロライブっぽい画像が以下になります。

f:id:yaagrng:20210214130719p:plain

ホロライブを知らない人でも、可愛らしいイラストが生成されているのがみて取れるかと思います。 また、ホロライブを知っている人は、「あーこれはあの子かー」ということが分かると思います。

ホロライブメンバーの混ぜ合わせ

ホロライブメンバー2人間の遷移

前節ではランダムに画像を生成しましたが、ホロライブメンバーAの画像とホロライブメンバーBの画像を生成するベクトルを特定し、それらのベクトル間を適当に繋ぐことでホロライブメンバーAの画像からホロライブメンバーBの画像へ遷移することができます。

下の画像はホロライブプロダクションの所属タレントページから取得した百鬼あやめさんの顔画像(左)と、学習したモデルからその画像を生成した画像(右)です。

f:id:yaagrng:20210214125843p:plain:w256f:id:yaagrng:20210214125847p:plain

"本物"データにタレントページの画像は使用していないため、完全に再現はできませんが、それなりに近い画像が生成できています。

上記のように、生成したい画像を生成するベクトルを見つけ、2つのベクトル間をいい感じに繋ぐことで、2つの画像をそれなりに自然に繋ぐことができます。 そのようにして、あるメンバーからあるメンバーへの遷移させた結果が以下です。

白金ノエルさん - 不知火フレアさん

f:id:yaagrng:20210214131058p:plain

猫又おかゆさん - 戌神ころねさん

f:id:yaagrng:20210214131105p:plain

兎田ぺこらさん - さくらみこさん

f:id:yaagrng:20210214131118p:plain

湊あくあさん - 紫咲シオンさん

f:id:yaagrng:20210214131112p:plain

ホロライブメンバーっぽさの付与

今回使用したGAN*2では画像に別の画像の"ぽさ"を付与することができます。

下の画像は、ランダムな画像に潤羽るしあさんっぽさを付与した画像です。

f:id:yaagrng:20210214131822p:plain

髪色やテイストが画像ごとに異なりますが、全体として潤羽るしあさんっぽさが残っています。

次の画像は、ホロライブJPメンバーに別のホロライブJPメンバーの"ぽさ"を付与したものです。

f:id:yaagrng:20210214134548p:plain

行方向は顔の形や髪型などの全体的な特徴を"ぽさ"として反映し、列方向は髪の色や目の色などの部分的な特徴を"ぽさ"として反映しています。

例えば、3行目の黒髪の子(大神ミオさん)を行方向に見ると、全体としては大神ミオさんっぽさを残しつつ、列方向のメンバーの"ぽさ"が反映されているのが分かるかと思います。

さいごに

今回はホロライブのファンアートからホロライブっぽい画像を生成するモデルを作成し、ランダムに画像を生成したり、特徴を混ぜ合わせたりして遊んでみました。

モデルの作成にあたり、Twitterに上がっているホロライブのファンアートを使用させていただきました。ファンアートを上げてくださっている皆さま、誠にありがとうございます。

番外: ホロライブENメンバーの生成

"本物"データとして使用していないホロライブENメンバーを生成した結果が以下になります。

f:id:yaagrng:20210214140448p:plainf:id:yaagrng:20210214140515p:plainf:id:yaagrng:20210214140508p:plainf:id:yaagrng:20210214140500p:plainf:id:yaagrng:20210214140453p:plain

分からなくはないですが、いまいちですね。

*1:私は雰囲気でディープラーニングをやっている

*2:StyleGAN2を用いています