DeepLearning
Keras
TensorFlow
五十嵐響子
椎名法子

ディープラーニングで五十嵐響子と椎名法子を見分けられるか試してみた

はじめに

グランドレベル中居君のCMでお馴染み「デレステ」や、その派生元である「モバマス」に
登場するキャラクターに「五十嵐響子」と「椎名法子」が居ます。

この二人は初心者には見分けづらいと評判なので、自動で識別できないか試しました。

キャラ紹介

二人の違いを簡単な表にまとめてみました。
髪型とその色だけで見分けようとすると、結構難しそうです。

五十嵐響子 椎名法子
属性 Cute Cute
髪型 サイドテール ポニーテール
髪色 茶色 茶色
年齢 15 13
CV 種﨑敦美 都丸ちよ

五十嵐響子(いがらしきょうこ)

Kyoko.png

鳥取県出身で、Cute属性のユニットである「ピンクチェックスクール」に所属しています。
その楽曲「ラブレター」のMVがニコニコ動画で再生数100万回を超えました。

以降、苗字を省略して単に「響子」と呼称します。

椎名法子(しいなのりこ)

Noriko.png

大阪府出身で、同じくCute属性のユニット「メロウイエロー」に所属しています。
ドーナツが大好きで、常時ドーナツを持ち歩いています。

こちらも以降、単に「法子」と呼称します。

方法

使用したのは公式イラストのみで、二次創作イラストは使っていません。

ネックとなるのが画像数の少なさで、この二人の公式イラストは数十枚しかありません。
また、アニメ版の登場シーンも僅かなため、畳み込み層の学習に必要な画像数が得られません。

そこで、学習済みのVGG16モデルを用いて特徴を抽出して最後の判定結果を出力する段だけ
この二人の判定に挿げ替える転移学習という方式を使います。

私が参考にした記事はこちらです。
Deep learningで画像認識⑧〜Kerasで畳み込みニューラルネットワーク vol.4〜

コード

以下にあります。
https://github.com/YankeeDeltaBravo225/fine_tuning
使い方と改変方法も載せてあるので、暇なら自分の好きなキャラで試してみてください。

@kazuki_hayakawa さんの Keras(Tensorflow)の学習済みモデルのFine-tuningで少ない画像からごちうさのキャラクターを分類する分類モデルを作成する
のGithub上のコードからForkさせてもらいました。

モデル

上記の記事で詳しく解説されているため、ここでは省略します。

keras.utils.plot_model で図にしたものがこちら。
最後だけが自前の層です。

model.png

使用する画像

デレステはまだイラスト数がそこまで無いため、派生元である「モバマス」のイラストを使用しました。
それでも、響子が36枚、法子が30枚しかありません。

法子の30枚の画像のうち、20枚を訓練用、残り10枚をテスト用に割り振りました。響子も同様です。

データ拡張

さすがに数十枚では厳しいので、伸ばしたり縮めたり回転させたりで枚数を水増しします。
これの処理もKerasでImageDataGeneratorとして用意されています。

パラメータは以下の様にしました。

パラメータ 効能 使用した値
rescale 積算するスケール値 1/255
zoom_range ランダム拡大縮小 0.1
rotation_range ランダム回転範囲 10
width_shift_range 横方向のランダム伸び縮み範囲 0.2
height_shift_range 縦方向のランダム伸び縮み範囲 0.2
shear_range ランダムなシアー変形 0.1
channel_shift_range 色チャンネルのランダム変換 40
horizontal_flip ランダム左右反転 False(デフォルト)
vertical_flip ランダム上下反転 False(デフォルト)

Kerasによるデータ拡張 が詳しいです。
Kerasのドキュメントはこちら

結果

TensorBoardのスクリーンショットをそのまま載せています。

tensor_board_test.png
tensor_board_val.png

エポック数が30なので、増やして行けば精度が向上していきそうですが、
40にしたところ逆に悪化してしまいました。
更にもっと増やせば精度が再度上がって行きそうな気配はします。

デレステのイラストを識別

ここまで、モバマスのイラストを訓練用、検証用に使用してきました。
これでデレステのイラストが識別できるか試してみました。
(モバマスからの流用イラストは除いています。)

法子

result_noriko.png

カード 五十嵐響子 椎名法子率 正誤
[Ring♪Ring♪フィーリング]椎名法子 6.40% 93.60%
[Ring♪Ring♪フィーリング]椎名法子+ 0.41% 99.59%
[Kawaii make MY day!]椎名法子 6.39% 93.61%
[Kawaii make MY day!]椎名法子+ 12.77% 87.23%

響子

result_kyoko.png

カード 五十嵐響子 椎名法子率 正誤
[あったかハート]五十嵐響子 98.04% 1.96%
[あったかハート]五十嵐響子+ 3.94% 96.06% ×
[ラブレター]五十嵐響子 36.93% 63.07% ×
[ラブレター]五十嵐響子+ 8.94% 91.06% ×
[ドラマティック・ナイト]五十嵐響子 98.11% 1.89%
[ドラマティック・ナイト]五十嵐響子+ 15.13% 84.87% ×
[With Love]五十嵐響子 50.85% 49.15%
[With Love]五十嵐響子+ 64.83% 35.17%

感想

デレステの12枚のイラストのうち8枚が正解なのですが、
響子に限って言えば正解率50%なため、
迷ったら法子と判定する微妙な感じになってしまいました。

特に「[あったかハート]五十嵐響子+」と「[ラブレター]五十嵐響子+」は
かなり自信満々に誤判定してしまっています。

データ拡張のパラメータを調整したり、エポック数を増やして行けば
もう少しマシな結果になりそうな気はします。


声をスペクトログラム化したものをCNNにかけたら声優を識別できないかな。
サンプルの収集が大変そうだけど。